/// <summary>
 /// Initializes a new instance of the <see cref="EdFiParentWritable" /> class.
 /// </summary>
 /// <param name="id">id.</param>
 /// <param name="parentUniqueId">A unique alphanumeric code assigned to a parent. (required).</param>
 /// <param name="firstName">A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change. (required).</param>
 /// <param name="generationCodeSuffix">An appendage, if any, used to denote an individual&#39;s generation in his family (e.g., Jr., Sr., III)..</param>
 /// <param name="highestCompletedLevelOfEducationDescriptor">The extent of formal instruction an individual has received (e.g., the highest grade in school completed or its equivalent or the highest degree received)..</param>
 /// <param name="lastSurname">The name borne in common by members of a family. (required).</param>
 /// <param name="middleName">A secondary name given to an individual at birth, baptism, or during another naming ceremony..</param>
 /// <param name="sexDescriptor">A person&#39;s gender..</param>
 /// <param name="etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="ext">ext.</param>
 public EdFiParentWritable(string id = default(string), string parentUniqueId = default(string), string firstName = default(string), string generationCodeSuffix = default(string), string highestCompletedLevelOfEducationDescriptor = default(string), string lastSurname = default(string), string middleName = default(string), string sexDescriptor = default(string), string etag = default(string), ParentExtensionsWritable ext = default(ParentExtensionsWritable))
 {
     // to ensure "parentUniqueId" is required (not null)
     if (parentUniqueId == null)
     {
         throw new InvalidDataException("parentUniqueId is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.ParentUniqueId = parentUniqueId;
     }
     // to ensure "firstName" is required (not null)
     if (firstName == null)
     {
         throw new InvalidDataException("firstName is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.FirstName = firstName;
     }
     // to ensure "lastSurname" is required (not null)
     if (lastSurname == null)
     {
         throw new InvalidDataException("lastSurname is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.LastSurname = lastSurname;
     }
     this.Id = id;
     this.GenerationCodeSuffix = generationCodeSuffix;
     this.HighestCompletedLevelOfEducationDescriptor = highestCompletedLevelOfEducationDescriptor;
     this.MiddleName    = middleName;
     this.SexDescriptor = sexDescriptor;
     this.Etag          = etag;
     this.Ext           = ext;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdFiParentWritable" /> class.
 /// </summary>
 /// <param name="Id">Id (required).</param>
 /// <param name="ParentUniqueId">A unique alphanumeric code assigned to a parent. (required).</param>
 /// <param name="FirstName">A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change. (required).</param>
 /// <param name="GenerationCodeSuffix">An appendage, if any, used to denote an individual&#39;s generation in his family (e.g., Jr., Sr., III)..</param>
 /// <param name="LastSurname">The name borne in common by members of a family. (required).</param>
 /// <param name="MiddleName">A secondary name given to an individual at birth, baptism, or during another naming ceremony..</param>
 /// <param name="SexDescriptor">A person&#39;s gender..</param>
 /// <param name="Etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="Ext">Ext.</param>
 public EdFiParentWritable(string Id = default(string), string ParentUniqueId = default(string), string FirstName = default(string), string GenerationCodeSuffix = default(string), string LastSurname = default(string), string MiddleName = default(string), string SexDescriptor = default(string), string Etag = default(string), ParentExtensionsWritable Ext = default(ParentExtensionsWritable))
 {
     // to ensure "Id" is required (not null)
     if (Id == null)
     {
         throw new InvalidDataException("Id is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.Id = Id;
     }
     // to ensure "ParentUniqueId" is required (not null)
     if (ParentUniqueId == null)
     {
         throw new InvalidDataException("ParentUniqueId is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.ParentUniqueId = ParentUniqueId;
     }
     // to ensure "FirstName" is required (not null)
     if (FirstName == null)
     {
         throw new InvalidDataException("FirstName is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.FirstName = FirstName;
     }
     // to ensure "LastSurname" is required (not null)
     if (LastSurname == null)
     {
         throw new InvalidDataException("LastSurname is a required property for EdFiParentWritable and cannot be null");
     }
     else
     {
         this.LastSurname = LastSurname;
     }
     this.GenerationCodeSuffix = GenerationCodeSuffix;
     this.MiddleName           = MiddleName;
     this.SexDescriptor        = SexDescriptor;
     this.Etag = Etag;
     this.Ext  = Ext;
 }