/// <summary>
 /// Initializes a new instance of the <see cref="GDPRRequest" /> class.
 /// </summary>
 /// <param name="Name">Name.</param>
 /// <param name="CreatedBy">The user that created this request (required).</param>
 /// <param name="ReplacementTerms">The replacement terms for the provided search terms, in the case of a GDPR_UPDATE request.</param>
 /// <param name="RequestType">The type of GDPR request (required).</param>
 /// <param name="Subject">The subject of the GDPR request (required).</param>
 public GDPRRequest(string Name = null, DomainEntityRef CreatedBy = null, List <ReplacementTerm> ReplacementTerms = null, RequestTypeEnum?RequestType = null, GDPRSubject Subject = null)
 {
     this.Name             = Name;
     this.CreatedBy        = CreatedBy;
     this.ReplacementTerms = ReplacementTerms;
     this.RequestType      = RequestType;
     this.Subject          = Subject;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="GDPRRequest" /> class.
        /// </summary>



        /// <param name="Name">Name.</param>



        /// <param name="CreatedBy">The user that created this request (required).</param>



        /// <param name="ReplacementTerms">The replacement terms for the provided search terms, in the case of a GDPR_UPDATE request.</param>



        /// <param name="RequestType">The type of GDPR request (required).</param>



        /// <param name="Subject">The subject of the GDPR request (required).</param>



        public GDPRRequest(string Name = null, UriReference CreatedBy = null, List <ReplacementTerm> ReplacementTerms = null, RequestTypeEnum?RequestType = null, GDPRSubject Subject = null)
        {
            // to ensure "CreatedBy" is required (not null)
            if (CreatedBy == null)
            {
                throw new InvalidDataException("CreatedBy is a required property for GDPRRequest and cannot be null");
            }
            else
            {
                this.CreatedBy = CreatedBy;
            }



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



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



            this.Name = Name;



            this.ReplacementTerms = ReplacementTerms;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="GDPRRequest" /> class.
 /// </summary>
 /// <param name="Name">Name.</param>
 /// <param name="ReplacementTerms">The replacement terms for the provided search terms, in the case of a GDPR_UPDATE request.</param>
 /// <param name="RequestType">The type of GDPR request (required).</param>
 /// <param name="Subject">The subject of the GDPR request (required).</param>
 public GDPRRequest(string Name = null, List <ReplacementTerm> ReplacementTerms = null, RequestTypeEnum?RequestType = null, GDPRSubject Subject = null)
 {
     this.Name             = Name;
     this.ReplacementTerms = ReplacementTerms;
     this.RequestType      = RequestType;
     this.Subject          = Subject;
 }