/// <summary>
 /// Initializes a new instance of the <see cref="ActivesessionGetCurrentV1ResponseMPayload" /> class.
 /// </summary>
 /// <param name="sCustomerCode">The customer code specific to the client in which the API request is being made (required).</param>
 /// <param name="eActivesessionSessiontype">The type of session used for the API request call (required).</param>
 /// <param name="fkiLanguageID">The unique ID of the Language.  Valid values:  |Value|Description| |-|-| |1|French| |2|English| (required).</param>
 /// <param name="sCompanyNameX">The name of the active Company in the current language (required).</param>
 /// <param name="sDepartmentNameX">The name of the active Department in the current language (required).</param>
 /// <param name="aRegisteredModules">An Array of Registered modules.  These are the modules that are Licensed to be used by the User or the API Key. (required).</param>
 /// <param name="aPermissions">An array of permissions granted to the user or api key (required).</param>
 /// <param name="fkiUserID">The unique ID of the User (required).</param>
 /// <param name="fkiApikeyID">The unique ID of the Apikey (required).</param>
 public ActivesessionGetCurrentV1ResponseMPayload(string sCustomerCode = default(string), EActivesessionSessiontypeEnum eActivesessionSessiontype = default(EActivesessionSessiontypeEnum), int fkiLanguageID = default(int), string sCompanyNameX = default(string), string sDepartmentNameX = default(string), List <string> aRegisteredModules = default(List <string>), List <int> aPermissions = default(List <int>), int fkiUserID = default(int), int fkiApikeyID = default(int))
 {
     // to ensure "sCustomerCode" is required (not null)
     this.SCustomerCode             = sCustomerCode ?? throw new ArgumentNullException("sCustomerCode is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
     this.EActivesessionSessiontype = eActivesessionSessiontype;
     this.FkiLanguageID             = fkiLanguageID;
     // to ensure "sCompanyNameX" is required (not null)
     this.SCompanyNameX = sCompanyNameX ?? throw new ArgumentNullException("sCompanyNameX is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
     // to ensure "sDepartmentNameX" is required (not null)
     this.SDepartmentNameX = sDepartmentNameX ?? throw new ArgumentNullException("sDepartmentNameX is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
     // to ensure "aRegisteredModules" is required (not null)
     this.ARegisteredModules = aRegisteredModules ?? throw new ArgumentNullException("aRegisteredModules is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
     // to ensure "aPermissions" is required (not null)
     this.APermissions = aPermissions ?? throw new ArgumentNullException("aPermissions is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
     this.FkiUserID    = fkiUserID;
     this.FkiApikeyID  = fkiApikeyID;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ActivesessionGetCurrentV1ResponseMPayload" /> class.
        /// </summary>
        /// <param name="sCustomerCode">The customer code specific to the client in which the API request is being made (required).</param>
        /// <param name="eActivesessionSessiontype">The type of session used for the API request call (required).</param>
        /// <param name="fkiLanguageID">The unique ID of the Language.  Valid values:  |Value|Description| |-|-| |1|French| |2|English| (required).</param>
        /// <param name="sCompanyNameX">The name of the active Company in the current language (required).</param>
        /// <param name="sDepartmentNameX">The name of the active Department in the current language (required).</param>
        /// <param name="aRegisteredModules">An Array of Registered modules.  These are the modules that are Licensed to be used by the User or the API Key. (required).</param>
        /// <param name="aPermissions">An array of permissions granted to the user or api key (required).</param>
        /// <param name="fkiUserID">The unique ID of the User (required).</param>
        /// <param name="fkiApikeyID">The unique ID of the Apikey (required).</param>
        public ActivesessionGetCurrentV1ResponseMPayload(string sCustomerCode = default(string), EActivesessionSessiontypeEnum eActivesessionSessiontype = default(EActivesessionSessiontypeEnum), int fkiLanguageID = default(int), string sCompanyNameX = default(string), string sDepartmentNameX = default(string), List <string> aRegisteredModules = default(List <string>), List <int> aPermissions = default(List <int>), int fkiUserID = default(int), int fkiApikeyID = default(int))
        {
            // to ensure "sCustomerCode" is required (not null)
            if (sCustomerCode == null)
            {
                throw new InvalidDataException("sCustomerCode is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.SCustomerCode = sCustomerCode;
            }

            // to ensure "eActivesessionSessiontype" is required (not null)
            if (eActivesessionSessiontype == null)
            {
                throw new InvalidDataException("eActivesessionSessiontype is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.EActivesessionSessiontype = eActivesessionSessiontype;
            }

            // to ensure "fkiLanguageID" is required (not null)
            if (fkiLanguageID == null)
            {
                throw new InvalidDataException("fkiLanguageID is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.FkiLanguageID = fkiLanguageID;
            }

            // to ensure "sCompanyNameX" is required (not null)
            if (sCompanyNameX == null)
            {
                throw new InvalidDataException("sCompanyNameX is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.SCompanyNameX = sCompanyNameX;
            }

            // to ensure "sDepartmentNameX" is required (not null)
            if (sDepartmentNameX == null)
            {
                throw new InvalidDataException("sDepartmentNameX is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.SDepartmentNameX = sDepartmentNameX;
            }

            // to ensure "aRegisteredModules" is required (not null)
            if (aRegisteredModules == null)
            {
                throw new InvalidDataException("aRegisteredModules is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.ARegisteredModules = aRegisteredModules;
            }

            // to ensure "aPermissions" is required (not null)
            if (aPermissions == null)
            {
                throw new InvalidDataException("aPermissions is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.APermissions = aPermissions;
            }

            // to ensure "fkiUserID" is required (not null)
            if (fkiUserID == null)
            {
                throw new InvalidDataException("fkiUserID is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.FkiUserID = fkiUserID;
            }

            // to ensure "fkiApikeyID" is required (not null)
            if (fkiApikeyID == null)
            {
                throw new InvalidDataException("fkiApikeyID is a required property for ActivesessionGetCurrentV1ResponseMPayload and cannot be null");
            }
            else
            {
                this.FkiApikeyID = fkiApikeyID;
            }
        }