/// <summary>
 /// Initializes a new instance of the <see cref="EzsigndocumentRequestCompound" /> class.
 /// </summary>
 /// <param name="eEzsigndocumentSource">Indicates where to look for the document binary content. (required).</param>
 /// <param name="eEzsigndocumentFormat">Indicates the format of the document. (required).</param>
 /// <param name="sEzsigndocumentBase64">The Base64 encoded binary content of the document.  This field is Required when eEzsigndocumentSource &#x3D; Base64..</param>
 /// <param name="fkiEzsignfolderID">A reference to a valid Ezsignfolder.  That value is returned after a successful Ezsignfolder Creation. (required).</param>
 /// <param name="dtEzsigndocumentDuedate">Represent a Date Time. The timezone is the one configured in the User&#39;s profile. (required).</param>
 /// <param name="fkiLanguageID">The unique ID of the Language.  Valid values:  |Value|Description| |-|-| |1|French| |2|English| (required).</param>
 /// <param name="sEzsigndocumentName">The name of the document that will be presented to Ezsignfoldersignerassociations (required).</param>
 public EzsigndocumentRequestCompound(EEzsigndocumentSourceEnum eEzsigndocumentSource = default(EEzsigndocumentSourceEnum), EEzsigndocumentFormatEnum eEzsigndocumentFormat = default(EEzsigndocumentFormatEnum), byte[] sEzsigndocumentBase64 = default(byte[]), int fkiEzsignfolderID = default(int), string dtEzsigndocumentDuedate = default(string), int fkiLanguageID = default(int), string sEzsigndocumentName = default(string))
 {
     this.EEzsigndocumentSource = eEzsigndocumentSource;
     this.EEzsigndocumentFormat = eEzsigndocumentFormat;
     this.FkiEzsignfolderID     = fkiEzsignfolderID;
     // to ensure "dtEzsigndocumentDuedate" is required (not null)
     this.DtEzsigndocumentDuedate = dtEzsigndocumentDuedate ?? throw new ArgumentNullException("dtEzsigndocumentDuedate is a required property for EzsigndocumentRequestCompound and cannot be null");
     this.FkiLanguageID           = fkiLanguageID;
     // to ensure "sEzsigndocumentName" is required (not null)
     this.SEzsigndocumentName   = sEzsigndocumentName ?? throw new ArgumentNullException("sEzsigndocumentName is a required property for EzsigndocumentRequestCompound and cannot be null");
     this.SEzsigndocumentBase64 = sEzsigndocumentBase64;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="EzsigndocumentRequestCompound" /> class.
        /// </summary>
        /// <param name="eEzsigndocumentSource">Indicates where to look for the document binary content. (required).</param>
        /// <param name="eEzsigndocumentFormat">Indicates the format of the document. (required).</param>
        /// <param name="sEzsigndocumentBase64">The Base64 encoded binary content of the document.  This field is Required when eEzsigndocumentSource &#x3D; Base64..</param>
        /// <param name="fkiEzsignfolderID">A reference to a valid Ezsignfolder.  That value is returned after a successful Ezsignfolder Creation. (required).</param>
        /// <param name="dtEzsigndocumentDuedate">Represent a Date Time. The timezone is the one configured in the User&#39;s profile. (required).</param>
        /// <param name="fkiLanguageID">The unique ID of the Language.  Valid values:  |Value|Description| |-|-| |1|French| |2|English| (required).</param>
        /// <param name="sEzsigndocumentName">The name of the document that will be presented to Ezsignfoldersignerassociations (required).</param>
        public EzsigndocumentRequestCompound(EEzsigndocumentSourceEnum eEzsigndocumentSource = default(EEzsigndocumentSourceEnum), EEzsigndocumentFormatEnum eEzsigndocumentFormat = default(EEzsigndocumentFormatEnum), byte[] sEzsigndocumentBase64 = default(byte[]), int fkiEzsignfolderID = default(int), string dtEzsigndocumentDuedate = default(string), int fkiLanguageID = default(int), string sEzsigndocumentName = default(string))
        {
            // to ensure "eEzsigndocumentSource" is required (not null)
            if (eEzsigndocumentSource == null)
            {
                throw new InvalidDataException("eEzsigndocumentSource is a required property for EzsigndocumentRequestCompound and cannot be null");
            }
            else
            {
                this.EEzsigndocumentSource = eEzsigndocumentSource;
            }

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

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

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

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

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

            this.SEzsigndocumentBase64 = sEzsigndocumentBase64;
        }