/// <summary>
 /// Initializes a new instance of the <see cref="EdFiStudentEducationOrganizationAssociationWritable" /> class.
 /// </summary>
 /// <param name="Id">Id (required).</param>
 /// <param name="EducationOrganizationReference">EducationOrganizationReference (required).</param>
 /// <param name="StudentReference">StudentReference (required).</param>
 /// <param name="HispanicLatinoEthnicity">An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central, and South America, and other Spanish cultures, regardless of race. The term, \&quot;Spanish origin,\&quot; can be used in addition to \&quot;Hispanic or Latino.\&quot;.</param>
 /// <param name="Languages">An unordered collection of studentEducationOrganizationAssociationLanguages. The language(s) the individual uses to communicate. It is strongly recommended that entries use only ISO 639-3 language codes..</param>
 /// <param name="Races">An unordered collection of studentEducationOrganizationAssociationRaces. The general racial category which most clearly reflects the individual&#39;s recognition of his or her community or with which the individual most identifies. The data model allows for multiple entries so that each individual can specify all appropriate races..</param>
 /// <param name="SexDescriptor">A person&#39;s gender. (required).</param>
 /// <param name="StudentCharacteristics">An unordered collection of studentEducationOrganizationAssociationStudentCharacteristics. Reflects important characteristics of the student&#39;s home situation:          Displaced Homemaker, Immigrant, Migratory, Military Parent, Pregnant Teen, Single Parent, and Unaccompanied Youth..</param>
 /// <param name="StudentIdentificationCodes">An unordered collection of studentEducationOrganizationAssociationStudentIdentificationCodes. A coding scheme that is used for identification and record-keeping purposes by schools, social services, or other agencies to refer to a student..</param>
 /// <param name="StudentIndicators">An unordered collection of studentEducationOrganizationAssociationStudentIndicators. Indicator(s) or metric(s) computed for the student (e.g., at risk) to influence more effective education or direct specific interventions..</param>
 /// <param name="Etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="Ext">Ext.</param>
 public EdFiStudentEducationOrganizationAssociationWritable(string Id = default(string), EdFiEducationOrganizationReference EducationOrganizationReference = default(EdFiEducationOrganizationReference), EdFiStudentReference StudentReference = default(EdFiStudentReference), bool?HispanicLatinoEthnicity = default(bool?), List <EdFiStudentEducationOrganizationAssociationLanguageWritable> Languages = default(List <EdFiStudentEducationOrganizationAssociationLanguageWritable>), List <EdFiStudentEducationOrganizationAssociationRaceWritable> Races = default(List <EdFiStudentEducationOrganizationAssociationRaceWritable>), string SexDescriptor = default(string), List <EdFiStudentEducationOrganizationAssociationStudentCharacteristicWritable> StudentCharacteristics = default(List <EdFiStudentEducationOrganizationAssociationStudentCharacteristicWritable>), List <EdFiStudentEducationOrganizationAssociationStudentIdentificationCodeWritable> StudentIdentificationCodes = default(List <EdFiStudentEducationOrganizationAssociationStudentIdentificationCodeWritable>), List <EdFiStudentEducationOrganizationAssociationStudentIndicatorWritable> StudentIndicators = default(List <EdFiStudentEducationOrganizationAssociationStudentIndicatorWritable>), string Etag = default(string), StudentEducationOrganizationAssociationExtensionsWritable Ext = default(StudentEducationOrganizationAssociationExtensionsWritable))
 {
     // to ensure "Id" is required (not null)
     if (Id == null)
     {
         throw new InvalidDataException("Id is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.Id = Id;
     }
     // to ensure "EducationOrganizationReference" is required (not null)
     if (EducationOrganizationReference == null)
     {
         throw new InvalidDataException("EducationOrganizationReference is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.EducationOrganizationReference = EducationOrganizationReference;
     }
     // to ensure "StudentReference" is required (not null)
     if (StudentReference == null)
     {
         throw new InvalidDataException("StudentReference is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.StudentReference = StudentReference;
     }
     // to ensure "SexDescriptor" is required (not null)
     if (SexDescriptor == null)
     {
         throw new InvalidDataException("SexDescriptor is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.SexDescriptor = SexDescriptor;
     }
     this.HispanicLatinoEthnicity = HispanicLatinoEthnicity;
     this.Languages = Languages;
     this.Races     = Races;
     this.StudentCharacteristics     = StudentCharacteristics;
     this.StudentIdentificationCodes = StudentIdentificationCodes;
     this.StudentIndicators          = StudentIndicators;
     this.Etag = Etag;
     this.Ext  = Ext;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdFiStudentEducationOrganizationAssociationWritable" /> class.
 /// </summary>
 /// <param name="id">id.</param>
 /// <param name="educationOrganizationReference">educationOrganizationReference (required).</param>
 /// <param name="studentReference">studentReference (required).</param>
 /// <param name="ancestryEthnicOrigins">An unordered collection of studentEducationOrganizationAssociationAncestryEthnicOrigins. The original peoples or cultures with which the individual identifies..</param>
 /// <param name="hispanicLatinoEthnicity">An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central, and South America, and other Spanish cultures, regardless of race, as last reported to the education organization. The term, \&quot;Spanish origin,\&quot; can be used in addition to \&quot;Hispanic or Latino.\&quot;.</param>
 /// <param name="languages">An unordered collection of studentEducationOrganizationAssociationLanguages. The language(s) the individual uses to communicate. It is strongly recommended that entries use only ISO 639-3 language codes..</param>
 /// <param name="races">An unordered collection of studentEducationOrganizationAssociationRaces. The general racial category which most clearly reflects the individual&#39;s recognition of his or her community or with which the individual most identifies as last reported to the education organization. The data model allows for multiple entries so that each individual can specify all appropriate races..</param>
 /// <param name="sexDescriptor">The student&#39;s gender as last reported to the education organization. (required).</param>
 /// <param name="studentCharacteristics">An unordered collection of studentEducationOrganizationAssociationStudentCharacteristics. Reflects important characteristics of a student. If a student has a characteristic present, that characteristic is considered true or active for that student. If a characteristic is not present, no assumption is made as to the applicability of the characteristic, but local policy may dictate otherwise..</param>
 /// <param name="studentIdentificationCodes">An unordered collection of studentEducationOrganizationAssociationStudentIdentificationCodes. A coding scheme that is used for identification and record-keeping purposes by schools, social services, or other agencies to refer to a student..</param>
 /// <param name="studentIndicators">An unordered collection of studentEducationOrganizationAssociationStudentIndicators. An indicator or metric computed for the student (e.g., at risk)..</param>
 /// <param name="etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="ext">ext.</param>
 public EdFiStudentEducationOrganizationAssociationWritable(string id = default(string), EdFiEducationOrganizationReference educationOrganizationReference = default(EdFiEducationOrganizationReference), EdFiStudentReference studentReference = default(EdFiStudentReference), List <EdFiStudentEducationOrganizationAssociationAncestryEthnicOriginWritable> ancestryEthnicOrigins = default(List <EdFiStudentEducationOrganizationAssociationAncestryEthnicOriginWritable>), bool?hispanicLatinoEthnicity = default(bool?), List <EdFiStudentEducationOrganizationAssociationLanguageWritable> languages = default(List <EdFiStudentEducationOrganizationAssociationLanguageWritable>), List <EdFiStudentEducationOrganizationAssociationRaceWritable> races = default(List <EdFiStudentEducationOrganizationAssociationRaceWritable>), string sexDescriptor = default(string), List <EdFiStudentEducationOrganizationAssociationStudentCharacteristicWritable> studentCharacteristics = default(List <EdFiStudentEducationOrganizationAssociationStudentCharacteristicWritable>), List <EdFiStudentEducationOrganizationAssociationStudentIdentificationCodeWritable> studentIdentificationCodes = default(List <EdFiStudentEducationOrganizationAssociationStudentIdentificationCodeWritable>), List <EdFiStudentEducationOrganizationAssociationStudentIndicatorWritable> studentIndicators = default(List <EdFiStudentEducationOrganizationAssociationStudentIndicatorWritable>), string etag = default(string), StudentEducationOrganizationAssociationExtensionsWritable ext = default(StudentEducationOrganizationAssociationExtensionsWritable))
 {
     // to ensure "educationOrganizationReference" is required (not null)
     if (educationOrganizationReference == null)
     {
         throw new InvalidDataException("educationOrganizationReference is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.EducationOrganizationReference = educationOrganizationReference;
     }
     // to ensure "studentReference" is required (not null)
     if (studentReference == null)
     {
         throw new InvalidDataException("studentReference is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.StudentReference = studentReference;
     }
     // to ensure "sexDescriptor" is required (not null)
     if (sexDescriptor == null)
     {
         throw new InvalidDataException("sexDescriptor is a required property for EdFiStudentEducationOrganizationAssociationWritable and cannot be null");
     }
     else
     {
         this.SexDescriptor = sexDescriptor;
     }
     this.Id = id;
     this.AncestryEthnicOrigins   = ancestryEthnicOrigins;
     this.HispanicLatinoEthnicity = hispanicLatinoEthnicity;
     this.Languages = languages;
     this.Races     = races;
     this.StudentCharacteristics     = studentCharacteristics;
     this.StudentIdentificationCodes = studentIdentificationCodes;
     this.StudentIndicators          = studentIndicators;
     this.Etag = etag;
     this.Ext  = ext;
 }