text: /**
   * Rainbow Enduser portal
   * # Rainbow end user portal API guide  ## Preamble  ### Introduction  This guide describes list of API services that are provided by OT Rainbow End user portal. This portal is dedicated to end user features.  ### Protocol  REST interface is used for sending/receiving OT rainbow API messages. HTTP requests GET, DELETE, POST, UPDATE are used. Standard HTTP responses are used to provide requested information or error status. There is no session notion in OT Rainbow system, so requests could be issued according stateless model, without transport conservation between them. Additional data could be provided in message body. JSON is used as a main format for data encoding in message body part. Each request is started with the following pattern /{module}/{version}/ where {module} is a portal module name to address and {version} is a version of used API, par example, “v1.0”.  ### Security considerations  Each request should contain some credential information to authenticate itself. Standard HTTP authentication with basic/bearer modes is used. JSON Web Token mechanism is used to provide authentication information. JWT has a expire timeout that is controlled by OT Rainbow portal to prevent very long token usage. Also authentication with application token is used. The token must be provided in the request HTTP header, using a custom header: APIKey. At server side, token is verified, and if it doesn’t match, 403 Not Allowed response is sent. TLS is used as a transport protocol to support message exchanges between OT Rainbow portal and an application.  
   *
   * The version of the OpenAPI document: 1.84.0
   *
   * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
   * https://openapi-generator.tech
   *
   * OpenAPI Generator version: 4.1.2
   *
   * Do not edit the class manually.
   *
   */
  
  (function(root, factory) {
    if (typeof define === 'function' && define.amd) {
      // AMD. Register as an anonymous module.
      define(['ApiClient'], factory);
    } else if (typeof module === 'object' && module.exports) {
      // CommonJS-like environments that support module.exports, like Node.
      module.exports = factory(require('../ApiClient'));
    } else {
      // Browser globals (root is window)
      if (!root.RainbowEnduserPortal) {
        root.RainbowEnduserPortal = {};
      }
      root.RainbowEnduserPortal.SendUsersJoinRoomInvitation = factory(root.RainbowEnduserPortal.ApiClient);
    }
  }(this, function(ApiClient) {
    'use strict';
  
  
  
    /**
     * The SendUsersJoinRoomInvitation model module.
     * @module model/SendUsersJoinRoomInvitation
     * @version 1.84.0
     */
  
    /**
     * Constructs a new <code>SendUsersJoinRoomInvitation</code>.
     * @alias module:model/SendUsersJoinRoomInvitation
     * @class
     * @param scenario {module:model/SendUsersJoinRoomInvitation.ScenarioEnum} Which is the goal of this invitation.
     * @param confId {String} Conference unique identifier. Only taken in account by the 'pstn-conference' and the 'video-conference' scenario.
     * @param users {Array.<String>} A list of rainbow userId
     * @param emails {Array.<String>} A list of guest user. Persons don't have a Rainbow account or can't be found.
     */
    var exports = function(scenario, confId, users, emails) {
      var _this = this;
  
      _this['scenario'] = scenario;
      _this['confId'] = confId;
      _this['users'] = users;
      _this['emails'] = emails;
    };
  
    /**
     * Constructs a <code>SendUsersJoinRoomInvitation</code> from a plain JavaScript object, optionally creating a new instance.
     * Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
     * @param {Object} data The plain JavaScript object bearing properties of interest.
     * @param {module:model/SendUsersJoinRoomInvitation} obj Optional instance to populate.
     * @return {module:model/SendUsersJoinRoomInvitation} The populated <code>SendUsersJoinRoomInvitation</code> instance.
     */
    exports.constructFromObject = function(data, obj) {
      if (data) {
        obj = obj || new exports();
        if (data.hasOwnProperty('scenario')) {
          obj['scenario'] = ApiClient.convertToType(data['scenario'], 'String');
        }
        if (data.hasOwnProperty('confId')) {
          obj['confId'] = ApiClient.convertToType(data['confId'], 'String');
        }
        if (data.hasOwnProperty('users')) {
          obj['users'] = ApiClient.convertToType(data['users'], ['String']);
        }
        if (data.hasOwnProperty('emails')) {
          obj['emails'] = ApiClient.convertToType(data['emails'], ['String']);
        }
        if (data.hasOwnProperty('lang')) {
          obj['lang'] = ApiClient.convertToType(data['lang'], 'String');
        }
        if (data.hasOwnProperty('instantMessage')) {
          obj['instantMessage'] = ApiClient.convertToType(data['instantMessage'], 'String');
        }
        if (data.hasOwnProperty('noMail')) {
          obj['noMail'] = ApiClient.convertToType(data['noMail'], 'Boolean');
        }
        if (data.hasOwnProperty('update')) {
          obj['update'] = ApiClient.convertToType(data['update'], 'Boolean');
        }
      }
      return obj;
    }
  
    /**
     * Which is the goal of this invitation.
     * @member {module:model/SendUsersJoinRoomInvitation.ScenarioEnum} scenario
     */
    exports.prototype['scenario'] = undefined;
    /**
     * Conference unique identifier. Only taken in account by the 'pstn-conference' and the 'video-conference' scenario.
     * @member {String} confId
     */
    exports.prototype['confId'] = undefined;
    /**
     * A list of rainbow userId
     * @member {Array.<String>} users
     */
    exports.prototype['users'] = undefined;
    /**
     * A list of guest user. Persons don't have a Rainbow account or can't be found.
     * @member {Array.<String>} emails
     */
    exports.prototype['emails'] = undefined;
    /**
     * Language of the email notification if user language value is not available.
     * @member {String} lang
     * @default 'en'
     */
    exports.prototype['lang'] = 'en';
    /**
     * When the meeting is an instant meeting nor a scheduled meeting, free message reported to a mail and to an instant message. **Only taken in account by the 'pstn-conference' and the 'video-conference' scenario.**
     * @member {String} instantMessage
     */
    exports.prototype['instantMessage'] = undefined;
    /**
     * Bypass emails delivery. Supply instead all data available to build custom emails. **Only taken in account by the 'pstn-conference' scenario.**
     * @member {Boolean} noMail
     */
    exports.prototype['noMail'] = undefined;
    /**
     * Allow sending an email explaining this is a meeting update. **Only taken in account by the 'pstn-conference' scenario.**
     * @member {Boolean} update
     */
    exports.prototype['update'] = undefined;
  
  
    /**
     * Allowed values for the <code>scenario</code> property.
     * @enum {String}
     * @readonly
     */
    exports.ScenarioEnum = {
      /**
       * value: "chat"
       * @const
       */
      "chat": "chat",
      /**
       * value: "pstn-conference"
       * @const
       */
      "pstn-conference": "pstn-conference",
      /**
       * value: "video-conference"
       * @const
       */
      "video-conference": "video-conference"  };
  
  
    return exports;
  }));
  
  
  