export {}; import { EventEmitter } from "events"; import { Logger } from "../common/Logger"; import { Contact } from "../common/models/Contact"; import { GenericService } from "./GenericService"; import { Core } from "../Core.js"; import { HuntingGroup } from "../common/models/RainbowVoiceCloudPBX.js"; /** * Offer type provided by Rainbow * @public * @enum {string} * @readonly */ declare enum OFFERTYPES { /** freemium licence offer */ "FREEMIUM" = "freemium", /** premium licence offer */ "PREMIUM" = "premium" } /** * The CloudPBX CLI policy value to apply. * @public * @readonly * @enum {string} */ declare enum CLOUDPBXCLIOPTIONPOLICY { /** installation_ddi_number */ "INSTALLATION_DDI_NUMBER" = "installation_ddi_number", /** user_ddi_number */ "USER_DDI_NUMBER" = "user_ddi_number" } declare class AdminService extends GenericService { private _contacts; private _fileStorage; static getClassName(): string; getClassName(): string; static getAccessorName(): string; getAccessorName(): string; constructor(_core: Core, _eventEmitter: EventEmitter, _logger: Logger, _startConfig: { start_up: boolean; optional: boolean; }); start(_options: any): Promise; stop(): Promise; init(useRestAtStartup: boolean): Promise; /** * @public * @method getRainbowSupportBotService * @nodered true * @instance * @description * This API can be used to get Rainbow support bot service (Emily)
* @async * @category Bots * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Bot service unique identifier. | * | name | string | Bot title, like 'Emily'. | * | jid | string | Bot service's jid, should be like 'emily.rainbow.com'. | * | isRainbowSupportBot | Boolean | Indicates if the bot service corresponds to Rainbow support bot (Emily). | * | capabilities | string\[\] | List of capabilities tags | * | createdByUserId | string | Unique identifier of the bot service owner. | * | avatarId | string | Identifier of the Bot service's avatar.
| * | lastAvatarUpdateDate | Date-Time | Date of last bot avatar update.

* `null` value indicates that no avatar is set for this bot.
* Bot avatar can be customized by company (users from the company see the custom avatar instead of the default one set for the bot).
* if the bot has an avatar and this one is not customized for the company, `lastAvatarUpdateDate` corresponds to the date when the bot's owner set an avatar to the bot.
* otherwise if the bot has a customized avatar for the company, `lastAvatarUpdateDate` corresponds to the date when the administrator has set the customized avatar for this company. | * * @fulfil {Object} - result * @category async */ getRainbowSupportBotService(): Promise; /** * @public * @method getABotServiceData * @instance * @param {string} botId Bot Service unique identifier * @nodered true * @description * This API can be used to get a bot service data.
* @async * @category Bots * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Bot service unique identifier. | * | name | string | Bot title, like 'Emily'. | * | jid | string | Bot service's jid, should be like 'emily.rainbow.com'. | * | isRainbowSupportBot | Boolean | Indicates if the bot service corresponds to Rainbow support bot (Emily). | * | capabilities | string\[\] | List of capabilities tags | * | createdByUserId | string | Unique identifier of the bot service owner. | * | avatarId | string | Identifier of the Bot service's avatar.
| * | lastAvatarUpdateDate | Date-Time | Date of last bot avatar update.

* `null` value indicates that no avatar is set for this bot.
* Bot avatar can be customized by company (users from the company see the custom avatar instead of the default one set for the bot).
* if the bot has an avatar and this one is not customized for the company, `lastAvatarUpdateDate` corresponds to the date when the bot's owner set an avatar to the bot.
* otherwise if the bot has a customized avatar for the company, `lastAvatarUpdateDate` corresponds to the date when the administrator has set the customized avatar for this company. | * * @fulfil {Object} - result * @category async */ getABotServiceData(botId: string): Promise; /** * @public * @method getAllBotServices * @nodered true * @instance * @description * This API can be used to retrieve the list of bot services.
* @async * @param {string} format="small" Allows to retrieve more or less bot services details in response.
* - small: id, name, jid, capabilities * - medium: id, name, jid, isRainbowSupportBot, capabilities * - full: id, name, jid, isRainbowSupportBot, capabilities, createdByUserId, avatarId, lastAvatarUpdateDate * Default value : small. Possibles values : small, medium, full * @param {number} limit=100 Allow to specify the number of bot services to retrieve. Default value : 100 * @param {number} offset=0 Allow to specify the position of first bot to retrieve (first bot if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="name" Sort bots list based on the given field. Default value : name * @param {number} sortOrder=1 Specify order when sorting bots list. Default value : 1. Possibles values -1, 1 * @category Bots * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Bot service unique identifier. | * | name | string | Bot title, like 'Emily'. | * | jid | string | Bot service's jid, should be like 'emily.rainbow.com'. | * | isRainbowSupportBot | Boolean | Indicates if the bot service corresponds to Rainbow support bot (Emily). | * | capabilities | string\[\] | List of capabilities tags | * | createdByUserId | string | Unique identifier of the bot service owner. | * | avatarId | string | Identifier of the Bot service's avatar.
| * | lastAvatarUpdateDate | Date-Time | Date of last bot avatar update.

* `null` value indicates that no avatar is set for this bot.
* Bot avatar can be customized by company (users from the company see the custom avatar instead of the default one set for the bot).
* if the bot has an avatar and this one is not customized for the company, `lastAvatarUpdateDate` corresponds to the date when the bot's owner set an avatar to the bot.
* otherwise if the bot has a customized avatar for the company, `lastAvatarUpdateDate` corresponds to the date when the administrator has set the customized avatar for this company. | * * @fulfil {Object} - result * @category async */ getAllBotServices(format?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number): any; /** * @public * @nodered true * @method createRainbowMultifactorAuthenticationServerConfiguration * @instance * @since 2.29.0 * @description * This API allows to create a Rainbow multifactor authentication configuration for a given company. *
*
Users with `superadmin` role can create a Rainbow multifactor authentication configuration of any company. *
`bp_admin` users can only create a Rainbow multifactor authentication configuration for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
`organization_admin` users can only create a Rainbow multifactor authentication configuration for a company they manage (i.e. company linked to organization_admin's organization). *
`company_admin` users can only create a Rainbow multifactor authentication configuration of their own company. * * @async * @param {string} companyId Company unique identifier * @param {Boolean} enabledForAllCompanyUsers Enable or disable the use of these Rainbow multifactor authentication settings for all members of the company. Default value : false * @param {string} mfaName Name of Rainbow multifactor authentication configuration * @param {string} mfaType type of Rainbow multifactor authentication. Possibles values : none, totp * @param {string} mfaPolicy="never" Policy of Rainbow multifactor authentication. Default value : never. Possibles values : never, untrusted_only, always * @param {number} rememberDaysApplication Number of days when application and browsers are trusted * @param {Boolean} mfaCanBeDisabled let the user disable the multifactor authentication * @category Company Rainbow Multifactor Authentication Server * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | mfaId | string | unique identifier of Rainbow multifactor authentication | * | mfaType | string | Authentication multifactor type

Possibles values : `none`, `totp` | * | enabledForAllCompanyUsers | Boolean | Enable or disable the use of these Rainbow multifactor authentication settings for all members of comapny
When several Rainbow multifactor or SSO authentication types are configured for a company, the SSO authentication type having `enabledForAllCompanyUsers` set to true is used when users of this company authenticate in Rainbow (if user `authenticationType` setting is not set or equal to `DEFAULT`). | * | mfaName | string | Name of Rainbow multifactor authentication | * | mfaPolicy | string | Policy of Rainbow multifactor authentication

* `never`: no Multi Factor requested to the user
* `untrusted_only`: Multi Factor is requested to the user only for untrusted applications and browsers (user has the possibility to trust applications/browsers so that the multi factor is no longer requested for this application/browser during the number of days specified in `rememberDaysApplication` setting)
* `always`: Multi Factor is always requested to the user

Possibles values : `never`, `untrusted_only`, `always` | * | rememberDaysApplication | Number | Number of days when application and browsers are trusted | * | mfaCanBeDisabled | Boolean | let the user disable the multifactor authentication | * *
example of result : * ```json * { * "mfaId": "60ae30f1334f9a0741e4102f", * "mfaType": "totp", * "mfaPolicy" : "untrusted_only", * "enabledForAllCompanyUsers": false, * "mfaName": "totp example", * "rememberDaysApplication": 60 * } * ``` * */ createRainbowMultifactorAuthenticationServerConfiguration(companyId: string, enabledForAllCompanyUsers: boolean, mfaName: string, mfaType: string, mfaPolicy: string, rememberDaysApplication: string, mfaCanBeDisabled: boolean): Promise; /** * @public * @nodered true * @method deleteRainbowMultifactorConfiguration * @since 2.29.0 * @instance * @description * This API allows to delete a Rainbow mfa policy server configuration for a given company. * *
Users with `superadmin` role can delete an Rainbow Mfa policy server configuration of any company. *
`bp_admin` users can only delete an Rainbow Mfa policy server configuration for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
`organization_admin` users can only delete an Rainbow Mfa policy server configuration for a company they manage *
`company_admin` users can only delete an Rainbow Mfa policy server configuration of their own company. * * @async * @param {string} companyId Company unique identifier * @param {string} mfaId Rainbow policy unique identifier * @category Company Rainbow Multifactor Authentication Server * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | deletion status | * *
example of result : * ```json * { * "status": "TOTP factor settings 'xyz' successfully deleted" * } * ``` * */ deleteRainbowMultifactorConfiguration(companyId: string, mfaId: string): Promise; /** * @public * @nodered true * @method getRainbowMultifactorConfiguration * @since 2.29.0 * @instance * @description * This API allows to get a Rainbow multifactor configuration for a given company. *
Users with `superadmin` role can get Rainbow multifactor configuration of any company. *
`bp_admin` users can only get Rainbow multifactor configuration for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
`organization_admin` users can only get Rainbow multifactor configuration for a company they manage (i.e. company linked to organization_admin's organization). *
`company_admin` users can only get Rainbow multifactor configuration of their own company. * * @async * @param {string} companyId Company unique identifier * @param {string} mfaId Rainbow policy unique identifier * @category Company Rainbow Multifactor Authentication Server * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | mfaId | string | unique identifier of Rainbow multifactor authentication | * | mfaType | string | Authentication multifactor type

Possibles values : `none`, `totp` | * | enabledForAllCompanyUsers | Boolean | Enable or disable the use of these Rainbow multifactor authentication settings for all members of the company
When several Rainbow multifactor or SSO authentication types are configured for a company, the SSO authentication type having `enabledForAllCompanyUsers` set to true is used when users of this company authenticate in Rainbow (if user `authenticationType` setting is not set or equal to `DEFAULT`). | * | mfaName | string | Name of Rainbow multifactor authentication | * | mfaPolicy | string | Policy of Rainbow multifactor authentication

* `never`: no Multi Factor requested to the user
* `untrusted_only`: Multi Factor is requested to the user only for untrusted applications and browsers (user has the possibility to trust applications/browsers so that the multi factor is no longer requested for this application/browser during the number of days specified in `rememberDaysApplication` setting)
* `always`: Multi Factor is always requested to the user

Possibles values : `never`, `untrusted_only`, `always` | * | rememberDaysApplication | Number | Number of days when application and browsers are trusted | * | mfaCanBeDisabled | Boolean | let the user disable the multifactor authentication | * *
example of result : * ```json * { * "mfaId": "60ae30f1334f9a0741e4102f", * "mfaType": "totp", * "mfaPolicy" : "untrusted_app", * "enabledForAllCompanyUsers": false, * "mfaName": "totp example", * "rememberDaysApplication": 60 * } * ``` * */ getRainbowMultifactorConfiguration(companyId: string, mfaId: string): Promise; /** * @public * @nodered true * @method getAllRainbowMultifactorConfiguration * @since 2.29.0 * @instance * @description * This API allows to get all Rainbow multifactor configuration for a given company. * *
Users with `superadmin` role can get Rainbow multifactor configuration of any company. *
`bp_admin` users can only get Rainbow multifactor configuration for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
`organization_admin` users can only get Rainbow multifactor configuration for a company they manage (i.e. company linked to organization_admin's organization). *
`company_admin` users can only get Rainbow multifactor configuration of their own company. * * @async * @param {string} companyId Company unique identifier * @param {string} format="medium" Allows to retrieve more or less policy details in response. * \- `small`: mfaType mfaId mfaName * \- `medium`: mfaType mfaId mfaName enableForAllCompanyUsers * \- `full`: all policy fields * * Default value : `medium`. Possibles values : `small`, `medium`, `full` * @category Company Rainbow Multifactor Authentication Server * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | mfType | string | type of Rainbow multifactor authentication | * | mfaId | string | unique identifier of Rainbow multifactor authentication | * | mfaName | string | Name of Rainbow multifactor authentication | * | enableForAllCompanyUsers | Boolean | Indicates if MFA is the default method authentication for all company users | * | mfaPolicy | string | Policy of Rainbow multifactor authentication

* `never`: no Multi Factor requested to the user
* `untrusted_only`: Multi Factor is requested to the user only for untrusted applications and browsers (user has the possibility to trust applications/browsers so that the multi factor is no longer requested for this application/browser during the number of days specified in `rememberDaysApplication` setting)
* `always`: Multi Factor is always requested to the user

Possibles values : `never`, `untrusted_only`, `always` | * | rememberDaysApplication optionnel | string | Indicates how long trusted device could bypass mutifactor authentication in case of untrusted_only policy | * *
example of result : * ```json * [ * { * "mfaType": "totp", * "mfaId": "60ae30f1334f9a0741e4102f", * "mfaName": "totp example", * "enableForAllCompanyUsers": false * } * ] * ``` * */ getAllRainbowMultifactorConfiguration(companyId: string, format?: string): Promise; /** * @public * @nodered true * @method updateRainbowMultifactorAuthenticationConfiguration * @since 2.29.0 * @instance * @description * This API allows to update an Rainbow multifactor authentication configuration for a given company. * *
Users with `superadmin` role can create a Rainbow multifactor authentication configuration of any company. *
`bp_admin` users can only create a Rainbow multifactor authentication configuration for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
`organization_admin` users can only create a Rainbow multifactor authentication configuration for a company they manage (i.e. company linked to organization_admin's organization). *
`company_admin` users can only create a Rainbow multifactor authentication configuration of their own company. * * @async * @param {string} companyId Company unique identifier * @param {string} mfaId Rainbow policy unique identifier * @param {boolean} enabledForAllCompanyUsers Enable or disable the use of these Rainbow multifactor authentication settings for all members of the company *
When several Rainbow multifactor or SSO authentication types are configured for a company, the multifactor authentication type having `enabledForAllCompanyUsers` set to true is used when users of this company authenticate in Rainbow (if user `authenticationType` setting is not set or equal to `DEFAULT`). *
If `enabledForAllCompanyUsers` is set to true during MFA setting creation of update, the previous MFA or SSO having `enabledForAllCompanyUsers` set to true is updated to false so that there will always be only one authentication setting with `enabledForAllCompanyUsers` set to true. * @param {string} mfaName Name of Rainbow multifactor authentication configuration * @param {string} mfaType type of Rainbow multifactor authentication * @param {string} mfaPolicy Policy of Rainbow multifactor authentication * *
- `never`: no Multi Factor requested to the user *
- `untrusted_only`: Multi Factor is requested to the user only for untrusted applications and browsers (user has the possibility to trust applications/browsers so that the multi factor is no longer requested for this application/browser during the number of days specified in `rememberDaysApplication` setting) *
- `always`: Multi Factor is always requested to the user * *
Possibles values : `never`, `untrusted_only`, `always` * @param {string} rememberDaysApplication Number of days when application and browsers are trusted. Default value : 365 * @param {boolean} mfaCanBeDisabled let the user disable the multifactor authentication. Default value : false * @category Company Rainbow Multifactor Authentication Server * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | mfaId | string | unique identifier of Rainbow multifactor authentication | * | mfaType | string | Authentication multifactor type

Possibles values : `none`, `totp` | * | enabledForAllCompanyUsers | Boolean | Enable or disable the use of these Rainbow multifactor authentication settings for all members of company
When several Rainbow multifactor or SSO authentication types are configured for a company, the SSO authentication type having `enabledForAllCompanyUsers` set to true is used when users of this company authenticate in Rainbow (if user `authenticationType` setting is not set). | * | mfaName | string | Name of Rainbow multifactor authentication | * | mfaPolicy | string | Policy of Rainbow multifactor authentication

* `never`: no Multi Factor requested to the user
* `untrusted_only`: Multi Factor is requested to the user only for untrusted applications and browsers (user has the possibility to trust applications/browsers so that the multi factor is no longer requested for this application/browser during the number of days specified in `rememberDaysApplication` setting)
* `always`: Multi Factor is always requested to the user

Possibles values : `never`, `untrusted_only`, `always` | * | rememberDaysApplication | Number | Number of days when application and browsers are trusted | * | mfaCanBeDisabled | Boolean | let the user disable the multifactor authentication | * *
example of result : * ```json * { * "mfaId": "60ae30f1334f9a0741e4102f", * "mfaType": "totp", * "mfaPolicy" : "untrusted_app", * "enabledForAllCompanyUsers": true, * "mfaName": "totp example", * "rememberDaysApplication": 70 * } * ``` * */ updateRainbowMultifactorAuthenticationConfiguration(companyId: string, mfaId: string, enabledForAllCompanyUsers: boolean, mfaName: string, mfaType: string, mfaPolicy: string, rememberDaysApplication: string, mfaCanBeDisabled: boolean): Promise; /** * @public * @nodered true * @method createAJoinCompanyLink * @instance * @description * This API can be used by company admin users to create a join company link for his company.
* Join company links allow company administrators to generate an id that can be used by users to create their account in this company.
* @async * @param {string} companyId Company unique identifier. Default value is the current logued in user's company.
* @param {string} description Join company link description. * @param {boolean} isEnabled=true Boolean allowing to enable or disable the join company link.
* * if the link is enabled, users can register using it,
* * if the link is disabled, users can't register using it.
* Default value : `true` * @param {string} expirationDate Date of expiration of the Join company link
* If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied.
* * `expirationDate` has to be provided in UTC timezone.
* * `expirationDate` must be greater than the current date (not possible to set expirationDate to a passed date).
* @param {number} maxNumberUsers Maximum number of users allowed to register in the company using this join company link.
If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. * @category Company join companies links * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company link unique Id | * | companyId | string | Company related to the join company link | * | creationDate | Date-Time | Creation date of the join company link | * | createdByAdminId | string | Unique Id of the admin who created the join company link | * | description optionnel | string | Join company link description | * | isEnabled | Boolean | Boolean allowing to enable or disable the join company link.

* if the link is enabled, users can register using it,
* if the link is disabled, users can't register using it. | * | expirationDate optionnel | Date-Time | Date of expiration of the Join company link
If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied. | * | maxNumberUsers optionnel | Number | Maximum number of users allowed to register in the company using this join company link.
If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. | * | nbUsersRegistered | Number | Number of users that used this join company link to register in the company. | * * @fulfil {Object} - result * @category async */ createAJoinCompanyLink(companyId?: string, description?: string, isEnabled?: boolean, expirationDate?: string, maxNumberUsers?: number): Promise; /** * @public * @nodered true * @method deleteAJoinCompanyLink * @instance * @description * This API can be used by company `admin` users to delete a join company link by id
* Join company links allow company administrators to generate an id that can be used by users to create their account in this company.
* Join company links can't be deleted if they have been used by users to register in the related company (in that case they can only be disabled, by updating `isEnabled` value to false).
* @async * @param {string} companyId Company unique identifier. Default value is the current logued in user's company.
* @param {string} joinCompanyLinkId Join company link unique identifier. * @category Company join companies links * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Join company link Object | * | status | string | Deletion status | * | id | string | Join company link unique Id | * | companyId | string | Company related to the join company link | * | creationDate | Date-Time | Creation date of the join company link | * | createdByAdminId | string | Unique Id of the admin who created the join company link | * | description optionnel | string | Join company link description | * | isEnabled | Boolean | Boolean allowing to enable or disable the join company link.

* if the link is enabled, users can register using it,
* if the link is disabled, users can't register using it. | * | expirationDate optionnel | Date-Time | Date of expiration of the Join company link
If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied. | * | maxNumberUsers optionnel | Number | Maximum number of users allowed to register in the company using this join company link.
If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. | * | nbUsersRegistered | Number | Number of users that used this join company link to register in the company. | * * @fulfil {Object} - result * @category async */ deleteAJoinCompanyLink(companyId: string, joinCompanyLinkId: string): Promise; /** * @public * @nodered true * @method getAJoinCompanyLink * @instance * @description * This API can be used by company admin users to get a join company link by id.
* Join company links allow company administrators to generate an id that can be used by users to create their account in this company.
* @async * @param {string} companyId Company unique identifier. Default value is the current logued in user's company.
* @param {string} joinCompanyLinkId Join company link unique identifier. * @category Company join companies links * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Join company link Object | * | id | string | Join company link unique Id | * | companyId | string | Company related to the join company link | * | creationDate | Date-Time | Creation date of the join company link | * | createdByAdminId | string | Unique Id of the admin who created the join company link | * | description optionnel | string | Join company link description | * | isEnabled | Boolean | Boolean allowing to enable or disable the join company link.

* if the link is enabled, users can register using it,
* if the link is disabled, users can't register using it. | * | expirationDate optionnel | Date-Time | Date of expiration of the Join company link
If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied. | * | maxNumberUsers optionnel | Number | Maximum number of users allowed to register in the company using this join company link.
If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. | * | nbUsersRegistered | Number | Number of users that used this join company link to register in the company. | * * @fulfil {Object} - result * @category async */ getAJoinCompanyLink(companyId: string, joinCompanyLinkId: string): Promise; /** * @public * @method getAllJoinCompanyLinks * @nodered true * @instance * @description * This API can be used by company admin users to list existing join company links for his company.
* Join company links allow company administrators to generate an id that can be used by users to create their account in this company.
* @async * @param {string} companyId Company unique identifier. Default value is the current logued in user's company.
* @param {string} format="small" Allows to retrieve more or less join company links details in response. *
* `small`: id, companyId, isEnabled *
* `medium`: id, companyId, isEnabled, expirationDate, maxNumberUsers *
* `full`: all join company links fields * Default value : `small`. Possibles values : `small`, `medium`, `full`. * @param {string} createdByAdminId List join company links created by the specified administrator id(s). * @param {boolean} isEnabled List join company links with the specified isEnabled value (true/false). * @param {string} fromExpirationDate List join company links expiring after the given date. * @param {string} toExpirationDate List join company links expiring before the given date. * @param {string} fromNbUsersRegistered List join company links that have been used by at least the given number (nbUsersRegistered greater than or equal to the requested toNbUsersRegistered number). * @param {string} toNbUsersRegistered List join company links that have been used by at less than the given number (nbUsersRegistered lower than or equal to the requested toNbUsersRegistered number). * @param {number} limit=100 Allow to specify the number of items to retrieve. Default value : 100. * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : 0. * @param {string} sortField Sort items list based on the given field. * @param {number} sortOrder=1 Specify order when sorting items list. Default value : 1. Possibles values : -1, 1 . * @category Company join companies links * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Join company link Object | * | limit | Number | Number of requested items | * | offset | Number | Requested position of the first item to retrieve | * | total | Number | Total number of items | * | id | string | Join company link unique Id | * | companyId | string | Company related to the join company link | * | creationDate | Date-Time | Creation date of the join company link | * | createdByAdminId | string | Unique Id of the admin who created the join company link | * | description optionnel | string | Join company link description | * | isEnabled | Boolean | Boolean allowing to enable or disable the join company link.

* if the link is enabled, users can register using it,
* if the link is disabled, users can't register using it. | * | expirationDate optionnel | Date-Time | Date of expiration of the Join company link
If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied. | * | maxNumberUsers optionnel | Number | Maximum number of users allowed to register in the company using this join company link.
If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. | * | nbUsersRegistered | Number | Number of users that used this join company link to register in the company. | * * @fulfil {Object} - result * @category async */ getAllJoinCompanyLinks(companyId: any, format?: string, createdByAdminId?: string, isEnabled?: boolean, fromExpirationDate?: string, toExpirationDate?: string, fromNbUsersRegistered?: string, toNbUsersRegistered?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number): Promise; /** * @public * @method updateAJoinCompanyLink * @nodered true * @instance * @description * This API can be used by company admin users to update a join company link for his company.
* Join company links allow company administrators to generate an id that can be used by users to create their account in this company.
* @async * @param {string} companyId Company unique identifier. Default value is the current logued in user's company.
* @param {string} joinCompanyLinkId Join company link unique identifier. * @param {string} description Join company link description. * @param {boolean} isEnabled=true Boolean allowing to enable or disable the join company link.
* * if the link is enabled, users can register using it,
* * if the link is disabled, users can't register using it.
* Default value : `true`
* @param {string} expirationDate Date of expiration of the Join company link
* If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied.
* `expirationDate` has to be provided in UTC timezone.
* `expirationDate` must be greater than the current date (not possible to set expirationDate to a passed date).
* @param {string} maxNumberUsers Maximum number of users allowed to register in the company using this join company link.
* If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. * @category Company join companies links * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Join company link Object | * | id | string | Join company link unique Id | * | companyId | string | Company related to the join company link | * | creationDate | Date-Time | Creation date of the join company link | * | createdByAdminId | string | Unique Id of the admin who created the join company link | * | description optionnel | string | Join company link description | * | isEnabled | Boolean | Boolean allowing to enable or disable the join company link.

* if the link is enabled, users can register using it,
* if the link is disabled, users can't register using it. | * | expirationDate optionnel | Date-Time | Date of expiration of the Join company link
If a user tries to register using a link while its `expirationDate` is less than the current date, user registration will be denied. | * | maxNumberUsers optionnel | Number | Maximum number of users allowed to register in the company using this join company link.
If a user tries to register using a link while its `nbUsersRegistered` is equal to `maxNumberUsers`, user registration will be denied. | * | nbUsersRegistered | Number | Number of users that used this join company link to register in the company. | * * @fulfil {Object} - result * @category async */ updateAJoinCompanyLink(companyId: string, joinCompanyLinkId: string, description: string, isEnabled: boolean, expirationDate: string, maxNumberUsers: number): Promise; /** * @public * @nodered true * @method createCompanyFromDefault * @instance * @description * This API API allows to create a company for a user belonging to the 'Default' company is able to create his own company.
* Then he is automatically moved to it and becomes the 'company_admin' of it.
*
* The company's name is checked and must be unique.
* The logged in user musn't have already an admin or superadmin role
*
* The company is created with visibility='public' and userSelfRegisterEnabled=false. The user, promoted to 'company_admin', can then update these values.
* @async * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | meetingRecordingCustomisation | string | Activate/Deactivate the capability for a user to record a meeting.
Defines if a user can record a meeting.
meetingRecordingCustomisation can be:

* `enabled`: The user can record a meeting.
* `disabled`: The user can't record a meeting. | * | eLearningGamificationCustomisation | string | Activate/Deactivate the capability for a user to earn badges for Elearning progress.
Defines if a user can earn badges for Elearning progress.
eLearningGamificationCustomisation can be:

* `enabled`: The user can earn badges for Elearning progress.
* `disabled`: The user can't earn badges for Elearning progress. | * | eLearningCustomisation | string | Activate/Deactivate the capability for a user to participate on a Elearning training.
Defines if a user can particapate on an Elearning training.
eLearningCustomisation can be:

* `enabled`: The user can participate on an Elearning training.
* `disabled`: The user can't participate on an Elearning training. | * | autoAcceptUserInvitations optionnel | Boolean | Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled)

Default value : `true` | * | data | Object | Company Object. | * | id | string | Company unique identifier | * | creationDate | Date-Time | Company creation date (Read only) | * | statusUpdatedDate | Date-Time | Date of last company status update (Read only) | * | lastAvatarUpdateDate | Date-Time | Date of last company avatar update (Read only) | * | name | string | Company name | * | country optionnel | string | Company country (ISO 3166-1 alpha3 format)

The list of allowed countries can be obtained using the API AdminService::getListOfCountries() | * | street optionnel | string | Company street
| * | city optionnel | string | Company city
| * | state optionnel | string | When country is 'USA' or 'CAN', a state must be defined. Else it is not managed.

The list of allowed states can be obtained using the API AdminService::getListOfCountries() for the associated countries.

* List of allowed states for `USA`:
* `AA`: "Armed Forces America",
* `AE`: "Armed Forces",
* `AP`: "Armed Forces Pacific",
* `AK`: "Alaska",
* `AL`: "Alabama",
* `AR`: "Arkansas",
* `AZ`: "Arizona",
* `CA`: "California",
* `CO`: "Colorado",
* `CT`: "Connecticut",
* `DC`: Washington DC",
* `DE`: "Delaware",
* `FL`: "Florida",
* `GA`: "Georgia",
* `GU`: "Guam",
* `HI`: "Hawaii",
* `IA`: "Iowa",
* `ID`: "Idaho",
* `IL`: "Illinois",
* `IN`: "Indiana",
* `KS`: "Kansas",
* `KY`: "Kentucky",
* `LA`: "Louisiana",
* `MA`: "Massachusetts",
* `MD`: "Maryland",
* `ME`: "Maine",
* `MI`: "Michigan",
* `MN`: "Minnesota",
* `MO`: "Missouri",
* `MS`: "Mississippi",
* `MT`: "Montana",
* `NC`: "North Carolina",
* `ND`: "North Dakota",
* `NE`: "Nebraska",
* `NH`: "New Hampshire",
* `NJ`: "New Jersey",
* `NM`: "New Mexico",
* `NV`: "Nevada",
* `NY`: "New York",
* `OH`: "Ohio",
* `OK`: "Oklahoma",
* `OR`: "Oregon",
* `PA`: "Pennsylvania",
* `PR`: "Puerto Rico",
* `RI`: "Rhode Island",
* `SC`: "South Carolina",
* `SD`: "South Dakota",
* `TN`: "Tennessee",
* `TX`: "Texas",
* `UT`: "Utah",
* `VA`: "Virginia",
* `VI`: "Virgin Islands",
* `VT`: "Vermont",
* `WA`: "Washington",
* `WI`: "Wisconsin",
* `WV`: "West Virginia",
* `WY`: "Wyoming"
* List of allowed states for `CAN`:
* `AB`: "Alberta",
* `BC`: "British Columbia",
* `MB`: "Manitoba",
* `NB`: "New Brunswick",
* `NL`: "Newfoundland and Labrador",
* `NS`: "Nova Scotia",
* `NT`: "Northwest Territories",
* `NU`: "Nunavut",
* `ON`: "Ontario",
* `PE`: "Prince Edward Island",
* `QC`: "Quebec",
* `SK`: "Saskatchewan",
* `YT`: "Yukon"

Possibles values `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"` | * | postalCode optionnel | string | Company postal code
| * | currency optionnel | string | Company currency, for payment of premium offers (ISO 4217 format)
For now, only USD, EUR and CNY are supported

Possibles values `USD`, `EUR`, `CNY` | * | status | string | Company status

Possibles values `initializing`, `active`, `alerting`, `hold`, `terminated` | * | visibility optionnel | string | Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies).

* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
* `private`: User **can't** be searched by external users (even within his organisation) / can search external users. User can invite external users / can be invited by external users
* `organisation`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
* `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users

External users mean public user not being in user's company nor user's organisation nor a company visible by user's company.

Note related to organisation visibility:

* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies inside the same organisation.
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched outside the organisation's companies.

Default value : `private`

Possibles values `public`, `private`, `organisation`, `closed`, `isolated` | * | visibleBy | string\[\] | If visibility is private, list of companyIds for which visibility is allowed | * | adminEmail optionnel | string | Company contact person email | * | supportEmail optionnel | string | Company support email | * | supportUrlFAQ optionnel | string | Company support URL | * | companyContactId optionnel | string | User Id of a Rainbow user which is the contact for this company | * | disableCCareAdminAccess optionnel | Boolean | When True, disables the access to the customer care logs for admins of this company.
Note that if `disableCCareAdminAccessCustomers` is enabled on its BP company or `disableCCareAdminAccessResellers` is enabled on its BP VAD company, this setting is forced to true. | * | disableCCareAdminAccessCustomers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the customers company.
This setting is only applicable for BP companies (`isBP`=true)

* If the BP company is a DR or an IR, enabling this setting disables the access to the customer care logs for the admins of all its customers companies.
* If the BP company is a VAD, enabling this setting disables the access to the customer care logs for all the admins of its customers companies.
Note that the bp_admins/admins of all the BP IRs companies linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessResellers` on the BP VAD company allows to disable it). | * | disableCCareAdminAccessResellers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company.
This setting is only applicable for BP VAD companies (`isBP`=true and `bpType`=`VAD`)
Enabling this setting disables on the BP VAD company disables the access to the customer care logs for the bp_admins/admins of all the BP IRs linked to this VAD, and to all the admins of their customers.
Note that the admins of all the customer companies directly linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessCustomers` on the BP VAD company allows to disable it). | * | userSelfRegisterEnabled | Boolean | Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process | * | userSelfRegisterAllowedDomains | string\[\] | Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) | * | slogan optionnel | string | A free string corresponding to the slogan of the company (255 char length) | * | description optionnel | string | A free string that describes the company (2000 char length) | * | size | string | An overview of the number of employees

Possibles values `"self-employed"`, `"1-10 employees"`, `"11-50 employees"`, `"51-200 employees"`, `"201-500 employees"`, `"501-1000 employees"`, `"1001-5000 employees"`, `"5001-10,000 employees"`, `"10,001+ employees"` | * | economicActivityClassification optionnel | string | * `A`: AGRICULTURE, FORESTRY AND FISHING
* `B`: MINING AND QUARRYING
* `C`: MANUFACTURING
* `D`: ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY
* `E`: WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES
* `F`: CONSTRUCTION
* `G`: WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES
* `H`: TRANSPORTATION AND STORAGE
* `I`: ACCOMMODATION AND FOOD SERVICE ACTIVITIES
* `J`: INFORMATION AND COMMUNICATION
* `K`: FINANCIAL AND INSURANCE ACTIVITIES
* `L`: REAL ESTATE ACTIVITIES
* `M`: PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES
* `N`: ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES
* `O`: PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY
* `P`: EDUCATION
* `Q`: HUMAN HEALTH AND SOCIAL WORK ACTIVITIES
* `R`: ARTS, ENTERTAINMENT AND RECREATION
* `S`: OTHER SERVICE ACTIVITIES
* `T`: ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE
* `U`: ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES

Possibles values `"NONE"`, `"A"`, `"B"`, `"C"`, `"D"`, `"E"`, `"F"`, `"G"`, `"H"`, `"I"`, `"J"`, `"K"`, `"L"`, `"M"`, `"N"`, `"O"`, `"P"`, `"Q"`, `"R"`, `"S"`, `"T"`, `"U"` | * | giphyEnabled optionnel | Boolean | Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations) | * | website optionnel | string | Company website URL | * | organisationId | string | Optional identifier to indicate the company belongs to an organisation | * | catalogId | string | Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe. | * | bpId | string | Optional identifier which links the company to the corresponding Business partner company | * | adminHasRightToUpdateSubscriptions optionnel | Boolean | In the case the company is linked to a Business Partner company, indicates if the `bp_admin` allows the `company_admin` to update the subscriptions of his company (if enable, allowed operations depend of the value of `adminAllowedUpdateSubscriptionsOps`).
Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company. | * | adminAllowedUpdateSubscriptionsOps optionnel | string | In the case the company is linked to a Business Partner company and `adminHasRightToUpdateSubscriptions` is enabled, indicates the update operations for which the `bp_admin` allows the `company_admin` to perform on the subscriptions of his company.

Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company.

Possible values:

* `all`: company_admin is allowed to perform all update operations on the subscriptions of his company
* `increase_only`: company_admin is only allowed to increase `maxNumberUsers` on the subscriptions of his company (decrease is forbidden)

Possibles values `all`, `increase_only` | * | isBP | Boolean | Indicates if the company is a Business partner company

Default value : `false` | * | bpType optionnel | string | Indicates BP Company type

* `IR`: Indirect Reseller,
* `VAD`: Value Added Distributor,
* `DR`: Direct Reseller.

Possibles values `IR`, `VAD`, `DR` | * | bpBusinessModel optionnel | string | Indicates BP business model | * | bpApplicantNumber optionnel | string | Reference of the Business Partner in ALE Finance tools (SAP) | * | bpCRDid optionnel | string | Reference of the Business Partner in CDR | * | bpHasRightToSell optionnel | Boolean | Indicates if the Business has the right to sell | * | bpHasRightToConnect optionnel | Boolean | When True, the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI | * | bpIsContractAccepted optionnel | Boolean | Indicates if the Business has accepted the contract and can sell Rainbow offers | * | bpContractAcceptationInfo optionnel | Object | If the Business has accepted the contract, indicates who accepted the contract, Only visible by `superadmin` and `support`. | * | acceptationDate | Date-Time | Date of contract acceptation by the BP admin | * | bpAdminId | string | User Id of the BP admin who accepted the contract | * | offerType | string | Allowed company offer types

Possibles values `freemium`, `premium` | * | bpAdminLoginEmail | string | User loginEmail of the BP admin who accepted the contract | * | businessSpecific optionnel | string | When the customer has subscribed to specific business offers, this field is set to the associated specific business (ex: HDS for HealthCare business specific)

Possibles values `HDS` | * | externalReference optionnel | string | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.
| * | externalReference2 optionnel | string | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.
| * | avatarShape optionnel | string | Company's avatar customization

Possibles values `square`, `circle` | * | allowUsersSelectTheme | Boolean | Allow users of this company to select a theme among the ones available (owned or visible by the company). | * | allowUsersSelectPublicTheme | Boolean | Allow users of this company to select a public theme. | * | selectedTheme optionnel | Object | Set the selected theme(s) for users of the company. | * | light optionnel | string | Set the selected theme light for users of the company. | * | dark optionnel | string | Set the selected theme dark for users of the company. | * | adminCanSetCustomData optionnel | Boolean | Whether or not administrators can set `customData` field for their own company. | * | isLockedByBp optionnel | Boolean | Whether or not BP company has locked themes so that indicates if company admin can manage themes (create/update/delete). | * | superadminComment optionnel | string | Free field that only `superadmin` can see
| * | bpBusinessType optionnel | string\[\] | Business type that can be sold by a BP.

Possibles values `voice_by_partner`, `voice_by_ale`, `conference`, `default` | * | billingModel optionnel | string | Billing model that can be subscribed for this company.

Possibles values `monthly`, `prepaid_1y`, `prepaid_3y`, `prepaid_5y` | * | office365Tenant optionnel | string | Office365 tenant configured for this company. | * | office365ScopesGranted optionnel | string\[\] | Scopes granted to Rainbow for usage of Microsoft Office365 APIs.
If no office365Tenant is set or if admin has not granted access of Office365 APIs to Rainbow for the configured office365Tenant, office365ScopesGranted is set to an empty Array.
Otherwise, office365ScopesGranted lists the scopes requested by Rainbow to use Office365 APIs for the configured office365Tenant. This field can be used to determine if the admin must re-authenticate to Microsoft Office365 in the case new scopes are requested for Rainbow application (scopes requested for the current version of office365-portal are listed in API GET /api/rainbow/office365/v1.0/consent).

Possibles values `directory`, `calendar` | * | mobilePermanentConnectionMode | Boolean | deactivate push mode for mobile devices.
When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection.
For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. | * | fileSharingCustomisation | string | Activate/Deactivate file sharing capability per company
Define if the company can use the file sharing service then, allowed to download and share file.
FileSharingCustomisation can be:

* `enabled`: Each user of the company can use the file sharing service, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can use the file sharing service, except when his own capability is set to 'enabled'. When one user of the company has the capability 'fileSharingCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | userTitleNameCustomisation | string | Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
Define if the company allows his users to change some profile data.
userTitleNameCustomisation can be:

* `enabled`: Each user of the company can change some profile data, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can change some profile data, except when his own capability is set to 'enabled'. When one user of the company has the capability 'userTitleNameCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | softphoneOnlyCustomisation | string | Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services and but to focus to telephony services.
Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
softphoneOnlyCustomisation can be:

* `enabled`: The user switch to a softphone mode only.
* `disabled`: The user can use telephony services, chat, bubbles, channels meeting services and so on. | * | useRoomCustomisation | string | Activate/Deactivate the capability for a user to use bubbles.
Define if a user can create bubbles or participate in bubbles (chat and web conference).
useRoomCustomisation can be:

* `enabled`: Each user of the company can use bubbles.
* `disabled`: No user of the company can use bubbles. | * | phoneMeetingCustomisation | string | Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
Define if a user has the right to join phone meetings.
phoneMeetingCustomisation can be:

* `enabled`: Each user of the company can join phone meetings.
* `disabled`: No user of the company can join phone meetings. | * | useChannelCustomisation | string | Activate/Deactivate the capability for a user to use a channel.
Define if a user has the right to create channels or be a member of channels.
useChannelCustomisation can be:

* `enabled`: Each user of the company can use some channels.
* `disabled`: No user of the company can use some channel. | * | useScreenSharingCustomisation | string | Activate/Deactivate the capability for a user to share a screen.
Define if a user has the right to share his screen.
useScreenSharingCustomisation can be:

* `enabled`: Each user of the company can share his screen.
* `disabled`: No user of the company can share his screen. | * | useWebRTCVideoCustomisation | string | Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC video conversation.
* `disabled`: No user of the company can switch to a Web RTC video conversation. | * | useWebRTCAudioCustomisation | string | Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC audio conversation.
* `disabled`: No user of the company can switch to a Web RTC audio conversation. | * | instantMessagesCustomisation | string | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
instantMessagesCustomisation can be:

* `enabled`: Each user of the company can use instant messages.
* `disabled`: No user of the company can use instant messages. | * | userProfileCustomisation | string | Activate/Deactivate the capability for a user to modify his profile.
Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
userProfileCustomisation can be:

* `enabled`: Each user of the company can modify his profile.
* `disabled`: No user of the company can modify his profile. | * | fileStorageCustomisation | string | Activate/Deactivate the capability for a user to access to Rainbow file storage.
Define if a user has the right to upload/download/copy or share documents.
fileStorageCustomisation can be:

* `enabled`: Each user of the company can manage and share files.
* `disabled`: No user of the company can manage and share files. | * | overridePresenceCustomisation | string | Activate/Deactivate the capability for a user to change manually his presence.
Define if a user has the right to change his presence manually or only use automatic states.
overridePresenceCustomisation can be:

* `enabled`: Each user of the company can change his presence.
* `disabled`: No user of the company can change his presence. | * | alertNotificationReception | string | Activate/Deactivate the capability for a user to receive alert notification.
Define if a user has the right to receive alert notification
alertNotificationReception can be:

* `enabled`: Each user of the company can receive alert notification.
* `disabled`: No user of the company can receive alert notification. | * | alertNotificationSending | string | Activate/Deactivate the capability for a user to send alert notification.
Define if a user has the right to send alert notification
alertNotificationSending can be:

* `enabled`: Each user of the company can send alert notification.
* `disabled`: No user of the company can send alert notification. | * | changeTelephonyCustomisation | string | Activate/Deactivate the ability for a user to modify some telephony settings.
Define if a user has the right to modify telephony settings like forward activation ....
changeTelephonyCustomisation can be:

* `enabled`: The user can modify telephony settings.
* `disabled`: The user can't modify telephony settings. | * | changeSettingsCustomisation | string | Activate/Deactivate the ability for a user to change all client general settings.
Define if a user has the right to change his client general settings.
changeSettingsCustomisation can be:

* `enabled`: The user can change all client general settings.
* `disabled`: The user can't change any client general setting. recordingConversationCustomisation Activate/Deactivate the capability for a user to record a conversation.
Define if a user has the right to record a conversation (for P2P and multi-party calls).
recordingConversationCustomisation can be:
* `enabled`: The user can record a peer to peer or a multi-party call.
* `disabled`: The user can't record a peer to peer or a multi-party call. | * | useGifCustomisation | string | Activate/Deactivate the ability for a user to Use GIFs in conversations.
Define if a user has the is allowed to send animated GIFs in conversations
useGifCustomisation can be:

* `enabled`: The user can send animated GIFs in conversations.
* `disabled`: The user can't send animated GIFs in conversations. | * | useDialOutCustomisation | string | Activate/Deactivate the capability for a user to use dial out in phone meetings.
Define if a user is allowed to be called by the Rainbow conference bridge.
useDialOutCustomisation can be:

* `enabled`: The user can be called by the Rainbow conference bridge.
* `disabled`: The user can't be called by the Rainbow conference bridge. | * | fileCopyCustomisation | string | Activate/Deactivate the capability for a user to copy files
Define if one or all users of a company is allowed to copy any file he receives in his personal cloud space.
fileCopyCustomisation can be:

* `enabled`: The user can make a copy of a file to his personal cloud space.
* `disabled`: The user can't make a copy of a file to his personal cloud space. | * | fileTransferCustomisation | string | Activate/Deactivate the ability for a user to transfer files.
Define if one or all users of a company has the right to copy a file from a conversation then share it inside another conversation.
fileTransferCustomisation can be:

* `enabled`: The user can transfer a file doesn't belong to him.
* `disabled`: The user can't transfer a file doesn't belong to him. | * | forbidFileOwnerChangeCustomisation | string | Activate/Deactivate the ability for a user to loose the ownership on one file.
Define if one or all users can drop the ownership of a file to another Rainbow user of the same company
forbidFileOwnerChangeCustomisation can be:

* `enabled`: The user can't give the ownership of his file.
* `disabled`: The user can give the ownership of his file. | * | readReceiptsCustomisation | string | Activate/Deactivate the capability for a user to allow a sender to check if a chat message is read.
Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
This right is used by Ucaas or Cpaas application to show either or not a message is acknowledged. No check is done on backend side.
readReceiptsCustomisation can be:

* `enabled`: Each user of the company allow the sender to check if an IM is read.
* `disabled`: No user of the company allow the sender to check if an IM is read. | * | useSpeakingTimeStatistics | string | Activate/Deactivate the ability for a user to see speaking time statistics..
Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
useSpeakingTimeStatistics can be:

* `enabled`: Each user of the company can use meeting speaking time statistics.
* `disabled`: No user of the company can use meeting speaking time statistics. | * | defaultLicenseGroup | string | Group of license to assign to user when finalizing his account (e.g. Enterprise, Business ...) | * | defaultOptionsGroups | string\[\] | List of options to assign to user when finalizing his account (e.g. Alert ...) | * | selectedThemeCustomers optionnel | Object | Set the selected theme(s) for customers of this BP company.
This attribute only applies for BP companies. | * | light optionnel | string | Set the selected theme light for customers of this BP company. | * | dark optionnel | string | Set the selected theme dark for customers of this BP company. | * | ddiReadOnly optionnel | Boolean | Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies. | * | locked optionnel | Boolean | Allow to lock selected theme for customers. If true, customers won't be able to manage themes (create/update/delete). | * | customData optionnel | Object | Company's custom data.
Object with free keys/values.
It is up to the client to manage the company's customData (new customData provided overwrite the existing one).

Restrictions on customData Object:

* max 10 keys,
* max key length: 64 characters,
* max value length: 512 characters. | * * @fulfil {Object} - result * @category async * @param {string} name Company name * @param {string} visibility="public" Company visibility (define if users being in this company can be searched by users being in other company).
* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies having the same visibility inside the same organisation.
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched.
* Default value : public. Possibles values public, private, organisation * @param {string} country Company country * @param {string} state When country is 'USA' or 'CAN', a state must be defined. Else it is not managed. * @param {string} slogan A free string corresponding to the slogan of the company * @param {string} description A free string that describes the company * @param {string} size An overview of the number of employees
Possibles values "self-employed", "1-10 employees", "11-50 employees", "51-200 employees", "201-500 employees", "501-1000 employees", "1001-5000 employees", "5001-10,000 employees", "10,001+ employees" * @param {string} economicActivityClassification Classification of economic Activity * @param {string} website Company website URL * @param {string} avatarShape Company's avatar customization * @param {boolean} giphyEnabled Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations) */ createCompanyFromDefault(name: string, visibility?: string, country?: string, state?: string, slogan?: string, description?: string, size?: string, economicActivityClassification?: string, website?: string, avatarShape?: string, giphyEnabled?: boolean): Promise; /** * @public * @nodered true * @method getAllCompaniesVisibleByUser * @instance * @nodered true * @description * This API allows users to get all companies.
* Users with user role can only retrieve their own company and companies they can see (companies with visibility=public, companies having user's companyId in visibleBy field, companies being in user's company organization and having visibility=organization, BP company of user's company).
* Users with analytics can retrieve all companies, but only the following fields are returned: id, creationDate, status, statusUpdatedDate, visibility, visibleBy, organisationId
* @async * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | List of company Objects. | * | limit | Number | Number of requested items | * | offset | Number | Requested position of the first item to retrieve | * | total | Number | Total number of items | * * @fulfil {Object} - the result * @category async * @param {string} format="small" Allows to retrieve more or less company details in response.
* * small: id, name
* * medium: id, name, status, adminEmail, companyContactId, country, website, slogan, description, size, economicActivityClassification, lastAvatarUpdateDate, lastBannerUpdateDate, avatarShape
* * full: id, name, status, adminEmail, companyContactId, country, website, slogan, description, size, economicActivityClassification, lastAvatarUpdateDate, lastBannerUpdateDate, avatarShape
* Default value : small. Possibles values : small, medium, full * @param {string} sortField="name" Sort items list based on the given field. Default value : name * @param {number} limit=100 Allow to specify the number of items to retrieve. Default value : 100. * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : 0 * @param {number} sortOrder=1 Specify order when sorting items list. Default value : 1. Possibles values -1, 1 * @param {string} name Allows to filter companies list on the given keyword(s) on field name.
* The filtering is case insensitive and on partial name match: all companies containing the provided name value will be returned (whatever the position of the match). * Ex: if filtering is done on comp, companies with the following names are match the filter 'My company', 'Company', 'A comp 1', 'Comp of comps', ... * @param {string} status Allows to filter companies list on the provided status(es). Possibles values initializing, active, alerting, hold, terminated * @param {string} visibility Allows to filter companies list on the provided visibility(ies). Possibles values public, private, organization, closed, isolated * @param {string} organisationId Allows to filter companies list on the organisationIds provided in this option. This filter can only be used if user has role(s) superadmin, support, bp_admin or admin * @param {boolean} isBP Allows to filter companies list on isBP field:
* * true returns only Business Partner companies,
* * false return only companies which are not Business Partner.
* This filter can only be used if user has role(s) superadmin, business_admin,customer_success_admin, support, bp_admin or admin.
* @param {boolean} hasBP Allows to filter companies list on companies being linked or not to a BP:
* * true returns only companies linked to a BP (BP IR companies are also returned),
* * false return only companies which are not linked to a BP.
* This filter can only be used if user has role(s) superadmin, business_admin,customer_success_admin, support or bp_admin.
* Users with role bp_admin can only use this filter with value false. * @param {string} bpType Allows to filter companies list on bpType field.
* This filter allow to get all the Business Partner companies from a given bpType.
* Only users with role superadmin, business_admin,customer_success_admin, support or bp_admin can use this filter. */ getAllCompaniesVisibleByUser(format?: string, sortField?: string, limit?: number, offset?: number, sortOrder?: number, name?: string, status?: string, visibility?: string, organisationId?: string, isBP?: boolean, hasBP?: boolean, bpType?: string): Promise; /** * @public * @nodered true * @method getCompanieByName * @instance * @nodered true * @description * This API allows users to get all companies by name.
* Users with user role can only retrieve their own company and companies they can see (companies with visibility=public, companies having user's companyId in visibleBy field, companies being in user's company organization and having visibility=organization, BP company of user's company).
* Users with analytics can retrieve all companies, but only the following fields are returned: id, creationDate, status, statusUpdatedDate, visibility, visibleBy, organisationId
* @async * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | List of company Objects. | * | limit | Number | Number of requested items | * | offset | Number | Requested position of the first item to retrieve | * | total | Number | Total number of items | * * @fulfil {Object} - the result * @category async * @param {string} format="small" Allows to retrieve more or less company details in response.
* * small: id, name
* * medium: id, name, status, adminEmail, companyContactId, country, website, slogan, description, size, economicActivityClassification, lastAvatarUpdateDate, lastBannerUpdateDate, avatarShape
* * full: id, name, status, adminEmail, companyContactId, country, website, slogan, description, size, economicActivityClassification, lastAvatarUpdateDate, lastBannerUpdateDate, avatarShape
* Default value : small. Possibles values : small, medium, full * @param {string} sortField="name" Sort items list based on the given field. Default value : name * @param {number} limit=100 Allow to specify the number of items to retrieve. Default value : 100. * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : 0 * @param {number} sortOrder=1 Specify order when sorting items list. Default value : 1. Possibles values -1, 1 * @param {string} name Allows to filter companies list on the given keyword(s) on field name.
* The filtering is case insensitive and on partial name match: all companies containing the provided name value will be returned (whatever the position of the match). * Ex: if filtering is done on comp, companies with the following names are match the filter 'My company', 'Company', 'A comp 1', 'Comp of comps', ... * @param {string} status="active" Allows to filter companies list on the provided status(es). Possibles values initializing, active, alerting, hold, terminated */ getCompanieByName(name?: string, status?: string, sortField?: string, format?: string, limit?: number, offset?: number, sortOrder?: number): Promise; /** * @public * @nodered true * @method getCompanyAdministrators * @instance * @description * This API allows users to list users being administrator of a company.
* Users can only retrieve administrators of their own company and administrators of companies visible by their own company (companies being in user's company organisation and having visibility=organization, and companies having user's companyId in visibleBy).
* * This API implement pagination, using limit and offset options in query string arguments (default is limit on 100 users). Result sorting can also be done using sort and order options (default is sort on displayName on ascending order).
* @async * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | User Object. | * | loginEmail | string | DEPRECATED (will be removed in a future release).
User email address (used for login) | * | id | string | User unique identifier | * | firstName | string | User first name | * | lastName | string | User last name | * | jid_im | string | User Jabber IM identifier | * | companyId | string | User company unique identifier | * | companyName | string | User company name | * | lastUpdateDate | Date-Time | Date of last user update (whatever the field updated) | * | lastAvatarUpdateDate | Date-Time | Date of last user avatar create/update, null if no avatar | * | isTerminated | Boolean | Indicates if the Rainbow account of this user has been deleted | * | guestMode | Boolean | Indicated a user embedded in a chat or conference room, as guest, with limited rights until he finalizes his registration. | * * @fulfil {Object} - the result * @category async * @param {string} companyId Company for which list of administrators is requested. * @param {string} format="small" Allows to retrieve more or less user details in response.
* - small: id, firstName, lastName, displayName, companyId, companyName, isTerminated
* - medium: id, firstName, lastName, displayName, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode
* - full: id, firstName, lastName, displayName, nickName, title, jobTitle, department, emails, phoneNumbers, country, state, language, timezone, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode, lastOfflineMailReceivedDate
* Default value : small. Possibles values : small, medium, full * @param {number} limit=100 Allow to specify the number of items to retrieve. Default value : 100. * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : 0 */ getCompanyAdministrators(companyId?: string, format?: string, limit?: number, offset?: number): Promise; /** * @public * @nodered true * @method createCompany * @instance * @description * Create a company
* @param {string} strName The name of the new company * @param {string} country Company country (ISO 3166-1 alpha3 format, size 3 car) * @param {string} state (optionnal if not USA) define a state when country is 'USA' (["ALASKA", "....", "NEW_YORK", "....", "WYOMING"] ), else it is not managed by server. Default value on server side: ALABAMA * @param {OFFERTYPES} offerType Company offer type. Companies with offerType=freemium are not able to subscribe to paid offers, they must be premium to do so. Companies created with privateDC="HDS" are automatically created with offerType=premium (as a paid subscription to HDS Company offer is automatically done during the company creation. Values can be : freemium, premium * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Created Company or an error object depending on the result * @category async */ createCompany(strName: string, country: string, state: string, offerType?: OFFERTYPES): Promise; /** * Remove a user from a company * @private */ removeUserFromCompany(user: any): Promise; /** * Set the visibility for a company * @private */ setVisibilityForCompany(company: any, visibleByCompany: any): Promise; /** * @public * @nodered true * @method createUserInCompany * @instance * @description * Create a new user in a given company
* @param {string} email The email of the user to create * @param {string} password The associated password * @param {string} firstname The user firstname * @param {string} lastname The user lastname * @param {string} companyId=`user company id` The Id of the company where to create the user or the connected user company if null * @param {string} language="en-US" The language of the user. Default is `en-US`. Can be fr-FR, de-DE... * @param {boolean} isCompanyAdmin=false True to create the user with the right to manage the company (`companyAdmin`). False by default. * @param {Array} roles=["user"] The roles the created user. Default value : ["user"]. * @async * @category Companies and users management * @return {Promise} * @fulfil {Contact} - Created contact in company or an error object depending on the result * @category async */ createUserInCompany(email: string, password: string, firstname: string, lastname: string, companyId: string, language?: string, isCompanyAdmin?: boolean, roles?: Array): Promise; /** * @public * @nodered true * @method createUser * @since 2.21.0 * @instance * Create a new user in providen company, else in Rainbow default companie.
* @param {boolean} sendInvitationEmail Indicates if an email will be sent or not to the created user.
* If enabled, the created user will receive an email to its `loginEmail` address. This email contains a link allowing the user to connect to Rainbow and initialize his account. User will be requested to set his password during this phase - so that the password provided by the administrator is only temporary and changed by the user.
* To be noted that if no password is provided by the administrator and `sendInvitationEmail` is enabled, a user password is randomly generated.
* Default value : `false` * @param doNotAssignPaidLicense Indicates if a default paid license should be assigned to newly created user. Default value : `false` * @param mandatoryDefaultSubscription Indicates if a default paid license must be assigned to newly created user. Default value : `false` * @param {string} customData User's custom data. Object with free keys/values. It is up to the client to manage the user's customData (new customData provided overwrite the existing one).
* Restrictions on customData Object:
* * max 20 keys,
* * max key length: 64 characters,
* * max value length: 4096 characters.
* User customData can only be created/updated by:
* * the user himself
* * \`company\_admin\` or \`organization\_admin\` of his company,
* * \`bp\_admin\` and \`bp\_finance\` of his company,
* * \`superadmin\`.
* @param {string} password optionnel string User password. Rules: more than 8 characters,
* ⚠️ Warning: the minimal password length will soon be increased to 12, planned to be effective mid-june 2023 (8 characters are still accepted until this date) at least 1 capital letter, 1 number, 1 special character.
* If password is not set, the user will have to use the reset-password feature to define his password so that he can login to Rainbow (except if the user is configured to use a Single Sign On method (SAML or OIDC)).
* @param {string} companyId User company unique identifier (like 569ce8c8f9336c471b98eda1). If not provided, users are attached to a "Default" company. companyName field is automatically filled on server side based on companyId. * @param {boolean} isInitialized=false Is user initialized If isInitialized is set to true and sendInvitationEmail query parameter is set to true, the user receives an email "Your Rainbow account has been activated". Default value : `false` * @param {string} loginEmail User email address (used for login). Must be unique (409 error is returned if a user already exists with the same email address). * @param {string} firstName User first name * @param {string} lastName User last name * @param {string} nickName User nickName * @param {string} title User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...) * @param {string} jobTitle User job title * @param {string} department User department * @param {Array} tags An Array of free tags associated to the user.
* A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters.
* `tags` can only be set by users who have administrator rights on the user. The user can't modify the tags.
* The tags are visible by the user and all users belonging to his organisation/company, and can be used with the search API to search the user based on his tags.
* @param {Array} emails Array of user emails addresses objects :
* * {string} email User email address
* * {string} type User email type. Possibles values : `home`, `work`, `other`
* @param {Array} phoneNumbers Array of user phone numbers objects
* * {string} number User phone number (as entered by user).
* If `number` field is not provided in E164 format, associated `numberE164` field is computed using phoneNumber's `country` field (see below how country field is computed).
* `number` and `country` fields must match so that `numberE164` can be computed, otherwise an error 400 is returned.
* * {string} country Phone number country (ISO 3166-1 alpha3 format).
* `country` field is automatically computed using the following algorithm when creating a phoneNumber entry:
* * If provided `number` is in E164 format, `country` is computed from E164 number
* * Else if `country` field is provided in the phoneNumber entry, this one is used
* * Else user `country` field is used (or company `country` if country is not provided for the user creation)
* Note that in the case provided `number` is not in E164 format, associated `numberE164` field is computed using phoneNumber's `country` field. `number` and `country` field must match so that `numberE164` can be computed, otherwise an error 400 is returned.
* * {string} type Phone number type. Note that the `type` of phoneNumbers linked to a PBX (`isFromSystem`=true) can't be changed (their value must be `work`) Possibles values : `home`, `work`, `other` * * {string} deviceType Phone number device type. Note that the `deviceType` of phoneNumbers linked to a PBX (`isFromSystem`=true) can't be changed (their value must be `landline`). Possibles values : `landline`, `mobile`, `fax`, `other` * * {string} isVisibleByOthers Allow user to choose if the phone number is visible by other users or not.
* Note that administrators can see all the phone numbers, even if `isVisibleByOthers` is set to false.
* Note that phone numbers linked to a system (`isFromSystem`=true) are always visible, `isVisibleByOthers` can't be set to false for these numbers.
* Default value : `true`
*
* For each provided phoneNumber Object, the server tries to compute the associated E.164 number (`numberE164` field):
* If `number` is already in E.164 format, the value is simply duplicated as is in `numberE164` field, and `country` field is computed from this E.164 number,
* Otherwise `numberE164` is computed using provided `number` and `country` field (if `country` is provided this value is used, otherwise user's `country` is set in `country` field).
* If `numberE164` can't be computed from `number` and `country` fields, an error 400 is returned (ex: wrong phone number, phone number not matching country code, ...)
* System phoneNumbers can't be created using this API, only PCG can create system PhoneNumbers
* @param {string} country User country (ISO 3166-1 alpha3 format) The list of allowed countries can be obtained using the API AdminService::getListOfCountries() * @param {string} state When country is 'USA' or 'CAN', a state can be defined. Else it is not managed (null).
* The list of allowed states can be obtained using the API getListOfCountries() for the associated countries.
* Possibles values : `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"`
* @param {string} language="en-US" User language Language format is composed of locale using format `ISO 639-1`, with optionally the regional variation using `ISO 3166‑1 alpha-2` (separated by hyphen).
* Locale part is in lowercase, regional part is in uppercase. Examples: en, en-US, fr, fr-FR, fr-CA, es-ES, es-MX, ...
* More information about the format can be found on this [link](https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes).
* Possibles values : `"/^([a-z]{2})(?:(?:(-)[A-Z]{2}))?$/"`
* @param {string} timezone User timezone name Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones) Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) * @param {string} accountType="free" User subscription type Default value : `free`. Possibles values : `free`, `basic`, `advanced` * @param roles * Examples:
* * an `admin` can add or remove the role `admin` to another user of the company(ies) he manages,
* * an `bp_admin` can add or remove the role `bp_admin` to another user of the company(ies) he manages,
* * an `app_superadmin` can add or remove the role `app_superadmin` to another user...
* Here are some explanations regarding the roles available in Rainbow:
* * `admin`, `bp_admin` and `bp_finance` roles are related to company management (and resources linked to companies, such as users, systems, subscriptions, ...).
* * `bp_admin` and `bp_finance` roles can only be set to users of a BP company (company with isBP=true).
* * `app_admin`, `app_support` and `app_superadmin` roles are related to application management.
* * `all_company_channels_admin`, `public_channels_admin` and `closed_channels_admin` roles are related to channels management.
* * `supervisor` allows users to supervise (telephony) other users from their company.
* * This role can be assigned manually to a user using this API, otherwise it is automatically set when a user is a added to a supervision group as supervisor.
* * This role can be removed manually to a user using the updateInformationForUser() API, in that case the user is automatically removed from all the supervision groups in which he was supervisor.
* * This role is automatically removed from a user when he is removed from the last supervision group in which he was supervisor.
* * A user with `webinar_host` role will be able to create webinars. Note: to be able to give this role, company should first subscribe to a webinar offer.
* * A user with `attendant` role will be the attendant of the Cloud PBX of its company. Note : to be able to give this role, feature TELEPHONY\_BASIC\_ATTENDANT_CONSOLE must be available for the user , as so this role cannot be assigned during User creation
* * A user with admin rights (`admin`, `bp_admin`, `superadmin`) can't change his own roles, except for roles related to channels (`all_company_channels_admin`, `public_channels_admin` and `closed_channels_admin`).
* * Only `superadmin` can set `superadmin` and `support` roles to a user.
* Default value : `["user"]`
* Possibles values : `guest`, `user`, `admin`, `bp_admin`, `bp_finance`, `company_support`, `all_company_channels_admin`, `public_channels_admin`, `closed_channels_admin`, `all_organization_channels_admin`, `organization_public_channels_admin`, `organization_closed_channels_admin`, `app_admin`, `app_support`, `app_superadmin`, `directory_admin`, `supervisor`, `support`, `superadmin`, `webinar_host`, `attendant`
* @param {string} adminType Mandatory if roles array contains `admin` role: specifies at which entity level the administrator has admin rights in the hierarchy ORGANIZATIONS/COMPANIES/SITES/SYSTEMS Possibles values : `organization_admin`, `company_admin`, `site_admin` * @param {boolean} isActive=true Is user active. Default value : `true`. * @param {string} visibility User visibility. Define if the user can be searched by users being in other company and if the user can search users being in other companies.
* Visibility can be:
* * `same_than_company`: The same visibility than the user's company's is applied to the user. When this user visibility is used, if the visibility of the company is changed the user's visibility will use this company new visibility.
* * `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
* * `private`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
* * `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
* * `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
* * `hotspot`: User can be searched by hotspot attached company's users (users from any company if the user belong to the default company) / can't search any users (even in their company) | user can't invite external users / can be invited by hotspot attached company's users (users from any company if the user belong to the default company)
* * `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users External users mean 'public user not being in user's company nor user's organisation nor a company visible by user's company.
* Possibles values : `same_than_company`, `public`, `private`, `closed`, `isolated`, `hotspot`, `none`
* @param {number} timeToLive=-1 Duration in second to wait before automatically starting a user deletion from the creation date.
* Once the timeToLive has been reached, the user won't be usable to use APIs anymore (error 401523). His account may then be deleted from the database at any moment.
* Value -1 means timeToLive is disable (i.e. user account will not expire).
* If created user has role `guest` and no timeToLive is provided, a default value of 172800 seconds is set (48 hours).
* If created user does not have role `guest` and no timeToLive is provided, a default value of -1 is set (no expiration).
* @param {string} authenticationType User authentication type (if not set company default authentication will be used) Possibles values : `DEFAULT`, `RAINBOW`, `SAML`, `OIDC`
* @param {string} authenticationExternalUid User external authentication ID (return by identity provider in case of SAML or OIDC authenticationType) * @param {string} userInfo1 Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) * @param {string} selectedTheme Set the selected theme for the user. * @param {string} userInfo2 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) * @param {boolean} isAdmin=false is the user created is an admin. Default value = `false`. * @async * @category Companies and users management * @return {Promise} The result : * * * | Champ | Type | Description | * | --- | --- | --- | * | selectedAppCustomisationTemplate | string | To log the last template applied to the user. | * | useSpeakingTimeStatistics | string | Activate/Deactivate the capability for a user to see speaking time statistics.
Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
useSpeakingTimeStatistics can be:

* `same_than_company`: The same useSpeakingTimeStatistics setting than the user's company's is applied to the user. if the useSpeakingTimeStatistics of the company is changed the user's useSpeakingTimeStatistics will use this company new setting.
* `enabled`: The user can use meeting speaking time statistics.
* `disabled`: The user can't use meeting speaking time statistics. | * | readReceiptsCustomisation | string | Activate/Deactivate the capability for a user to allow a sender to check if a chat message is read.
Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
This right is used by Ucaas or Cpaas application to show either or not a message is acknowledged. No check is done on backend side.
readReceiptsCustomisation can be:

* `same_than_company`: The same readReceiptsCustomisation setting than the user's company's is applied to the user. if the readReceiptsCustomisation of the company is changed the user's readReceiptsCustomisation will use this company new setting.
* `enabled`: The user allows the sender to check if an IM is read.
* `disabled`: The user doesn't allow the sender to check if an IM is read. | * | useDialOutCustomisation | string | Activate/Deactivate the capability for a user to use dial out in phone meetings.
Define if a user is allowed to be called by the Rainbow conference bridge.
useDialOutCustomisation can be:

* `same_than_company`: The same useDialOutCustomisation setting than the user's company's is applied to the user. if the useDialOutCustomisation of the company is changed the user's useDialOutCustomisation will use this company new setting.
* `enabled`: The user can be called by the Rainbow conference bridge.
* `disabled`: The user can't be called by the Rainbow conference bridge. | * | forbidFileOwnerChangeCustomisation | string | Activate/Deactivate the capability for a user to loose the ownership on one file..
One user can drop the ownership to another Rainbow user of the same company.
forbidFileOwnerChangeCustomisation can be:

* `same_than_company`: The same forbidFileOwnerChangeCustomisation setting than the user's company's is applied to the user. if the forbidFileOwnerChangeCustomisation of the company is changed the user's forbidFileOwnerChangeCustomisation will use this company new setting.
* `enabled`: The user can't give the ownership of his file.
* `disabled`: The user can give the ownership of his file. | * | fileTransferCustomisation | string | Activate/Deactivate the capability for a user to copy a file from a conversation then share it inside another conversation.
The file cannot be re-shared.
fileTransferCustomisation can be:

* `same_than_company`: The same fileTransferCustomisation setting than the user's company's is applied to the user. if the fileTransferCustomisation of the company is changed the user's fileTransferCustomisation will use this company new setting.
* `enabled`: The user can transfer a file doesn't belong to him.
* `disabled`: The user can't transfer a file doesn't belong to him. | * | fileCopyCustomisation | string | Activate/Deactivate the capability for one user to copy any file he receives in his personal cloud space
fileCopyCustomisation can be:

* `same_than_company`: The same fileCopyCustomisation setting than the user's company's is applied to the user. if the fileCopyCustomisation of the company is changed the user's fileCopyCustomisation will use this company new setting.
* `enabled`: The user can make a copy of a file to his personal cloud space.
* `disabled`: The user can't make a copy of a file to his personal cloud space. | * | useGifCustomisation | string | Activate/Deactivate the ability for a user to Use GIFs in conversations.
Define if a user has the is allowed to send animated GIFs in conversations
useGifCustomisation can be:

* `same_than_company`: The same useGifCustomisation setting than the user's company's is applied to the user. if the useGifCustomisation of the company is changed the user's useGifCustomisation will use this company new setting.
* `enabled`: The user can send animated GIFs in conversations.
* `disabled`: The user can't send animated GIFs in conversations. | * | recordingConversationCustomisation | string | Activate/Deactivate the capability for a user to record a conversation.
Define if a user has the right to record a conversation (for P2P and multi-party calls).
recordingConversationCustomisation can be:

* `same_than_company`: The same recordingConversationCustomisation setting than the user's company's is applied to the user. if the recordingConversationCustomisation of the company is changed the user's recordingConversationCustomisation will use this company new setting.
* `enabled`: The user can record a peer to peer or a multi-party call.
* `disabled`: The user can't record a peer to peer or a multi-party call. | * | changeSettingsCustomisation | string | Activate/Deactivate the ability for a user to change all client general settings.
changeSettingsCustomisation can be:

* `same_than_company`: The same changeSettingsCustomisation setting than the user's company's is applied to the user. if the changeSettingsCustomisation of the company is changed the user's changeSettingsCustomisation will use this company new setting.
* `enabled`: The user can change all client general settings.
* `disabled`: The user can't change any client general setting. | * | changeTelephonyCustomisation | string | Activate/Deactivate the ability for a user to modify telephony settings.
Define if a user has the right to modify some telephony settigs like forward activation...
changeTelephonyCustomisation can be:

* `same_than_company`: The same changeTelephonyCustomisation setting than the user's company's is applied to the user. if the changeTelephonyCustomisation of the company is changed the user's changeTelephonyCustomisation will use this company new setting.
* `enabled`: The user can modify telephony settings.
* `disabled`: The user can't modify telephony settings. | * | overridePresenceCustomisation | string | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to change his presence manually or only use automatic states.
overridePresenceCustomisation can be:

* `same_than_company`: The same overridePresenceCustomisation setting than the user's company's is applied to the user. if the overridePresenceCustomisation of the company is changed the user's overridePresenceCustomisation will use this company new setting.
* `enabled`: The user can change his presence.
* `disabled`: The user can't change his presence. | * | fileStorageCustomisation | string | Activate/Deactivate the capability for a user to access to Rainbow file storage..
Define if a user has the right to upload/download/copy or share documents.
fileStorageCustomisation can be:

* `same_than_company`: The same fileStorageCustomisation setting than the user's company's is applied to the user. if the fileStorageCustomisation of the company is changed the user's fileStorageCustomisation will use this company new setting.
* `enabled`: The user can manage and share files.
* `disabled`: The user can't manage and share files. | * | userProfileCustomisation | string | Activate/Deactivate the capability for a user to modify his profile.
Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
userProfileCustomisation can be:

* `same_than_company`: The same userProfileCustomisation setting than the user's company's is applied to the user. if the userProfileCustomisation of the company is changed the user's userProfileCustomisation will use this company new setting.
* `enabled`: The user can modify his profile.
* `disabled`: The user can't modify his profile. | * | instantMessagesCustomisation | string | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
instantMessagesCustomisation can be:

* `same_than_company`: The same instantMessagesCustomisation setting than the user's company's is applied to the user. if the instantMessagesCustomisation of the company is changed the user's instantMessagesCustomisation will use this company new setting.
* `enabled`: The user can use instant messages.
* `disabled`: The user can't use instant messages. | * | useWebRTCAudioCustomisation | string | Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
useWebRTCAudioCustomisation can be:

* `same_than_company`: The same useWebRTCAudioCustomisation setting than the user's company's is applied to the user. if the useWebRTCAudioCustomisation of the company is changed the user's useWebRTCAudioCustomisation will use this company new setting.
* `enabled`: Each user of the company can switch to a Web RTC audio conversation.
* `disabled`: No user of the company can switch to a Web RTC audio conversation. | * | useWebRTCVideoCustomisation | string | Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
useWebRTCVideoCustomisation can be:

* `same_than_company`: The same useWebRTCVideoCustomisation setting than the user's company's is applied to the user. if the useWebRTCVideoCustomisation of the company is changed the user's useWebRTCVideoCustomisation will use this company new setting.
* `enabled`: Each user of the company can switch to a Web RTC video conversation.
* `disabled`: No user of the company can switch to a Web RTC video conversation. | * | useScreenSharingCustomisation | string | Activate/Deactivate the capability for a user to share a screen.
Define if a user has the right to share his screen.
useScreenSharingCustomisation can be:

* `same_than_company`: The same useScreenSharingCustomisation setting than the user's company's is applied to the user. if the useScreenSharingCustomisation of the company is changed the user's useScreenSharingCustomisation will use this company new setting.
* `enabled`: Each user of the company can share his screen.
* `disabled`: No user of the company can share his screen. | * | useChannelCustomisation | string | Activate/Deactivate the capability for a user to use a channel.
Define if a user has the right to create channels or be a member of channels.
useChannelCustomisation can be:

* `same_than_company`: The same useChannelCustomisation setting than the user's company's is applied to the user. if the useChannelCustomisation of the company is changed the user's useChannelCustomisation will use this company new setting.
* `enabled`: Each user of the company can use some channels.
* `disabled`: No user of the company can use some channel. | * | phoneMeetingCustomisation | string | Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
Define if a user has the right to join phone meetings.
phoneMeetingCustomisation can be:

* `same_than_company`: The same phoneMeetingCustomisation setting than the user's company's is applied to the user. if the phoneMeetingCustomisation of the company is changed the user's phoneMeetingCustomisation will use this company new setting.
* `enabled`: The user can join phone meetings.
* `disabled`: The user can't join phone meetings. | * | useRoomCustomisation | string | Activate/Deactivate the capability for a user to use bubbles.
Define if a user can create bubbles or participate in bubbles (chat and web conference).
useRoomCustomisation can be:

* `same_than_company`: The same useRoomCustomisation setting than the user's company's is applied to the user. if the useRoomCustomisation of the company is changed the user's useRoomCustomisation will use this company new setting.
* `enabled`: The user can use bubbles.
* `disabled`: The user can't use bubbles. | * | softphoneOnlyCustomisation | string | Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services and but to focus to telephony services
Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
softphoneOnlyCustomisation can be:

* `same_than_company`: The same softphoneOnlyCustomisation setting than the user's company's is applied to the user. if the softphoneOnlyCustomisation of the company is changed the user's softphoneOnlyCustomisation will use this company new setting.
* `enabled`: The user switch to a softphone mode only.
* `disabled`: The user can use telephony services, chat, bubbles, channels meeting services and so on. | * | userTitleNameCustomisation | string | Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName)
Define if the user can change some profile data.
userTitleNameCustomisation can be:

* `same_than_company`: The same userTitleNameCustomisation setting than the user's company's is applied to the user. if the userTitleNameCustomisation of the company is changed the user's userTitleNameCustomisation will use this company new setting.
* `enabled`: Whatever the userTitleNameCustomisation of the company setting, the user can change some profile data.
* `disabled`: Whatever the userTitleNameCustomisation of the company setting, the user can't change some profile data. | * | fileSharingCustomisation | string | Activate/Deactivate file sharing capability per user
Define if the user can use the file sharing service then, allowed to download and share file.
FileSharingCustomisation can be:

* `same_than_company`: The same fileSharingCustomisation setting than the user's company's is applied to the user. if the fileSharingCustomisation of the company is changed the user's fileSharingCustomisation will use this company new setting.
* `enabled`: Whatever the fileSharingCustomisation of the company setting, the user can use the file sharing service.
* `disabled`: Whatever the fileSharingCustomisation of the company setting, the user can't use the file sharing service. | * | data | Object | User Object. | * | id | string | User unique identifier | * | loginEmail | string | User email address (used for login) | * | firstName | string | User first name | * | lastName | string | User last name | * | displayName | string | User display name (firstName + lastName concatenated on server side) | * | nickName optionnel | string | User nickName | * | title optionnel | string | User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...) | * | jobTitle optionnel | string | User job title | * | department optionnel | string | User department | * | tags optionnel | string\[\] | An Array of free tags associated to the user.
A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters.
`tags` can only be set by users who have administrator rights on the user. The user can't modify the tags.
The tags are visible by the user and all users belonging to his organisation/company, and can be used with the search API to search the user based on his tags. | * | emails | Object\[\] | Array of user emails addresses objects | * | email | string | User email address | * | type | string | Email type, one of `home`, `work`, `other` | * | phoneNumbers | Object\[\] | Array of user phone numbers objects.
Phone number objects can:

* be created by user (information filled by user),
* come from association with a system (pbx) device (association is done by admin). | * | phoneNumberId | string | Phone number unique id in phone-numbers directory collection. | * | number optionnel | string | User phone number (as entered by user) | * | numberE164 optionnel | string | User E.164 phone number, computed by server from `number` and `country` fields | * | country | string | Phone number country (ISO 3166-1 alpha3 format)
`country` field is automatically computed using the following algorithm when creating/updating a phoneNumber entry:

* If `number` is provided and is in E164 format, `country` is computed from E164 number
* Else if `country` field is provided in the phoneNumber entry, this one is used
* Else user `country` field is used | * | isFromSystem | Boolean | Boolean indicating if phone is linked to a system (pbx). | * | shortNumber optionnel | string | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), short phone number (corresponds to the number monitored by PCG).
Only usable within the same PBX.
Only PCG can set this field. | * | internalNumber optionnel | string | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), internal phone number.
Usable within a PBX group.
Admins and users can modify this internalNumber field. | * | systemId optionnel | string | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), unique identifier of that system in Rainbow database. | * | pbxId optionnel | string | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), unique identifier of that pbx. | * | type | string | Phone number type, one of `home`, `work`, `other`. | * | deviceType | string | Phone number device type, one of `landline`, `mobile`, `fax`, `other`. | * | isVisibleByOthers | Boolean | Allow user to choose if the phone number is visible by other users or not.
Note that administrators can see all the phone numbers, even if `isVisibleByOthers` is set to false.
Note that phone numbers linked to a system (`isFromSystem`=true) are always visible, `isVisibleByOthers` can't be set to false for these numbers. | * | country | string | User country (ISO 3166-1 alpha3 format)

The list of allowed countries can be obtained using the API AdminService::getListOfCountries() | * | state optionnel | string | When country is 'USA' or 'CAN', a state can be defined. Else it is not managed (null).

The list of allowed states can be obtained using the API AdminService::getListOfCountries() for the associated countries.

* List of allowed states for `USA`:
* `AA`: "Armed Forces America",
* `AE`: "Armed Forces",
* `AP`: "Armed Forces Pacific",
* `AK`: "Alaska",
* `AL`: "Alabama",
* `AR`: "Arkansas",
* `AZ`: "Arizona",
* `CA`: "California",
* `CO`: "Colorado",
* `CT`: "Connecticut",
* `DC`: Washington DC",
* `DE`: "Delaware",
* `FL`: "Florida",
* `GA`: "Georgia",
* `GU`: "Guam",
* `HI`: "Hawaii",
* `IA`: "Iowa",
* `ID`: "Idaho",
* `IL`: "Illinois",
* `IN`: "Indiana",
* `KS`: "Kansas",
* `KY`: "Kentucky",
* `LA`: "Louisiana",
* `MA`: "Massachusetts",
* `MD`: "Maryland",
* `ME`: "Maine",
* `MI`: "Michigan",
* `MN`: "Minnesota",
* `MO`: "Missouri",
* `MS`: "Mississippi",
* `MT`: "Montana",
* `NC`: "North Carolina",
* `ND`: "North Dakota",
* `NE`: "Nebraska",
* `NH`: "New Hampshire",
* `NJ`: "New Jersey",
* `NM`: "New Mexico",
* `NV`: "Nevada",
* `NY`: "New York",
* `OH`: "Ohio",
* `OK`: "Oklahoma",
* `OR`: "Oregon",
* `PA`: "Pennsylvania",
* `PR`: "Puerto Rico",
* `RI`: "Rhode Island",
* `SC`: "South Carolina",
* `SD`: "South Dakota",
* `TN`: "Tennessee",
* `TX`: "Texas",
* `UT`: "Utah",
* `VA`: "Virginia",
* `VI`: "Virgin Islands",
* `VT`: "Vermont",
* `WA`: "Washington",
* `WI`: "Wisconsin",
* `WV`: "West Virginia",
* `WY`: "Wyoming"
* List of allowed states for `CAN`:
* `AB`: "Alberta",
* `BC`: "British Columbia",
* `MB`: "Manitoba",
* `NB`: "New Brunswick",
* `NL`: "Newfoundland and Labrador",
* `NS`: "Nova Scotia",
* `NT`: "Northwest Territories",
* `NU`: "Nunavut",
* `ON`: "Ontario",
* `PE`: "Prince Edward Island",
* `QC`: "Quebec",
* `SK`: "Saskatchewan",
* `YT`: "Yukon"

Possibles values : `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"` | * | language | string | User language (ISO 639-1 code format, with possibility of regional variation. Ex: both 'en' and 'en-US' are supported) | * | timezone | string | User timezone name | * | jid_im | string | User Jabber IM identifier | * | jid_tel | string | User Jabber TEL identifier | * | jid_password | string | User Jabber IM and TEL password | * | roles | string\[\] | List of user roles (Array of string)
Note: `company_support` role is only used for support redirection. If a user writes a #support ticket and have the role `company_support`, the ticket will be sent to ALE's support (otherwise the ticket is sent to user's company's `supportEmail` address is set, ALE otherwise). | * | adminType | string | In case of user's is 'admin', define the subtype (organisation\_admin, company\_admin, site_admin (default undefined) | * | companyId | string | User company unique identifier | * | organisationId | string | In addition to User companyId, optional identifier to indicate the user belongs also to an organization | * | siteId | string | In addition to User companyId, optional identifier to indicate the user belongs also to a site | * | companyName | string | User company name | * | isInDefaultCompany | Boolean | Is user in default company | * | isActive | Boolean | Is user active | * | isInitialized | Boolean | Is user initialized | * | initializationDate | Date-Time | User initialization date | * | activationDate | Date-Time | User activation date | * | creationDate | Date-Time | User creation date | * | lastUpdateDate | Date-Time | Date of last user update (whatever the field updated) | * | lastAvatarUpdateDate | Date-Time | Date of last user avatar create/update, null if no avatar | * | createdBySelfRegister | Boolean | true if user has been created using self register | * | createdByAdmin | Object | If user has been created by an admin or superadmin, contain userId and loginEmail of the admin who created this user | * | userId | string | userId of the admin who created this user | * | loginEmail | string | loginEmail of the admin who created this user | * | invitedBy | Object | If user has been created from an email invitation sent by another rainbow user, contain the date the invitation was sent and userId and loginEmail of the user who invited this user | * | userId | string | userId of the user who invited this user | * | firstLoginDate | Date-Time | Date of first user login (only set the first time user logs in, null if user never logged in) | * | loginEmail | string | loginEmail of the user who invited this user | * | lastLoginDate | Date-Time | Date of last user login (defined even if user is logged out) | * | loggedSince | Date-Time | Date of last user login (null if user is logged out) | * | lastSeenDate | Date-Time | Approximate date when the user has been seen on Rainbow (null if user never logged in)
This date is updated:

* When the user logs in (either from login API, SAML/OIDC SSO, OAuth)
* When the token of the user is refreshed (using the API GET /api/rainbow/authentication/v1.0/renew, done automatically by the clients before the token expires and not visible by the user)
* When the user logs out | * | authenticationType optionnel | string | User authentication type (if not set company default authentication will be used)

Possibles values : `DEFAULT`, `RAINBOW`, `SAML`, `OIDC` | * | authenticationExternalUid optionnel | string | User external authentication ID (return by identity provider in case of SAML or OIDC authenticationType) | * | isTerminated | Boolean | Indicates if the Rainbow account of this user has been deleted | * | timeToLive | Number | Duration in second to wait before automatically starting a user deletion from the creation date.
Once the timeToLive has been reached, the user won't be usable to use APIs anymore (error 401523). His account may then be deleted from the database at any moment.
Value -1 means timeToLive is disable (i.e. user account will not expire). | * | guestMode | Boolean | Indicated a user embedded in a chat or conference room, as guest, with limited rights until he finalizes his registration. | * | userInfo1 | string | Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) | * | userInfo2 | string | 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) | * | profiles | Object\[\] | User profile Objects. | * | subscriptionId | string | Id of company subscription to which user profile is assigned (one of the subscriptions available to user's company) | * | offerId | string | Id of the Rainbow offer to which company subscription is attached | * | offerName | string | Name of the Rainbow offer to which company subscription is attached | * | profileId | string | Id of the Rainbow profile to which company subscription is attached | * | profileName | string | Name of the Rainbow profile to which company subscription is attached | * | status | string | Status of the company subscription to which user profile is assigned

Possible values: `active`, `alerting`, `hold`, `terminated` | * | isDefault | Boolean | Indicates if this profile is linked to user's company's subscription to default offer (i.e. Essential) | * | assignationDate | string | Date when the subscription was attached to user profile | * | canBeSold | Boolean | Indicates if the offer is billed.
Some offers will not be billed (Essential, Demo, ...). | * | offerTechnicalDescription optionnel | string | Offer technical description.
| * | businessModel optionnel | string | Indicates the business model associated to this offer (number of users, usage, ...)

* `nb_users`: Licencing business model. Subscriptions having this business model are billed according to the number of users bought for it.
* `usage`: Subscriptions having this business model are billed based on service consumption (whatever the number of users assigned to the subscription of this offer).
* `flat_fee`: Subscriptions having this business model are billed based on a flat fee (same price each month for the company which subscribe to this offer).
* `none`: no business model. Should be used for offers which are not sold (like Essential...).

Default value : `none`

Possibles values : `nb_users`, `usage`, `flat_fee`, `none` | * | businessSpecific optionnel | string\[\] | Indicates if the subscription is related to specific(s) business (for verticals like HDS)

* `NONE`: This subscription is used if the company does not have a businessSpecific field.
* `HDS`: This subscription is used if the company have a businessSpecific HDS (HealthCare).

Default value : `["NONE"]`

Possibles values : `NONE`, `HDS` | * | isExclusive optionnel | Boolean | Indicates if the offer is exclusive for assignation to a user profile (if the user has already an exclusive offer assigned, it won't be possible to assign a second exclusive offer). | * | isPrepaid optionnel | Boolean | Indicates if the profile is linked to a prepaid subscription | * | prepaidDuration optionnel | Number | Prepaid subscription duration (in month).
Only set if `isPrepaid` is true. | * | provisioningNeeded optionnel | Object\[\] | Array of Objects which indicates if account must be provisioned on other internal components when subscribing to this offer. | * | providerType | string | If provisioningNeeded is set, each element of the array must contain providerType. providerType defines the internal component on which the provisioning is needed when subscribing to this offer (provisioning is launched asynchronously when the subscription is created).

Possibles values : `PGI`, `JANUS` | * | pgiEnterpriseId optionnel | string | Only set if provisioningNeeded is set and the element of the array has providerType `PGI`. Corresponds to an enterpriseId to use when provisioning the company account on PSTN Conferencing component.

Possibles values : `testEnterpriseId`, `internalEnterpriseId`, `genericEnterpriseId` | * | mediaType optionnel | string | Only set if provisioningNeeded is set and the element of the array has providerType `JANUS`. Corresponds to the media type to use when provisioning the company account on WebRTC Conferencing component.

Possibles values : `webrtc` | * | zuoraOfferId optionnel | string | ID of the related offer in Zuora (if offer can be sold) | * | zuoraProductRatePlanId optionnel | string | ID of the ProductRatePlanId to used in Zuora (if offer can be sold) | * | zuoraProductRatePlanChargeId optionnel | string | ID of the ProductRatePlanChargeId used in Zuora (if offer can be sold) | * | hasConference optionnel | Boolean | Indicates if the profile contains conference services | * | isDemo optionnel | Boolean | Indicates if the profile is linked to a demo subscription | * | customData optionnel | Object | User's custom data.
Object with free keys/values.
It is up to the client to manage the user's customData (new customData provided overwrite the existing one).

Restrictions on customData Object:

* max 20 keys,
* max key length: 64 characters,
* max value length: 4096 characters. | * * @category async */ createUser(sendInvitationEmail?: boolean, doNotAssignPaidLicense?: boolean, mandatoryDefaultSubscription?: boolean, companyId?: string, loginEmail?: string, customData?: any, password?: string, firstName?: string, lastName?: string, nickName?: string, title?: string, jobTitle?: string, department?: string, tags?: Array, emails?: Array, phoneNumbers?: Array, country?: string, state?: string, language?: string, timezone?: string, accountType?: string, roles?: Array, adminType?: string, isActive?: boolean, isInitialized?: boolean, visibility?: string, timeToLive?: number, authenticationType?: string, authenticationExternalUid?: string, userInfo1?: string, selectedTheme?: string, userInfo2?: string, isAdmin?: boolean): Promise; /** * @public * @nodered true * @method createGuestUser * @instance * @description * Create a new guest user in the same company as the requester admin
* @param {string} firstname The user firstname * @param {string} lastname The user lastname * @param {string} language="en-US" The language of the user. Default is `en-US`. Can be fr-FR, de-DE... * @param {number} timeToLive Allow to provide a duration in second to wait before starting a user deletion from the creation date * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Created guest user in company or an error object depending on the result * @category async */ createGuestUser(firstname: string, lastname: string, language: string, timeToLive: number): Promise; /** * @public * @nodered true * @method createAnonymousGuestUser * @since 1.31 * @deprecated since version 2.38.0 * @instance * @description * Create a new anonymous guest user in the same company as the requester admin
* Anonymous guest user is user without name and firstname
* @param {number} timeToLive Allow to provide a duration in second to wait before starting a user deletion from the creation date * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Created anonymous guest user in company or an error object depending on the result * @category async */ createAnonymousGuestUser(timeToLive: any): Promise; /** * @public * @nodered true * @method inviteUserInCompany * @instance * @description * Invite a new user to join a company in Rainbow
* @param {string} email The email address of the contact to invite * @param {string} companyId The id of the company where the user will be invited in * @param {string} language="en-US" The language of the message to send. Default is `en-US` * @param {string} message="" A custom message to send * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Created invitation or an error object depending on the result * @category async */ inviteUserInCompany(email: string, companyId: string, language?: string, message?: string): Promise; /** * @public * @nodered true * @method changePasswordForUser * @instance * @description * Change a password for a user
* @param {string} password The new password * @param {string} userId The id of the user * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Updated user or an error object depending on the result * @category async */ changePasswordForUser(password: string, userId: string): Promise; /** * @public * @nodered true * @method updateInformationForUser * @instance * @description * Change information of a user. Fields that can be changed: `firstName`, `lastName`, `nickName`, `title`, `jobTitle`, `country`, `language`, `timezone`, `emails`
* @param {Object} objData An object (key: value) containing the data to change with their new value * @param {string} userId The id of the user * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Updated user or an error object depending on the result * @category async */ updateInformationForUser(objData: any, userId: string): Promise; /** * @public * @nodered true * @method deleteUser * @instance * @description * Delete an existing user
* @param {string} userId The id of the user * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Deleted user or an error object depending on the result * @category async */ deleteUser(userId: string): Promise; /** * @public * @nodered true * @method registerUserByEmailFirstStep * @param {Object} userInfo user info requesting a self-register
* {
* // Email of the user requesting a self-register email with a temporary token
* // Possibles values : /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/
* "email": string,
*
* // Language of the email notification.
* // Language format is composed of locale using format ISO 639-1, with optionally the regional variation using ISO 3166‑1 alpha-2 (separated by hyphen).
* // Locale part is in lowercase, regional part is in uppercase. Examples: en, en-US, fr, fr-FR, fr-CA, es-ES, es-MX, ...
* // More information about the format can be found on this link: https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes
* // If lang is not provided (or no translation available for provided language), email is sent in English.
* // Valeur par défaut : en
* // Size : 2..5
* "lang": string
* }
* * @instance * @description * This API allows to send a self-register email to a user. A temporary user token is generated and send in the email body. This token is required in the self register validation workflow with API `registerUserByEmailSecondStepWithToken`.
* @async * @category Companies and users management * @fulfil {Object} - Json object containing details regarding the operation. * @category async * @return {Promise} - result : * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Details regarding the operation | * | status | String | Status of the operation | * | email | String | Email address used to send the self-register email | * */ registerUserByEmailFirstStep(userInfo: { "email": string; "lang": string; }): Promise; /** * @public * @nodered true * @method registerUserByEmailSecondStepWithToken * @param {Object} userLoginInfo user info requesting a self-register.
* {
* // User email address (used for login).
* // Must be unique (409 error is returned if a user already exists with the same email address). * "loginEmail": string,
*
* // User password.
* // Rules:
* // - More than 8 characters,
* // ⚠️ Warning: the minimal password length will soon be increased to 12, planned to be effective mid-June 2023 (8 characters are still accepted until this date).
* // - At least 1 capital letter,
* // - 1 number,
* // - 1 special character.
* "password": string,
*
* // User temporary token (obtained from [POST /api/rainbow/enduser/v1.0/notifications/emails/self-register](#api-enduser_notifications_emails-EmailSelfRegister) API).
* // Do not use if `invitationId`, `joinCompanyInvitationId`, `joinCompanyLinkId` or `openInviteId` is specified.
* // Size : 6
* "temporaryToken": string
* }
* * @instance * @description * This API allows a user to self register a user account in Rainbow application. The token must be retrieved with `registerUserByEmailFirstStep`
* @async * @category Companies and users management * @fulfil {Object} - Json object containing details regarding the operation. * @category async @return {Promise} - result : * * * | Champ | Type | Description | * | --- | --- | --- | * | mainStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'mainStorage' allows to decide which file server must be used when the user is assigned to both file servers.

* `same_than_company`: The same mainStorage setting than the user's company's is applied to the user. if the mainStorage of the company is changed the user's mainStorage will use this company new setting.
* `Rainbow Storage`: Assigment to the Rainbow file server.
* `External Storage`: Assigment to the External file server. | * | useExternalStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useExternalStorage' allows a user to be assigned to a file server.

* `same_than_company`: The same useExternalStorage setting than the user's company's is applied to the user. if the useExternalStorage of the company is changed the user's useExternalStorage will use this company new setting.
* `enabled`: Assign the user to the External File Storage.
* `disabled`: Unassign the user from the External File Storage. | * | useRainbowStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useRainbowStorage' allows a user to be assigned to a file server.

* `same_than_company`: The same useRainbowStorage setting than the user's company's is applied to the user. if the useRainbowStorage of the company is changed the user's useRainbowStorage will use this company new setting.
* `enabled`: Assign the user to the default Rainbow File Storage.
* `disabled`: Unassign the user from the default Rainbow File Storage. | * | canSetInvisiblePresenceCustomisation | String | Select the capability for a user to set invisible presence.
Defines how a user can set invisible presence.
canSetInvisiblePresenceCustomisation can be:

* `same_than_company`: The same canSetInvisiblePresenceCustomisation setting than the user's company's is applied to the user. if the canSetInvisiblePresenceCustomisation of the company is changed the user's canSetInvisiblePresenceCustomisation will use this company new setting.
* `enabled`: The user can set invisible presence.
* `disabled`: The user can't set invisible presence. | * | canCallParticipantPbxNumberCustomisation | String | Select the capability for a user to call participant via a PBX number.
Defines how a user can call participant via a PBX number.
canCallParticipantPbxNumberCustomisation can be:

* `same_than_company`: The same canCallParticipantPbxNumberCustomisation setting than the user's company's is applied to the user. if the canCallParticipantPbxNumberCustomisation of the company is changed the user's canCallParticipantPbxNumberCustomisation will use this company new setting.
* `enabled`: The user can call participant with all number.
* `disabled`: The user can't call participant.
* `internal`: The user can call participant only with internal number.
* `national`: The user can call participant with national number. | * | canUseTaskCustomisation | String | Activate/Deactivate the capability for a user to use Rainbow tasks.
Defines if a user can use Rainbow tasks.
canUseTaskCustomisation can be:

* `same_than_company`: The same canUseTaskCustomisation setting than the user's company's is applied to the user. if the canUseTaskCustomisation of the company is changed the user's canUseTaskCustomisation will use this company new setting.
* `enabled`: The user can use Rainbow tasks.
* `disabled`: The user can't use Rainbow tasks. | * | canUseSendReportCustomisation | String | Activate/Deactivate the capability for a user to send report.
Defines if a user can send report.
canUseSendReportCustomisation can be:

* `same_than_company`: The same canUseSendReportCustomisation setting than the user's company's is applied to the user. if the canUseSendReportCustomisation of the company is changed the user's canUseSendReportCustomisation will use this company new setting.
* `enabled`: The user can send report.
* `disabled`: The user can't send report. | * | canUseTestConfigCustomisation | String | Activate/Deactivate the capability for a user to test the configuration.
Defines if a user can test the configuration.
canUseTestConfigCustomisation can be:

* `same_than_company`: The same canUseTestConfigCustomisation setting than the user's company's is applied to the user. if the canUseTestConfigCustomisation of the company is changed the user's canUseTestConfigCustomisation will use this company new setting.
* `enabled`: The user can test the configuration.
* `disabled`: The user can't test the configuration. | * | canDownloadAppCustomisation | String | Activate/Deactivate the capability for a user to download Rainbow application.
Defines if a user can download Rainbow application.
canDownloadAppCustomisation can be:

* `same_than_company`: The same canDownloadAppCustomisation setting than the user's company's is applied to the user. if the canDownloadAppCustomisation of the company is changed the user's canDownloadAppCustomisation will use this company new setting.
* `enabled`: The user can download Rainbow application.
* `disabled`: The user can't download Rainbow application. | * | canAccessStoreCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow store.
Defines if a user can access to Rainbow store.
canAccesStoreCustomisation can be:

* `same_than_company`: The same canAccessStoreCustomisation setting than the user's company's is applied to the user. if the canAccessStoreCustomisation of the company is changed the user's canAccessStoreCustomisation will use this company new setting.
* `enabled`: The user can access to Rainbow store.
* `disabled`: The user can't access to Rainbow store. | * | canAccessHelpCenterCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow help center.
Defines if a user can access to Rainbow help center.
canAccesHelpCenterCustomisation can be:

* `same_than_company`: The same canAccessHelpCenterCustomisation setting than the user's company's is applied to the user. if the canAccessHelpCenterCustomisation of the company is changed the user's canAccessHelpCenterCustomisation will use this company new setting.
* `enabled`: The user can access to Rainbow help center.
* `disabled`: The user can't access to Rainbow help center. | * | canAccessFaqCustomisation | String | Activate/Deactivate the capability for a user to access to the FAQ.
Defines if a user can access to the FAQ.
canAccessFaqCustomisation can be:

* `same_than_company`: The same canAccessFaqCustomisation setting than the user's company's is applied to the user. if the canAccessFaqCustomisation of the company is changed the user's canAccessFaqCustomisation will use this company new setting.
* `enabled`: The user can access to the FAQ.
* `disabled`: The user can't access to the FAQ. | * | canAccessWhatsNew | String | Activate/Deactivate the capability for a user to access to what's new.
Defines if a user can access to what's new.
canAccessWhatsNew can be:

* `same_than_company`: The same canAccessWhatsNew setting than the user's company's is applied to the user. if the canAccessWhatsNew of the company is changed the user's canAccessWhatsNew will use this company new setting.
* `enabled`: The user can access to what's new.
* `disabled`: The user can't access to what's new. | * | imPopupDuration optionnel | Number | Defines the IM popup duration.

* If the imPopupDuration is not defined or null, the same imPopupDuration setting than the user's company's is applied to the user.
* Otherwise, a new imPopupDuration is set for the user. | * | useTeamsMode optionnel | String | Activate/Deactivate the capability for a user to use the Teams mode.
Defines if a user can use the Teams mode.
useTeamsMode can be:

* `same_than_company`: The same useTeamsMode setting than the user's company's is applied to the user. if the useTeamsMode of the company is changed the user's useTeamsMode will use this company new setting.
* `enabled`: The user can use the Teams mode.
* `disabled`: The user can't use the Teams mode. | * | useSoftPhoneMode | String | Activate/Force/Deactivate the capability for a user to use the softphone mode.
Defines if a user can use the softphone mode.
useSoftPhoneMode can be:

* `same_than_company`: The same useSoftPhoneMode setting than the user's company's is applied to the user. if the useSoftPhoneMode of the company is changed the user's useSoftPhoneMode will use this company new setting.
* `enabled`: The user can use the softphone mode.
* `forced`: The user can use the softphone mode only on Web application.
* `disabled`: The user can't use the softphone mode. | * | useComputerMode | String | Activate/Deactivate the capability for a user to use the computer mode.
Defines if a user can use the computer mode.
useComputerMode can be:

* `same_than_company`: The same useComputerMode setting than the user's company's is applied to the user. if the useComputerMode of the company is changed the user's useComputerMode will use this company new setting.
* `enabled`: The user can use the computer mode.
* `disabled`: The user can't use the computer mode. | * | useOtherPhoneMode | String | Activate/Deactivate the capability for a user to use the other phone mode.
Defines if a user can use the other phone mode.
useOtherPhoneMode can be:

* `same_than_company`: The same useOtherPhoneMode setting than the user's company's is applied to the user. if the useOtherPhoneMode of the company is changed the user's useOtherPhoneMode will use this company new setting.
* `enabled`: The user can use the other phone mode.
* `disabled`: The user can't use the other phone mode. | * | meetingRecordingCustomisation | String | Activate/Deactivate the capability for a user to record a meeting.
Defines if a user can record a meeting.
meetingRecordingCustomisation can be:

* `same_than_company`: The same meetingRecordingCustomisation setting than the user's company's is applied to the user. if the meetingRecordingCustomisation of the company is changed the user's meetingRecordingCustomisation will use this company new setting.
* `enabled`: The user can record a meeting.
* `disabled`: The user can't record a meeting. | * | eLearningGamificationCustomisation | String | Activate/Deactivate the capability for a user to earn badges for Elearning progress.
Defines if a user can earn badges for Elearning progress.
eLearningGamificationCustomisation can be:

* `same_than_company`: The same eLearningGamificationCustomisation setting than the user's company's is applied to the user. if the eLearningGamificationCustomisation of the company is changed the user's eLearningGamificationCustomisation will use this company new setting.
* `enabled`: The user can earn badges for Elearning progress.
* `disabled`: The user can't earn badges for Elearning progress. | * | eLearningCustomisation | String | Activate/Deactivate the capability for a user to participate on a Elearning training.
Defines if a user can participate on an Elearning training.
eLearningCustomisation can be:

* `same_than_company`: The same eLearningCustomisation setting than the user's company's is applied to the user. if the useSpeakingTimeStatistics of the company is changed the user's eLearningCustomisation will use this company new setting.
* `enabled`: The user can participate on an Elearning training.
* `disabled`: The user can't participate on an Elearning training. | * | useWebRTCAudioAsRBVoiceUser | String | Technical flag for Rainbow voice users.
Whatever the customisation template applied for the user, if he has a Rainbow Voice licence useWebRTCAudioAsRBVoiceUser is enabled else it is disabled. | * | useRoomAsRBVoiceUser | String | Technical flag for Rainbow voice users.
Whatever the customisation template applied for the user, if he has a Rainbow Voice licence useRoomAsRBVoiceUser is enabled else it is disabled. | * | selectedAppCustomisationTemplate | String | To log the last template applied to the user. | * | useSpeakingTimeStatistics | String | Activate/Deactivate the capability for a user to see speaking time statistics.
Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
useSpeakingTimeStatistics can be:

* `same_than_company`: The same useSpeakingTimeStatistics setting than the user's company's is applied to the user. if the useSpeakingTimeStatistics of the company is changed the user's useSpeakingTimeStatistics will use this company new setting.
* `enabled`: The user can use meeting speaking time statistics.
* `disabled`: The user can't use meeting speaking time statistics. | * | readReceiptsCustomisation | String | Activate/Deactivate the capability for a user to allow a sender to check if a chat message is read.
Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
This right is used by Ucaas or Cpaas application to show either or not a message is acknowledged. No check is done on backend side.
readReceiptsCustomisation can be:

* `same_than_company`: The same readReceiptsCustomisation setting than the user's company's is applied to the user. if the readReceiptsCustomisation of the company is changed the user's readReceiptsCustomisation will use this company new setting.
* `enabled`: The user allows the sender to check if an IM is read.
* `disabled`: The user doesn't allow the sender to check if an IM is read. | * | useDialOutCustomisation | String | Activate/Deactivate the capability for a user to use dial out in phone meetings.
Define if a user is allowed to be called by the Rainbow conference bridge.
useDialOutCustomisation can be:

* `same_than_company`: The same useDialOutCustomisation setting than the user's company's is applied to the user. if the useDialOutCustomisation of the company is changed the user's useDialOutCustomisation will use this company new setting.
* `enabled`: The user can be called by the Rainbow conference bridge.
* `disabled`: The user can't be called by the Rainbow conference bridge. | * | forbidFileOwnerChangeCustomisation | String | Activate/Deactivate the capability for a user to loose the ownership on one file..
One user can drop the ownership to another Rainbow user of the same company.
forbidFileOwnerChangeCustomisation can be:

* `same_than_company`: The same forbidFileOwnerChangeCustomisation setting than the user's company's is applied to the user. if the forbidFileOwnerChangeCustomisation of the company is changed the user's forbidFileOwnerChangeCustomisation will use this company new setting.
* `enabled`: The user can't give the ownership of his file.
* `disabled`: The user can give the ownership of his file. | * | fileTransferCustomisation | String | Activate/Deactivate the capability for a user to copy a file from a conversation then share it inside another conversation.
The file cannot be re-shared.
fileTransferCustomisation can be:

* `same_than_company`: The same fileTransferCustomisation setting than the user's company's is applied to the user. if the fileTransferCustomisation of the company is changed the user's fileTransferCustomisation will use this company new setting.
* `enabled`: The user can transfer a file doesn't belong to him.
* `disabled`: The user can't transfer a file doesn't belong to him. | * | fileCopyCustomisation | String | Activate/Deactivate the capability for one user to copy any file he receives in his personal cloud space
fileCopyCustomisation can be:

* `same_than_company`: The same fileCopyCustomisation setting than the user's company's is applied to the user. if the fileCopyCustomisation of the company is changed the user's fileCopyCustomisation will use this company new setting.
* `enabled`: The user can make a copy of a file to his personal cloud space.
* `disabled`: The user can't make a copy of a file to his personal cloud space. | * | useGifCustomisation | String | Activate/Deactivate the ability for a user to Use GIFs in conversations.
Define if a user has the is allowed to send animated GIFs in conversations
useGifCustomisation can be:

* `same_than_company`: The same useGifCustomisation setting than the user's company's is applied to the user. if the useGifCustomisation of the company is changed the user's useGifCustomisation will use this company new setting.
* `enabled`: The user can send animated GIFs in conversations.
* `disabled`: The user can't send animated GIFs in conversations. | * | recordingConversationCustomisation | String | Activate/Deactivate the capability for a user to record a conversation.
Define if a user has the right to record a conversation (for P2P and multi-party calls).
recordingConversationCustomisation can be:

* `same_than_company`: The same recordingConversationCustomisation setting than the user's company's is applied to the user. if the recordingConversationCustomisation of the company is changed the user's recordingConversationCustomisation will use this company new setting.
* `enabled`: The user can record a peer to peer or a multi-party call.
* `disabled`: The user can't record a peer to peer or a multi-party call. | * | changeSettingsCustomisation | String | Activate/Deactivate the ability for a user to change all client general settings.
changeSettingsCustomisation can be:

* `same_than_company`: The same changeSettingsCustomisation setting than the user's company's is applied to the user. if the changeSettingsCustomisation of the company is changed the user's changeSettingsCustomisation will use this company new setting.
* `enabled`: The user can change all client general settings.
* `disabled`: The user can't change any client general setting. | * | changeTelephonyCustomisation | String | Activate/Deactivate the ability for a user to modify telephony settings.
Define if a user has the right to modify some telephony settigs like forward activation...
changeTelephonyCustomisation can be:

* `same_than_company`: The same changeTelephonyCustomisation setting than the user's company's is applied to the user. if the changeTelephonyCustomisation of the company is changed the user's changeTelephonyCustomisation will use this company new setting.
* `enabled`: The user can modify telephony settings.
* `disabled`: The user can't modify telephony settings. | * | overridePresenceCustomisation | String | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to change his presence manually or only use automatic states.
overridePresenceCustomisation can be:

* `same_than_company`: The same overridePresenceCustomisation setting than the user's company's is applied to the user. if the overridePresenceCustomisation of the company is changed the user's overridePresenceCustomisation will use this company new setting.
* `enabled`: The user can change his presence.
* `disabled`: The user can't change his presence. | * | fileStorageCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow file storage..
Define if a user has the right to upload/download/copy or share documents.
fileStorageCustomisation can be:

* `same_than_company`: The same fileStorageCustomisation setting than the user's company's is applied to the user. if the fileStorageCustomisation of the company is changed the user's fileStorageCustomisation will use this company new setting.
* `enabled`: The user can manage and share files.
* `disabled`: The user can't manage and share files. | * | userProfileCustomisation | String | Activate/Deactivate the capability for a user to modify his profile.
Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
userProfileCustomisation can be:

* `same_than_company`: The same userProfileCustomisation setting than the user's company's is applied to the user. if the userProfileCustomisation of the company is changed the user's userProfileCustomisation will use this company new setting.
* `enabled`: The user can modify his profile.
* `disabled`: The user can't modify his profile. | * | instantMessagesCustomisation | String | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
instantMessagesCustomisation can be:

* `same_than_company`: The same instantMessagesCustomisation setting than the user's company's is applied to the user. if the instantMessagesCustomisation of the company is changed the user's instantMessagesCustomisation will use this company new setting.
* `enabled`: The user can use instant messages.
* `disabled`: The user can't use instant messages. | * | useWebRTCAudioCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
useWebRTCAudioCustomisation can be:

* `same_than_company`: The same useWebRTCAudioCustomisation setting than the user's company's is applied to the user. if the useWebRTCAudioCustomisation of the company is changed the user's useWebRTCAudioCustomisation will use this company new setting.
* `enabled`: The user can switch to a Web RTC audio conversation.
* `disabled`: The user can't switch to a Web RTC audio conversation. | * | useWebRTCVideoCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
useWebRTCVideoCustomisation can be:

* `same_than_company`: The same useWebRTCVideoCustomisation setting than the user's company's is applied to the user. if the useWebRTCVideoCustomisation of the company is changed the user's useWebRTCVideoCustomisation will use this company new setting.
* `enabled`: The user can switch to a Web RTC video conversation.
* `disabled`: The user can't switch to a Web RTC video conversation. | * | useChannelCustomisation | String | Activate/Deactivate the capability for a user to use a channel.
Define if a user has the right to create channels or be a member of channels.
useChannelCustomisation can be:

* `same_than_company`: The same useChannelCustomisation setting than the user's company's is applied to the user. if the useChannelCustomisation of the company is changed the user's useChannelCustomisation will use this company new setting.
* `enabled`: The user can use some channels.
* `disabled`: The user can't use some channel. | * | phoneMeetingCustomisation | String | Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
Define if a user has the right to join phone meetings.
phoneMeetingCustomisation can be:

* `same_than_company`: The same phoneMeetingCustomisation setting than the user's company's is applied to the user. if the phoneMeetingCustomisation of the company is changed the user's phoneMeetingCustomisation will use this company new setting.
* `enabled`: The user can join phone meetings.
* `disabled`: The user can't join phone meetings. | * | useRoomCustomisation | String | Activate/Deactivate the capability for a user to use bubbles.
Define if a user can create bubbles or participate in bubbles (chat and web conference).
useRoomCustomisation can be:

* `same_than_company`: The same useRoomCustomisation setting than the user's company's is applied to the user. if the useRoomCustomisation of the company is changed the user's useRoomCustomisation will use this company new setting.
* `enabled`: The user can use bubbles.
* `disabled`: The user can't use bubbles. | * | softphoneOnlyCustomisation | String | Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services but to focus to telephony services
Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
softphoneOnlyCustomisation can be:

* `same_than_company`: The same softphoneOnlyCustomisation setting than the user's company's is applied to the user. if the softphoneOnlyCustomisation of the company is changed the user's softphoneOnlyCustomisation will use this company new setting.
* `enabled`: The user switch to a softphone mode only.
* `disabled`: The user can use telephony services, chat, bubbles, channels meeting services and so on. | * | userTitleNameCustomisation | String | Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName)
Define if the user can change some profile data.
userTitleNameCustomisation can be:

* `same_than_company`: The same userTitleNameCustomisation setting than the user's company's is applied to the user. if the userTitleNameCustomisation of the company is changed the user's userTitleNameCustomisation will use this company new setting.
* `enabled`: Whatever the userTitleNameCustomisation of the company setting, the user can change some profile data.
* `disabled`: Whatever the userTitleNameCustomisation of the company setting, the user can't change some profile data. | * | fileSharingCustomisation | String | Activate/Deactivate file sharing capability per user
Define if the user can use the file sharing service then, allowed to download and share file.
FileSharingCustomisation can be:

* `same_than_company`: The same fileSharingCustomisation setting than the user's company's is applied to the user. if the fileSharingCustomisation of the company is changed the user's fileSharingCustomisation will use this company new setting.
* `enabled`: Whatever the fileSharingCustomisation of the company setting, the user can use the file sharing service.
* `disabled`: Whatever the fileSharingCustomisation of the company setting, the user can't use the file sharing service. | * | data | Object | User Object. | * | isInDefaultCompany | Boolean | Is user in default company | * | id | String | User unique identifier | * | loginEmail | String | User email address (used for login) | * | loginPhone optionnel | Object | User phone number (used for login) | * | E164 | String | User phone number in E164 format. Used for login and to send passwordless code to the user by SMS when passwordless authentication is enabled for this user with a policy configured to send the code by SMS.

Ordre de grandeur : `1..32` | * | isValidated | Boolean | Specifies that the loginPhone.E164 can be used to authenticate the user. | * | national optionnel | String | User phone number in national format. Can be used for login, but there is a risk several users have a same national number depending on the country (in such case, user must use E164 format to login).

Ordre de grandeur : `1..32` | * | nationalWithoutPrefix optionnel | String | User phone number in national format without national prefix. Can be used for login, but there is a risk several users have a same nationalWithoutPrefix number depending on the country (in such case, user must use E164 format to login).

Ordre de grandeur : `1..32` | * | E164WithoutPrefix optionnel | String | User phone number in E164 format without '+' prefix. Can be used for login, but there is a risk several users have a same E164WithoutPrefix number depending on the country (in such case, user must use E164 format to login).

Ordre de grandeur : `1..32` | * | E164WithNationalPrefix optionnel | String | User phone number in E164 format with the national prefix. Can be used for login, but there is a risk several users have a same E164WithNationalPrefix number depending on the country (in such case, user must use E164 format to login).

Ordre de grandeur : `1..32` | * | firstName | String | User first name | * | E164WithNationalPrefixWithoutPrefix optionnel | String | User phone number in E164 format with the national prefix but without '+' prefix. Can be used for login, but there is a risk several users have a same E164WithNationalPrefixWithoutPrefix number depending on the country (in such case, user must use E164 format to login).

Ordre de grandeur : `1..32` | * | lastName | String | User last name | * | displayName | String | User display name (firstName + lastName concatenated on server side) | * | nickName optionnel | String | User nickName | * | title optionnel | String | User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...) | * | jobTitle optionnel | String | User job title | * | department optionnel | String | User department | * | tags optionnel | String\[\] | An Array of free tags associated to the user.
A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters.
`tags` can only be set by users who have administrator rights on the user. The user can't modify the tags.
The tags are visible by the user and all users belonging to his organisation/company, and can be used with the search API to search the user based on his tags. | * | emails | Object\[\] | Array of user emails addresses objects | * | email | String | User email address | * | type | String | Email type, one of `home`, `work`, `other` | * | phoneNumbers | Object\[\] | Array of user phone numbers objects.
Phone number objects can:

* be created by user (information filled by user),
* come from association with a system (pbx) device (association is done by admin). | * | phoneNumberId | String | Phone number unique id in phone-numbers directory collection. | * | number optionnel | String | User phone number (as entered by user) | * | numberE164 optionnel | String | User E.164 phone number, computed by server from `number` and `country` fields | * | country | String | Phone number country (ISO 3166-1 alpha3 format)
`country` field is automatically computed using the following algorithm when creating/updating a phoneNumber entry:

* If `number` is provided and is in E164 format, `country` is computed from E164 number
* Else if `country` field is provided in the phoneNumber entry, this one is used
* Else user `country` field is used | * | isFromSystem | Boolean | Boolean indicating if phone is linked to a system (pbx). | * | shortNumber optionnel | String | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), short phone number (corresponds to the number monitored by PCG).
Only usable within the same PBX.
Only PCG can set this field. | * | internalNumber optionnel | String | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), internal phone number.
Usable within a PBX group.
Admins and users can modify this internalNumber field. | * | systemId optionnel | String | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), unique identifier of that system in Rainbow database. | * | pbxId optionnel | String | **\[Only for phone numbers linked to a system (pbx)\]**
If phone is linked to a system (pbx), unique identifier of that pbx. | * | type | String | Phone number type

Possibles values : `home`, `work`, `other`, `login`, `rainbow` | * | deviceType | String | Phone number device type, one of `landline`, `mobile`, `fax`, `other`. | * | isVisibleByOthers | Boolean | Allow user to choose if the phone number is visible by other users or not.
Note that administrators can see all the phone numbers, even if `isVisibleByOthers` is set to false.
Note that phone numbers linked to a system (`isFromSystem`=true) are always visible, `isVisibleByOthers` can't be set to false for these numbers. | * | redirectNumber optionnel | String | User redirect phone number (as entered by user) | * | isRedirectNumberEditable optionnel | String | Indicates if the redirect phone number is editable by a user | * | country | String | User country (ISO 3166-1 alpha3 format)

The list of allowed countries can be obtained using the API [GET /api/rainbow/enduser/v1.0/countries](/enduser/#api-countries-getCountries) | * | state optionnel | String | When country is 'USA' or 'CAN', a state can be defined. Else it is not managed (null).

The list of allowed states can be obtained using the API [GET /api/rainbow/enduser/v1.0/countries](/enduser/#api-countries-getCountries) for the associated countries.

* List of allowed states for `USA`:
* `AA`: "Armed Forces America",
* `AE`: "Armed Forces",
* `AP`: "Armed Forces Pacific",
* `AK`: "Alaska",
* `AL`: "Alabama",
* `AR`: "Arkansas",
* `AZ`: "Arizona",
* `CA`: "California",
* `CO`: "Colorado",
* `CT`: "Connecticut",
* `DC`: Washington DC",
* `DE`: "Delaware",
* `FL`: "Florida",
* `GA`: "Georgia",
* `GU`: "Guam",
* `HI`: "Hawaii",
* `IA`: "Iowa",
* `ID`: "Idaho",
* `IL`: "Illinois",
* `IN`: "Indiana",
* `KS`: "Kansas",
* `KY`: "Kentucky",
* `LA`: "Louisiana",
* `MA`: "Massachusetts",
* `MD`: "Maryland",
* `ME`: "Maine",
* `MI`: "Michigan",
* `MN`: "Minnesota",
* `MO`: "Missouri",
* `MS`: "Mississippi",
* `MT`: "Montana",
* `NC`: "North Carolina",
* `ND`: "North Dakota",
* `NE`: "Nebraska",
* `NH`: "New Hampshire",
* `NJ`: "New Jersey",
* `NM`: "New Mexico",
* `NV`: "Nevada",
* `NY`: "New York",
* `OH`: "Ohio",
* `OK`: "Oklahoma",
* `OR`: "Oregon",
* `PA`: "Pennsylvania",
* `PR`: "Puerto Rico",
* `RI`: "Rhode Island",
* `SC`: "South Carolina",
* `SD`: "South Dakota",
* `TN`: "Tennessee",
* `TX`: "Texas",
* `UT`: "Utah",
* `VA`: "Virginia",
* `VI`: "Virgin Islands",
* `VT`: "Vermont",
* `WA`: "Washington",
* `WI`: "Wisconsin",
* `WV`: "West Virginia",
* `WY`: "Wyoming"
* List of allowed states for `CAN`:
* `AB`: "Alberta",
* `BC`: "British Columbia",
* `MB`: "Manitoba",
* `NB`: "New Brunswick",
* `NL`: "Newfoundland and Labrador",
* `NS`: "Nova Scotia",
* `NT`: "Northwest Territories",
* `NU`: "Nunavut",
* `ON`: "Ontario",
* `PE`: "Prince Edward Island",
* `QC`: "Quebec",
* `SK`: "Saskatchewan",
* `YT`: "Yukon"

Possibles values : `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"` | * | language optionnel | String | User language (ISO 639-1 code format, with possibility of regional variation. Ex: both 'en' and 'en-US' are supported) | * | timezone optionnel | String | User timezone name | * | jid_im | String | User Jabber IM identifier | * | jid_tel | String | User Jabber TEL identifier | * | jid_password | String | User Jabber IM and TEL password | * | roles | String\[\] | List of user roles (Array of String)
Note: `company_support` role is only used for support redirection. If a user writes a #support ticket and have the role `company_support`, the ticket will be sent to ALE's support (otherwise the ticket is sent to user's company's `supportEmail` address is set, ALE otherwise). | * | adminType | String | In case of user's is 'admin', define the subtype (organisation\_admin, company\_admin, site_admin (default undefined) | * | companyId | String | User company unique identifier | * | organisationId | String | In addition to User companyId, optional identifier to indicate the user belongs also to an organization | * | siteId | String | In addition to User companyId, optional identifier to indicate the user belongs also to a site | * | companyName | String | User company name | * | selectedProgKeysGroupId | String | Identifier of the assigned company's telephonyKey group | * | visibility | String | User visibility
Define if the user can be searched by users being in other company and if the user can search users being in other companies.
Visibility can be:

* `same_than_company`: The same visibility than the user's company's is applied to the user. When this user visibility is used, if the visibility of the company is changed the user's visibility will use this company new visibility.
* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
* `private`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
* `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users
External users mean 'public user not being in user's company nor user's organisation nor a company visible by user's company.

Possibles values : `same_than_company`, `public`, `private`, `closed`, `isolated`, `none` | * | isActive | Boolean | Is user active | * | isInitialized | Boolean | Is user initialized | * | initializationDate | Date-Time | User initialization date | * | activationDate | Date-Time | User activation date | * | creationDate | Date-Time | User creation date | * | lastUpdateDate | Date-Time | Date of last user update (whatever the field updated) | * | lastAvatarUpdateDate | Date-Time | Date of last user avatar create/update, null if no avatar | * | createdBySelfRegister | Boolean | true if user has been created using self register | * | createdByAdmin optionnel | Object | If user has been created by an admin or superadmin, contain userId and loginEmail of the admin who created this user | * | userId | String | userId of the admin who created this user | * | loginEmail | String | loginEmail of the admin who created this user | * | invitedBy optionnel | Object | If user has been created from an email invitation sent by another rainbow user, contain the date the invitation was sent and userId and loginEmail of the user who invited this user | * | userId | String | userId of the user who invited this user | * | authenticationType optionnel | String | User authentication type (if not set company default authentication will be used)

Possibles values : `DEFAULT`, `RAINBOW`, `SAML`, `OIDC` | * | loginEmail | String | loginEmail of the user who invited this user | * | authenticationExternalUid optionnel | String | User external authentication ID Allows to authenticate the user based on an external identifier (company's SSO server (SAML or OIDC), Teams, Outlook, ...) | * | firstLoginDate | Date-Time | Date of first user login (only set the first time user logs in, null if user never logged in) | * | lastLoginDate | Date-Time | Date of last user login (defined even if user is logged out) | * | loggedSince | Date-Time | Date of last user login (null if user is logged out) | * | lastSeenDate | Date-Time | Approximate date when the user has been seen on Rainbow (null if user never logged in)
This date is updated:

* When the user logs in (either from login API, SAML/OIDC SSO, OAuth)
* When the token of the user is refreshed (using the API GET /api/rainbow/authentication/v1.0/renew, done automatically by the clients before the token expires and not visible by the user)
* When the user logs out | * | isTerminated | Boolean | Indicates if the Rainbow account of this user has been deleted | * | isAlertNotificationEnabled | Boolean | Is user subscribed to Rainbow Alert Offer | * | guestMode | Boolean | Indicated a user embedded in a chat or conference room, as guest, with limited rights until he finalizes his registration. | * | timeToLive optionnel | Number | Duration in second to wait before automatically starting a user deletion from the creation date.
Once the timeToLive has been reached, the user won't be usable to use APIs anymore (error 401523). His account may then be deleted from the database at any moment.
Value -1 means timeToLive is disable (i.e. user account will not expire). | * | userInfo1 optionnel | String | Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) | * | userInfo2 optionnel | String | 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file) | * | profiles | Object\[\] | User profile Objects. | * | subscriptionId | String | Id of company subscription to which user profile is assigned (one of the subscriptions available to user's company) | * | offerId | String | Id of the Rainbow offer to which company subscription is attached | * | offerName | String | Name of the Rainbow offer to which company subscription is attached | * | profileId | String | Id of the Rainbow profile to which company subscription is attached | * | profileName | String | Name of the Rainbow profile to which company subscription is attached | * | status | String | Status of the company subscription to which user profile is assigned

Possible values: `active`, `alerting`, `hold`, `terminated` | * | isDefault | Boolean | Indicates if this profile is linked to user's company's subscription to default offer (i.e. Essential) | * | assignationDate | String | Date when the subscription was attached to user profile | * | canBeSold | Boolean | Indicates if the offer is billed.
Some offers will not be billed (Essential, Demo, ...). | * | offerTechnicalDescription optionnel | string | Offer technical description.

Ordre de grandeur : `1..512` | * | businessModel optionnel | string | Indicates the business model associated to this offer (number of users, usage, ...)

* `nb_users`: Licencing business model. Subscriptions having this business model are billed according to the number of users bought for it.
* `usage`: Subscriptions having this business model are billed based on service consumption (whatever the number of users assigned to the subscription of this offer).
* `flat_fee`: Subscriptions having this business model are billed based on a flat fee (same price each month for the company which subscribe to this offer).
* `none`: no business model. Should be used for offers which are not sold (like Essential...).

Valeur par défaut : `none`

Possibles values : `nb_users`, `usage`, `flat_fee`, `none` | * | businessSpecific optionnel | String\[\] | Indicates if the subscription is related to specific(s) business (for verticals like HDS)

* `NONE`: This subscription is used if the company does not have a businessSpecific field.
* `HDS`: This subscription is used if the company have a businessSpecific HDS (HealthCare).

Valeur par défaut : `["NONE"]`

Possibles values : `NONE`, `HDS` | * | isExclusive optionnel | Boolean | Indicates if the offer is exclusive for assignation to a user profile (if the user has already an exclusive offer assigned, it won't be possible to assign a second exclusive offer). | * | isPrepaid optionnel | Boolean | Indicates if the profile is linked to a prepaid subscription | * | prepaidDuration optionnel | Number | Prepaid subscription duration (in month).
Only set if `isPrepaid` is true. | * | zuoraOfferId optionnel | string | ID of the related offer in Zuora (if offer can be sold) | * | zuoraProductRatePlanId optionnel | string | ID of the ProductRatePlanId to used in Zuora (if offer can be sold) | * | zuoraProductRatePlanChargeId optionnel | string | ID of the ProductRatePlanChargeId used in Zuora (if offer can be sold) | * | hasConference optionnel | Boolean | Indicates if the profile contains conference services | * | isDemo optionnel | Boolean | Indicates if the profile is linked to a demo subscription | * | useScreenSharingCustomisation | String | Activate/Deactivate the capability for a user to share a screen.
Define if a user has the right to share his screen.
useScreenSharingCustomisation can be:

* `same_than_company`: The same useScreenSharingCustomisation setting than the user's company's is applied to the user. if the useScreenSharingCustomisation of the company is changed the user's useScreenSharingCustomisation will use this company new setting.
* `enabled`: Each user of the company can share his screen.
* `disabled`: No user of the company can share his screen. | * | mfaRainbowAuth optionnel | Object\[\] | Rainbow authentication policy Object. | * | mfaRainbowPolicyId optionnel | String | Id of company rainbow policy to which user profile is assigned | * | mfaStatus optionnel | String | status of the activation of the rainbow policy

Possibles values : `init`, `enabled`, `disabled` | * | mfaTrustedApps optionnel | Object\[\] | list of trusted application of rainbow policy | * | appId optionnel | String | id of a trusted application of rainbow policy | * | appName optionnel | String | name of a trusted application of rainbow policy | * | rainbowPasswordlessPolicy optionnel | Object\[\] | Rainbow passwordless authentication policy Object. | * | rainbowPasswordlessPolicyId optionnel | String | Id of company rainbow passwordless policy to which user is assigned | * | sendToEmail optionnel | String | Optional email used to send passwordless code to the user (instead of his loginEmail address) when passwordless authentication is enabled for the user and the associated company's passwordless policy has `sendEmail`=true. | * | customData optionnel | Object | User's custom data.
Object with free keys/values.
It is up to the client to manage the user's customData (new customData provided overwrite the existing one).

Restrictions on customData Object:

* max 20 keys,
* max key length: 64 characters,
* max value length: 4096 characters. | * */ registerUserByEmailSecondStepWithToken(userLoginInfo: { "loginEmail": string; "password": string; "temporaryToken": string; }): Promise; /** * @public * @nodered true * @method getAllCompanies * @param {string} format="small" Allows to retrieve more or less company details in response.
* - small: _id, name
* - medium: id, name, status, adminEmail, companyContactId, country, website, slogan, description, size, economicActivityClassification, lastAvatarUpdateDate, lastBannerUpdateDate, avatarShape, visibility
* - full for superadmin, support, business_admin, bp_admin and bp_finance: All fields
* - full for admin: All fields except BP fields (bpType, bpBusinessModel, bpApplicantNumber, bpCRDid, bpHasRightToSell, bpHasRightToConnect, bpIsContractAccepted, bpContractAcceptationInfo)
*
* Default value : small
* Possible values : small, medium, full
* @param {string} sortField="name" Sort items list based on the given field. Default value : name * @param {string} bpId Allows to filter companies list on bpId field.
* This filter allow to get all the End Customer companies associated to a given Business Partner company.
*
* Only users with role superadmin, support, business_admin, bp_admin or bp_finance can use this filter.
* Users with role bp_admin or bp_finance can use this filter on their own company. * @param {string} catalogId Allows to filter companies list on catalogId field.
* This filter allow to get all the companies linked to a given catalogId.
*
* Only users with role superadmin, support or business_admin can use this filter. * @param {string} offerId Allows to filter companies list on companies having subscribed to the provided offerId. * @param {boolean} offerCanBeSold Allows to filter companies list on companies having subscribed to offers with canBeSold=true.
* This filter can only be used with the value true (false is not relevant, as all companies have a subscription to Essential which has canBeSold=false, so all companies would match offerCanBeSold=false). * @param {string} externalReference Allows to filter companies list on externalReference field.
* The search is done on externalReference starting with the input characters, case sensitive (ex: ABC will match companies with externalReference ABC, ABCD, ABC12... ; but externalReference abc, AABC, 1ABC, ... will not match).
*
* Only users with role superadmin, support, business_admin, bp_admin or bp_finance can use this filter. * @param {string} externalReference2 Allows to filter companies list on externalReference2 field.
* The search is done on externalReference2 starting with the input characters, case sensitive (ex: ABC will match companies with externalReference2 ABC, ABCD, ABC12... ; but externalReference2 abc, AABC, 1ABC, ... will not match).
*
* Only users with role superadmin, support, business_admin, bp_admin or bp_finance can use this filter. * @param {string} salesforceAccountId Allows to filter companies list on salesforceAccountId field.
* The search is done on the whole salesforceAccountId, case sensitive (no partial search).
*
* Only users with role superadmin, support, business_admin, bp_admin or bp_finance can use this filter. * @param {string} selectedAppCustomisationTemplate Allows to filter companies list on application customisation template applied for the company.
* This filter allows to get a list of companies for which we have applied the same application customisation template.
*
* Only users with role superadmin, support, bp_admin, admin can use this filter. * @param {boolean} selectedThemeObj Allows to return selectedTheme attribute as an object:
* - true returns selectedTheme as an object (e.g. { "light": "60104754c8fada2ad4be3e48", "dark": "5ea304e4359c0e6815fc8b57" }),
* - false return selectedTheme as a string. * @param {string} offerGroupName Allows to filter companies list on companies having subscribed to offers with provided groupName(s).
* Only users with role superadmin, support, business_admin, bp_admin or bp_finance can use this filter.
* groupName can be retrieved from API GET /api/rainbow/subscription/v1.0/companies/:companyId/offers
* The search is done on the whole groupName(s), case sensitive (no partial search).
* Several groupName can be provided, seperated by a space. * @param {number} limit=100 Allow to specify the number of items to retrieve.
* Default value : 100 * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified).
* Warning: if offset > total, no results are returned. * @param {number} sortOrder=1 Specify order when sorting items list.
* Default value : 1
* Possible values : -1, 1 * @param {string} name Allows to filter companies list on the given keyword(s) on field name.
*
* The filtering is case insensitive and on partial name match: all companies containing the provided name value will be returned (whatever the position of the match).
* Ex: if filtering is done on comp, companies with the following names are match the filter 'My company', 'Company', 'A comp 1', 'Comp of comps', ... * @param {string} status Allows to filter companies list on the provided status(es)
*
* Possible values : initializing, active, alerting, hold, terminated * @param {string} visibility Allows to filter companies list on the provided visibility(ies)
*
* Possible values : public, private, organization, closed, isolated * @param {string} organisationId Allows to filter companies list on the organisationIds provided in this option.
*
* This filter can only be used if user has role(s) superadmin, support, bp_admin or admin * @param {boolean} isBP Allows to filter companies list on isBP field:
*
* true returns only Business Partner companies,
* false return only companies which are not Business Partner.
*
* This filter can only be used if user has role(s) superadmin, business_admin, support, bp_admin or admin. * @param {boolean} hasBP Allows to filter companies list on companies being linked or not to a BP:
*
* true returns only companies linked to a BP (BP IR companies are also returned),
* false return only companies which are not linked to a BP. *
* This filter can only be used if user has role(s) superadmin, business_admin, support or bp_admin.
*
* Users with role bp_admin can only use this filter with value false. * @param {string} bpType Allows to filter companies list on bpType field.
*
* This filter allow to get all the Business Partner companies from a given bpType.
*
* Only users with role superadmin, business_admin, support or bp_admin can use this filter. * @instance * @description * Get all companies for a given admin following request filters.
* @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Json object containing with all companies (companyId and companyName) or an error object depending on the result * @category async */ getAllCompanies(format?: string, sortField?: string, bpId?: string, catalogId?: string, offerId?: string, offerCanBeSold?: boolean, externalReference?: string, externalReference2?: string, salesforceAccountId?: string, selectedAppCustomisationTemplate?: string, selectedThemeObj?: boolean, offerGroupName?: string, limit?: number, offset?: number, sortOrder?: number, name?: string, status?: string, visibility?: string, organisationId?: string, isBP?: boolean, hasBP?: boolean, bpType?: string): Promise; /** * get a company * @private */ getCompanyById(companyId: string): Promise; /** * Remove a company * @private */ removeCompany(company: any): Promise; /** * @public * @nodered true * @method getCompaniesBPBusinessType * @instance * @description * This API allows superadmin to retrieve allowed values for bpBusinessType * @async * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | String | bp business type id. | * | description | String | bp business type description. | * * examples of result : * ```json * [ * { * "id": "voice_by_partner", * "description": "Voice by Partner" * }, * { * "id": "voice_by_ale", * "description": "Voice by ALE" * }, * { * "id": "default", * "description": "Default" * }, * { * "id": "conference", * "description": "Conference" * } * ] * ``` * */ getCompaniesBPBusinessType(): Promise; /** * @public * @nodered true * @method getCompanyAppFeatureCustomisation * @instance * @description * This API allows administrators to list the features customisation elements for the company. * * Retrieves the application features customisation elements (e.g. conversation pane, menu pane, services) for the given company. * The list of supported features elements is the following (naming convention given from the desktop): * * * featureConversationPane: Left pane containing conversations. * * callContact: Button call a contact from conversations pane. * * searchContact: Search bar in the conversations pane. * * featureTopPane: Top pane containing the menu. * * featureServices: Services available for the users. * * meeting: Allow to create a meeting. * * uploadFile: Allow user to upload a file. * * shareFile: Allow user to share file with other user . * * callHistory: Allow user to have a call history. * * createBubble: Allow user to create bubble. * @async * @param {string} companyId Company for which list of custom feature elements is requested. * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | companyId | String | Company for which list of custom feature elements is requested. | * * examples of result : * ```json * { * "id": "59a86a53aa11836bde061833", * "appFeaturesCustomisation": { * "featureConversationPane": "#595959", * "callContact": false, * "searchContact": false, * "meeting": false * } * } * ``` * */ getCompanyAppFeatureCustomisation(companyId: string): Promise; /** * @public * @nodered true * @method getCompanyServiceDescriptionFile * @instance * @description * This API allows administrators to get service description pdf file uploaded by superadmin. * @async * @param {string} companyId Company for which service description file is requested. * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | pdf | Binary | Service description pdf file. | * */ getCompanyServiceDescriptionFile(companyId: string): Promise; /** * @public * @nodered true * @method getDefaultCompanyData * @instance * @description * This API allows to get the default Rainbow company. * @async * @param {string} format Allows to retrieve more or less company details in response. *
*
* `small`: _id, name *
* `medium`: id, name, status, adminEmail, companyContactId, isBP, bpType, country, website, slogan, description, size, economicActivityClassification, creationDate, lastAvatarUpdateDate, lastBannerUpdateDate, avatarShape, visibility *
* `full` for superadmin and support: All fields *
* `full` for admin: All fields except BP fields (bpType, bpBusinessModel, bpApplicantNumber, bpCRDid, bpHasRightToSell, bpHasRightToConnect, bpHasRightForBYOT, preferredSipLoadBalancerId, bpIsContractAccepted, bpContractAcceptationInfo) *
* Default value : `full`. Possibles values : `small`, `medium`, `full`. * @param {string} selectedThemeObj Allows to return selectedTheme attribute as an object: *
*
* true returns selectedTheme as an object (e.g. { "light": "60104754c8fada2ad4be3e48", "dark": "5ea304e4359c0e6815fc8b57" }), *
* false return selectedTheme as a string. * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Company Object. | * | id | String | Company unique identifier | * | creationDate | Date-Time | Company creation date (Read only) | * | statusUpdatedDate | Date-Time | Date of last company status update (Read only) | * | lastAvatarUpdateDate | Date-Time | Date of last company avatar update (Read only) | * | name | String | Company name | * | country optionnel | String | Company country (ISO 3166-1 alpha3 format)

The list of allowed countries can be obtained using the API AdminService::getListOfCountries() | * | street optionnel | String | Company street
| * | city optionnel | String | Company city
| * | state optionnel | String | When country is 'USA' or 'CAN', a state must be defined. Else it is not managed.

The list of allowed states can be obtained using the API AdminService::getListOfCountries() for the associated countries.

* List of allowed states for `USA`:
* `AA`: "Armed Forces America",
* `AE`: "Armed Forces",
* `AP`: "Armed Forces Pacific",
* `AK`: "Alaska",
* `AL`: "Alabama",
* `AR`: "Arkansas",
* `AZ`: "Arizona",
* `CA`: "California",
* `CO`: "Colorado",
* `CT`: "Connecticut",
* `DC`: Washington DC",
* `DE`: "Delaware",
* `FL`: "Florida",
* `GA`: "Georgia",
* `GU`: "Guam",
* `HI`: "Hawaii",
* `IA`: "Iowa",
* `ID`: "Idaho",
* `IL`: "Illinois",
* `IN`: "Indiana",
* `KS`: "Kansas",
* `KY`: "Kentucky",
* `LA`: "Louisiana",
* `MA`: "Massachusetts",
* `MD`: "Maryland",
* `ME`: "Maine",
* `MI`: "Michigan",
* `MN`: "Minnesota",
* `MO`: "Missouri",
* `MS`: "Mississippi",
* `MT`: "Montana",
* `NC`: "North Carolina",
* `ND`: "North Dakota",
* `NE`: "Nebraska",
* `NH`: "New Hampshire",
* `NJ`: "New Jersey",
* `NM`: "New Mexico",
* `NV`: "Nevada",
* `NY`: "New York",
* `OH`: "Ohio",
* `OK`: "Oklahoma",
* `OR`: "Oregon",
* `PA`: "Pennsylvania",
* `PR`: "Puerto Rico",
* `RI`: "Rhode Island",
* `SC`: "South Carolina",
* `SD`: "South Dakota",
* `TN`: "Tennessee",
* `TX`: "Texas",
* `UT`: "Utah",
* `VA`: "Virginia",
* `VI`: "Virgin Islands",
* `VT`: "Vermont",
* `WA`: "Washington",
* `WI`: "Wisconsin",
* `WV`: "West Virginia",
* `WY`: "Wyoming"
* List of allowed states for `CAN`:
* `AB`: "Alberta",
* `BC`: "British Columbia",
* `MB`: "Manitoba",
* `NB`: "New Brunswick",
* `NL`: "Newfoundland and Labrador",
* `NS`: "Nova Scotia",
* `NT`: "Northwest Territories",
* `NU`: "Nunavut",
* `ON`: "Ontario",
* `PE`: "Prince Edward Island",
* `QC`: "Quebec",
* `SK`: "Saskatchewan",
* `YT`: "Yukon"

Possibles values : `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"` | * | postalCode optionnel | String | Company postal code
| * | currency optionnel | String | Company currency, for payment of premium offers (ISO 4217 format)
For now, only USD, EUR and CNY are supported

Possibles values : `USD`, `EUR`, `CNY` | * | status | String | Company status

Possibles values : `initializing`, `active`, `alerting`, `hold`, `terminated` | * | visibility optionnel | string | Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies).

* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
* `private`: User **can't** be searched by external users (even within his organisation) / can search external users. User can invite external users / can be invited by external users
* `organisation`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
* `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users

External users mean public user not being in user's company nor user's organisation nor a company visible by user's company.

Note related to organisation visibility:

* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies inside the same organisation.
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched outside the organisation's companies.

Default value : `private`

Possibles values : `public`, `private`, `organisation`, `closed`, `isolated` | * | visibleBy | String\[\] | If visibility is private, list of companyIds for which visibility is allowed | * | adminEmail optionnel | String | Company contact person email | * | supportEmail optionnel | String | Company support email | * | supportUrlFAQ optionnel | String | Company support URL | * | companyContactId optionnel | String | User Id of a Rainbow user which is the contact for this company | * | disableCCareAdminAccess optionnel | Boolean | When True, disables the access to the customer care logs for admins of this company.
Note that if `disableCCareAdminAccessCustomers` is enabled on its BP company or `disableCCareAdminAccessResellers` is enabled on its BP VAD company, this setting is forced to true. | * | disableCCareAdminAccessCustomers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the customers company.
This setting is only applicable for BP companies (`isBP`=true)

* If the BP company is a DR or an IR, enabling this setting disables the access to the customer care logs for the admins of all its customers companies.
* If the BP company is a VAD, enabling this setting disables the access to the customer care logs for all the admins of its customers companies.
Note that the bp_admins/admins of all the BP IRs companies linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessResellers` on the BP VAD company allows to disable it). | * | disableCCareAdminAccessResellers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company.
This setting is only applicable for BP VAD companies (`isBP`=true and `bpType`=`VAD`)
Enabling this setting disables on the BP VAD company disables the access to the customer care logs for the bp_admins/admins of all the BP IRs linked to this VAD, and to all the admins of their customers.
Note that the admins of all the customer companies directly linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessCustomers` on the BP VAD company allows to disable it). | * | autoAcceptUserInvitations optionnel | Boolean | Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled) | * | userSelfRegisterEnabled | Boolean | Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process | * | userSelfRegisterAllowedDomains | String\[\] | Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) | * | slogan optionnel | String | A free string corresponding to the slogan of the company (255 char length) | * | description optionnel | String | A free string that describes the company (2000 char length) | * | size | String | An overview of the number of employees

Possibles values : `"self-employed"`, `"1-10 employees"`, `"11-50 employees"`, `"51-200 employees"`, `"201-500 employees"`, `"501-1000 employees"`, `"1001-5000 employees"`, `"5001-10,000 employees"`, `"10,001+ employees"` | * | economicActivityClassification optionnel | String | * `A`: AGRICULTURE, FORESTRY AND FISHING
* `B`: MINING AND QUARRYING
* `C`: MANUFACTURING
* `D`: ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY
* `E`: WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES
* `F`: CONSTRUCTION
* `G`: WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES
* `H`: TRANSPORTATION AND STORAGE
* `I`: ACCOMMODATION AND FOOD SERVICE ACTIVITIES
* `J`: INFORMATION AND COMMUNICATION
* `K`: FINANCIAL AND INSURANCE ACTIVITIES
* `L`: REAL ESTATE ACTIVITIES
* `M`: PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES
* `N`: ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES
* `O`: PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY
* `P`: EDUCATION
* `Q`: HUMAN HEALTH AND SOCIAL WORK ACTIVITIES
* `R`: ARTS, ENTERTAINMENT AND RECREATION
* `S`: OTHER SERVICE ACTIVITIES
* `T`: ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE
* `U`: ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES

Possibles values : `"NONE"`, `"A"`, `"B"`, `"C"`, `"D"`, `"E"`, `"F"`, `"G"`, `"H"`, `"I"`, `"J"`, `"K"`, `"L"`, `"M"`, `"N"`, `"O"`, `"P"`, `"Q"`, `"R"`, `"S"`, `"T"`, `"U"` | * | giphyEnabled optionnel | Boolean | Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations) | * | website optionnel | String | Company website URL | * | organisationId | String | Optional identifier to indicate the company belongs to an organisation | * | catalogId | String | Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe. | * | bpId | String | Optional identifier which links the company to the corresponding Business partner company | * | adminHasRightToUpdateSubscriptions optionnel | Boolean | In the case the company is linked to a Business Partner company, indicates if the `bp_admin` allows the `company_admin` to update the subscriptions of his company (if enable, allowed operations depend of the value of `adminAllowedUpdateSubscriptionsOps`).
Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company. | * | adminAllowedUpdateSubscriptionsOps optionnel | String | In the case the company is linked to a Business Partner company and `adminHasRightToUpdateSubscriptions` is enabled, indicates the update operations for which the `bp_admin` allows the `company_admin` to perform on the subscriptions of his company.

Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company.

Possible values:

* `all`: company_admin is allowed to perform all update operations on the subscriptions of his company
* `increase_only`: company_admin is only allowed to increase `maxNumberUsers` on the subscriptions of his company (decrease is forbidden)

Possibles values : `all`, `increase_only` | * | isBP | Boolean | Indicates if the company is a Business partner company

Default value : `false` | * | bpType optionnel | String | Indicates BP Company type

* `IR`: Indirect Reseller,
* `VAD`: Value Added Distributor,
* `DR`: Direct Reseller.

Possibles values : `IR`, `VAD`, `DR` | * | bpBusinessModel optionnel | String | Indicates BP business model | * | bpApplicantNumber optionnel | String | Reference of the Business Partner in ALE Finance tools (SAP) | * | bpCRDid optionnel | String | Reference of the Business Partner in CDR | * | bpHasRightToSell optionnel | Boolean | Indicates if the Business has the right to sell | * | bpHasRightToConnect optionnel | Boolean | When True, the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI | * | bpHasRightForBYOT optionnel | Boolean | When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI | * | preferredSipLoadBalancerId optionnel | String | This attribute is only for BP and useful only in Rainbow Hub context. It indicates preferred SIP Load Balancer identifier to be used (if any). | * | bpIsContractAccepted optionnel | Boolean | Indicates if the Business has accepted the contract and can sell Rainbow offers | * | bpContractAcceptationInfo optionnel | Object | If the Business has accepted the contract, indicates who accepted the contract, Only visible by `superadmin` and `support`. | * | acceptationDate | Date-Time | Date of contract acceptation by the BP admin | * | bpAdminId | String | User Id of the BP admin who accepted the contract | * | offerType | String | Allowed company offer types

Possibles values : `freemium`, `premium` | * | bpAdminLoginEmail | String | User loginEmail of the BP admin who accepted the contract | * | businessSpecific optionnel | String | When the customer has subscribed to specific business offers, this field is set to the associated specific business (ex: HDS for HealthCare business specific)

Possibles values : `HDS` | * | externalReference optionnel | String | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.
| * | externalReference2 optionnel | String | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.
| * | avatarShape optionnel | String | Company's avatar customization

Possibles values : `square`, `circle` | * | allowUsersSelectTheme | Boolean | Allow users of this company to select a theme among the ones available (owned or visible by the company). | * | allowUsersSelectPublicTheme | Boolean | Allow users of this company to select a public theme. | * | selectedTheme optionnel | Object | Set the selected theme(s) for users of the company. | * | light optionnel | String | Set the selected theme light for users of the company. | * | dark optionnel | String | Set the selected theme dark for users of the company. | * | adminCanSetCustomData optionnel | Boolean | Whether or not administrators can set `customData` field for their own company. | * | isLockedByBp optionnel | Boolean | Whether or not BP company has locked themes so that indicates if company admin can manage themes (create/update/delete). | * | superadminComment optionnel | String | Free field that only `superadmin` can see
| * | bpBusinessType optionnel | String\[\] | Business type that can be sold by a BP.

Possibles values : `voice_by_partner`, `voice_by_ale`, `conference`, `default` | * | billingModel optionnel | String | Billing model that can be subscribed for this company.

Possibles values : `monthly`, `prepaid_1y`, `prepaid_3y`, `prepaid_5y` | * | office365Tenant optionnel | String | Office365 tenant configured for this company. | * | office365ScopesGranted optionnel | String\[\] | Scopes granted to Rainbow for usage of Microsoft Office365 APIs.
If no office365Tenant is set or if admin has not granted access of Office365 APIs to Rainbow for the configured office365Tenant, office365ScopesGranted is set to an empty Array.
Otherwise, office365ScopesGranted lists the scopes requested by Rainbow to use Office365 APIs for the configured office365Tenant. This field can be used to determine if the admin must re-authenticate to Microsoft Office365 in the case new scopes are requested for Rainbow application (scopes requested for the current version of office365-portal are listed in API GET /api/rainbow/office365/v1.0/consent).

Possibles values : `directory`, `calendar` | * | mobilePermanentConnectionMode | Boolean | deactivate push mode for mobile devices.
When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection.
For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. | * | fileSharingCustomisation | String | Activate/Deactivate file sharing capability per company
Define if the company can use the file sharing service then, allowed to download and share file.
FileSharingCustomisation can be:

* `enabled`: Each user of the company can use the file sharing service, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can use the file sharing service, except when his own capability is set to 'enabled'. When one user of the company has the capability 'fileSharingCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | userTitleNameCustomisation | String | Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
Define if the company allows his users to change some profile data.
userTitleNameCustomisation can be:

* `enabled`: Each user of the company can change some profile data, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can change some profile data, except when his own capability is set to 'enabled'. When one user of the company has the capability 'userTitleNameCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | softphoneOnlyCustomisation | String | Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services and but to focus to telephony services.
Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
softphoneOnlyCustomisation can be:

* `enabled`: The user switch to a softphone mode only.
* `disabled`: The user can use telephony services, chat, bubbles, channels meeting services and so on. | * | useRoomCustomisation | String | Activate/Deactivate the capability for a user to use bubbles.
Define if a user can create bubbles or participate in bubbles (chat and web conference).
useRoomCustomisation can be:

* `enabled`: Each user of the company can use bubbles.
* `disabled`: No user of the company can use bubbles. | * | phoneMeetingCustomisation | String | Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
Define if a user has the right to join phone meetings.
phoneMeetingCustomisation can be:

* `enabled`: Each user of the company can join phone meetings.
* `disabled`: No user of the company can join phone meetings. | * | useChannelCustomisation | String | Activate/Deactivate the capability for a user to use a channel.
Define if a user has the right to create channels or be a member of channels.
useChannelCustomisation can be:

* `enabled`: Each user of the company can use some channels.
* `disabled`: No user of the company can use some channel. | * | useScreenSharingCustomisation | String | Activate/Deactivate the capability for a user to share a screen.
Define if a user has the right to share his screen.
useScreenSharingCustomisation can be:

* `enabled`: Each user of the company can share his screen.
* `disabled`: No user of the company can share his screen. | * | useWebRTCVideoCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC video conversation.
* `disabled`: No user of the company can switch to a Web RTC video conversation. | * | useWebRTCAudioCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC audio conversation.
* `disabled`: No user of the company can switch to a Web RTC audio conversation. | * | instantMessagesCustomisation | String | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
instantMessagesCustomisation can be:

* `enabled`: Each user of the company can use instant messages.
* `disabled`: No user of the company can use instant messages. | * | userProfileCustomisation | String | Activate/Deactivate the capability for a user to modify his profile.
Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
userProfileCustomisation can be:

* `enabled`: Each user of the company can modify his profile.
* `disabled`: No user of the company can modify his profile. | * | fileStorageCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow file storage.
Define if a user has the right to upload/download/copy or share documents.
fileStorageCustomisation can be:

* `enabled`: Each user of the company can manage and share files.
* `disabled`: No user of the company can manage and share files. | * | overridePresenceCustomisation | String | Activate/Deactivate the capability for a user to change manually his presence.
Define if a user has the right to change his presence manually or only use automatic states.
overridePresenceCustomisation can be:

* `enabled`: Each user of the company can change his presence.
* `disabled`: No user of the company can change his presence. | * | alertNotificationReception | String | Activate/Deactivate the capability for a user to receive alert notification.
Define if a user has the right to receive alert notification
alertNotificationReception can be:

* `enabled`: Each user of the company can receive alert notification.
* `disabled`: No user of the company can receive alert notification. | * | alertNotificationSending | String | Activate/Deactivate the capability for a user to send alert notification.
Define if a user has the right to send alert notification
alertNotificationSending can be:

* `enabled`: Each user of the company can send alert notification.
* `disabled`: No user of the company can send alert notification. | * | changeTelephonyCustomisation | String | Activate/Deactivate the ability for a user to modify some telephony settings.
Define if a user has the right to modify telephony settings like forward activation ....
changeTelephonyCustomisation can be:

* `enabled`: The user can modify telephony settings.
* `disabled`: The user can't modify telephony settings. | * | changeSettingsCustomisation | String | Activate/Deactivate the ability for a user to change all client general settings.
Define if a user has the right to change his client general settings.
changeSettingsCustomisation can be:

* `enabled`: The user can change all client general settings.
* `disabled`: The user can't change any client general setting. recordingConversationCustomisation Activate/Deactivate the capability for a user to record a conversation.
Define if a user has the right to record a conversation (for P2P and multi-party calls).
recordingConversationCustomisation can be:
* `enabled`: The user can record a peer to peer or a multi-party call.
* `disabled`: The user can't record a peer to peer or a multi-party call. | * | useGifCustomisation | String | Activate/Deactivate the ability for a user to Use GIFs in conversations.
Define if a user has the is allowed to send animated GIFs in conversations
useGifCustomisation can be:

* `enabled`: The user can send animated GIFs in conversations.
* `disabled`: The user can't send animated GIFs in conversations. | * | useDialOutCustomisation | String | Activate/Deactivate the capability for a user to use dial out in phone meetings.
Define if a user is allowed to be called by the Rainbow conference bridge.
useDialOutCustomisation can be:

* `enabled`: The user can be called by the Rainbow conference bridge.
* `disabled`: The user can't be called by the Rainbow conference bridge. | * | fileCopyCustomisation | String | Activate/Deactivate the capability for a user to copy files
Define if one or all users of a company is allowed to copy any file he receives in his personal cloud space.
fileCopyCustomisation can be:

* `enabled`: The user can make a copy of a file to his personal cloud space.
* `disabled`: The user can't make a copy of a file to his personal cloud space. | * | fileTransferCustomisation | String | Activate/Deactivate the ability for a user to transfer files.
Define if one or all users of a company has the right to copy a file from a conversation then share it inside another conversation.
fileTransferCustomisation can be:

* `enabled`: The user can transfer a file doesn't belong to him.
* `disabled`: The user can't transfer a file doesn't belong to him. | * | forbidFileOwnerChangeCustomisation | String | Activate/Deactivate the ability for a user to loose the ownership on one file.
Define if one or all users can drop the ownership of a file to another Rainbow user of the same company
forbidFileOwnerChangeCustomisation can be:

* `enabled`: The user can't give the ownership of his file.
* `disabled`: The user can give the ownership of his file. | * | readReceiptsCustomisation | String | Activate/Deactivate the capability for a user to allow a sender to check if a chat message is read.
Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
This right is used by Ucaas or Cpaas application to show either or not a message is acknowledged. No check is done on backend side.
readReceiptsCustomisation can be:

* `enabled`: Each user of the company allow the sender to check if an IM is read.
* `disabled`: No user of the company allow the sender to check if an IM is read. | * | useSpeakingTimeStatistics | String | Activate/Deactivate the ability for a user to see speaking time statistics..
Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
useSpeakingTimeStatistics can be:

* `enabled`: Each user of the company can use meeting speaking time statistics.
* `disabled`: No user of the company can use meeting speaking time statistics. | * | eLearningCustomisation | String | Activate/Deactivate the capability for a user to participate on a E-learning training.
Defines if a user can participate on an E-learning training.
eLearningCustomisation can be:

* `enabled`: The user can participate on an E-learning training.
* `disabled`: The user can't participate on an E-learning training. | * | eLearningGamificationCustomisation | String | Activate/Deactivate the capability for a user to earn badges for E-learning progress.
Defines if a user can earn badges for E-learning progress.
eLearningGamificationCustomisation can be:

* `enabled`: The user can earn badges for E-learning progress.
* `disabled`: The user can't earn badges for E-learning progress. | * | meetingRecordingCustomisation | String | Activate/Deactivate the capability for a user to record a meeting.
Defines if a user can record a meeting.
meetingRecordingCustomisation can be:

* `enabled`: The user can record a meeting.
* `disabled`: The user can't record a meeting. | * | useOtherPhoneMode | String | Activate/Deactivate the capability for a user to use the other phone mode.
Defines if a user can use the other phone mode.
useOtherPhoneMode can be:

* `enabled`: The user can use the other phone mode.
* `disabled`: The user can't use the other phone mode. | * | useComputerMode | String | Activate/Deactivate the capability for a user to use the computer mode.
Defines if a user can use the computer mode.
useComputerMode can be:

* `enabled`: The user can use the computer mode.
* `disabled`: The user can't use the computer mode. | * | useSoftPhoneMode | String | Activate/Deactivate the capability for a user to use the softphone mode.
Defines if a user can use the softphone mode.
useSoftPhoneMode can be:

* `enabled`: The user can use the softphone mode.
* `disabled`: The user can't use the softphone mode. | * | imPopupDuration | Number | Defines the IM popup duration. | * | canAccessWhatsNew | String | Activate/Deactivate the capability for a user to access to what's new.
Defines if a user can access to what's new.
canAccessWhatsNew can be:

* `enabled`: The user can access to what's new.
* `disabled`: The user can't access to what's new. | * | canAccessFaqCustomisation | String | Activate/Deactivate the capability for a user to access to the FAQ.
Defines if a user can access to the FAQ.
canAccessFaqCustomisation can be:

* `enabled`: The user can access to the FAQ.
* `disabled`: The user can't access to the FAQ. | * | canAccessHelpCenterCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow help center.
Defines if a user can access to Rainbow help center.
canAccesHelpCenterCustomisation can be:

* `enabled`: The user can access to Rainbow help center.
* `disabled`: The user can't access to Rainbow help center. | * | canAccessStoreCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow store.
Defines if a user can access to Rainbow store.
canAccesStoreCustomisation can be:

* `enabled`: The user can access to Rainbow store.
* `disabled`: The user can't access to Rainbow store. | * | canDownloadAppCustomisation | String | Activate/Deactivate the capability for a user to download Rainbow application.
Defines if a user can download Rainbow application.
canDownloadAppCustomisation can be:

* `enabled`: The user can download Rainbow application.
* `disabled`: The user can't download Rainbow application. | * | canCallParticipantPbxNumberCustomisation | String | Select the capability for a user to call participant via a PBX number.
Defines if a user can call participant via a PBX number.
canCallParticipantPbxNumberCustomisation can be:

* `enabled`: The user can call participant with all number.
* `disabled`: The user can't call participant.
* `internal`: The user can call participant only with internal number.
* `national`: The user can call participant with national number. | * | defaultLicenseGroup | String | Group of license to assign to user when finalizing his account (e.g. Enterprise, Business ...) | * | defaultOptionsGroups | String\[\] | List of options to assign to user when finalizing his account (e.g. Alert ...) | * | selectedThemeCustomers optionnel | Object | Set the selected theme(s) for customers of this BP company.
This attribute only applies for BP companies. | * | light optionnel | String | Set the selected theme light for customers of this BP company. | * | dark optionnel | String | Set the selected theme dark for customers of this BP company. | * | ddiReadOnly optionnel | Boolean | Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies. | * | locked optionnel | Boolean | Allow to lock selected theme for customers. If true, customers won't be able to manage themes (create/update/delete). | * | cloudPbxVoicemailToEmail optionnel | Boolean | Cloudpbx email notification type when receiving a voicemail | * | allowPhoneNumbersVisibility optionnel | Boolean | Indicates if Phone numbers should be visible or not when generating Voice CDR files. Applies only on BP companies. | * | cloudPbxRecordingInboundOnly optionnel | Boolean | When CloudPbx recording is set, both inbound and outbound calls will be recorded for the selected users. If cloudPbxRecordingInboundOnly is set to true, only inbound calls will be recorded | * | allowDeviceFirmwareSelection optionnel | Boolean | Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. | * | businessData optionnel | Object | Set the businessData company. | * | region optionnel | String | Set the region of the company. | * | cluster optionnel | String | Set the cluster of the company. | * | area optionnel | String | Set the area of the company. | * | allowTeamsToDesktopSso optionnel | Boolean | Superadmin allows if Teams add-in uses sso to login in desktop app for all company users

Default value : `true` | * | country optionnel | String | Set the business country of the company. | * | rainbowStorageAllowedAllUsers | Boolean | In an environment where a company uses the Rainbow file server or an External file server, an administator can defines storage access rights at company level, and at user level.
So he has to:

* Enable/Disable external storage for a company (see `useExternalStorage`) and configure required parameters as URLs, type, name, description (see company/settings/filestorage section) and if all company users have access to this storage by default (see `externalStorageAllowedAllUsers`).
If this storage is enabled by default, all users following the company policy will have access to the storage.
* Enable/Disable Rainbow storage for a company (see `useRainbowStorage`), and if all company users have access to this storage by default (see `rainbowStorageAllowedAllUsers`).
* Select which storage is the main one used to store photo taken from Rainbow Apps (see `mainStorage`) | * | externalStorageAllowedAllUsers | Boolean | Refer to rainbowStorageAllowedAllUsers. | * | useRainbowStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useRainbowStorage' allows a user to be assigned to a file server.

* `enabled`: Assign all users to the default Rainbow File Storage.
* `disabled`: Unassign all users from the default Rainbow File Storage. | * | useExternalStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useExternalStorage' allows a user to be assigned to a file server.

* `enabled`: Assign all users to the External File Storage.
* `disabled`: Unassign all users from the External File Storage. | * | mainStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'mainStorage' allows to decide which file server must be used when a user is assigned to both file servers.

* `Rainbow Storage`: Assigment to the Rainbow file server.
* `External Storage`: Assigment to the External file server. | * | customData optionnel | Object | Company's custom data.
Object with free keys/values.
It is up to the client to manage the company's customData (new customData provided overwrite the existing one).

Restrictions on customData Object:

* max 10 keys,
* max key length: 64 characters,
* max value length: 512 characters. | * | adminServiceNotificationsLevel | String | Level of service notification that admin should see | * * examples of result : * ```json * { * "data": { * "id": "569ce8c8f9336c471b98eda1", * "creationDate": "2016-01-18T13:29:44.498Z", * "statusUpdatedDate": "2016-01-18T13:29:44.497Z", * "name": "AL-ENTERPRISE", * "street": "Sesame street", * "city": "Brooklyn", * "postalCode": "123456", * "country": "USA", * "state": "NY", * "status": "active", * "visibility": "private", * "visibleBy": [ * "56fabb217d8d3ffa3d0223f8", * "56d6f00441255dd54b5b61ae" * ], * "adminEmail": "admin@company.com", * "supportEmail": "support@company.com", * "companyContactId": "588a0d902d9e7f983b8f7661", * "autoAcceptUserInvitations": true, * "userSelfRegisterEnabled": true, * "userSelfRegisterAllowedDomains": [ * "@alcatel-lucent.com", * "@al-enterprise.com", * "@al-enterprise.fr", * "@al-enterprise.de" * ], * "slogan": "The slogan of my company", * "description": "A free string that describes my company", * "size" : "1001-5000 employees", * "website": "http:\\/\\/enterprise.alcatel-lucent.com", * "giphyEnabled": false, * "organisationId": "57cd58edd341df5812bbcb71", * "catalogId": "5979f63bae6056aadd1a8f17", * "bpId": null, * "externalReference": null, * "offerType": "premium", * "avatarShape": "circle", * "allowUsersSelectTheme": true, * "allowUsersSelectPublicTheme": true, * "mobilePermanentConnectionMode": false, * "customData": {}, * "office365ScopesGranted": [], * "fileSharingCustomisation": "enabled", * "userTitleNameCustomisation": "enabled", * "softphoneOnlyCustomisation": "disabled", * "useRoomCustomisation": "enabled", * "phoneMeetingCustomisation": "enabled", * "useChannelCustomisation": "enabled", * "useScreenSharingCustomisation": "enabled", * "useWebRTCVideoCustomisation": "enabled", * "useWebRTCAudioCustomisation": "enabled", * "instantMessagesCustomisation": "enabled", * "userProfileCustomisation": "enabled", * "fileStorageCustomisation": "enabled", * "overridePresenceCustomisation": "enabled", * "changeTelephonyCustomisation": "enabled", * "changeSettingsCustomisation": "enabled", * "recordingConversationCustomisation": "enabled", * "useGifCustomisation": "enabled", * "useDialOutCustomisation": "enabled", * "eLearningCustomisation": "enabled", * "eLearningGamificationCustomisation": "enabled", * "meetingRecordingCustomisation": "enabled", * "useOtherPhoneMode": "enabled", * "useComputerMode": "enabled", * "useSoftPhoneMode": "enabled", * "imPopupDuration": 3, * "canAccessWhatsNew": "enabled", * "canAccesFaqCustomisation": "enabled", * "canAccessHelpCenterCustomisation": "enabled", * "canAccessStoreCustomisation": "enabled", * "canDownloadAppCustomisation": "enabled", * "canCallParticipantPbxNumberCustomisation": "enabled", * "defaultLicenseGroup": "Enterprise", * "defaultOptionsGroups": ["Alert"], * "selectedTheme": { * "light": null, * "dark": "5ea304e4359c0e6815fc8b57", * "isLockedByBp": true * }, * "businessSpecific": "UGAP", * "allowTeamsToDesktopSso": true, * "externalStorageAllowedAllUsers" : false, * "mainStorage" : "Rainbow Storage", * "rainbowStorageAllowedAllUsers" : true, * "useExternalStorage" : "disabled", * "useRainbowStorage" : "enabled", * "businessData": { * "region": "EMEA", * "cluster": "EU SOUTH", * "area": "BELUX", * "country": "BEL" * }, * "useRainbowStorage" : "enabled", * "adminServiceNotificationsLevel": "high" * } * } * ``` * */ getDefaultCompanyData(format: string, selectedThemeObj: boolean): Promise; /** * @public * @nodered true * @method setCompanyAppFeatureCustomisation * @instance * @description * This API allows administrators to set or update the feature customisation elements for the company. * * These elements (e.g. conversation pane, menu pane, services) will then be available to the end user to customise their rainbow application. * See supported element names in above GET request. * * The whole object will replace the existing one, if found. * The customisation object has some limitations: * * * Element name can't exceed 50 characters. * * Element value can't exceed 50 characters. * @async * @param {string} companyId Company for which update of customisation elements is requested. * @param {any} appFeaturesCustomisation an object: *
*
{ *
"appFeaturesCustomisation": { *
"featureConversationPane": "#595959", *
"callContact": false, *
"searchContact": false, *
"meeting": false *
} *
} * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | Object | Update operation status message. | * */ setCompanyAppFeatureCustomisation(companyId: string, appFeaturesCustomisation: any): Promise; /** * @public * @nodered true * @method updateCompany * @instance * @description * Users with superadmin role can update any company. Users with admin role (and not having superadmin role) can only update their own company. *
Default and Terminated companies can't be renamed, and their name can't be use to rename another company *
`Sooner or later it will be unnecessary to manage each customization parameter individually. It will be necessary to create and/or apply customization templates.
AdminService::getAllAvailableCustomisationTemplates().` * * @param {string} companyId Company unique identifier * @param {any} selectedThemeObj Allows to return selectedTheme attribute as an object: *
* true returns selectedTheme as an object (e.g. { "light": "60104754c8fada2ad4be3e48", "dark": "5ea304e4359c0e6815fc8b57" }), *
* false return selectedTheme as a string. * @param {string} name Company name * @param {string} country="FRA" Company country (ISO 3166-1 alpha3 format) * @param {string} street Company street * @param {string} city Company city * @param {string} state When country is 'USA' or 'CAN', a state must be defined. Else it is not managed. * @param {string} postalCode Company postal code * @param {string} offerType="freemium" Company offer type. *
Companies with offerType=`freemium` are not able to subscribe to paid offers, they must be `premium` to do so. *
Only `superadmin` can set offerType from `premium` to `freemium`. *
Possibles values : `freemium`, `premium` * @param {string} currency Company currency, for payment of premium offers (ISO 4217 format) *
For now, only USD, EUR and CNY are supported *
Only settable by `superadmin` *
Possibles values : `USD`, `EUR`, `CNY` * @param {string} status Company status. *
If company status is `initializing`, only `superadmin` can change the status value. *
Possibles values : `initializing`, `active`, `alerting`, `hold`, `terminated` * @param {string} visibility="private" Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies). *
* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users *
* `private`: User **can't** be searched by external users (even within his organisation) / can search external users. User can invite external users / can be invited by external users *
* `organization`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users *
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users *
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users *
* `hotspot`: User can be searched by hotspot attached company's users (users from any company if the user belong to the default company) / can't search any users (even in their company) or user can't invite external users / can be invited by hotspot attached company's users (users from any company if the user belong to the default company) *
* currently `hotspot` visibility can only be set on the default company, and with superadmin role (development of `hotspot` visibility is partially done, only for default company in the context of RQRAINB-7456) *
*
External users mean public user not being in user's company nor user's organisation nor a company visible by user's company. *
*
Note related to organisation visibility: *
*
* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies inside the same organisation. *
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched outside the organisation's companies. *
*
Default value : `private`. Possibles values : `public`, `private`, `organization`, `closed`, `isolated`, `hotspot` * @param {string[]} visibleBy If visibility is private or organisation, list of company ids for which visibility is allowed * @param {string} adminEmail Company contact person email. adminEmail is case sentive. Possibles values : `"/^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/"` * @param {string} supportEmail Company support email. supportEmail is case sensitive. supportEmail `should be provided if company to create is a VAD or a DR`. Possibles values : `"/^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/"` * @param {string} supportUrlFAQ Company support url * @param {string} companyContactId User Id of a Rainbow user which is the contact for this company * @param {boolean} disableCCareAdminAccess When True, disables the access to the customer care logs for admins of this company. *
Note that if `disableCCareAdminAccessCustomers` is enabled on its BP company or `disableCCareAdminAccessResellers` is enabled on its BP VAD company, this setting is forced to true. *
`disableCCareAdminAccess` can only be set: *
* by `superadmin` (all companies), *
* by `bp_admin` or `bp_finance` for the companies he manages, *
* by `organization_admin` for the BP companies he manages. *
* by `organization_admin` for the companies he manages. * @param {boolean} disableCCareAdminAccessCustomers When True, disables the access to the customer care logs for admins of all the customers company. *
This setting is only applicable for BP companies (`isBP`=true) *
* If the BP company is a DR or an IR, enabling this setting disables the access to the customer care logs for the admins of all its customers companies. *
* If the BP company is a VAD, enabling this setting disables the access to the customer care logs for all the admins of its customers companies. *
Note that the bp_admins/admins of all the BP IRs companies linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessResellers` on the BP VAD company allows to disable it). *
`disableCCareAdminAccessCustomers` can only be set: *
* by `superadmin` (all BP companies), *
* by `bp_admin` or `bp_finance` of a BP VAD company for the BP companies he manages, *
* by `organization_admin` for the BP companies he manages, *
* by `company_admin` for the BP company he manages. * @param {boolean} disableCCareAdminAccessResellers When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company. *
This setting is only applicable for BP VAD companies (`isBP`=true and `bpType`=`VAD`) *
Enabling this setting disables on the BP VAD company disables the access to the customer care logs for the bp_admins/admins of all the BP IRs linked to this VAD, and to all the admins of their customers. *
Note that the admins of all the customer companies directly linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessCustomers` on the BP VAD company allows to disable it). *
`disableCCareAdminAccessResellers` can only be set: *
* by `superadmin` (all BP VAD companies), *
* by `bp_admin` or `bp_finance` of a BP VAD company for the BP companies he manages, *
* by `organization_admin` for the BP VAD companies he manages, *
* by `company_admin` for the BP VAD company he manages. * @param {boolean} autoAcceptUserInvitations Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled). Default value : true * @param {boolean} autoAddToUserNetwork Allow to enable or disable the auto addition to user's network between users of this company (default false: disabled). Default value : false * @param {boolean} contentPolicyLifeTime When different from -1 it activates content removal for all user of this companies with a content lifetime equals to contentPolicyLifeTime in minutes. Default value : -1 * @param {boolean} documentGracePeriod When content removal is active for the organisation it represents the period in minutes where a document is still available event if it's content policy lifetime has expired * @apiParam (BodyParameters) {Boolean} [userSelfRegisterEnabled=true] Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process Default value : 14400 * @param {string[]} userSelfRegisterAllowedDomains Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) * @param {string} slogan A free string corresponding to the slogan of the company * @param {string} description A free string that describes the company (2000 char length) * @param {string} size="self-employed" An overview of the number of employees. Default value : `self-employed`. Possibles values : `"self-employed"`, `"1-10 employees"`, `"11-50 employees"`, `"51-200 employees"`, `"201-500 employees"`, `"501-1000 employees"`, `"1001-5000 employees"`, `"5001-10,000 employees"`, `"10,001+ employees"` * @param {string} economicActivityClassification *
* `A`: AGRICULTURE, FORESTRY AND FISHING *
* `B`: MINING AND QUARRYING *
* `C`: MANUFACTURING *
* `D`: ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY *
* `E`: WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES *
* `F`: CONSTRUCTION *
* `G`: WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES *
* `H`: TRANSPORTATION AND STORAGE *
* `I`: ACCOMMODATION AND FOOD SERVICE ACTIVITIES *
* `J`: INFORMATION AND COMMUNICATION *
* `K`: FINANCIAL AND INSURANCE ACTIVITIES *
* `L`: REAL ESTATE ACTIVITIES *
* `M`: PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES *
* `N`: ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES *
* `O`: PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY *
* `P`: EDUCATION *
* `Q`: HUMAN HEALTH AND SOCIAL WORK ACTIVITIES *
* `R`: ARTS, ENTERTAINMENT AND RECREATION *
* `S`: OTHER SERVICE ACTIVITIES *
* `T`: ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE *
* `U`: ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES *
*
Possibles values : `"A"`, `"B"`, `"C"`, `"D"`, `"E"`, `"F"`, `"G"`, `"H"`, `"I"`, `"J"`, `"K"`, `"L"`, `"M"`, `"N"`, `"O"`, `"P"`, `"Q"`, `"R"`, `"S"`, `"T"`, `"U"` * @param {string} website Company website url * @param {boolean} giphyEnabled Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations). `This field is deprecated.` Manage instead **useGifCustomisation field!** * @param {string} catalogId Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe. *
When a new company is created, if no catalogId is specified the company is automatically linked to the default catalog. *
When a `bp_admin>` or `bp_finance>` creates a company, catalogId of this new company is automatically set to BP company's catalogId. *
When an `organization_admin>` creates a company, catalogId of this new company is automatically set to organization_admin's company's catalogId. *
*
Only `superadmin` can set a different catalogId to a company. * @param {boolean} adminCanSetCustomData Whether or not administrators can set customData field for their own company. *
adminCanSetCustomData can only be set: *
by `superadmin` (all companies), *
by `bp_admin` or `bp_finance` for the companies he manages, *
by `organization_admin` for the companies he manages. * @param {any} customData Company's custom data. *
Object with free keys/values. *
It is up to the client to manage the company's customData (new customData provided overwrite the existing one). *
*
Restrictions on customData Object: *
- max 10 keys, *
- max key length: 64 characters, *
- max value length: 512 characters. *
*
*
Company customData can only be created/updated by: *
- \`superadmin\` (all companies), *
- \`bp\_admin\` or \`bp\_finance\` for the companies he manages (except his company if its \`adminCanSetCustomData\` setting is not set to true), *
- \`organization_admin\` for the companies he manages, *
- \`company\_admin\` for his own company if its \`adminCanSetCustomData\` setting is set to true (setting that can only be set by a superadmin, his bp\_admin, bp\_finance or organization\_admin) or if he has the feature \`ADMIN\_CAN\_SET\_CUSTOM\_DATA\` (if the feature is enabled, it overwrites the value of the company setting). * @param {string} bpId Link the company to the corresponding Business partner company. *
`bpId` must correspond to a valid company having `isBP` equal to true. *
Only directly settable by `superadmin`. *
If the company is `created` by a `bp_admin` or a `bp_finance`, `bpId` is automatically set to BP company id. *
For existing companies, `bp_admin` must use invitation mechanism to a company admin in order to request a link of this company company to his BP company. *
Can only be set by `superadmin` or `bp_finance` of the related company. * @param {boolean} adminHasRightToUpdateSubscriptions In the case the company is linked to a Business Partner company, indicates if the `bp_finance` allows the `company_admin` to update the subscriptions of his company (if enable, allowed operations depend of the value of `adminAllowedUpdateSubscriptionsOps`). *
Can only be set by `superadmin` or `bp_finance` of the related company. * @param {string} adminAllowedUpdateSubscriptionsOps In the case the company is linked to a Business Partner company and `adminHasRightToUpdateSubscriptions` is enabled, indicates the update operations for which the `bp_finance` allows the `company_admin` to perform on the subscriptions of his company. *
Can only be set by `superadmin` or `bp_finance` of the related company. *
Possible values: *
- `all: company_admin is allowed to perform all update operations on the subscriptions of his company *
- `increase_only: company_admin is only allowed to increase` maxNumberUsers` on the subscriptions of his company (decrease is forbidden) *
- 'monthly': company_admin is only allowed to manage monthly subscription (increase and decrease) *
*
Possibles values : `all`, `increase_only`, `monthly` * @param {boolean} isBP Indicates if the company is a Business partner company *
Only settable by `superadmin` * @param {string} bpType Indicates BP Company type *
- `IR`: Indirect Reseller, *
- `VAD`: Value Added Distributor, *
- `DR`: Direct Reseller. *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. *
*
Possibles values : `IR`, `VAD`, `DR` * @param {string} bpBusinessModel Indicates BP business model *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. *
*
Possibles values : `referral`, `resell` * @param {string} bpApplicantNumber Reference of the Business Partner in ALE Finance tools (SAP) *
Only applicable if `isBP` is true and `bpType` is DR or VAD. *
Only settable by `superadmin`. * @param {string} bpCRDid Reference of the Business Partner in CDR *
Only applicable if `isBP` is true and `bpType` is DR or VAD. *
If `bpCRDid` is not defined, BP won't be able to sell (i.e. `bpHasRightToSell` can't be set to true) *
Only settable by `superadmin`. * @param {boolean} bpHasRightToSell Indicates if the Business has the right to sell *
Only applicable if `isBP` is true and `bpType` is DR or VAD. *
Only applicable if `bpCRDid` is defined. *
Only settable by `superadmin`. * @param {boolean} bpHasRightToConnect When True \[Default\], the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. * @param {boolean} bpHasRightForBYOT When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. * @param {string} preferredSipLoadBalancerId Indicates the identifier of the preferred SIP Load Balancer (Rainbow Hub context ; used for HybridTrunks of associated ECs) *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. * @param {boolean} bpIsContractAccepted Indicates if the Business has accepted the contract and can sell Rainbow offers *
Should be set by `bp_admin` or `bp_finance`. *
Only applicable if `isBP` is true. *
*
Default value : `false` * @param {string} externalReference Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools *
Only applicable by `superadmin` or by `bp_admin` or `bp_finance` on one of his Indirect Resellers / End Customers companies. * @param {string} externalReference2 Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools *
Only applicable by `superadmin` or by `bp_admin` or `bp_finance` on one of his Indirect Resellers / End Customers companies. * @param {string} salesforceAccountId Curstomer's Salesforce reference. *
Only settable by users with `superadmin` or `business_admin` role(s). * @param {string} avatarShape Company's avatar customization * @param isCentrex Indicates if the company is one tenant of a multi-tenant call server (OXE - OTEC-S or third_party) (default: false) * @param {string} companyCallNumber If isCentrex = true, this is the company access number \[multi-company call + company Area, ex: 8 210, 8 211\] * @param {string} superadminComment Free field that only `superadmin` can use. * @param {string[]} bpBusinessType Business type(s) that can be sold by a BP. Possibles values : `voice_by_partner`, `voice_by_ale`, `conference`, `default`. * @param {string} billingModel Billing model that can be subscribed for this company. Possibles values : `monthly`, `prepaid_1y`, `prepaid_3y`, `prepaid_5y` * @param {boolean} allowUsersSelectTheme Allow users of this company to select a theme among the ones available (owned or visible by the company). Default value : `true` * @param {boolean} allowUsersSelectPublicTheme Allow users of this company to select a public theme. Default value : `true` * @param {any} selectedTheme selectedTheme Object to set the selected theme(s) for users of the company. *
* light optionnel String Set the selected theme light for users of the company. *
* dark optionnel String Set the selected theme dark for users of the company. * @param {boolean} mobilePermanentConnectionMode deactivate push mode for mobile devices. *
When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection. *
For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. *
*
Default value : `false` * @param {string} alertNotificationReception Activate/Deactivate the capability for a user to receive alert notification. *
Define if a user has the right to receive alert notification *
alertNotificationReception can be: *
*
- `enabled`: Each user of the company can receive alert notification. *
- `disabled`: No user of the company can receive alert notification. *
*
Default value : `disabled`. Possibles values : `enabled`, `disabled` * @param {string} alertNotificationSending Activate/Deactivate the capability for a user to send alert notification. *
Define if a user has the right to send alert notification *
alertNotificationSending can be: *
*
- `enabled`: Each user of the company can send alert notification. *
- `disabled`: No user of the company can send alert notification. *
*
Default value : `disabled`. Possibles values : `enabled`, `disabled` * @param {string} useDialOutCustomisation Activate/Deactivate the capability for a user to use dial out in phone meetings. *
Define if a user is allowed to be called by the Rainbow conference bridge. *
useDialOutCustomisation can be: *
*
- `enabled`: The user can be called by the Rainbow conference bridge. *
- `disabled`: The user can't be called by the Rainbow conference bridge. *
*
Default value : `enabled`. Possibles values : `enabled`, `disabled` * @param {boolean} allowDeviceFirmwareSelection Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. Default value : `false` * @param {string} selectedDeviceFirmware Cloudpbx default device firmware *
- `released`: Default value, device firmware will be the official released one. *
- `latest`: Device firmware can be a more up to date binary (e.g. early adopters) *
If allowed by `superadmin`, `company admin` can then select the kind of firmware for all the users, or only for some of them. *
*
Default value : `released` Possibles values : `released`, `latest` * @param {string} cloudPbxVoicemailToEmail Cloudpbx email notification type when receiving a voicemail. Default value : `none`. Possibles values : `none`, `simple`, `complete` * @param {any} businessData businessData optionnel Object *
Set the business data of the company. *
Only settable by users with `superadmin` or `business_admin` role(s). *
*
region optionnel String Set the region of the company. *
cluster optionnel String Set the cluster of the company. *
area optionnel String Set the area of the company. *
country optionnel String Set the business country of the company. * @param {string} defaultLicenseGroup Group of license to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Enterprise, Business ...) * @param {string[]} defaultOptionsGroups List of options to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Alert ...) * @param {any} selectedThemeCustomers selectedThemeCustomers optionnel Object *
Set the selected theme(s) for customers of this BP company. *
This param only applies for BP companies. *
* light optionnel String Set the selected theme light for customers of this BP company. *
* dark optionnel String Set the selected theme dark for customers of this BP company. *
* locked optionnel Boolean Allow to lock selected theme for customers. If true, customers won't be able to create or set another theme that the one selected by BP. * @param {boolean} allowTeamsToDesktopSso uperadmin allows if Teams add-in uses sso to login in desktop app for all company users. Default value : true * @param {boolean} cloudPbxRecordingInboundOnly When CloudPbx recording is set, both inbound and outbound calls will be recorded for the selected users. If cloudPbxRecordingInboundOnly is set to true, only inbound calls will be recorded Default value : `true` * @param {number} supervisionGroupMaxSize Maximum number of users a company can supervise. Default value : `1500` * @param {number} supervisionGroupMaxNumber Maximum number of supervision groups a supervisor can belong to. Default value : 5 * @param {number} supervisionGroupMaxUsers Maximum number of users in a supervision group (supervisor included). Default value : `30` * @param {string} timezone User timezone name *
Allowed values: one of the timezone names defined in IANA tz database (https://www.iana.org/time-zones) *
Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) * @param {boolean} sendPrepaidSubscriptionsNotification Indicates if company_admin should receive email notification about prepaid subscriptions expiring soon. Used only on end customer companies * @param {boolean} ddiReadOnly Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies. *
This parameter can only be set by VAD `bp_admin` or `superadmin`. * @param {boolean} allowPhoneNumbersVisibility Indicates if Phone numbers should be visible or not when generating Voice CDR files. Applies only on BP companies. Default value : `false`. * @param {string[]} csEmailList A list of Customer Success email addresses (maximum length : 10). * @param {string[]} seEmailList A list of System Engineer email addresses (maximum length : 10). * @param {string[]} csmEmailList A list of Channel Sales Manager email addresses (maximum length : 10). * @param {string[]} kamEmailList A list of Key Account Manager email addresses (maximum length : 10). *
These fields can only be set by a `business_admin` or a `superadmin`. * @param {string} businessSpecific Allow to specify if company has access to specific offers. Only settable by superadmin or business_admin. Possibles values : UGAP. * @param {string} adminServiceNotificationsLevel Level of service notification that admin should see. Possibles values : `high`, `medium`, `low`. * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | String | Company unique identifier | * | creationDate | Date-Time | Company creation date (Read only) | * | statusUpdatedDate | Date-Time | Date of last company status update (Read only) | * | lastAvatarUpdateDate | Date-Time | Date of last company avatar update (Read only) | * | name | String | Company name | * | country optionnel | String | Company country (ISO 3166-1 alpha3 format)

The list of allowed countries can be obtained using the API AdminService::getListOfCountries() | * | street optionnel | String | Company street

Ordre de grandeur : `0..255` | * | city optionnel | String | Company city

Ordre de grandeur : `0..255` | * | state optionnel | String | When country is 'USA' or 'CAN', a state must be defined. Else it is not managed.

The list of allowed states can be obtained using the API AdminService::getListOfCountries() for the associated countries.

* List of allowed states for `USA`:
* `AA`: "Armed Forces America",
* `AE`: "Armed Forces",
* `AP`: "Armed Forces Pacific",
* `AK`: "Alaska",
* `AL`: "Alabama",
* `AR`: "Arkansas",
* `AZ`: "Arizona",
* `CA`: "California",
* `CO`: "Colorado",
* `CT`: "Connecticut",
* `DC`: Washington DC",
* `DE`: "Delaware",
* `FL`: "Florida",
* `GA`: "Georgia",
* `GU`: "Guam",
* `HI`: "Hawaii",
* `IA`: "Iowa",
* `ID`: "Idaho",
* `IL`: "Illinois",
* `IN`: "Indiana",
* `KS`: "Kansas",
* `KY`: "Kentucky",
* `LA`: "Louisiana",
* `MA`: "Massachusetts",
* `MD`: "Maryland",
* `ME`: "Maine",
* `MI`: "Michigan",
* `MN`: "Minnesota",
* `MO`: "Missouri",
* `MS`: "Mississippi",
* `MT`: "Montana",
* `NC`: "North Carolina",
* `ND`: "North Dakota",
* `NE`: "Nebraska",
* `NH`: "New Hampshire",
* `NJ`: "New Jersey",
* `NM`: "New Mexico",
* `NV`: "Nevada",
* `NY`: "New York",
* `OH`: "Ohio",
* `OK`: "Oklahoma",
* `OR`: "Oregon",
* `PA`: "Pennsylvania",
* `PR`: "Puerto Rico",
* `RI`: "Rhode Island",
* `SC`: "South Carolina",
* `SD`: "South Dakota",
* `TN`: "Tennessee",
* `TX`: "Texas",
* `UT`: "Utah",
* `VA`: "Virginia",
* `VI`: "Virgin Islands",
* `VT`: "Vermont",
* `WA`: "Washington",
* `WI`: "Wisconsin",
* `WV`: "West Virginia",
* `WY`: "Wyoming"
* List of allowed states for `CAN`:
* `AB`: "Alberta",
* `BC`: "British Columbia",
* `MB`: "Manitoba",
* `NB`: "New Brunswick",
* `NL`: "Newfoundland and Labrador",
* `NS`: "Nova Scotia",
* `NT`: "Northwest Territories",
* `NU`: "Nunavut",
* `ON`: "Ontario",
* `PE`: "Prince Edward Island",
* `QC`: "Quebec",
* `SK`: "Saskatchewan",
* `YT`: "Yukon"

Possibles values : `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"` | * | postalCode optionnel | String | Company postal code

Ordre de grandeur : `0..64` | * | currency optionnel | String | Company currency, for payment of premium offers (ISO 4217 format)
For now, only USD, EUR and CNY are supported

Ordre de grandeur : `3`

Possibles values : `USD`, `EUR`, `CNY` | * | status | String | Company status

Possibles values : `initializing`, `active`, `alerting`, `hold`, `terminated` | * | visibility optionnel | string | Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies).

* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
* `private`: User **can't** be searched by external users (even within his organisation) / can search external users. User can invite external users / can be invited by external users
* `organisation`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
* `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users

External users mean public user not being in user's company nor user's organisation nor a company visible by user's company.

Note related to organisation visibility:

* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies inside the same organisation.
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched outside the organisation's companies.

Default value : `private`

Possibles values : `public`, `private`, `organisation`, `closed`, `isolated` | * | visibleBy | String\[\] | If visibility is private, list of companyIds for which visibility is allowed | * | adminEmail optionnel | String | Company contact person email | * | supportEmail optionnel | String | Company support email | * | supportUrlFAQ optionnel | String | Company support URL | * | companyContactId optionnel | String | User Id of a Rainbow user which is the contact for this company | * | disableCCareAdminAccess optionnel | Boolean | When True, disables the access to the customer care logs for admins of this company.
Note that if `disableCCareAdminAccessCustomers` is enabled on its BP company or `disableCCareAdminAccessResellers` is enabled on its BP VAD company, this setting is forced to true. | * | disableCCareAdminAccessCustomers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the customers company.
This setting is only applicable for BP companies (`isBP`=true)

* If the BP company is a DR or an IR, enabling this setting disables the access to the customer care logs for the admins of all its customers companies.
* If the BP company is a VAD, enabling this setting disables the access to the customer care logs for all the admins of its customers companies.
Note that the bp_admins/admins of all the BP IRs companies linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessResellers` on the BP VAD company allows to disable it). | * | disableCCareAdminAccessResellers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company.
This setting is only applicable for BP VAD companies (`isBP`=true and `bpType`=`VAD`)
Enabling this setting disables on the BP VAD company disables the access to the customer care logs for the bp_admins/admins of all the BP IRs linked to this VAD, and to all the admins of their customers.
Note that the admins of all the customer companies directly linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessCustomers` on the BP VAD company allows to disable it). | * | autoAcceptUserInvitations optionnel | Boolean | Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled) | * | userSelfRegisterEnabled | Boolean | Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process | * | userSelfRegisterAllowedDomains | String\[\] | Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) | * | slogan optionnel | String | A free string corresponding to the slogan of the company (255 char length) | * | description optionnel | String | A free string that describes the company (2000 char length) | * | size | String | An overview of the number of employees

Possibles values : `"self-employed"`, `"1-10 employees"`, `"11-50 employees"`, `"51-200 employees"`, `"201-500 employees"`, `"501-1000 employees"`, `"1001-5000 employees"`, `"5001-10,000 employees"`, `"10,001+ employees"` | * | economicActivityClassification optionnel | String | * `A`: AGRICULTURE, FORESTRY AND FISHING
* `B`: MINING AND QUARRYING
* `C`: MANUFACTURING
* `D`: ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY
* `E`: WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES
* `F`: CONSTRUCTION
* `G`: WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES
* `H`: TRANSPORTATION AND STORAGE
* `I`: ACCOMMODATION AND FOOD SERVICE ACTIVITIES
* `J`: INFORMATION AND COMMUNICATION
* `K`: FINANCIAL AND INSURANCE ACTIVITIES
* `L`: REAL ESTATE ACTIVITIES
* `M`: PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES
* `N`: ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES
* `O`: PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY
* `P`: EDUCATION
* `Q`: HUMAN HEALTH AND SOCIAL WORK ACTIVITIES
* `R`: ARTS, ENTERTAINMENT AND RECREATION
* `S`: OTHER SERVICE ACTIVITIES
* `T`: ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE
* `U`: ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES

Possibles values : `"NONE"`, `"A"`, `"B"`, `"C"`, `"D"`, `"E"`, `"F"`, `"G"`, `"H"`, `"I"`, `"J"`, `"K"`, `"L"`, `"M"`, `"N"`, `"O"`, `"P"`, `"Q"`, `"R"`, `"S"`, `"T"`, `"U"` | * | giphyEnabled optionnel | Boolean | Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations) | * | website optionnel | String | Company website URL | * | organisationId | String | Optional identifier to indicate the company belongs to an organisation | * | catalogId | String | Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe. | * | bpId | String | Optional identifier which links the company to the corresponding Business partner company | * | adminHasRightToUpdateSubscriptions optionnel | Boolean | In the case the company is linked to a Business Partner company, indicates if the `bp_admin` allows the `company_admin` to update the subscriptions of his company (if enable, allowed operations depend of the value of `adminAllowedUpdateSubscriptionsOps`).
Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company. | * | adminAllowedUpdateSubscriptionsOps optionnel | String | In the case the company is linked to a Business Partner company and `adminHasRightToUpdateSubscriptions` is enabled, indicates the update operations for which the `bp_admin` allows the `company_admin` to perform on the subscriptions of his company.

Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company.

Possible values:

* `all`: company_admin is allowed to perform all update operations on the subscriptions of his company
* `increase_only`: company_admin is only allowed to increase `maxNumberUsers` on the subscriptions of his company (decrease is forbidden)

Possibles values : `all`, `increase_only` | * | isBP | Boolean | Indicates if the company is a Business partner company

Default value : `false` | * | bpType optionnel | String | Indicates BP Company type

* `IR`: Indirect Reseller,
* `VAD`: Value Added Distributor,
* `DR`: Direct Reseller.

Possibles values : `IR`, `VAD`, `DR` | * | bpBusinessModel optionnel | String | Indicates BP business model | * | bpApplicantNumber optionnel | String | Reference of the Business Partner in ALE Finance tools (SAP) | * | bpCRDid optionnel | String | Reference of the Business Partner in CDR | * | bpHasRightToSell optionnel | Boolean | Indicates if the Business has the right to sell | * | bpHasRightToConnect optionnel | Boolean | When True, the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI | * | bpHasRightForBYOT optionnel | Boolean | When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI | * | preferredSipLoadBalancerId optionnel | String | This attribute is only for BP and useful only in Rainbow Hub context. It indicates preferred SIP Load Balancer identifier to be used (if any). | * | bpIsContractAccepted optionnel | Boolean | Indicates if the Business has accepted the contract and can sell Rainbow offers | * | bpContractAcceptationInfo optionnel | Object | If the Business has accepted the contract, indicates who accepted the contract, Only visible by `superadmin` and `support`. | * | acceptationDate | Date-Time | Date of contract acceptation by the BP admin | * | bpAdminId | String | User Id of the BP admin who accepted the contract | * | offerType | String | Allowed company offer types

Possibles values : `freemium`, `premium` | * | bpAdminLoginEmail | String | User loginEmail of the BP admin who accepted the contract | * | businessSpecific optionnel | String | When the customer has subscribed to specific business offers, this field is set to the associated specific business (ex: HDS for HealthCare business specific)

Possibles values : `HDS` | * | externalReference optionnel | String | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.

Ordre de grandeur : `0..64` | * | externalReference2 optionnel | String | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.

Ordre de grandeur : `0..64` | * | avatarShape optionnel | String | Company's avatar customization

Possibles values : `square`, `circle` | * | allowUsersSelectTheme | Boolean | Allow users of this company to select a theme among the ones available (owned or visible by the company). | * | allowUsersSelectPublicTheme | Boolean | Allow users of this company to select a public theme. | * | selectedTheme optionnel | Object | Set the selected theme(s) for users of the company. | * | light optionnel | String | Set the selected theme light for users of the company. | * | dark optionnel | String | Set the selected theme dark for users of the company. | * | adminCanSetCustomData optionnel | Boolean | Whether or not administrators can set `customData` field for their own company. | * | isLockedByBp optionnel | Boolean | Whether or not BP company has locked themes so that indicates if company admin can manage themes (create/update/delete). | * | superadminComment optionnel | String | Free field that only `superadmin` can see

Ordre de grandeur : `0..256` | * | bpBusinessType optionnel | String\[\] | Business type that can be sold by a BP.

Possibles values : `voice_by_partner`, `voice_by_ale`, `conference`, `default` | * | billingModel optionnel | String | Billing model that can be subscribed for this company.

Possibles values : `monthly`, `prepaid_1y`, `prepaid_3y`, `prepaid_5y` | * | office365Tenant optionnel | String | Office365 tenant configured for this company. | * | office365ScopesGranted optionnel | String\[\] | Scopes granted to Rainbow for usage of Microsoft Office365 APIs.
If no office365Tenant is set or if admin has not granted access of Office365 APIs to Rainbow for the configured office365Tenant, office365ScopesGranted is set to an empty Array.
Otherwise, office365ScopesGranted lists the scopes requested by Rainbow to use Office365 APIs for the configured office365Tenant. This field can be used to determine if the admin must re-authenticate to Microsoft Office365 in the case new scopes are requested for Rainbow application (scopes requested for the current version of office365-portal are listed in API GET /api/rainbow/office365/v1.0/consent).

Possibles values : `directory`, `calendar` | * | mobilePermanentConnectionMode | Boolean | deactivate push mode for mobile devices.
When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection.
For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. | * | fileSharingCustomisation | String | Activate/Deactivate file sharing capability per company
Define if the company can use the file sharing service then, allowed to download and share file.
FileSharingCustomisation can be:

* `enabled`: Each user of the company can use the file sharing service, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can use the file sharing service, except when his own capability is set to 'enabled'. When one user of the company has the capability 'fileSharingCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | userTitleNameCustomisation | String | Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
Define if the company allows his users to change some profile data.
userTitleNameCustomisation can be:

* `enabled`: Each user of the company can change some profile data, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can change some profile data, except when his own capability is set to 'enabled'. When one user of the company has the capability 'userTitleNameCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | softphoneOnlyCustomisation | String | Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services and but to focus to telephony services.
Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
softphoneOnlyCustomisation can be:

* `enabled`: The user switch to a softphone mode only.
* `disabled`: The user can use telephony services, chat, bubbles, channels meeting services and so on. | * | useRoomCustomisation | String | Activate/Deactivate the capability for a user to use bubbles.
Define if a user can create bubbles or participate in bubbles (chat and web conference).
useRoomCustomisation can be:

* `enabled`: Each user of the company can use bubbles.
* `disabled`: No user of the company can use bubbles. | * | phoneMeetingCustomisation | String | Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
Define if a user has the right to join phone meetings.
phoneMeetingCustomisation can be:

* `enabled`: Each user of the company can join phone meetings.
* `disabled`: No user of the company can join phone meetings. | * | useChannelCustomisation | String | Activate/Deactivate the capability for a user to use a channel.
Define if a user has the right to create channels or be a member of channels.
useChannelCustomisation can be:

* `enabled`: Each user of the company can use some channels.
* `disabled`: No user of the company can use some channel. | * | useScreenSharingCustomisation | String | Activate/Deactivate the capability for a user to share a screen.
Define if a user has the right to share his screen.
useScreenSharingCustomisation can be:

* `enabled`: Each user of the company can share his screen.
* `disabled`: No user of the company can share his screen. | * | useWebRTCVideoCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC video conversation.
* `disabled`: No user of the company can switch to a Web RTC video conversation. | * | useWebRTCAudioCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC audio conversation.
* `disabled`: No user of the company can switch to a Web RTC audio conversation. | * | instantMessagesCustomisation | String | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
instantMessagesCustomisation can be:

* `enabled`: Each user of the company can use instant messages.
* `disabled`: No user of the company can use instant messages. | * | userProfileCustomisation | String | Activate/Deactivate the capability for a user to modify his profile.
Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
userProfileCustomisation can be:

* `enabled`: Each user of the company can modify his profile.
* `disabled`: No user of the company can modify his profile. | * | fileStorageCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow file storage.
Define if a user has the right to upload/download/copy or share documents.
fileStorageCustomisation can be:

* `enabled`: Each user of the company can manage and share files.
* `disabled`: No user of the company can manage and share files. | * | overridePresenceCustomisation | String | Activate/Deactivate the capability for a user to change manually his presence.
Define if a user has the right to change his presence manually or only use automatic states.
overridePresenceCustomisation can be:

* `enabled`: Each user of the company can change his presence.
* `disabled`: No user of the company can change his presence. | * | alertNotificationReception | String | Activate/Deactivate the capability for a user to receive alert notification.
Define if a user has the right to receive alert notification
alertNotificationReception can be:

* `enabled`: Each user of the company can receive alert notification.
* `disabled`: No user of the company can receive alert notification. | * | alertNotificationSending | String | Activate/Deactivate the capability for a user to send alert notification.
Define if a user has the right to send alert notification
alertNotificationSending can be:

* `enabled`: Each user of the company can send alert notification.
* `disabled`: No user of the company can send alert notification. | * | changeTelephonyCustomisation | String | Activate/Deactivate the ability for a user to modify some telephony settings.
Define if a user has the right to modify telephony settings like forward activation ....
changeTelephonyCustomisation can be:

* `enabled`: The user can modify telephony settings.
* `disabled`: The user can't modify telephony settings. | * | changeSettingsCustomisation | String | Activate/Deactivate the ability for a user to change all client general settings.
Define if a user has the right to change his client general settings.
changeSettingsCustomisation can be:

* `enabled`: The user can change all client general settings.
* `disabled`: The user can't change any client general setting. recordingConversationCustomisation Activate/Deactivate the capability for a user to record a conversation.
Define if a user has the right to record a conversation (for P2P and multi-party calls).
recordingConversationCustomisation can be:
* `enabled`: The user can record a peer to peer or a multi-party call.
* `disabled`: The user can't record a peer to peer or a multi-party call. | * | useGifCustomisation | String | Activate/Deactivate the ability for a user to Use GIFs in conversations.
Define if a user has the is allowed to send animated GIFs in conversations
useGifCustomisation can be:

* `enabled`: The user can send animated GIFs in conversations.
* `disabled`: The user can't send animated GIFs in conversations. | * | useDialOutCustomisation | String | Activate/Deactivate the capability for a user to use dial out in phone meetings.
Define if a user is allowed to be called by the Rainbow conference bridge.
useDialOutCustomisation can be:

* `enabled`: The user can be called by the Rainbow conference bridge.
* `disabled`: The user can't be called by the Rainbow conference bridge. | * | fileCopyCustomisation | String | Activate/Deactivate the capability for a user to copy files
Define if one or all users of a company is allowed to copy any file he receives in his personal cloud space.
fileCopyCustomisation can be:

* `enabled`: The user can make a copy of a file to his personal cloud space.
* `disabled`: The user can't make a copy of a file to his personal cloud space. | * | fileTransferCustomisation | String | Activate/Deactivate the ability for a user to transfer files.
Define if one or all users of a company has the right to copy a file from a conversation then share it inside another conversation.
fileTransferCustomisation can be:

* `enabled`: The user can transfer a file doesn't belong to him.
* `disabled`: The user can't transfer a file doesn't belong to him. | * | forbidFileOwnerChangeCustomisation | String | Activate/Deactivate the ability for a user to loose the ownership on one file.
Define if one or all users can drop the ownership of a file to another Rainbow user of the same company
forbidFileOwnerChangeCustomisation can be:

* `enabled`: The user can't give the ownership of his file.
* `disabled`: The user can give the ownership of his file. | * | readReceiptsCustomisation | String | Activate/Deactivate the capability for a user to allow a sender to check if a chat message is read.
Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
This right is used by Ucaas or Cpaas application to show either or not a message is acknowledged. No check is done on backend side.
readReceiptsCustomisation can be:

* `enabled`: Each user of the company allow the sender to check if an IM is read.
* `disabled`: No user of the company allow the sender to check if an IM is read. | * | useSpeakingTimeStatistics | String | Activate/Deactivate the ability for a user to see speaking time statistics..
Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
useSpeakingTimeStatistics can be:

* `enabled`: Each user of the company can use meeting speaking time statistics.
* `disabled`: No user of the company can use meeting speaking time statistics. | * | eLearningCustomisation | String | Activate/Deactivate the capability for a user to participate on a E-learning training.
Defines if a user can participate on an E-learning training.
eLearningCustomisation can be:

* `enabled`: The user can participate on an E-learning training.
* `disabled`: The user can't participate on an E-learning training. | * | eLearningGamificationCustomisation | String | Activate/Deactivate the capability for a user to earn badges for E-learning progress.
Defines if a user can earn badges for E-learning progress.
eLearningGamificationCustomisation can be:

* `enabled`: The user can earn badges for E-learning progress.
* `disabled`: The user can't earn badges for E-learning progress. | * | meetingRecordingCustomisation | String | Activate/Deactivate the capability for a user to record a meeting.
Defines if a user can record a meeting.
meetingRecordingCustomisation can be:

* `enabled`: The user can record a meeting.
* `disabled`: The user can't record a meeting. | * | useOtherPhoneMode | String | Activate/Deactivate the capability for a user to use the other phone mode.
Defines if a user can use the other phone mode.
useOtherPhoneMode can be:

* `enabled`: The user can use the other phone mode.
* `disabled`: The user can't use the other phone mode. | * | useComputerMode | String | Activate/Deactivate the capability for a user to use the computer mode.
Defines if a user can use the computer mode.
useComputerMode can be:

* `enabled`: The user can use the computer mode.
* `disabled`: The user can't use the computer mode. | * | useSoftPhoneMode | String | Activate/Deactivate the capability for a user to use the softphone mode.
Defines if a user can use the softphone mode.
useSoftPhoneMode can be:

* `enabled`: The user can use the softphone mode.
* `disabled`: The user can't use the softphone mode. | * | imPopupDuration | Number | Defines the IM popup duration. | * | canAccessWhatsNew | String | Activate/Deactivate the capability for a user to access to what's new.
Defines if a user can access to what's new.
canAccessWhatsNew can be:

* `enabled`: The user can access to what's new.
* `disabled`: The user can't access to what's new. | * | canAccessFaqCustomisation | String | Activate/Deactivate the capability for a user to access to the FAQ.
Defines if a user can access to the FAQ.
canAccessFaqCustomisation can be:

* `enabled`: The user can access to the FAQ.
* `disabled`: The user can't access to the FAQ. | * | canAccessHelpCenterCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow help center.
Defines if a user can access to Rainbow help center.
canAccesHelpCenterCustomisation can be:

* `enabled`: The user can access to Rainbow help center.
* `disabled`: The user can't access to Rainbow help center. | * | canAccessStoreCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow store.
Defines if a user can access to Rainbow store.
canAccesStoreCustomisation can be:

* `enabled`: The user can access to Rainbow store.
* `disabled`: The user can't access to Rainbow store. | * | canDownloadAppCustomisation | String | Activate/Deactivate the capability for a user to download Rainbow application.
Defines if a user can download Rainbow application.
canDownloadAppCustomisation can be:

* `enabled`: The user can download Rainbow application.
* `disabled`: The user can't download Rainbow application. | * | canCallParticipantPbxNumberCustomisation | String | Select the capability for a user to call participant via a PBX number.
Defines if a user can call participant via a PBX number.
canCallParticipantPbxNumberCustomisation can be:

* `enabled`: The user can call participant with all number.
* `disabled`: The user can't call participant.
* `internal`: The user can call participant only with internal number.
* `national`: The user can call participant with national number. | * | defaultLicenseGroup | String | Group of license to assign to user when finalizing his account (e.g. Enterprise, Business ...) | * | defaultOptionsGroups | String\[\] | List of options to assign to user when finalizing his account (e.g. Alert ...) | * | selectedThemeCustomers optionnel | Object | Set the selected theme(s) for customers of this BP company.
This attribute only applies for BP companies. | * | light optionnel | String | Set the selected theme light for customers of this BP company. | * | dark optionnel | String | Set the selected theme dark for customers of this BP company. | * | ddiReadOnly optionnel | Boolean | Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies. | * | locked optionnel | Boolean | Allow to lock selected theme for customers. If true, customers won't be able to manage themes (create/update/delete). | * | cloudPbxVoicemailToEmail optionnel | Boolean | Cloudpbx email notification type when receiving a voicemail | * | allowPhoneNumbersVisibility optionnel | Boolean | Indicates if Phone numbers should be visible or not when generating Voice CDR files. Applies only on BP companies. | * | cloudPbxRecordingInboundOnly optionnel | Boolean | When CloudPbx recording is set, both inbound and outbound calls will be recorded for the selected users. If cloudPbxRecordingInboundOnly is set to true, only inbound calls will be recorded | * | allowDeviceFirmwareSelection optionnel | Boolean | Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. | * | businessData optionnel | Object | Set the businessData company. | * | region optionnel | String | Set the region of the company. | * | cluster optionnel | String | Set the cluster of the company. | * | area optionnel | String | Set the area of the company. | * | allowTeamsToDesktopSso optionnel | Boolean | Superadmin allows if Teams add-in uses sso to login in desktop app for all company users

Default value : `true` | * | country optionnel | String | Set the business country of the company. | * | rainbowStorageAllowedAllUsers | Boolean | In an environment where a company uses the Rainbow file server or an External file server, an administator can defines storage access rights at company level, and at user level.
So he has to:

* Enable/Disable external storage for a company (see `useExternalStorage`) and configure required parameters as URLs, type, name, description (see company/settings/filestorage section) and if all company users have access to this storage by default (see `externalStorageAllowedAllUsers`).
If this storage is enabled by default, all users following the company policy will have access to the storage.
* Enable/Disable Rainbow storage for a company (see `useRainbowStorage`), and if all company users have access to this storage by default (see `rainbowStorageAllowedAllUsers`).
* Select which storage is the main one used to store photo taken from Rainbow Apps (see `mainStorage`) | * | externalStorageAllowedAllUsers | Boolean | Refer to rainbowStorageAllowedAllUsers. | * | useRainbowStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useRainbowStorage' allows a user to be assigned to a file server.

* `enabled`: Assign all users to the default Rainbow File Storage.
* `disabled`: Unassign all users from the default Rainbow File Storage. | * | useExternalStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useExternalStorage' allows a user to be assigned to a file server.

* `enabled`: Assign all users to the External File Storage.
* `disabled`: Unassign all users from the External File Storage. | * | mainStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'mainStorage' allows to decide which file server must be used when a user is assigned to both file servers.

* `Rainbow Storage`: Assigment to the Rainbow file server.
* `External Storage`: Assigment to the External file server. | * | customData optionnel | Object | Company's custom data.
Object with free keys/values.
It is up to the client to manage the company's customData (new customData provided overwrite the existing one).

Restrictions on customData Object:

* max 10 keys,
* max key length: 64 characters,
* max value length: 512 characters. | * | adminServiceNotificationsLevel | String | Level of service notification that admin should see | * * * example of result : * ```json * { * "id": "569ce8c8f9336c471b98eda1", * "creationDate": "2016-01-18T13:29:44.498Z", * "statusUpdatedDate": "2016-01-18T13:29:44.497Z", * "name": "AL-ENTERPRISE", * "street": "Sesame street", * "city": "Brooklyn", * "postalCode": "123456", * "country": "USA", * "state": "NY", * "status": "active", * "visibility": "private", * "visibleBy": [ * "56fabb217d8d3ffa3d0223f8", * "56d6f00441255dd54b5b61ae" * ], * "adminEmail": "admin@company.com", * "supportEmail": "support@company.com", * "companyContactId": "588a0d902d9e7f983b8f7661", * "autoAcceptUserInvitations": true, * "userSelfRegisterEnabled": true, * "userSelfRegisterAllowedDomains": [ * "@alcatel-lucent.com", * "@al-enterprise.com", * "@al-enterprise.fr", * "@al-enterprise.de" * ], * "slogan": "The slogan of my company", * "description": "A free string that describes my company", * "size" : "1001-5000 employees", * "website": "http:\\/\\/enterprise.alcatel-lucent.com", * "giphyEnabled": false, * "organisationId": "57cd58edd341df5812bbcb71", * "catalogId": "5979f63bae6056aadd1a8f17", * "bpId": null, * "externalReference": null, * "offerType": "premium", * "avatarShape": "circle", * "allowUsersSelectTheme": true, * "allowUsersSelectPublicTheme": true, * "mobilePermanentConnectionMode": false, * "customData": {}, * "office365ScopesGranted": [], * "fileSharingCustomisation": "enabled", * "userTitleNameCustomisation": "enabled", * "softphoneOnlyCustomisation": "disabled", * "useRoomCustomisation": "enabled", * "phoneMeetingCustomisation": "enabled", * "useChannelCustomisation": "enabled", * "useScreenSharingCustomisation": "enabled", * "useWebRTCVideoCustomisation": "enabled", * "useWebRTCAudioCustomisation": "enabled", * "instantMessagesCustomisation": "enabled", * "userProfileCustomisation": "enabled", * "fileStorageCustomisation": "enabled", * "overridePresenceCustomisation": "enabled", * "changeTelephonyCustomisation": "enabled", * "changeSettingsCustomisation": "enabled", * "recordingConversationCustomisation": "enabled", * "useGifCustomisation": "enabled", * "useDialOutCustomisation": "enabled", * "eLearningCustomisation": "enabled", * "eLearningGamificationCustomisation": "enabled", * "meetingRecordingCustomisation": "enabled", * "useOtherPhoneMode": "enabled", * "useComputerMode": "enabled", * "useSoftPhoneMode": "enabled", * "imPopupDuration": 3, * "canAccessWhatsNew": "enabled", * "canAccesFaqCustomisation": "enabled", * "canAccessHelpCenterCustomisation": "enabled", * "canAccessStoreCustomisation": "enabled", * "canDownloadAppCustomisation": "enabled", * "canCallParticipantPbxNumberCustomisation": "enabled", * "defaultLicenseGroup": "Enterprise", * "defaultOptionsGroups": ["Alert"], * "selectedTheme": { * "light": null, * "dark": "5ea304e4359c0e6815fc8b57", * "isLockedByBp": true * }, * "businessSpecific": "UGAP", * "allowTeamsToDesktopSso": true, * "externalStorageAllowedAllUsers" : false, * "mainStorage" : "Rainbow Storage", * "rainbowStorageAllowedAllUsers" : true, * "useExternalStorage" : "disabled", * "useRainbowStorage" : "enabled", * "businessData": { * "region": "EMEA", * "cluster": "EU SOUTH", * "area": "BELUX", * "country": "BEL" * }, * "useRainbowStorage" : "enabled", * "adminServiceNotificationsLevel": "high" * } * ``` * */ updateCompany(companyId: string, selectedThemeObj: boolean, name: string, country: string, street: string, city: string, state: string, postalCode: string, offerType: string, currency: string, status: string, visibility: string, visibleBy: string[], adminEmail: string, supportEmail: string, supportUrlFAQ: string, companyContactId: string, disableCCareAdminAccess: boolean, disableCCareAdminAccessCustomers: boolean, disableCCareAdminAccessResellers: boolean, autoAcceptUserInvitations: boolean, autoAddToUserNetwork: boolean, contentPolicyLifeTime: boolean, documentGracePeriod: boolean, userSelfRegisterAllowedDomains: string[], slogan: string, description: string, size: string, economicActivityClassification: string, website: string, giphyEnabled: boolean, catalogId: string, adminCanSetCustomData: boolean, customData: any, bpId: string, adminHasRightToUpdateSubscriptions: boolean, adminAllowedUpdateSubscriptionsOps: string, isBP: boolean, bpType: string, bpBusinessModel: string, bpApplicantNumber: string, bpCRDid: string, bpHasRightToSell: boolean, bpHasRightToConnect: boolean, bpHasRightForBYOT: boolean, preferredSipLoadBalancerId: string, bpIsContractAccepted: boolean, externalReference: string, externalReference2: string, salesforceAccountId: string, avatarShape: string, isCentrex: boolean, companyCallNumber: string, superadminComment: string, bpBusinessType: string[], billingModel: string, allowUsersSelectTheme: boolean, allowUsersSelectPublicTheme: boolean, selectedTheme: any, mobilePermanentConnectionMode: boolean, alertNotificationReception: string, alertNotificationSending: string, useDialOutCustomisation: string, allowDeviceFirmwareSelection: boolean, selectedDeviceFirmware: string, cloudPbxVoicemailToEmail: string, businessData: any, defaultLicenseGroup: string, defaultOptionsGroups: string[], selectedThemeCustomers: any, allowTeamsToDesktopSso?: boolean, cloudPbxRecordingInboundOnly?: boolean, supervisionGroupMaxSize?: number, supervisionGroupMaxNumber?: number, supervisionGroupMaxUsers?: number, timezone?: string, sendPrepaidSubscriptionsNotification?: boolean, ddiReadOnly?: boolean, allowPhoneNumbersVisibility?: boolean, csEmailList?: string[], seEmailList?: string[], csmEmailList?: string[], kamEmailList?: string[], businessSpecific?: string, adminServiceNotificationsLevel?: string): Promise; /** * @public * @nodered true * @method updateCompanyByObj * @instance * @description * Users with superadmin role can update any company. Users with admin role (and not having superadmin role) can only update their own company. *
Default and Terminated companies can't be renamed, and their name can't be use to rename another company *
`Sooner or later it will be unnecessary to manage each customization parameter individually. It will be necessary to create and/or apply customization templates.
AdminService::getAllAvailableCustomisationTemplates().` * * @param {string} companyId Company unique identifier * @param {any} selectedThemeObj Allows to return selectedTheme attribute as an object: *
* true returns selectedTheme as an object (e.g. { "light": "60104754c8fada2ad4be3e48", "dark": "5ea304e4359c0e6815fc8b57" }), *
* false return selectedTheme as a string. * @param {any} companyInfoToUpdate Object with company's properties to update. : { * {string} name Company name * {string} country Company country (ISO 3166-1 alpha3 format) * {string} street Company street * {string} city Company city * {string} state When country is 'USA' or 'CAN', a state must be defined. Else it is not managed. * {string} postalCode Company postal code * {string} offerType Company offer type. *
Companies with offerType=`freemium` are not able to subscribe to paid offers, they must be `premium` to do so. *
Only `superadmin` can set offerType from `premium` to `freemium`. *
Possibles values : `freemium`, `premium` * {string} currency Company currency, for payment of premium offers (ISO 4217 format) *
For now, only USD, EUR and CNY are supported *
Only settable by `superadmin` *
Possibles values : `USD`, `EUR`, `CNY` * {string} status Company status. *
If company status is `initializing`, only `superadmin` can change the status value. *
Possibles values : `initializing`, `active`, `alerting`, `hold`, `terminated` * {string} visibility Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies). *
* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users *
* `private`: User **can't** be searched by external users (even within his organisation) / can search external users. User can invite external users / can be invited by external users *
* `organization`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users *
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users *
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users *
* `hotspot`: User can be searched by hotspot attached company's users (users from any company if the user belong to the default company) / can't search any users (even in their company) or user can't invite external users / can be invited by hotspot attached company's users (users from any company if the user belong to the default company) *
* currently `hotspot` visibility can only be set on the default company, and with superadmin role (development of `hotspot` visibility is partially done, only for default company in the context of RQRAINB-7456) *
*
External users mean public user not being in user's company nor user's organisation nor a company visible by user's company. *
*
Note related to organisation visibility: *
*
* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies inside the same organisation. *
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched outside the organisation's companies. *
*
Default value : `private`. Possibles values : `public`, `private`, `organization`, `closed`, `isolated`, `hotspot` * {string[]} visibleBy If visibility is private or organisation, list of company ids for which visibility is allowed * {string} adminEmail Company contact person email. adminEmail is case sentive. Possibles values : `"/^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/"` * {string} supportEmail Company support email. supportEmail is case sensitive. supportEmail `should be provided if company to create is a VAD or a DR`. Possibles values : `"/^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/"` * {string} supportUrlFAQ Company support url * {string} companyContactId User Id of a Rainbow user which is the contact for this company * {boolean} disableCCareAdminAccess When True, disables the access to the customer care logs for admins of this company. *
Note that if `disableCCareAdminAccessCustomers` is enabled on its BP company or `disableCCareAdminAccessResellers` is enabled on its BP VAD company, this setting is forced to true. *
`disableCCareAdminAccess` can only be set: *
* by `superadmin` (all companies), *
* by `bp_admin` or `bp_finance` for the companies he manages, *
* by `organization_admin` for the BP companies he manages. *
* by `organization_admin` for the companies he manages. * {boolean} disableCCareAdminAccessCustomers When True, disables the access to the customer care logs for admins of all the customers company. *
This setting is only applicable for BP companies (`isBP`=true) *
* If the BP company is a DR or an IR, enabling this setting disables the access to the customer care logs for the admins of all its customers companies. *
* If the BP company is a VAD, enabling this setting disables the access to the customer care logs for all the admins of its customers companies. *
Note that the bp_admins/admins of all the BP IRs companies linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessResellers` on the BP VAD company allows to disable it). *
`disableCCareAdminAccessCustomers` can only be set: *
* by `superadmin` (all BP companies), *
* by `bp_admin` or `bp_finance` of a BP VAD company for the BP companies he manages, *
* by `organization_admin` for the BP companies he manages, *
* by `company_admin` for the BP company he manages. * {boolean} disableCCareAdminAccessResellers When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company. *
This setting is only applicable for BP VAD companies (`isBP`=true and `bpType`=`VAD`) *
Enabling this setting disables on the BP VAD company disables the access to the customer care logs for the bp_admins/admins of all the BP IRs linked to this VAD, and to all the admins of their customers. *
Note that the admins of all the customer companies directly linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessCustomers` on the BP VAD company allows to disable it). *
`disableCCareAdminAccessResellers` can only be set: *
* by `superadmin` (all BP VAD companies), *
* by `bp_admin` or `bp_finance` of a BP VAD company for the BP companies he manages, *
* by `organization_admin` for the BP VAD companies he manages, *
* by `company_admin` for the BP VAD company he manages. * {boolean} autoAcceptUserInvitations Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled). Default value : true * {boolean} autoAddToUserNetwork Allow to enable or disable the auto addition to user's network between users of this company (default false: disabled). Default value : false * {boolean} contentPolicyLifeTime When different from -1 it activates content removal for all user of this companies with a content lifetime equals to contentPolicyLifeTime in minutes. Default value : -1 * {boolean} documentGracePeriod When content removal is active for the organisation it represents the period in minutes where a document is still available event if it's content policy lifetime has expired * @apiParam (BodyParameters) {Boolean} [userSelfRegisterEnabled=true] Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process Default value : 14400 * {string[]} userSelfRegisterAllowedDomains Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) * {string} slogan A free string corresponding to the slogan of the company * {string} description A free string that describes the company (2000 char length) * {string} size An overview of the number of employees. Default value : `self-employed`. Possibles values : `"self-employed"`, `"1-10 employees"`, `"11-50 employees"`, `"51-200 employees"`, `"201-500 employees"`, `"501-1000 employees"`, `"1001-5000 employees"`, `"5001-10,000 employees"`, `"10,001+ employees"` * {string} economicActivityClassification *
* `A`: AGRICULTURE, FORESTRY AND FISHING *
* `B`: MINING AND QUARRYING *
* `C`: MANUFACTURING *
* `D`: ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY *
* `E`: WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES *
* `F`: CONSTRUCTION *
* `G`: WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES *
* `H`: TRANSPORTATION AND STORAGE *
* `I`: ACCOMMODATION AND FOOD SERVICE ACTIVITIES *
* `J`: INFORMATION AND COMMUNICATION *
* `K`: FINANCIAL AND INSURANCE ACTIVITIES *
* `L`: REAL ESTATE ACTIVITIES *
* `M`: PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES *
* `N`: ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES *
* `O`: PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY *
* `P`: EDUCATION *
* `Q`: HUMAN HEALTH AND SOCIAL WORK ACTIVITIES *
* `R`: ARTS, ENTERTAINMENT AND RECREATION *
* `S`: OTHER SERVICE ACTIVITIES *
* `T`: ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE *
* `U`: ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES *
*
Possibles values : `"A"`, `"B"`, `"C"`, `"D"`, `"E"`, `"F"`, `"G"`, `"H"`, `"I"`, `"J"`, `"K"`, `"L"`, `"M"`, `"N"`, `"O"`, `"P"`, `"Q"`, `"R"`, `"S"`, `"T"`, `"U"` * {string} website Company website url * {boolean} giphyEnabled Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations). `This field is deprecated.` Manage instead **useGifCustomisation field!** * {string} catalogId Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe. *
When a new company is created, if no catalogId is specified the company is automatically linked to the default catalog. *
When a `bp_admin>` or `bp_finance>` creates a company, catalogId of this new company is automatically set to BP company's catalogId. *
When an `organization_admin>` creates a company, catalogId of this new company is automatically set to organization_admin's company's catalogId. *
*
Only `superadmin` can set a different catalogId to a company. * {boolean} adminCanSetCustomData Whether or not administrators can set customData field for their own company. *
adminCanSetCustomData can only be set: *
by `superadmin` (all companies), *
by `bp_admin` or `bp_finance` for the companies he manages, *
by `organization_admin` for the companies he manages. * {any} customData Company's custom data. *
Object with free keys/values. *
It is up to the client to manage the company's customData (new customData provided overwrite the existing one). *
*
Restrictions on customData Object: *
- max 10 keys, *
- max key length: 64 characters, *
- max value length: 512 characters. *
*
*
Company customData can only be created/updated by: *
- \`superadmin\` (all companies), *
- \`bp\_admin\` or \`bp\_finance\` for the companies he manages (except his company if its \`adminCanSetCustomData\` setting is not set to true), *
- \`organization_admin\` for the companies he manages, *
- \`company\_admin\` for his own company if its \`adminCanSetCustomData\` setting is set to true (setting that can only be set by a superadmin, his bp\_admin, bp\_finance or organization\_admin) or if he has the feature \`ADMIN\_CAN\_SET\_CUSTOM\_DATA\` (if the feature is enabled, it overwrites the value of the company setting). * {string} bpId Link the company to the corresponding Business partner company. *
`bpId` must correspond to a valid company having `isBP` equal to true. *
Only directly settable by `superadmin`. *
If the company is `created` by a `bp_admin` or a `bp_finance`, `bpId` is automatically set to BP company id. *
For existing companies, `bp_admin` must use invitation mechanism to a company admin in order to request a link of this company company to his BP company. *
Can only be set by `superadmin` or `bp_finance` of the related company. * {boolean} adminHasRightToUpdateSubscriptions In the case the company is linked to a Business Partner company, indicates if the `bp_finance` allows the `company_admin` to update the subscriptions of his company (if enable, allowed operations depend of the value of `adminAllowedUpdateSubscriptionsOps`). *
Can only be set by `superadmin` or `bp_finance` of the related company. * {string} adminAllowedUpdateSubscriptionsOps In the case the company is linked to a Business Partner company and `adminHasRightToUpdateSubscriptions` is enabled, indicates the update operations for which the `bp_finance` allows the `company_admin` to perform on the subscriptions of his company. *
Can only be set by `superadmin` or `bp_finance` of the related company. *
Possible values: *
- `all: company_admin is allowed to perform all update operations on the subscriptions of his company *
- `increase_only: company_admin is only allowed to increase` maxNumberUsers` on the subscriptions of his company (decrease is forbidden) *
- 'monthly': company_admin is only allowed to manage monthly subscription (increase and decrease) *
*
Possibles values : `all`, `increase_only`, `monthly` * {boolean} isBP Indicates if the company is a Business partner company *
Only settable by `superadmin` * {string} bpType Indicates BP Company type *
- `IR`: Indirect Reseller, *
- `VAD`: Value Added Distributor, *
- `DR`: Direct Reseller. *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. *
*
Possibles values : `IR`, `VAD`, `DR` * {string} bpBusinessModel Indicates BP business model *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. *
*
Possibles values : `referral`, `resell` * {string} bpApplicantNumber Reference of the Business Partner in ALE Finance tools (SAP) *
Only applicable if `isBP` is true and `bpType` is DR or VAD. *
Only settable by `superadmin`. * {string} bpCRDid Reference of the Business Partner in CDR *
Only applicable if `isBP` is true and `bpType` is DR or VAD. *
If `bpCRDid` is not defined, BP won't be able to sell (i.e. `bpHasRightToSell` can't be set to true) *
Only settable by `superadmin`. * {boolean} bpHasRightToSell Indicates if the Business has the right to sell *
Only applicable if `isBP` is true and `bpType` is DR or VAD. *
Only applicable if `bpCRDid` is defined. *
Only settable by `superadmin`. * {boolean} bpHasRightToConnect When True \[Default\], the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. * {boolean} bpHasRightForBYOT When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. * {string} preferredSipLoadBalancerId Indicates the identifier of the preferred SIP Load Balancer (Rainbow Hub context ; used for HybridTrunks of associated ECs) *
Only applicable if `isBP` is true. *
Only settable by `superadmin`. * {boolean} bpIsContractAccepted Indicates if the Business has accepted the contract and can sell Rainbow offers *
Should be set by `bp_admin` or `bp_finance`. *
Only applicable if `isBP` is true. *
*
Default value : `false` * {string} externalReference Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools *
Only applicable by `superadmin` or by `bp_admin` or `bp_finance` on one of his Indirect Resellers / End Customers companies. * {string} externalReference2 Free field that BP can use to link their Indirect Resellers / End Customers to their IS/IT tools *
Only applicable by `superadmin` or by `bp_admin` or `bp_finance` on one of his Indirect Resellers / End Customers companies. * {string} salesforceAccountId Curstomer's Salesforce reference. *
Only settable by users with `superadmin` or `business_admin` role(s). * {string} avatarShape Company's avatar customization * isCentrex Indicates if the company is one tenant of a multi-tenant call server (OXE - OTEC-S or third_party) (default: false) * {string} companyCallNumber If isCentrex = true, this is the company access number \[multi-company call + company Area, ex: 8 210, 8 211\] * {string} superadminComment Free field that only `superadmin` can use. * {string[]} bpBusinessType Business type(s) that can be sold by a BP. Possibles values : `voice_by_partner`, `voice_by_ale`, `conference`, `default`. * {string} billingModel Billing model that can be subscribed for this company. Possibles values : `monthly`, `prepaid_1y`, `prepaid_3y`, `prepaid_5y` * {boolean} allowUsersSelectTheme Allow users of this company to select a theme among the ones available (owned or visible by the company). Default value : `true` * {boolean} allowUsersSelectPublicTheme Allow users of this company to select a public theme. Default value : `true` * {any} selectedTheme selectedTheme Object to set the selected theme(s) for users of the company. *
* light optionnel String Set the selected theme light for users of the company. *
* dark optionnel String Set the selected theme dark for users of the company. * {boolean} mobilePermanentConnectionMode deactivate push mode for mobile devices. *
When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection. *
For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. *
*
Default value : `false` * {string} alertNotificationReception Activate/Deactivate the capability for a user to receive alert notification. *
Define if a user has the right to receive alert notification *
alertNotificationReception can be: *
*
- `enabled`: Each user of the company can receive alert notification. *
- `disabled`: No user of the company can receive alert notification. *
*
Default value : `disabled`. Possibles values : `enabled`, `disabled` * {string} alertNotificationSending Activate/Deactivate the capability for a user to send alert notification. *
Define if a user has the right to send alert notification *
alertNotificationSending can be: *
*
- `enabled`: Each user of the company can send alert notification. *
- `disabled`: No user of the company can send alert notification. *
*
Default value : `disabled`. Possibles values : `enabled`, `disabled` * {string} useDialOutCustomisation Activate/Deactivate the capability for a user to use dial out in phone meetings. *
Define if a user is allowed to be called by the Rainbow conference bridge. *
useDialOutCustomisation can be: *
*
- `enabled`: The user can be called by the Rainbow conference bridge. *
- `disabled`: The user can't be called by the Rainbow conference bridge. *
*
Default value : `enabled`. Possibles values : `enabled`, `disabled` * {boolean} allowDeviceFirmwareSelection Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. Default value : `false` * {string} selectedDeviceFirmware Cloudpbx default device firmware *
- `released`: Default value, device firmware will be the official released one. *
- `latest`: Device firmware can be a more up to date binary (e.g. early adopters) *
If allowed by `superadmin`, `company admin` can then select the kind of firmware for all the users, or only for some of them. *
*
Default value : `released` Possibles values : `released`, `latest` * {string} cloudPbxVoicemailToEmail Cloudpbx email notification type when receiving a voicemail. Default value : `none`. Possibles values : `none`, `simple`, `complete` * {any} businessData businessData optionnel Object *
Set the business data of the company. *
Only settable by users with `superadmin` or `business_admin` role(s). *
*
region optionnel String Set the region of the company. *
cluster optionnel String Set the cluster of the company. *
area optionnel String Set the area of the company. *
country optionnel String Set the business country of the company. * {string} defaultLicenseGroup Group of license to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Enterprise, Business ...) * {string[]} defaultOptionsGroups List of options to assign to user when finalizing his account. Should be one of offers' groupName (e.g. Alert ...) * {any} selectedThemeCustomers selectedThemeCustomers optionnel Object *
Set the selected theme(s) for customers of this BP company. *
This param only applies for BP companies. *
* light optionnel String Set the selected theme light for customers of this BP company. *
* dark optionnel String Set the selected theme dark for customers of this BP company. *
* locked optionnel Boolean Allow to lock selected theme for customers. If true, customers won't be able to create or set another theme that the one selected by BP. * {boolean} allowTeamsToDesktopSso uperadmin allows if Teams add-in uses sso to login in desktop app for all company users. Default value : true * {boolean} cloudPbxRecordingInboundOnly When CloudPbx recording is set, both inbound and outbound calls will be recorded for the selected users. If cloudPbxRecordingInboundOnly is set to true, only inbound calls will be recorded Default value : `true` * {number} supervisionGroupMaxSize Maximum number of users a company can supervise. Default value : `1500` * {number} supervisionGroupMaxNumber Maximum number of supervision groups a supervisor can belong to. Default value : 5 * {number} supervisionGroupMaxUsers Maximum number of users in a supervision group (supervisor included). Default value : `30` * {string} timezone User timezone name *
Allowed values: one of the timezone names defined in IANA tz database (https://www.iana.org/time-zones) *
Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) * {boolean} sendPrepaidSubscriptionsNotification Indicates if company_admin should receive email notification about prepaid subscriptions expiring soon. Used only on end customer companies * {boolean} ddiReadOnly Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies. *
This parameter can only be set by VAD `bp_admin` or `superadmin`. * {boolean} allowPhoneNumbersVisibility Indicates if Phone numbers should be visible or not when generating Voice CDR files. Applies only on BP companies. Default value : `false`. * {string[]} csEmailList A list of Customer Success email addresses (maximum length : 10). * {string[]} seEmailList A list of System Engineer email addresses (maximum length : 10). * {string[]} csmEmailList A list of Channel Sales Manager email addresses (maximum length : 10). * {string[]} kamEmailList A list of Key Account Manager email addresses (maximum length : 10). *
These fields can only be set by a `business_admin` or a `superadmin`. * {string} businessSpecific Allow to specify if company has access to specific offers. Only settable by superadmin or business_admin. Possibles values : UGAP. * {string} adminServiceNotificationsLevel Level of service notification that admin should see. Possibles values : `high`, `medium`, `low`. * } * * @category Companies and users management * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | String | Company unique identifier | * | creationDate | Date-Time | Company creation date (Read only) | * | statusUpdatedDate | Date-Time | Date of last company status update (Read only) | * | lastAvatarUpdateDate | Date-Time | Date of last company avatar update (Read only) | * | name | String | Company name | * | country optionnel | String | Company country (ISO 3166-1 alpha3 format)

The list of allowed countries can be obtained using the API AdminService::getListOfCountries() | * | street optionnel | String | Company street

Ordre de grandeur : `0..255` | * | city optionnel | String | Company city

Ordre de grandeur : `0..255` | * | state optionnel | String | When country is 'USA' or 'CAN', a state must be defined. Else it is not managed.

The list of allowed states can be obtained using the API AdminService::getListOfCountries() for the associated countries.

* List of allowed states for `USA`:
* `AA`: "Armed Forces America",
* `AE`: "Armed Forces",
* `AP`: "Armed Forces Pacific",
* `AK`: "Alaska",
* `AL`: "Alabama",
* `AR`: "Arkansas",
* `AZ`: "Arizona",
* `CA`: "California",
* `CO`: "Colorado",
* `CT`: "Connecticut",
* `DC`: Washington DC",
* `DE`: "Delaware",
* `FL`: "Florida",
* `GA`: "Georgia",
* `GU`: "Guam",
* `HI`: "Hawaii",
* `IA`: "Iowa",
* `ID`: "Idaho",
* `IL`: "Illinois",
* `IN`: "Indiana",
* `KS`: "Kansas",
* `KY`: "Kentucky",
* `LA`: "Louisiana",
* `MA`: "Massachusetts",
* `MD`: "Maryland",
* `ME`: "Maine",
* `MI`: "Michigan",
* `MN`: "Minnesota",
* `MO`: "Missouri",
* `MS`: "Mississippi",
* `MT`: "Montana",
* `NC`: "North Carolina",
* `ND`: "North Dakota",
* `NE`: "Nebraska",
* `NH`: "New Hampshire",
* `NJ`: "New Jersey",
* `NM`: "New Mexico",
* `NV`: "Nevada",
* `NY`: "New York",
* `OH`: "Ohio",
* `OK`: "Oklahoma",
* `OR`: "Oregon",
* `PA`: "Pennsylvania",
* `PR`: "Puerto Rico",
* `RI`: "Rhode Island",
* `SC`: "South Carolina",
* `SD`: "South Dakota",
* `TN`: "Tennessee",
* `TX`: "Texas",
* `UT`: "Utah",
* `VA`: "Virginia",
* `VI`: "Virgin Islands",
* `VT`: "Vermont",
* `WA`: "Washington",
* `WI`: "Wisconsin",
* `WV`: "West Virginia",
* `WY`: "Wyoming"
* List of allowed states for `CAN`:
* `AB`: "Alberta",
* `BC`: "British Columbia",
* `MB`: "Manitoba",
* `NB`: "New Brunswick",
* `NL`: "Newfoundland and Labrador",
* `NS`: "Nova Scotia",
* `NT`: "Northwest Territories",
* `NU`: "Nunavut",
* `ON`: "Ontario",
* `PE`: "Prince Edward Island",
* `QC`: "Quebec",
* `SK`: "Saskatchewan",
* `YT`: "Yukon"

Possibles values : `null`, `"AA"`, `"AE"`, `"AP"`, `"AK"`, `"AL"`, `"AR"`, `"AZ"`, `"CA"`, `"CO"`, `"CT"`, `"DC"`, `"DE"`, `"FL"`, `"GA"`, `"GU"`, `"HI"`, `"IA"`, `"ID"`, `"IL"`, `"IN"`, `"KS"`, `"KY"`, `"LA"`, `"MA"`, `"MD"`, `"ME"`, `"MI"`, `"MN"`, `"MO"`, `"MS"`, `"MT"`, `"NC"`, `"ND"`, `"NE"`, `"NH"`, `"NJ"`, `"NM"`, `"NV"`, `"NY"`, `"OH"`, `"OK"`, `"OR"`, `"PA"`, `"PR"`, `"RI"`, `"SC"`, `"SD"`, `"TN"`, `"TX"`, `"UT"`, `"VA"`, `"VI"`, `"VT"`, `"WA"`, `"WI"`, `"WV"`, `"WY"`, `"AB"`, `"BC"`, `"MB"`, `"NB"`, `"NL"`, `"NS"`, `"NT"`, `"NU"`, `"ON"`, `"PE"`, `"QC"`, `"SK"`, `"YT"` | * | postalCode optionnel | String | Company postal code

Ordre de grandeur : `0..64` | * | currency optionnel | String | Company currency, for payment of premium offers (ISO 4217 format)
For now, only USD, EUR and CNY are supported

Ordre de grandeur : `3`

Possibles values : `USD`, `EUR`, `CNY` | * | status | String | Company status

Possibles values : `initializing`, `active`, `alerting`, `hold`, `terminated` | * | visibility optionnel | string | Company visibility (define if users being in this company can be searched by users being in other companies and if the user can search users being in other companies).

* `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
* `private`: User **can't** be searched by external users (even within his organisation) / can search external users. User can invite external users / can be invited by external users
* `organisation`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
* `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
* `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
* `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users

External users mean public user not being in user's company nor user's organisation nor a company visible by user's company.

Note related to organisation visibility:

* Under the same organisation, a company can choose the visibility=organisation. That means users belonging to this company are visible for users of foreign companies inside the same organisation.
* The visibility=organisation is same as visibility=private outside the organisation. That is to say users can't be searched outside the organisation's companies.

Default value : `private`

Possibles values : `public`, `private`, `organisation`, `closed`, `isolated` | * | visibleBy | String\[\] | If visibility is private, list of companyIds for which visibility is allowed | * | adminEmail optionnel | String | Company contact person email | * | supportEmail optionnel | String | Company support email | * | supportUrlFAQ optionnel | String | Company support URL | * | companyContactId optionnel | String | User Id of a Rainbow user which is the contact for this company | * | disableCCareAdminAccess optionnel | Boolean | When True, disables the access to the customer care logs for admins of this company.
Note that if `disableCCareAdminAccessCustomers` is enabled on its BP company or `disableCCareAdminAccessResellers` is enabled on its BP VAD company, this setting is forced to true. | * | disableCCareAdminAccessCustomers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the customers company.
This setting is only applicable for BP companies (`isBP`=true)

* If the BP company is a DR or an IR, enabling this setting disables the access to the customer care logs for the admins of all its customers companies.
* If the BP company is a VAD, enabling this setting disables the access to the customer care logs for all the admins of its customers companies.
Note that the bp_admins/admins of all the BP IRs companies linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessResellers` on the BP VAD company allows to disable it). | * | disableCCareAdminAccessResellers optionnel | Boolean | When True, disables the access to the customer care logs for admins of all the BP IRs companies linked to the BP VAD and their customers company.
This setting is only applicable for BP VAD companies (`isBP`=true and `bpType`=`VAD`)
Enabling this setting disables on the BP VAD company disables the access to the customer care logs for the bp_admins/admins of all the BP IRs linked to this VAD, and to all the admins of their customers.
Note that the admins of all the customer companies directly linked to this VAD still have access to the customer care logs (the setting `disableCCareAdminAccessCustomers` on the BP VAD company allows to disable it). | * | autoAcceptUserInvitations optionnel | Boolean | Allow to enable or disable the auto-acceptation of user invitations between users of this company (default true: enabled) | * | userSelfRegisterEnabled | Boolean | Allow users with email domain matching 'userSelfRegisterAllowedDomains' to join the company by self-register process | * | userSelfRegisterAllowedDomains | String\[\] | Allow users with email domain matching one of the values of this array to join the company by self-register process (if userSelfRegisterEnabled is true) | * | slogan optionnel | String | A free string corresponding to the slogan of the company (255 char length) | * | description optionnel | String | A free string that describes the company (2000 char length) | * | size | String | An overview of the number of employees

Possibles values : `"self-employed"`, `"1-10 employees"`, `"11-50 employees"`, `"51-200 employees"`, `"201-500 employees"`, `"501-1000 employees"`, `"1001-5000 employees"`, `"5001-10,000 employees"`, `"10,001+ employees"` | * | economicActivityClassification optionnel | String | * `A`: AGRICULTURE, FORESTRY AND FISHING
* `B`: MINING AND QUARRYING
* `C`: MANUFACTURING
* `D`: ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY
* `E`: WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES
* `F`: CONSTRUCTION
* `G`: WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES
* `H`: TRANSPORTATION AND STORAGE
* `I`: ACCOMMODATION AND FOOD SERVICE ACTIVITIES
* `J`: INFORMATION AND COMMUNICATION
* `K`: FINANCIAL AND INSURANCE ACTIVITIES
* `L`: REAL ESTATE ACTIVITIES
* `M`: PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES
* `N`: ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES
* `O`: PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY
* `P`: EDUCATION
* `Q`: HUMAN HEALTH AND SOCIAL WORK ACTIVITIES
* `R`: ARTS, ENTERTAINMENT AND RECREATION
* `S`: OTHER SERVICE ACTIVITIES
* `T`: ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE
* `U`: ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES

Possibles values : `"NONE"`, `"A"`, `"B"`, `"C"`, `"D"`, `"E"`, `"F"`, `"G"`, `"H"`, `"I"`, `"J"`, `"K"`, `"L"`, `"M"`, `"N"`, `"O"`, `"P"`, `"Q"`, `"R"`, `"S"`, `"T"`, `"U"` | * | giphyEnabled optionnel | Boolean | Whether or not giphy feature is enabled for users belonging to this company (possibility to use animated gifs in conversations) | * | website optionnel | String | Company website URL | * | organisationId | String | Optional identifier to indicate the company belongs to an organisation | * | catalogId | String | Id of the catalog of Rainbow offers to which the company is linked. The catalog corresponds to the list of offers the company can subscribe. | * | bpId | String | Optional identifier which links the company to the corresponding Business partner company | * | adminHasRightToUpdateSubscriptions optionnel | Boolean | In the case the company is linked to a Business Partner company, indicates if the `bp_admin` allows the `company_admin` to update the subscriptions of his company (if enable, allowed operations depend of the value of `adminAllowedUpdateSubscriptionsOps`).
Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company. | * | adminAllowedUpdateSubscriptionsOps optionnel | String | In the case the company is linked to a Business Partner company and `adminHasRightToUpdateSubscriptions` is enabled, indicates the update operations for which the `bp_admin` allows the `company_admin` to perform on the subscriptions of his company.

Can only be set by `superadmin` or `bp_admin`/`bp_finance` of the related company.

Possible values:

* `all`: company_admin is allowed to perform all update operations on the subscriptions of his company
* `increase_only`: company_admin is only allowed to increase `maxNumberUsers` on the subscriptions of his company (decrease is forbidden)

Possibles values : `all`, `increase_only` | * | isBP | Boolean | Indicates if the company is a Business partner company

Default value : `false` | * | bpType optionnel | String | Indicates BP Company type

* `IR`: Indirect Reseller,
* `VAD`: Value Added Distributor,
* `DR`: Direct Reseller.

Possibles values : `IR`, `VAD`, `DR` | * | bpBusinessModel optionnel | String | Indicates BP business model | * | bpApplicantNumber optionnel | String | Reference of the Business Partner in ALE Finance tools (SAP) | * | bpCRDid optionnel | String | Reference of the Business Partner in CDR | * | bpHasRightToSell optionnel | Boolean | Indicates if the Business has the right to sell | * | bpHasRightToConnect optionnel | Boolean | When True, the BP can connect CPE equipment of managed companies. So when False, the "equipment" tab should be removed from the admin GUI | * | bpHasRightForBYOT optionnel | Boolean | When True, the BP can create a SIP Hybrid Trunk for its managed companies (means that Bring Your Own Trunk feature is available for the BP). So when False, the "hybrid trunk" tab should be removed from the admin GUI | * | preferredSipLoadBalancerId optionnel | String | This attribute is only for BP and useful only in Rainbow Hub context. It indicates preferred SIP Load Balancer identifier to be used (if any). | * | bpIsContractAccepted optionnel | Boolean | Indicates if the Business has accepted the contract and can sell Rainbow offers | * | bpContractAcceptationInfo optionnel | Object | If the Business has accepted the contract, indicates who accepted the contract, Only visible by `superadmin` and `support`. | * | acceptationDate | Date-Time | Date of contract acceptation by the BP admin | * | bpAdminId | String | User Id of the BP admin who accepted the contract | * | offerType | String | Allowed company offer types

Possibles values : `freemium`, `premium` | * | bpAdminLoginEmail | String | User loginEmail of the BP admin who accepted the contract | * | businessSpecific optionnel | String | When the customer has subscribed to specific business offers, this field is set to the associated specific business (ex: HDS for HealthCare business specific)

Possibles values : `HDS` | * | externalReference optionnel | String | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.

Ordre de grandeur : `0..64` | * | externalReference2 optionnel | String | Free field that BP can use to link their customers to their IS/IT tools
Only applicable by `superadmin` or by `bp_admin`/`bp_finance` on one of his customer companies.

Ordre de grandeur : `0..64` | * | avatarShape optionnel | String | Company's avatar customization

Possibles values : `square`, `circle` | * | allowUsersSelectTheme | Boolean | Allow users of this company to select a theme among the ones available (owned or visible by the company). | * | allowUsersSelectPublicTheme | Boolean | Allow users of this company to select a public theme. | * | selectedTheme optionnel | Object | Set the selected theme(s) for users of the company. | * | light optionnel | String | Set the selected theme light for users of the company. | * | dark optionnel | String | Set the selected theme dark for users of the company. | * | adminCanSetCustomData optionnel | Boolean | Whether or not administrators can set `customData` field for their own company. | * | isLockedByBp optionnel | Boolean | Whether or not BP company has locked themes so that indicates if company admin can manage themes (create/update/delete). | * | superadminComment optionnel | String | Free field that only `superadmin` can see

Ordre de grandeur : `0..256` | * | bpBusinessType optionnel | String\[\] | Business type that can be sold by a BP.

Possibles values : `voice_by_partner`, `voice_by_ale`, `conference`, `default` | * | billingModel optionnel | String | Billing model that can be subscribed for this company.

Possibles values : `monthly`, `prepaid_1y`, `prepaid_3y`, `prepaid_5y` | * | office365Tenant optionnel | String | Office365 tenant configured for this company. | * | office365ScopesGranted optionnel | String\[\] | Scopes granted to Rainbow for usage of Microsoft Office365 APIs.
If no office365Tenant is set or if admin has not granted access of Office365 APIs to Rainbow for the configured office365Tenant, office365ScopesGranted is set to an empty Array.
Otherwise, office365ScopesGranted lists the scopes requested by Rainbow to use Office365 APIs for the configured office365Tenant. This field can be used to determine if the admin must re-authenticate to Microsoft Office365 in the case new scopes are requested for Rainbow application (scopes requested for the current version of office365-portal are listed in API GET /api/rainbow/office365/v1.0/consent).

Possibles values : `directory`, `calendar` | * | mobilePermanentConnectionMode | Boolean | deactivate push mode for mobile devices.
When we can't rely on Internet and Google FCM services to wake-up the app or notify the app, we can fall back to a direct XMPP connection.
For customers using Samsung devices with Google Play services, we must have an option on admin side to set this permanent connection mode, so that mobile apps can rely on this parameter. This option will be applied for the whole company. | * | fileSharingCustomisation | String | Activate/Deactivate file sharing capability per company
Define if the company can use the file sharing service then, allowed to download and share file.
FileSharingCustomisation can be:

* `enabled`: Each user of the company can use the file sharing service, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can use the file sharing service, except when his own capability is set to 'enabled'. When one user of the company has the capability 'fileSharingCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | userTitleNameCustomisation | String | Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
Define if the company allows his users to change some profile data.
userTitleNameCustomisation can be:

* `enabled`: Each user of the company can change some profile data, except when his own capability is set to 'disabled'.
* `disabled`: No user of the company can change some profile data, except when his own capability is set to 'enabled'. When one user of the company has the capability 'userTitleNameCustomisation' set to 'same\_than\_company', his capability follow the company setting. | * | softphoneOnlyCustomisation | String | Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services and but to focus to telephony services.
Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
softphoneOnlyCustomisation can be:

* `enabled`: The user switch to a softphone mode only.
* `disabled`: The user can use telephony services, chat, bubbles, channels meeting services and so on. | * | useRoomCustomisation | String | Activate/Deactivate the capability for a user to use bubbles.
Define if a user can create bubbles or participate in bubbles (chat and web conference).
useRoomCustomisation can be:

* `enabled`: Each user of the company can use bubbles.
* `disabled`: No user of the company can use bubbles. | * | phoneMeetingCustomisation | String | Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
Define if a user has the right to join phone meetings.
phoneMeetingCustomisation can be:

* `enabled`: Each user of the company can join phone meetings.
* `disabled`: No user of the company can join phone meetings. | * | useChannelCustomisation | String | Activate/Deactivate the capability for a user to use a channel.
Define if a user has the right to create channels or be a member of channels.
useChannelCustomisation can be:

* `enabled`: Each user of the company can use some channels.
* `disabled`: No user of the company can use some channel. | * | useScreenSharingCustomisation | String | Activate/Deactivate the capability for a user to share a screen.
Define if a user has the right to share his screen.
useScreenSharingCustomisation can be:

* `enabled`: Each user of the company can share his screen.
* `disabled`: No user of the company can share his screen. | * | useWebRTCVideoCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC video conversation.
* `disabled`: No user of the company can switch to a Web RTC video conversation. | * | useWebRTCAudioCustomisation | String | Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
useWebRTCVideoCustomisation can be:

* `enabled`: Each user of the company can switch to a Web RTC audio conversation.
* `disabled`: No user of the company can switch to a Web RTC audio conversation. | * | instantMessagesCustomisation | String | Activate/Deactivate the capability for a user to use instant messages.
Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
instantMessagesCustomisation can be:

* `enabled`: Each user of the company can use instant messages.
* `disabled`: No user of the company can use instant messages. | * | userProfileCustomisation | String | Activate/Deactivate the capability for a user to modify his profile.
Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
userProfileCustomisation can be:

* `enabled`: Each user of the company can modify his profile.
* `disabled`: No user of the company can modify his profile. | * | fileStorageCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow file storage.
Define if a user has the right to upload/download/copy or share documents.
fileStorageCustomisation can be:

* `enabled`: Each user of the company can manage and share files.
* `disabled`: No user of the company can manage and share files. | * | overridePresenceCustomisation | String | Activate/Deactivate the capability for a user to change manually his presence.
Define if a user has the right to change his presence manually or only use automatic states.
overridePresenceCustomisation can be:

* `enabled`: Each user of the company can change his presence.
* `disabled`: No user of the company can change his presence. | * | alertNotificationReception | String | Activate/Deactivate the capability for a user to receive alert notification.
Define if a user has the right to receive alert notification
alertNotificationReception can be:

* `enabled`: Each user of the company can receive alert notification.
* `disabled`: No user of the company can receive alert notification. | * | alertNotificationSending | String | Activate/Deactivate the capability for a user to send alert notification.
Define if a user has the right to send alert notification
alertNotificationSending can be:

* `enabled`: Each user of the company can send alert notification.
* `disabled`: No user of the company can send alert notification. | * | changeTelephonyCustomisation | String | Activate/Deactivate the ability for a user to modify some telephony settings.
Define if a user has the right to modify telephony settings like forward activation ....
changeTelephonyCustomisation can be:

* `enabled`: The user can modify telephony settings.
* `disabled`: The user can't modify telephony settings. | * | changeSettingsCustomisation | String | Activate/Deactivate the ability for a user to change all client general settings.
Define if a user has the right to change his client general settings.
changeSettingsCustomisation can be:

* `enabled`: The user can change all client general settings.
* `disabled`: The user can't change any client general setting. recordingConversationCustomisation Activate/Deactivate the capability for a user to record a conversation.
Define if a user has the right to record a conversation (for P2P and multi-party calls).
recordingConversationCustomisation can be:
* `enabled`: The user can record a peer to peer or a multi-party call.
* `disabled`: The user can't record a peer to peer or a multi-party call. | * | useGifCustomisation | String | Activate/Deactivate the ability for a user to Use GIFs in conversations.
Define if a user has the is allowed to send animated GIFs in conversations
useGifCustomisation can be:

* `enabled`: The user can send animated GIFs in conversations.
* `disabled`: The user can't send animated GIFs in conversations. | * | useDialOutCustomisation | String | Activate/Deactivate the capability for a user to use dial out in phone meetings.
Define if a user is allowed to be called by the Rainbow conference bridge.
useDialOutCustomisation can be:

* `enabled`: The user can be called by the Rainbow conference bridge.
* `disabled`: The user can't be called by the Rainbow conference bridge. | * | fileCopyCustomisation | String | Activate/Deactivate the capability for a user to copy files
Define if one or all users of a company is allowed to copy any file he receives in his personal cloud space.
fileCopyCustomisation can be:

* `enabled`: The user can make a copy of a file to his personal cloud space.
* `disabled`: The user can't make a copy of a file to his personal cloud space. | * | fileTransferCustomisation | String | Activate/Deactivate the ability for a user to transfer files.
Define if one or all users of a company has the right to copy a file from a conversation then share it inside another conversation.
fileTransferCustomisation can be:

* `enabled`: The user can transfer a file doesn't belong to him.
* `disabled`: The user can't transfer a file doesn't belong to him. | * | forbidFileOwnerChangeCustomisation | String | Activate/Deactivate the ability for a user to loose the ownership on one file.
Define if one or all users can drop the ownership of a file to another Rainbow user of the same company
forbidFileOwnerChangeCustomisation can be:

* `enabled`: The user can't give the ownership of his file.
* `disabled`: The user can give the ownership of his file. | * | readReceiptsCustomisation | String | Activate/Deactivate the capability for a user to allow a sender to check if a chat message is read.
Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
This right is used by Ucaas or Cpaas application to show either or not a message is acknowledged. No check is done on backend side.
readReceiptsCustomisation can be:

* `enabled`: Each user of the company allow the sender to check if an IM is read.
* `disabled`: No user of the company allow the sender to check if an IM is read. | * | useSpeakingTimeStatistics | String | Activate/Deactivate the ability for a user to see speaking time statistics..
Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
useSpeakingTimeStatistics can be:

* `enabled`: Each user of the company can use meeting speaking time statistics.
* `disabled`: No user of the company can use meeting speaking time statistics. | * | eLearningCustomisation | String | Activate/Deactivate the capability for a user to participate on a E-learning training.
Defines if a user can participate on an E-learning training.
eLearningCustomisation can be:

* `enabled`: The user can participate on an E-learning training.
* `disabled`: The user can't participate on an E-learning training. | * | eLearningGamificationCustomisation | String | Activate/Deactivate the capability for a user to earn badges for E-learning progress.
Defines if a user can earn badges for E-learning progress.
eLearningGamificationCustomisation can be:

* `enabled`: The user can earn badges for E-learning progress.
* `disabled`: The user can't earn badges for E-learning progress. | * | meetingRecordingCustomisation | String | Activate/Deactivate the capability for a user to record a meeting.
Defines if a user can record a meeting.
meetingRecordingCustomisation can be:

* `enabled`: The user can record a meeting.
* `disabled`: The user can't record a meeting. | * | useOtherPhoneMode | String | Activate/Deactivate the capability for a user to use the other phone mode.
Defines if a user can use the other phone mode.
useOtherPhoneMode can be:

* `enabled`: The user can use the other phone mode.
* `disabled`: The user can't use the other phone mode. | * | useComputerMode | String | Activate/Deactivate the capability for a user to use the computer mode.
Defines if a user can use the computer mode.
useComputerMode can be:

* `enabled`: The user can use the computer mode.
* `disabled`: The user can't use the computer mode. | * | useSoftPhoneMode | String | Activate/Deactivate the capability for a user to use the softphone mode.
Defines if a user can use the softphone mode.
useSoftPhoneMode can be:

* `enabled`: The user can use the softphone mode.
* `disabled`: The user can't use the softphone mode. | * | imPopupDuration | Number | Defines the IM popup duration. | * | canAccessWhatsNew | String | Activate/Deactivate the capability for a user to access to what's new.
Defines if a user can access to what's new.
canAccessWhatsNew can be:

* `enabled`: The user can access to what's new.
* `disabled`: The user can't access to what's new. | * | canAccessFaqCustomisation | String | Activate/Deactivate the capability for a user to access to the FAQ.
Defines if a user can access to the FAQ.
canAccessFaqCustomisation can be:

* `enabled`: The user can access to the FAQ.
* `disabled`: The user can't access to the FAQ. | * | canAccessHelpCenterCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow help center.
Defines if a user can access to Rainbow help center.
canAccesHelpCenterCustomisation can be:

* `enabled`: The user can access to Rainbow help center.
* `disabled`: The user can't access to Rainbow help center. | * | canAccessStoreCustomisation | String | Activate/Deactivate the capability for a user to access to Rainbow store.
Defines if a user can access to Rainbow store.
canAccesStoreCustomisation can be:

* `enabled`: The user can access to Rainbow store.
* `disabled`: The user can't access to Rainbow store. | * | canDownloadAppCustomisation | String | Activate/Deactivate the capability for a user to download Rainbow application.
Defines if a user can download Rainbow application.
canDownloadAppCustomisation can be:

* `enabled`: The user can download Rainbow application.
* `disabled`: The user can't download Rainbow application. | * | canCallParticipantPbxNumberCustomisation | String | Select the capability for a user to call participant via a PBX number.
Defines if a user can call participant via a PBX number.
canCallParticipantPbxNumberCustomisation can be:

* `enabled`: The user can call participant with all number.
* `disabled`: The user can't call participant.
* `internal`: The user can call participant only with internal number.
* `national`: The user can call participant with national number. | * | defaultLicenseGroup | String | Group of license to assign to user when finalizing his account (e.g. Enterprise, Business ...) | * | defaultOptionsGroups | String\[\] | List of options to assign to user when finalizing his account (e.g. Alert ...) | * | selectedThemeCustomers optionnel | Object | Set the selected theme(s) for customers of this BP company.
This attribute only applies for BP companies. | * | light optionnel | String | Set the selected theme light for customers of this BP company. | * | dark optionnel | String | Set the selected theme dark for customers of this BP company. | * | ddiReadOnly optionnel | Boolean | Indicates if admin of IR company is allowed to create or delete a DDI. Used only on IR companies. | * | locked optionnel | Boolean | Allow to lock selected theme for customers. If true, customers won't be able to manage themes (create/update/delete). | * | cloudPbxVoicemailToEmail optionnel | Boolean | Cloudpbx email notification type when receiving a voicemail | * | allowPhoneNumbersVisibility optionnel | Boolean | Indicates if Phone numbers should be visible or not when generating Voice CDR files. Applies only on BP companies. | * | cloudPbxRecordingInboundOnly optionnel | Boolean | When CloudPbx recording is set, both inbound and outbound calls will be recorded for the selected users. If cloudPbxRecordingInboundOnly is set to true, only inbound calls will be recorded | * | allowDeviceFirmwareSelection optionnel | Boolean | Superadmin allows admins of the company to select a given firmware for its cloudpbx devices. | * | businessData optionnel | Object | Set the businessData company. | * | region optionnel | String | Set the region of the company. | * | cluster optionnel | String | Set the cluster of the company. | * | area optionnel | String | Set the area of the company. | * | allowTeamsToDesktopSso optionnel | Boolean | Superadmin allows if Teams add-in uses sso to login in desktop app for all company users

Default value : `true` | * | country optionnel | String | Set the business country of the company. | * | rainbowStorageAllowedAllUsers | Boolean | In an environment where a company uses the Rainbow file server or an External file server, an administator can defines storage access rights at company level, and at user level.
So he has to:

* Enable/Disable external storage for a company (see `useExternalStorage`) and configure required parameters as URLs, type, name, description (see company/settings/filestorage section) and if all company users have access to this storage by default (see `externalStorageAllowedAllUsers`).
If this storage is enabled by default, all users following the company policy will have access to the storage.
* Enable/Disable Rainbow storage for a company (see `useRainbowStorage`), and if all company users have access to this storage by default (see `rainbowStorageAllowedAllUsers`).
* Select which storage is the main one used to store photo taken from Rainbow Apps (see `mainStorage`) | * | externalStorageAllowedAllUsers | Boolean | Refer to rainbowStorageAllowedAllUsers. | * | useRainbowStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useRainbowStorage' allows a user to be assigned to a file server.

* `enabled`: Assign all users to the default Rainbow File Storage.
* `disabled`: Unassign all users from the default Rainbow File Storage. | * | useExternalStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'useExternalStorage' allows a user to be assigned to a file server.

* `enabled`: Assign all users to the External File Storage.
* `disabled`: Unassign all users from the External File Storage. | * | mainStorage | String | In an environment where a company uses the Rainbow file server and an External file server at the same time, 'mainStorage' allows to decide which file server must be used when a user is assigned to both file servers.

* `Rainbow Storage`: Assigment to the Rainbow file server.
* `External Storage`: Assigment to the External file server. | * | customData optionnel | Object | Company's custom data.
Object with free keys/values.
It is up to the client to manage the company's customData (new customData provided overwrite the existing one).

Restrictions on customData Object:

* max 10 keys,
* max key length: 64 characters,
* max value length: 512 characters. | * | adminServiceNotificationsLevel | String | Level of service notification that admin should see | * * * example of result : * ```json * { * "id": "569ce8c8f9336c471b98eda1", * "creationDate": "2016-01-18T13:29:44.498Z", * "statusUpdatedDate": "2016-01-18T13:29:44.497Z", * "name": "AL-ENTERPRISE", * "street": "Sesame street", * "city": "Brooklyn", * "postalCode": "123456", * "country": "USA", * "state": "NY", * "status": "active", * "visibility": "private", * "visibleBy": [ * "56fabb217d8d3ffa3d0223f8", * "56d6f00441255dd54b5b61ae" * ], * "adminEmail": "admin@company.com", * "supportEmail": "support@company.com", * "companyContactId": "588a0d902d9e7f983b8f7661", * "autoAcceptUserInvitations": true, * "userSelfRegisterEnabled": true, * "userSelfRegisterAllowedDomains": [ * "@alcatel-lucent.com", * "@al-enterprise.com", * "@al-enterprise.fr", * "@al-enterprise.de" * ], * "slogan": "The slogan of my company", * "description": "A free string that describes my company", * "size" : "1001-5000 employees", * "website": "http:\\/\\/enterprise.alcatel-lucent.com", * "giphyEnabled": false, * "organisationId": "57cd58edd341df5812bbcb71", * "catalogId": "5979f63bae6056aadd1a8f17", * "bpId": null, * "externalReference": null, * "offerType": "premium", * "avatarShape": "circle", * "allowUsersSelectTheme": true, * "allowUsersSelectPublicTheme": true, * "mobilePermanentConnectionMode": false, * "customData": {}, * "office365ScopesGranted": [], * "fileSharingCustomisation": "enabled", * "userTitleNameCustomisation": "enabled", * "softphoneOnlyCustomisation": "disabled", * "useRoomCustomisation": "enabled", * "phoneMeetingCustomisation": "enabled", * "useChannelCustomisation": "enabled", * "useScreenSharingCustomisation": "enabled", * "useWebRTCVideoCustomisation": "enabled", * "useWebRTCAudioCustomisation": "enabled", * "instantMessagesCustomisation": "enabled", * "userProfileCustomisation": "enabled", * "fileStorageCustomisation": "enabled", * "overridePresenceCustomisation": "enabled", * "changeTelephonyCustomisation": "enabled", * "changeSettingsCustomisation": "enabled", * "recordingConversationCustomisation": "enabled", * "useGifCustomisation": "enabled", * "useDialOutCustomisation": "enabled", * "eLearningCustomisation": "enabled", * "eLearningGamificationCustomisation": "enabled", * "meetingRecordingCustomisation": "enabled", * "useOtherPhoneMode": "enabled", * "useComputerMode": "enabled", * "useSoftPhoneMode": "enabled", * "imPopupDuration": 3, * "canAccessWhatsNew": "enabled", * "canAccesFaqCustomisation": "enabled", * "canAccessHelpCenterCustomisation": "enabled", * "canAccessStoreCustomisation": "enabled", * "canDownloadAppCustomisation": "enabled", * "canCallParticipantPbxNumberCustomisation": "enabled", * "defaultLicenseGroup": "Enterprise", * "defaultOptionsGroups": ["Alert"], * "selectedTheme": { * "light": null, * "dark": "5ea304e4359c0e6815fc8b57", * "isLockedByBp": true * }, * "businessSpecific": "UGAP", * "allowTeamsToDesktopSso": true, * "externalStorageAllowedAllUsers" : false, * "mainStorage" : "Rainbow Storage", * "rainbowStorageAllowedAllUsers" : true, * "useExternalStorage" : "disabled", * "useRainbowStorage" : "enabled", * "businessData": { * "region": "EMEA", * "cluster": "EU SOUTH", * "area": "BELUX", * "country": "BEL" * }, * "useRainbowStorage" : "enabled", * "adminServiceNotificationsLevel": "high" * } * ``` * */ updateCompanyByObj(companyId: string, selectedThemeObj: boolean, companyInfoToUpdate: { name: string; country: string; street: string; city: string; state: string; postalCode: string; offerType: string; currency: string; status: string; visibility: string; visibleBy: string[]; adminEmail: string; supportEmail: string; supportUrlFAQ: string; companyContactId: string; disableCCareAdminAccess: boolean; disableCCareAdminAccessCustomers: boolean; disableCCareAdminAccessResellers: boolean; autoAcceptUserInvitations: boolean; autoAddToUserNetwork: boolean; contentPolicyLifeTime: boolean; documentGracePeriod: boolean; userSelfRegisterAllowedDomains: string[]; slogan: string; description: string; size: string; economicActivityClassification: string; website: string; giphyEnabled: boolean; catalogId: string; adminCanSetCustomData: boolean; customData: any; bpId: string; adminHasRightToUpdateSubscriptions: boolean; adminAllowedUpdateSubscriptionsOps: string; isBP: boolean; bpType: string; bpBusinessModel: string; bpApplicantNumber: string; bpCRDid: string; bpHasRightToSell: boolean; bpHasRightToConnect: boolean; bpHasRightForBYOT: boolean; preferredSipLoadBalancerId: string; bpIsContractAccepted: boolean; externalReference: string; externalReference2: string; salesforceAccountId: string; avatarShape: string; isCentrex: boolean; companyCallNumber: string; superadminComment: string; bpBusinessType: string[]; billingModel: string; allowUsersSelectTheme: boolean; allowUsersSelectPublicTheme: boolean; selectedTheme: any; mobilePermanentConnectionMode: boolean; alertNotificationReception: string; alertNotificationSending: string; useDialOutCustomisation: string; allowDeviceFirmwareSelection: boolean; selectedDeviceFirmware: string; cloudPbxVoicemailToEmail: string; businessData: any; defaultLicenseGroup: string; defaultOptionsGroups: string[]; selectedThemeCustomers: any; allowTeamsToDesktopSso: boolean; cloudPbxRecordingInboundOnly: boolean; supervisionGroupMaxSize: number; supervisionGroupMaxNumber: number; supervisionGroupMaxUsers: number; timezone: string; sendPrepaidSubscriptionsNotification: boolean; ddiReadOnly: boolean; allowPhoneNumbersVisibility: boolean; csEmailList: string[]; seEmailList: string[]; csmEmailList: string[]; kamEmailList: string[]; businessSpecific?: string; adminServiceNotificationsLevel: string; }): Promise; /** * @public * @nodered true * @method getAllUsers * @instance * @description * Get all users for a given admin
* @async * @category Companies and users management * @param {string} format="small" Allows to retrieve more or less user details in response. * small: id, loginEmail, firstName, lastName, displayName, companyId, companyName, isTerminated * medium: id, loginEmail, firstName, lastName, displayName, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode * full: all user fields * @param {number} offset=0 Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. * @param {number} limit=100 Allow to specify the number of users to retrieve (default=100). * @param {string} sortField="loginEmail" Sort user list based on the given field (default="loginEmail"). * @return {Promise} * @fulfil {Array} - Array of Json object containing users or an error object depending on the result * @category async */ getAllUsers(format?: string, offset?: number, limit?: number, sortField?: string): Promise; /** * @public * @nodered true * @method getAllUsersByFilter * @instance * @category Companies and users management * @description * Get a list of users by filters
* @async * @return {Promise} * @fulfil {any} - Found users or null or an error object depending on the result * @param {number} phoneNumbers Allows to filter users list on the given number(s) on their phoneNumbers on the following fields (exact match):
* * shortNumber * * internalNumber * * number * * numberE164 * @param {number} phoneNumber Allows to filter users list on the given number(s) on field phoneNumbers.internalNumber (number starts with requested string). * @param {string} searchEmail Allows to filter users list on the loginEmail field using the word provided in this option. * @param {string} companyId Allows to filter users list on the companyIds provided in this option. * @param {string} roles="user" Allows to filter users list on the role(s) provided in this option. Default value is "user". * @param {string} excludeRoles Allows to exclude users having the role(s) provided in this option. * @param {string} tags Allows to filter users list on the tag(s) provided in this option. * @param {string} departments Allows to filter users list on the department(s) provided in this option. * @param {string} isTerminated="false" Allows to filter users list on the status 'isTerminated'. Default value is "false" * @param {string} isActivated Allows to filter users list for users which have logged in at least once ("true") or never ("false"). * @param {string} fileSharingCustomisation Allows to filter users list on fileSharing feature restriction (enabled, disabled, same_than_company) * @param {string} userTitleNameCustomisation Allows to filter users list on user's profile update restriction (enabled, disabled, same_than_company) * @param {string} softphoneOnlyCustomisation Allows to filter users list on use softphone part of the UCaas application restriction (enabled, disabled, same_than_company) * @param {string} useRoomCustomisation Allows to filter users list on use room (bubble) restriction (enabled, disabled, same_than_company) * @param {string} phoneMeetingCustomisation Allows to filter users list on can join a PSTN conference restriction (enabled, disabled, same_than_company) * @param {string} useChannelCustomisation Allows to filter users list on use channels restriction (enabled, disabled, same_than_company) * @param {string} useScreenSharingCustomisation Allows to filter users list on sharing screen restriction (enabled, disabled, same_than_company) * @param {string} useWebRTCVideoCustomisation Allows to filter users list on use screen sharing restriction (enabled, disabled, same_than_company) * @param {string} useWebRTCAudioCustomisation Allows to filter users list on use Web RTC audio restriction (enabled, disabled, same_than_company) * @param {string} instantMessagesCustomisation Allows to filter users list on use Instant Messages restriction (enabled, disabled, same_than_company) * @param {string} userProfileCustomisation Allows to filter users list on modify a profile restriction (enabled, disabled, same_than_company) * @param {string} fileStorageCustomisation Allows to filter users list on use Rainbow file storage restriction (enabled, disabled, same_than_company) * @param {string} overridePresenceCustomisation Allows to filter users by the ability to modify manually presence state (enabled, disabled, same_than_company) * @param {string} alert notification] Allows to filter users by the ability to receive alert notification(enabled, disabled, same_than_company) * @param {string} changeTelephonyCustomisation Allows to filter users by the ability to modify telephony settings (enabled, disabled, same_than_company) * @param {string} changeSettingsCustomisation Allows to filter users by the ability to change client general setting (enabled, disabled, same_than_company) * @param {string} recordingConversationCustomisation Allows to filter users by the ability to record conversation (enabled, disabled, same_than_company) * @param {string} useGifCustomisation Allows to filter users by the ability to use GIFs in conversations (enabled, disabled, same_than_company) * @param {string} useDialOutCustomisation Allows to filter users by the ability to be called by the Rainbow conference bridge. (enabled, disabled, same_than_company) * @param {string} fileCopyCustomisation Allows to filter users by the ability to copy any file he receives in his personal cloud space. * @param {string} fileTransferCustomisation Allows to filter users by the ability to copy a file from a conversation then share it inside another conversation. * @param {string} forbidFileOwnerChangeCustomisation Allows to filter users by the ability to loose the ownership on one file. * @param {string} readReceiptsCustomisation Allows to filter users by the ability to authorize a sender to check if a chat message is read. * @param {string} useSpeakingTimeStatistics Allows to filter users by the ability to see speaking time statistics about a WebRTC meeting. * @param {string} selectedAppCustomisationTemplate Allows to filter users by the last application customisation template applied. * @param {string} format="small" Allows to retrieve more or less user details in response.
* small: id, loginEmail, firstName, lastName, displayName, companyId, companyName, isTerminated * medium: id, loginEmail, firstName, lastName, displayName, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode
* full: all user fields
* Default value : small * Possible values : small, medium, full * @param {string} limit=100 Allow to specify the number of users to retrieve. Default value 100. * @param {string} offset Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="displayName" Sort user list based on the given field. Default value : displayName * @param {string} sortOrder Specify order when sorting user list. Default value : 1. Possible values : -1, 1 * @param {string} displayName Allows to filter users list on the given keyword(s) on field displayName. * @param {boolean} useEmails used with displayName, allows to filter users list on the given keyword(s) on field displayName for loginEmails too. * @param {string} companyName Allows to filter users list on the given keyword(s) on field companyName. * @param {string} loginEmail Allows to filter users list on the loginEmails provided in this option. * @param {string} email Allows to filter users list on the emails provided in this option. * @param {string} visibility Allows to filter users list on the visibility(ies) provided in this option. Possible values : same_than_company, public, private, closed, isolated, none * @param {string} organisationId Allows to filter users list on the organisationIds provided in this option. Option is reserved for superAdmin or admin allowed to manage the given organisationId. * @param {string} siteId Allows to filter users list on the siteIds provided in this option. Option is reserved for superAdmin or admin allowed to manage the given siteIds. * @param {string} jid_im Allows to filter users list on the jid_ims provided in this option. * @param {string} jid_tel Allows to filter users list on the jid_tels provided in this option. */ getAllUsersByFilter(phoneNumbers: number, phoneNumber: number, searchEmail: string, companyId: string, roles: string, excludeRoles: string, tags: string, departments: string, isTerminated: string, isActivated: string, fileSharingCustomisation: string, userTitleNameCustomisation: string, softphoneOnlyCustomisation: string, useRoomCustomisation: string, phoneMeetingCustomisation: string, useChannelCustomisation: string, useScreenSharingCustomisation: string, useWebRTCVideoCustomisation: string, useWebRTCAudioCustomisation: string, instantMessagesCustomisation: string, userProfileCustomisation: string, fileStorageCustomisation: string, overridePresenceCustomisation: string, alert: string, changeTelephonyCustomisation: string, changeSettingsCustomisation: string, recordingConversationCustomisation: string, useGifCustomisation: string, useDialOutCustomisation: string, fileCopyCustomisation: string, fileTransferCustomisation: string, forbidFileOwnerChangeCustomisation: string, readReceiptsCustomisation: string, useSpeakingTimeStatistics: string, selectedAppCustomisationTemplate: string, format: string, limit: string, offset: string, sortField: string, sortOrder: string, displayName: string, useEmails: boolean, companyName: string, loginEmail: string, email: string, visibility: string, organisationId: string, siteId: string, jid_im: string, jid_tel: string): Promise; /** * @public * @nodered true * @method getAllUsersByCompanyId * @instance * @description * Get all users for a given admin in a company
* @async * @category Companies and users management * @param {string} format="small" Allows to retrieve more or less user details in response. * small: id, loginEmail, firstName, lastName, displayName, companyId, companyName, isTerminated * medium: id, loginEmail, firstName, lastName, displayName, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode * full: all user fields * @param {number} offset=0 Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. * @param {number} limit=100 Allow to specify the number of users to retrieve (default=100). * @param {string} sortField="loginEmail" Sort user list based on the given field (default="loginEmail"). * @param {string} companyId the id company the users are in. If not provided, then the companyId of the connected user is used. }); * @return {Promise} * @fulfil {Array} - Array of Json object containing users or an error object depending on the result * @category async */ getAllUsersByCompanyId(format: string, offset: number, limit: number, sortField: string, companyId: string): Promise; /** * @public * @nodered true * @method getAllUsersBySearchEmailByCompanyId * @instance * @description * Get all users for a given admin in a company by a search of string in email
* @async * @category Companies and users management * @param {string} format="small" Allows to retrieve more or less user details in response. * small: id, loginEmail, firstName, lastName, displayName, companyId, companyName, isTerminated * medium: id, loginEmail, firstName, lastName, displayName, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode * full: all user fields * @param {number} offset=0 Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. * @param {number} limit=100 Allow to specify the number of users to retrieve (default=100). * @param {string} sortField="loginEmail" Sort user list based on the given field (default="loginEmail"). * @param {string} companyId the id company the users are in. * @param {string} searchEmail the string to to filter users list on the loginEmail field using the word provided in this option.. * @return {Promise} * @fulfil {Array} - Array of Json object containing users or an error object depending on the result * @category async */ getAllUsersBySearchEmailByCompanyId(format: string, offset: number, limit: number, sortField: string, companyId: string, searchEmail: string): Promise; /** * @public * @nodered true * @method getContactInfos * @instance * @description * Get informations about a user
* @param {string} userId The id of the user * @async * @category Companies and users management * @return {Promise} * @fulfil {Object} - Json object containing informations or an error object depending on the result * @category async */ getContactInfos(userId: string): Promise; /** * @public * @nodered true * @method updateContactInfos * @instance * @description * Set informations about a user
* @param {string} userId The id of the user * @param {Object} infos The infos of the user :
* {string{3..255}} [infos.loginEmail] User email address (used for login).
*
Must be unique (409 error is returned if a user already exists with the same email address).
* {string{8..64}} [infos.password] User password.
*
Rules: more than 8 characters, at least 1 capital letter, 1 number, 1 special character.
* {string{1..255}} [infos.firstName] User first name
* {string{1..255}} [infos.lastName] User last name
* {string{1..255}} [infos.nickName] User nickName
* {string{1..40}} [infos.title] User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...)
* {string{1..255}} [infos.jobTitle] User job title
* {string[]{1..64}} [infos.tags] An Array of free tags associated to the user.
* A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters.
* `tags` can only be set by users who have administrator rights on the user. The user can't modify the tags.
* The tags are visible by the user and all users belonging to his organisation/company, and can be used with
* the search API to search the user based on his tags.
* {Object[]} [infos.emails] Array of user emails addresses objects
* {string{3..255}} [infos.emails.email] User email address
* {string=home,work,other} [infos.emails.type] User email type
* {Object[]} [infos.phoneNumbers] Array of user phone numbers objects
*
*
Note: For each provided number, the server tries to compute the associated E.164 number (numberE164 field) using provided PhoneNumber country if available, user country otherwise.
* If numberE164 can't be computed, an error 400 is returned (ex: wrong phone number, phone number not matching country code, ...)
* {string{1..32}} [infos.phoneNumbers.number] User phone number (as entered by user)
* {string{3}} [infos.phoneNumbers.country] Phone number country (ISO 3166-1 alpha3 format). Used to compute numberE164 field from number field.
*
*
If not provided, user country is used by default.
* {string=home,work,other} phoneNumbers.type Phone number type
* {string=landline,mobile,fax,other} phoneNumbers.deviceType Phone number device type
* {string{3}} [infos.country] User country (ISO 3166-1 alpha3 format)
* {string=null,"AA","AE","AP","AK","AL","AR","AZ","CA","CO","CT","DC","DE","FL","GA","GU","HI","IA","ID","IL","IN","KS","KY","LA","MA","MD","ME","MI","MN","MO","MS","MT","NC","ND","NE","NH","NJ","NM","NV","NY","OH","OK","OR","PA","PR","RI","SC","SD","TN","TX","UT","VA","VI","VT","WA","WI","WV","WY","AB","BC","MB","NB","NL","NS","NT","NU","ON","PE","QC","SK","YT"} [infos.state] When country is 'USA' or 'CAN', a state can be defined. Else it is not managed.
*
USA states code list:
*
  • AA:"Armed Forces America",
    *
  • AE:"Armed Forces",
    *
  • AP:"Armed Forces Pacific",
    *
  • AK:"Alaska",
    *
  • AL:"Alabama",
    *
  • AR:"Arkansas",
    *
  • AZ:"Arizona",
    *
  • CA:"California",
    *
  • CO:"Colorado",
    *
  • CT:"Connecticut",
    *
  • DC:"Washington DC",
    *
  • DE:"Delaware",
    *
  • FL:"Florida",
    *
  • GA:"Georgia",
    *
  • GU:"Guam",
    *
  • HI:"Hawaii",
    *
  • IA:"Iowa",
    *
  • ID:"Idaho",
    *
  • IL:"Illinois",
    *
  • IN:"Indiana",
    *
  • KS:"Kansas",
    *
  • KY:"Kentucky",
    *
  • LA:"Louisiana",
    *
  • MA:"Massachusetts",
    *
  • MD:"Maryland",
    *
  • ME:"Maine",
    *
  • MI:"Michigan",
    *
  • MN:"Minnesota",
    *
  • MO:"Missouri",
    *
  • MS:"Mississippi",
    *
  • MT:"Montana",
    *
  • NC:"North Carolina",
    *
  • ND:"Northmo Dakota",
    *
  • NE:"Nebraska",
    *
  • NH:"New Hampshire",
    *
  • NJ:"New Jersey",
    *
  • NM:"New Mexico",
    *
  • NV:"Nevada",
    *
  • NY:"New York",
    *
  • OH:"Ohio",
    *
  • OK:"Oklahoma",
    *
  • OR:"Oregon",
    *
  • PA:"Pennsylvania",
    *
  • PR:"Puerto Rico",
    *
  • RI:"Rhode Island",
    *
  • SC:"South Carolina",
    *
  • SD:"South Dakota",
    *
  • TN:"Tennessee",
    *
  • TX:"Texas",
    *
  • UT:"Utah",
    *
  • VA:"Virginia",
    *
  • VI:"Virgin Islands",
    *
  • VT:"Vermont",
    *
  • WA:"Washington",
    *
  • WI:"Wisconsin",
    *
  • WV:"West Virginia",
    *
  • WY:"Wyoming"
    *
    Canada states code list:
    *
  • AB: "Alberta",
    *
  • BC: "British Columbia",
    *
  • MB: "Manitoba",
    *
  • NB: "New Brunswick",
    *
  • NL: "Newfoundland and Labrador",
    *
  • NS: "Nova Scotia",
    *
  • NT: "Northwest Territories",
    *
  • NU: "Nunavut",
    *
  • ON: "Ontario",
    *
  • PE: "Prince Edward Island",
    *
  • QC: "Quebec",
    *
  • SK: "Saskatchewan",
    *
  • YT: "Yukon"
    * {string="/^([a-z]{2})(?:(?:(-)[A-Z]{2}))?$/"} [infos.language] User language
    *
    *
    Language format is composed of locale using format ISO 639-1, with optionally the regional variation using ISO 3166‑1 alpha-2 (separated by hyphen).
    *
    Locale part is in lowercase, regional part is in uppercase. Examples: en, en-US, fr, fr-FR, fr-CA, es-ES, es-MX, ...
    *
    More information about the format can be found on this link.
    * {string} [infos.timezone] User timezone name
    *
    Allowed values: one of the timezone names defined in IANA tz database
    *
    Timezone name are composed as follow: Area/Location (ex: Europe/Paris, America/New_York,...)
    * {string=free,basic,advanced} [infos.accountType=free] User subscription type
    * {string[]=guest,user,admin,bp_admin,bp_finance,company_support,all_company_channels_admin,public_channels_admin,closed_channels_admin,app_admin,app_support,app_superadmin,directory_admin,support,superadmin} [infos.roles='["user"]'] List of user roles
    *
    *
    The general rule is that a user must have the roles that the wants to assign to someone else.
    *
    Examples:
    *
      *
    • an admin can add or remove the role admin to another user of the company(ies) he manages,
    • *
    • an bp_admin can add or remove the role bp_admin to another user of the company(ies) he manages,
    • *
    • an app_superadmin can add or remove the role app_superadmin to another user...
    • *
    * Here are some explanations regarding the roles available in Rainbow:
    *
      *
    • admin, bp_admin and bp_finance roles are related to company management (and resources linked to companies, such as users, systems, subscriptions, ...).
    • *
    • bp_admin and bp_finance roles can only be set to users of a BP company (company with isBP=true).
    • *
    • app_admin, app_support and app_superadmin roles are related to application management.
    • *
    • all_company_channels_admin, public_channels_admin and closed_channels_admin roles are related to channels management.
    • *
    • Only superadmin can set superadmin and support roles to a user.
    • *
    • A user with admin rights (admin, bp_admin, superadmin) can't change his own roles, except for roles related to channels (all_company_channels_admin, public_channels_admin and closed_channels_admin).
    • *
    * {string=organization_admin,company_admin,site_admin} [infos.adminType] Mandatory if roles array contains admin role: specifies at which entity level the administrator has admin rights in the hierarchy ORGANIZATIONS/COMPANIES/SITES/SYSTEMS
    * {string} [infos.companyId] User company unique identifier (like 569ce8c8f9336c471b98eda1)
    *
    companyName field is automatically filled on server side based on companyId.
    * {boolean} [infos.isActive=true] Is user active
    * {boolean} [infos.isInitialized=false] Is user initialized
    * {string=private,public,closed,isolated,none} [infos.visibility] User visibility
    *
    Define if the user can be searched by users being in other company and if the user can search users being in other companies.
    * - `public`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
    * - `private`: User **can't** be searched by external users / can search external users. User can invite external users / can be invited by external users
    * - `closed`: User **can't** be searched by external users / **can't** search external users. User can invite external users / can be invited by external users
    * - `isolated`: User **can't** be searched by external users / **can't** search external users. User **can't** invite external users / **can't** be invited by external users
    * - `none`: Default value reserved for guest. User **can't** be searched by **any users** (even within the same company) / can search external users. User can invite external users / can be invited by external users
    *
    External users mean 'public user not being in user's company nor user's organisation nor a company visible by user's company.
    * {number} [infos.timeToLive] Duration in second to wait before automatically starting a user deletion from the creation date.
    * Once the timeToLive has been reached, the user won't be usable to use APIs anymore (error 401523). His account may then be deleted from the database at any moment.
    * Value -1 means timeToLive is disable (i.e. user account will not expire).
    * If created user has role guest and no timeToLive is provided, a default value of 172800 seconds is set (48 hours).
    * If created user does not have role guest and no timeToLive is provided, a default value of -1 is set (no expiration).
    * {string=DEFAULT,RAINBOW,SAML} [infos.authenticationType] User authentication type (if not set company default authentication will be used)
    * {string{0..64}} [infos.userInfo1] Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file)
    * {string{0..64}} [infos.userInfo2] 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file)
    * {string} selectedTheme Set the selected theme for the user.
    * {Object} customData User's custom data.
    * key1 string User's custom data key1.
    * key2 string Company's custom data key2.
    * customData can only be created/updated by:
    * the user himself, company_admin or organization_admin of his company, bp_admin and bp_finance of his company, superadmin.
    * Restrictions on customData Object:
    * max 20 keys,
    * max key length: 64 characters, max value length: 512 characters. It is up to the client to manage the user's customData (new customData provided overwrite the existing one).
    * * @async * @return {Promise} * @fulfil {Object} - Json object containing informations or an error object depending on the result * @category Companies and users management */ updateContactInfos(userId: string, infos: any): Promise; /** * @public * @nodered true * @method acceptJoinCompanyInvitation * @instance * @since 2.21.0 * @category Company - Join company invitations * @param {string} invitationId Join company invitation unique identifier. * @async * @description * This API allows to accept a join company invitation received by the user (invitation sent by admin ).
    * To accept the join company invitation, the user must be in default company (may evolve in the future)
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company invitation unique Id | * | companyId | string | Id of the company for which the join company invitation is | * | companyName | string | Name of the company for which the join company invitation is (not updated if company name change after invitation creation) | * | invitedUserId | string | Unique Id of the Rainbow user invited to join the company (only if invited user already exists in Rainbow) | * | invitedUserLoginEmail | string | Email of the Rainbow user invited to join the company | * | invitingAdminId | string | Inviting company admin unique Rainbow Id | * | invitingAdminLoginEmail | string | Inviting company admin loginEmail | * | invitationDate | Date-Time | Date the join company invitation was created | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedNotificationLanguage | string | Requested notification language (used to re-send email request in that language) | * | status | string | Join company invitation status: one of `pending`, `accepted`, `auto-accepted`, `declined`, `canceled`, `failed` | * | acceptationDate | Date-Time | Date when the join company invitation has been accepted by the user (if applicable) | * | declinationDate | Date-Time | Date when the join company invitation has been declined by the user (if applicable) | * */ acceptJoinCompanyInvitation(invitationId: string): Promise; /** * @public * @nodered true * @method declineJoinCompanyInvitation * @instance * @since 2.21.0 * @category Company - Join company invitations * @param {string} invitationId Join company invitation unique identifier. * @async * @description * This API allows to decline a join company invitation received by the user (invitation sent by admin ).
    * Invitation must be pending (otherwise error 409 is returned).
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company invitation unique Id | * | companyId | string | Id of the company for which the join company invitation is | * | companyName | string | Name of the company for which the join company invitation is (not updated if company name change after invitation creation) | * | invitedUserId | string | Unique Id of the Rainbow user invited to join the company (only if invited user already exists in Rainbow) | * | invitedUserLoginEmail | string | Email of the Rainbow user invited to join the company | * | invitingAdminId | string | Inviting company admin unique Rainbow Id | * | invitingAdminLoginEmail | string | Inviting company admin loginEmail | * | invitationDate | Date-Time | Date the join company invitation was created | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedNotificationLanguage | string | Requested notification language (used to re-send email request in that language) | * | status | string | Join company invitation status: one of `pending`, `accepted`, `auto-accepted`, `declined`, `canceled`, `failed` | * | acceptationDate | Date-Time | Date when the join company invitation has been accepted by the user (if applicable) | * | declinationDate | Date-Time | Date when the join company invitation has been declined by the user (if applicable) | * */ declineJoinCompanyInvitation(invitationId: string): Promise; /** * @public * @nodered true * @method getJoinCompanyInvitation * @instance * @since 2.21.0 * @category Company - Join company invitations * @param {string} invitationId Join company invitation unique identifier. * @async * @description * This API allows to get a join company invitation received by the user using its invitationId (invitation sent by admin ).
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company invitation unique Id | * | companyId | string | Id of the company for which the join company invitation is | * | companyName | string | Name of the company for which the join company invitation is (not updated if company name change after invitation creation) | * | invitedUserId | string | Unique Id of the Rainbow user invited to join the company (only if invited user already exists in Rainbow) | * | invitedUserLoginEmail | string | Email of the Rainbow user invited to join the company | * | invitingAdminId | string | Inviting company admin unique Rainbow Id | * | invitingAdminLoginEmail | string | Inviting company admin loginEmail | * | invitationDate | Date-Time | Date the join company invitation was created | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedNotificationLanguage | string | Requested notification language (used to re-send email request in that language) | * | status | string | Join company invitation status: one of `pending`, `accepted`, `auto-accepted`, `declined`, `canceled`, `failed` | * | acceptationDate | Date-Time | Date when the join company invitation has been accepted by the user (if applicable) | * | declinationDate | Date-Time | Date when the join company invitation has been declined by the user (if applicable) | * */ getJoinCompanyInvitation(invitationId: string): Promise; /** * @public * @nodered true * @method getAllJoinCompanyInvitations * @instance * @since 2.21.0 * @category Company - Join company invitations * @async * @description * This API allows to list all join company invitations received by the user (invitation sent by admin ).
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | List of join company invitation Objects. | * | limit | Number | Number of requested items | * | offset | Number | Requested position of the first item to retrieve | * | total | Number | Total number of items | * | id | string | Join company invitation unique Id | * | companyId | string | Id of the company for which the join company invitation is | * | companyName | string | Name of the company for which the join company invitation is (not updated if company name change after invitation creation) | * | invitedUserId | string | Unique Id of the Rainbow user invited to join the company (only if invited user already exists in Rainbow) | * | invitedUserLoginEmail | string | Email of the Rainbow user invited to join the company | * | invitingAdminId | string | Inviting company admin unique Rainbow Id | * | invitingAdminLoginEmail | string | Inviting company admin loginEmail | * | invitationDate | Date-Time | Date the join company invitation was created | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedNotificationLanguage | string | Requested notification language (used to re-send email request in that language) | * | status | string | Join company invitation status: one of `pending`, `accepted`, `auto-accepted`, `declined`, `canceled`, `failed` | * | acceptationDate | Date-Time | Date when the join company invitation has been accepted by the user (if applicable) | * | declinationDate | Date-Time | Date when the join company invitation has been declined by the user (if applicable) | * * @param {string} sortField="lastNotificationDate" Sort items list based on the given field. Default value : `lastNotificationDate` * @param {string} status List all join company invitations having the provided status(es). Possibles values : `=pending`, `accepted`, `auto-accepted`, `declined`, `canceled`, `failed` * @param {string} format="small" Allows to retrieve more or less invitation details in response. * - `small`: id, companyId, invitedUserId, invitedUserLoginEmail, invitingAdminId, status * - `medium`: id, companyId, companyName, invitedUserId, invitedUserLoginEmail, invitingAdminId, invitingAdminLoginEmail, status, lastNotificationDate, invitingDate, acceptationDate, declinationDate * - `full`: all join company invitation fields * Default value : `small`. Possibles values : `small`, `medium`, `full` * @param {number} limit=100 Allow to specify the number of items to retrieve. Default value : `100` * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : `0` * @param {number} sortOrder=1 Specify order when sorting items list. Default value : `1`. Possibles values : `-1`, `1` */ getAllJoinCompanyInvitations(sortField: string, status: string, format?: string, limit?: number, offset?: number, sortOrder?: number): Promise; /** * @public * @nodered true * @method cancelJoinCompanyRequest * @instance * @since 2.21.0 * @category Company - Join company requests * @async * @description * This API can be used by logged in user to cancel a request to join a company he sent.
    * Request must be pending or declined (otherwise error 409 is returned).
    * Once request has been canceled, administrators won't be able to accept or decline it anymore.
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company request unique Id | * | requestingUserId | string | Requesting user unique Rainbow Id | * | requestingUserLoginEmail | string | Requesting user email | * | requestedCompanyId | string | Unique Id of the company the requesting user wants to join | * | requestedCompanyName | string | Name of the company the requesting user wants to join | * | status | string | Request status: one of `pending`, `accepted`, `declined`, `canceled` | * | requestingDate | Date-Time | Date the request was created | * | requestedNotificationLanguage | string | Requested notification language to use if language of company admin is not defined (used to re-send email request in that language) | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedToCompanyAdmin optionnel | Object | If the request was sent to a company administrator this field is present | * | companyAdminId | string | | * | requestedCompanyInvitationId | string | If the request was sent using a JoinCompanyInvite id, this field is set with this Id | * | companyAdminLoginEmail | string | | * * @param {string} joinCompanyRequestId Join company request unique identifier */ cancelJoinCompanyRequest(joinCompanyRequestId: string): Promise; /** * @public * @nodered true * @method getJoinCompanyRequest * @instance * @since 2.21.0 * @category Company - Join company requests * @async * @description * This API allows to get a join company request sent by the user.
    * This API can only be used by user himself (i.e. userId of logged in user = value of userId parameter in URL).
    * User must be the one who sent the request (requestingUserId).
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company request unique Id | * | requestingUserId | string | Requesting user unique Rainbow Id | * | requestingUserLoginEmail | string | Requesting user email | * | requestedCompanyId | string | Unique Id of the company the requesting user wants to join | * | requestedCompanyName | string | Name of the company the requesting user wants to join | * | status | string | Request status: one of `pending`, `accepted`, `declined`, `canceled` | * | requestingDate | Date-Time | Date the request was created | * | requestedNotificationLanguage | string | Requested notification language to use if language of company admin is not defined (used to re-send email request in that language) | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedToCompanyAdmin optionnel | Object | If the request was sent to a company administrator this field is present | * | companyAdminId | string | | * | requestedCompanyInvitationId | string | If the request was sent using a JoinCompanyInvite id, this field is set with this Id | * | companyAdminLoginEmail | string | | * * @param {string} joinCompanyRequestId Join company request unique identifier */ getJoinCompanyRequest(joinCompanyRequestId: string): Promise; /** * @public * @nodered true * @method getAllJoinCompanyRequests * @instance * @since 2.21.0 * @category Company - Join company requests * @async * @description * This API allows to list all join company requests sent by the user.
    * This API can only be used by user himself (i.e. userId of logged in user = value of userId parameter in URL).
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company request unique Id | * | requestingUserId | string | Requesting user unique Rainbow Id | * | requestingUserLoginEmail | string | Requesting user email | * | requestedCompanyId | string | Unique Id of the company the requesting user wants to join | * | requestedCompanyName | string | Name of the company the requesting user wants to join | * | status | string | Request status: one of `pending`, `accepted`, `declined`, `canceled` | * | requestingDate | Date-Time | Date the request was created | * | requestedNotificationLanguage | string | Requested notification language to use if language of company admin is not defined (used to re-send email request in that language) | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedToCompanyAdmin optionnel | Object | If the request was sent to a company administrator this field is present | * | data | Object\[\] | List of join company request Objects. | * | limit | Number | Number of requested items | * | offset | Number | Requested position of the first item to retrieve | * | total | Number | Total number of items | * | companyAdminId | string | | * | requestedCompanyInvitationId | string | If the request was sent using a JoinCompanyInvite id, this field is set with this Id | * | companyAdminLoginEmail | string | | * * @param {string} sortField="lastNotificationDate" Sort items list based on the given field

    Default value : `lastNotificationDate` * @param {string} status List all join company requests having the provided status(es). Possibles values : `=pending`, `accepted`, `declined` * @param {string} format="small" Allows to retrieve more or less requests details in response.
    * `small`: id, requestingUserId, requestedCompanyId, status
    * `medium`: id, requestingUserId, requestingUserLoginEmail, requestedCompanyId, status, requestingDate
    * `full`: all request fields
    Default value : `small`
    Possibles values : `small`, `medium`, `full` * @param {number} limit=100 Allow to specify the number of items to retrieve.
    Default value : `100` * @param {number} offset=0 Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned.
    Default value : `0` * @param {number} sortOrder=1 Specify order when sorting items list.
    Default value : `1`. Possibles values : `-1`, `1` */ getAllJoinCompanyRequests(sortField: string, status: string, format?: string, limit?: number, offset?: number, sortOrder?: number): Promise; /** * @public * @nodered true * @method resendJoinCompanyRequest * @instance * @since 2.21.0 * @category Company - Join company requests * @async * @description * This API can be used by logged in user to re-send a request to join a company.
    * This API can only be used by user himself (i.e. userId of logged in user = value of userId parameter in URL).
    * User must be in Default company and have only user role.
    * If request is canceled or declined, it is set back to pending and then re-sent.
    * If request is accepted or auto-accepted, error 409 is returned.
    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company request unique Id | * | requestingUserId | string | Requesting user unique Rainbow Id | * | requestingUserLoginEmail | string | Requesting user email | * | requestedCompanyId | string | Unique Id of the company the requesting user wants to join | * | requestedCompanyName | string | Name of the company the requesting user wants to join | * | status | string | Request status: one of `pending`, `accepted`, `declined`, `canceled` | * | requestingDate | Date-Time | Date the request was created | * | requestedNotificationLanguage | string | Requested notification language to use if language of company admin is not defined (used to re-send email request in that language) | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedToCompanyAdmin optionnel | Object | If the request was sent to a company administrator this field is present | * | companyAdminId | string | | * | requestedCompanyInvitationId | string | If the request was sent using a JoinCompanyInvite id, this field is set with this Id | * | companyAdminLoginEmail | string | | * * @param {string} joinCompanyRequestId Join company request unique identifier */ resendJoinCompanyRequest(joinCompanyRequestId: string): Promise; /** * @public * @nodered true * @method requestToJoinCompany * @instance * @since 2.21.0 * @category Company - Join company requests * @async * @description * This API allows logged in user to send a request to join a company.
    * This API can only be used by user himself.
    * User must be in **Default** company and have only `user` role.
    * This API can be called with one of these three parameters, depending of the use case:
    * * `requestedCompanyId`: in the case the company can be found by the user (public company), the user can send the join company request directly using the companyId of the requested company.
    * In that case, all users having role/admin type company_admin for the requested company will be notified (they will receive an email and a XMPP message (see below)).
    * * `requestedCompanyAdminId`: in the case the company can not be found by the user (private company), the user must know the loginEmail of a company_admin of the company he wants to join.
    * He will first have to invite this company_admin by email (invite user process.
    * Once the company\_admin will be in user's contact, he will be able to request to join company\_admin's company using company_admin id.
    * All users having role/admin type company\_admin for the requested company\_admin's company will be notified (they will receive an email and a XMPP message (see below)).
    * * `requestedCompanyLinkId`: in the case the user received a joinCompanyLink Id from a company admin, he can use it to send the join company request to the associated company.
    * All users having role/admin type company_admin for the company associated to the joinCompanyInvite will be notified (they will receive an email and a XMPP message (see below)).

    * @return {Promise} the result of the operation. * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Join company request unique Id | * | requestingUserId | string | Requesting user unique Rainbow Id | * | requestingUserLoginEmail | string | Requesting user email | * | requestedCompanyId | string | Unique Id of the company the requesting user wants to join | * | requestedCompanyName | string | Name of the company the requesting user wants to join | * | status | string | Request status: one of `pending`, `accepted`, `declined`, `canceled` | * | requestingDate | Date-Time | Date the request was created | * | requestedNotificationLanguage | string | Requested notification language to use if language of company admin is not defined (used to re-send email request in that language) | * | lastNotificationDate | Date-Time | Date when the last email notification was sent | * | requestedToCompanyAdmin optionnel | Object | If the request was sent to a company administrator this field is present | * | companyAdminId | string | | * | requestedCompanyInvitationId | string | If the request was sent using a JoinCompanyInvite id, this field is set with this Id | * | companyAdminLoginEmail | string | | * * @param {string} requestedCompanyId Id of the company the user wants to join.

    One of `requestedCompanyId`, `requestedCompanyAdminId` or `requestedCompanyLinkId` is mandatory. * @param {string} requestedCompanyAdminId Id of the company_admin of the company the user wants to join.

    One of `requestedCompanyId`, `requestedCompanyAdminId` or `requestedCompanyLinkId` is mandatory. * @param {string} requestedCompanyLinkId Id of the join company invite associated to the company the user wants to join.

    One of `requestedCompanyId`, `requestedCompanyAdminId` or `requestedCompanyLinkId` is mandatory. * @param {string} lang="en" Language of the email notification to use if language of company admin is not defined.
    Language format is composed of locale using format `ISO 639-1`, with optionally the regional variation using `ISO 3166‑1 alpha-2` (separated by hyphen).
    Locale part is in lowercase, regional part is in uppercase. Examples: en, en-US, fr, fr-FR, fr-CA, es-ES, es-MX, ...
    More information about the format can be found on this [link](https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes).
    Default value : `en` */ requestToJoinCompany(requestedCompanyId?: string, requestedCompanyAdminId?: string, requestedCompanyLinkId?: string, lang?: string): Promise; /** * @public * @method getEmailTemplatesDocumentation * @since 2.28.2 * @instance * @async * @category Companies Customization Emails * @param {string} format="small" Allows to retrieve only the list of templateName in the response. *
    small : Allows to retrieve only the list of templateName in the response. *
    full : A documentation for each allowed templates following the pattern *
    Default value : full. Possibles values : small, full * * @description * This API allows to get the list of public emails allowed to be customized. This is a short description of templates allowed to be customized by a customer. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | templates | Object\[\] | | * | templateName | string | The name of the template | * | relatedAPI | Object\[\] | Which Rainbow API may lead to send an email based on this template. | * | verb | string | The REST API verb (POST / PUT). | * | url | string | The REST API url | * | allowedParameters | string\[\] | The list of parameters Rainbow currently use in it's template. ( ex: {{enduser_displayname}} ) | * *
    example of result : * ```json * { * "templates": [ * { * "templateName": "enduser_invite_somebody", * "relatedAPI": [ * { * "verb": "POST", * "url": "/api/rainbow/enduser/v1.0/users/:userId/invitations" * } * ], * "allowedParameters": [ * "enduser_login", * "enduser_displayname", * "enduser_company_name", * "custom_message", * "invitationURL", * "invitationId", * "WebsiteURL", * "publicWebsiteURL" * ] * }, * { * "templateName": "enduser_account_terminated", * "relatedAPI": [ * { * "verb": "DELETE", * "url": "/api/rainbow/admin/v1.0/users/:userId" * } * ], * "allowedParameters": [ * "by_displayName", * "from_companyName", * "WebsiteURL", * "publicWebsiteURL" * ] * } * ] * } * ``` *
    */ getEmailTemplatesDocumentation(format?: string): Promise; /** * @public * @method initiateEmailTemplate * @since 2.28.2 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. **For the entire list of allowed template names, use getEmailTemplatesDocumentation API with parameter format=small** *
    Possibles values : `admin_cancel_invite_user_join_company`, `admin_invite_user_join_company`, `admin_invite_user_join_company_as_admin`, `admin_invite_user_register_and_join_company`, `admin_invite_user_register_and_join_company_as_admin`, `admin_request_company_visibility`, `bp_admin_invite_ec_admin_link_his_company_to_bp`, `ec_admin_request_bp_admin_link_his_company_to_bp`, `bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir`, `ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir`, `enduser_account_creation_completed`, `enduser_account_terminated`, `enduser_account_terminated_by_himself`, `enduser_conversation_download`, `enduser_invite_somebody`, `enduser_chat_room_invite_guest`, `enduser_conference_invite_somebody`, `enduser_scheduled_conference_cancel_invite`, `enduser_scheduled_conference_invite_somebody`, `enduser_scheduled_conference_ical`, `enduser_scheduled_conference_cancel_ical`, `enduser_request_join_company`, `enduser_request_user_visibility`, `enduser_temporary_token_reset_password`, `enduser_temporary_token_self_register`, `enduser_offline_im_invite`, `enduser_guest_account_time_to_live`, `enduser_oauth_authentication_notification` * @description * This API allows to create basis for the template to customize. This skeleton is linked with the company. But is not yet activated * An error occurs when the template name is not allowed or when it was already created for this company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | templateName | string | The name of the template | * | companyId | string | The companyId for which the template is dedicated. | * | subject | string | The email subject content. | * | mjmlFormat | string | The email content in MJML markup language.
    MJML is a markup language designed to reduce the pain of coding a responsive email. Refer to https://mjml.io/documentation/#mjml-guides | * | textFormat | string | The email content in text format. | * | isActive | Boolean | When true the custom email template is used instead of Rainbow template | * | tested | Boolean | When the rendering API is used to check the custom email rendering, this boolean is set to true. Any change about template content will reset the flag. | * *
    example of result : * ```json * { * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_account_terminated", * "mjmlFormat": "", * "subject": "{{ __({phrase: \"Your Rainbow account has been closed\", locale: locale}) | safe }}", * "textFormat": "{{ __({phrase: \"Your administrator {{by_displayName}} (from company {{from_companyName}}) has closed your Rainbow account.\", locale: locale}, {by_displayName: by_displayName, from_companyName: from_companyName}) }}\n\n{{ __({phrase: \"This operation cannot be undone, and from now on, you will no longer have access to the Rainbow service.\", locale: locale}) }}\n\n{{ __({phrase: \"Learn more\", locale: locale}) }} {{ __({phrase: \"about Rainbow\", locale: locale}) }}:\n{{ publicWebsiteURL }}\n\nCopyright © 2018 Alcatel-Lucent Enterprise", * "isActive": false, * "tested" : false * } * ``` *
    */ initiateEmailTemplate(companyId: string, templateName: string): Promise; /** * @public * @method updateSubjectPartTemplate * @since 2.28.2 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. **For the entire list of allowed template names, use getEmailTemplatesDocumentation API with parameter format=small** *
    `enduser_invite_somebody`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users *
    Possibles values : `admin_cancel_invite_user_join_company`, `admin_invite_user_join_company`, `admin_invite_user_join_company_as_admin`, `admin_invite_user_register_and_join_company`, `admin_invite_user_register_and_join_company_as_admin`, `admin_request_company_visibility`, `bp_admin_invite_ec_admin_link_his_company_to_bp`, `ec_admin_request_bp_admin_link_his_company_to_bp`, `bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir`, `ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir`, `enduser_account_creation_completed`, `enduser_account_terminated`, `enduser_account_terminated_by_himself`, `enduser_conversation_download`, `enduser_invite_somebody`, `enduser_chat_room_invite_guest`, `enduser_conference_invite_somebody`, `enduser_scheduled_conference_cancel_invite`, `enduser_scheduled_conference_invite_somebody`, `enduser_scheduled_conference_ical`, `enduser_scheduled_conference_cancel_ical`, `enduser_request_join_company`, `enduser_request_user_visibility`, `enduser_temporary_token_reset_password`, `enduser_temporary_token_self_register`, `enduser_offline_im_invite`, `enduser_guest_account_time_to_live`, `enduser_oauth_authentication_notification` * @param {any} body information about template. exemple : {{ __({phrase: "{{enduser_displayname}} has invited you to Alcatel-Lucent Rainbow", locale: locale}, {enduser_displayname: enduser_displayname}) | safe }} * @description * This API allows to update an email template for a given company, and more precisely the subject part. An error occurs when the template name is not yet allowed or when it is not found for this company. *
    Templates needs to be scanned by an anti-virus. An error may occurs in this step. *
    A template can't be modified when is status is isActive = true (error detail 409011) *
    Users with superadmin role can handle all available email templates of any company. *
    Users with bp_admin role can only handle email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only handle email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only handle all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | templateName | string | The name of the template | * | companyId | string | The companyId for which the template is dedicated. | * | isActive | Boolean | When true the custom email template is used instead of Rainbow template | * | tested | Boolean | When the rendering API is used to check the custom email rendering, this boolean is set to true. Any change about template content will reset the flag. | * | subject | string | The email subject content. | * | mjmlFormat | string | The email content in MJML markup language.
    MJML is a markup language designed to reduce the pain of coding a responsive email. Refer to https://mjml.io/documentation/#mjml-guides | * | textFormat | string | The email content in text format. | * *
    example of result : * ```json * { * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_account_terminated", * "isActive": false, * "tested": false, * "mjmlFormat": "\n\t\n\t\t\n\t\t\t\n\t\t\t\tMy Company
    {{ __({phrase: \"about My Company\", locale: locale}) }}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n
    ", * "subject": "{{ __({phrase: \"{{enduser_displayname}} has invited you to Alcatel-Lucent Rainbow\", locale: locale}, {enduser_displayname: enduser_displayname}) | safe }}", * "textFormat": "{{ __({phrase: \"You have been invited to Rainbow by {{enduser_displayname}} from {{enduser_companyName}}.\", locale: locale}, {enduser_displayname: enduser_displayname, enduser_companyName: enduser_companyName}) }}\n\n{% if custom_message %}\n {{ custom_message }}\n{% endif %}\n\n{{ __({phrase: \"Start the discussion\", locale: locale}) }}:\n{{ invitationURL }}" * } * ``` *
    */ updateSubjectPartTemplate(companyId: string, templateName: string, body: any): Promise; /** * @public * @method updateMjmlFormatPartTemplate * @since 2.28.2 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. **For the entire list of allowed template names, use getEmailTemplatesDocumentation API with parameter format=small** *
    `enduser_invite_somebody`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users *
    Possibles values : `admin_cancel_invite_user_join_company`, `admin_invite_user_join_company`, `admin_invite_user_join_company_as_admin`, `admin_invite_user_register_and_join_company`, `admin_invite_user_register_and_join_company_as_admin`, `admin_request_company_visibility`, `bp_admin_invite_ec_admin_link_his_company_to_bp`, `ec_admin_request_bp_admin_link_his_company_to_bp`, `bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir`, `ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir`, `enduser_account_creation_completed`, `enduser_account_terminated`, `enduser_account_terminated_by_himself`, `enduser_conversation_download`, `enduser_invite_somebody`, `enduser_chat_room_invite_guest`, `enduser_conference_invite_somebody`, `enduser_scheduled_conference_cancel_invite`, `enduser_scheduled_conference_invite_somebody`, `enduser_scheduled_conference_ical`, `enduser_scheduled_conference_cancel_ical`, `enduser_request_join_company`, `enduser_request_user_visibility`, `enduser_temporary_token_reset_password`, `enduser_temporary_token_self_register`, `enduser_offline_im_invite`, `enduser_guest_account_time_to_live`, `enduser_oauth_authentication_notification` * @param {any} body information about template. exemple : * * * * * My Company
    {{ __({phrase: "Learn more", locale: locale}) }} *
    *
    *
    *
    *
    * @description * This API allows to update an email template for a given company, and more precisely the text format part. An error occurs when the template name is not yet allowed or when it is not found for this company. *
    Templates needs to be scanned by an anti-virus. An error may occurs in this step. *
    The template in .mjml format has to be validated. An error may occurs when the template is not compliant with the syntax. *
    A template can't be modified when is status is isActive = true (error detail 409011) *
    *
    Users with superadmin role can handle all available email templates of any company. *
    Users with bp_admin role can only handle email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only handle email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only handle all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | templateName | string | The name of the template | * | companyId | string | The companyId for which the template is dedicated. | * | isActive | Boolean | When true the custom email template is used instead of Rainbow template | * | tested | Boolean | When the rendering API is used to check the custom email rendering, this boolean is set to true. Any change about template content will reset the flag. | * | subject | string | The email subject content. | * | mjmlFormat | string | The email content in MJML markup language.
    MJML is a markup language designed to reduce the pain of coding a responsive email. Refer to https://mjml.io/documentation/#mjml-guides | * | textFormat | string | The email content in text format. | * *
    example of result : * ```json * { * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_account_terminated", * "isActive": false, * "tested": false, * "mjmlFormat": "\n\t\n\t\t\n\t\t\t\n\t\t\t\tMy Company
    {{ __({phrase: \"about My Company\", locale: locale}) }}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n
    ", * "subject": "{{ __({phrase: \"{{enduser_displayname}} has invited you to Alcatel-Lucent Rainbow\", locale: locale}, {enduser_displayname: enduser_displayname}) | safe }}", * "textFormat": "{{ __({phrase: \"You have been invited to Rainbow by {{enduser_displayname}} from {{enduser_companyName}}.\", locale: locale}, {enduser_displayname: enduser_displayname, enduser_companyName: enduser_companyName}) }}\n\n{% if custom_message %}\n {{ custom_message }}\n{% endif %}\n\n{{ __({phrase: \"Start the discussion\", locale: locale}) }}:\n{{ invitationURL }}" * } * ``` *
    */ updateMjmlFormatPartTemplate(companyId: string, templateName: string, body: any): Promise; /** * @public * @method updateTextFormatFormatPartTemplate * @since 2.28.2 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. **For the entire list of allowed template names, use getEmailTemplatesDocumentation API with parameter format=small** *
    `enduser_invite_somebody`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users *
    Possibles values : `admin_cancel_invite_user_join_company`, `admin_invite_user_join_company`, `admin_invite_user_join_company_as_admin`, `admin_invite_user_register_and_join_company`, `admin_invite_user_register_and_join_company_as_admin`, `admin_request_company_visibility`, `bp_admin_invite_ec_admin_link_his_company_to_bp`, `ec_admin_request_bp_admin_link_his_company_to_bp`, `bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir`, `ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir`, `enduser_account_creation_completed`, `enduser_account_terminated`, `enduser_account_terminated_by_himself`, `enduser_conversation_download`, `enduser_invite_somebody`, `enduser_chat_room_invite_guest`, `enduser_conference_invite_somebody`, `enduser_scheduled_conference_cancel_invite`, `enduser_scheduled_conference_invite_somebody`, `enduser_scheduled_conference_ical`, `enduser_scheduled_conference_cancel_ical`, `enduser_request_join_company`, `enduser_request_user_visibility`, `enduser_temporary_token_reset_password`, `enduser_temporary_token_self_register`, `enduser_offline_im_invite`, `enduser_guest_account_time_to_live`, `enduser_oauth_authentication_notification` * @param {any} body information about template. exemple : * {{ __({phrase: "You have been invited to Rainbow by {{enduser_displayname}} from {{enduser_companyName}}.", locale: locale}, {enduser_displayname: enduser_displayname, enduser_companyName: enduser_companyName}) }} * * {% if custom_message %} * {{ custom_message }} * {% endif %} * * {{ __({phrase: "Start the discussion", locale: locale}) }}: * {{ invitationURL }} * @description * This API allows to update an email template for a given company, and more precisely the text format part. An error occurs when the template name is not yet allowed or when it is not found for this company. *
    Templates needs to be scanned by an anti-virus. An error may occurs in this step. *
    The template in .mjml format has to be validated. An error may occurs when the template is not compliant with the syntax. *
    A template can't be modified when is status is isActive = true (error detail 409011) *
    *
    Users with superadmin role can handle all available email templates of any company. *
    Users with bp_admin role can only handle email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only handle email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only handle all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | templateName | string | The name of the template | * | companyId | string | The companyId for which the template is dedicated. | * | isActive | Boolean | When true the custom email template is used instead of Rainbow template | * | tested | Boolean | When the rendering API is used to check the custom email rendering, this boolean is set to true. Any change about template content will reset the flag. | * | subject | string | The email subject content. | * | mjmlFormat | string | The email content in MJML markup language.
    MJML is a markup language designed to reduce the pain of coding a responsive email. Refer to https://mjml.io/documentation/#mjml-guides | * | textFormat | string | The email content in text format. | * *
    example of result : * ```json * { * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_account_terminated", * "isActive": false, * "tested": false, * "mjmlFormat": "\n\t\n\t\t\n\t\t\t\n\t\t\t\tMy Company
    {{ __({phrase: \"about My Company\", locale: locale}) }}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n
    ", * "subject": "{{ __({phrase: \"{{enduser_displayname}} has invited you to Alcatel-Lucent Rainbow\", locale: locale}, {enduser_displayname: enduser_displayname}) | safe }}", * "textFormat": "{{ __({phrase: \"You have been invited to Rainbow by {{enduser_displayname}} from {{enduser_companyName}}.\", locale: locale}, {enduser_displayname: enduser_displayname, enduser_companyName: enduser_companyName}) }}\n\n{% if custom_message %}\n {{ custom_message }}\n{% endif %}\n\n{{ __({phrase: \"Start the discussion\", locale: locale}) }}:\n{{ invitationURL }}" * } * ``` *
    */ updateTextFormatFormatPartTemplate(companyId: string, templateName: string, body: any): Promise; /** * @public * @method getEmailTemplatesByCompanyId * @since 2.28.2 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName Allows to get only one template by its name. * @param {string} format="small" Allows to retrieve more or less feature details in response. * - small: templateName isActive * - medium: templateName companyId isActive * - full: all template fields (except id) * *
    Default value : small, Possibles values : small, medium, full * @description * This API allows to get all available email templates for a given company. * *
    Users with superadmin role can get all available email templates of any company. *
    Users with bp_admin role can only get email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only get email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only get all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | - | Object | - | * | templateName | string | The name of the template | * | companyId | string | The companyId for which the template is dedicated. | * | isActive | Boolean | When true the custom email template is used instead of Rainbow template | * | tested | Boolean | When the rendering API is used to check the custom email rendering, this boolean is set to true. Any change about template content will reset the flag. | * | subject | string | The email subject content. | * | mjmlFormat | string | The email content in MJML markup language.
    MJML is a markup language designed to reduce the pain of coding a responsive email. Refer to https://mjml.io/documentation/#mjml-guides | * | textFormat | string | The email content in text format. | * *
    example of result : * ```json * [{ * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_account_terminated", * "isActive": false, * "tested": false, * "mjmlFormat": "\n\t\n\t\t\n\t\t\t\n\t\t\t\tMy Company
    {{ __({phrase: \"about My Company\", locale: locale}) }}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n
    ", * "subject": "{{ __({phrase: \"{{enduser_displayname}} has invited you to Alcatel-Lucent Rainbow\", locale: locale}, {enduser_displayname: enduser_displayname}) | safe }}", * "textFormat": "{{ __({phrase: \"You have been invited to Rainbow by {{enduser_displayname}} from {{enduser_companyName}}.\", locale: locale}, {enduser_displayname: enduser_displayname, enduser_companyName: enduser_companyName}) }}\n\n{% if custom_message %}\n {{ custom_message }}\n{% endif %}\n\n{{ __({phrase: \"Start the discussion\", locale: locale}) }}:\n{{ invitationURL }}" * }] * ``` *
    */ getEmailTemplatesByCompanyId(companyId: string, templateName: string, format?: string): Promise; /** * @public * @method deleteEmailTemplate * @since 2.28.3 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. **For the entire list of allowed template names, use getEmailTemplatesDocumentation(format=small)** * * * `enduser_invite_somebody`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users * * Possibles values : `admin_cancel_invite_user_join_company`, `admin_invite_user_join_company`, `admin_invite_user_join_company_as_admin`, `admin_invite_user_register_and_join_company`, *
    `admin_invite_user_register_and_join_company_as_admin`, `admin_request_company_visibility`, `bp_admin_invite_ec_admin_link_his_company_to_bp`, `ec_admin_request_bp_admin_link_his_company_to_bp`, *
    `bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir`, `ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir`, `enduser_account_creation_completed`, `enduser_account_terminated`, *
    `enduser_account_terminated_by_himself`, `enduser_conversation_download`, `enduser_invite_somebody`, `enduser_chat_room_invite_guest`, `enduser_conference_invite_somebody`, *
    `enduser_scheduled_conference_cancel_invite`, `enduser_scheduled_conference_invite_somebody`, `enduser_scheduled_conference_ical`, `enduser_scheduled_conference_cancel_ical`, *
    `enduser_request_join_company`, `enduser_request_user_visibility`, `enduser_temporary_token_reset_password`, `enduser_temporary_token_self_register`, `enduser_offline_im_invite`, *
    `enduser_guest_account_time_to_live`, `enduser_oauth_authentication_notification` * @description * This API allows to delete an email template for a given company. An error occurs when the template name is not yet allowed or when it is not found for this company. * *
    Users with superadmin role can delete all available email templates of any company. *
    Users with bp_admin role can only delete email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only delete email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only delete all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Delete operation status message. | * *
    example of result : * ```json * { * "status":"Email Template enduser_invite_somebody of company 5734a186070f38215854b61f successfully deleted", * "data":[] * } * ``` *
    */ deleteEmailTemplate(companyId: string, templateName: string): Promise; /** * @public * @method deleteAvailableEmailTemplatesBycompanyId * @since 2.28.3 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. **For the entire list of allowed template names, use getEmailTemplatesDocumentation(format=small)** * * * `enduser_invite_somebody`: User can be searched by external users / can search external users. User can invite external users / can be invited by external users * * Possibles values : `admin_cancel_invite_user_join_company`, `admin_invite_user_join_company`, `admin_invite_user_join_company_as_admin`, `admin_invite_user_register_and_join_company`, *
    `admin_invite_user_register_and_join_company_as_admin`, `admin_request_company_visibility`, `bp_admin_invite_ec_admin_link_his_company_to_bp`, `ec_admin_request_bp_admin_link_his_company_to_bp`, *
    `bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir`, `ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir`, `enduser_account_creation_completed`, `enduser_account_terminated`, *
    `enduser_account_terminated_by_himself`, `enduser_conversation_download`, `enduser_invite_somebody`, `enduser_chat_room_invite_guest`, `enduser_conference_invite_somebody`, *
    `enduser_scheduled_conference_cancel_invite`, `enduser_scheduled_conference_invite_somebody`, `enduser_scheduled_conference_ical`, `enduser_scheduled_conference_cancel_ical`, *
    `enduser_request_join_company`, `enduser_request_user_visibility`, `enduser_temporary_token_reset_password`, `enduser_temporary_token_self_register`, `enduser_offline_im_invite`, *
    `enduser_guest_account_time_to_live`, `enduser_oauth_authentication_notification` * @description * This API allows to delete all available email templates for a given company. * *
    Users with superadmin role can delete all available email templates of any company. *
    Users with bp_admin role can only delete email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only delete email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only delete all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Delete operation status message. | * *
    example of result : * ```json * { * "status":"Email Templates of company 5734a186070f38215854b61f successfully deleted", * "data":[] * } * ``` *
    */ deleteAvailableEmailTemplatesBycompanyId(companyId: string, templateName: string): Promise; /** * @public * @method testEmailTemplateRendering * @since 2.28.3 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {any} body object of the template : *
    *
    { *
    // A valid mail address. *
    // Default value : loginEmail *
    emailTo?: string, * *
    // A list of key/value . Data required by the template for rendering (depends of the template) *
    inputs: object, * *
    // User language *
    // Language format is composed of locale using format ISO 639-1, with optionally the regional variation using ISO 3166‑1 alpha-2 (separated by hyphen). *
    // Locale part is in lowercase, regional part is in uppercase. Examples: en, en-US, fr, fr-FR, fr-CA, es-ES, es-MX, ... *
    // More information about the format can be found on this link: https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes *
    // Default value : en *
    // Possibles values: /^([a-z]{2})(?:(?:(-)[A-Z]{2}))?$/ *
    language?: string, * *
    // One of the email template allowed to be customized. *
    // For the entire list of allowed template names, use getEmailTemplatesDocumentation(format=small) *
    // Possibles values : *
    // admin_cancel_invite_user_join_company *
    // admin_invite_user_join_company *
    // admin_invite_user_join_company_as_admin *
    // admin_invite_user_register_and_join_company *
    // admin_invite_user_register_and_join_company_as_admin *
    // admin_request_company_visibility *
    // bp_admin_invite_ec_admin_link_his_company_to_bp *
    // ec_admin_request_bp_admin_link_his_company_to_bp *
    // bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir *
    // ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir *
    // enduser_account_creation_completed *
    // enduser_account_terminated *
    // enduser_account_terminated_by_himself *
    // enduser_conversation_download *
    // enduser_invite_somebody *
    // enduser_chat_room_invite_guest *
    // enduser_conference_invite_somebody *
    // enduser_scheduled_conference_cancel_invite *
    // enduser_scheduled_conference_invite_somebody *
    // enduser_scheduled_conference_ical *
    // enduser_scheduled_conference_cancel_ical *
    // enduser_request_join_company *
    // enduser_request_user_visibility *
    // enduser_temporary_token_reset_password *
    // enduser_temporary_token_self_register *
    // enduser_offline_im_invite *
    // enduser_guest_account_time_to_live *
    // enduser_oauth_authentication_notification *
    templateName: string *
    } *
    * @description * This API allows to check the rendering of a given email template. When a template is rendered with success (we look for Nunjucks issues), the flag 'tested' is set. * tested flag is a prerequisite to be allowed to activate the template. * *
    Users with superadmin role can get all available email templates of any company. *
    Users with bp_admin role can only get email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). *
    Users with organization_admin role can only get email templates for a company they manage (i.e. company linked to organization_admin's organization). *
    Users with company_admin users can only get all available email templates of their own company. * An specific error (500001 - Impossible to render the custom email template [templateName]. (detail : [err]) is thrown when there is some Nunjuck issue * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | operation status message. | * *
    example of result : * ```json * { * "status":"Email Template enduser_invite_somebody of company 5734a186070f38215854b61f successfully sent", * "data":[] * } * ``` *
    */ testEmailTemplateRendering(companyId: string, body: any): Promise; /** * @public * @method activateEmailTemplate * @since 2.28.3 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. For the entire list of allowed template names, use GET /api/rainbow/admin/v1.0/companies/customizations/emails?format=small *
    *
    Possibles values : admin_cancel_invite_user_join_company, admin_invite_user_join_company, *
    admin_invite_user_join_company_as_admin, admin_invite_user_register_and_join_company, *
    admin_invite_user_register_and_join_company_as_admin, admin_request_company_visibility, *
    bp_admin_invite_ec_admin_link_his_company_to_bp, ec_admin_request_bp_admin_link_his_company_to_bp, *
    bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir, ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir, *
    enduser_account_creation_completed, enduser_account_terminated, enduser_account_terminated_by_himself, *
    enduser_conversation_download, enduser_invite_somebody, enduser_chat_room_invite_guest, enduser_conference_invite_somebody, *
    enduser_scheduled_conference_cancel_invite, enduser_scheduled_conference_invite_somebody, enduser_scheduled_conference_ical, *
    enduser_scheduled_conference_cancel_ical, enduser_request_join_company, enduser_request_user_visibility, *
    enduser_temporary_token_reset_password, enduser_temporary_token_self_register, enduser_offline_im_invite, *
    enduser_guest_account_time_to_live, enduser_oauth_authentication_notification *
    * @description * This API allows to activate an email template for a given company. An error occurs when the template name is not yet allowed or when it is not found for this company. * As tested flag is a prerequisite to be allowed to activate the template, an error detail 409012 can be raised. * Users with superadmin role can manage all available email templates of any company. * Users with bp_admin role can only handle email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). * Users with organization_admin role can only handle email templates for a company they manage (i.e. company linked to organization_admin's organization). * Users with company_admin users can only handle all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | operation status message. | * *
    example of result : * ```json * { * "data": { * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_conversation_download", * "isActive": true, * "mjmlFormat": "\n \n \n \n \n {{ __({phrase: \"Please find attached messages exchanged in your conversation.\", locale: locale}) }}\n

    {{ __({phrase: \"Learn more\", locale: locale}) }} {{ __({phrase: \"about Rainbow\", locale: locale}) }} \n
    \n \n Copyright © 2018 Alcatel-Lucent Enterprise\n \n
    \n
    \n
    \n
    ", * "subject": "{{ __({phrase: \"Conversation with {{userOrRoomDisplayName}}\", locale: locale}, {userOrRoomDisplayName: userOrRoomDisplayName}) | safe }}", * "textFormat": "{{ __({phrase: \"Please find attached messages exchanged in your conversation.\", locale: locale}) }}\n\n{{ __({phrase: \"Learn more\", locale: locale}) }} {{ __({phrase: \"about Rainbow\", locale: locale}) }}:\n{{ publicWebsiteURL }}\n\nCopyright © 2018 Alcatel-Lucent Enterprise", * "tested": true * } * } * ``` *
    */ activateEmailTemplate(companyId: string, templateName: string): Promise; /** * @public * @method deactivateEmailTemplate * @since 2.28.3 * @instance * @async * @category Companies Customization Emails * @param {string} companyId Company unique identifier * @param {string} templateName One of the email template allowed to be customized. For the entire list of allowed template names, use GET /api/rainbow/admin/v1.0/companies/customizations/emails?format=small *
    *
    Possibles values : admin_cancel_invite_user_join_company, admin_invite_user_join_company, *
    admin_invite_user_join_company_as_admin, admin_invite_user_register_and_join_company, *
    admin_invite_user_register_and_join_company_as_admin, admin_request_company_visibility, *
    bp_admin_invite_ec_admin_link_his_company_to_bp, ec_admin_request_bp_admin_link_his_company_to_bp, *
    bp_admin_invite_ec_admin_link_his_company_to_bp_as_bp_ir, ec_admin_request_bp_admin_link_his_company_to_bp_as_bp_ir, *
    enduser_account_creation_completed, enduser_account_terminated, enduser_account_terminated_by_himself, *
    enduser_conversation_download, enduser_invite_somebody, enduser_chat_room_invite_guest, enduser_conference_invite_somebody, *
    enduser_scheduled_conference_cancel_invite, enduser_scheduled_conference_invite_somebody, enduser_scheduled_conference_ical, *
    enduser_scheduled_conference_cancel_ical, enduser_request_join_company, enduser_request_user_visibility, *
    enduser_temporary_token_reset_password, enduser_temporary_token_self_register, enduser_offline_im_invite, *
    enduser_guest_account_time_to_live, enduser_oauth_authentication_notification *
    * @description * This API allows to desactivate an email template for a given company. An error occurs when the template name is not yet allowed or when it is not found for this company. * As tested flag is a prerequisite to be allowed to activate the template, an error detail 409012 can be raised. * Users with superadmin role can manage all available email templates of any company. * Users with bp_admin role can only handle email templates for a company they manage (i.e. End Customer company for which bp_admin's company if the BP company). * Users with organization_admin role can only handle email templates for a company they manage (i.e. company linked to organization_admin's organization). * Users with company_admin users can only handle all available email templates of their own company. * * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | operation status message. | * *
    example of result : * ```json * { * "data": { * "companyId": "598857f360c749e5890ff2f9", * "templateName": "enduser_conversation_download", * "isActive": true, * "mjmlFormat": "\n \n \n \n \n {{ __({phrase: \"Please find attached messages exchanged in your conversation.\", locale: locale}) }}\n

    {{ __({phrase: \"Learn more\", locale: locale}) }} {{ __({phrase: \"about Rainbow\", locale: locale}) }} \n
    \n \n Copyright © 2018 Alcatel-Lucent Enterprise\n \n
    \n
    \n
    \n
    ", * "subject": "{{ __({phrase: \"Conversation with {{userOrRoomDisplayName}}\", locale: locale}, {userOrRoomDisplayName: userOrRoomDisplayName}) | safe }}", * "textFormat": "{{ __({phrase: \"Please find attached messages exchanged in your conversation.\", locale: locale}) }}\n\n{{ __({phrase: \"Learn more\", locale: locale}) }} {{ __({phrase: \"about Rainbow\", locale: locale}) }}:\n{{ publicWebsiteURL }}\n\nCopyright © 2018 Alcatel-Lucent Enterprise", * "tested": true * } * } * ``` *
    */ deactivateEmailTemplate(companyId: string, templateName: string): Promise; /** * @public * @nodered true * @method applyCustomisationTemplates * @instance * @description * This API allows an administrator to apply an application customisation template to a company or a user * * **Why is an application template?** * * - An application template is a set of key feature controlled by permission. * - A template can be applied to a company, to a user. * - A template to a user can be applied by an administrator action or by bulk using mass provisioning mechanism. * - Custom templates may be created * * **Who can apply a template?** * * - superadmin, bp_admin and company_admin can apply templates available for any company (public or private template) * * **Restrictions about template types.** * * - Each template has a type: * * - default_company * - default_user * - private_default_company * - other * * - It may have only one template of default_company and default_user type. * * - A default_company or default_user template is always public. * * - default_company is created by Rainbow team under name Full. * * - default_user is a template used to reset user with default values. It is created by Rainbow team under name Same as company. It is public too. * * - An 'other' template is public or private. If private, it belongs to a company. * * - A private_default_company is private and belongs to a standalone company. It may have only one private_default_company per company. * * To apply a template, a template name plus a companyId or a userId must be set. When both companyId or userId are set, an error occurs (400000). * * You can find on which companies the template has been applied by using the API getAllCompanies with parameter selectedAppCustomisationTemplate=:templateId * The company field selectedAppCustomisationTemplate is the last template applyed for this company. * @async * @category Customisation Template * @return {Promise} * @fulfil {Object} - Json object containing the result of the method. * @category async * @param {string} name Template name. * @param {string} companyId Company unique identifier * @param {string} userId User unique identifier */ applyCustomisationTemplates(name: string, companyId: string, userId: string): Promise; /** * @public * @nodered true * @method createCustomisationTemplate * @instance * @description * This API allows an administrator to create an application customisation template for the given company. * * - The name of the template must be unique among all of its belonging to the company. * - The template is always private. So it has automatically private visibility. * - It can include following items. When some of them are missing, the default value enabled is used. So the body can include only items to set with the statedisabled. * @async * @category Customisation Template * @return {Promise} * @fulfil {Object} - Json object containing the result of the method * @category async * @param {string} name Template name. * @param {string} ownedByCompany Identifier of the company owning the template. * @param {string} visibleBy When visibility is private, list of companyIds that can access the template (other than the 'ownedByCompany' one). * @param {string} instantMessagesCustomisation Activate/Deactivate the capability for a user to use instant messages.
    * Define if one or all users of a company has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
    *
    * instantMessagesCustomisation can be:
    * * - enabled: Each user of the company can use instant messages.
    * - disabled: No user of the company can use instant messages.
    *
    * Default value : enabled * @param {string} useGifCustomisation Activate/Deactivate the ability for a user to Use GIFs in conversations.
    * Define if one or all users of a company has the is allowed to send animated GIFs in conversations
    *
    * useGifCustomisation can be:
    * * - enabled: The user can send animated GIFs in conversations.
    * - disabled: The user can't send animated GIFs in conversations.
    *
    * Default value : enabled * @param {string} fileSharingCustomisation Activate/Deactivate file sharing capability per company
    * Define if one or all users of a company can use the file sharing service then, allowed to download and share file.
    *
    * fileSharingCustomisation can be:
    * * - enabled: Each user of the company can use the file sharing service, except when his own capability is set to 'disabled'.
    * - disabled: Each user of the company can't use the file sharing service, except when his own capability is set to 'enabled'.
    *
    * Default value : enabled
    * @param {string} fileStorageCustomisation Activate/Deactivate the capability for a user to access to Rainbow file storage.
    * Define if one or all users of a company has the right to upload/download/copy or share documents.
    *
    * fileStorageCustomisation can be:
    * * - enabled: Each user of the company can manage and share files.
    * - disabled: No user of the company can manage and share files.
    *
    * Default value : enabled * @param {string} phoneMeetingCustomisation Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
    * Define if one or all users of a company has the right to join phone meetings.
    *
    * phoneMeetingCustomisation can be:
    * * - enabled: Each user of the company can join phone meetings.
    * - disabled: No user of the company can join phone meetings.
    *
    * Default value : enabled * @param {string} useDialOutCustomisation Activate/Deactivate the capability for a user to use dial out in phone meetings.
    * Define if one or all users of a company is allowed to be called by the Rainbow conference bridge.
    *
    * useDialOutCustomisation can be:
    * * - enabled: The user can be called by the Rainbow conference bridge.
    * - disabled: The user can't be called by the Rainbow conference bridge.
    *
    * Default value : enabled * @param {string} useChannelCustomisation Activate/Deactivate the capability for a user to use a channel.
    * Define if one or all users of a company has the right to create channels or be a member of channels.
    *
    * useChannelCustomisation can be:
    * * - enabled: Each user of the company can use some channels.
    * - disabled: No user of the company can use some channel.
    *
    * Default value : enabled * @param {string} useRoomCustomisation Activate/Deactivate the capability for a user to use bubbles.
    * Define if one or all users of a company can create bubbles or participate in bubbles (chat and web conference).
    *
    * useRoomCustomisation can be:
    * * - enabled: Each user of the company can use bubbles.
    * - disabled: No user of the company can use bubbles.
    *
    * Default value : enabled * @param {string} useScreenSharingCustomisation Activate/Deactivate the capability for a user to share a screen.
    * Define if a user has the right to share his screen.
    *
    * useScreenSharingCustomisation can be:
    * * - enabled: Each user of the company can share his screen.
    * - disabled: No user of the company can share his screen.
    *
    * @param {string} useWebRTCAudioCustomisation Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
    * Define if one or all users of a company has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
    *
    * useWebRTCVideoCustomisation can be:
    * * - enabled: Each user of the company can switch to a Web RTC audio conversation.
    * - disabled: No user of the company can switch to a Web RTC audio conversation.
    *
    * Default value : enabled * @param {string} useWebRTCVideoCustomisation Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
    * Define if one or all users of a company has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
    *
    * useWebRTCVideoCustomisation can be:
    * * - enabled: Each user of the company can switch to a Web RTC video conversation.
    * - disabled: No user of the company can switch to a Web RTC video conversation.
    *
    * Default value : enabled * @param {string} recordingConversationCustomisation Activate/Deactivate the capability for a user to record a conversation.
    * Define if one or all users of a company has the right to record a conversation (for P2P and multi-party calls).
    *
    * recordingConversationCustomisation can be:
    * * - enabled: The user can record a peer to peer or a multi-party call.
    * - disabled: The user can't record a peer to peer or a multi-party call.
    *
    * Default value : enabled * @param {string} overridePresenceCustomisation Activate/Deactivate the capability for a user to change manually his presence.
    * Define if one or all users of a company has the right to change his presence manually or only use automatic states.
    *
    * overridePresenceCustomisation can be:
    * * - enabled: Each user of the company can change his presence.
    * - disabled: No user of the company can change his presence.
    *
    * Default value : enabled * @param {string} userProfileCustomisation Activate/Deactivate the capability for a user to modify his profile.
    * Define if one or all users of a company has the right to modify the globality of his profile and not only (title, firstName, lastName).
    *
    * userProfileCustomisation can be:
    * * - enabled: Each user of the company can modify his profile.
    * - disabled: No user of the company can modify his profile.
    *
    * Default value : enabled * @param {string} userTitleNameCustomisation Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
    * Define if one or all users of a company is allowed to change some profile data.
    *
    * userTitleNameCustomisation can be:
    * * - enabled: Each user of the company can change some profile data, except when his own capability is set to 'disabled'.
    * - disabled: Each user of the company can't change some profile data, except when his own capability is set to 'enabled'.
    *
    * Default value : enabled * @param {string} changeTelephonyCustomisation Activate/Deactivate the ability for a user to modify telephony settings.
    * Define if one or all users of a company has the right to modify telephony settings like forward activation ....
    *
    * changeTelephonyCustomisation can be:
    * * - enabled: The user can modify telephony settings.
    * - disabled: The user can't modify telephony settings.
    *
    * Default value : enabled * @param {string} changeSettingsCustomisation Activate/Deactivate the ability for a user to change all client general settings.
    * Define if one or all users of a company has the right to change his client general settings.
    *
    * changeSettingsCustomisation can be:
    * * - enabled: The user can change all client general settings.
    * - disabled: The user can't change any client general setting.
    *
    * Default value : enabled
    * @param {string} fileCopyCustomisation Activate/Deactivate the capability for a user to copy files
    * Define if one or all users of a company is allowed to copy any file he receives in his personal cloud space.
    *
    * fileCopyCustomisation can be:
    * * - enabled: The user can make a copy of a file to his personal cloud space.
    * - disabled: The user can't make a copy of a file to his personal cloud space.
    *
    * default value : enabled * @param {string} fileTransferCustomisation Activate/Deactivate the ability for a user to transfer files.
    * Define if one or all users of a company has the right to copy a file from a conversation then share it inside another conversation.
    *
    * fileTransferCustomisation can be:
    * * - enabled: The user can transfer a file doesn't belong to him.
    * - disabled: The user can't transfer a file doesn't belong to him.
    *
    * Default value : enabled
    * @param {string} forbidFileOwnerChangeCustomisation Activate/Deactivate the ability for a user to loose the ownership on one file.
    * Define if one or all users can drop the ownership of a file to another Rainbow user of the same company
    *
    * forbidFileOwnerChangeCustomisation can be:
    * * - enabled: The user can't give the ownership of his file.
    * - disabled: The user can give the ownership of his file.
    *
    * Default value : enabled * @param {string} readReceiptsCustomisation Activate/Deactivate the ability for a user to allow a sender to check if a chat message is read.
    * Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
    *
    * readReceiptsCustomisation can be:
    * * - enabled: The user allow the sender to check if an IM is read.
    * - disabled: The user doesn't allow the sender to check if an IM is read.
    *
    * Default value : enabled * @param {string} useSpeakingTimeStatistics Activate/Deactivate the ability for a user to see speaking time statistics.
    * Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
    *
    * useSpeakingTimeStatistics can be:
    * * - enabled: The user can use meeting speaking time statistics.
    * - disabled: The user can't can use meeting speaking time statistics.
    *
    * Default value : enabled */ createCustomisationTemplate(name: string, ownedByCompany: string, visibleBy: Array, instantMessagesCustomisation: string, useGifCustomisation: string, fileSharingCustomisation: string, fileStorageCustomisation: string, phoneMeetingCustomisation: string, useDialOutCustomisation: string, useChannelCustomisation: string, useRoomCustomisation: string, useScreenSharingCustomisation: string, useWebRTCAudioCustomisation: string, useWebRTCVideoCustomisation: string, recordingConversationCustomisation: string, overridePresenceCustomisation: string, userProfileCustomisation: string, userTitleNameCustomisation: string, changeTelephonyCustomisation: string, changeSettingsCustomisation: string, fileCopyCustomisation: string, fileTransferCustomisation: string, forbidFileOwnerChangeCustomisation: string, readReceiptsCustomisation: string, useSpeakingTimeStatistics: string): Promise; /** * @public * @nodered true * @method deleteCustomisationTemplate * @instance * @description * This API allows an administrator to delete an application customisation template. * * Users with superadmin role can delete any private template. * * Users with bp_admin or admin role can only delete template they owned. * The template to delete may have been applied to one or several companies. So, before the template deletion, we have to go back to the application of this template. A default template is applyed instead (Full) * This is done automitically and it could be necessary to advice the administrator before deleting the template. * You can find on which companies the template has been applied by using the API getAllCompanies using the parameter selectedAppCustomisationTemplate=:templateId * @async * @category Customisation Template * @return {Promise} * @fulfil {Object} - Json object containing the result of the method * @category async * @param {string} templateId Template id. */ deleteCustomisationTemplate(templateId: string): Promise; /** * @public * @nodered true * @method getAllAvailableCustomisationTemplates * @instance * @description * This API allows administrator to retrieve application customisation templates supported by a given company. * * superadmin and support can get templates available for any company (the requested company has to be specified in companyId query parameter. bp_admin and company_admin get templates for its own company (no need to specify companyId parameter). * @async * @category Customisation Template * @return {Promise} * @fulfil {Object} - Json object containing the result of the method * @category async * @param {string} companyId Select a company other than the one the user belongs to (must be an admin of the company) * @param {string} format="small" Allows to retrieve more or less templates details in response.
    * - small: id, name, visibility
    * - medium: id, name, visibility, visibleBy, type, createdBy, creationDate, ownedByCompany
    * - full: all fields
    *
    * Default value : small
    * Possible values : small, medium, full * @param {number} limit=100 Allow to specify the number of templates to retrieve. Default value : 100 * @param {number} offset=0 Allow to specify the position of first templates to retrieve (first template if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField=1 Sort templates list based on the given field. Default value : name * @param {number} sortOrder="name" Specify order when sorting templates list. Default value : 1. Possible values : -1, 1 */ getAllAvailableCustomisationTemplates(companyId?: string, format?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number): Promise; /** * @public * @nodered true * @method getAllAvailableCustomisationTemplates * @instance * @description * This API allows administrator to retrieve the requested application customisation template * * @async * @category Customisation Template * @return {Promise} * @fulfil {Object} - Json object containing the result of the method * @category async * @param {string} templateId Template id. */ getRequestedCustomisationTemplate(templateId?: string): Promise; /** * @public * @nodered true * @method updateCustomisationTemplate * @instance * @description * This API allows an administrator to update an application customisation template. * * A public template can't be updated using this API. Update is only allowed via a database migration. * @async * @category Customisation Template * @return {Promise} * @fulfil {Object} - Json object containing the result of the method * @category async * @param {string} templateId id of the template to update. * @param {string} name Template name. * @param {string} visibleBy When visibility is private, list of companyIds that can access the template (other than the 'ownedByCompany' one). * @param {string} instantMessagesCustomisation="enabled" Activate/Deactivate the capability for a user to use instant messages.
    * Define if one or all users of a company has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
    *
    * instantMessagesCustomisation can be:
    * * - enabled: Each user of the company can use instant messages.
    * - disabled: No user of the company can use instant messages.
    *
    * Default value : enabled * @param {string} useGifCustomisation="enabled" Activate/Deactivate the ability for a user to Use GIFs in conversations.
    * Define if one or all users of a company has the is allowed to send animated GIFs in conversations
    *
    * useGifCustomisation can be:
    * * - enabled: The user can send animated GIFs in conversations.
    * - disabled: The user can't send animated GIFs in conversations.
    *
    * Default value : enabled * @param {string} fileSharingCustomisation="enabled" Activate/Deactivate file sharing capability per company
    * Define if one or all users of a company can use the file sharing service then, allowed to download and share file.
    *
    * fileSharingCustomisation can be:
    * * - enabled: Each user of the company can use the file sharing service, except when his own capability is set to 'disabled'.
    * - disabled: Each user of the company can't use the file sharing service, except when his own capability is set to 'enabled'.
    *
    * Default value : enabled
    * @param {string} fileStorageCustomisation="enabled" Activate/Deactivate the capability for a user to access to Rainbow file storage.
    * Define if one or all users of a company has the right to upload/download/copy or share documents.
    *
    * fileStorageCustomisation can be:
    * * - enabled: Each user of the company can manage and share files.
    * - disabled: No user of the company can manage and share files.
    *
    * Default value : enabled * @param {string} phoneMeetingCustomisation="enabled" Activate/Deactivate the capability for a user to use phone meetings (PSTN conference).
    * Define if one or all users of a company has the right to join phone meetings.
    *
    * phoneMeetingCustomisation can be:
    * * - enabled: Each user of the company can join phone meetings.
    * - disabled: No user of the company can join phone meetings.
    *
    * Default value : enabled * @param {string} useDialOutCustomisation="enabled" Activate/Deactivate the capability for a user to use dial out in phone meetings.
    * Define if one or all users of a company is allowed to be called by the Rainbow conference bridge.
    *
    * useDialOutCustomisation can be:
    * * - enabled: The user can be called by the Rainbow conference bridge.
    * - disabled: The user can't be called by the Rainbow conference bridge.
    *
    * Default value : enabled * @param {string} useChannelCustomisation="enabled" Activate/Deactivate the capability for a user to use a channel.
    * Define if one or all users of a company has the right to create channels or be a member of channels.
    *
    * useChannelCustomisation can be:
    * * - enabled: Each user of the company can use some channels.
    * - disabled: No user of the company can use some channel.
    *
    * Default value : enabled * @param {string} useRoomCustomisation="enabled" Activate/Deactivate the capability for a user to use bubbles.
    * Define if one or all users of a company can create bubbles or participate in bubbles (chat and web conference).
    *
    * useRoomCustomisation can be:
    * * - enabled: Each user of the company can use bubbles.
    * - disabled: No user of the company can use bubbles.
    *
    * Default value : enabled * @param {string} useScreenSharingCustomisation="enabled" Activate/Deactivate the capability for a user to share a screen.
    * Define if a user has the right to share his screen.
    *
    * useScreenSharingCustomisation can be:
    * * - enabled: Each user of the company can share his screen.
    * - disabled: No user of the company can share his screen.
    *
    * @param {string} useWebRTCAudioCustomisation="enabled" Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation.
    * Define if one or all users of a company has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
    *
    * useWebRTCVideoCustomisation can be:
    * * - enabled: Each user of the company can switch to a Web RTC audio conversation.
    * - disabled: No user of the company can switch to a Web RTC audio conversation.
    *
    * Default value : enabled * @param {string} useWebRTCVideoCustomisation="enabled" Activate/Deactivate the capability for a user to switch to a Web RTC video conversation.
    * Define if one or all users of a company has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
    *
    * useWebRTCVideoCustomisation can be:
    * * - enabled: Each user of the company can switch to a Web RTC video conversation.
    * - disabled: No user of the company can switch to a Web RTC video conversation.
    *
    * Default value : enabled * @param {string} recordingConversationCustomisation="enabled" Activate/Deactivate the capability for a user to record a conversation.
    * Define if one or all users of a company has the right to record a conversation (for P2P and multi-party calls).
    *
    * recordingConversationCustomisation can be:
    * * - enabled: The user can record a peer to peer or a multi-party call.
    * - disabled: The user can't record a peer to peer or a multi-party call.
    *
    * Default value : enabled * @param {string} overridePresenceCustomisation="enabled" Activate/Deactivate the capability for a user to change manually his presence.
    * Define if one or all users of a company has the right to change his presence manually or only use automatic states.
    *
    * overridePresenceCustomisation can be:
    * * - enabled: Each user of the company can change his presence.
    * - disabled: No user of the company can change his presence.
    *
    * Default value : enabled * @param {string} userProfileCustomisation="enabled" Activate/Deactivate the capability for a user to modify his profile.
    * Define if one or all users of a company has the right to modify the globality of his profile and not only (title, firstName, lastName).
    *
    * userProfileCustomisation can be:
    * * - enabled: Each user of the company can modify his profile.
    * - disabled: No user of the company can modify his profile.
    *
    * Default value : enabled * @param {string} userTitleNameCustomisation="enabled" Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) per company
    * Define if one or all users of a company is allowed to change some profile data.
    *
    * userTitleNameCustomisation can be:
    * * - enabled: Each user of the company can change some profile data, except when his own capability is set to 'disabled'.
    * - disabled: Each user of the company can't change some profile data, except when his own capability is set to 'enabled'.
    *
    * Default value : enabled * @param {string} changeTelephonyCustomisation="enabled" Activate/Deactivate the ability for a user to modify telephony settings.
    * Define if one or all users of a company has the right to modify telephony settings like forward activation ....
    *
    * changeTelephonyCustomisation can be:
    * * - enabled: The user can modify telephony settings.
    * - disabled: The user can't modify telephony settings.
    *
    * Default value : enabled * @param {string} changeSettingsCustomisation="enabled" Activate/Deactivate the ability for a user to change all client general settings.
    * Define if one or all users of a company has the right to change his client general settings.
    *
    * changeSettingsCustomisation can be:
    * * - enabled: The user can change all client general settings.
    * - disabled: The user can't change any client general setting.
    *
    * Default value : enabled
    * @param {string} fileCopyCustomisation="enabled" Activate/Deactivate the capability for a user to copy files
    * Define if one or all users of a company is allowed to copy any file he receives in his personal cloud space.
    *
    * fileCopyCustomisation can be:
    * * - enabled: The user can make a copy of a file to his personal cloud space.
    * - disabled: The user can't make a copy of a file to his personal cloud space.
    *
    * default value : enabled * @param {string} fileTransferCustomisation="enabled" Activate/Deactivate the ability for a user to transfer files.
    * Define if one or all users of a company has the right to copy a file from a conversation then share it inside another conversation.
    *
    * fileTransferCustomisation can be:
    * * - enabled: The user can transfer a file doesn't belong to him.
    * - disabled: The user can't transfer a file doesn't belong to him.
    *
    * Default value : enabled
    * @param {string} forbidFileOwnerChangeCustomisation="enabled" Activate/Deactivate the ability for a user to loose the ownership on one file.
    * Define if one or all users can drop the ownership of a file to another Rainbow user of the same company
    *
    * forbidFileOwnerChangeCustomisation can be:
    * * - enabled: The user can't give the ownership of his file.
    * - disabled: The user can give the ownership of his file.
    *
    * Default value : enabled * @param {string} readReceiptsCustomisation="enabled" Activate/Deactivate the ability for a user to allow a sender to check if a chat message is read.
    * Defines whether a peer user in a conversation allows the sender of a chat message to see if this IM is acknowledged by the peer.
    *
    * readReceiptsCustomisation can be:
    * * - enabled: The user allow the sender to check if an IM is read.
    * - disabled: The user doesn't allow the sender to check if an IM is read.
    *
    * Default value : enabled * @param {string} useSpeakingTimeStatistics="enabled" Activate/Deactivate the ability for a user to see speaking time statistics.
    * Defines whether a user has the right to see for a given meeting the speaking time for each attendee of this meeting.
    *
    * useSpeakingTimeStatistics can be:
    * * - enabled: The user can use meeting speaking time statistics.
    * - disabled: The user can't can use meeting speaking time statistics.
    *
    * Default value : enabled */ updateCustomisationTemplate(templateId: string, name: string, visibleBy: string[], instantMessagesCustomisation?: string, useGifCustomisation?: string, fileSharingCustomisation?: string, fileStorageCustomisation?: string, phoneMeetingCustomisation?: string, useDialOutCustomisation?: string, useChannelCustomisation?: string, useRoomCustomisation?: string, useScreenSharingCustomisation?: string, useWebRTCAudioCustomisation?: string, useWebRTCVideoCustomisation?: string, recordingConversationCustomisation?: string, overridePresenceCustomisation?: string, userProfileCustomisation?: string, userTitleNameCustomisation?: string, changeTelephonyCustomisation?: string, changeSettingsCustomisation?: string, fileCopyCustomisation?: string, fileTransferCustomisation?: string, forbidFileOwnerChangeCustomisation?: string, readReceiptsCustomisation?: string, useSpeakingTimeStatistics?: string): Promise; /** * @public * @nodered true * @method askTokenOnBehalf * @instance * @description * Ask Rainbow for a token on behalf a user
    * This allow to not use the secret key on client side
    * @param {string} loginEmail The user login email * @param {string} password The user password * @async * @category Users at running * @return {Promise} * @fulfil {Object} - Json object containing the user data, application data and token * @category async */ askTokenOnBehalf(loginEmail: string, password: string): Promise; /** * * @public * @nodered true * @method getUserPresenceInformation * @instance * @nodered true * @description * Get presence informations about a user
    *
    * Company admin shall be able to check if a user can be reached or not, by checking the presence information (available, busy, away, etc).
    * Admin will have to select a user to get a presence snapshot when opening the user configuration profile.
    * A brute force defense is activated when too much request have been requested by the same administrator, to not overload the backend. As a result, an error 429 "Too Many Requests" will be returned .
    * @param {string} userId The id of the user. If the userId is not provided, then it use the current loggedin user id. * @async * @category Users at running * @return {Promise} * @category async */ getUserPresenceInformation(userId?: undefined): Promise; /** * @public * @nodered true * @method retrieveAllOffersOfCompanyById * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId Id of the company to be retrieve the offers. * @param {string} format="small" - Allows retrieving different levels of offer details. Options: 'small', 'medium', 'full'. * @param {string} name - Filters the offer list by name. * @param {boolean} canBeSold - Filters offer list by 'canBeSold' field. * @param {boolean} autoSubscribe - Filters offer list by 'autoSubscribe' field. * @param {boolean} isExclusive - Filters offer list by 'isExclusive' field. * @param {boolean} isPrepaid - Filters offer list by 'isPrepaid' field. * @param {boolean} profileId - Filters offer list by 'profileId' field. * @param {boolean} offerReference - Filters offer list by 'offerReference' field. * @param {boolean} sapReference - Filters offer list by 'sapReference' field. * @param {number} limit=100 - Specifies the number of offers to retrieve. * @param {number} offset=0 - Specifies the starting position of offers to retrieve. * @param {string} sortField="name" - Field to sort the offers by. Options: '_id', 'name'. * @param {number} sortOrder=1 - Order for sorting. Options: 1 (ascending), -1 (descending). * @description * Method to retrieve all the offers of one company on server.
    * @return {Promise>} */ retrieveAllOffersOfCompanyById(companyId?: string, format?: string, name?: string, canBeSold?: boolean, autoSubscribe?: boolean, isExclusive?: boolean, isPrepaid?: boolean, profileId?: boolean, offerReference?: boolean, sapReference?: boolean, limit?: number, offset?: number, sortField?: string, sortOrder?: number): Promise>; /** * @public * @nodered true * @method retrieveAllSubscriptionsOfCompanyById * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId Id of the company to be retrieve the subscriptions. * @param {string} format="small" Allows to retrieve more or less subscription details in response. (default value: "small")
    * - small: id offerId profileId isDefault
    * - medium: id offerId profileId isDefault maxNumberUsers status
    * - full: all offer fields, including computed user assignment fields (numberAssignedUsers, nbAssignedBPUsers, nbLicencesAssignedToECs, ...)
    * @description * Method to retrieve all the subscriptions of one company on server.
    * @return {Promise>} */ retrieveAllSubscriptionsOfCompanyById(companyId?: string, format?: string): Promise>; /** * @public * @nodered true * @method getSubscriptionsOfCompanyByOfferId * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} offerId Id of the offer to filter subscriptions. * @param {string} companyId Id of the company to get the subscription of the offer. * @description * Method to get the subscription of one company for one offer.
    * @return {Promise} */ getSubscriptionsOfCompanyByOfferId(offerId: string, companyId: string): Promise; /** * @public * @nodered true * @method subscribeCompanyToOfferById * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} offerId Id of the offer to filter subscriptions. * @param {string} companyId="user s company id" Id of the company to get the subscription of the offer. * @param {number} maxNumberUsers * @param {boolean} autoRenew * @description * Method to subscribe one company to one offer.
    * @return {Promise} */ subscribeCompanyToOfferById(offerId: string, companyId?: string, maxNumberUsers?: number, autoRenew?: boolean): Promise; /** * @private * @method subscribeCompanyToDemoOffer * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId="user s company id" Id of the company to get the subscription of the offer. * @description * Method to subscribe one company to offer demo.
    * Private offer on .Net platform.
    * @return {Promise} */ subscribeCompanyToDemoOffer(companyId?: string): Promise; /** * @private * @method unSubscribeCompanyToDemoOffer * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId="user s company id" Id of the company to get the subscription of the offer. * @description * Method to unsubscribe one company to offer demo.
    * Private offer on .Net platform.
    * @return {Promise} */ unSubscribeCompanyToDemoOffer(companyId?: string): Promise; /** * @public * @nodered true * @method subscribeCompanyToAlertOffer * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId="user s company id" Id of the company to the subscription of the offer. * @description * Method to subscribe one company to offer Alert.
    * Private offer on .Net platform.
    * @return {Promise} */ subscribeCompanyToAlertOffer(companyId?: string): Promise; /** * @public * @nodered true * @method unSubscribeCompanyToAlertOffer * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId="user s company id" Id of the company to the unsubscription of the offer. * @description * Method to unsubscribe one company to offer Alert.
    * Private offer on .Net platform.
    * @return {Promise} */ unSubscribeCompanyToAlertOffer(companyId?: string): Promise; /** * @public * @nodered true * @method subscribeCompanyToVoiceEnterpriseOffer * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId="user s company id" Id of the company the subscription of the offer. * @description * Method to subscribe one company to offer Voice Enterprise.
    * Private offer on .Net platform.
    * @return {Promise} */ subscribeCompanyToVoiceEnterpriseOffer(companyId?: string): Promise; /** * @public * @nodered true * @method unSubscribeCompanyToVoiceEnterpriseOffer * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} companyId="user s company id" Id of the company to the unsubscription of the offer. * @description * Method to unsubscribe one company to offer Voice Enterprise.
    * Private offer on .Net platform.
    * @return {Promise} */ unSubscribeCompanyToVoiceEnterpriseOffer(companyId?: string): Promise; /** * @public * @nodered true * @method unSubscribeCompanyToOfferById * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} offerId Id of the offer to filter subscriptions. * @param {string} companyId="user s company id" Id of the company to get the subscription of the offer. * @description * Method to unsubscribe one company to one offer .
    * @return {Promise} */ unSubscribeCompanyToOfferById(offerId: string, companyId?: string): Promise; /** * @public * @nodered true * @method unSubscribeCompanyToSubscription * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} subscriptionId Id of the subscriptions to unsubscribe. * @param {string} companyId="user s company id" Id of the company of the subscription. * @description * Method to unsubscribe one company to one subscription.
    * @return {Promise} */ unSubscribeCompanyToSubscription(subscriptionId: string, companyId?: string): Promise; /** * @public * @nodered true * @method subscribeUserToSubscription * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} userId the id of the user which will subscribe. If not provided, the connected user is used. * @param {string} subscriptionId the id of the subscription to attach to user. * @description * Method to subscribe one user to a subscription of the company.
    * @return {Promise} */ subscribeUserToSubscription(userId?: string, subscriptionId?: string): Promise; /** * @public * @nodered true * @method unSubscribeUserToSubscription * @since 1.73 * @instance * @async * @category Offers and Subscriptions. * @param {string} userId the id of the user which will unsubscribe. If not provided, the connected user is used. * @param {string} subscriptionId the id of the subscription to unsubscribe the user. * @description * Method to unsubscribe one user to a subscription.
    * @return {Promise} */ unSubscribeUserToSubscription(userId?: string, subscriptionId?: string): Promise; /** * @public * @nodered true * @method getAUserProfilesByUserId * @since 2.11.0 * @instance * @async * @category Offers and Subscriptions. * @param {string} userId the id of the user. If not provided, the connected user is used. * @description * Method to retrieve the profiles of a user by his id.
    * @return {Promise} result. * * | Champ | Type | Description | * | --- | --- | --- | * | subscriptionId | string | Id of company subscription to which user profile is assigned (one of the subscriptions available to user's company) | * | offerId | string | Id of the offer to which company subscription is attached | * | offerName | string | Name of the offer to which company subscription is attached | * | offerDescription | string | Description of the offer to which company subscription is attached | * | offerTechnicalDescription | string | Technical description of the subscribed offer | * | offerReference | string | Key used for referencing the subscribed offer. Well know offer References are: RB-Essential, RB-Business, RB-Enterprise, RB-Conference. | * | profileId | string | Id of the profile to which company subscription is attached | * | profileName | string | Name of the profile to which company subscription is attached | * | status | string | Status of the company subscription to which user profile is assigned

    Possible values: `active`, `alerting`, `hold`, `terminated` | * | isDefault | boolean | Indicates if this profile is linked to user's company's subscription to default offer (i.e. Essential) | * | canBeSold | boolean | Indicates if this profile is linked a subscription for a paid offer.
    Some offers are not be sold (Essential, Beta, Demo, ...).
    If canBeSold is true, the subscription is billed. | * | businessModel | string | Indicates the business model associated to the subscribed offer (number of users, usage, ...)

    * `nb_users`: Licencing business model. Offers having this business model are billed according to the number of users bought for it. This should be the business model for Business and Enterprise offers.
    * `usage`: Offers having this business model are billed based on service consumption (whatever the number of users assigned to the subscription of this offer). This should be the business model for Conference offer.
    * `none`: no business model. Used for offers which are not sold (like Essential, Beta, ...).

    Possible values : `nb_users`, `usage`, `none` | * | isExclusive | boolean | Indicates if this profile is relative to a subscription for an exclusive offer (if the user has already an exclusive offer assigned, it won't be possible to assign a second exclusive offer).
    Used on GUI side to know if the subscription to assign to a user profile has to be displayed as a radio button or as a check box. | * | isPrepaid | boolean | Indicates if this profile is relative to a subscription for a prepaid offer | * | expirationDate | Date-Time | Expiration date of the subscription to the prepaid offer (creationDate + prepaidDuration) | * | provisioningNeeded | Object\[\] | Indicates if provisioning is needed on other component when assigning the user profile to this subscription (depends of thus subscribed offer) | * | providerType | string | If provisioningNeeded is set, each element of the array must contain providerType. providerType defines the component on which the provisioning is needed when subscribing to this offer (provisioning is launched asynchronously when Business Store confirms through the callback that the subscription is created).

    Possible values : `PGI`, `JANUS` | * | mediaType optionnel | string | Only set if provisioningNeeded is set and the element of the array has providerType `JANUS`. Corresponds to the media type to use when provisioning the company account on JANUS component.

    Possible values : `webrtc` | * | provisioningOngoing | boolean | boolean indicating if the account is being provisioned on the other component. If set to false, the account has been successfully created on the component. | * | provisioningStartDate | string | Provisioning starting date | * | assignationDate | string | Date when the subscription was attached to user profile | * */ getAUserProfilesByUserId(userId?: string): Promise; /** * @public * @nodered true * @method getAUserProfilesByUserEmail * @since 2.11.0 * @instance * @async * @category Offers and Subscriptions. * @param {string} email the email of the user. If not provided, the connected user is used. * @description * Method to retrieve the profiles of a user by his email.
    * @return {Promise} result. * * | Champ | Type | Description | * | --- | --- | --- | * | subscriptionId | string | Id of company subscription to which user profile is assigned (one of the subscriptions available to user's company) | * | offerId | string | Id of the offer to which company subscription is attached | * | offerName | string | Name of the offer to which company subscription is attached | * | offerDescription | string | Description of the offer to which company subscription is attached | * | offerTechnicalDescription | string | Technical description of the subscribed offer | * | offerReference | string | Key used for referencing the subscribed offer. Well know offer References are: RB-Essential, RB-Business, RB-Enterprise, RB-Conference. | * | profileId | string | Id of the profile to which company subscription is attached | * | profileName | string | Name of the profile to which company subscription is attached | * | status | string | Status of the company subscription to which user profile is assigned

    Possible values: `active`, `alerting`, `hold`, `terminated` | * | isDefault | boolean | Indicates if this profile is linked to user's company's subscription to default offer (i.e. Essential) | * | canBeSold | boolean | Indicates if this profile is linked a subscription for a paid offer.
    Some offers are not be sold (Essential, Beta, Demo, ...).
    If canBeSold is true, the subscription is billed. | * | businessModel | string | Indicates the business model associated to the subscribed offer (number of users, usage, ...)

    * `nb_users`: Licencing business model. Offers having this business model are billed according to the number of users bought for it. This should be the business model for Business and Enterprise offers.
    * `usage`: Offers having this business model are billed based on service consumption (whatever the number of users assigned to the subscription of this offer). This should be the business model for Conference offer.
    * `none`: no business model. Used for offers which are not sold (like Essential, Beta, ...).

    Possible values : `nb_users`, `usage`, `none` | * | isExclusive | boolean | Indicates if this profile is relative to a subscription for an exclusive offer (if the user has already an exclusive offer assigned, it won't be possible to assign a second exclusive offer).
    Used on GUI side to know if the subscription to assign to a user profile has to be displayed as a radio button or as a check box. | * | isPrepaid | boolean | Indicates if this profile is relative to a subscription for a prepaid offer | * | expirationDate | Date-Time | Expiration date of the subscription to the prepaid offer (creationDate + prepaidDuration) | * | provisioningNeeded | Object\[\] | Indicates if provisioning is needed on other component when assigning the user profile to this subscription (depends of thus subscribed offer) | * | providerType | string | If provisioningNeeded is set, each element of the array must contain providerType. providerType defines the component on which the provisioning is needed when subscribing to this offer (provisioning is launched asynchronously when Business Store confirms through the callback that the subscription is created).

    Possible values : `PGI`, `JANUS` | * | mediaType optionnel | string | Only set if provisioningNeeded is set and the element of the array has providerType `JANUS`. Corresponds to the media type to use when provisioning the company account on JANUS component.

    Possible values : `webrtc` | * | provisioningOngoing | boolean | boolean indicating if the account is being provisioned on the other component. If set to false, the account has been successfully created on the component. | * | provisioningStartDate | string | Provisioning starting date | * | assignationDate | string | Date when the subscription was attached to user profile | * */ getAUserProfilesByUserEmail(email?: string): Promise; /** * @public * @nodered true * @method getAUserProfilesFeaturesByUserId * @since 2.11.0 * @instance * @async * @category Offers and Subscriptions. * @param {string} userId the id of the user. If not provided, the connected user is used. * @description * Method to retrieve the features profiles of a user by his id.
    * @return {Promise} result. * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | List of feature Objects. | * | featureId | string | Feature unique identifier | * | featureUniqueRef | string | Feature unique reference (to be used for controls on limitations linked to this feature in server/client code) | * | featureName | string | Feature name | * | featureType | string | Feature limitation type (`boolean`, `number`, `string`, `undefined`) | * | isEnabled | boolean | In case feature has type boolean (on/off), is the feature enabled | * | limitMin | Number | In case feature has type number, limit min of the feature (if applicable) | * | limitMax | string | In case feature has type number, limit max of the feature (if applicable) | * | addedDate | Date-Time | Date when the feature was updated for the profile | * | lastUpdateDate | Date-Time | Date when the feature was updated for the profile | * */ getAUserProfilesFeaturesByUserId(userId?: string): Promise; /** * @public * @nodered true * @method getAUserProfilesFeaturesByUserEmail * @since 2.11.0 * @instance * @async * @category Offers and Subscriptions. * @param {string} email the email of the user. If not provided, the connected user is used. * @description * Method to retrieve the features profiles of a user by his email.
    * @return {Promise} result. * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | List of feature Objects. | * | featureId | string | Feature unique identifier | * | featureUniqueRef | string | Feature unique reference (to be used for controls on limitations linked to this feature in server/client code) | * | featureName | string | Feature name | * | featureType | string | Feature limitation type (`boolean`, `number`, `string`, `undefined`) | * | isEnabled | boolean | In case feature has type boolean (on/off), is the feature enabled | * | limitMin | Number | In case feature has type number, limit min of the feature (if applicable) | * | limitMax | string | In case feature has type number, limit max of the feature (if applicable) | * | addedDate | Date-Time | Date when the feature was updated for the profile | * | lastUpdateDate | Date-Time | Date when the feature was updated for the profile | * */ getAUserProfilesFeaturesByUserEmail(email?: string): Promise; /** * @public * @method checkCSVdata * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId companyId of the users in the CSV file, default to admin's companyId * @param {string} delimiter the CSV delimiter character (will be determined by analyzing the CSV file if not provided) * @param {string} comment="%" the CSV comment start character, use double quotes in field values to escape this character * @param {any} data body of the POST. * @description * This API checks a CSV UTF-8 content for mass-provisioning. Caution: To use the comment character ('%' by default) in a field value, surround this value with double quotes.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | * check results summary | * | reqId | string | * check request identifier | * | mode | string | * request csv mode

    Possible values : `user`, `device` | * | actions | Object | * actions information | * | add optionnel | Number | * number of user add actions | * | update optionnel | Number | * number of user update actions | * | remove optionnel | Number | * number of user remove actions | * | attach optionnel | Number | * number of device pairing actions | * | force_attach optionnel | Number | * number of device forced pairing actions | * | columns | Number | * number of columns in the CSV | * | detach optionnel | Number | * number of device unpairing actions | * | delimiter | string | * the CSV delimiter | * | profiles | Object | * the managed profiles | * | name | string | * the managed profiles name | * | valid | Boolean | * the managed profiles validity | * | assignedBefore | Number | * the assigned number of managed profiles before this import | * | assignedAfter | Number | * the assigned number of managed profiles after this import has been fulfilled | * | max | Number | * the maximum number of managed profiles available | * */ checkCSVdata(data?: any, companyId?: string, delimiter?: string, comment?: string): Promise; /** * @public * @method deleteAnImportStatusReport * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} reqId the import request id * @description * This API allows to delete the report of an import identified by its reqId.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | * delete status | * | reqId | string | * deleted reqId | * | status | string | * delete status | * */ deleteAnImportStatusReport(reqId?: string): Promise; /** * @public * @method getAnImportStatusReport * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} reqId the import request id * @param {string} format="full" Allows to retrieve more or less report details. * - small: reporting without operation details * - full: reporting with operation details * Default value : full * Possible values : small, full * @description * This API allows to access the report of an import identified by its reqId.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | * import report | * | reqId | string | * import request identifier | * | mode | string | * provisioning mode

    Possible values : `user`, `device`, `rainbowvoice` | * | status | string | * request status | * | report | Object | * request report | * | status | string | * action status | * | action | string | * the fulfilled action | * | userId | string | * Rainbow user Id | * | failingLines | string\[\] | * CSV lines that failed | * | line optionnel | string | * associated CSV line in an error case | * | counters | Object | * request counters | * | succeeded | Integer | * '#' of succeeded action | * | failed | Integer | * '#' of failed action | * | label | string | * description of the import | * | total | Integer | * total '#' of actions | * | userId | string | * id of the requesting user | * | displayName | string | * the requesting user displayname | * | companyId | string | * the default company Id | * | startTime | string | * the import processing start time | * | profiles | Object | * provides info about licences used | * | subscriberReport optionnel | Object | * provides details about subscriber action (attach, update or detach action) - only in case of rainbowvoice mode | * | sipDeviceReport optionnel | Object | * provides details about sip Device action (attach or detach action) - only in case of rainbowvoice mode | * | ddiReport optionnel | Object | * provides details about ddi action (attach or detach action) - only in case of rainbowvoice mode | * | endTime | string | * the import processing end time | * */ getAnImportStatusReport(reqId?: string, format?: string): Promise; /** * @public * @method getAnImportStatus * @since 2.18.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId="user s company id" the company id. Default value is the current company. * @description * This API provides a short status of the last import (completed or pending) of a company directory.
    *
    * superadmin can get the status of the import of the directory of any company.
    * bp_admin can only get the status of the import of the directory of their own companies or their End Customer companies.
    * organization_admin can only get the status of the import of the directory of the companies under their organization.
    * company_admin and directory_admin can only get the status of the import of the directory of their onw companies.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | | * | state | string | Import state

    Possible values : `"Initializing"`, `"Creating"`, `"Completed successfully"`, `"Completed with failure"` | * | companyId | string | Id of the company of the directory | * | userId | string | Id of the requesting user | * | displayName | string | Display name of the requesting user | * | label | string | Description of the import | * | csvHeaders | string | CSV header line (Fields names) | * | startTime | string | Import processing start time | * | created | Integer | Count of created entries | * | failed | Integer | Count of failed entries | * */ getAnImportStatus(companyId?: string): Promise; /** * @public * @method getInformationOnImports * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId the companyId to list imports of * @param {boolean} ldapConfigId Allows to filter users containing a ldap_id and the ldapConfigId of the ldap domain. * @description * This API provides information on all imports of the administrator's company.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | reqId | string | * import request identifier | * | status | string | * import status | * | userId | string | * id of the requesting user | * | displayName | string | * display name of the requesting user | * | mode | string | * provisioning mode

    Possible values : `user`, `device`, `rainbowvoice` | * | label | string | * description of the import | * | startTime | string | * the import processing start time | * | endTime | string | * the import processing end time | * | counters | Object | * the import processing operation status counters | * | data | Object\[\] | * list of company imports | * | succeeded | Integer | * '#' of succeeded actions | * | failed | Integer | * '#' of failed actions | * | warnings | Integer | * '#' actions with warnings | * | total | Integer | * total '#' of actions | * */ getInformationOnImports(companyId?: string, ldapConfigId?: string): Promise; /** * @public * @method getResultOfStartedOffice365TenantSynchronizationTask * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} tenant Office365 tenant * @param {string} format="json" Allows to retrieve more or less phone numbers details in response. * - json: answer follows the pattern { "data" : { ... JSON ... }} * - csv: answer follows the pattern { "data" : [ ... CSV ... ]} * - all: answer follows the pattern { "data" : { jsonContent: {...........}, csvContent: [ , , ; , , ] }} * Default value : json * Possible values : csv, json, all * @description * This API retrieves data describing all operations required to synchronize an Office365 tenant (csv or json format). * This API returns the result of a prior SynchronizeTenantTaskStart that triggers an asynchronous processing for a given tenant.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | status optionnel | string | Asynchronous operation status

    Possible values : `pending` | * | data optionnel | Object | synchronization data | * */ getResultOfStartedOffice365TenantSynchronizationTask(tenant?: string, format?: string): Promise; /** * @public * @method importCSVData * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId ompanyId of the users in the CSV file, default to admin's companyId * @param {string} label="none" a text description of this import. Default value : none * @param {string} noemails=true disable email sending. Default value : true * @param {string} nostrict=false create of an existing user and delete of an unexisting user are not errors. Default value : false * @param {string} delimiter the CSV delimiter character (will be determined by analyzing the CSV file if not provided) * @param {string} comment="%" the CSV comment start character, use double quotes in field values to escape this character * @param {any} data The body of the POST. * @description * This API allows to manage Rainbow users or devices through a CSV UTF-8 encoded file.
    * The first line of the CSV data describes the content format. Most of the field names are the field names of the admin createUser API.
    * Caution: To avoid multiple imports of same CSV data, the reqId returned to access the import status is a hash of the CSV data.
    * If you really need to apply same CSV data again, you will have to delete its associated import report first.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | * import summary | * | reqId | string | * import request identifier | * | mode | string | * provisioning mode

    Possible values : `user`, `device` | * | status | string | * Current import state, should be 'Pending' | * | userId | string | * id of the requesting user | * | displayName | string | * display name of the requesting user | * | label | string | * description of the import | * | startTime | string | * the import processing start time | * */ importCSVData(data?: any, companyId?: string, label?: string, noemails?: boolean, nostrict?: boolean, delimiter?: string, comment?: string): Promise; /** * @public * @method startsAsynchronousGenerationOfOffice365TenantUserListSynchronization * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} tenant Office365 tenant * @description * This API generates data describing all operations required to synchronize an Office365 tenant (csv or json format).
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Asynchronous operation status

    Possible values : `pending` | * */ startsAsynchronousGenerationOfOffice365TenantUserListSynchronization(tenant?: string): Promise; /** * @public * @method synchronizeOffice365TenantUserList * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} tenant Office365 tenant * @param {string} format="json" Allows to retrieve more or less phone numbers details in response. * - json: answer follows the pattern { "data" : { ... JSON ... }} * - csv: answer follows the pattern { "data" : [ ... CSV ... ]} * - all: answer follows the pattern { "data" : { jsonContent: {...........}, csvContent: [ , , ; , , ] }} * Default value : json * Possible values : csv, json, all * @description * This API generates a file describing all operations required to synchronize an Office365 tenant (csv or json format).
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | string | synchronization data. | * */ synchronizeOffice365TenantUserList(tenant?: string, format?: string): Promise; /** * @public * @method checkCSVDataOfSynchronizationUsingRainbowvoiceMode * @since 2.12.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId companyId of the users in the CSV file, default to admin's companyId * @param {string} delimiter the CSV delimiter character (will be determined by analyzing the CSV file if not provided) * @param {string} comment="%" the CSV comment start character, use double quotes in field values to escape this character. Default value : % * @param {any} data The body of the POST. * @description * This API checks a CSV UTF-8 content for mass-provisioning for rainbowvoice mode. Caution: To use the comment character ('%' by default) in a field value, surround this value with double quotes.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | * check results summary | * | reqId | string | * check request identifier | * | mode | string | * request csv mode

    Possible values : `rainbowvoide` | * | actions | Object | * actions information | * | upsert optionnel | Number | * number of user create/update actions | * | delete optionnel | Number | * number of user remove actions | * | columns | Number | * number of columns in the CSV | * | detach optionnel | Number | * number of device unpairing actions | * | delimiter | string | * the CSV delimiter | * | profiles | Object | * the managed profiles | * | name | string | * the managed profiles name | * | valid | Boolean | * the managed profiles validity | * | assignedBefore | Number | * the assigned number of managed profiles before this import | * | assignedAfter | Number | * the assigned number of managed profiles after this import has been fulfilled | * | max | Number | * the maximum number of managed profiles available | * */ checkCSVDataOfSynchronizationUsingRainbowvoiceMode(data?: any, companyId?: string, delimiter?: string, comment?: string): Promise; /** * @public * @method updateCommandIdStatus * @since 2.14.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} data body of the POST. Body : { * status : `success` or `failure`, // status for the execution of the command * details : string // details that can be provided about the command execution * } * * @param {string} commandId commandId which came from connector on behalf of admin command * @description * This API is used to update the status of the commandId.
    *
    * @return {Promise} result. * */ updateCommandIdStatus(data?: any, commandId?: string): Promise; /** * @public * @method synchronizeUsersAndDeviceswithCSV * @since 1.86.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} csvTxt the csv of the user and device to synchronize. * @param {string} companyId ompanyId of the users in the CSV file, default to admin's companyId * @param {string} label a text description of this import * @param {boolean} noemails=true disable email sending * @param {boolean} nostrict=false create of an existing user and delete of an unexisting user are not errors * @param {string} delimiter the CSV delimiter character (will be determined by analyzing the CSV file if not provided) * @param {string} comment="%" the CSV comment start character, use double quotes in field values to escape this character * @param {string} commandId Command identifier. When runing the manual synchro, the commandId must be added as query parameter. * @param {string} ldapConfigId Allows to specify the ldap domain on which the command should be run (in case of multi domain). * @description * This API allows to synchronize Rainbow users or devices through a CSV UTF-8 encoded file. it is a merge from user mode and device mode
    * The first line of the CSV data describes the content format. Most of the field names are the field names of the admin createUser API.
    *
    * Supported fields for "user" management are:
    * __action__ delete, upsert, sync or detach
    * loginEmail (mandatory)
    * password (mandatory)
    * title
    * firstName
    * lastName
    * nickName
    * businessPhone{n} (n is a number starting from 0 or 1)
    * mobilePhone{n} (n is a number starting from 0 or 1)
    * email{n} (n is a number starting from 0 or 1)
    * tags{n} (n is a number starting from 0 to 4)
    * jobTitle
    * department
    * userInfo1
    * userInfo2
    * country
    * language
    * timezone
    * visibility
    * isInitialized
    * authenticationType
    * service{n}
    * accountType
    * photoUrl
    *
    * Supported fields for "device" management are:
    * loginEmail (mandatory)
    * pbxId
    * pbxShortNumber
    * pbxInternalNumber
    * number
    *
    * detach: allows to detach an PBX extension from a user. delete: allows to delete a user. upsert: allows to modify user (update or create if doesn't exists) and device (force attach if filled) with filled fields. Remark: empty fields are not taken into account. sync: allows to modify user (update or create if doesn't exists) and device (force attach if filled, detach if empty) with filled fields.
    * Remark: empty fields are taken into account (if a field is empty we will try to update it with empty value).
    *
    * Caution: To use the comment character ('%' by default) in a field value, surround this value with double quotes. Caution: for sync action:
    * As empty fields are taken into account, all fields must be filled to avoid a reset of these values
    * As empty fields are taken into account, it is better to avoid mixing sync __action__ with others actions
    *
    * @return {Promise} import summary result. */ synchronizeUsersAndDeviceswithCSV(csvTxt?: string, companyId?: string, label?: string, noemails?: boolean, nostrict?: boolean, delimiter?: string, comment?: string, commandId?: string, ldapConfigId?: string): Promise<{ reqId: string; mode: string; status: string; userId: string; displayName: string; label: string; startTime: string; }>; /** * @public * @method getCSVTemplate * @since 1.86.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId ompanyId of the users in the CSV file, default to admin's companyId. * @param {string} mode="useranddevice" Select template to return. * - user: provider the user management template * - device: provider the device management template * - useranddevice: provider the user and device management template (both user and device) * - rainbowvoice : provider the user and subscriber/DDI/device association management template. * @param {string} comment Only the template comment.. * @description * This API provides a CSV template.
    * result :
    * CSV {Object[]} lines with all supported headers and some samples :
    * __action__ {string} Action to perform values : create, update, delete, upsert, detach
    * loginEmail {string} email address - Main or professional email used as login
    * password optionnel {string} (>= 8 chars with 1 capital+1 number+1 special char) (e.g. This1Pwd!)
    * title optionnel {string} (e.g. Mr, Mrs, Dr, ...)
    * firstName optionnel {string}
    * lastName optionnel {string}
    * nickName optionnel {string}
    * businessPhone0 optionnel {string} E.164 number - DDI phone number (e.g. +33123456789)
    * mobilePhone0 optionnel {string} E.164 number - Mobile phone number (e.g. +33601234567)
    * email0 optionnel {string} email address - Personal email
    * jobTitle optionnel {string}
    * department optionnel {string}
    * country optionnel {string} ISO 3166-1 alpha-3 - (e.g. FRA)
    * language optionnel {string} ISO 639-1 (en) / with ISO 31661 alpha-2 (en-US)
    * timezone optionnel {string} IANA tz database (Europe/Paris)
    * pbxShortNumber optionnel {number} PBX extension number
    * pbxInternalNumber optionnel {string} E.164 number - Private number when different from extension number
    * selectedAppCustomisationTemplateName optionnel {string} Allow to specify an application customisation template for this user. The application customisation template has to be specified using its name (ex: "Chat and Audio", "Custom profile") Values( Full, Phone, calls, only, Audio, only, Chat, and, Audio, Same, as, company, , profile)
    * shortNumber optionnel string subscriber {number} (only for rainbowvoice mode)
    * macAddress optionnel {string} macAddress of the associated SIP device of the subscriber (only for rainbowvoice mode)
    * ddiE164Number optionnel string E.164 {number} - E164 number of the associted DDI of the subscriber (only for rainbowvoice mode)
    * @return {Promise} */ getCSVTemplate(companyId?: string, mode?: string, comment?: string): Promise; /** * @public * @method checkCSVforSynchronization * @since 1.86.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} CSVTxt CSV File content to be checked. * @param {string} companyId ompanyId of the users in the CSV file, default to admin's companyId. * @param {string} delimiter the CSV delimiter character (will be determined by analyzing the CSV file if not provided). * @param {string} comment= "%" the CSV comment start character, use double quotes in field values to escape this character. * @param {string} commandId if the check csv request comes from connector on behalf of admin command, it will generates a report. * @description * This API checks a CSV UTF-8 content for mass-provisioning for useranddevice mode.
    * Caution: To use the comment character ('%' by default) in a field value, surround this value with double quotes.
    * {
    * actions {Object} actions information
    * sync optionnel {number} number of user synchronization actions
    * upsert optionnel {number} number of user create/update actions
    * delete optionnel {number} number of user remove actions
    * detach optionnel {number} number of device unpairing actions
    * reqId {string} check request identifier
    * mode {string} request csv mode Possible values : user, device
    * columns {number} number of columns in the CSV
    * delimiter {string} the CSV delimiter
    * profiles {Object} the managed profiles
    * name {string} the managed profiles name
    * valid {boolean} the managed profiles validity
    * assignedBefore {number} the assigned number of managed profiles before this import
    * assignedAfter {number} the assigned number of managed profiles after this import has been fulfilled
    * max number the {maximum} number of managed profiles available
    * }
    * @return {Promise} */ checkCSVforSynchronization(CSVTxt: string, companyId?: string, delimiter?: string, comment?: string, commandId?: string): Promise; /** * @public * @method getCheckCSVReport * @since 2.5.1 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} commandId used in the check csv request whicj came from connector on behalf of admin command * @description * This API retrieves the last checks CSV UTF-8 content for mass-provisioning for useranddevice mode, performed by an admin (using a commandId).
    * @return {Promise} * * * | Champ | Type | Description | * | --- | --- | --- | * | report | Object | * check results summary | * | status | string | * status of the check csv

    Possible values : `success`, `failure`, `pending` | * | reqId | string | * check request identifier | * | mode | string | * request csv mode

    Possible values : `user`, `device` | * | actions | Object | * actions information | * | sync optionnel | Number | * number of user synchronization actions | * | upsert optionnel | Number | * number of user create/update actions | * | delete optionnel | Number | * number of user remove actions | * | columns | Number | * number of columns in the CSV | * | detach optionnel | Number | * number of device unpairing actions | * | delimiter | string | * the CSV delimiter | * | profiles | Object | * the managed profiles | * | name | string | * the managed profiles name | * | valid | Boolean | * the managed profiles validity | * | assignedBefore | Number | * the assigned number of managed profiles before this import | * | assignedAfter | Number | * the assigned number of managed profiles after this import has been fulfilled | * | max | Number | * the maximum number of managed profiles available | * */ getCheckCSVReport(commandId: string): Promise; /** * @public * @method importRainbowVoiceUsersWithCSVdata * @since 2.5.1 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId ompanyId of the users in the CSV file, default to admin's companyId * @param {string} label a text description of this import. default undefined. * @param {boolean} noemails=true disable email sending. default true. * @param {boolean} nostrict=false create of an existing user and delete of an unexisting user are not errors. default false. * @param {string} delimiter the CSV delimiter character (will be determined by analyzing the CSV file if not provided). * @param {string} comment="%" the CSV comment start character, use double quotes in field values to escape this character. default "%" * @param {string} csvData the csv of the user and device to synchronize. * @description * This API allows to perform provisioning for Rainbow Voice (Rainbow Users and Subscribers management + DDIs and Sip devices attachment) through a CSV UTF-8 encoded file.
    * The first line of the CSV data describes the content format.
    * Most of the field names are the field names of the admin createUser API.
    * Additional field used for Subscriber management is: shortNumber
    * Additional field used for DDI attachment is: ddiE164Number
    * Additional field used for Sip device attachment is: macAddress
    *
    * Supported fields for "user" management are:
    * __action__    upsert, delete or detach
    * loginEmail    (mandatory)
    * password    (mandatory)
    * title
    * firstName
    * lastName
    * nickName
    * businessPhone{n}    (n is a number starting from 0 or 1)
    * mobilePhone{n}    (n is a number starting from 0 or 1)
    * email{n}    (n is a number starting from 0 or 1)
    * tags{n}    (n is a number starting from 0 to 4)
    * jobTitle
    * department
    * userInfo1
    * userInfo2
    * country
    * language
    * timezone
    * visibility
    * isInitialized
    * authenticationType
    * service{n}
    * accountType
    * photoUrl
    *
    * Supported fields for "subscriber" management are:
    *
    * loginEmail    (mandatory)
    * shortNumber
    *
    * Supported fields for "SIP Device" management are:
    *
    * loginEmail    (mandatory)
    * macAddress
    *
    * Supported fields for "DDI" management are:
    *
    * loginEmail    (mandatory)
    * ddiE164Number
    *
    * __action__ description :
    * upsert: allows to modify user (update or create if doesn't exist). It attaches also a subscriber (if field shortNumber is filled) , attaches a Sip Device (if field macAddress is filled) and attaches a DDI (if field ddiE164Number is filled)
    * Remark: empty fields are not taken into account.
    *
    * detach: allows to detach subscriber (if field shortNumber is filled) ; to detach Sip Device (if field macAddress is filled) and to detach DDI (if field ddiE164Number is filled)
    * If field shortNumber is filled; detach action is done not only on subscriber but also on Sip Device and DDI automatically (even if fields macAddress and ddiE164Number are not filled)
    *
    * delete: allows to delete a user (if user is attached to a subscriber ; this subscriber + DDI + Sip device are automatically detached)
    *
    * Caution: To use the comment character ('%' by default) in a field value, surround this value with double quotes.
    *
    * Caution: To avoid multiple imports of same CSV data, the reqId returned to access the import status is a hash of the CSV data. If you really need to apply same CSV data again, you will have to delete its associated import report first.
    *
    * Error codes:
    * 2001 'company {companyId} has no Cloud Pbx'
    * 2002 'ShortNumber {shortNumber} not in line with Cloud PBX Numbering Plan for company {companyId}'
    * 2003 'ShortNumber {shortNumber} is already assigned to someone else inside this company {companyId}'
    * 2004 'user {userId} is already assigned into another PBX of the company {companyId}'
    * 2005 'failed to create subscriber for user {userId} with shortNumber {shortNumber} into system {systemId}'
    * 2006 'failed to update subscriber number for user {userId} with this new shortNumber {shortNumber} into system {systemId}'
    * 2007 'there is no existing Sip Device with this macAddress {macAddress}'
    * 2008 'the existing Sip Device with this macAddress {macAddress} is not belonging to the requested company {companyId}'
    * 2009 'the existing Sip Device with this macAddress {macAddress} is attached to someone else: userId={userId}'
    * 2010 'another Sip Device with macAddress {macAddress} is attached to user={userId}'
    * 2011 'cannot assign/unassign a Sip device to this user {userId} ; he is not yet a subscriber'
    * 2012 'failed to attach this Sip Device {macAddress} with this user {userId} %s'
    * 2013 'cannot assign a DDI to this user {userId} ; he is not yet a subscriber'
    * 2014 'there is no existing DDI with this number {ddiE164Number}'
    * 2015 'the existing DDI with this number {ddiE164Number} is attached to someone else: userId={userId}'
    * 2016 'another DDI with number {ddiE164Number} is attached to user={userId}'
    * 2017 'failed to attach this DDI {ddiE164Number} with this user {userId}'
    * 2018 'failed to detach subscriber for user {userId}, no shortNumber is provided'
    * 2019 'failed to detach this subscriber {shortNumber into the request} from this user {userId}, user is attached to another subscriber {real subscriber shortNumber}'
    * 2020 'cannot detach a DDI to this user {userId} ; he is no more a subscriber'
    * 2021 'failed to detach this DDI {ddiE164Number} with this user {userId}'
    * 2022 'failed to detach this Sip Device {macAddress} with this user {userId}'
    *
    * * Sample : * * __action__;loginEmail ;shortNumber; macAddress ; ddiE164Number ;password ;title;firstName ;lastName;language;service0 ;service1 * upsert ;lupin00@ejo.company.com ; ; ; ;Password_123 ;Mr ;Arsene00 ;Lupin ;fr ;"Enterprise Demo";"Voice Enterprise 3-Year prepaid" * upsert ;lupin01@ejo.company.com ; 81011 ; ; ;Password_123 ;Mr ;Arsene01 ;Lupin ;fr ;"Enterprise Demo";"Voice Enterprise 3-Year prepaid" * upsert ;lupin02@ejo.company.com ; 81012 ; aa:bb:cc:dd:ee:02 ; ;Password_123 ;Mr ;Arsene02 ;Lupin ;fr ;"Enterprise Demo";"Voice Enterprise 3-Year prepaid" * delete ;lupin13@ejo.company.com ; 81023 ; aa:bb:cc:dd:ee:13 ; 33298300513 ;Password_123 ;Mr ;Arsene13 ;Lupin ;fr ;"Enterprise Demo";"Voice Enterprise 3-Year prepaid" * delete ;lupin14@ejo.company.com ; ; ; ; ; ; ; ; ; ; * * return an {Object} .
    * @return {Promise} */ importRainbowVoiceUsersWithCSVdata(companyId: string, label: string, noemails: boolean, nostrict: boolean, delimiter: string, comment: string, csvData: string): Promise; /** * @public * @method retrieveRainbowUserList * @since 1.86.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @param {string} companyId ompanyId of the users in the CSV file, default to admin's companyId. * @param {string} format="csv" Allows to retrieve more or less phone numbers details in response.
    * - json: answer follows the pattern { "data" : { ... JSON ... }} * - csv: answer follows the pattern { "data" : [ ... CSV ... ]} * - all: answer follows the pattern { "data" : { jsonContent: {...........}, csvContent: [ , , ; , , ] }} * * Default value : json. Possible values : csv, json, all . * @param {boolean} ldap_id=true Allows to filter users containing a ldap_id. Default value : true. * @param {boolean} ldapConfigId Allows to filter users containing a ldap_id and the ldapConfigId of the ldap domain. * @description * This API generates a file describing all users (csv or json format).
    * return an {Object} of synchronization data.
    * @return {Promise} */ retrieveRainbowUserList(companyId?: string, format?: string, ldap_id?: boolean, ldapConfigId?: string): Promise; /** * @public * @method checkCSVdataForSynchronizeDirectory * @since 2.15.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @description * This API checks a CSV UTF-8 content for mass-provisioning for directory mode.
    * All the entries defined in the CSV data are relative to the same company directory.
    * In case a query parameter commandId is added, the following event is sent to the initiator of the command: "rainbow_onconnectorcommandended"
    *
    * The first line of the CSV file describes the content format. Most of the field names are the same than the field names of the company directory API - Create a directory entry.
    * Supported fields are:
    * __action__ : delete, upsert or sync
    * ldap_id : (mandatory)
    * *
    * firstName
    * lastName
    * companyName
    * workPhoneNumber{n} : (n is a number starting from 0 or 9)
    * mobilePhoneNumber{n} : (n is a number starting from 0 or 9)
    * otherPhoneNumber{n} : (n is a number starting from 0 or 9)
    * tag{n} : (n is a number starting from 0 to 4)
    * department
    * street
    * city
    * postalCode
    * state
    * country
    * jobTitle
    * eMail
    * custom1
    * custom2
    *
    * delete: allows to delete an entry. upsert: allows to modify an entry (update or create if doesn't exists) with filled fields.
    * Remark: empty fields are not taken into account. sync: allows to modify an entry (update or create if doesn't exists) with filled fields.
    * Remark: empty fields are taken into account (if a field is empty we will try to update it with empty value).
    *
    * return an {Object} of synchronization data.
    * @return {Promise} * @param {string} delimiter="%" CSV delimiter character (will be determined by analyzing the CSV file if not provided) * @param {string} comment CSV comment start character. Default value : % * @param {string} commandId commandId if the check csv request comes from connector on behalf of admin command, ity will generates a report * @param {string} commandId label A text description of this import * @param {string} csvData string with the body of the CSV data. */ checkCSVdataForSynchronizeDirectory(delimiter: string, comment: string, commandId: string, csvData: string): Promise; /** * @public * @method importCSVdataForSynchronizeDirectory * @since 2.15.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @description * This API allows to import the entries of a company directory with CSV UTF-8 encoded data.
    * All the entries defined in the CSV data are relative to the same company directory.
    * In case a query parameter commandId is added, the following event is sent to the initiator of the command: "rainbow_onconnectorcommandended"
    *
    * The first line of the CSV file describes the content format. Most of the field names are the same than the field names of the company directory API - Create a directory entry.
    * Supported fields are:
    * __action__ : delete, upsert or sync
    * ldap_id : (mandatory)
    * *
    * firstName
    * lastName
    * companyName
    * workPhoneNumber{n} : (n is a number starting from 0 or 9)
    * mobilePhoneNumber{n} : (n is a number starting from 0 or 9)
    * otherPhoneNumber{n} : (n is a number starting from 0 or 9)
    * tag{n} : (n is a number starting from 0 to 4)
    * department
    * street
    * city
    * postalCode
    * state
    * country
    * jobTitle
    * eMail
    * custom1
    * custom2
    *
    * delete: allows to delete an entry. upsert: allows to modify an entry (update or create if doesn't exists) with filled fields.
    * Remark: empty fields are not taken into account. sync: allows to modify an entry (update or create if doesn't exists) with filled fields.
    * Remark: empty fields are taken into account (if a field is empty we will try to update it with empty value).
    *
    * return an {Object} of synchronization data.
    * @return {Promise} * @param {string} delimiter="%" CSV delimiter character (will be determined by analyzing the CSV file if not provided) * @param {string} comment CSV comment start character. Default value : % * @param {string} commandId commandId if the check csv request comes from connector on behalf of admin command, ity will generates a report * @param {string} label="none" A text description of this import. Default value : none * @param {string} csvData string with the body of the CSV data. * @param {string} ldapConfigId Allows to specify the ldap domain on which the command should be run (in case of multi domain). */ importCSVdataForSynchronizeDirectory(delimiter: string, comment: string, commandId: string, label: string, csvData: string, ldapConfigId?: string): Promise; /** * @public * @method getCSVReportByCommandId * @since 2.15.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @description * This API retrieves the last import CSV UTF-8 content for mass-provisioning for directory mode, performed by an admin (using a commandId).
    *
    * return {
    * status : string, // status of the check csv. Possible values : success, failure, pending
    * report : Object, // check results summary
    * companyId : string, // Id of the company of the directory
    * userId : string, Id of the requesting user
    * displayName : string Display name of the requesting user
    * label : string Description of the import
    * csvHeaders : string CSV header line (Fields names)
    * startTime : string Import processing start time
    * created : number Count of created entries
    * updated : number Count of updated entries
    * deleted : number Count of deleted entries
    * failed : Integer Count of failed entries
    * }
    * * return an {Object} of synchronization data.
    * @return {Promise} * @param {string} commandId commandId used in the import csv request which came from connector on behalf of admin command. */ getCSVReportByCommandId(commandId: string): Promise; /** * @public * @method createCSVReportByCommandId * @since 2.15.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @description * This API allows to create a report for a commandId in case no other API is called (no action to be performed, error, ...).
    *
    * return {
    * status : string, // status of the check csv. Possible values : success, failure, pending
    * report : Object, // check results summary
    * details : string details for for report
    * }
    * * return an {Object} of synchronization data.
    * @return {Promise} * @param {string} commandId commandId used in the import csv request which came from connector on behalf of admin command. * @param {Object} data The body of the request : { * status : string, // status for the execution of the command Possible values : success, failure * details : string, // details that can be provided about the command execution * } */ createCSVReportByCommandId(commandId: string, data: any): Promise; /** * @public * @method retrieveRainbowEntriesList * @since 2.15.0 * @instance * @async * @category AD/LDAP - AD/LDAP Massprovisioning * @description * This API generates a file describing all companies entries (csv or json format).
    *
    * * return an {Object} of result data.
    * @return {Promise} * @param {string} companyId companyId from which to retrieve entries, default to admin's companyId * @param {string} format="json" Allows to retrieve more or less phone numbers details in response. Default value : json. Possible values : csv, json, all * @param {boolean} ldap_id=true Allows to filter entries containing a ldap_id.
    * - json: answer follows the pattern { "data" : { ... JSON ... }}
    * - csv: answer follows the pattern { "data" : [ ... CSV ... ]}
    * - all: answer follows the pattern { "data" : { jsonContent: {...........}, csvContent: [ , , ; , , ] }}
    *
    * Default value : true
    */ retrieveRainbowEntriesList(companyId?: string, format?: string, ldap_id?: boolean): Promise; /** * @public * @method ActivateALdapConnectorUser * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @description * This API allows to activate a Ldap connector.
    * A "Ldap user" is created and registered to the XMPP services. The Ldap user credentials (loginEmail and password) are generated randomly and returned in the response.
    *
    * Note 1 A brute force defense is activated when too much activation have been requested. As a result, an error 429 "Too Many Requests" will be returned during an increasing period to dissuade a slow brute force attack.
    * Note 2 Ldap's company should have an active subscription to to activate Ldap. If subscription linked to Ldap is not active or it has no more remaining licenses, error 403 is thrown
    * Note 3 Ldap's company should have an SSO authentication Type, and it must be the default authentication Type for users. If company doesn't have an SSO or have one but not a default one, error 403 is thrown
    *
    * @return {Promise<{ id : string, companyId : string, loginEmail : string, password : string}>} - *
    * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Ldap connector unique identifier. | * | companyId | string | Company linked to the Ldap connector. | * | loginEmail | string | Generated Ldap connector user login ("throwaway" email address, never used by rainbow to send email). | * | password | string | Generated Ldap connector user password. | * */ ActivateALdapConnectorUser(): Promise<{ id: string; companyId: string; loginEmail: string; password: string; }>; /** * @public * @method deleteLdapConnector * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} ldapId the Id of the ldap connector to delete. * @description * This API is to delete the connector
    * **BP Admin** and **BP Finance** users can only delete users being in a company linked to their BP company.
    * **Admin** users can only delete users being in their own company. (superadmin, organization\_admin, company\_admin) * return {
    * status {string} Delete operation status message.
    * }
    * @return {Promise<{ status : string}>} */ deleteLdapConnector(ldapId: string): Promise<{ status: string; }>; /** * @public * @method retrieveAllLdapConnectorUsersData * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} companyId the id of the company that allows to filter connectors list on the companyIds provided in this option. * @param {string} format="small" Allows to retrieve more or less user details in response. * small: id, loginEmail, firstName, lastName, displayName, companyId, companyName, isTerminated * medium: id, loginEmail, firstName, lastName, displayName, jid_im, jid_tel, companyId, companyName, lastUpdateDate, lastAvatarUpdateDate, isTerminated, guestMode * full: all user fields * default : small * Values : small, medium, full * @param {number} limit=100 Allow to specify the number of users to retrieve. Default value : 100 * @param {number} offset Allow to specify the position of first user to retrieve (first user if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="displayName" Sort user list based on the given field. Default : displayName * @param {number} sortOrder=1 Specify order when sorting user list. Default : 1. Values : -1, 1 * @description * This API allows administrators to retrieve all the ldap connectors.
    * Users with superadmin, support role can retrieve the connectors from any company.
    * Users with bp_admin or bp_finance role can only retrieve the connectors in companies being End Customers of their BP company (i.e. all the companies having bpId equal to their companyId).
    * Users with admin role can only retrieve the connectors in companies they can manage. That is to say:
    * an organization_admin can retrieve the connectors only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
    * a company_admin can only retrieve the connectors in his company.
    * This API can return more or less connector information using format option in query string arguments (default is small).
    *
    * return { // List of connector Objects.
    * id string TV unique identifier.
    * name string TV name.
    * location optionnel string Location of the TV.
    * locationDetail optionnel string More detail on the location of the TV.
    * room optionnel string Name of the room where the TV is located.
    * companyId string company linked to the TV.
    * activationCode string Activation code (6 digits). The activationCode may be null in the case its generation in multi-environment database failed. In that case, a security mechanism takes place to generate this activation code asynchronously (try every minutes until the code creation is successful). As soon as the activation code is successfully generated in multi-environment database, the TV is updated accordingly (activationCode set to the generated code value) and with activationCodeGenerationStatus updated to done.
    * codeUpdateDate date Date of last activation code update.
    * status string TV status: unassociated (no TV user). associated with a TV user (the TV has been activated).
    * statusUpdatedDate Date-Time Date of last tv status update.
    * subscriptionId string Subscription to use when activating TV.
    * loginEmail string User email address (used for login)
    * firstName string User first name
    * lastName string User last name
    * displayName string User display name (firstName + lastName concatenated on server side)
    * nickName optionnel string User nickName
    * title optionnel string User title (honorifics title, like Mr, Mrs, Sir, Lord, Lady, Dr, Prof,...)
    * jobTitle optionnel string User job title
    * department optionnel string User department
    * tags optionnel string[] An Array of free tags associated to the user. A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters. tags can only be set by users who have administrator rights on the user. The user can't modify the tags. The tags are visible by the user and all users belonging to his organisation/company, and can be used with the search API to search the user based on his tags.
    * emails Object[] Array of user emails addresses objects
    * email string User email address
    * type string Email type, one of home, work, other
    * phoneNumbers Object[] Array of user phone numbers objects. Phone number objects can: be created by user (information filled by user), come from association with a system (pbx) device (association is done by admin).
    * phoneNumberId string Phone number unique id in phone-numbers directory collection.
    * number optionnel string User phone number (as entered by user)
    * numberE164 optionnel string User E.164 phone number, computed by server from number and country fields
    * country string Phone number country (ISO 3166-1 alpha3 format) country field is automatically computed using the following algorithm when creating/updating a phoneNumber entry: If number is provided and is in E164 format, country is computed from E164 number Else if country field is provided in the phoneNumber entry, this one is used Else user country field is used isFromSystem boolean boolean indicating if phone is linked to a system (pbx).
    * shortNumber optionnel string [Only for phone numbers linked to a system (pbx)] If phone is linked to a system (pbx), short phone number (corresponds to the number monitored by PCG). Only usable within the same PBX. Only PCG can set this field.
    * internalNumber optionnel string [Only for phone numbers linked to a system (pbx)] If phone is linked to a system (pbx), internal phone number. Usable within a PBX group. Admins and users can modify this internalNumber field.
    * systemId optionnel string [Only for phone numbers linked to a system (pbx)] If phone is linked to a system (pbx), unique identifier of that system in Rainbow database.
    * pbxId optionnel string [Only for phone numbers linked to a system (pbx)] If phone is linked to a system (pbx), unique identifier of that pbx.
    * type string Phone number type, one of home, work, other.
    * deviceType string Phone number device type, one of landline, mobile, fax, other.
    * isVisibleByOthers boolean Allow user to choose if the phone number is visible by other users or not. Note that administrators can see all the phone numbers, even if isVisibleByOthers is set to false. Note that phone numbers linked to a system (isFromSystem=true) are always visible, isVisibleByOthers can't be set to false for these numbers.
    * country string User country (ISO 3166-1 alpha3 format)
    * state optionnel string When country is 'USA' or 'CAN', a state can be defined. Else it is not managed (null).
    * language optionnel string User language (ISO 639-1 code format, with possibility of regional variation. Ex: both 'en' and 'en-US' are supported)
    * timezone optionnel string User timezone name
    * jid_im string User Jabber IM identifier
    * jid_tel string User Jabber TEL identifier
    * jid_password string User Jabber IM and TEL password
    * roles string[] List of user roles (Array of string) Note: company_support role is only used for support redirection. If a user writes a #support ticket and have the role company_support, the ticket will be sent to ALE's support (otherwise the ticket is sent to user's company's supportEmail address is set, ALE otherwise).
    * adminType string In case of user's is 'admin', define the subtype (organisation_admin, company_admin, site_admin (default undefined)
    * organisationId string In addition to User companyId, optional identifier to indicate the user belongs also to an organization
    * siteId string In addition to User companyId, optional identifier to indicate the user belongs also to a site
    * companyName string User company name
    * visibility string User visibility Define if the user can be searched by users being in other company and if the user can search users being in other companies. Visibility can be:
    * same_than_company: The same visibility than the user's company's is applied to the user. When this user visibility is used, if the visibility of the company is changed the user's visibility will use this company new visibility.
    * public: User can be searched by external users / can search external users. User can invite external users / can be invited by external users
    * private: User can't be searched by external users / can search external users. User can invite external users / can be invited by external users
    * closed: User can't be searched by external users / can't search external users. User can invite external users / can be invited by external users
    * isolated: User can't be searched by external users / can't search external users. User can't invite external users / can't be invited by external users
    * none: Default value reserved for guest. User can't be searched by any users (even within the same company) / can search external users. User can invite external users / can be invited by external users
    * External users mean 'public user not being in user's company nor user's organisation nor a company visible by user's company. Values(same_than_company, public, private, closed, isolated, none)
    * isActive boolean Is user active
    * isInitialized boolean Is user initialized
    * initializationDate Date-Time User initialization date
    * activationDate Date-Time User activation date
    * creationDate Date-Time User creation date
    * lastUpdateDate Date-Time Date of last user update (whatever the field updated)
    * lastAvatarUpdateDate Date-Time Date of last user avatar create/update, null if no avatar
    * createdBySelfRegister boolean true if user has been created using self register
    * createdByAdmin optionnel Object If user has been created by an admin or superadmin, contain userId and loginEmail of the admin who created this user
    * userId string userId of the admin who created this user
    * loginEmail string loginEmail of the admin who created this user
    * invitedBy optionnel Object If user has been created from an email invitation sent by another rainbow user, contain the date the invitation was sent and userId and loginEmail of the user who invited this user
    * userId string userId of the user who invited this user
    * loginEmail string loginEmail of the user who invited this user
    * authenticationType optionnel string User authentication type (if not set company default authentication will be used) Values (DEFAULT, RAINBOW, SAML, OIDC)
    * authenticationExternalUid optionnel string User external authentication ID (return by identity provider in case of SAML or OIDC authenticationType)
    * firstLoginDate Date-Time Date of first user login (only set the first time user logs in, null if user never logged in)
    * lastLoginDate Date-Time Date of last user login (defined even if user is logged out)
    * loggedSince Date-Time Date of last user login (null if user is logged out)
    * isTerminated boolean Indicates if the Rainbow account of this user has been deleted
    * guestMode boolean Indicated a user embedded in a chat or conference room, as guest, with limited rights until he finalizes his registration.
    * timeToLive optionnel Number Duration in second to wait before automatically starting a user deletion from the creation date. Once the timeToLive has been reached, the user won't be usable to use APIs anymore (error 401523). His account may then be deleted from the database at any moment. Value -1 means timeToLive is disable (i.e. user account will not expire).
    * userInfo1 optionnel string Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file)
    * userInfo2 optionnel string 2nd Free field that admin can use to link their users to their IS/IT tools / to perform analytics (this field is output in the CDR file)
    * useScreenSharingCustomisation string Activate/Deactivate the capability for a user to share a screen. Define if a user has the right to share his screen.
    * useScreenSharingCustomisation can be:
    * same_than_company: The same useScreenSharingCustomisation setting than the user's company's is applied to the user. if the useScreenSharingCustomisation of the company is changed the user's useScreenSharingCustomisation will use this company new setting.
    * enabled: Each user of the company can share his screen.
    * disabled: No user of the company can share his screen.
    * customData optionnel Object User's custom data. Object with free keys/values. It is up to the client to manage the user's customData (new customData provided overwrite the existing one). Restrictions on customData Object: max 20 keys, max key length: 64 characters, max value length: 4096 characters.
    * activationCodeGenerationStatus string Status the activation code generation done if the activation code generation is successful
    * in_progress if the activation code generation failed and the security mechanism is ongoing to try to generate it again every minute Possible values : done, in_progress
    * fileSharingCustomisation string Activate/Deactivate file sharing capability per user Define if the user can use the file sharing service then, allowed to download and share file.
    * FileSharingCustomisation can be:
    * same_than_company: The same fileSharingCustomisation setting than the user's company's is applied to the user. if the fileSharingCustomisation of the company is changed the user's fileSharingCustomisation will use this company new setting.
    * enabled: Whatever the fileSharingCustomisation of the company setting, the user can use the file sharing service.
    * disabled: Whatever the fileSharingCustomisation of the company setting, the user can't use the file sharing service.
    * userTitleNameCustomisation string Activate/Deactivate the capability for a user to modify his profile (title, firstName, lastName) Define if the user can change some profile data.
    * userTitleNameCustomisation can be:
    * same_than_company: The same userTitleNameCustomisation setting than the user's company's is applied to the user. if the userTitleNameCustomisation of the company is changed the user's userTitleNameCustomisation will use this company new setting.
    * enabled: Whatever the userTitleNameCustomisation of the company setting, the user can change some profile data.
    * disabled: Whatever the userTitleNameCustomisation of the company setting, the user can't change some profile data.
    * softphoneOnlyCustomisation string Activate/Deactivate the capability for an UCaas application not to offer all Rainbow services but to focus to telephony services Define if UCaas apps used by a user of this company must provide Softphone functions, i.e. no chat, no bubbles, no meetings, no channels, and so on.
    * softphoneOnlyCustomisation can be:
    * same_than_company: The same softphoneOnlyCustomisation setting than the user's company's is applied to the user. if the softphoneOnlyCustomisation of the company is changed the user's softphoneOnlyCustomisation will use this company new setting.
    * enabled: The user switch to a softphone mode only.
    * disabled: The user can use telephony services, chat, bubbles, channels meeting services and so on.
    * useRoomCustomisation string Activate/Deactivate the capability for a user to use bubbles. Define if a user can create bubbles or participate in bubbles (chat and web conference).
    * useRoomCustomisation can be:
    * same_than_company: The same useRoomCustomisation setting than the user's company's is applied to the user. if the useRoomCustomisation of the company is changed the user's useRoomCustomisation will use this company new setting.
    * enabled: The user can use bubbles.
    * disabled: The user can't use bubbles.
    * phoneMeetingCustomisation string Activate/Deactivate the capability for a user to use phone meetings (PSTN conference). Define if a user has the right to join phone meetings.
    * phoneMeetingCustomisation can be:
    * same_than_company: The same phoneMeetingCustomisation setting than the user's company's is applied to the user. if the phoneMeetingCustomisation of the company is changed the user's phoneMeetingCustomisation will use this company new setting.
    * enabled: The user can join phone meetings.
    * disabled: The user can't join phone meetings.
    * useChannelCustomisation string Activate/Deactivate the capability for a user to use a channel. Define if a user has the right to create channels or be a member of channels.
    * useChannelCustomisation can be:
    * same_than_company: The same useChannelCustomisation setting than the user's company's is applied to the user. if the useChannelCustomisation of the company is changed the user's useChannelCustomisation will use this company new setting.
    * enabled: The user can use some channels.
    * disabled: The user can't use some channel.
    * useWebRTCVideoCustomisation string Activate/Deactivate the capability for a user to switch to a Web RTC video conversation. Define if a user has the right to be joined via video and to use video (start a P2P video call, add video in a P2P call, add video in a web conference call).
    * useWebRTCVideoCustomisation can be:
    * same_than_company: The same useWebRTCVideoCustomisation setting than the user's company's is applied to the user. if the useWebRTCVideoCustomisation of the company is changed the user's useWebRTCVideoCustomisation will use this company new setting.
    * enabled: The user can switch to a Web RTC video conversation.
    * disabled: The user can't switch to a Web RTC video conversation.
    * useWebRTCAudioCustomisation string Activate/Deactivate the capability for a user to switch to a Web RTC audio conversation. Define if a user has the right to be joined via audio (WebRTC) and to use Rainbow audio (WebRTC) (start a P2P audio call, start a web conference call).
    * useWebRTCAudioCustomisation can be:
    * same_than_company: The same useWebRTCAudioCustomisation setting than the user's company's is applied to the user. if the useWebRTCAudioCustomisation of the company is changed the user's useWebRTCAudioCustomisation will use this company new setting.
    * enabled: The user can switch to a Web RTC audio conversation.
    * disabled: The user can't switch to a Web RTC audio conversation.
    * instantMessagesCustomisation string Activate/Deactivate the capability for a user to use instant messages. Define if a user has the right to use IM, then to start a chat (P2P ou group chat) or receive chat messages and chat notifications.
    * instantMessagesCustomisation can be:
    * same_than_company: The same instantMessagesCustomisation setting than the user's company's is applied to the user. if the instantMessagesCustomisation of the company is changed the user's instantMessagesCustomisation will use this company new setting.
    * enabled: The user can use instant messages.
    * disabled: The user can't use instant messages.
    * userProfileCustomisation string Activate/Deactivate the capability for a user to modify his profile. Define if a user has the right to modify the globality of his profile and not only (title, firstName, lastName).
    * userProfileCustomisation can be:
    * same_than_company: The same userProfileCustomisation setting than the user's company's is applied to the user. if the userProfileCustomisation of the company is changed the user's userProfileCustomisation will use this company new setting.
    * enabled: The user can modify his profile.
    * disabled: The user can't modify his profile.
    * fileStorageCustomisation string Activate/Deactivate the capability for a user to access to Rainbow file storage.. Define if a user has the right to upload/download/copy or share documents.
    * fileStorageCustomisation can be:
    * same_than_company: The same fileStorageCustomisation setting than the user's company's is applied to the user. if the fileStorageCustomisation of the company is changed the user's fileStorageCustomisation will use this company new setting.
    * enabled: The user can manage and share files.
    * disabled: The user can't manage and share files.
    * overridePresenceCustomisation string Activate/Deactivate the capability for a user to use instant messages. Define if a user has the right to change his presence manually or only use automatic states.
    * overridePresenceCustomisation can be:
    * same_than_company: The same overridePresenceCustomisation setting than the user's company's is applied to the user. if the overridePresenceCustomisation of the company is changed the user's overridePresenceCustomisation will use this company new setting.
    * enabled: The user can change his presence.
    * disabled: The user can't change his presence.
    * changeTelephonyCustomisation string Activate/Deactivate the ability for a user to modify telephony settings. Define if a user has the right to modify some telephony settigs like forward activation...
    * changeTelephonyCustomisation can be:
    * same_than_company: The same changeTelephonyCustomisation setting than the user's company's is applied to the user. if the changeTelephonyCustomisation of the company is changed the user's changeTelephonyCustomisation will use this company new setting.
    * enabled: The user can modify telephony settings.
    * disabled: The user can't modify telephony settings.
    * changeSettingsCustomisation string Activate/Deactivate the ability for a user to change all client general settings.
    * changeSettingsCustomisation can be:
    * same_than_company: The same changeSettingsCustomisation setting than the user's company's is applied to the user. if the changeSettingsCustomisation of the company is changed the user's changeSettingsCustomisation will use this company new setting.
    * enabled: The user can change all client general settings.
    * disabled: The user can't change any client general setting.
    * recordingConversationCustomisation string Activate/Deactivate the capability for a user to record a conversation. Define if a user has the right to record a conversation (for P2P and multi-party calls).
    * recordingConversationCustomisation can be:
    * same_than_company: The same recordingConversationCustomisation setting than the user's company's is applied to the user. if the recordingConversationCustomisation of the company is changed the user's recordingConversationCustomisation will use this company new setting.
    * enabled: The user can record a peer to peer or a multi-party call.
    * disabled: The user can't record a peer to peer or a multi-party call.
    * useGifCustomisation string Activate/Deactivate the ability for a user to Use GIFs in conversations. Define if a user has the is allowed to send animated GIFs in conversations
    * useGifCustomisation can be:
    * same_than_company: The same useGifCustomisation setting than the user's company's is applied to the user. if the useGifCustomisation of the company is changed the user's useGifCustomisation will use this company new setting.
    * enabled: The user can send animated GIFs in conversations.
    * disabled: The user can't send animated GIFs in conversations.
    * fileCopyCustomisation string Activate/Deactivate the capability for one user to copy any file he receives in his personal cloud space
    * fileCopyCustomisation can be:
    * same_than_company: The same fileCopyCustomisation setting than the user's company's is applied to the user. if the fileCopyCustomisation of the company is changed the user's fileCopyCustomisation will use this company new setting.
    * enabled: The user can make a copy of a file to his personal cloud space.
    * disabled: The user can't make a copy of a file to his personal cloud space.
    * fileTransferCustomisation string Activate/Deactivate the capability for a user to copy a file from a conversation then share it inside another conversation. The file cannot be re-shared.
    * fileTransferCustomisation can be:
    * same_than_company: The same fileTransferCustomisation setting than the user's company's is applied to the user. if the fileTransferCustomisation of the company is changed the user's fileTransferCustomisation will use this company new setting.
    * enabled: The user can transfer a file doesn't belong to him.
    * disabled: The user can't transfer a file doesn't belong to him.
    * forbidFileOwnerChangeCustomisation string Activate/Deactivate the capability for a user to loose the ownership on one file.. One user can drop the ownership to another Rainbow user of the same company.
    * forbidFileOwnerChangeCustomisation can be:
    * same_than_company: The same forbidFileOwnerChangeCustomisation setting than the user's company's is applied to the user. if the forbidFileOwnerChangeCustomisation of the company is changed the user's forbidFileOwnerChangeCustomisation will use this company new setting.
    * enabled: The user can't give the ownership of his file.
    * disabled: The user can give the ownership of his file.
    * useDialOutCustomisation string Activate/Deactivate the capability for a user to use dial out in phone meetings. Define if a user is allowed to be called by the Rainbow conference bridge.
    * useDialOutCustomisation can be:
    * same_than_company: The same useDialOutCustomisation setting than the user's company's is applied to the user. if the useDialOutCustomisation of the company is changed the user's useDialOutCustomisation will use this company new setting.
    * enabled: The user can be called by the Rainbow conference bridge.
    * disabled: The user can't be called by the Rainbow conference bridge.
    * selectedAppCustomisationTemplate string To log the last template applied to the user.
    * }
    * @return {Promise} */ retrieveAllLdapConnectorUsersData(companyId?: string, format?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number): Promise; /** * @public * @method sendCommandToLdapConnectorUser * @since 2.11.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} ldapId ldap connector unique identifier. * @param {string} command Allows to specify a command to be performed by the ldap connector. Allowed commands are: "manual_synchro", "manual_dry_run", "manual_synchro_directories", "manual_dry_run_directories". * @param {string} ldapConfigId Allows to specify the ldap domain on which the command should be run (in case of multi domain). * @description * This API can be used to send a command to a ldap connector user.
    * BP Admin and BP Finance users can only control users being in a company linked to their BP company.
    * Admin users can only control users being in their own company. (superadmin, organization_admin, company_admin).
    * * @return {Promise} return - *
    * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | response Object. | * | status | string | Command operation status message. | * | commandId optionnel | string | Command identifier to retrieve the report (only for "manual\_dry\_run" command). | * */ sendCommandToLdapConnectorUser(ldapId: string, command: string, ldapConfigId: string): Promise; /** * @public * @method createConfigurationForLdapConnector * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} companyId the id of the company. * @param {string} name name of this configuration. * @param {Object} settings config settings. * @param {string} type="ldap_config" specify for which type of synchronisation this config is . Allowed types are: "ldap_config" for user synchronisation, "ldap_config_directories" for contcats synchronisation. Default value : ldap_config * @param {Object} settings.massproFromLdap list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal. * @param {string} settings.massproFromLdap.headerName headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap (only when a ldap field exists for this headerName, should never be empty). * @param {Object} settings.company specific settings for the company. Each key represent a setting. * @param {string} settings.company.login login for the ldap server. * @param {string} settings.company.password password for the ldap server. * @param {number} settings.company.synchronizationTimeInterval time interval between synchronization in hours. * @param {string} settings.company.url url of the ldap server. * @param {string} settings.company.domain domain of the ldap server. * @param {string} settings.company.baseDN base DN for the ldap server. * @param {boolean} settings.company.activeFlag defines if the synchronization is active, or not. * @param {string} settings.company.nextSynchronization date (ISO 8601 format) which defines when the next synchronization will be performed. * @param {string} settings.company.search_rule filters to use when requesting the ldap server. * @description * This API allows create configuration for the connector.
    * A template is available : use retrieveLdapConnectorConfigTemplate API.
    * Users with superadmin, support role can create the connectors configuration from any company.
    * Users with bp_admin or bp_finance role can only create the connectors configurationin companies being End Customers of their BP company (i.e. all the companies having bpId equal to their companyId).
    * Users with admin role can only create the connectors configuration in companies they can manage. That is to say:
    * * an organization_admin can create the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId) * * a company_admin can only create the connectors configuration in his company. * * @return {Promise} return - *
    * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Config Object. | * | id | string | Config unique identifier. | * | type | string | Config type | * | companyId | string | Allows to specify for which company the connectors configuration is done.. | * | settings | Object | config settings | * | massproFromLdap | Object | list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal. | * | headerName | string | headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap. | * | company | Object | specific settings for the company. Each key represent a setting. | * | login | string | login for the ldap server. | * | password | string | password for the ldap server. | * | synchronizationTimeInterval | Number | time interval between synchronization in hours. | * | url | string | url of the ldap server. | * | baseDN | string | base DN for the ldap server. | * | activeFlag | Boolean | defines if the synchronization is active, or not. | * | nextSynchronization | Date-Time | date (ISO 8601 format) which defines when the next synchronization will be performed. | * | enrollmentEmailEnable | Boolean | defines if an enrollment email is sent to new users | * | synchronisationDiffMode | Boolean | defines if synching only users changed since last sync date | * | search_rule | string | filters to use when requesting the ldap server. | * | lastSynchronization | Date-Time | date (ISO 8601 format) when the last synchronization was performed by the ldap connector (filled by the ldap connector). | * | softwareVersion | string | software Version of the ldap connector (filled by the ldap connector). | * */ createConfigurationForLdapConnector(companyId: string, settings: object, name: string, type?: string): Promise; /** * @public * @method deleteLdapConnectorConfig * @since 2.9.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} ldapConfigId the Id of the ldap connector to delete. * @description * This API can be used to delete a ldap connector config.
    *
    * **BP Admin** and **BP Finance** users can only delete a ldap config being in a company linked to their BP company.
    * **Admin** users can only delete ldap config being in their own company. (superadmin, organization_admin, company_admin)
    * @return {Promise<{ status : string}>} */ deleteLdapConnectorConfig(ldapConfigId: string): Promise<{ status: string; }>; /** * @public * @method retrieveLdapConnectorConfig * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} companyId="user s company id" Allows to filter connectors list on the companyId provided in this option. In the case of admin (except superadmin and support roles), provided companyId should correspond to a company visible by logged in user's company (if some of the provided companyId are not visible by logged in user's company, connectors from these companies will not be returned). if not provided, default is admin's company. * @param {string} p_type="ldap_config" Allows to filter connectors config list on the type provided in this option. Allowed types are: "ldap_config", "ldap_config_directories". Default value: "ldap_config" * @description * This API allows to retrieve the configuration for the connector.
    * A template is available : use retrieveLdapConnectorConfigTemplate API.
    * Users with superadmin, support role can retrieve the connectors configuration from any company.
    * Users with bp_admin or bp_finance role can only retrieve the connectors configurationin companies being End Customers of their BP company (i.e. all the companies having bpId equal to their companyId).
    * Users with admin role can only retrieve the connectors configuration in companies they can manage. That is to say:
    * an organization_admin can retrieve the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
    * a company_admin can only retrieve the connectors configuration in his company.
    * return {
    * id string Config unique identifier.
    * type string Config type
    * companyId string Allows to specify for which company the connectors configuration is done..
    * settings Object config settings
    * massproFromLdap Object list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal.
    * headerName string headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap.
    * company Object specific settings for the company. Each key represent a setting.
    * login string login for the ldap server.
    * password string password for the ldap server.
    * synchronizationTimeInterval string time interval between synchronization in hours.
    * url string url of the ldap server.
    * }
    * @return {Promise} */ retrieveLdapConnectorConfig(companyId: string, p_type?: string): Promise; /** * @public * @method retrieveLdapConnectorConfigTemplate * @since 1.86.0 * @instance * @async * @param {string} type="ldap_template" Allows to filter connectors config list on the type provided in this option. Allowed types are: "ldap_template", "ldap_template_directories". Default value : ldap_template * @category AD/LDAP - LDAP APIs to use * @description * This API allows to retrieve the configuration template for the connector.
    * return {
    * id string Config unique identifier.
    * type string Config type
    * companyId string Allows to specify for which company the connectors configuration is done..
    * settings Object config settings
    * massproFromLdap Object list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal.
    * headerName string headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap.
    * company Object specific settings for the company. Each key represent a setting.
    * login string login for the ldap server.
    * password string password for the ldap server.
    * synchronizationTimeInterval string time interval between synchronization in hours.
    * url string url of the ldap server.
    * }
    * @return {Promise} */ retrieveLdapConnectorConfigTemplate(type?: string): Promise; /** * @public * @method retrieveLdapConnectorAllConfigTemplates * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @description * This API allows to retrieve all the configuration templates for the connector.
    * return {
    * id string Config unique identifier.
    * type string Config type
    * companyId string Allows to specify for which company the connectors configuration is done..
    * settings Object config settings
    * massproFromLdap Object list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal.
    * default string default field name in ldap.
    * mandatory optionnel Boolean specify if field is mandatory.
    * company Object specific settings for the company. Each key represent a setting.
    * headerName Object headerName as specified in the csv templates for the massprovisioning portal.
    * settingName Object name of the setting. Each key represent a setting. As of now list of setting is "login", "password", "synchronizationTimeInterval", "url". This list can evolve.
    * default optionnel string
    * default value of the setting.
    * mandatory optionnel string specify if field is mandatory.
    * }
    * @return {Promise} */ retrieveLdapConnectorAllConfigTemplates(): Promise; /** * @public * @method retrieveLdapConnectorAllConfigs * @since 2.15.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} companyId Allows to filter connectors config list on the companyId provided in this option. In the case of admin (except superadmin and support roles), provided companyId should correspond to a company visible by logged in user's company (if some of the provided companyId are not visible by logged in user's company, connectors from these companies will not be returned). if not provided, default is admin's company. * @param {boolean} supportMultiDomain=false * @description * This API allows to retrieve the configurations list for the connector.
    * A template is available : use retrieveLdapConnectorConfigTemplate API.
    * Users with superadmin, support role can retrieve the connectors configuration from any company.
    * Users with bp_admin or bp_finance role can only retrieve the connectors configurationin companies being End Customers of their BP company (i.e. all the companies having bpId equal to their companyId).
    * Users with admin role can only retrieve the connectors configuration in companies they can manage. That is to say:
    * an organization_admin can retrieve the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
    * a company_admin can only retrieve the connectors configuration in his company.
    * return {
    * id string Config unique identifier.
    * type string Config type
    * companyId string Allows to specify for which company the connectors configuration is done..
    * settings Object config settings
    * massproFromLdap Object list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal.
    * headerName string headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap.
    * company Object specific settings for the company. Each key represent a setting.
    * login string login for the ldap server.
    * password string password for the ldap server.
    * synchronizationTimeInterval string time interval between synchronization in hours.
    * url string url of the ldap server.
    * connectorStatus string status of the connector (set by the connector itself).
    * nextSynchronization Date-Time date (ISO 8601 format) which defines when the next synchronization will be performed.
    * enrollmentEmailEnable boolean defines if an enrollment email is sent to new users
    * synchronisationDiffMode boolean defines if synching only users changed since last sync date
    * search_rule string filters to use when requesting the ldap server.
    * lastSynchronization Date-Time date (ISO 8601 format) when the last synchronization was performed by the ldap connector (filled by the ldap connector).
    * softwareVersion string software Version of the ldap connector (filled by the ldap connector).
    * }
    * @return {Promise} */ retrieveLdapConnectorAllConfigs(companyId: string, supportMultiDomain?: boolean): Promise; /** * @public * @method retrieveLDAPConnectorConfigByLdapConfigId * @since 2.15.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} ldapConfigId Ldap connector unique identifier * @description * This API allows to retrieve the configuration for the connector with the ldapConfigId.
    * A template is available : use retrieveLdapConnectorConfigTemplate API.
    * Users with superadmin, support role can retrieve the connectors configuration from any company.
    * Users with bp_admin or bp_finance role can only retrieve the connectors configurationin companies being End Customers of their BP company (i.e. all the companies having bpId equal to their companyId).
    * Users with admin role can only retrieve the connectors configuration in companies they can manage. That is to say:
    * an organization_admin can retrieve the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
    * a company_admin can only retrieve the connectors configuration in his company.
    * return {
    * id string Config unique identifier.
    * type string Config type
    * companyId string Allows to specify for which company the connectors configuration is done..
    * settings Object config settings
    * massproFromLdap Object list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal.
    * headerName string headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap.
    * company Object specific settings for the company. Each key represent a setting.
    * login string login for the ldap server.
    * password string password for the ldap server.
    * synchronizationTimeInterval string time interval between synchronization in hours.
    * url string url of the ldap server.
    * connectorStatus string status of the connector (set by the connector itself).
    * nextSynchronization Date-Time date (ISO 8601 format) which defines when the next synchronization will be performed.
    * enrollmentEmailEnable boolean defines if an enrollment email is sent to new users
    * synchronisationDiffMode boolean defines if synching only users changed since last sync date
    * search_rule string filters to use when requesting the ldap server.
    * lastSynchronization Date-Time date (ISO 8601 format) when the last synchronization was performed by the ldap connector (filled by the ldap connector).
    * softwareVersion string software Version of the ldap connector (filled by the ldap connector).
    * }
    * @return {Promise} */ retrieveLDAPConnectorConfigByLdapConfigId(ldapConfigId: string): Promise; /** * @public * @method updateConfigurationForLdapConnector * @since 1.86.0 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {string} ldapConfigId ldap connector unique identifier * @param {boolean} strict=false Allows to specify if all the previous fields must be erased or just update/push new fields. * @param {string} name name of this configuration * @param {Object} settings config settings * @param {Object} settings.massproFromLdap list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal. * @param {string} settings.massproFromLdap.headerName headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap (only when a ldap field exists for this headerName, should never be empty). * @param {Object} settings.company specific settings for the company. Each key represent a setting. * @param {string} settings.company.login login for the ldap server. * @param {string} settings.company.password password for the ldap server. * @param {number} settings.company.synchronizationTimeInterval time interval between synchronization in hours. * @param {string} settings.company.url url of the ldap server. * @param {string} settings.company.baseDN base DN for the ldap server. * @param {boolean} settings.company.activeFlag defines if the synchronization is active, or not. * @param {boolean} settings.company.enrollmentEmailEnable defines if an enrollment email is sent to new users * @param {boolean} settings.company.synchronisationDiffMode defines if synching only users changed since last sync date * @param {string} settings.company.nextSynchronization date (ISO 8601 format) which defines when the next synchronization will be performed. * @param {string} settings.company.search_rule filters to use when requesting the ldap server. * @param {string} settings.company.lastSynchronization date (ISO 8601 format) of the last performed synchronization, usually set by the AD connector . * @param {string} settings.company.softwareVersion Software Version of the AD connector, provisioned by the AD connector * @description * This API allows update configuration for the connector.
    * A template is available : use retrieveLdapConnectorConfigTemplate API.
    * Users with superadmin, support role can update the connectors configuration from any company.
    * Users with bp_admin or bp_finance role can only update the connectors configurationin companies being End Customers of their BP company (i.e. all the companies having bpId equal to their companyId).
    * Users with admin role can only update the connectors configuration in companies they can manage. That is to say:
    * an organization_admin can update the connectors configuration only in a company he can manage (i.e. companies having organisationId equal to his organisationId)
    * a company_admin can only update the connectors configuration in his company.
    * * a 'rainbow_onconnectorconfig' event is raised when updated. The parameter configId can be used to retrieve the updated configuration. * * @return {Promise} - *
    * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object | Config Object. | * | id | string | Config unique identifier. | * | type | string | Config type | * | companyId | string | Allows to specify for which company the connectors configuration is done.. | * | settings | Object | config settings | * | massproFromLdap | Object | list of fields to map between ldap fields and massprovisioning's import csv file headers. You can have as many keys as the csv's headerNames of massprovisioning portal. | * | headerName | string | headerName as specified in the csv templates for the massprovisioning portal, value is the corresponding field name in ldap. | * | company | Object | specific settings for the company. Each key represent a setting. | * | login | string | login for the ldap server. | * | password | string | password for the ldap server. | * | synchronizationTimeInterval | Number | time interval between synchronization in hours. | * | url | string | url of the ldap server. | * | baseDN | string | base DN for the ldap server. | * | activeFlag | boolean | defines if the synchronization is active, or not. | * | nextSynchronization | string | date (ISO 8601 format) which defines when the next synchronization will be performed. | * | enrollmentEmailEnable | boolean | defines if an enrollment email is sent to new users | * | synchronisationDiffMode | boolean | defines if synching only users changed since last sync date | * | search_rule | string | filters to use when requesting the ldap server. | * | lastSynchronization | string | date (ISO 8601 format) when the last synchronization was performed by the ldap connector (filled by the ldap connector). | * | softwareVersion | string | software Version of the ldap connector (filled by the ldap connector). | * */ updateConfigurationForLdapConnector(ldapConfigId: string, settings: any, strict: boolean, name: string): Promise; /** * @public * @method uploadLdapAvatar * @since 2.25.2-lts.3 * @instance * @async * @category AD/LDAP - LDAP APIs to use * @param {any} binaryImgFile File to be sent * @param {string} contentType to specify the content type of data. image/jpeg or image/png. Possibles values : image/jpeg, image/png * @param {string} ldapId=null user unique identifier in ldap * @description * This API can be used to upload avatar image for logged in user.
    * Rules:
    * Avatar file has to be sent directly in http body (no JSon).
    * Only jpeg, jpg and png files are supported. Appropriate content-type has to be set (image/jpeg or image/png).
    * If user already has an avatar, the existing one is overwritten.
    * By default, avatar file size is limited to 4194304 bytes (4 MB) (this limit can be changed by integration team in enduser portal config file).
    * When an avatar is uploaded, the field lastAvatarUpdateDate of the user is updated to the current date.
    * User vCard is also updated: the PHOTO element is set with avatar filename (i.e. user id) in base64 and the LASTAVATARUPDATE element is set to the current date.
    * * a 'rainbow_onXXX' event is raised when updated. The parameter configId can be used to retrieve the updated configuration. * @example * const mime = require('mime'); * const fs = require("fs"); * testuploadLdapAvatar() { * let that = this; * let pathImg = "c:\\temp\\IMG_20131005_173918.jpg"; * * let fd = fs.openSync(pathImg, "r+"); * let fileStats = fs.statSync(pathImg); * let sizeToRead = fileStats.size; * let buf = new Buffer(sizeToRead); * fs.readSync(fd, buf, 0, sizeToRead, null); * let fileType = mime.lookup(pathImg); * rainbowSDK.admin.uploadLdapAvatar(buf, fileType).then((result) => { * ... * }); * } * @return {Promise} - *
    * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Avatar upload status message. | * */ uploadLdapAvatar(binaryImgFile: any, contentType: string, ldapId?: string): Promise; /** * @public * @method deleteLdapAvatar * @since 2.25.2-lts.3 * @instance * @param {string} ldapId user unique identifier in ldap * @async * @category AD/LDAP - LDAP APIs to use * @description * This API can be used to delete avatar image for logged in user.
    * When an avatar is deleted, the field lastAvatarUpdateDate of the user is set to null.
    * User vCard is also updated: the PHOTO element is removed and the LASTAVATARUPDATE element is set to empty.
    * @return {Promise} - *
    * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Avatar upload status message. | * */ deleteLdapAvatar(ldapId?: string): Promise; /** * @public * @method createListOfEventsForConnector * @since 2.14.0 * @instance * @async * @category Connectors * @param {any} events The list of events for a connector : * {
    * events : [{
    * eventId : string The identifier of an event
    * level : string The level of an event. Possibles values : `ERROR`, `WARN`, `INFO`
    * category : string The category of an event
    * operation : string The operation of an event
    * description : string The description of an event
    * date : string The date an event
    * }]
    * }
    * * @description * This API allows the different connectors to store a list of events
    *
    * Each given events is stored in Rainbow database. If an event, identified by its eventId, already exists for a connector in database, it isn't duplicated. An event is created with a deleted field value as false.
    * It's associated eityher with a companyId or a systemId, according to the type of its connector.
    * It's stored during 30 days. After that, it's automatically removed from database.
    *
    * @return {Promise} result. * * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | List of connector event stored. | * | id | string | Event unique identifier. | * | userId | string | User associated to the connector unique identifier. | * | eventId | string | Event identifier in the connector scope | * | level | string | Event level

    Possibles values : `ERROR`, `WARN`, `INFO` | * | category | string | Event category | * | operation | string | Event operation | * | description | string | Event description | * | deleted | Boolean | Indicate if the event is considered as deleted | * | date | Date-Time | Date of event | * | companyId optionnel | string | Company linked to the connector. | * | systemId optionnel | string | System linked to the connector. | * */ createListOfEventsForConnector(events: Array<{ eventId: string; level: string; category: string; operation: string; description: string; date: string; }>): Promise; /** * @public * @nodered true * @method getCloudPbxById * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @description * This API allows administrator to retrieve a CloudPBX using its identifier.
    * @return {Promise} */ getCloudPbxById(systemId: string): Promise; /** * @public * @nodered true * @method updateCloudPBX * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @param {string} barringOptions_permissions Identifier of the traffic barring permission to apply * @param {string} barringOptions_restrictions Identifier of the traffic barring restriction to apply * @param {string} callForwardOptions_externalCallForward Indicates if an external call forward is authorized * @param {string} customSipHeader_1 Value to put as Custom SIP Header 1 into SIP data for an external outgoing call * @param {string} customSipHeader_2 Value to put as Custom SIP Header 2 into SIP data for an external outgoing call * @param {boolean} emergencyOptions_callAuthorizationWithSoftPhone Indicates if SoftPhone can perform an emergency call over voip * @param {boolean} emergencyOptions_emergencyGroupActivated Indicates if emergency Group is active * @param {string} externalTrunkId External trunk that should be linked to this CloudPBX * @param {string} language New language for this CloudPBX. Values : "ro" "es" "it" "de" "ru" "fr" "en" "ar" "he" "nl" * @param {string} name New CloudPBX name * @param {number} numberingDigits Number of digits for CloudPBX numbering plan. If a numberingPrefix is provided, this parameter is mandatory. * For example, if numberingPrefix is 8 and numberingDigits is 4, allowed numbers for this CloudPBX will be from 8000 to 8999. * @param {number} numberingPrefix Prefix for CloudPBX numbering plan * @param {number} outgoingPrefix Company outgoing prefix * @param {boolean} routeInternalCallsToPeer Indicates if internal calls must be routed to peer (Only available if 'routeInternalCallsToPeerAllowed' is set to 'true' on external trunk) * @description * This API allows to update a CloudPBX using its identifier.
    * @return {Promise} */ updateCloudPBX(systemId: string, barringOptions_permissions: string, barringOptions_restrictions: string, callForwardOptions_externalCallForward: string, customSipHeader_1: string, customSipHeader_2: string, emergencyOptions_callAuthorizationWithSoftPhone: boolean, emergencyOptions_emergencyGroupActivated: boolean, externalTrunkId: string, language: string, name: string, numberingDigits: number, numberingPrefix: number, outgoingPrefix: number, routeInternalCallsToPeer: boolean): Promise; /** * @public * @nodered true * @method deleteCloudPBX * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @description * This API allows to delete a CloudPBX using its identifier.
    * @return {Promise} */ deleteCloudPBX(systemId: string): Promise; /** * @public * @nodered true * @method getCloudPbxs * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @description * This API allows administrator to retrieve a list of CloudPBXs.
    * @return {Promise} * @param {number} limit=100 Allow to specify the number of CloudPBXs to retrieve. Default value : 100 * @param {number} offset=0 llow to specify the position of first cloudPBX to retrieve (first site if not specified) Warning: if offset > total, no results are returned * @param {string} sortField="companyId" Sort CloudPBXs list based on the given field. Default value : companyId * @param {number} sortOrder=1 Specify order when sorting CloudPBXs list. Default value : 1. Possible values : -1, 1 * @param {string} companyId Allows to filter CloudPBXs list on the siteIds linked to companyIds provided in this option * @param {string} bpId Allows to filter CloudPBXs list on the bpIds provided in this option */ getCloudPbxs(limit: number, offset: number, sortField: string, sortOrder: number, companyId: string, bpId: string): Promise; /** * @public * @nodered true * @method createACloudPBX * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} bpId Identifier of the BP to which CloudPBX should be linked with. * @param {string} companyId Required Identifier of the company for which CloudPBX should be created. * @param {string} customSipHeader_1 Value to put as CustomSipHeader_1 into SIP data for an external outgoing call. * @param {string} customSipHeader_2 Value to put as CustomSipHeader_2 into SIP data for an external outgoing call. * @param {string} externalTrunkId External trunk identifier that should be linked to this CloudPBX. * @param {string} language Associated language for this CloudPBX. Values : "ro" "es" "it" "de" "ru" "fr" "en" "ar" "he" "nl". default : "en". * @param {string} name CloudPBX name. If not provided, will be something like 'cloud_pbx_companyName'. * @param {number} noReplyDelay In case of overflow no reply forward on subscribers, timeout in seconds after which the call will be forwarded. Default 20. * @param {number} numberingDigits Number of digits for CloudPBX numbering plan. If a numberingPrefix is provided, this parameter is mandatory.
    * For example, if numberingPrefix is 8 and numberingDigits is 4, allowed numbers for this CloudPBX will be from 8000 to 8999. * @param {number} numberingPrefix Prefix for CloudPBX numbering plan. * @param {number} outgoingPrefix Company outgoing prefix. * @param {boolean} routeInternalCallsToPeer Indicates if internal calls must be routed to peer (Only available if 'routeInternalCallsToPeerAllowed' is set to 'true' on external trunk). * @param {string} siteId Identifier of the site on which CloudPBX should be created. * @description * This API allows to create a CloudPBX for a given company.
    * @return {Promise} */ createACloudPBX(bpId: string, companyId: string, customSipHeader_1: string, customSipHeader_2: string, externalTrunkId: string, language: string, name: string, noReplyDelay: number, numberingDigits: number, numberingPrefix: number, outgoingPrefix: number, routeInternalCallsToPeer: boolean, siteId: string): Promise; /** * @public * @nodered true * @method getCloudPBXCLIPolicyForOutboundCalls * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @description * This API allows to retrieve the CloudPBX CLI options for outbound calls using its identifier.
    * @return {Promise} */ getCloudPBXCLIPolicyForOutboundCalls(systemId: string): Promise; /** * @public * @nodered true * @method updateCloudPBXCLIOptionsConfiguration * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @param {CLOUDPBXCLIOPTIONPOLICY} policy CLI policy to apply. Values : "installation_ddi_number" or "user_ddi_number". * @description * This API allows to update a CloudPBX using its identifier.
    * @return {Promise} */ updateCloudPBXCLIOptionsConfiguration(systemId: string, policy: CLOUDPBXCLIOPTIONPOLICY): Promise; /** * @public * @nodered true * @method getCloudPBXlanguages * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @description * This API allows to retrieve a list of languages supported by a CloudPBX using its identifier.
    * @return {Promise} */ getCloudPBXlanguages(systemId: string): Promise; /** * @public * @nodered true * @method getCloudPBXDeviceModels * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @description * This API allows to retrieve a list of device models supported by a CloudPBX using its identifier.
    * @return {Promise} */ getCloudPBXDeviceModels(systemId: string): Promise; /** * @public * @nodered true * @method getCloudPBXTrafficBarringOptions * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @param {string} systemId CloudPBX unique identifier. * @description * This API allows to retrieve a list of traffic barring options supported by a CloudPBX using its identifier.
    * @return {Promise} */ getCloudPBXTrafficBarringOptions(systemId: string): Promise; /** * @public * @nodered true * @method getCloudPBXEmergencyNumbersAndEmergencyOptions * @since 2.1.0 * @instance * @category Rainbow Voice Communication Platform Provisioning - CloudPBX * @async * @param {string} systemId CloudPBX unique identifier. * @description * This API allows to retrieve Emergency Numbers and Emergency Options supported by a CloudPBX using its identifier.
    * @return {Promise} */ getCloudPBXEmergencyNumbersAndEmergencyOptions(systemId: string): Promise; /** * @public * @nodered true * @method CreateCloudPBXSIPDevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} description Description for identifying the device * @param {number} deviceTypeId Device type Identifier - see API GET /cloudpbxs/:id/devicemodels to get the list of supported models for the CloudPBX. * @param {string} macAddress Device mac address - mandatory for SIP deskphone device * @description * This API allows to create a new SIP device into a CloudPBX. This SIP device can then be assigned to an existing subscriber.
    * @return {Promise} */ CreateCloudPBXSIPDevice(systemId: string, description: string, deviceTypeId: string, macAddress: string): Promise; /** * @public * @nodered true * @method factoryResetCloudPBXSIPDevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device to be reset * @description * This API allows to reset a SIP deskphone device to its factory settings.
    * Be aware that the device will no longer be operational, and should, after the factory reset, need to be manually configured (e.g. at least auto provisioning Url will need to be set).
    * @return {Promise} */ factoryResetCloudPBXSIPDevice(systemId: string, deviceId: string): Promise; /** * @public * @nodered true * @method getCloudPBXSIPDeviceById * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device to get * @description * This API allows to retrieve a SIP device using the given deviceId.
    * @return {Promise} */ getCloudPBXSIPDeviceById(systemId: string, deviceId: string): Promise; /** * @public * @nodered true * @method deleteCloudPBXSIPDevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device to delete * @description * This API allows to remove a SIP Device from a CloudPBX. To do so, the SIP device must no longer be associated to a subscriber.
    * @return {Promise} */ deleteCloudPBXSIPDevice(systemId: string, deviceId: string): Promise; /** * @public * @nodered true * @method updateCloudPBXSIPDevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} description new description * @param {string} deviceId Unique identifier of the SIP device to delete * @param {string} macAddress new device mac address * @description * This API allows to update a SIP device.
    * @return {Promise} */ updateCloudPBXSIPDevice(systemId: string, description: string, deviceId: string, macAddress: string): Promise; /** * @public * @nodered true * @method getAllCloudPBXSIPDevice * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {number} limit=100 Allow to specify the number of SIP Devices to retrieve. * @param {number} offset Allow to specify the position of first SIP Device to retrieve (first one if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField Sort SIP Devices list based on the given field. * @param {number} sortOrder=1 Specify order when sorting SIP Devices list. Valid values are -1, 1. * @param {boolean} assigned Allows to filter devices according their assignment to a subscriber * false, allows to obtain all devices not yet assigned to a subscriber. * true, allows to obtain all devices already assigned to a subscriber. * if undefined ; all devices whatever their assignment status are returned * @param {string} phoneNumberId Allows to filter devices according their phoneNumberId (i.e. subscriber id) * This parameter can be a list of phoneNumberId separated by a space (space has to be encoded) * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @description * This API allows to retrieve all SIP devices assigned into a CloudPBX.
    * @return {Promise} */ getAllCloudPBXSIPDevice(systemId: string, limit: number, offset: number, sortField: string, sortOrder: number, assigned: boolean, phoneNumberId: string): Promise; /** * @public * @nodered true * @method getCloudPBXSIPRegistrationsInformationDevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device for which SIP registrations information should be retrieved. * @description * This API allows to retrieve SIP registrations information relative to a device.
    * @return {Promise} */ getCloudPBXSIPRegistrationsInformationDevice(systemId: string, deviceId: string): Promise; /** * @public * @nodered true * @method grantCloudPBXAccessToDebugSession * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device for which the debug session access will be granted. * @param {string} duration Duration, in seconds, of the debug session - Only superadmin can set a debug duration different from the default one (configuration parameter: e.g. 30 minutes) * @description * This API allows to grant access to debug session on the given device.
    * When debug session is granted on the device, admins can retrieve the admin password of the device, url to access the device admin page and also initiate ssh session with the device.
    * A debug session can be terminated by:
    * Calling the device revoke API
    * After debug session has timed out, a periodic check is performed by the portal to revoke expired debug sessions (periodicity defined by configuration parameter).
    * * During debug session, adminUrl and adminPassword of the device can be retrieved by getting device information.
    * Please note that adminUrl could be unreachable depending on network configuration.
    * When a debug session is closed, ssh access to the device is deactivated, and the admin password of the device is modified.
    * @return {Promise} */ grantCloudPBXAccessToDebugSession(systemId: string, deviceId: string, duration: string): Promise; /** * @public * @nodered true * @method revokeCloudPBXAccessFromDebugSession * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device access will be revoked * @description * This API allows to revoke access to debug session on the given device.
    * When revoked, the debug session can no longer be used.
    * The admin password is no longer visible (changed).
    * @return {Promise} */ revokeCloudPBXAccessFromDebugSession(systemId: string, deviceId: string): Promise; /** * @public * @nodered true * @method rebootCloudPBXSIPDevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Devices * @param {string} systemId CloudPBX unique identifier. * @param {string} deviceId Unique identifier of the SIP device access will be revoked * @description * This API allows to reboot a SIP deskphone device.
    * @return {Promise} */ rebootCloudPBXSIPDevice(systemId: string, deviceId: string): Promise; /** * @public * @nodered true * @method getCloudPBXSubscriber * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id). * @description * This API allows to get data of a CloudPBX Subscriber.
    * @return {Promise} */ getCloudPBXSubscriber(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method deleteCloudPBXSubscriber * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id). * @description * This API allows to delete a CloudPBX Subscriber. All its associated SIP devices become free for other subscribers.
    * @return {Promise} */ deleteCloudPBXSubscriber(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method createCloudPBXSubscriberRainbowUser * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @param {string} systemId CloudPBX unique identifier. * @param {string} login SIP username (if not provided ; shortNumber is used as SIP username) * @param {string} password SIP password for all associated SIP devices (if not provided ; it will be automatically generated). * Only lowercases, digits, * and # are authorized characters. Minimum length is 8, maximum is 12 * @param {string} shortNumber Internal Number of the new CloudPBX Subscriber * @param {string} userId Unique identifier of the associated Rainbow User * @description * This API allows to create a new CloudPBX Subscriber for a Rainbow User.
    * This new subscriber will appear as a new entry into "phoneNumbers" list of the targeted Rainbow User.
    * @return {Promise} */ createCloudPBXSubscriberRainbowUser(systemId: string, login: string, password: string, shortNumber: string, userId: string): Promise; /** * @public * @nodered true * @method getCloudPBXSIPdeviceAssignedSubscriber * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber associated to the SIP device to retrieve. * @param {string} deviceId Unique identifier of the SIP device to retrieve * @description * This API allows to retrieve a given SIP device assigned to a subscriber.
    * @return {Promise} */ getCloudPBXSIPdeviceAssignedSubscriber(systemId: string, phoneNumberId: string, deviceId: string): Promise; /** * @public * @nodered true * @method removeCloudPBXAssociationSubscriberAndSIPdevice * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber on which the Sip device association must be deleted. * @param {string} deviceId Unique identifier of the SIP device to free * @description * This API allows to remove association between subscriber and the Sip Device (SIP device becomes available for another subscriber).
    * @return {Promise} */ removeCloudPBXAssociationSubscriberAndSIPdevice(systemId: string, phoneNumberId: string, deviceId: string): Promise; /** * @public * @nodered true * @method getCloudPBXAllSIPdevicesAssignedSubscriber * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {number} limit=100 Allow to specify the number of SIP Devices to retrieve. * @param {number} offset Allow to specify the position of first SIP Device to retrieve (first one if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField Sort SIP Devices list based on the given field. * @param {number} sortOrder=1 Specify order when sorting SIP Devices list. Valid values are -1, 1. * @param {string} phoneNumberId Allows to filter devices according their phoneNumberId (i.e. subscriber id) * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @description * This API allows to retrieve all SIP devices assigned to a subscriber.
    * @return {Promise} */ getCloudPBXAllSIPdevicesAssignedSubscriber(systemId: string, limit: number, offset: number, sortField: string, sortOrder: number, phoneNumberId: string): Promise; /** * @public * @nodered true * @method getCloudPBXInfoAllRegisteredSIPdevicesSubscriber * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber for which all SIP registrations must be retrieved * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @description * This API allows to retrieve registrations info on all devices registered for a subscriber.
    * @return {Promise} */ getCloudPBXInfoAllRegisteredSIPdevicesSubscriber(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method assignCloudPBXSIPDeviceToSubscriber * @since 2.1.0 * @instance * @async * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber on which the SIP device must be assigned * @param {string} deviceId Unique identifier of the device to assign * @param {string} macAddress device mac address * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @description * This API allows to assign a SIP device to a CloudPBX Subscriber.
    * The device must have been previously created.
    * Assigning a device to a subscriber can de done by specifying the device Id (preferred) in the request, or the device mac address.
    * Assigning a device to a subscriber can de done by specifying the device Id in the request, or the device mac address and deviceType Id.
    * @return {Promise} */ assignCloudPBXSIPDeviceToSubscriber(systemId: string, phoneNumberId: string, deviceId: string, macAddress: string): Promise; /** * @public * @nodered true * @method getCloudPBXSubscriberCLIOptions * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier of the CloudPBX Subscriber to get (it is also its subscriber Id) * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Subscribers * @description * This API allows to get CLI policy of a CloudPBX Subscriber.
    * @return {Promise} */ getCloudPBXSubscriberCLIOptions(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method getCloudPBXUnassignedInternalPhonenumbers * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to list all unassigned internal phone numbers for a given CloudPBX system.
    * @return {Promise} */ getCloudPBXUnassignedInternalPhonenumbers(systemId: string): Promise; /** * @public * @nodered true * @method listCloudPBXDDINumbersAssociated * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {number} limit=100 Allow to specify the number of DDI numbers to retrieve. Default : 100. * @param {number} offset Allow to specify the position of first DDI number to retrieve (first site if not specified) * Warning: if offset > total, no results are returned * @param {string} sortField="number" Sort DDI numbers list based on the given field. Default : "number" * @param {number} sortOrder=1 Specify order when sorting DDI numbers list. Default : 1. Valid values : -1, 1. * @param {boolean} isAssignedToUser Allows to filter DDI numbers list if they are assigned to a user or not * @param {boolean} isAssignedToGroup Allows to filter DDI numbers list if they are assigned to a group or not (e.g. hunting group) * @param {boolean} isAssignedToIVR Allows to filter DDI numbers list if they are assigned to a IVR or not * @param {boolean} isAssignedToAutoAttendant Allows to filter DDI numbers list if they are assigned to a Auto attendant or not * @param {boolean} isAssigned Allows to filter DDI numbers list if they are assigned (to a user or to a group or to a IVR) or not assigned * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to get the list of DDI numbers associated to a CloudPBX.
    * @return {Promise} */ listCloudPBXDDINumbersAssociated(systemId: string, limit: number, offset: number, sortField: string, sortOrder: number, isAssignedToUser: boolean, isAssignedToGroup: boolean, isAssignedToIVR: boolean, isAssignedToAutoAttendant: boolean, isAssigned: boolean): Promise; /** * @public * @nodered true * @method createCloudPBXDDINumber * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} number DDI number * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to create a DDI number for a CloudPBX.
    * @return {Promise} */ createCloudPBXDDINumber(systemId: string, number: string): Promise; /** * @public * @nodered true * @method deleteCloudPBXDDINumber * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to delete a DDI number for a CloudPBX.
    * Note : Default DDI can be deleted only if it is the last DDI of the CloudPBX.
    * @return {Promise} */ deleteCloudPBXDDINumber(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method associateCloudPBXDDINumber * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier * @param {string} userId Rainbow user unique identifier * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to associate a DDI number to a Rainbow user.
    * @return {Promise} */ associateCloudPBXDDINumber(systemId: string, phoneNumberId: string, userId: string): Promise; /** * @public * @nodered true * @method disassociateCloudPBXDDINumber * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier. * @param {string} userId Rainbow user unique identifier. * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to disassociate a DDI number from a Rainbow user.
    * @return {Promise} */ disassociateCloudPBXDDINumber(systemId: string, phoneNumberId: string, userId: string): Promise; /** * @public * @nodered true * @method setCloudPBXDDIAsdefault * @since 2.1.0 * @instance * @param {string} systemId CloudPBX unique identifier. * @param {string} phoneNumberId PhoneNumber unique identifier. * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx Phone Numbers * @description * This API allows to set a DDI number as default DDI for a CloudPBX.
    * @return {Promise} */ setCloudPBXDDIAsdefault(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method retrieveExternalSIPTrunkById * @since 2.1.0 * @instance * @async * @param {string} externalTrunkId External trunk unique identifier * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx SIP Trunk * @description * This API allows to retrieve an external SIP trunk using its identifier.
    * @return {Promise} */ retrieveExternalSIPTrunkById(externalTrunkId: string): Promise; /** * @public * @nodered true * @method retrievelistExternalSIPTrunks * @since 2.1.0 * @instance * @async * @category Rainbow Voice Communication Platform Provisioning - Cloudpbx SIP Trunk * @param {string} rvcpInstanceId Allows to filter external SIP trunks by RVCP instance identifier.
    * This filter allows to load all external SIP trunks in relation with an RVCP Instance.
    * @param {string} status Allows to filter external SIP trunks by status.
    * This filter allows to load all external SIP trunks according to their status.
    * Valid values : "new" "active".
    * @param {string} trunkType Allows to filter external SIP trunks by their type.
    * @description * This API allows superadmin or bp_admin to retrieve a list of external SIP trunks.
    * bp_admin can list only external SIP trunks he is allowed to use.
    * @return {Promise} */ retrievelistExternalSIPTrunks(rvcpInstanceId: string, status: string, trunkType: string): Promise; /** * @public * @nodered true * @method createASite * @since 2.1.1 * @instance * @async * @category sites * @param {string} name Site name.
    * Valid values : 1..255 * @param {string} status Site status.
    * Valid values : "active", "alerting", "hold", "terminated".
    * @param {string} companyId Id of the company from which the site is linked. * @description * This API allows administrators to create a site for a company they administrate.
    * @return {Promise} */ createASite(name: string, status: string, companyId: string): Promise; /** * @public * @nodered true * @method deleteSite * @since 2.1.1 * @instance * @async * @category sites * @param {string} siteId Site id.
    * @description * This API allows administrators to delete a site by id they administrate.
    * @return {Promise} */ deleteSite(siteId: string): Promise; /** * @public * @nodered true * @method getSiteData * @since 2.1.1 * @instance * @async * @category sites * @param {string} siteId Site id.
    * @description * This API allows administrators to get a site data by id they administrate.
    * @return {Promise} */ getSiteData(siteId: string): Promise; /** * @public * @nodered true * @method getAllSites * @since 2.1.1 * @instance * @async * @category sites * @param {string} format="small" Allows to retrieve more or less site details in response.
    * - small: _id, name
    * - medium: _id, name, status, companyId
    * - full: all site fields
    * default : small
    * Valid values : small, medium, full
    * @param {number} limit=100 Allow to specify the number of companies to retrieve. (default=100). * @param {number} offset=0 Allow to specify the position of first site to retrieve (first site if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="name" Sort site list based on the given field. (default="name"). * @param {number} sortOrder Specify order when sorting site list. Default values : 1. Valid values : -1, 1. * @param {string} name Allows to filter sites list on field name.
    * The filtering is case insensitive and on partial name match: all sites containing the provided name value will be returned (whatever the position of the match).
    * Ex: if filtering is done on sit, sites with the following names are match the filter 'My site', 'Site', 'A site 1', 'Site of company', 'Sit1', 'Sit2', ...
    * @param {string} companyId * @description * This API allows administrators to get all sites they administrate.
    * @return {Promise} */ getAllSites(format: string, limit: number, offset: number, sortField: string, sortOrder: number, name: string, companyId: string): Promise; /** * @public * @nodered true * @method updateSite * @since 2.1.1 * @instance * @category sites * @async * @param {string} siteId Site id.
    * @param {string} name Site name * @param {string} status Site status. Valid values : "active", "alerting", "hold", "terminated" * @param {string} companyId Id of the company from which the site is linked. * @description * This API allows administrators to update a given site by id they administrate.
    * @return {Promise} */ updateSite(siteId: string, name: string, status: string, companyId: string): Promise; /** * @public * @nodered true * @method createSystem * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {string} name System name/description * @param {string} pbxId CCA (Call Control Agent) hosted by a System needs an account to XMPP. This is the login to access to XMPP server. It should be given during system creation or automatically generated. * @param {string} pbxLdapId custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. * @param {string} siteId Site from which the system is linked with. * @param {string} type CCA type. Possibles values : oxo, oxe, third_party, undefined * @param {string} country System country (ISO 3166-1 alpha3 format). * @param {string} version CCA software version * @param {number} serverPingTimeout CCA config data. Default value : 120 * @param {Array} pbxMainBundlePrefix CCA config data: array of string * @param {boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG * @param {Array} pbxNumberingTranslator List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use []
    * {string} regexpMatch A valid regular expression used to select a translator action. \d is not supported! Use (0..9) instead.
    * {string} regexpReplace A valid dialable number.
    * {string} description A short description of the rule.
    * @param {string} pbxNationalPrefix National prefix * @param {string} pbxInternationalPrefix International prefix * @param {Array} searchResultOrder List of directory types to order search results:
    * - RAINBOW: phone numbers defined in Rainbow users
    * - LDAP: phone numbers defined in directories according to the following priority order:
    * * personal directory of the user
    * * company directory (of the company(ies) to which the PBX is linked)
    * * office365 directory (of the company(ies) to which the PBX is linked)
    * - PBX: phone numbers defined in the phone book of the PBX
    *
    * Possibles values : RAINBOW, LDAP, PBX
    * @param {string} activationCode Currently, the activation code is a random 4 digits value (between 1000 and 9999) generated by the admin portal. With activationCode field, it's possible to set a custom value. In the Http success response the value is available in the 'jid_pbxagent_password' field. activationCode is only taken in account during a system creation. * @param {boolean} isCentrex Indicates if the system is one tenant or multi-tenant (OXE - OTEC-S or third_party). isCentrex flag can't be set to true if isShared flag is true (these settings are exclusives). Default value : false * @param {boolean} isShared Indicates if the system is multi-company (shared across multiple companies).
    *
    * * isShared flag can't be set to true if isCentrex flag is true (these settings are exclusives).
    * * Shared systems can be linked to several sites from different companies.
    * * Several shared PBX can be attached to a same Rainbow company, as well as "standard" systems (i.e. systems without isShared flag, and so being linked only to this company).
    * * Companies being linked to shared PBX can't be attached to centrex systems.
    * * It is understood that this approach exposes all users of the shared PBX to all companies that have users on this PBX (for association, for dial by name). Anyway it seats on a PBX infra where all PBX users can directly dial (by short num and DBN) any other users of the network from their deskphones.
    * * In cases the underlying infra is an homogeneous network of PBX, PBX grouping has to be managed.
    *
    * Default value : false
    * @param {string} bpId Link the system to the corresponding Business partner company. bpId must correspond to a valid company having isBP equal to true. Only directly settable by superadmin. If the system is created by a bp_admin, bpId is automatically set to bp_admin's system id. * @param {boolean} isOxoManaged Indicates if the system is an OXO managed. Only settable if type is set to oxo. This setting can only be set at system creation, then it can't be modified. Only one OXO Managed PBX is allowed for a company. * @description * This API allows administrator to create a system.
    * A system hosts the CCA (Call Control Agent) configuration.
    *
    * superadmin can create systems linked to all sites existing in Rainbow.
    * bp_admin can only create systems linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin can only create systems linked to sites of companies under their organisation.
    * company_admin can only create systems linked to sites of their company.
    * site_admin can only create the systems linked to the site they administrate.
    *
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | System unique identifier | * | name optionnel | string | System name/description | * | pbxId | string | Call Control Agent (CCA) login. | * | pbxLdapId optionnel | string | custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. | * | siteId optionnel | string\[\] | Site from which the system is linked with. | * | type optionnel | string | CCA type

    Possibles values : `oxo`, `oxe`, `third_party`, `undefined` | * | country optionnel | string | System country (ISO 3166-1 alpha3 format) | * | version | string | CCA software version | * | jid_pbxagent optionnel | string | CCA Jabber Id | * | jid\_pbxagent\_password optionnel | string | CCA Jabber Id access code. The value of this field is depending on status field.

    * `created, activating`: This is the public access code. The code must be used by the CCA for the first connection.
    * `activated`: This is an Hash code of the private access code, reduced to the last eight digits | * | jid_pbxpcg optionnel | string | PCG Jabber Id for this system | * | jid\_pbxpcg\_password optionnel | string | PCG CCA Jabber Id password for this system | * | status optionnel | string | CCA status report. (read only)

    * `created`: CCA uses a public access code to join rainbow infrastructure (see jid\_pbxagent\_password field)
    * `activating`: Rainbow infrastructure has proposed a private access code to replace the former public access code
    * `activated`: CCA has accepted the new access code, that will be used for the next initialization.

    Default value : `created`

    Possibles values : `"created"`, `"activating"`, `"activated"` | * | serverPingTimeout optionnel | Number | CCA config data | * | pbxMainBundlePrefix optionnel | string\[\] | CCA config data | * | pbxNumberingTranslator optionnel | Object\[\] | List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use \[\] | * | regexpMatch optionnel | string | A valid regular expression used to select a translator action. \\d is not supported! Use (0..9) instead. | * | regexpReplace optionnel | string | A valid dialable number. | * | description optionnel | string | A short description of the rule * @apiSuccess {Boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG | * | pbxNationalPrefix optionnel | string | National prefix | * | pbxInternationalPrefix optionnel | string | International prefix | * | creationDate | Date-Time | System creation date (Read only) | * | statusUpdatedDate optionnel | Date-Time | Date of last system status update (Read only) | * | searchResultOrder optionnel | string\[\] | List of directory types to order search results:

    * RAINBOW: phone numbers defined in Rainbow users
    * LDAP: phone numbers defined in directories according to the following priority order:
    * personal directory of the user
    * company directory (of the company(ies) to which the PBX is linked)
    * office365 directory (of the company(ies) to which the PBX is linked)

    Possibles values : `RAINBOW`, `LDAP`, `PBX` | * | hasMediaPillar optionnel | Boolean | Indicates a mediapillar exists or not for this system | * | isShared optionnel | Boolean | Indicates if the system is **multi-company** (shared across multiple companies) | * | isCentrex optionnel | Boolean | Indicates if the system is one tenant or **multi-tenant (OXE - OTEC-S or third_party)** | * | isOxoManaged optionnel | Boolean | Indicates if the system is an OXO managed | * | bpId optionnel | string | Identifier which links the system to the corresponding Business partner company. Obligatory when a BP admin creates a isCentrex or isShared system not yet used by a company

    Default value : `null` | * | connectionHistory | Object\[\] | history of connections. | * | eventType | string | Type of connection | * | eventDate | Date-Time | Date of connection | * */ createSystem(name: string, pbxId: string, pbxLdapId: string, siteId: string, type: string, country: string, version?: string, serverPingTimeout?: number, pbxMainBundlePrefix?: Array, usePbxMainBundlePrefix?: boolean, pbxNumberingTranslator?: Array, pbxNationalPrefix?: string, pbxInternationalPrefix?: string, searchResultOrder?: Array, activationCode?: string, isCentrex?: boolean, isShared?: boolean, bpId?: string, isOxoManaged?: boolean): Promise; /** * @public * @nodered true * @method deleteSystem * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {string} systemId System unique identifier * @description * This API allows administrator to delete a given system.
    *
    * superadmin can delete systems linked to all sites existing in Rainbow.
    * bp_admin can only delete systems linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin can only delete systems linked to sites of companies under their organisation.
    * company_admin can only delete systems linked to sites of their company.
    * site_admin can only delete the systems linked to the site they administrate.
    *
    * Warning: all configuration data and phoneNumbers associated to this system will be deleted, and if these phoneNumbers were associated to a Rainbow user, it won't be anymore.
    * jid_pbxagent and jid_pbxpcg XMPP accounts will also be deleted from XMPP.
    *
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Delete operation status message. | * */ deleteSystem(systemId: string): Promise; /** * @public * @nodered true * @method getSystemConnectionState * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {string} systemId System unique identifier * @param {string} format="small" Allows to retrieve more or less details in response.
    * - small: timestamp, connection
    * - medium: timestamp, conf, csta, http
    * - full: timestamp, xmpp, conf, csta, http
    *
    * Possibles values : small, medium, full
    * @param {boolean} connectionHistory Allows to return connection history * @description * This API allows administrator to retrieve a given system.state
    *
    * superadmin and support can get all systems' state existing in Rainbow.
    * bp_admin can only get the systems' state linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin can only get systems' state linked to sites of companies under their organisation.
    * company_admin can only get systems' state linked to sites of their company.
    * site_admin can only get the systems' state linked to the site they administrate.
    *
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | timestamp | string | Moment when the last update information was taken (Unix time format). | * | connection | string | Connection established indicator (only shown with the format small). | * | conf | string | Configuration channel connection established indicator. | * | csta | string | Telephony channel connection established indicator. | * | http optionnel | string | Http channel connection established indicator. | * | xmpp | string | Authentication channel connection established indicator (only shown with the format full). | * | connectionHistory | Object\[\] | history of connections. | * | eventType | string | Type of connection | * | eventDate | Date-Time | Date of connection | * */ getSystemConnectionState(systemId: string, format?: string, connectionHistory?: boolean): Promise; /** * @public * @nodered true * @method getSystemDataByPbxId * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {string} pbxId Pbx unique identifier known by PCG * @param {boolean} connectionHistory Allows to return connection history * @description * This API allows administrator to retrieve a given system from its pbxId.
    *
    * superadmin and support can get all systems existing in Rainbow.
    * bp_admin can only get systems linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin can only get systems linked to sites of companies under their organisation.
    * company_admin can only get systems linked to sites of their company.
    * site_admin can only get the systems linked to the site they administrate. * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | activatingTransactionId | string | CCA Jabber Id | * | jid\_pbxagent\_password_activating | string | CCA Jabber Id access code. The value of this field is depending on status field. The value of this field is depending on 'status' field.
    \- `activating`: This is a proposal of private access code sent to CCA and not yet acknowledged.
    \- `created, activated`: Empty string | * | id | string | System unique identifier | * | name optionnel | string | System name/description | * | pbxId | string | Call Control Agent (CCA) login. | * | pbxLdapId optionnel | string | custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. | * | siteId optionnel | string\[\] | Site from which the system is linked with. | * | type optionnel | string | CCA type

    Possibles values : `oxo`, `oxe`, `third_party`, `undefined` | * | country optionnel | string | System country (ISO 3166-1 alpha3 format) | * | version | string | CCA software version | * | jid_pbxagent optionnel | string | CCA Jabber Id | * | jid\_pbxagent\_password optionnel | string | CCA Jabber Id access code. The value of this field is depending on status field.

    * `created, activating`: This is the public access code. The code must be used by the CCA for the first connection.
    * `activated`: This is an Hash code of the private access code, reduced to the last eight digits | * | jid_pbxpcg optionnel | string | PCG Jabber Id for this system | * | jid\_pbxpcg\_password optionnel | string | PCG CCA Jabber Id password for this system | * | status optionnel | string | CCA status report. (read only)

    * `created`: CCA uses a public access code to join rainbow infrastructure (see jid\_pbxagent\_password field)
    * `activating`: Rainbow infrastructure has proposed a private access code to replace the former public access code
    * `activated`: CCA has accepted the new access code, that will be used for the next initialization.

    Default value : `created`

    Possibles values : `"created"`, `"activating"`, `"activated"` | * | serverPingTimeout optionnel | Number | CCA config data | * | pbxMainBundlePrefix optionnel | string\[\] | CCA config data | * | pbxNumberingTranslator optionnel | Object\[\] | List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use \[\] | * | regexpMatch optionnel | string | A valid regular expression used to select a translator action. \\d is not supported! Use (0..9) instead. | * | regexpReplace optionnel | string | A valid dialable number. | * | description optionnel | string | A short description of the rule * @apiSuccess {Boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG | * | pbxNationalPrefix optionnel | string | National prefix | * | pbxInternationalPrefix optionnel | string | International prefix | * | creationDate | Date-Time | System creation date (Read only) | * | statusUpdatedDate optionnel | Date-Time | Date of last system status update (Read only) | * | searchResultOrder optionnel | string\[\] | List of directory types to order search results:

    * RAINBOW: phone numbers defined in Rainbow users
    * LDAP: phone numbers defined in directories according to the following priority order:
    * personal directory of the user
    * company directory (of the company(ies) to which the PBX is linked)
    * office365 directory (of the company(ies) to which the PBX is linked)

    Possibles values : `RAINBOW`, `LDAP`, `PBX` | * | hasMediaPillar optionnel | Boolean | Indicates a mediapillar exists or not for this system | * | isShared optionnel | Boolean | Indicates if the system is **multi-company** (shared across multiple companies) | * | isCentrex optionnel | Boolean | Indicates if the system is one tenant or **multi-tenant (OXE - OTEC-S or third_party)** | * | isOxoManaged optionnel | Boolean | Indicates if the system is an OXO managed | * | bpId optionnel | string | Identifier which links the system to the corresponding Business partner company. Obligatory when a BP admin creates a isCentrex or isShared system not yet used by a company

    Default value : `null` | * | connectionHistory | Object\[\] | history of connections. | * | eventType | string | Type of connection | * | eventDate | Date-Time | Date of connection | * */ getSystemDataByPbxId(pbxId: string, connectionHistory?: boolean): Promise; /** * @public * @nodered true * @method getSystemData * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {string} systemId System unique identifier * @param {boolean} connectionHistory Allows to return connection history * @description * This API allows administrator to retrieve a given system.
    *
    * superadmin and support can get all systems existing in Rainbow.
    * bp_admin can only get systems linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin can only get systems linked to sites of companies under their organisation.
    * company_admin can only get systems linked to sites of their company.
    * site_admin can only get the systems linked to the site they administrate.
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | activatingTransactionId | string | CCA Jabber Id | * | jid\_pbxagent\_password_activating | string | CCA Jabber Id access code. The value of this field is depending on status field. The value of this field is depending on 'status' field.
    \- `activating`: This is a proposal of private access code sent to CCA and not yet acknowledged.
    \- `created, activated`: Empty string | * | id | string | System unique identifier | * | name optionnel | string | System name/description | * | pbxId | string | Call Control Agent (CCA) login. | * | pbxLdapId optionnel | string | custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. | * | siteId optionnel | string\[\] | Site from which the system is linked with. | * | type optionnel | string | CCA type

    Possibles values : `oxo`, `oxe`, `third_party`, `undefined` | * | country optionnel | string | System country (ISO 3166-1 alpha3 format) | * | version | string | CCA software version | * | jid_pbxagent optionnel | string | CCA Jabber Id | * | jid\_pbxagent\_password optionnel | string | CCA Jabber Id access code. The value of this field is depending on status field.

    * `created, activating`: This is the public access code. The code must be used by the CCA for the first connection.
    * `activated`: This is an Hash code of the private access code, reduced to the last eight digits | * | jid_pbxpcg optionnel | string | PCG Jabber Id for this system | * | jid\_pbxpcg\_password optionnel | string | PCG CCA Jabber Id password for this system | * | status optionnel | string | CCA status report. (read only)

    * `created`: CCA uses a public access code to join rainbow infrastructure (see jid\_pbxagent\_password field)
    * `activating`: Rainbow infrastructure has proposed a private access code to replace the former public access code
    * `activated`: CCA has accepted the new access code, that will be used for the next initialization.

    Default value : `created`

    Possibles values : `"created"`, `"activating"`, `"activated"` | * | serverPingTimeout optionnel | Number | CCA config data | * | pbxMainBundlePrefix optionnel | string\[\] | CCA config data | * | pbxNumberingTranslator optionnel | Object\[\] | List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use \[\] | * | regexpMatch optionnel | string | A valid regular expression used to select a translator action. \\d is not supported! Use (0..9) instead. | * | regexpReplace optionnel | string | A valid dialable number. | * | description optionnel | string | A short description of the rule * @apiSuccess {Boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG | * | pbxNationalPrefix optionnel | string | National prefix | * | pbxInternationalPrefix optionnel | string | International prefix | * | creationDate | Date-Time | System creation date (Read only) | * | statusUpdatedDate optionnel | Date-Time | Date of last system status update (Read only) | * | searchResultOrder optionnel | string\[\] | List of directory types to order search results:

    * RAINBOW: phone numbers defined in Rainbow users
    * LDAP: phone numbers defined in directories according to the following priority order:
    * personal directory of the user
    * company directory (of the company(ies) to which the PBX is linked)
    * office365 directory (of the company(ies) to which the PBX is linked)

    Possibles values : `RAINBOW`, `LDAP`, `PBX` | * | hasMediaPillar optionnel | Boolean | Indicates a mediapillar exists or not for this system | * | isShared optionnel | Boolean | Indicates if the system is **multi-company** (shared across multiple companies) | * | isCentrex optionnel | Boolean | Indicates if the system is one tenant or **multi-tenant (OXE - OTEC-S or third_party)** | * | isOxoManaged optionnel | Boolean | Indicates if the system is an OXO managed | * | bpId optionnel | string | Identifier which links the system to the corresponding Business partner company. Obligatory when a BP admin creates a isCentrex or isShared system not yet used by a company

    Default value : `null` | * | connectionHistory | Object\[\] | history of connections. | * | eventType | string | Type of connection | * | eventDate | Date-Time | Date of connection | * */ getSystemData(systemId: string, connectionHistory?: boolean): Promise; /** * @public * @nodered true * @method getAllSystems * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {boolean} connectionHistory Allows to return connection history * @param {string} format="small" Allows to retrieve more or less system details in response.
    * - small: id pbxId version
    * - medium: id name pbxId serialNumber version status
    * - full: all system fields
    *
    * Default value : small. Possibles values : small, medium, full * @param {number} limit=100 Allow to specify the number of systems to retrieve. Default value : 100 * @param {number} offset=0 Allow to specify the position of first system to retrieve (first site if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="pbxId" Sort system list based on the given field. Default value : pbxId * @param {number} sortOrder=1 Specify order when sorting pbx list. Default value : 1. Possibles values : -1, 1 * @param {string} name Allows to filter systems list on field name.
    * The filtering is case insensitive and on partial name match: all systems containing the provided name value will be returned (whatever the position of the match).
    * Ex: if filtering is done on oxe1, systems with the following names are match the filter 'OXE1', 'Oxe1', 'My oxe1', 'oxe12', 'My OXE12', ...
    * @param {string} type Allows to filter systems list on the provided type(s). Possibles values : oxo, oxe, third_party, undefined * @param {string} status Allows to filter systems list on the provided status(es). Possibles values : created, activating, activated, terminated * @param {string} siteId Allows to filter systems list on the siteIds provided in this option. * @param {string} companyId Allows to filter systems list on the siteIds linked to companyIds provided in this option. * @param {string} bpId Allows to filter systems list on the bpIds provided in this option. Only superadmin, support and bp_admin users can use bpId filter. bp_admin users can only use bpId filter with bpId they manage (their own BP company or companies being in their BP organisation). * @param {boolean} isShared Allows to filter systems list by the status isShared. * @param {boolean} isCentrex Allows to filter systems list by the status isCentrex. * @param {boolean} isSharedOrCentrex Allows to filter systems list having the requested flag isShared or isCentrex.
    *
    * If isSharedOrCentrex=true, only systems having isShared=true or isCentrex=true are returned.
    * If isSharedOrCentrex=false, only systems having isShared=false and isCentrex=false are returned.
    *
    * @param {boolean} isOxoManaged Allows to filter systems list by the setting isOxoManaged. * @param {string} fromCreationDate Allows to filter systems list from provided date (ISO 8601 format). * @param {string} toCreationDate Allows to filter systems list until provided date (ISO 8601 format). * @description * This API allows administrator to retrieve systems they can administrate.
    *
    * superadmin and support get all systems existing in Rainbow.
    * bp_admin only get systems linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin only get systems linked to sites of companies under their organisation.
    * company_admin only get systems linked to sites of their company.
    * site_admin only get the systems linked to the site they administrate.
    *
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | System unique identifier | * | name optionnel | string | System name/description | * | pbxId | string | Call Control Agent (CCA) login. | * | pbxLdapId optionnel | string | custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. | * | siteId optionnel | string\[\] | Site from which the system is linked with. | * | type optionnel | string | CCA type

    Possibles values : `oxo`, `oxe`, `third_party`, `undefined` | * | country optionnel | string | System country (ISO 3166-1 alpha3 format) | * | version | string | CCA software version | * | jid_pbxagent optionnel | string | CCA Jabber Id | * | jid\_pbxagent\_password optionnel | string | CCA Jabber Id access code. The value of this field is depending on status field.

    * `created, activating`: This is the public access code. The code must be used by the CCA for the first connection.
    * `activated`: This is an Hash code of the private access code, reduced to the last eight digits | * | jid_pbxpcg optionnel | string | PCG Jabber Id for this system | * | jid\_pbxpcg\_password optionnel | string | PCG CCA Jabber Id password for this system | * | status optionnel | string | CCA status report. (read only)

    * `created`: CCA uses a public access code to join rainbow infrastructure (see jid\_pbxagent\_password field)
    * `activating`: Rainbow infrastructure has proposed a private access code to replace the former public access code
    * `activated`: CCA has accepted the new access code, that will be used for the next initialization.

    Default value : `created`

    Possibles values : `"created"`, `"activating"`, `"activated"` | * | serverPingTimeout optionnel | Number | CCA config data | * | pbxMainBundlePrefix optionnel | string\[\] | CCA config data | * | pbxNumberingTranslator optionnel | Object\[\] | List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use \[\] | * | regexpMatch optionnel | string | A valid regular expression used to select a translator action. \\d is not supported! Use (0..9) instead. | * | regexpReplace optionnel | string | A valid dialable number. | * | description optionnel | string | A short description of the rule * @apiSuccess {Boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG | * | pbxNationalPrefix optionnel | string | National prefix | * | pbxInternationalPrefix optionnel | string | International prefix | * | creationDate | Date-Time | System creation date (Read only) | * | statusUpdatedDate optionnel | Date-Time | Date of last system status update (Read only) | * | searchResultOrder optionnel | string\[\] | List of directory types to order search results:

    * RAINBOW: phone numbers defined in Rainbow users
    * LDAP: phone numbers defined in directories according to the following priority order:
    * personal directory of the user
    * company directory (of the company(ies) to which the PBX is linked)
    * office365 directory (of the company(ies) to which the PBX is linked)

    Possibles values : `RAINBOW`, `LDAP`, `PBX` | * | hasMediaPillar optionnel | Boolean | Indicates a mediapillar exists or not for this system | * | isShared optionnel | Boolean | Indicates if the system is **multi-company** (shared across multiple companies) | * | isCentrex optionnel | Boolean | Indicates if the system is one tenant or **multi-tenant (OXE - OTEC-S or third_party)** | * | isOxoManaged optionnel | Boolean | Indicates if the system is an OXO managed | * | bpId optionnel | string | Identifier which links the system to the corresponding Business partner company. Obligatory when a BP admin creates a isCentrex or isShared system not yet used by a company

    Default value : `null` | * | connectionHistory | Object\[\] | history of connections. | * | eventType | string | Type of connection | * | eventDate | Date-Time | Date of connection | * */ getAllSystems(connectionHistory?: boolean, format?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number, name?: string, type?: string, status?: string, siteId?: string, companyId?: string, bpId?: string, isShared?: boolean, isCentrex?: boolean, isSharedOrCentrex?: boolean, isOxoManaged?: boolean, fromCreationDate?: string, toCreationDate?: string): Promise; /** * @public * @nodered true * @method getListOfCountriesAllowedForSystems * @since 2.20.0 * @instance * @category Systems - systems * @async * @description * This API allows to retrieve the list of countries supported by Rainbow Server for systems country field.
    * * @return {Promise} An object of the result * * */ getListOfCountriesAllowedForSystems(): Promise; /** * @public * @nodered true * @method updateSystem * @since 2.20.0 * @instance * @category Systems - systems * @async * @param {string} systemId System unique identifier * @param {string} name System name/description * @param {string} siteId Site from which the system is linked with. * @param {string} pbxLdapId custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. * @param {string} type CCA type. Possibles values : oxo, oxe, third_party, undefined * @param {string} country System country (ISO 3166-1 alpha3 format) * @param {string} version CCA software version * @param {number} serverPingTimeout=120 CCA config data. Default value : 120 * @param {string} pbxMainBundlePrefix CCA config data * @param {boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG * @param {Array} pbxNumberingTranslator List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use [] * Object : { * regexpMatch : string A valid regular expression used to select a translator action. \d is not supported! Use (0..9) instead. * regexpReplace ? : string A valid dialable number. * description ? : string A short description of the rule * } * @param {string} pbxNationalPrefix National prefix * @param {string} pbxInternationalPrefix International prefix * @param {Array} searchResultOrder List of directory types to order search results:
    *
    * * RAINBOW: phone numbers defined in Rainbow users
    * * LDAP: phone numbers defined in directories according to the following priority order:
    * - personal directory of the user
    * - company directory (of the company(ies) to which the PBX is linked)
    * - office365 directory (of the company(ies) to which the PBX is linked)
    *
    * Possibles values : RAINBOW, LDAP, PBX
    * @param {boolean} isShared Indicates if the system is multi-company (shared across multiple companies).
    *
    * * isShared flag can't be set to true if isCentrex flag is true (these settings are exclusives).
    * * Shared systems can be linked to several sites from different companies.
    * * Several shared PBX can be attached to a same Rainbow company, as well as "standard" systems (i.e. systems without isShared flag, and so being linked only to this company).
    * * Companies being linked to shared PBX can't be attached to centrex systems.
    * * It is understood that this approach exposes all users of the shared PBX to all companies that have users on this PBX (for association, for dial by name).
    Anyway it seats on a PBX infra where all PBX users can directly dial (by short num and DBN) any other users of the network from their deskphones.
    * * In cases the underlying infra is an homogeneous network of PBX, PBX grouping has to be managed.
    * * isShared flag can be updated to true only if the system has isCentrex=false and is linked to at least one site or if a bpId is set.
    * * isShared flag can be updated to false only if the system is linked to one site (exactly). In that case, bpId field is automatically reset to null.
    *
    * * @param {boolean} bpId Link the system to the corresponding Business partner company. bpId must correspond to a valid company having isBP equal to true. Only directly settable by superadmin. * @description * This API allows administrator to update a given system.
    *
    * superadmin can update systems linked to all sites existing in Rainbow.
    * bp_admin can only update systems linked to sites of End Customer companies for which their bp_admin's company is the BP company.
    * organization_admin can only update systems linked to sites of companies under their organisation.
    * company_admin can only update systems linked to sites of their company.
    * site_admin can only update the systems linked to the site they administrate.
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | System unique identifier | * | name optionnel | string | System name/description | * | pbxId | string | Call Control Agent (CCA) login. | * | pbxLdapId optionnel | string | custom "pbxId" declared in an external DB (ldap), used to correlate to Rainbow pbxId. | * | siteId optionnel | string\[\] | Site from which the system is linked with. | * | type optionnel | string | CCA type

    Possibles values : `oxo`, `oxe`, `third_party`, `undefined` | * | country optionnel | string | System country (ISO 3166-1 alpha3 format) | * | version | string | CCA software version | * | jid_pbxagent optionnel | string | CCA Jabber Id | * | jid\_pbxagent\_password optionnel | string | CCA Jabber Id access code. The value of this field is depending on status field.

    > * `created, activating`: This is the public access code. The code must be used by the CCA for the first connection.
    > * `activated`: This is an Hash code of the private access code, reduced to the last eight digits | * | jid_pbxpcg optionnel | string | PCG Jabber Id for this system | * | jid\_pbxpcg\_password optionnel | string | PCG CCA Jabber Id password for this system | * | status optionnel | string | CCA status report. (read only)

    > * `created`: CCA uses a public access code to join rainbow infrastructure (see jid\_pbxagent\_password field)
    > * `activating`: Rainbow infrastructure has proposed a private access code to replace the former public access code
    > * `activated`: CCA has accepted the new access code, that will be used for the next initialization.

    Default value : `created`

    Possibles values : `"created"`, `"activating"`, `"activated"` | * | serverPingTimeout optionnel | Number | CCA config data | * | pbxMainBundlePrefix optionnel | string\[\] | CCA config data | * | pbxNumberingTranslator optionnel | Object\[\] | List of several regular expressions used to validate internal or external phone numbers. Up to 100 regular expressions are allowed. (64 max char by regexp). To reset the list, use \[\] | * | regexpMatch optionnel | string | A valid regular expression used to select a translator action. \\d is not supported! Use (0..9) instead. | * | regexpReplace optionnel | string | A valid dialable number. | * | description optionnel | string | A short description of the rule * @apiSuccess {Boolean} usePbxMainBundlePrefix Whether or not pbxMainBundlePrefix is used by PCG | * | pbxNationalPrefix optionnel | string | National prefix | * | pbxInternationalPrefix optionnel | string | International prefix | * | creationDate | Date-Time | System creation date (Read only) | * | statusUpdatedDate optionnel | Date-Time | Date of last system status update (Read only) | * | searchResultOrder optionnel | string\[\] | List of directory types to order search results:

    * RAINBOW: phone numbers defined in Rainbow users
    * LDAP: phone numbers defined in directories according to the following priority order:
    * personal directory of the user
    * company directory (of the company(ies) to which the PBX is linked)
    * office365 directory (of the company(ies) to which the PBX is linked)

    Possibles values : `RAINBOW`, `LDAP`, `PBX` | * | hasMediaPillar optionnel | Boolean | Indicates a mediapillar exists or not for this system | * | isShared optionnel | Boolean | Indicates if the system is **multi-company** (shared across multiple companies) | * | isCentrex optionnel | Boolean | Indicates if the system is one tenant or **multi-tenant (OXE - OTEC-S or third_party)** | * | isOxoManaged optionnel | Boolean | Indicates if the system is an OXO managed | * | bpId optionnel | string | Identifier which links the system to the corresponding Business partner company. Obligatory when a BP admin creates a isCentrex or isShared system not yet used by a company

    Default value : `null` | * | connectionHistory | Object\[\] | history of connections. | * | eventType | string | Type of connection | * | eventDate | Date-Time | Date of connection | * */ updateSystem(systemId: string, name?: string, siteId?: string, pbxLdapId?: string, type?: string, country?: string, version?: string, serverPingTimeout?: number, pbxMainBundlePrefix?: string, usePbxMainBundlePrefix?: boolean, pbxNumberingTranslator?: Array, pbxNationalPrefix?: string, pbxInternationalPrefix?: string, searchResultOrder?: Array, isShared?: boolean, bpId?: string): Promise; getPbxData(pbxId: string): Promise; getAllPbxs(format?: string, sortField?: string, limit?: number, offset?: number, sortOrder?: number, name?: string, type?: string, status?: string, siteId?: string, companyId?: string, bpId?: string, isShared?: boolean, isCentrex?: boolean, isSharedOrCentrex?: boolean, isOxoManaged?: boolean, fromCreationDate?: string, toCreationDate?: string): Promise; createPbxPhoneNumber(pbxId: string, shortNumber: string, voiceMailNumber: string, pbxUserId: string, companyPrefix: string, internalNumber: string, type: string, deviceType: string, firstName: string, lastName: string, deviceName: string): Promise; deletePbxPhoneNumber(pbxId: string, shortNumber: string): Promise; getPbxPhoneNumber(pbxId: string, shortNumber: string): Promise; getAllPbxPhoneNumbers(pbxId: string, format: string, shortNumber: string, internalNumber: string, pbxUserId: string, companyPrefix: string, isMonitored: boolean, name: string, nameOrShortNumber: string, deviceName: string, isAssignedToUser: boolean, limit: number, offset: number, sortField?: string, sortOrder?: number): Promise; updatepbxPhoneNumber(pbxId: string, shortNumber: string, voiceMailNumber: string, pbxUserId: string, companyPrefix: string, companyName: string, internalNumber: string, type: string, deviceType: string, firstName: string, lastName: string, deviceName: string): Promise; /** * @public * @nodered true * @method getASystemPhoneNumber * @since 2.20.0 * @instance * @category Systems - Phone numbers * @async * @param {string} systemId System unique identifier * @param {string} phoneNumberId PhoneNumber unique identifier * @description * This API allows to retrieve a specific phoneNumber associated to a given system (pbx).
    * Users with superadmin or support role can retrieve phoneNumbers from any system.
    * bp_admin can only retrieve phoneNumbers linked to systems of End Customer companies for which their bp_admin's company is the BP company.
    * Users with admin role (and not having superadmin nor support role) can only retrieve phoneNumbers of systems that they manage.
    * In a Multi-Layer organization that describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS, an admin role of a upper layer is allowed to see systems within their's reach.
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Phone number unique identifier | * | shortNumber | string | Short phone number (corresponds to the number monitored by PCG).
    Only usable within the same PBX.
    shortNumber can contain alpha-numeric characters and some special characters. The regular expression validating the shortNumber data is the following: `/^[0-9A-Za-z #\-\+\*\(\)\./]{1,32}$/` | * | internalNumber | string | Internal phone number.
    Usable within a PBX group.
    internalNumber can contain alpha-numeric characters and some special characters. The regular expression validating the internalNumber data is the following: `/^[0-9A-Za-z #\-\+\*\(\)\./]{1,32}$/` | * | voiceMailNumber optionnel | string | Voice mail phone number
    voiceMailNumber can contain alpha-numeric characters and some special characters. The regular expression validating the voiceMailNumber data is the following: `/^[0-9A-Za-z #\-\+\*\(\)\./]{1,32}$/` | * | number optionnel | string | DDI phone number | * | numberE164 optionnel | string | E.164 phone number (computed by server if number is set) | * | pbxUserId | string | Pbx's user Id | * | userId optionnel | string | Rainbow userId to which the phone number is linked | * | jid_im | string | jid_im of the Rainbow user to which the phone number is linked | * | jid_tel | string | jid_tel of the Rainbow user to which the phone number is linked | * | jid_password | string | jid_password of the Rainbow user to which the phone number is linked | * | rainbowNumber optionnel | string | Rainbow number of the Rainbow user to which the phone number is linked | * | country optionnel | string | Phone number country (ISO 3166-1 alpha3 format)
    Country field is automatically computed using the following algorithm:

    * If `number` is provided and is in E164 format, `country` is computed from this E164 number
    * Else if phoneNumber is assigned to a user, user's `country` is used
    * Else, system's `country` is used | * | type optionnel | string | Phone number type, one of `home`, `work`, `other` | * | deviceType optionnel | string | Phone number device type, one of `landline`, `mobile`, `fax`, `other` | * | isFromSystem optionnel | string | Boolean indicating if the phoneNumber is linked to a system (pbx) | * | pbxId | string | pbx unique identifier | * | firstName | string | firstname | * | lastName | string | lastname | * | deviceName | string | devicename | * | systemId optionnel | string | System unique identifier | * | isMonitored | Boolean | Specifies if the PhoneNumber is monitored by agent (i.e. telephony events are notified to Rainbow user through XMPP) | * | isNomadic optionnel | Boolean | Specifies if Nomadic set is selected. | * | isVoipNomadic optionnel | Boolean | Specifies if Nomadic destination is VoIP. | * | isNomadicModeInitialized optionnel | Boolean | Nomadic feature: when true, at least one login or logout has been done. PCG reserved. | * | userType optionnel | string | The userType is ACD data from the OXE. PCG reserved. | * * */ getASystemPhoneNumber(systemId: string, phoneNumberId: string): Promise; /** * @public * @nodered true * @method getAllSystemPhoneNumbers * @since 2.20.0 * @instance * @category Systems - Phone numbers * @async * @param {string} systemId System unique identifier * @param {string} shortNumber Allow to filter phoneNumbers list on phoneNumbers having shortNumber field starting with the provided value. * @param {string} internalNumber Allow to filter phoneNumbers list on phoneNumbers having internalNumber field starting with the provided value. * @param {string} pbxUserId Allow to filter phoneNumbers list on phoneNumbers having pbxUserId field equal to provided value. * @param {string} companyPrefix When the system is a centrex server (multi-tenant OXE or third_party), allow to filter phoneNumbers list on companyPrefix.
    * The companyPrefix value to set is named 'tenantCallNumber' in companies data model.
    * Example: companyPrefix=8210: return all phoneNumbers having the prefix 8210, then allocated to the company having the 'tenantCallNumber' 8210 (exact match)
    * @param {boolean} isMonitored Allow to filter phoneNumbers list on phoneNumbers having isMonitored field equal to provided value. Possible values : true, false * @param {string} name Allow to filter phoneNumbers list on phoneNumbers having firstName or lastName starting with the provided value. * @param {string} deviceName Allow to filter phoneNumbers list on phoneNumbers having deviceName field equal to provided value. * @param {boolean} isAssignedToUser Allow to filter phoneNumbers list on phoneNumbers being assigned or not to a Rainbow user, according to provided value. true: return all phoneNumbers having userId !== null. false: return all phoneNumbers having userId === null. Possible values : true, false * @param {string} format="small" Allows to retrieve more or less phone numbers details in response.
    * - small: id shortNumber internalNumber numberE164
    * - medium: id shortNumber internalNumber voiceMailNumber number numberE164 isFromSystem pbxId systemId
    * - full: all phone numbers fields
    *
    * Default value : small. Possible values : small, medium, full
    * @param {number} limit=100 Allow to specify the number of phone numbers to retrieve. Default value : 100 * @param {number} offset Allow to specify the position of first phone number to retrieve (first phone number if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="shortNumber" Sort phone numbers list based on the given field. Default value : shortNumber * @param {number} sortOrder=1 Specify order when sorting phone numbers list. Default value : 1 . Possible values : -1, 1 . * @description * This API allows to list all phoneNumbers associated to a given system (pbx).
    * * Users with superadmin or support role can retrieve phoneNumbers from any system.
    * bp_admin can only retrieve phoneNumbers linked to systems of End Customer companies for which their bp_admin's company is the BP company.
    * Users with admin role (and not having superadmin nor support role) can only retrieve phoneNumbers of systems that they manage.
    * In a Multi-Layer organization that describes a hierarchy including ORGANIZATIONS/COMPANIES/SITES/SYSTEMS, an admin role of a upper layer is allowed to see systems within their's reach.
    * :
    * Notes:
    * systemId field returned in response corresponds to portal's internal mongoDB id, while pbxId is the id handled by PCG.
    * This API is paginated.
    * phoneNumbers list can be filtered on the following fields:
    * shortNumber: allow to retrieve only phoneNumbers starting by the provided value.
    * Example: shortNumber=123
    * internalNumber: allow to retrieve only phoneNumbers starting by the provided value.
    * Example: internalNumber=123
    * pbxUserId: allow to retrieve only phoneNumbers having the provided pbxUserId value.
    * Example: pbxUserId=123
    * isMonitored: allow to retrieve only phoneNumbers for which monitoring in Rainbow application is activated (true) or deactivated (false).
    * Example: isMonitored=true
    * isAssignedToUser: allow to retrieve only phoneNumbers being associated (true) or not (false) to a Rainbow user.
    * Example: isAssignedToUser=true
    * userId: allow to retrieve only phoneNumbers being associated to the requested Rainbow user id.
    * Example: userId=57960e4fa1ab69c4243415b1
    * companyPrefix: allow to retrieve only phoneNumbers having the provided companyPrefix value. See below 'Sharing a system between several companies'
    * Example: companyPrefix=8210 This filter is not taken in account for role admin.
    * Filters can be combined.
    * * @return {Promise} An object of the result * */ getAllSystemPhoneNumbers(systemId: string, shortNumber?: string, internalNumber?: string, pbxUserId?: string, companyPrefix?: string, isMonitored?: boolean, name?: string, deviceName?: string, isAssignedToUser?: boolean, format?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number): Promise; /** * @public * @nodered true * @method updateASystemPhoneNumber * @since 2.20.0 * @instance * @category Systems - Phone numbers * @async * @param {string} systemId System unique identifier * @param {string} phoneNumberId PhoneNumber unique identifier * @param {boolean} isMonitored Specifies if the PhoneNumber is monitored by agent (i.e. telephony events are notified to Rainbow user through XMPP) * @param {string} userId Rainbow userId to which is linked the phoneNumber * @param {string} internalNumber Internal phone number. Usable within a PBX group. By default, it is equal to shortNumber.
    * internalNumber must be unique in the whole system group to which the related PhoneNumber belong (an error 409 is raised if someone tries to update internalNumber to a number already used by another PhoneNumber in the same system group). * @param {string} number Raw phone number (DDI) Note: If numberE164 can't be computed from number and computed country fields, an error 400 is returned (ex: wrong phone number, phone number not matching country code, ...) * @param {string} type Phone number type. Default value : work. Possible values : home, work, other * @param {string} deviceType Phone number device type. Default value : landline. Possible values : landline, mobile, fax, other * @param {string} firstName first name * @param {string} lastName last name * @param {string} deviceName device name * @param {boolean} isVisibleByOthers Allow user to choose if the phone number is visible by other users or not.
    * Note that administrators can see all the phone numbers, even if isVisibleByOthers is set to false.
    * Note that phone numbers linked to a system (isFromSystem=true) are always visible, isVisibleByOthers can't be set to false for these numbers.
    * @description * This API allows to update a phone number for a given system (pbx).
    * It can be used to link a system phoneNumber to a Rainbow user by setting userId parameter. If userId parameter is provided, jid_im, jid_tel, jid_password and rainbowNumber of the corresponding user are automatically set in phoneNumber.
    * It can also be used to enable monitoring of this phoneNumber by PCG (set isMonitored parameter to true).
    * Note that pbxId, systemId, shortNumber and pbxUserId can't be modified.
    * * @return {Promise} An object of the result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Phone number unique identifier | * | shortNumber | string | Short phone number (corresponds to the number monitored by PCG).
    Only usable within the same PBX.
    shortNumber can contain alpha-numeric characters and some special characters. The regular expression validating the shortNumber data is the following: `/^[0-9A-Za-z #\-\+\*\(\)\./]{1,32}$/` | * | internalNumber | string | Internal phone number.
    Usable within a PBX group.
    internalNumber can contain alpha-numeric characters and some special characters. The regular expression validating the internalNumber data is the following: `/^[0-9A-Za-z #\-\+\*\(\)\./]{1,32}$/` | * | voiceMailNumber optionnel | string | Voice mail phone number
    voiceMailNumber can contain alpha-numeric characters and some special characters. The regular expression validating the voiceMailNumber data is the following: `/^[0-9A-Za-z #\-\+\*\(\)\./]{1,32}$/` | * | number optionnel | string | DDI phone number | * | numberE164 optionnel | string | E.164 phone number (computed by server if number is set) | * | pbxUserId | string | Pbx's user Id | * | userId optionnel | string | Rainbow userId to which the phone number is linked | * | jid_im | string | jid_im of the Rainbow user to which the phone number is linked | * | jid_tel | string | jid_tel of the Rainbow user to which the phone number is linked | * | jid_password | string | jid_password of the Rainbow user to which the phone number is linked | * | rainbowNumber optionnel | string | Rainbow number of the Rainbow user to which the phone number is linked | * | country optionnel | string | Phone number country (ISO 3166-1 alpha3 format)
    Country field is automatically computed using the following algorithm:

    * If `number` is provided and is in E164 format, `country` is computed from this E164 number
    * Else if phoneNumber is assigned to a user, user's `country` is used
    * Else, system's `country` is used | * | type optionnel | string | Phone number type, one of `home`, `work`, `other` | * | deviceType optionnel | string | Phone number device type, one of `landline`, `mobile`, `fax`, `other` | * | isFromSystem optionnel | string | Boolean indicating if the phoneNumber is linked to a system (pbx) | * | pbxId | string | pbx unique identifier | * | firstName | string | firstname | * | lastName | string | lastname | * | deviceName | string | devicename | * | systemId optionnel | string | System unique identifier | * | isMonitored | Boolean | Specifies if the PhoneNumber is monitored by agent (i.e. telephony events are notified to Rainbow user through XMPP) | * | isNomadic optionnel | Boolean | Specifies if Nomadic set is selected. | * | isVoipNomadic optionnel | Boolean | Specifies if Nomadic destination is VoIP. | * | isNomadicModeInitialized optionnel | Boolean | Nomadic feature: when true, at least one login or logout has been done. PCG reserved. | * | userType optionnel | string | The userType is ACD data from the OXE. PCG reserved. | * * */ updateASystemPhoneNumber(systemId: string, phoneNumberId: string, isMonitored?: boolean, userId?: string, internalNumber?: string, number?: string, type?: string, deviceType?: string, firstName?: string, lastName?: string, deviceName?: string, isVisibleByOthers?: boolean): Promise; /** * @public * @nodered true * @method createDirectoryEntry * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} companyId Id of the company the directory is linked to. * @param {string} firstName Contact first Name * @param {string} lastName Contact last Name * @param {string} companyName Company Name of the contact * @param {string} department Contact address: Department * @param {string} street Contact address: Street * @param {string} city Contact address: City * @param {string} state When country is 'USA' or 'CAN', a state should be defined. Else it is not managed. Allowed values: "AK", "AL", "....", "NY", "WY" * @param {string} postalCode Contact address: postal code / ZIP * @param {string} country Contact address: country (ISO 3166-1 alpha3 format) * @param {Array} workPhoneNumbers Work phone numbers. Allowed format are E164 or national with a country code. e.g: ["+33390671234"] or ["+33390671234, 0690676790"] with "country": "FRA") If a number is not in E164 format, it is converted to E164 format using provided country (or company country if contact's country is not set) * @param {Array} mobilePhoneNumbers Mobile phone numbers. Allowed format are E164 or national with a country code. e.g: ["+33390671234"] or ["+33390671234, 0690676790"] with "country": "FRA") If a number is not in E164 format, it is converted to E164 format using provided country (or company country if contact's country is not set) * @param {Array} otherPhoneNumbers Other phone numbers. Allowed format are E164 or national with a country code. e.g: ["+33390671234"] or ["+33390671234, 0690676790"] with "country": "FRA") If a number is not in E164 format, it is converted to E164 format using provided country (or company country if contact's country is not set) * @param {string} jobTitle Contact Job title * @param {string} eMail Contact Email address * @param {Array} tags An Array of free tags
    * A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters.
    * The tags can be used to search the directory entries of type user or company using multi-criterion search (search query parameter of the API GET /api/rainbow/directory/v1.0/entries). The multi-criterion search using the tags can only be done on directories belonging to the company of the logged in user (and to the companies belonging to the organisation of the logged in user if that is the case).
    * @param {string} custom1 Custom field 1 * @param {string} custom2 Custom field 2 * @description * This API allows administrators to Create a directory entry.
    */ createDirectoryEntry(companyId: string, firstName: string, lastName: string, companyName: string, department: string, street: string, city: string, state: string, postalCode: string, country: string, workPhoneNumbers: string[], mobilePhoneNumbers: string[], otherPhoneNumbers: string[], jobTitle: string, eMail: string, tags: string[], custom1: string, custom2: string): Promise; /** * @public * @nodered true * @method deleteCompanyDirectoryAllEntry * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} companyId Id of the company. * @description * This API allows administrators to delete all the entries in the directory of a company they administrate.
    * @return {Promise} */ deleteCompanyDirectoryAllEntry(companyId: string): Promise; /** * @public * @nodered true * @method deleteDirectoryEntry * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} entryId Id of the entry. * @description * This API allows administrators to delete an entry from the directory of a company they administrate.
    * @return {Promise} */ deleteDirectoryEntry(entryId: string): Promise; /** * @public * @nodered true * @method getDirectoryEntryData * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} entryId Id of the entry. * @param {string} format="small" Allows to retrieve more or less entry details in response.
    * - small: id, firstName, lastName
    * - medium: id, companyId, firstName, lastName, workPhoneNumbers
    * - full: all fields.
    * default : small
    * Valid values : small, medium, full
    * @description * This API allows administrators to get an entry of the directory of a company they administrate.
    * @return {Promise} */ getDirectoryEntryData(entryId: string, format?: string): Promise; /** * @public * @nodered true * @method getListDirectoryEntriesData * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} companyId Allows to filter the list of directory entries on the companyIds provided in this option * @param {string} organisationIds Allows to filter the list of directory entries on the organisationIds provided in this option * @param {string} name Allows to filter the list of directory entries of user type on the name provided in this option.
    * - keywords exact match (ex: 'John Doe' find 'John Doe') * - keywords partial match (ex: 'Jo Do' find 'John Doe') * - case insensitive (ex: 'john doe' find 'John Doe') * - accents insensitive (ex: 'herve mothe' find 'Hervé Mothé') * - on only firstname or lastname (ex: 'john' find 'John Doe') * - order firstname / lastname does not matter (eg: 'doe john' find 'John Doe') * @param {string} search Allows to filter the list of directory entries by the words provided in this option.
    * - The query parameter type allows to specify on which type of directory entries the search is performed ('user' (default), 'company', or all entries) - Multi criterion search is only available to users having feature SEARCH_BY_TAGS in their profiles - keywords exact match (ex: 'John Doe' find 'John Doe') * - keywords partial match (ex: 'Jo Do' find 'John Doe') * - case insensitive (ex: 'john doe' find 'John Doe') * - accents insensitive (ex: 'herve mothe' find 'Hervé Mothé') * - multi criterion: fields firstName, lastName, jobTitle,companyName, department and tags. * - order firstname / lastname does not matter (eg: 'doe john' find 'John Doe') * @param {string} type="user" Allows to specify on which type of directory entries the multi-criterion search is performed ('user' (default), 'company', or all entries)
    * This parameter is only used if the query parameter search is also specified, otherwise it is ignored. Default value : user. Possible values : user, company * @param {string} companyName Allows to filter the list of directory entries of company type on the name provided in this option.
    * - keywords exact match (ex: 'John Doe' find 'John Doe') * - keywords partial match (ex: 'Jo Do' find 'John Doe') * - case insensitive (ex: 'john doe' find 'John Doe') * - accents insensitive (ex: 'herve mothe' find 'Hervé Mothé') * - on only companyName (ex: 'john' find 'John Doe') * @param {string} phoneNumbers Allows to filter the list of directory entries on the number provided in this option. (users and companies type)
    * Note the numbers must be in E164 format separated by a space and the character "+" replaced by "%2B". ex. "phoneNumbers=%2B33390676790 %2B33611223344" * @param {Date} fromUpdateDate Allows to filter the list of directory entries from provided date (ISO 8601 format eg: '2019-04-11 16:06:47'). * @param {Date} toUpdateDate Allows to filter the list of directory entries until provided date (ISO 8601 format). * @param {string} tags Allows to filter the list of directory entries on the tag(s) provided in this option.
    * Only usable by users with admin rights, so that he can list the directory entries to which a given tag is assigned (useful for tag administration).
    * Using this parameter, the tags are matched with strict equality (i.e. it is case sensitive and the whole tag must be provided). * @param {string} format="small" Allows to retrieve more or less entry details in response.
    * - small: id, firstName, lastName
    * - medium: id, companyId, firstName, lastName, workPhoneNumbers
    * - full: all fields.
    * default : small
    * Valid values : small, medium, full
    * @param {number} limit=100 Allow to specify the number of phone book entries to retrieve. Default value : 100 * @param {number} offset=0 Allow to specify the position of first phone book entry to retrieve (first one if not specified) Warning: if offset > total, no results are returned. * @param {string} sortField="lastName" Sort directory list based on the given field. Default value : lastName * @param {number} sortOrder=1 Specify order when sorting phone book list. Default value : 1. Possible values : -1, 1 * @param {string} view="all" Precises ios the user would like to consult either his personal directory, his company directory or the both. Default value : all. Possible values : personal, company, all * @description * This API allows users to get an entry of the directory of a company they administrate.
    * superadmin and support can get a directory entry of all companies.
    * bp_admin can only get a directory entry of their own companies or their End Customer companies.
    * organization_admin can only get a directory entry of the companies under their organization.
    * other users can only get a directory entry of their onw companies (and companies visible in their organisation if any). users can get the entries of their own directory too.
    *
    * name, phoneNumbers, search and tags parameters are exclusives. * @return {Promise} *
    * * | Champ | Type | Description | * | --- | --- | --- | * | data | Object\[\] | Data objects | * | id | string | Directory entry identifier | * | companyId optionnel | string | Id of the company | * | userId optionnel | string | Id of the user | * | type | string | Type of the directory entry
    * `user` if firstName and/or lastName are filled,
    * `company` if only companyName is filled (firstName and lastName empty)
    Possible values : `user`, `company` | * | firstName optionnel | string | Contact First name | * | lastName optionnel | string | Contact Last name | * | companyName optionnel | string | Company Name of the contact | * | department optionnel | string | Contact address: Department | * | street optionnel | string | Contact address: Street | * | city optionnel | string | Contact address: City | * | state optionnel | string | When country is 'USA' or 'CAN', a state should be defined. Else it is not managed. Allowed values: "AK", "AL", "....", "NY", "WY" | * | postalCode optionnel | string | Contact address: postal code / ZIP | * | country optionnel | string | Contact address: country (ISO 3166-1 alpha3 format) | * | workPhoneNumbers optionnel | string\[\] | Work phone numbers (E164 format) | * | mobilePhoneNumbers optionnel | string\[\] | Mobile phone numbers (E164 format) | * | otherPhoneNumbers optionnel | string\[\] | other phone numbers (E164 format) | * | jobTitle optionnel | string | Contact Job title | * | eMail optionnel | string | Contact Email address | * | tags optionnel | string\[\] | An Array of free tags | * | custom1 optionnel | string | Custom field 1 | * | custom2 optionnel | string | Custom field 2 | * * */ getListDirectoryEntriesData(companyId: string, organisationIds: string, name: string, search: string, type: string, companyName: string, phoneNumbers: string, fromUpdateDate: Date, toUpdateDate: Date, tags: string, format?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number, view?: string): Promise; /** * @public * @nodered true * @method updateDirectoryEntry * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} entryId Id of the entry. * @param {string} firstName Contact first Name * @param {string} lastName Contact last Name * @param {string} companyName Company Name of the contact * @param {string} department Contact address: Department * @param {string} street Contact address: Street * @param {string} city Contact address: City * @param {string} state When country is 'USA' or 'CAN', a state should be defined. Else it is not managed. Allowed values: "AK", "AL", "....", "NY", "WY" * @param {string} postalCode Contact address: postal code / ZIP * @param {string} country Contact address: country (ISO 3166-1 alpha3 format) * @param {Array} workPhoneNumbers Work phone numbers. Allowed format are E164 or national with a country code. e.g: ["+33390671234"] or ["+33390671234, 0690676790"] with "country": "FRA") If a number is not in E164 format, it is converted to E164 format using provided country (or company country if contact's country is not set) * @param {Array} mobilePhoneNumbers Mobile phone numbers. Allowed format are E164 or national with a country code. e.g: ["+33390671234"] or ["+33390671234, 0690676790"] with "country": "FRA") If a number is not in E164 format, it is converted to E164 format using provided country (or company country if contact's country is not set) * @param {Array} otherPhoneNumbers Other phone numbers. Allowed format are E164 or national with a country code. e.g: ["+33390671234"] or ["+33390671234, 0690676790"] with "country": "FRA") If a number is not in E164 format, it is converted to E164 format using provided country (or company country if contact's country is not set) * @param {string} jobTitle Contact Job title * @param {string} eMail Contact Email address * @param {Array} tags An Array of free tags
    * A maximum of 5 tags is allowed, each tag can have a maximum length of 64 characters.
    * The tags can be used to search the directory entries of type user or company using multi-criterion search (search query parameter of the API GET /api/rainbow/directory/v1.0/entries). The multi-criterion search using the tags can only be done on directories belonging to the company of the logged in user (and to the companies belonging to the organisation of the logged in user if that is the case). * @param {string} custom1 Custom field 1 * @param {string} custom2 Custom field 2 * @description * This API allows administrators to update an entry of the directory of a company they administrate.
    * @return {Promise} */ updateDirectoryEntry(entryId: string, firstName: string, lastName: string, companyName: string, department: string, street: string, city: string, state: string, postalCode: string, country: string, workPhoneNumbers: string[], mobilePhoneNumbers: string[], otherPhoneNumbers: string[], jobTitle: string, eMail: string, tags: string[], custom1: string, custom2: string): Promise; /********************************************************/ /** EXPORT CSV **/ /********************************************************/ getAllDirectoryContacts(companyId: any): Promise; buildDirectoryCsvBlob(companyId: any): Promise; /** * @public * @nodered true * @method exportDirectoryCsvFile * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} companyId The company id of the directory to export.
    * @param {string} filePath The folder where the directory will be exported. * @description * This API allows administrators to export the directory in a CSV file.
    * @return {Promise} If it succeed then it returns the file full path of the exported data. If it failed then it return the error. */ exportDirectoryCsvFile(companyId: string, filePath: string): Promise; /** * @public * @nodered true * @method ImportDirectoryCsvFile * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory * @param {string} companyId The company id of the directory to export.
    * @param {string} fileFullPath The full file path to import. * @param {string} label The label used for the import. * @description * This API allows administrators to import the directory from a CSV file.
    * @return {Promise} . */ ImportDirectoryCsvFile(companyId: string, fileFullPath: string, label: string): Promise; /** * @public * @nodered true * @method getAllTagsAssignedToDirectoryEntries * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory tags * @param {string} companyId Allows to list the tags for the directory entries of the companyIds provided in this option.
    * If companyId is not provided, the tags are listed for all the directory entries of the companies managed by the logged in administrator. * @description * This API allows administrators to list all the tags being assigned to the directory entries of the companies managed by the administrator.
    * @return {Promise} */ getAllTagsAssignedToDirectoryEntries(companyId: string): Promise; /** * @public * @nodered true * @method removeTagFromAllDirectoryEntries * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory tags * @param {string} companyId Allows to list the tags for the directory entries of the companyIds provided in this option.
    * If companyId is not provided, the tags are listed for all the directory entries of the companies managed by the logged in administrator.
    * @param {string} tag tag to remove. * @description * This API allows administrators to remove a tag being assigned to some directory entries of the companies managed by the administrator.
    * The parameter companyId can be used to limit the removal of the tag on the directory entries of the specified company(ies).
    * @return {Promise} */ removeTagFromAllDirectoryEntries(companyId: string, tag: string): Promise; /** * @public * @nodered true * @method renameTagForAllAssignedDirectoryEntries * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory tags * @param {string} companyId Allows to rename a tag for the directory entries of the companyIds provided in this option.
    * If companyId is not provided, the tag is renamed from all the directory entries of all the companies managed by the logged in administrator.
    * @param {string} tag tag to rename. * @param {string} newTagName New tag name. * @description * This API allows administrators to rename a tag being assigned to some directory entries of the companies managed by the administrator.
    * The parameter companyId can be used to limit the renaming of the tag on the directory entries of the specified company(ies).
    * @return {Promise} */ renameTagForAllAssignedDirectoryEntries(tag: string, companyId: string, newTagName: string): Promise; /** * @public * @nodered true * @method getStatsRegardingTagsOfDirectoryEntries * @since 2.2.0 * @instance * @async * @category Rainbow Company Directory portal - directory tags * @param {string} companyId Allows to compute the tags statistics for the directory entries of the companyIds provided in this option.
    * @description * This API can be used to list all the tags being assigned to the directory entries of the companies managed by the administrator, with the number of directory entries for each tags.
    * @return {Promise} */ getStatsRegardingTagsOfDirectoryEntries(companyId: string): Promise; /** * @public * @nodered true * @method createAClientVersion * @since 2.5.0 * @instance * @param {string} id Unique identifier of the application to which the client version refer. Default value is the AppId provided to login the SDK. * @param {string} version App version * @async * @category Clients Versions * @description * This API can be used to define the minimal required version for a given client application.
    * When a minimal required version is defined for a client application, if a user using an older version of this application tries to login to Rainbow, the login is forbidden with a specific error code (403020).
    * In that case, the client application can show an error message to the user requesting him to update his application.
    * To be noted that the application must provide the header x-rainbow-client-version with its current version so that this check can be performed.
    * Users with superadmin role can define the minimal required version for any client applications.
    * @return {Promise} */ createAClientVersion(id: string, version: string): Promise; /** * @public * @nodered true * @method deleteAClientVersion * @since 2.5.0 * @instance * @param {string} clientId Application unique identifier to which the client version refer * @async * @category Clients Versions * @description * This API can be used to delete the minimal required version defined for a given client application.
    * When no minimal required version is defined for a client application, this application will allow to log users in Rainbow whatever their version.
    * Users with superadmin role can delete the minimal required version for any client applications.
    * @return {Promise} */ deleteAClientVersion(clientId: string): Promise; /** * @public * @nodered true * @method getAClientVersionData * @since 2.5.0 * @instance * @param {string} clientId Application unique identifier to which the client version refer * @async * @category Clients Versions * @description * This API can be used to get the minimal required version defined for a given client application (if any, otherwise a 404 http error is returned).
    * Users with superadmin role can retrieve the minimal required version for all client applications.
    * @return {Promise} */ getAClientVersionData(clientId: string): Promise; /** * @public * @nodered true * @method getAllClientsVersions * @since 2.5.0 * @instance * @async * @category Clients Versions * @param {string} name Allows to filter clients versions list on field name. * @param {string} typeClient Allows to filter clients versions list on field type. * @param {number} limit=100 Allow to specify the number of clients versions to retrieve. Default value : 100. * @param {number} offset=0 Allow to specify the position of first client version to retrieve (first client version if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="name" Sort clients versions list based on the given field. Default value : "name" * @param {number} sortOrder=1 Specify order when sorting clients versions list. Default value : 1. Authorized values : -1, 1. * @description * This API can be used to get the minimal required versions defined for the client applications.
    * Users with superadmin role can retrieve the minimal required version for all client applications.
    * @return {Promise} */ getAllClientsVersions(name?: string, typeClient?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number): Promise; /** * @public * @nodered true * @method updateAClientVersion * @since 2.5.0 * @instance * @param {string} clientId Application unique identifier to which the client version refer * @param {string} version App version * @async * @category Clients Versions * @description * This API can be used to get the minimal required version defined for a given client application (if any, otherwise a 404 http error is returned).
    * Users with superadmin role can retrieve the minimal required version for all client applications.
    * @return {Promise} */ updateAClientVersion(clientId: string, version: string): Promise; /** * @public * @nodered true * @method getListOfCountries * @since 2.21.0 * @instance * @async * @category Country * @description * This API allows to retrieve the list of countries supported by Rainbow Server.
    * For some countries (CAN and USA), a state can be configured. The list of supported states for these countries is returned in the states field. * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | isoAlpha3Code | string | Country ISO 3166-1 alpha-2 code | * | isoAlpha2Code | string | Country ISO 3166-1 alpha-3 code | * | fullname | string | Country full name | * | states optionnel | Object\[\] | List of states handled for this country.

    Only available for countries `CAN`and `USA`. | * | isoAlpha2Code | string | State ISO 3166-1 alpha-2 code | * | fullname | string | State full name | * */ getListOfCountries(): Promise; /** * @public * @nodered true * @method deleteTrustedApplication * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @description * This API allows Rainbow users to delete a trusted application.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | trusted app delete status message. | * */ deleteTrustedApplication(appId: string): Promise; /** * @public * @nodered true * @method deleteAllTrustedApplications * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @description * This API allows Rainbow users to delete all trusted applications.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Trusted applications delete status message. | * */ deleteAllTrustedApplications(): Promise; /** * @public * @nodered true * @method disableMultifactorAuthentication * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @description * This API allows Rainbow users to disable multifactor authentication.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | status message. | * */ disableMultifactorAuthentication(): Promise; /** * @public * @nodered true * @method enableMultifactorAuthentication * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @description * This API allows Rainbow users to enable Multifactor Authentication in order to finalize activation process.
    * @return {Promise} - result * */ enableMultifactorAuthentication(): Promise; /** * @public * @nodered true * @method getMultifactorInformation * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @description * This API allows Rainbow users to retrive multifactor information in order to start activation process.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | mfaType | string | type of multifactor | * | mfaSecret | string | secret of TOTP multifactor | * | otpAuthUrl | string | OTP auth url computed from secret (see https://github.com/google/google-authenticator/wiki/Key-Uri-Format) | * | qrcode | string | QR code generated from OTP Url | * */ getMultifactorInformation(): Promise; /** * @public * @nodered true * @method verifyMultifactorInformation * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @param {string} token 6-digits TOTP code * @description * This API allows Rainbow users to verify that rainbow multifcator authentication is operational.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | mfaType | string | type of multifactor | * | mfaRecoveryCode | string | recovery code used as default multifactor authentication | * */ verifyMultifactorInformation(token: string): Promise; /** * @public * @nodered true * @method resetRecoveryCodeForMultifactorAuthentication * @since 2.22.4 * @instance * @async * @category Multifactor Rainbow Authentication * @description * This API allows Rainbow users to reset recovery code for multifactor authentication.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | status message | * | mfaRecoveryCode | string | new recovery code | * */ resetRecoveryCodeForMultifactorAuthentication(): Promise; /** * @public * @nodered true * @method deleteApiKey * @since 2.36.0 * @instance * @async * @param {string} apiKeyId API_KEY unique identifier * @category Apikeys Rainbow Authentication * @description * This API allows Rainbow users to delete an Api Key.
    * @return {Promise} - result * * * | Field | Type | Description | * | --- | --- | --- | * | status | String | Deletion status | * | data | Object | Response Object. | * | id | String | The identifier of the API_KEY | * | scope | String\[\] | The scope of the API_KEY | * | description | String | The description of the API_KEY | * | isActive | Boolean | Indicate if the API_KEY is active | * | userId | String | The identifier of the API_KEY owner | * | loginEmail | String | The Email of the API_KEY owner | * | expirationDate optional | Date-Time | The expiration date of the API_KEY | * | creationDate | Date-Time | The creation date of the API_KEY | * | lastUpdateDate optional | Date-Time | The last date of update of the API_KEY | * | createdBy | Object | The object containing some information about the creator of the API_KEY | * | userId | String | The identifier the creator of the API_KEY | * | loginEmail | String | The Email the creator of the API_KEY | * | appId | String | The identifier of the application associated to the creator of the API_KEY | * | appName | String | The name of the application associated to the creator of the API_KEY | * | clientMetadata | Object | The metadata of the client | * */ deleteApiKey(apiKeyId: string): Promise; /** * @public * @nodered true * @method generateApiKey * @since 2.36.0 * @instance * @async * @param {Array} scope=["all"] The scope of the API_KEY. Allowed values: all * @param {string} description="" The description of the API_KEY * @param {boolean} isActive=true Indicate if the API_KEY is active * @param {string} expirationDate The expiration date of the API_KEY. If expirationDate is null or not set, the API_KEY never expire * @category Apikeys Rainbow Authentication * @description * This API allows Rainbow users create an API_KEY for authentication.
    * @return {Promise} - result * * * | Field | Type | Description | * | --- | --- | --- | * | id | String | The identifier of the API_KEY | * | apiKey | String | The value of the API_KEY | * | scope | String\[\] | The scope of the API_KEY | * | description | String | The description of the API_KEY | * | isActive | Boolean | Indicate if the API_KEY is active | * | userId | String | The identifier of the API_KEY owner | * | loginEmail | String | The Email of the API_KEY owner | * | expirationDate optional | Date-Time | The expiration date of the API_KEY | * | creationDate | Date-Time | The creation date of the API_KEY | * | lastUpdateDate optional | Date-Time | The last date of update of the API_KEY | * | createdBy | Object | The object containing some information about the creator of the API_KEY | * | userId | String | The identifier the creator of the API_KEY | * | loginEmail | String | The Email the creator of the API_KEY | * | appId | String | The identifier of the application associated to the creator of the API_KEY | * | appName | String | The name of the application associated to the creator of the API_KEY | * | clientMetadata | Object | The metadata of the client | * */ generateApiKey(scope?: Array, description?: string, isActive?: boolean, expirationDate?: string): Promise; /** * @public * @nodered true * @method getAllApiKey * @since 2.36.0 * @instance * @async * @param {boolean} isActive Allows to filter API_KEYs list on the isActive value provided in this option. * @param {string} fromCreationDate Allows to filter API_KEYs list on the fromCreationDate value provided in this option. * @param {string} toCreationDate Allows to filter API_KEYs list on the toCreationDate value provided in this option. * @param {string} limit=100 Allow to specify the number of API_KEYs to retrieve. Default value: 100 * @param {string} offset=0 Allow to specify the position of first API_KEY to retrieve (first API_KEY if not specified). Warning: if offset > total, no results are returned. * @param {string} sortField="creationDate" Sort API_KEYs list based on the given field. Default value: creationDate * @param {string} sortOrder=-1 Specify order when sorting API_KEYs list. Default value: -1. Allowed values: -1, 1 * @param {string} format="small" Allows to retrieve more or less details in response.
    * - small: id, description
    * - medium: id, description scope isActive expirationDate
    * - full: all of fields, except apiKey value
    *
    * Allowed values: small, medium, full * @param {string} userId Allows an administrator to retrieve API_KEYs of a specific user.
    * userId is not taken into account if the logged in user has not administration role(s)
    * if userId parameter is not set, the API_KEYs of the logged in user are listed
    * if userId parameter is set, the logged in user must be administrator of this user's company
    * @category Apikeys Rainbow Authentication * @description * This API Allow a user to get all his API_KEYs, or an administrator to get all API_KEYs of a user that he's responsible.
    * @return {Promise} - result * * * | Field | Type | Description | * | --- | --- | --- | * | data | Object\[\] | Response Object. | * | id | String | The identifier of the API_KEY | * | scope | String\[\] | The scope of the API_KEY | * | description | String | The description of the API_KEY | * | isActive | Boolean | Indicate if the API_KEY is active | * | userId | String | The identifier of the API_KEY owner | * | loginEmail | String | The Email of the API_KEY owner | * | expirationDate optional | Date-Time | The expiration date of the API_KEY | * | creationDate | Date-Time | The creation date of the API_KEY | * | lastUpdateDate optional | Date-Time | The last date of update of the API_KEY | * | createdBy | Object | The object containing some information about the creator of the API_KEY | * | userId | String | The identifier the creator of the API_KEY | * | loginEmail | String | The Email the creator of the API_KEY | * | appId | String | The identifier of the application associated to the creator of the API_KEY | * | appName | String | The name of the application associated to the creator of the API_KEY | * | clientMetadata | Object | The metadata of the client | * */ getAllApiKey(isActive: boolean, fromCreationDate: string, toCreationDate: string, limit: number, offset: number, sortField: string, sortOrder: number, format: string, userId: string): Promise; /** * @public * @nodered true * @method getApiKey * @since 2.36.0 * @instance * @async * @param {string} apiKeyId API_KEY unique identifier. * @category Apikeys Rainbow Authentication * @description * This API Allow a user to get an API_KEYs.
    * @return {Promise} - result * * * | Field | Type | Description | * | --- | --- | --- | * | data | Object\[\] | Response Object. | * | id | String | The identifier of the API_KEY | * | scope | String\[\] | The scope of the API_KEY | * | description | String | The description of the API_KEY | * | isActive | Boolean | Indicate if the API_KEY is active | * | userId | String | The identifier of the API_KEY owner | * | loginEmail | String | The Email of the API_KEY owner | * | expirationDate optional | Date-Time | The expiration date of the API_KEY | * | creationDate | Date-Time | The creation date of the API_KEY | * | lastUpdateDate optional | Date-Time | The last date of update of the API_KEY | * | createdBy | Object | The object containing some information about the creator of the API_KEY | * | userId | String | The identifier the creator of the API_KEY | * | loginEmail | String | The Email the creator of the API_KEY | * | appId | String | The identifier of the application associated to the creator of the API_KEY | * | appName | String | The name of the application associated to the creator of the API_KEY | * | clientMetadata | Object | The metadata of the client | * */ getApiKey(apiKeyId?: string): Promise; /** * @public * @nodered true * @method getCurrentApiKey * @since 2.36.0 * @instance * @async * @category Apikeys Rainbow Authentication * @description * This API Allow a user to get data of the currently used API_KEY.
    * @return {Promise} - result * * * | Field | Type | Description | * | --- | --- | --- | * | data | Object\[\] | Response Object. | * | id | String | The identifier of the API_KEY | * | scope | String\[\] | The scope of the API_KEY | * | description | String | The description of the API_KEY | * | isActive | Boolean | Indicate if the API_KEY is active | * | userId | String | The identifier of the API_KEY owner | * | loginEmail | String | The Email of the API_KEY owner | * | expirationDate optional | Date-Time | The expiration date of the API_KEY | * | creationDate | Date-Time | The creation date of the API_KEY | * | lastUpdateDate optional | Date-Time | The last date of update of the API_KEY | * | createdBy | Object | The object containing some information about the creator of the API_KEY | * | userId | String | The identifier the creator of the API_KEY | * | loginEmail | String | The Email the creator of the API_KEY | * | appId | String | The identifier of the application associated to the creator of the API_KEY | * | appName | String | The name of the application associated to the creator of the API_KEY | * | clientMetadata | Object | The metadata of the client | * */ getCurrentApiKey(): Promise; /** * @public * @nodered true * @method updateApiKey * @since 2.36.0 * @instance * @async * @param {string} apiKeyId API_KEY unique identifier * @param {string} description The description of the API_KEY * @param {boolean} isActive Indicate if the API_KEY is active * @param {string} expirationDate The expiration date of the API_KEY. If expirationDate is null or not set, the API_KEY never expire * @category Apikeys Rainbow Authentication * @description * This API allows Rainbow users create an API_KEY for authentication.
    * @return {Promise} - result * * * | Field | Type | Description | * | --- | --- | --- | * | id | String | The identifier of the API_KEY | * | apiKey | String | The value of the API_KEY | * | scope | String\[\] | The scope of the API_KEY | * | description | String | The description of the API_KEY | * | isActive | Boolean | Indicate if the API_KEY is active | * | userId | String | The identifier of the API_KEY owner | * | loginEmail | String | The Email of the API_KEY owner | * | expirationDate optional | Date-Time | The expiration date of the API_KEY | * | creationDate | Date-Time | The creation date of the API_KEY | * | lastUpdateDate optional | Date-Time | The last date of update of the API_KEY | * | createdBy | Object | The object containing some information about the creator of the API_KEY | * | userId | String | The identifier the creator of the API_KEY | * | loginEmail | String | The Email the creator of the API_KEY | * | appId | String | The identifier of the application associated to the creator of the API_KEY | * | appName | String | The name of the application associated to the creator of the API_KEY | * | clientMetadata | Object | The metadata of the client | * */ updateApiKey(apiKeyId: string, description: string, isActive: boolean, expirationDate?: string): Promise; /** * @public * @method getCustomerCareAdministratorsGroup * @since 2.24.0 * @instance * @async * @category Customer Care - Administrators Group * @description * This API allows get the list of administrators allowed to consult the list of issues, create and consolidate tickets.
    * @return {Promise} - result * * Result sample :
    * {
    * [ {
    * "userId": "57347ea14a0327064fcb93fd",
    * "loginEmail": "alice.beneth@al-enterprise.com"
    * },
    * {
    * "userId": "57347ea14a0327064fcb93fd",
    * "loginEmail": "bob.smith@al-enterprise.com"
    * } ]
    * }
    */ getCustomerCareAdministratorsGroup(): Promise; /** * @public * @method addAdministratorToGroup * @since 2.24.0 * @instance * @async * @param {string} userId Superadmin or Support unique identifier. Default value is the connected user. * @category Customer Care - Administrators Group * @description * This API allows Add one administrators allowed to consult the list of issues, create and consolidate tickets.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | userId | string | User unique identifier | * | loginEmail | string | User email address (used for login) | * */ addAdministratorToGroup(userId: string): Promise; /** * @public * @method removeAdministratorFromGroup * @since 2.24.0 * @instance * @async * @param {string} userId Superadmin or Support unique identifier * @category Customer Care - Administrators Group * @description * This API allows to remove one administrator from the group.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Delete operation status message. | * */ removeAdministratorFromGroup(userId: string): Promise; /** * @public * @method getIssue * @since 2.24.0 * @instance * @async * @param {string} logId Logs context unique identifier * @category Customer Care - Logs * @description * This API allows to retrieve a given issue.
    * The logged in user must have administration rights on the company to which belong the user who created the issue.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | hardware optionnel | Object | When relevant, details regarding the hardware of the device on which the issue occurred | * | manufacturer optionnel | string | When relevant, manufacturer of the device on which the issue occurred
    | * | model optionnel | string | When relevant, model of the device on which the issue occurred
    | * | os optionnel | Object | When relevant, details regarding the Operating System on which the issue occurred | * | name optionnel | string | When relevant, name of the Operating System on which the issue occurred
    | * | version optionnel | string | When relevant, version of the Operating System on which the issue occurred
    | * | browser optionnel | Object | When relevant, details regarding the browser on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * | name optionnel | string | When relevant, name of the browser on which the issue occurred
    | * | version optionnel | string | When relevant, name of the browser on which the issue occurred
    | * */ getIssue(logId: string): Promise; /** * @public * @method getListOfIssues * @since 2.24.0 * @instance * @async * @category Customer Care - Logs * @param {number} limit=100 Allow to specify the number of issues to retrieve. Default value : 100 * @param {number} offset=0 Allow to specify the position of first issue to retrieve (first issue if not specified). Warning: if offset > total, no results are returned. Default value : 0 * @param {string} sortField="creationDate" Sort issues list based on the given field. Default value : creationDate. Possibles values : creationDate. * @param {number} sortOrder=-1 Specify sort order when sorting issues list. Default value : -1. Possibles values : -1, 1. * @param {string} companyId Allows to filter issues list on the companyId(s) provided in this option. companyId parameter is optional: if companyId is not provided, all the issues created by users belonging to companies that the administrator manage are returned. If provided, the logged in user must have administration rights on the requested companyId(s). * @param {string} bpId Allows to filter issues list on all the companyId(s) being linked to the BP company provided in this option.
    * For the case of BP companies with bpType= VAD, the query parameter customerCategory allows to specify the kind of companies for which the issues are requested (see more details in the doc of customerCategory parameter).
    * The list of returned issues depends on the bpType of the BP company selected by the parameter bpId and on the requested customerCategory:
    * * if bpId corresponds to a BP company with bpType=VAD, the API will return:
    * * if customerCategory=all:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR),
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC),
    * *issues submitted by users belonging to any of the EC companies directly linked to this BP VAD company (BP VAD --> EC).
    * * if customerCategory=ecs_only:
    * * issues submitted by users belonging to any of the EC companies directly linked to this BP VAD company (BP VAD --> EC).
    * * if customerCategory=irs_only:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR).
    * * if customerCategory=ecs_of_irs_only:
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC).
    * * if customerCategory=irs_with_ecs_of_irs_only:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR),
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC).
    * * if bpId corresponds to a BP company with type=IR (customerCategory shouldn't be used), the API will return:
    * * issues submitted by users belonging to any of the EC companies linked to this BP IR company (BP IR --> EC).
    * * if bpId corresponds to a BP company with type=DR (customerCategory shouldn't be used), the API will return:
    * * issues submitted by users belonging to any of the EC companies linked to this BP DR company (BP DR --> EC).
    * * if bpId corresponds to a BP company with bpType=VAD, the API will return:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR),
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC),
    * * issues submitted by users belonging to any of the EC companies directly linked to this BP VAD company (BP VAD --> EC).
    * * if bpId corresponds to a BP company with bpType=IR, the API will return:
    * * issues submitted by users belonging to any of the EC companies linked to this BP IR company (BP IR --> EC).
    * * if bpId corresponds to a BP company with bpType=DR, the API will return:
    * * issues submitted by users belonging to any of the EC companies linked to this BP IR company (BP DR --> EC).
    *
    * Only one BP's companyId can be provided in this filter.
    * If the companyIs set in the field bpId does not correspond to a BP company, no issues will match.
    * The filter companyId can be used additionally, for example to request the issues submitted by users belonging to the BP company as well.
    * The user must have superadmin, support or bp_admin role to use this filter (not taken into account otherwise).
    * If provided, the logged in user must have administration rights on the requested BP company.
    * @param {string} customerCategory="all" Allows to specify the kind of companies associated to the requested bpId filter for which the list of issues is requested.
    * This query parameter is especially designed for the case of BP with bpType=VAD (to provide the flexibility on the list of issues returned depending on the client's needs). If the BP set in bpId don't have bpType=VAD, some values of customerCategory won't return any results (irs_only, ecs_of_irs_only and irs_with_ecs_of_irs_only should not be used if bpId correspond to a DR or an IR).
    * This query parameter is only taken into account if the bpId query parameter is also provided (not taken into account otherwise).
    * The logs will be returned depending on the bpType of the BP company selected by the parameter bpId and on the requested customerCategory:
    * * if bpId corresponds to a BP company with bpType=VAD, the API will return:
    * * if customerCategory=all:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR),
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC),
    * * issues submitted by users belonging to any of the EC companies directly linked to this BP VAD company (BP VAD --> EC).
    * * if customerCategory=ecs_only:
    * * issues submitted by users belonging to any of the EC companies directly linked to this BP VAD company (BP VAD --> EC).
    * * if customerCategory=irs_only:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR).
    * * if customerCategory=ecs_of_irs_only:
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC).
    * * if customerCategory=irs_with_ecs_of_irs_only:
    * * issues submitted by users belonging to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR),
    * * issues submitted by users belonging to any of the EC companies linked to any of the BP companies with bpType=IR linked to this BP VAD company (BP VAD --> BP IR --> EC).
    * * if bpId corresponds to a BP company with type=IR, the API will return:
    * * if customerCategory=all:
    * * issues submitted by users belonging to any of the EC companies linked to this BP IR company (BP IR --> EC).
    * * if customerCategory=ecs_only:
    * * issues submitted by users belonging to any of the EC companies linked to this BP IR company (BP IR --> EC).
    * * if customerCategory=irs_only:
    * * no results (a BP company with type=IR can't be linked to another BP company with type=IR).
    * * if customerCategory=ecs_of_irs_only:
    * * no results (a BP company with type=IR can't be linked to another BP company with type=IR).
    * * if customerCategory=irs_with_ecs_of_irs_only:
    * * no results (a BP company with type=IR can't be linked to another BP company with type=IR).
    * * if bpId corresponds to a BP company with type=DR, the API will return:
    * * if customerCategory=all:
    * * issues submitted by users belonging to any of the EC companies linked to this BP DR company (BP DR --> EC).
    * * if customerCategory=ecs_only:
    * * issues submitted by users belonging to any of the EC companies linked to this BP DR company (BP DR --> EC).
    * * if customerCategory=irs_only:
    * * no results (a BP company with type=IR can't be linked to a BP company with type=DR).
    * * if customerCategory=ecs_of_irs_only:
    * * no results (a BP company with type=IR can't be linked to a BP company with type=DR).
    * * if customerCategory=irs_with_ecs_of_irs_only:
    * * no results (a BP company with type=IR can't be linked to a BP company with type=DR).
    *
    * Default value : all. Possibles values : all, ecs_only, irs_only, ecs_of_irs_only, irs_with_ecs_of_irs_only
    * @param {string} name Allows to filter issues on the name provided in this option (filter on associated user's displayName and company's name).
    * The filtering is case insensitive and on partial name match: all issues having the user's displayName or the company's name containing the provided name value will be returned (whatever the position of the match).
    * Ex: if filtering is done on Phil, issues created by users or companies match the filter: 'Philip Smith' (user displayName), 'John Philip' (user displayName), 'Philip Morris' (company name), 'This company name is Philips' (company name), ...
    * @param {string} version Allows to filter issues list on the version(s) provided in this option.
    * The filtering is case insensitive and on partial version match. Ex: if filtering is done on 1.112, all issues with the version starting by 1.112 match the filter: '1.112' (exact match), '1.112.2', '1.112.3', '1.1121', ...
    * @param {string} device Allows to filter issues list on the device(s) provided in this option.
    * Note: room corresponds to Rainbow Room
    * Default value : android,desktop,ios,room,web * @param {string} fromCreationDate List issues which have been created after the given date (uses creationDate field). * @param {string} toCreationDate List issues which have been created before the given date (uses creationDate field). * @param {string} fromOccurrenceDate List issues which occurred after the given date (uses occurrenceDate field). * @param {string} toOccurrenceDate List issues which occurred before the given date (uses occurrenceDate field). * @param {string} format="small" Allows to retrieve more or less logs context details in response.
    * * small: id userId companyId device description
    * * medium: id userId companyId device version description creationDate
    * * full: All fields
    *
    * Default value : small. Possibles values : small, medium, full
    * @description * This API allows to retrieve the list of issues.
    * The list of issues (logs contexts) that a user can retrieve depends on its roles:
    * * Users with `superadmin` or `support` role can retrieve all the issues.
    * * Users with `bp_admin` role can retrieve all the issues created by users belonging to their EC companies and to their company.
    * * In the case of BP with type VAD, they can retrieve all the issues created by users belonging to all the EC companies linked directly to the BP VAD and all the EC companies linked to their BP IR companies.
    * * Users with `admin` role retrieve the issues created by users belonging to the companies they can manage:
    * * an `organization_admin` gets all the issues created by users belonging to all the companies he manages (i.e. companies having organisationId equal to his organisationId)
    * * a `company_admin` gets all the issues created by users belonging to his company
    *
    * This API provides some query parameters allowing to filter the list of issues depending on the needs:
    * * `companyId` filter allows to retrieve only the issues created by users of a given company
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | hardware optionnel | Object | When relevant, details regarding the hardware of the device on which the issue occurred | * | manufacturer optionnel | string | When relevant, manufacturer of the device on which the issue occurred
    | * | model optionnel | string | When relevant, model of the device on which the issue occurred
    | * | os optionnel | Object | When relevant, details regarding the Operating System on which the issue occurred | * | name optionnel | string | When relevant, name of the Operating System on which the issue occurred
    | * | version optionnel | string | When relevant, version of the Operating System on which the issue occurred
    | * | browser optionnel | Object | When relevant, details regarding the browser on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * | name optionnel | string | When relevant, name of the browser on which the issue occurred
    | * | version optionnel | string | When relevant, name of the browser on which the issue occurred
    | * */ getListOfIssues(limit: number, offset: number, sortField: string, sortOrder: number, companyId: string, bpId: string, customerCategory: string, name: string, version: string, device: string, fromCreationDate: string, toCreationDate: string, fromOccurrenceDate: string, toOccurrenceDate: string, format?: string): Promise; /** * @public * @method getListOfIssuesForUser * @since 2.24.0 * @instance * @async * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} format="small" Allows to retrieve more or less logs context details in response.
    * * small: id userId companyId device description
    * * medium: id userId companyId device version description creationDate
    * * full: All fields
    * Default value : small. Possibles values : small, medium, full * @category Customer Care - Users Logs * @description * This API allows to consult the list of issues associated to a user or a Rainbow Room.
    * So that, as administrator (BP, Organisation, Company), support, superadmin, it is then possible to start issue resolution process with Rainbow Customer Care team.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | hardware optionnel | Object | When relevant, details regarding the hardware of the device on which the issue occurred | * | manufacturer optionnel | string | When relevant, manufacturer of the device on which the issue occurred
    | * | model optionnel | string | When relevant, model of the device on which the issue occurred
    | * | os optionnel | Object | When relevant, details regarding the Operating System on which the issue occurred | * | name optionnel | string | When relevant, name of the Operating System on which the issue occurred
    | * | version optionnel | string | When relevant, version of the Operating System on which the issue occurred
    | * | browser optionnel | Object | When relevant, details regarding the browser on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * | name optionnel | string | When relevant, name of the browser on which the issue occurred
    | * | version optionnel | string | When relevant, name of the browser on which the issue occurred
    | * */ getListOfIssuesForUser(userId: string, format?: string): Promise; /** * @public * @method getIssueForUser * @since 2.24.0 * @instance * @async * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} logId Logs context unique identifier * @category Customer Care - Users Logs * @description * This API allows to consult one issue associated to a user or a Rainbow Room.
    * So that, as administrator (BP, Organisation, Company), support, superadmin, it is then possible to start issue resolution process with Rainbow Customer Care team.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | hardware optionnel | Object | When relevant, details regarding the hardware of the device on which the issue occurred | * | manufacturer optionnel | string | When relevant, manufacturer of the device on which the issue occurred
    | * | model optionnel | string | When relevant, model of the device on which the issue occurred
    | * | os optionnel | Object | When relevant, details regarding the Operating System on which the issue occurred | * | name optionnel | string | When relevant, name of the Operating System on which the issue occurred
    | * | version optionnel | string | When relevant, version of the Operating System on which the issue occurred
    | * | browser optionnel | Object | When relevant, details regarding the browser on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * | name optionnel | string | When relevant, name of the browser on which the issue occurred
    | * | version optionnel | string | When relevant, name of the browser on which the issue occurred
    | * */ getIssueForUser(userId: string, logId: string): Promise; /** * @public * @method initiateLogsContext * @since 2.24.0 * @instance * @async * @category Customer Care - Users Logs * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} occurrenceDate Date when the issue occurred. If not provided, occurrenceDate is set by default to the issue's creation date. * @param {string} occurrenceDateTimezone Timezone name when the issue occurred.
    * Allowed values: one of the timezone names defined in IANA tz database.
    * Timezone name are composed as follow: Area/Location (ex: Europe/Paris, America/New_York,...)
    *
    * If not provided, occurrenceDateTimezone is set to the user's timezone if available, to "UTC" otherwise.
    * @param {string} type Initial scenario
    * * `feedback`: The customer submits an issue. `userId` parameter must be the logged in user Id in this case.
    * * `ask`: A bot or an admin has contacted a customer to complete an issue
    *
    * Possibles values : `feedback`, `ask`
    * @param {string} description Issue description * @param {string} resourceId Mandatory when type is ask, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) * @param {string} externalRef Free field * @param {string} device Device type
    * Note: room corresponds to Rainbow Room
    * Possibles values : android, desktop, ios, room, web
    * @param {Array} attachments An Array of file descriptor Id.
    * Forbidden when type is ask
    * Mandatory with at least one valid fileId when type is feedback When the logs context is created, the logged in user looses his ownership for theses files.
    * @param {string} version Device version * @param {object} deviceDetails When relevant, optional details regarding the device on which the issue occurred
    * * hardware optionnel Object When relevant, details regarding the hardware of the device on which the issue occurred
    * * manufacturer optionnel string When relevant, manufacturer of the device on which the issue occurred
    * * model optionnel string When relevant, model of the device on which the issue occurred
    * * os optionnel Object When relevant, details regarding the Operating System on which the issue occurred
    * * name optionnel string When relevant, name of the Operating System on which the issue occurred
    * * version optionnel string When relevant, version of the Operating System on which the issue occurred
    * * browser optionnel Object When relevant, details regarding the browser on which the issue occurred
    * * name optionnel string When relevant, name of the browser on which the issue occurred
    * * version optionnel string When relevant, name of the browser on which the issue occurred
    * @description * This API allows to Initialise a context to submit logs. This logs context may contains all fields necessary to finally build a ticket to submit an issue.
    *
    * * userId
    * * companyId
    * * device
    * * version
    * * occurrenceDate
    * * occurrenceDateTimezone
    * * description
    * * attachments
    *
    * When type is `feedback`, some files **>may**\> be attached but are not mandatory. Inconsistencies may lead to an error (errorDetailsCode: 409003 / Attachments inconsistency)
    *
    * * file doesn't exist
    * * file not uploaded
    * * file doesn't belong to the userId
    * * file is not a log file (the file descriptor must include the field 'tags.purpose' = "logs" or 'tags.purpose' = "client_logs"
    *
    * When type is `ask`, resourceId field is mandatory. So that the customercare portal is able to send a Stanza/Message to the right user's device to get his agreement to receive his logs.
    * For the case 'As Admin, ask to manage a user', the administrator must use the `getListOfResourcesForUser` API
    * to select the right resource.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * */ initiateLogsContext(userId: string, occurrenceDate: string, occurrenceDateTimezone: string, type: string, description: string, resourceId: string, externalRef: string, device: string, attachments: Array, version: string, deviceDetails: any): Promise; /** * @public * @method completeLogsContext * @since 2.24.0 * @instance * @async * @category Customer Care - Users Logs * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} logId Logs context unique identifier * @param {string} occurrenceDate Date when the issue occurred (ISO-8601 UTC format). * @param {string} occurrenceDateTimezone Timezone name when the issue occurred.
    * Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    * Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...)
    * @param {string} description Issue description * @param {string} externalRef Free field * @param {string} device Device type
    * Note: room corresponds to Rainbow Room
    * Possibles values : android, desktop, ios, room, web
    * @param {Array} attachments An Array of file descriptor Id. * * Forbidden when type is `feedback`. All attachments are awaited during the logs context creation in thi scenario. * * Mandatory with at least one valid fileId when type is `feedback` and logged in user is a user or a Rainbow room (TV user) When the logs context is updated with some valid attachments, the logged in user looses his ownership for theses files. * @param {string} version Device version * @param {object} deviceDetails When relevant, optional details regarding the device on which the issue occurred * * hardware optionnel Object When relevant, details regarding the hardware of the device on which the issue occurred * * manufacturer optionnel string When relevant, manufacturer of the device on which the issue occurred * * model optionnel string When relevant, model of the device on which the issue occurred * * os optionnel Object When relevant, details regarding the Operating System on which the issue occurred * * name optionnel string When relevant, name of the Operating System on which the issue occurred * * version optionnel string When relevant, version of the Operating System on which the issue occurred * * browser optionnel Object When relevant, details regarding the browser on which the issue occurred * * name optionnel string When relevant, name of the browser on which the issue occurred * * version optionnel string When relevant, name of the browser on which the issue occurred * @description * This API allows to completethe logs context.
    * When an Admin or Emily bot ask to manage a user, this user must complete the logs context with all awaited data.
    *
    * * device
    * * version
    * * description
    * * attachments
    *
    * We let administrators to update some logs context fields at anytime, like:
    *
    * * device
    * * version
    * * description
    * * externalRef
    *
    * To discriminate the user and TV role from the administrator role we applies the following rules:
    *
    * * TV role is a single role then assimilated to a Rainbow user, we ask to complete an 'ask' log context.
    * * When userId URL parameter is the logged in user id, then this user he is also assimilated to a Rainbow user we ask to complete an 'ask' log context.
    * * When userId URL parameter is not the logged in user id, then we consider an administrator or a bot trying to update a logs context.
    *
    * Following constraints are applied (errorDetailsCode: 409004)
    *
    * * The logs context 'userId' field must match the value given as URL parameter
    * * A user or a rainbow TV can't updates a logs contexts when 'userId' field is not his userId and when the logs context type is 'feedback'
    * * Attachments are mandatory when a user or a rainbow TV updates a logs context, and no attachments are linked yet
    * * Can't override 'attachments' field when logs context has already some attached files
    * * An administrator updating a logs context can't set 'attachments' field
    * * A user or a rainbow TV updating a logs context can't change the field externalRef reserved for administrators purpose.
    *
    * Obviously when some files need to be attached, some constraints may lead to an error (errorDetailsCode: 409003)
    *
    * * file doesn't exist
    * * file not uploaded
    * * file doesn't belong to the userId
    * * file is not a log file (the file descriptor must include the field 'tags.purpose' = "logs" or 'tags.purpose' = "client_logs"
    * * permission must be granted before attaching files. See `acknowledgeLogsRequest`
    * @return {Promise} - result * * * exemple of result : * { * "id": "5e5f677a513f6721706bddeb", * "type": "feedback", * "permission": "granted", * "userId": "5cca97863cba1119f22f062f", * "userDisplayName": "John Doe", * "companyId": "57e2b30c89a091b21e843924", * "companyName": "My company", * "problemNumber": 2, * "creationDate": "2020-03-04T08:31:54.426Z", * "occurrenceDate": "2020-03-04T08:15:00.000Z", * "occurrenceDateTimezone": "Europe/Paris", * "description": "Hello Houston, we've got a problem.", * "device": "android", * "version": "1.67.5", * "deviceDetails": { * "hardware": { * "manufacturer": "Samsung", * "model": "Galaxy S21" * }, * "os": { * "name": "Android", * "version": "11" * } * }, * "attachments": \["5e5fecb299821728abb63e6d"\] * } * */ completeLogsContext(userId: string, logId: string, occurrenceDate: string, occurrenceDateTimezone: string, description: string, externalRef: string, device: string, attachments: Array, version: string, deviceDetails: any): Promise; /** * @public * @method cancelOrCloseLogsSubmission * @since 2.24.0 * @instance * @async * @category Customer Care - Users Logs * @param {string} userId User or Rainbow room unique identifier. * @param {string} logId Logs context unique identifier * @description * This API can be called either as administrator (BP, Organisation, Company), support, superadmin to close a log submission.
    * It can be called also by Emily bot after the User or Rainbow room decides to cancel the Ticket submission.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Delete operation status message. | * */ cancelOrCloseLogsSubmission(userId: string, logId: string): Promise; /** * @public * @method acknowledgeLogsRequest * @since 2.24.0 * @instance * @async * @category Customer Care - Users Logs * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} logId Logs context unique identifier * @description * When an Admin or Emily bot ask to manage a user, the targeted device receives an event type management.
    *
    *
    * `rainbow_onlogsconfig` with an action equal to "request". *
    * Then it will have to:
    * acknowledge or reject the request
    *
    * Without an aknowledgment, it's forbidden to update the given logs context.
    * When the request is accepted, it's no more possible to reject the request.
    *
    * Some errors occurs when:
    * Logs context not found (resource not found)
    * The logged in user is not involved in this logs context
    *
    * This API can only be used by user himself (i.e. userId of logged in user).
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * */ acknowledgeLogsRequest(userId: string, logId: string): Promise; /** * @public * @method rejectLogsRequest * @since 2.24.0 * @instance * @async * @category Customer Care - Users Logs * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} logId Logs context unique identifier * @description * When an Admin or Emily bot ask to manage a user, the targeted device receives an event type management.
    *
    *
    * `rainbow_onlogsconfig` with an action equal to "request". *
    * Then it will have to:
    * * acknowledge or reject the request
    *
    * This API is to reject de request. An event type management `rainbow_onlogsconfig` with an action equal to "reject" is raised. *
    * Then it's up to the administrator or the bot to delete the logs context and to stop interacting with the user.
    * Without an aknowledgment, it's forbidden to update the given logs context.
    *
    * Some errors occurs when:
    * * Logs context not found (resource not found)
    * * The logged in user is not involved in this logs context
    * * `Permission already granted. It can no longer be revoked`
    *
    * This API can only be used by user himself (i.e. userId of logged in user = value of userId parameter in URL)
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | attachments | string\[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * */ rejectLogsRequest(userId: string, logId: string): Promise; /** * @public * @method sendCustomerCareReport * @since 2.24.1 * @instance * @async * @category Customer Care - Users Logs * @param {string} logId Logs context unique identifier (received with an `rainbow_onlogsconfig` event with a "request" `action` parameter). * @param {Array} filesPath the path to the files to store in the logs context. * @param {string} occurrenceDate Date when the issue occurred (ISO-8601 UTC format). * @param {string} occurrenceDateTimezone Timezone name when the issue occurred.
    * Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    * Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...)
    * @param {string} description Issue description * @param {string} externalRef Free field * @param {string} device Device type
    * Note: room corresponds to Rainbow Room
    * Possibles values : android, desktop, ios, room, web
    * @param {string} version Device version * @param {object} deviceDetails When relevant, optional details regarding the device on which the issue occurred * * hardware optionnel Object When relevant, details regarding the hardware of the device on which the issue occurred * * manufacturer optionnel string When relevant, manufacturer of the device on which the issue occurred * * model optionnel string When relevant, model of the device on which the issue occurred * * os optionnel Object When relevant, details regarding the Operating System on which the issue occurred * * name optionnel string When relevant, name of the Operating System on which the issue occurred * * version optionnel string When relevant, version of the Operating System on which the issue occurred * * browser optionnel Object When relevant, details regarding the browser on which the issue occurred * * name optionnel string When relevant, name of the browser on which the issue occurred * * version optionnel string When relevant, name of the browser on which the issue occurred * @param {string} typeOfLog="feedback" is Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue * @description * This API allows to store files in rainbow, and then to complete the logs context with it and provided informations.
    * * **Note:** if a file transfert fails then the complete of logs context is not done, and an object with every transfert status is returned. * @return {Promise} - result * The result of the completeLogsContext call. * * **Note:** if a file transfert fails then the complete of logs context is not done, and an object with every transfert status is returned. */ sendCustomerCareReport(logId: string, filesPath: Array, occurrenceDate: string, occurrenceDateTimezone: string, description: string, externalRef: string, device: string, version: string, deviceDetails: any, typeOfLog?: string): Promise; /** * @public * @method adminOrBotAddAdditionalFiles * @since 2.24.0 * @instance * @async * @category Customer Care - Users Logs Append * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} logId Logs context unique identifier * @param {Array} attachments * @param {string} conversationId * @param {string} fileName * @description * This api can be called either as administrator (BP, Organisation, Company), support, superadmin or Emily bot to append additional elements ( pictures, screenshot, ... or conversation content).
    *
    * For example in the [Cf Case As Emily Bot, ask to manage a user](/customercare/#api-_) scenario, the Emily bot should be able to add elements shared by a customer via the conversation the bot did with him.
    *
    * **Pre-checks:**
    * the loggedInUser is the creator of the log context or an authorized administrator.
    *
    * **Case file to add:** two types of files are uploaded : file generated from conversation and file belonging to logged in user.
    * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Logs context unique identifier. | * | type | string | Initial scenario

    * `feedback`: The customer submits an issue
    * `ask`: A bot or an admin has contacted a customer to complete an issue | * | permission | string | User has currently accepted to provide his logs. Default value ('declined' when type is `ask`, `granted` when type is 'feedback'

    * `declined`
    * `granted`

    Default value: `declined` when type is `ask`, `granted` when type is `feedback` | * | userId | string | Unique identifier of the customer (user or Rainbow Tv) | * | userDisplayName | string | Display name of the customer (user or Rainbow Tv) | * | companyId | string | Unique identifier of the userId 's Company | * | companyName | string | Name of the userId 's Company | * | originatorId | string | When type is `ask`, an admin or a bot userId. | * | problemNumber | Number | Ticket number (integer incremented per company) | * | creationDate | Date-Time | Logs context creation date | * | occurrenceDate | Date-Time | Date when the issue occurred | * | occurrenceDateTimezone | string | Timezone name when the issue occurred.

    Allowed values: one of the timezone names defined in [IANA tz database](https://www.iana.org/time-zones).
    Timezone name are composed as follow: `Area/Location` (ex: Europe/Paris, America/New_York,...) | * | description | string | Issue description | * | resourceId | string | When type is `ask`, this is the resource of the device from which we need to get logs (in case of multi-devices configuration) | * | externalRef | string | Free field | * | device | string | Device type

    Note: `room` corresponds to Rainbow Room

    Possibles values : `android`, `desktop`, `ios`, `room`, `web` | * | version | string | Device version | * | deviceDetails optionnel | Object | When relevant, optional details regarding the device on which the issue occurred | * | attachments | string \[\] | An Array of file descriptor Id

    * To belong as logs context attachment, a file descriptor must contain the field tags.purpose with the value `log` | * */ adminOrBotAddAdditionalFiles(userId: string, logId: string, attachments: Array, conversationId: string, fileName: string): Promise; /** * @public * @method getListOfResourcesForUser * @since 2.24.0 * @instance * @async * @category Customer Care - Users resources * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @description * This API allows to have the list of resources a user selected to connect to Rainbow infrastructure.
    So that, as administrator (Superadmin, Support, BP, Organisation, Company), I can ask a user to upload logs if he agree.
    * @return {Promise} - result * * * example of result : * ```json * { * "jid_im": [ * { * "resource": "web\_win\_1.67.2_P0EnyMvN", * "date": "2020-02-11T17:45:18.231395Z" * }, * { * "resource": "web\_win\_1.67.2_ajqyiThi", * "date": "2020-02-11T17:31:31.409537Z", * "show": "xa", "status": "away" * } ] * } * ``` * */ getListOfResourcesForUser(userId: string): Promise; /** * @public * @method createAnAtriumTicket * @since 2.24.0 * @instance * @async * @category Customer Care - Users ticket * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} subject Subject of the new ticket * @param {string} description Description of the new ticket * @param {string} additionalDescription Additional information if necessary * @param {string} resource resource used to generate anomaly * @param {string} externalRef external reference used * @param {Array} logs An Array of log Id regarding the anomaly. * @description * This API allows to Initialise a context from logs to submit a ticket to Zendesk.
    * This context may contains
    * * externalRef
    * * subject
    * * description
    * * additional description
    * * resource
    * * logs.
    * @return {Promise} - result * * * example of result : * ```json * { * "externalRef": "xxxxxxx", * "internalRef": "xxxxxxx", * "subject": "ringing problem", * "description": "Hello Houston, we've got a problem.", * "additionalDescription": "my phone neither", * "resource": "web\_win\_xxxxx", * "logs": [] * } * ``` * */ createAnAtriumTicket(userId: string, subject: string, description: string, additionalDescription: string, resource: string, externalRef: string, logs: Array): Promise; /** * @public * @method updateAnAtriumTicket * @since 2.24.0 * @instance * @async * @category Customer Care - Users ticket * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @param {string} ticketId ticketId Ticket unique identifier * @param {string} subject Subject of the new ticket * @param {string} description Description of the new ticket * @param {string} additionalDescription Additional information if necessary * @param {string} resource resource used to generate anomaly * @param {string} externalRef external reference used * @param {Array} logs An Array of log Id regarding the anomaly. * @description * This API allows to update a context from logs to submit a ticket to Zendesk.
    * This context may contains
    * * externalRef
    * * subject
    * * description
    * * additional description
    * * resource
    * * logs.
    * @return {Promise} - result * * * example of result : * ```json * { * "externalRef": "xxxxxxx", * "internalRef": "xxxxxxx", * "subject": "ringing problem", * "description": "Hello Houston, we've got a problem.", * "additionalDescription": "my phone neither", * "resource": "web\_win\_xxxxx", * "logs": [] * } * ``` * */ updateAnAtriumTicket(userId: string, ticketId: string, subject: string, description: string, additionalDescription: string, resource: string, externalRef: string, logs: Array): Promise; /** * @public * @method deleteAnAtriumTicketInformation * @since 2.24.0 * @instance * @async * @category Customer Care - Users ticket * @param {string} userId User or Rainbow room unique identifier. * @param {string} ticketId ticketId Ticket unique identifier * @description * This API allows to delete an existing context in database from a submitted ticket to Zendesk.
    * @return {Promise} - result * * * example of result : * ```json * { * "externalRef": "xxxxxxx", * "internalRef": "xxxxxxx", * "subject": "ringing problem", * "description": "Hello Houston, we've got a problem.", * "additionalDescription": "my phone neither", * "resource": "web\_win\_xxxxx", * "logs": [] * } * ``` * */ deleteAnAtriumTicketInformation(userId: string, ticketId: string): Promise; /** * @public * @method readAnAtriumTicketInformation * @since 2.24.0 * @instance * @async * @category Customer Care - Users ticket * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @description * This API allows to read a context from a submitted ticket to Zendesk.
    * This context may contains
    * * externalRef
    * * subject
    * * description
    * * additional description
    * * resource
    * * logs.
    * @return {Promise} - result * * * example of result : * ```json * { * "externalRef": "xxxxxxx", * "internalRef": "xxxxxxx", * "subject": "ringing problem", * "description": "Hello Houston, we've got a problem.", * "additionalDescription": "my phone neither", * "resource": "web\_win\_xxxxx", * "logs": [] * } * ``` * */ readAnAtriumTicketInformation(userId: string, ticketId: string): Promise; /** * @public * @method readAllTicketsOnASameCompany * @since 2.24.0 * @instance * @async * @category Customer Care - Users ticket * @param {string} userId User or Rainbow room unique identifier. Default value is the connected user. * @description * This API allows to read all context regarding submitted tickets to Zendesk in the same company . The company is calculated with userId information found in DB.
    * @return {Promise} - result * * * example of result : * ```json * [ * { * "externalRef": "xxxxxxx", * "internalRef": "xxxxxxx", * "subject": "ringing problem", * "description": "Where is the volume button of my iphone?", * "additionalDescription": "Where is my rainbow icon on my mac? ", * "resource": "web\_win\_xxxxx", * "logs": [] * }, * { * "externalRef": "xxxxxxx", * "internalRef": "xxxxxxx", * "subject": "Screen problem", * "description": "I forgot to turn on my iphone, the screen stay in black, I disappointed to not receive any Rainbow notification.", * "resource": "web\_win\_xxxxx" * } * ] * ``` * */ readAllTicketsOnASameCompany(userId: string): Promise; /** * @public * @method createCloudPBXGroup * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId company id unique identifier. Default value is the connected user's company. * @param {HuntingGroup} huntingGroup (in RainbowVoiceCloudPBX type's file ) informations for the creation of the Hunting Group. * @description * This API allows to create a new cloud PBX Group. *
    A group is a container for some Rainbow Users (e.g. 'Hunting Group'). Only company admin or superadmin can create a group. *
    Inside a group, members can have the following possible roles: *
      *
    • manager: User has been given control on the group (can add / remove members, or change order in serial group)
    • *
    • agent: User is a member of a 'default' or 'hg_attendant' hunting group, and will participate in the call distribution (if status is 'active')
    • *
    • leader: User is a member of a 'manager_assistant' hunting group, and can receive calls as the first member in that group (if its status is 'active')
    • *
    • assistant: User is a member of a 'manager_assistant' hunting group, and can receive calls after the leader (if its status is 'active'). Assistant has the right to control its leader filtering status
    • *
    *
    Members can cumulate roles:
    *
      *
    • In 'default' or 'hg_attendant' members can be at the same time manager (i.e. managing members) and agent (participate in call distribution)
    • *
    • In 'manager_assistant' group, members can't cumulate 'leader' and 'assistant' roles. Only one member can have the 'leader' role in a group (and not in other groups !). Manager role can be added to any member
    • *
    *
    When a hunting group is created, members are set as active by default and eligible to call distribution. This behavior can be overridden by setting member status to 'idle'. *
    Some checks are performed while requesting a group creation: *
      *
    • Phone number (shortNumber) must be unique
    • *
    • External Number is the public phone of the group. If used, It must be retrieved from the cloud PBX provisioned DDI numbers
    • *
    • Creator of the hunting group must be superadmin or a company admin
    • *
    • Members must have an associated Cloud PBX subscriber (except manager of the hunting group)
    • *
    • Name of the group must contain only letters, digits or '-', '_'
    • *
    *

    The status of the member can take the following possible values for a 'default' or 'hg_attendant' hunting_group: *
      *
    • active: An active agent will participate in call distribution. active manager is meaningless (except if roles also include agent).
    • *
    • idle: An idle agent does not participate in call distribution, but is 'declared' as a member of the group. He can then join the group to participate in call distribution * (his status will be updated to active after joining the group). Leaving a group is also supported (status then changed from active to idle). See Voice portal for join/leave. *
    *
    In 'manager_assistant' hunting group, some specificities: *
      *
    • The active status set on an assistant means this one is ready to receive manager's call, if this one has set filtering on, or has not replied to the call
    • *
    • The active status set on a leader (i.e. filtering status activated) means the leader has delegated the call processing to the assistant(s) declared in the group
    • *
    • A 'manager_assistant' hunting group is not allowed to be empty (must have at least one member with 'active' status)
    • *
    • A 'manager_assistant' hunting group can only have a serial policy, with the extra constraint to have the leader in first position>
    • *
    *

    The order of the members inside the group can be important, as for the serial or circular hunting group type this reflects the order of ringing of the members. *
    Once a hunting group has been created, it is then possible to associate a public number to it, so that it can be called from public network. Refer to the group update operation. *
    *
    A specific and Unique (for a Cloud PBX) hunting group for managing Emergency Calls can be created by setting the attribute isEmergencyGroup. *
    This emergency group is Unique for a cloud PBX; its policy is parallel and no public number can be associated *
    Once activated (see rvcpprovisioning documentation - section "Cloud PBX / Update a Cloud PBX") ; emergency calls (done without outgoing prefix) will be redirected first to this Emergency Group *
    Forwards (busy ; no-reply ; unavailable) are automatically managed onto the first emergency number (main emergency number in the list) *
    Note that this attribute isEmergencyGroup cannot be updated * * * @return {Promise} - result * * * | Field | Type | Description | * |--------------------------------------------|--------------------------------------------------|---------------------------------------------------------------------------| * | id | string | Group unique identifier | * | name | string | Group name - displayed on the caller phone set for hunting group type | * | shortNumber | string | Short phone number of the hunting group | * | externalNumber | string | Public phone number on which the hunting group can be joined | * | externalNumberId | string | Identifier of the public phone number of the hunting group | * | roomId | string | Identifier of the hunting group associated room | * | phoneNumberId | string | Identifier of the hunting group phone number | * | createdBy | string | Group creator identifier | * | policy | HuntingGroupPolicy | Group policy of the hunting group. | * | timeout | 5-30 | Group timeout in seconds - specific to serial or circular group policy | * | type | HuntingGroupType | Group type. DEPRECATED manager_assistant - see subType 'manager_assistant' | * | subType | HuntingGroupSubType | Hunting group sub type. | * | isRecordingActivated | Boolean | Indicates if the recording is activated on the hunting group | * | recordingProfile | HuntingGroupProfiles | Recording profile of the hunting group. | * | isEmergencyGroup | Boolean | Indicates if this hunting group is the emergency group for the associated Cloud PBX | * | isEmptyAllowed | Boolean | Indicates if the last active member can leave the hunting group or not | * | isDDIUpdateByManagerAllowed | Boolean | Indicates if changing the DDI of this hunting group by a manager is allowed or not | * | companyId | string | Identifier of the company owning the hunting group | * | subscriberId | string | Associated subscriber Id of the hunting group | * | systemId | string | Cloud PBX System unique identifier | * | members | Array | List of group members | * | members.memberId | string | Member (user) unique identifier | * | members.displayName | string | Member display name | * | members.roles | HuntingGroupMemberRole | Member role inside the group. Possible values: manager, agent, leader, assistant | * | members.status | HuntingGroupMemberStatus | Member status inside the group. | * | members.connected | HuntingGroupMemberConnection | Hunting group member connected status inside the group. If status active and connected or deskphone, member could answer a group call | * | analyticSettings | Object | Group analytic settings | * | analyticSettings.isManagersAllowedToSeeMembersAnalytics | Boolean | Are group managers allowed to see members analytics | * * example of result : * ```json * { * "id": "5cd545b3a07de465fbc3fcda", * "name": "Group_1", * "type": "hunting_group", * "subType": "default", * "createdBy": "5cd5443fd9736d8431b5c185", * "policy": "serial", * "shortNumber": "81002", * "externalNumberId": "5cd5443fd9736d8431b5c987", * "externalNumber": "+33298564112", * "phoneNumberId": "5cd5443fd9736d8431b5c988", * "timeout": 10, * "isEmergencyGroup": false, * "isEmptyAllowed": true, * "isDDIUpdateByManagerAllowed": true, * "companyId": "5dcd8dcec7e1620643a2045e", * "subscriberId": 147, * "systemId": "5de6a632c21aa17bab337347", * "members": [ * {"memberId": "5cd545b3a07de465fb123456", "displayName": "Alice Donner", "roles": ["agent"], "status": "active", "connected": "connected"}, * {"memberId": "5cd545b3a07de465fb123457", "displayName": "Bob the DIY man", "roles": ["agent"], "status": "active", "connected": "disconnected"}, * {"memberId": "5cd545b3a07de465fb123458", "displayName": "Carole Bouquet", "roles": ["manager", "agent"], "status": "active", "connected": "deskphone"} * ], * "isRecordingActivated": false, * "recordingProfile": "none", * "analyticSettings": { * "isManagersAllowedToSeeMembersAnalytics": true * } * } * ``` * *
    */ createCloudPBXGroup(companyId: string, huntingGroup: HuntingGroup): Promise; /** * @public * @method deleteCloudPBXGroup * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId company id unique identifier. Default value is the connected user's company. * @param {string} groupId Unique identifier of the Cloud PBX group to delete. * @description * This API allows to delete a cloud PBX Group. * * @return {Promise} - result * * *
    example of result : * ```json * { * "status": "Cloud PBX group 56c5c19f94141765119f896c successfully deleted", * "data":[] * } * ``` *
    * */ deleteCloudPBXGroup(companyId: string, groupId: string): Promise; /** * @public * @method getCloudPBXGroup * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId company id unique identifier. Default value is the connected user's company. * @param {string} groupId Unique identifier of the Cloud PBX group to retrieve. * @description * This API allows to get data of a Cloud PBX group * * @return {Promise} - result * * * | Field | Type | Description | * |--------------------------------------------|--------------------------------------------------|---------------------------------------------------------------------------| * | id | string | Group unique identifier | * | name | string | Group name - displayed on the caller phone set for hunting group type | * | shortNumber | string | Short phone number of the hunting group | * | externalNumber | string | Public phone number on which the hunting group can be joined | * | externalNumberId | string | Identifier of the public phone number of the hunting group | * | roomId | string | Identifier of the hunting group associated room | * | phoneNumberId | string | Identifier of the hunting group phone number | * | createdBy | string | Group creator identifier | * | policy | HuntingGroupPolicy | Group policy of the hunting group. | * | timeout | 5-30 | Group timeout in seconds - specific to serial or circular group policy | * | type | HuntingGroupType | Group type. DEPRECATED manager_assistant - see subType 'manager_assistant' | * | subType | HuntingGroupSubType | Hunting group sub type. | * | isRecordingActivated | Boolean | Indicates if the recording is activated on the hunting group | * | recordingProfile | HuntingGroupProfiles | Recording profile of the hunting group. | * | isEmergencyGroup | Boolean | Indicates if this hunting group is the emergency group for the associated Cloud PBX | * | isEmptyAllowed | Boolean | Indicates if the last active member can leave the hunting group or not | * | isDDIUpdateByManagerAllowed | Boolean | Indicates if changing the DDI of this hunting group by a manager is allowed or not | * | companyId | string | Identifier of the company owning the hunting group | * | subscriberId | string | Associated subscriber Id of the hunting group | * | systemId | string | Cloud PBX System unique identifier | * | members | Array | List of group members | * | members.memberId | string | Member (user) unique identifier | * | members.displayName | string | Member display name | * | members.roles | HuntingGroupMemberRole | Member role inside the group. Possible values: manager, agent, leader, assistant | * | members.status | HuntingGroupMemberStatus | Member status inside the group. | * | members.connected | HuntingGroupMemberConnection | Hunting group member connected status inside the group. If status active and connected or deskphone, member could answer a group call | * | analyticSettings | Object | Group analytic settings | * | analyticSettings.isManagersAllowedToSeeMembersAnalytics | Boolean | Are group managers allowed to see members analytics | * *
    example of result : * ```json * { * "id": "5cd545b3a07de465fbc3fcda", * "name": "Group_1", * "type": "hunting_group", * "subType": "default", * "createdBy": "5cd5443fd9736d8431b5c185", * "policy": "serial", * "shortNumber": "81002", * "externalNumberId": "5cd5443fd9736d8431b5c987", * "externalNumber": "+33298564112", * "phoneNumberId": "5cd5443fd9736d8431b5c988", * "timeout": 10, * "isEmergencyGroup": false, * "isEmptyAllowed": true, * "isDDIUpdateByManagerAllowed": true, * "companyId": "5dcd8dcec7e1620643a2045e", * "subscriberId": 147, * "systemId": "5de6a632c21aa17bab337347", * "members": [ * {"memberId": "5cd545b3a07de465fb123456", "displayName": "Alice Donner", "roles": ["agent"], "status": "active", "connected": "connected"}, * {"memberId": "5cd545b3a07de465fb123457", "displayName": "Bob the DIY man", "roles": ["agent"], "status": "active", "connected": "disconnected"}, * {"memberId": "5cd545b3a07de465fb123458", "displayName": "Carole Bouquet", "roles": ["manager", "agent"], "status": "active", "connected": "deskphone"} * ], * "isRecordingActivated": false, * "recordingProfile": "none", * "analyticSettings": { * "isManagersAllowedToSeeMembersAnalytics": true * } * } * ``` *
    */ getCloudPBXGroup(companyId: string, groupId: string): Promise; /** * @public * @method getAllCloudPBXGroups * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId Company unique identifier (like 569ce8c8f9336c471b98eda1). * @param {string} sortField=name - Sort items list based on the given field. * @param {string} name - Filter groups whose name contains the given filter. * @param {string} shortNumber - Filter groups whose short phone number contains the given filter. * @param {string} externalNumber - Filter groups whose external number contains the given filter. * @param {string} memberId - Filter groups containing the given member. * @param {string} type - Filter groups according to its type. * Can be one of the following values: call_queue, hunting_group, manager_assistant, * or a comma-separated list of these values. * @param {number} limit Allow to specify the number of items to retrieve. Default value : 100. * @param {number} offset Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : 0 . * @param {number} sortOrder Specify order when sorting items list. Default value : 1. Possibles values : -1, 1 . * @description * This API allows to get all the groups of a Cloud PBX for a given company. * * @return {Promise} - result * * * | Field | Type | Description | * |--------------------------------------------|--------------------------------------------------|---------------------------------------------------------------------------| * | data | Object[] | List of groups | * | data.id | string | Hunting group unique identifier | * | data.name | string | Hunting group name - displayed on the caller phone set | * | data.type | HuntingGroupType | Group type. DEPRECATED manager_assistant - see subType 'manager_assistant' | * | data.subType | HuntingGroupSubType | Hunting group sub type | * | data.policy | HuntingGroupPolicy | Hunting group policy | * | data.shortNumber | string | Hunting group short phone number | * | data.externalNumber | string | Hunting group public phone number | * | data.nbMembers | string | Number of members in the hunting group | * | data.isRecordingActivated | Boolean | Indicates if the recording activated in the hunting group | * | data.recordingProfile | HuntingGroupProfiles | Recording profile of the hunting group | * | data.isEmergencyGroup | Boolean | Indicates if this hunting group is the emergency group for the associated Cloud PBX | * | data.isEmptyAllowed | Boolean | Indicates if the last active member can leave the hunting group or not | * | data.isDDIUpdateByManagerAllowed | Boolean | Indicates if changing the DDI of this hunting group by a manager is allowed or not | * | data.phoneNumberId | string | Hunting group phone number unique identifier | * | data.analyticSettings | Object | Hunting group analytic settings | * | data.analyticSettings.isManagersAllowedToSeeMembersAnalytics | Boolean | Are group managers allowed to see members analytics | * *
    example of result : * ```json * { * "data": [ * { * "id": "5cd545b3a07de465fbc3fcda", * "name": "Group_1", * "type": "hunting_group", * "subType": "hg_attendant", * "policy": "serial", * "shortNumber": 81002, * "externalNumber": "+33298564112", * "isRecordingActivated": false, * "recordingProfile": "none", * "isEmergencyGroup": false, * "isEmptyAllowed": false, * "isDDIUpdateByManagerAllowed": true * }, * { * "type": "hunting_group", * "subType": "manager_assistant", * "isEmergencyGroup": false, * "isRecordingActivated": false, * "recordingProfile": "none", * "isEmptyAllowed": true, * "isDDIUpdateByManagerAllowed": true, * "name": "POL_GP6_HG", * "policy": "serial", * "phoneNumberId": "6311b6e9fec56c1edc7f6086", * "roomId": "6311babcfec56c1edc7f608a", * "id": "6311b808fec56c1edc7f6089", * "shortNumber": "90026", * "externalNumber": null, * "nbMembers": 3 * }, * { * "type": "manager_assistant", * "isEmergencyGroup": false, * "isRecordingActivated": false, * "recordingProfile": "none", * "isEmptyAllowed": true, * "name": "POL_MA1", * "id": "631200038bbd9b06452167c1", * "nbMembers": 2 * } * ], * "limit": 100, * "offset": 0, * "total": 3 * } * ``` *
    */ getAllCloudPBXGroups(companyId?: string, sortField?: string, name?: string, shortNumber?: string, externalNumber?: string, memberId?: string, type?: string, limit?: number, offset?: number, sortOrder?: number): Promise; /** * @public * @method getMembersOfCloudPBXGroups * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId Company unique identifier (like 569ce8c8f9336c471b98eda1). * @param {number} limit Allow to specify the number of items to retrieve. Default value : 100. * @param {number} offset Allow to specify the position of first item to retrieve (first item if not specified). Warning: if offset > total, no results are returned. Default value : 0 . * @param {string} sortField - Sort items list based on the given field. Default value : displayName. Possibles values : displayName, lastName, firstName * @param {number} sortOrder Specify order when sorting items list. Default value : 1. Possibles values : -1, 1 . * @param {string} displayName - Filter groups whose display name contains the given filter. * @param {string} internalNumber - Filter members whose internal phone number contain the given filter. * @description * This API allows to get all the group members of a Cloud PBX for a given company. * * @return {Promise} - result * * * | Field | Type | Description | * |------------------------|-------------|-------------------------------------------------| * | data | Object[] | List of group members | * | data.id | string | Member identifier | * | data.firstName | string | Member firstName | * | data.lastName | string | Member lastName | * | data.internalNumber | string | Member internal number (cloud PBX extension) | * | data.lastAvatarUpdateDate | string | Member last avatar update date | * | data.groups | Object[] | List of groups the member belong to | * | data.groups.id | string | Group identifier | * | data.groups.name | string | Group name | * *
    example of result : * ```json * { * "data": [ * { "id": "63a075137a218ec55b19a99f", "firstName": "Bob", "lastName": "Patol", "internalNumber": "90002", "lastAvatarUpdateDate": null, * "groups": [ * {"id": "63bbe773343b506650ca5258", "name": "POL_CQ1" } * ] * }, * { "id": "63a0752d7a218ec55b19a9c0", "firstName": "Carol", "lastName": "Patol", "internalNumber": "90003", "lastAvatarUpdateDate": null, * "groups": [ * { "id": "63bbe773343b506650ca5258", "name": "POL_CQ1" } * ] * }, * { "id": "63a0754a7a218ec55b19a9e1", "firstName": "Dave", "lastName": "Patol", "internalNumber": "90004", "lastAvatarUpdateDate": "2023-02-16T14:00:52.564Z", * "groups": [ * { "id": "63bd7df89c9f5b1191d84df1", "name": "POL_GP2" } * ] * }, * { "id": "63a075d17a218ec55b19aaad", "firstName": "Fiona", "lastName": "Patol", "internalNumber": "90006", "lastAvatarUpdateDate": null, * "groups": [ * { "id": "63bd7df89c9f5b1191d84df1", "name": "POL_GP2" }, * { "id": "63ebbe028f09ed5503274e63", "name": "POL_GP3" } * ] * } * ] * } * ``` *
    */ getMembersOfCloudPBXGroups(companyId?: string, limit?: number, offset?: number, sortField?: string, sortOrder?: number, displayName?: string, internalNumber?: string): Promise; /** * @public * @method updateCloudPBXGroup * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId Company unique identifier (like 569ce8c8f9336c471b98eda1). * @param {string} groupId Unique identifier of the Cloud PBX group to update. * @param {string} name - Hunting group name - displayed on the caller phone set. * @param {HuntingGroupPolicy} policy="parallel" - Hunting group policy - parallel only for hg_attendant subType, serial only for manager_assistant subType. * @param {number} timeout=10 - Timeout after which the next member of the hunting group will be selected (ringing) - applicable to group with serial or circular policy. * @param {string} externalNumberId - Identifier of the public phone number assigned to the hunting group. * @param {Boolean} isEmptyAllowed=true - Indicates if the last active member can leave the hunting group or not. * @param {Boolean} isDDIUpdateByManagerAllowed=true - Indicates if changing the DDI of this hunting group by a manager is allowed or not. * @param {Object[]} members - List of group members. In case of serial hunting group policy, the order is the ringing order, for hg_attendant hunting group only Voice Attendant users. * @param {string} members.memberId - Member (user) unique identifier. * @param {HuntingGroupMemberRole[]} members.roles=['agent'] - Member roles inside the group. * @param {(HuntingGroupMemberStatus)} members.status="active" - Member status inside the group. * @description * This API allows to modify settings of a PBX group. *
    Modification can be done on the following settings of a group: *
    *
    Hunting group name *
    Hunting group policy: parallel, serial or circular. Only 'default' hunting group can change its policy *
    Hunting group timeout (for serial or circular group, in seconds) *
    Members of the group (list of members, ordered in case of serial or circular hunting group or assistants of manager_assistant group) *
    Empty group allowed (or not) *
    Manager allowed or not to change the DDI of the group *
    *
    *
    Company admin, or superadmin can modify the whole parameters of a group, while a manager of a group can only manage the members of a group (add / remove members, change members order for a hunting group with policy set to serial). *
    *
    *
    An external phone number can also be assigned to a hunting group, so that it can be joined from public network. *
    To assign such a number, the following steps should be performed: *
    *
    Retrieve the list of available phone numbers: (list DDI numbers from RVCP Provisioning portal) *
    Provide the externalNumberId of the selected phone number in the body of this update request *
    *
    *
    *
    Please note that attributes group type and isEmergencyGroup cannot be changed. *
    * @return {Promise} - result * * * | Field | Type | Description | * |------------------------|-----------------------------------------------|-----------------------------------------------------------------------------------------------------| * | id | string | Hunting group unique identifier | * | name | string | Hunting group name - displayed on the caller phone set | * | shortNumber | string | Hunting group short phone number | * | externalNumber | string | Public phone number of the hunting group | * | externalNumberId | string | Identifier of the hunting group public phone number | * | roomId | string | Identifier of the hunting group associated room | * | phoneNumberId | string | Identifier of the hunting group phone number | * | createdBy | string | Hunting group creator identifier | * | policy | HuntingGroupPolicy | Group policy | * | timeout | Number (5-30) | Hunting group timeout in seconds - for serial or circular hunting group policy | * | isRecordingActivated | Boolean | Indicate if the recording activated on the hunting group | * | recordingProfile | HuntingGroupProfiles | Recording profile of the hunting group | * | isEmergencyGroup | Boolean | Indicates if this group is the emergency group for the associated Cloud PBX | * | isEmptyAllowed | Boolean | Indicates if the last active member can leave the group or not | * | isDDIUpdateByManagerAllowed | Boolean | Indicates if changing the DDI of this hunting group by a manager is allowed or not | * | type | HuntingGroupType | Group type -- DEPRECATED manager_assistant - see subType manager_assistant | * | subType | HuntingGroupSubType | Hunting group sub type | * | companyId | string | Identifier of the company owning the hunting group | * | subscriberId | string | Associated subscriber Id of the hunting group | * | systemId | string | Cloud PBX System unique identifier (like 569ce8c8f9336c471b98eda1) | * | members | Object[] | List of group members. | * | members.memberId | string | Member (user) unique identifier | * | members.displayName | string | Member display name | * | members.roles | string [] | Member role inside the group (default: '["agent"]') | * | members.status | HuntingGroupMemberStatus | Member status inside the group (default: active) | * | members.connected | HuntingGroupMemberConnection | Hunting group member connected status inside the group | * | analyticSettings | Object | Group analytic settings | * | analyticSettings.isManagersAllowedToSeeMembersAnalytics | Boolean | Are group managers allowed to see members analytics | * *
    example of result : * ```json * { * "id": "5cd545b3a07de465fbc3fcda", * "name": "Group_1", * "type": "hunting_group", * "subType": "default", * "createdBy": "5cd5443fd9736d8431b5c185", * "policy": "serial", * "shortNumber": "81002", * "externalNumberId": "5cd5443fd9736d8431b5c987", * "externalNumber": "+33298564112", * "phoneNumberId": "5cd5443fd9736d8431b5c988", * "timeout": 10, * "isEmergencyGroup": false, * "isEmptyAllowed": false, * "isDDIUpdateByManagerAllowed": true, * "companyId": "5dcd8dcec7e1620643a2045e", * "subscriberId": 147, * "systemId": "5de6a632c21aa17bab337347", * "members": [ * {"memberId": "5cd545b3a07de465fb123456", "displayName": "Alice Donner", "roles": ["agent"], "status": "active", "connected": "connected"}, * {"memberId": "5cd545b3a07de465fb123457", "displayName": "Bob the DIY man", "roles": ["agent"], "status": "active", "connected": "connected"}, * {"memberId": "5cd545b3a07de465fb123458", "displayName": "Carole Bouquet", "roles": ["manager", "agent"], "status": "active", "connected": "connected"} * ], * "roomId": "5de6a632c21aa10987456321a", * "isRecordingActivated": false, * "recordingProfile": "none", * "analyticSettings": { * "isManagersAllowedToSeeMembersAnalytics": true * } * } * ``` *
    */ updateCloudPBXGroup(companyId?: string, groupId?: string, name?: string, policy?: "serial" | "parallel" | "circular", timeout?: number, externalNumberId?: string, isEmptyAllowed?: boolean, isDDIUpdateByManagerAllowed?: boolean, members?: { memberId: string; roles?: ("manager" | "agent" | "leader" | "assistant")[]; status?: "active" | "idle"; }[]): Promise; /** * @public * @method updateCloudPBXHuntingGroupAnalyticsConfiguration * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId Company unique identifier (like 569ce8c8f9336c471b98eda1). * @param {string} groupId Unique identifier of the Cloud PBX group to update. * @param {Boolean} [isManagersAllowedToSeeMembersAnalytics=true] - Set if a group manager is allowed to see members analytics. * @description * This API allows to modify analytics settings of a PBX hunting group. * @return {Promise} - result * * * *
    example of result : * ```json * { * } * ``` *
    */ updateCloudPBXHuntingGroupAnalyticsConfiguration(companyId?: string, groupId?: string, isManagersAllowedToSeeMembersAnalytics?: boolean): Promise; /** * @public * @method updateCloudPBXHuntingGroupRecordingConfiguration * @since 2.28.2 * @instance * @async * @category Companies Cloudpbx Groups (Rainbow Voice) * @param {string} companyId Company unique identifier (like 569ce8c8f9336c471b98eda1). * @param {string} groupId Unique identifier of the Cloud PBX group to update. * @param {string} recordingProfile Selection of the hunting group recording profile. Possibles values : all, external_only, internal_only, none * @description * This API allows to modify recording settings of a PBX hunting group. * @return {Promise} - result * * * | Field | Type | Description | * |------------------------|-----------------------------------------------|-----------------------------------------------------------------------------------------------------| * | id | string | Hunting group unique identifier | * | name | string | Hunting group name - displayed on the caller phone set | * | shortNumber | string | Hunting group short phone number | * | externalNumber | string | Public phone number of the hunting group | * | externalNumberId | string | Identifier of the hunting group public phone number | * | roomId | string | Identifier of the hunting group associated room | * | phoneNumberId | string | Identifier of the hunting group phone number | * | createdBy | string | Hunting group creator identifier | * | policy | HuntingGroupPolicy | Group policy | * | timeout | Number (5-30) | Hunting group timeout in seconds - for serial or circular hunting group policy | * | isRecordingActivated | Boolean | Indicate if the recording activated on the hunting group | * | recordingProfile | HuntingGroupProfiles | Recording profile of the hunting group | * | isEmergencyGroup | Boolean | Indicates if this group is the emergency group for the associated Cloud PBX | * | isEmptyAllowed | Boolean | Indicates if the last active member can leave the group or not | * | isDDIUpdateByManagerAllowed | Boolean | Indicates if changing the DDI of this hunting group by a manager is allowed or not | * | type | HuntingGroupType | Group type -- DEPRECATED manager_assistant - see subType manager_assistant | * | subType | HuntingGroupSubType | Hunting group sub type | * | companyId | string | Identifier of the company owning the hunting group | * | subscriberId | string | Associated subscriber Id of the hunting group | * | systemId | string | Cloud PBX System unique identifier (like 569ce8c8f9336c471b98eda1) | * | members | Object[] | List of group members. | * | members.memberId | string | Member (user) unique identifier | * | members.displayName | string | Member display name | * | members.roles | string [] | Member role inside the group (default: '["agent"]') | * | members.status | HuntingGroupMemberStatus | Member status inside the group (default: active) | * | members.connected | HuntingGroupMemberConnection | Hunting group member connected status inside the group | * | analyticSettings | Object | Group analytic settings | * | analyticSettings.isManagersAllowedToSeeMembersAnalytics | Boolean | Are group managers allowed to see members analytics | * *
    example of result : * ```json * { * "id": "5cd545b3a07de465fbc3fcda", * "name": "Group_1", * "type": "hunting_group", * "subType": "default", * "createdBy": "5cd5443fd9736d8431b5c185", * "policy": "serial", * "shortNumber": "81002", * "externalNumberId": "5cd5443fd9736d8431b5c987", * "externalNumber": "+33298564112", * "phoneNumberId": "5cd5443fd9736d8431b5c988", * "timeout": 10, * "isEmergencyGroup": false, * "isEmptyAllowed": false, * "isDDIUpdateByManagerAllowed": true, * "companyId": "5dcd8dcec7e1620643a2045e", * "subscriberId": 147, * "systemId": "5de6a632c21aa17bab337347", * "members": [ * {"memberId": "5cd545b3a07de465fb123456", "displayName": "Alice Donner", "roles": ["agent"], "status": "active", "connected": "connected"}, * {"memberId": "5cd545b3a07de465fb123457", "displayName": "Bob the DIY man", "roles": ["agent"], "status": "active", "connected": "connected"}, * {"memberId": "5cd545b3a07de465fb123458", "displayName": "Carole Bouquet", "roles": ["manager", "agent"], "status": "active", "connected": "connected"} * ], * "roomId": "5de6a632c21aa10987456321a", * "isRecordingActivated": false, * "recordingProfile": "none", * "analyticSettings": { * "isManagersAllowedToSeeMembersAnalytics": true * } * } * ``` *
    */ updateCloudPBXHuntingGroupRecordingConfiguration(companyId?: string, groupId?: string, recordingProfile?: string): Promise; /** * @public * @nodered true * @method blockApplication * @since 2.30.0 * @instance * @description * This API allows to block an application. * *
    Users with `superadmin` role can block an application. *
    Users with `admin` role can block an application. *
    Users with `app_admin` role can block an application. *
    Users with `app_superadmin` role can block an application. * * @async * @param {string} applicationId Application unique identifier * @param {string} reason Reason why the application is blocked * @category Applications * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Application unique identifier | * | name | string | Application name | * | platform | string | Application platform | * | ownerId | string | Application owner unique identifier | * | ownerEmail | string | Application owner email | * | creationDate | string | Application creation date | * | isPublished | boolean | Is application published | * | appKeyOnly | boolean | Application uses only an application key for authentication | * | appKeyAndSecret | boolean | Application uses an application key and a secret for authentication | * | appKeyAndSecretAndJwt | boolean | Application uses an application key, a secret and a JWT for authentication | * | appKeyAndJwtSecret | boolean | Application uses an application key and a JWT secret for authentication | * | appKeyAndJwtAndSecret | boolean | Application uses an application key, a JWT and a secret for authentication | * | appKeyAndJwtAndSecretAndRedirectUri | boolean | Application uses an application key, a JWT, a secret and a redirect URI for authentication | * | appSecret | string | Application secret | * | appKey | string | Application key | * | jwtSecret | string | JWT secret | * | redirectUris | array | Array of redirect URIs | * | status | string | Application status | * | type | string | Application type | * | origin | string | Application origin | * | blocked | boolean | Is application blocked | * | blockedDate | string | Application blocked date | * | blockedReason | string | Application blocked reason | * | blockedBy | string | Application blocked by | * | blockedByEmail | string | Application blocked by email | * | lastLoginDate | string | Application last login date | * | lastLoginIp | string | Application last login IP | * | rateLimitPerSecond | number | Application rate limit per second | * | rateLimitPerDay | number | Application rate limit per day | * | rateLimitPerMonth | number | Application rate limit per month | * | requestsCount | number | Application requests count | * | requestsCountToday | number | Application requests count today | * | requestsCountThisMonth | number | Application requests count this month | * | requestsCountHistory | array | Application requests count history | * *
    example of result : * ```json * { * "id": "5c9be7d7da30af091cf57b43", * "name": "My Application", * "platform": "web", * "ownerId": "5c9be7d7da30af091cf57b42", * "ownerEmail": "john.doe@example.com", * "creationDate": "2019-03-27T15:00:00.000Z", * "isPublished": true, * "appKeyOnly": true, * "appKeyAndSecret": false, * "appKeyAndSecretAndJwt": false, * "appKeyAndJwtSecret": false, * "appKeyAndJwtAndSecret": false, * "appKeyAndJwtAndSecretAndRedirectUri": false, * "appSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "appKey": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "jwtSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "redirectUris": [ * "https://example.com/callback" * ], * "status": "active", * "type": "web", * "origin": "user", * "blocked": true, * "blockedDate": "2019-03-27T15:00:00.000Z", * "blockedReason": "Application blocked by administrator", * "blockedBy": "5c9be7d7da30af091cf57b42", * "blockedByEmail": "john.doe@example.com", * "lastLoginDate": "2019-03-27T15:00:00.000Z", * "lastLoginIp": "192.168.1.1", * "rateLimitPerSecond": 10, * "rateLimitPerDay": 1000, * "rateLimitPerMonth": 30000, * "requestsCount": 100, * "requestsCountToday": 10, * "requestsCountThisMonth": 100, * "requestsCountHistory": [ * { * "date": "2019-03-27T15:00:00.000Z", * "count": 10 * } * ] * } * ``` * */ blockApplication(applicationId: string, reason: string): Promise; /** * @public * @nodered true * @method createApplication * @since 2.30.0 * @instance * @description * This API allows to create an application. * *
    Users with `superadmin` role can create an application. *
    Users with `admin` role can create an application. *
    Users with `app_admin` role can create an application. *
    Users with `app_superadmin` role can create an application. * * @async * @param {string} name Application name * @param {string} platform Application platform * @param {string} ownerId Application owner unique identifier * @param {boolean} isPublished Is application published * @param {boolean} appKeyOnly Application uses only an application key for authentication * @param {boolean} appKeyAndSecret Application uses an application key and a secret for authentication * @param {boolean} appKeyAndSecretAndJwt Application uses an application key, a secret and a JWT for authentication * @param {boolean} appKeyAndJwtSecret Application uses an application key and a JWT secret for authentication * @param {boolean} appKeyAndJwtAndSecret Application uses an application key, a JWT and a secret for authentication * @param {boolean} appKeyAndJwtAndSecretAndRedirectUri Application uses an application key, a JWT, a secret and a redirect URI for authentication * @category Applications * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Application unique identifier | * | name | string | Application name | * | platform | string | Application platform | * | ownerId | string | Application owner unique identifier | * | ownerEmail | string | Application owner email | * | creationDate | string | Application creation date | * | isPublished | boolean | Is application published | * | appKeyOnly | boolean | Application uses only an application key for authentication | * | appKeyAndSecret | boolean | Application uses an application key and a secret for authentication | * | appKeyAndSecretAndJwt | boolean | Application uses an application key, a secret and a JWT for authentication | * | appKeyAndJwtSecret | boolean | Application uses an application key and a JWT secret for authentication | * | appKeyAndJwtAndSecret | boolean | Application uses an application key, a JWT and a secret for authentication | * | appKeyAndJwtAndSecretAndRedirectUri | boolean | Application uses an application key, a JWT, a secret and a redirect URI for authentication | * | appSecret | string | Application secret | * | appKey | string | Application key | * | jwtSecret | string | JWT secret | * | redirectUris | array | Array of redirect URIs | * | status | string | Application status | * | type | string | Application type | * | origin | string | Application origin | * | blocked | boolean | Is application blocked | * | blockedDate | string | Application blocked date | * | blockedReason | string | Application blocked reason | * | blockedBy | string | Application blocked by | * | blockedByEmail | string | Application blocked by email | * | lastLoginDate | string | Application last login date | * | lastLoginIp | string | Application last login IP | * | rateLimitPerSecond | number | Application rate limit per second | * | rateLimitPerDay | number | Application rate limit per day | * | rateLimitPerMonth | number | Application rate limit per month | * | requestsCount | number | Application requests count | * | requestsCountToday | number | Application requests count today | * | requestsCountThisMonth | number | Application requests count this month | * | requestsCountHistory | array | Application requests count history | * *
    example of result : * ```json * { * "id": "5c9be7d7da30af091cf57b43", * "name": "My Application", * "platform": "web", * "ownerId": "5c9be7d7da30af091cf57b42", * "ownerEmail": "john.doe@example.com", * "creationDate": "2019-03-27T15:00:00.000Z", * "isPublished": true, * "appKeyOnly": true, * "appKeyAndSecret": false, * "appKeyAndSecretAndJwt": false, * "appKeyAndJwtSecret": false, * "appKeyAndJwtAndSecret": false, * "appKeyAndJwtAndSecretAndRedirectUri": false, * "appSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "appKey": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "jwtSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "redirectUris": [ * "https://example.com/callback" * ], * "status": "active", * "type": "web", * "origin": "user", * "blocked": false, * "blockedDate": null, * "blockedReason": null, * "blockedBy": null, * "blockedByEmail": null, * "lastLoginDate": "2019-03-27T15:00:00.000Z", * "lastLoginIp": "192.168.1.1", * "rateLimitPerSecond": 10, * "rateLimitPerDay": 1000, * "rateLimitPerMonth": 30000, * "requestsCount": 100, * "requestsCountToday": 10, * "requestsCountThisMonth": 100, * "requestsCountHistory": [ * { * "date": "2019-03-27T15:00:00.000Z", * "count": 10 * } * ] * } * ``` */ createApplication(name: string, platform: string, ownerId: string, isPublished: boolean, appKeyOnly: boolean, appKeyAndSecret: boolean, appKeyAndSecretAndJwt: boolean, appKeyAndJwtSecret: boolean, appKeyAndJwtAndSecret: boolean, appKeyAndJwtAndSecretAndRedirectUri: boolean): Promise; /** * @public * @nodered true * @method declineApplicationDeployment * @since 2.30.0 * @instance * @description * This API allows to decline an application deployment. * *
    Users with `superadmin` role can decline an application deployment. *
    Users with `admin` role can decline an application deployment. *
    Users with `app_admin` role can decline an application deployment. *
    Users with `app_superadmin` role can decline an application deployment. * * @async * @param {string} applicationId Application unique identifier * @param {string} reason Reason why the application deployment is declined * @category Applications * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Application unique identifier | * | name | string | Application name | * | platform | string | Application platform | * | ownerId | string | Application owner unique identifier | * | ownerEmail | string | Application owner email | * | creationDate | string | Application creation date | * | isPublished | boolean | Is application published | * | appKeyOnly | boolean | Application uses only an application key for authentication | * | appKeyAndSecret | boolean | Application uses an application key and a secret for authentication | * | appKeyAndSecretAndJwt | boolean | Application uses an application key, a secret and a JWT for authentication | * | appKeyAndJwtSecret | boolean | Application uses an application key and a JWT secret for authentication | * | appKeyAndJwtAndSecret | boolean | Application uses an application key, a JWT and a secret for authentication | * | appKeyAndJwtAndSecretAndRedirectUri | boolean | Application uses an application key, a JWT, a secret and a redirect URI for authentication | * | appSecret | string | Application secret | * | appKey | string | Application key | * | jwtSecret | string | JWT secret | * | redirectUris | array | Array of redirect URIs | * | status | string | Application status | * | type | string | Application type | * | origin | string | Application origin | * | blocked | boolean | Is application blocked | * | blockedDate | string | Application blocked date | * | blockedReason | string | Application blocked reason | * | blockedBy | string | Application blocked by | * | blockedByEmail | string | Application blocked by email | * | lastLoginDate | string | Application last login date | * | lastLoginIp | string | Application last login IP | * | rateLimitPerSecond | number | Application rate limit per second | * | rateLimitPerDay | number | Application rate limit per day | * | rateLimitPerMonth | number | Application rate limit per month | * | requestsCount | number | Application requests count | * | requestsCountToday | number | Application requests count today | * | requestsCountThisMonth | number | Application requests count this month | * | requestsCountHistory | array | Application requests count history | * *
    example of result : * ```json * { * "id": "5c9be7d7da30af091cf57b43", * "name": "My Application", * "platform": "web", * "ownerId": "5c9be7d7da30af091cf57b42", * "ownerEmail": "john.doe@example.com", * "creationDate": "2019-03-27T15:00:00.000Z", * "isPublished": true, * "appKeyOnly": true, * "appKeyAndSecret": false, * "appKeyAndSecretAndJwt": false, * "appKeyAndJwtSecret": false, * "appKeyAndJwtAndSecret": false, * "appKeyAndJwtAndSecretAndRedirectUri": false, * "appSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "appKey": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "jwtSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "redirectUris": [ * "https://example.com/callback" * ], * "status": "active", * "type": "web", * "origin": "user", * "blocked": false, * "blockedDate": null, * "blockedReason": null, * "blockedBy": null, * "blockedByEmail": null, * "lastLoginDate": "2019-03-27T15:00:00.000Z", * "lastLoginIp": "192.168.1.1", * "rateLimitPerSecond": 10, * "rateLimitPerDay": 1000, * "rateLimitPerMonth": 30000, * "requestsCount": 100, * "requestsCountToday": 10, * "requestsCountThisMonth": 100, * "requestsCountHistory": [ * { * "date": "2019-03-27T15:00:00.000Z", * "count": 10 * } * ] * } * ``` * */ declineApplicationDeployment(applicationId: string, reason: string): Promise; /** * @public * @nodered true * @method deleteApplication * @since 2.30.0 * @instance * @description * This API allows to delete an application. * *
    Users with `superadmin` role can delete an application. *
    Users with `admin` role can delete an application. *
    Users with `app_admin` role can delete an application. *
    Users with `app_superadmin` role can delete an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | status | string | Deletion status | * *
    example of result : * ```json * { * "status": "Application successfully deleted" * } * ``` * */ deleteApplication(applicationId: string): Promise; /** * @public * @nodered true * @method deployApplication * @since 2.30.0 * @instance * @description * This API allows to deploy an application. * *
    Users with `superadmin` role can deploy an application. *
    Users with `admin` role can deploy an application. *
    Users with `app_admin` role can deploy an application. *
    Users with `app_superadmin` role can deploy an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | id | string | Application unique identifier | * | name | string | Application name | * | platform | string | Application platform | * | ownerId | string | Application owner unique identifier | * | ownerEmail | string | Application owner email | * | creationDate | string | Application creation date | * | isPublished | boolean | Is application published | * | appKeyOnly | boolean | Application uses only an application key for authentication | * | appKeyAndSecret | boolean | Application uses an application key and a secret for authentication | * | appKeyAndSecretAndJwt | boolean | Application uses an application key, a secret and a JWT for authentication | * | appKeyAndJwtSecret | boolean | Application uses an application key and a JWT secret for authentication | * | appKeyAndJwtAndSecret | boolean | Application uses an application key, a JWT and a secret for authentication | * | appKeyAndJwtAndSecretAndRedirectUri | boolean | Application uses an application key, a JWT, a secret and a redirect URI for authentication | * | appSecret | string | Application secret | * | appKey | string | Application key | * | jwtSecret | string | JWT secret | * | redirectUris | array | Array of redirect URIs | * | status | string | Application status | * | type | string | Application type | * | origin | string | Application origin | * | blocked | boolean | Is application blocked | * | blockedDate | string | Application blocked date | * | blockedReason | string | Application blocked reason | * | blockedBy | string | Application blocked by | * | blockedByEmail | string | Application blocked by email | * | lastLoginDate | string | Application last login date | * | lastLoginIp | string | Application last login IP | * | rateLimitPerSecond | number | Application rate limit per second | * | rateLimitPerDay | number | Application rate limit per day | * | rateLimitPerMonth | number | Application rate limit per month | * | requestsCount | number | Application requests count | * | requestsCountToday | number | Application requests count today | * | requestsCountThisMonth | number | Application requests count this month | * | requestsCountHistory | array | Application requests count history | * *
    example of result : * ```json * { * "id": "5c9be7d7da30af091cf57b43", * "name": "My Application", * "platform": "web", * "ownerId": "5c9be7d7da30af091cf57b42", * "ownerEmail": "john.doe@example.com", * "creationDate": "2019-03-27T15:00:00.000Z", * "isPublished": true, * "appKeyOnly": true, * "appKeyAndSecret": false, * "appKeyAndSecretAndJwt": false, * "appKeyAndJwtSecret": false, * "appKeyAndJwtAndSecret": false, * "appKeyAndJwtAndSecretAndRedirectUri": false, * "appSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "appKey": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "jwtSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "redirectUris": [ * "https://example.com/callback" * ], * "status": "active", * "type": "web", * "origin": "user", * "blocked": false, * "blockedDate": null, * "blockedReason": null, * "blockedBy": null, * "blockedByEmail": null, * "lastLoginDate": "2019-03-27T15:00:00.000Z", * "lastLoginIp": "192.168.1.1", * "rateLimitPerSecond": 10, * "rateLimitPerDay": 1000, * "rateLimitPerMonth": 30000, * "requestsCount": 100, * "requestsCountToday": 10, * "requestsCountThisMonth": 100, * "requestsCountHistory": [ * { * "date": "2019-03-27T15:00:00.000Z", * "count": 10 * } * ] * } * ``` * */ deployApplication(applicationId: string): Promise; /** * @public * @nodered true * @method getAllApplicationsCreatedByUser * @since 2.30.0 * @instance * @description * This API allows to get all applications created by a user. * *
    Users with `superadmin` role can get all applications created by any user. *
    Users with `admin` role can get all applications created by any user. *
    Users with `app_admin` role can get all applications created by any user. *
    Users with `app_superadmin` role can get all applications created by any user. *
    Other users can only get their own applications. * * @async * @param {string} userId User unique identifier (if not provided, the current user's ID will be used) * @category Applications * @return {Promise} - result * * * | Champ | Type | Description | * | --- | --- | --- | * | data | array | Array of applications | * | limit | number | Limit of applications returned | * | offset | number | Offset of applications returned | * | total | number | Total number of applications | * *
    example of result : * ```json * { * "data": [ * { * "id": "5c9be7d7da30af091cf57b43", * "name": "My Application", * "platform": "web", * "ownerId": "5c9be7d7da30af091cf57b42", * "ownerEmail": "john.doe@example.com", * "creationDate": "2019-03-27T15:00:00.000Z", * "isPublished": true, * "appKeyOnly": true, * "appKeyAndSecret": false, * "appKeyAndSecretAndJwt": false, * "appKeyAndJwtSecret": false, * "appKeyAndJwtAndSecret": false, * "appKeyAndJwtAndSecretAndRedirectUri": false, * "appSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "appKey": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "jwtSecret": "UzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", * "redirectUris": [ * "https://example.com/callback" * ], * "status": "active", * "type": "web", * "origin": "user", * "blocked": false, * "blockedDate": null, * "blockedReason": null, * "blockedBy": null, * "blockedByEmail": null, * "lastLoginDate": "2019-03-27T15:00:00.000Z", * "lastLoginIp": "192.168.1.1", * "rateLimitPerSecond": 10, * "rateLimitPerDay": 1000, * "rateLimitPerMonth": 30000, * "requestsCount": 100, * "requestsCountToday": 10, * "requestsCountThisMonth": 100, * "requestsCountHistory": [ * { * "date": "2019-03-27T15:00:00.000Z", * "count": 10 * } * ] * } * ], * "limit": 100, * "offset": 0, * "total": 1 * } * ``` * */ getAllApplicationsCreatedByUser(userId?: string): Promise; /** * @public * @nodered true * @method getEmbedFrameForApplication * @since 2.30.0 * @instance * @description * This API allows to get the embed frame for an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ getEmbedFrameForApplication(applicationId: string): Promise; /** * @public * @nodered true * @method getEmbeddingFrameForApplication * @since 2.30.0 * @instance * @description * This API allows to get the embedding frame for an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ getEmbeddingFrameForApplication(applicationId: string): Promise; /** * @public * @nodered true * @method renewExpiredApplication * @since 2.30.0 * @instance * @description * This API allows to renew an expired application. * *
    Users with `superadmin` role can renew an expired application. *
    Users with `admin` role can renew an expired application. *
    Users with `app_admin` role can renew an expired application. *
    Users with `app_superadmin` role can renew an expired application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ renewExpiredApplication(applicationId: string): Promise; /** * @public * @nodered true * @method requestDeploymentOfApplication * @since 2.30.0 * @instance * @description * This API allows to request deployment of an application. * *
    Users with `superadmin` role can request deployment of an application. *
    Users with `admin` role can request deployment of an application. *
    Users with `app_admin` role can request deployment of an application. *
    Users with `app_superadmin` role can request deployment of an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ requestDeploymentOfApplication(applicationId: string): Promise; /** * @public * @nodered true * @method restartApplication * @since 2.30.0 * @instance * @description * This API allows to restart an application. * *
    Users with `superadmin` role can restart an application. *
    Users with `admin` role can restart an application. *
    Users with `app_admin` role can restart an application. *
    Users with `app_superadmin` role can restart an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ restartApplication(applicationId: string): Promise; /** * @public * @nodered true * @method stopApplication * @since 2.30.0 * @instance * @description * This API allows to stop an application. * *
    Users with `superadmin` role can stop an application. *
    Users with `admin` role can stop an application. *
    Users with `app_admin` role can stop an application. *
    Users with `app_superadmin` role can stop an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ stopApplication(applicationId: string): Promise; /** * @public * @nodered true * @method unblockApplication * @since 2.30.0 * @instance * @description * This API allows to unblock an application. * *
    Users with `superadmin` role can unblock an application. *
    Users with `admin` role can unblock an application. *
    Users with `app_admin` role can unblock an application. *
    Users with `app_superadmin` role can unblock an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ unblockApplication(applicationId: string): Promise; /** * @public * @nodered true * @method updateApplication * @since 2.30.0 * @instance * @description * This API allows to update an application. * *
    Users with `superadmin` role can update an application. *
    Users with `admin` role can update an application. *
    Users with `app_admin` role can update an application. *
    Users with `app_superadmin` role can update an application. * * @async * @param {string} applicationId Application unique identifier * @param {object} applicationData Application data to update * @category Applications * @return {Promise} - result */ updateApplication(applicationId: string, applicationData: object): Promise; /** * @public * @nodered true * @method getCountersForApplication * @since 2.30.0 * @instance * @description * This API allows to get counters for an application. * *
    Users with `superadmin` role can get counters for an application. *
    Users with `admin` role can get counters for an application. *
    Users with `app_admin` role can get counters for an application. *
    Users with `app_superadmin` role can get counters for an application. * * @async * @param {string} applicationId Application unique identifier * @category Applications * @return {Promise} - result */ getCountersForApplication(applicationId: string): Promise; /** * @public * @nodered true * @method updateCounterForApplication * @since 2.30.0 * @instance * @description * This API allows to update counters for an application. * *
    Users with `superadmin` role can update counters for an application. *
    Users with `admin` role can update counters for an application. *
    Users with `app_admin` role can update counters for an application. *
    Users with `app_superadmin` role can update counters for an application. * * @async * @param {string} applicationId Application unique identifier * @param {object} counterData Counter data to update * @category Applications * @return {Promise} - result */ updateCounterForApplication(applicationId: string, counterData: object): Promise; } export { AdminService as AdminService, OFFERTYPES, CLOUDPBXCLIOPTIONPOLICY };