/// <summary>
        /// Initializes a new instance of the <see cref="EzsignsignerRequestCompound" /> class.
        /// </summary>
        /// <param name="objContact">objContact (required).</param>
        /// <param name="fkiTaxassignmentID">The unique ID of the Taxassignment.  Valid values:  |Value|Description| |-|-| |1|No tax| |2|GST| |3|HST (ON)| |4|HST (NB)| |5|HST (NS)| |6|HST (NL)| |7|HST (PE)| |8|GST + QST (QC)| |9|GST + QST (QC) Non-Recoverable| |10|GST + PST (BC)| |11|GST + PST (SK)| |12|GST + RST (MB)| |13|GST + PST (BC) Non-Recoverable| |14|GST + PST (SK) Non-Recoverable| |15|GST + RST (MB) Non-Recoverable| (required).</param>
        /// <param name="fkiSecretquestionID">The unique ID of the Secretquestion.  Valid values:  |Value|Description| |-|-| |1|The name of the hospital in which you were born| |2|The name of your grade school| |3|The last name of your favorite teacher| |4|Your favorite sports team| |5|Your favorite TV show| |6|Your favorite movie| |7|The name of the street on which you grew up| |8|The name of your first employer| |9|Your first car| |10|Your favorite food| |11|The name of your first pet| |12|Favorite musician/band| |13|What instrument you play| |14|Your father&#39;s middle name| |15|Your mother&#39;s maiden name| |16|Name of your eldest child| |17|Your spouse&#39;s middle name| |18|Favorite restaurant| |19|Childhood nickname| |20|Favorite vacation destination| |21|Your boat&#39;s name| |22|Date of Birth (YYYY-MM-DD)|.</param>
        /// <param name="eEzsignsignerLogintype">The method the Ezsignsigner will authenticate to the signing platform.  1. **Password** means the Ezsignsigner will receive a secure link by email. 2. **PasswordPhone** means the Ezsignsigner will receive a secure link by email and will need to authenticate using SMS or Phone call. **Additional fee applies**. 3. **PasswordQuestion** means the Ezsignsigner will receive a secure link by email and will need to authenticate using a predefined question and answer. 4. **InPersonPhone** means the Ezsignsigner will only be able to sign \&quot;In-Person\&quot; and will need to authenticate using SMS or Phone call. No email will be sent for invitation to sign. **Additional fee applies**. 5. **InPerson** means the Ezsignsigner will only be able to sign \&quot;In-Person\&quot; and there won&#39;t be any authentication. No email will be sent for invitation to sign. Make sure you evaluate the risk of signature denial and at minimum, we recommend you use a handwritten signature type. (required).</param>
        /// <param name="sEzsignsignerSecretanswer">The predefined answer to the secret question the Ezsignsigner will need to provide to successfully authenticate..</param>
        public EzsignsignerRequestCompound(EzsignsignerRequestCompoundContact objContact = default(EzsignsignerRequestCompoundContact), int fkiTaxassignmentID = default(int), int fkiSecretquestionID = default(int), EEzsignsignerLogintypeEnum eEzsignsignerLogintype = default(EEzsignsignerLogintypeEnum), string sEzsignsignerSecretanswer = default(string))
        {
            // to ensure "objContact" is required (not null)
            if (objContact == null)
            {
                throw new InvalidDataException("objContact is a required property for EzsignsignerRequestCompound and cannot be null");
            }
            else
            {
                this.ObjContact = objContact;
            }

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

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

            this.FkiSecretquestionID       = fkiSecretquestionID;
            this.SEzsignsignerSecretanswer = sEzsignsignerSecretanswer;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="EzsignsignerRequestCompound" /> class.
 /// </summary>
 /// <param name="objContact">objContact (required).</param>
 /// <param name="fkiTaxassignmentID">The unique ID of the Taxassignment.  Valid values:  |Value|Description| |-|-| |1|No tax| |2|GST| |3|HST (ON)| |4|HST (NB)| |5|HST (NS)| |6|HST (NL)| |7|HST (PE)| |8|GST + QST (QC)| |9|GST + QST (QC) Non-Recoverable| |10|GST + PST (BC)| |11|GST + PST (SK)| |12|GST + RST (MB)| |13|GST + PST (BC) Non-Recoverable| |14|GST + PST (SK) Non-Recoverable| |15|GST + RST (MB) Non-Recoverable| (required).</param>
 /// <param name="fkiSecretquestionID">The unique ID of the Secretquestion.  Valid values:  |Value|Description| |-|-| |1|The name of the hospital in which you were born| |2|The name of your grade school| |3|The last name of your favorite teacher| |4|Your favorite sports team| |5|Your favorite TV show| |6|Your favorite movie| |7|The name of the street on which you grew up| |8|The name of your first employer| |9|Your first car| |10|Your favorite food| |11|The name of your first pet| |12|Favorite musician/band| |13|What instrument you play| |14|Your father&#39;s middle name| |15|Your mother&#39;s maiden name| |16|Name of your eldest child| |17|Your spouse&#39;s middle name| |18|Favorite restaurant| |19|Childhood nickname| |20|Favorite vacation destination| |21|Your boat&#39;s name| |22|Date of Birth (YYYY-MM-DD)|.</param>
 /// <param name="eEzsignsignerLogintype">The method the Ezsignsigner will authenticate to the signing platform.  1. **Password** means the Ezsignsigner will receive a secure link by email. 2. **PasswordPhone** means the Ezsignsigner will receive a secure link by email and will need to authenticate using SMS or Phone call. **Additional fee applies**. 3. **PasswordQuestion** means the Ezsignsigner will receive a secure link by email and will need to authenticate using a predefined question and answer. 4. **InPersonPhone** means the Ezsignsigner will only be able to sign \&quot;In-Person\&quot; and will need to authenticate using SMS or Phone call. No email will be sent for invitation to sign. **Additional fee applies**. 5. **InPerson** means the Ezsignsigner will only be able to sign \&quot;In-Person\&quot; and there won&#39;t be any authentication. No email will be sent for invitation to sign. Make sure you evaluate the risk of signature denial and at minimum, we recommend you use a handwritten signature type. (required).</param>
 /// <param name="sEzsignsignerSecretanswer">The predefined answer to the secret question the Ezsignsigner will need to provide to successfully authenticate..</param>
 public EzsignsignerRequestCompound(EzsignsignerRequestCompoundContact objContact = default(EzsignsignerRequestCompoundContact), int fkiTaxassignmentID = default(int), int fkiSecretquestionID = default(int), EEzsignsignerLogintypeEnum eEzsignsignerLogintype = default(EEzsignsignerLogintypeEnum), string sEzsignsignerSecretanswer = default(string))
 {
     // to ensure "objContact" is required (not null)
     this.ObjContact                = objContact ?? throw new ArgumentNullException("objContact is a required property for EzsignsignerRequestCompound and cannot be null");
     this.FkiTaxassignmentID        = fkiTaxassignmentID;
     this.EEzsignsignerLogintype    = eEzsignsignerLogintype;
     this.FkiSecretquestionID       = fkiSecretquestionID;
     this.SEzsignsignerSecretanswer = sEzsignsignerSecretanswer;
 }