/// <summary>
 /// Initializes a new instance of the <see cref="MnStudentSchoolAssociationTransportationWritable" /> class.
 /// </summary>
 /// <param name="TransportationCategoryDescriptor">Student&#39;s to and from Transportation Category for the regular school term. (required).</param>
 /// <param name="TransportingLocalEducationAgencyReference">TransportingLocalEducationAgencyReference.</param>
 public MnStudentSchoolAssociationTransportationWritable(string TransportationCategoryDescriptor = default(string), EdFiLocalEducationAgencyReference TransportingLocalEducationAgencyReference = default(EdFiLocalEducationAgencyReference))
 {
     // to ensure "TransportationCategoryDescriptor" is required (not null)
     if (TransportationCategoryDescriptor == null)
     {
         throw new InvalidDataException("TransportationCategoryDescriptor is a required property for MnStudentSchoolAssociationTransportationWritable and cannot be null");
     }
     else
     {
         this.TransportationCategoryDescriptor = TransportationCategoryDescriptor;
     }
     this.TransportingLocalEducationAgencyReference = TransportingLocalEducationAgencyReference;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdFiSchoolReadable" /> class.
 /// </summary>
 /// <param name="Id">Id (required).</param>
 /// <param name="Addresses">An unordered collection of educationOrganizationAddresses. The set of elements that describes the physical location of the education entity, including the street address, city, state, ZIP code, and ZIP code + 4. (required).</param>
 /// <param name="Categories">An unordered collection of educationOrganizationCategories. The classification of the education agency within the geographic boundaries of a state according to the level of administrative and operational control granted by the state. (required).</param>
 /// <param name="GradeLevels">An unordered collection of schoolGradeLevels. The grade levels served at the school. (required).</param>
 /// <param name="SchoolId">The identifier assigned to a school. (required).</param>
 /// <param name="LocalEducationAgencyReference">LocalEducationAgencyReference.</param>
 /// <param name="IdentificationCodes">An unordered collection of educationOrganizationIdentificationCodes. A unique number or alphanumeric code assigned to an education organization by a school, school system, a state, or other agency or entity..</param>
 /// <param name="NameOfInstitution">The full, legally accepted name of the institution. (required).</param>
 /// <param name="TitleIPartASchoolDesignationDescriptor">Denotes the Title I Part A designation for the school..</param>
 /// <param name="Etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="Ext">Ext.</param>
 public EdFiSchoolReadable(string Id = default(string), List <EdFiEducationOrganizationAddressSchoolReadable> Addresses = default(List <EdFiEducationOrganizationAddressSchoolReadable>), List <EdFiEducationOrganizationCategorySchoolReadable> Categories = default(List <EdFiEducationOrganizationCategorySchoolReadable>), List <EdFiSchoolGradeLevelReadable> GradeLevels = default(List <EdFiSchoolGradeLevelReadable>), int?SchoolId = default(int?), EdFiLocalEducationAgencyReference LocalEducationAgencyReference = default(EdFiLocalEducationAgencyReference), List <EdFiEducationOrganizationIdentificationCodeSchoolReadable> IdentificationCodes = default(List <EdFiEducationOrganizationIdentificationCodeSchoolReadable>), string NameOfInstitution = default(string), string TitleIPartASchoolDesignationDescriptor = default(string), string Etag = default(string), SchoolExtensionsReadable Ext = default(SchoolExtensionsReadable))
 {
     // to ensure "Id" is required (not null)
     if (Id == null)
     {
         throw new InvalidDataException("Id is a required property for EdFiSchoolReadable and cannot be null");
     }
     else
     {
         this.Id = Id;
     }
     // to ensure "Addresses" is required (not null)
     if (Addresses == null)
     {
         throw new InvalidDataException("Addresses is a required property for EdFiSchoolReadable and cannot be null");
     }
     else
     {
         this.Addresses = Addresses;
     }
     // to ensure "Categories" is required (not null)
     if (Categories == null)
     {
         throw new InvalidDataException("Categories is a required property for EdFiSchoolReadable and cannot be null");
     }
     else
     {
         this.Categories = Categories;
     }
     // to ensure "GradeLevels" is required (not null)
     if (GradeLevels == null)
     {
         throw new InvalidDataException("GradeLevels is a required property for EdFiSchoolReadable and cannot be null");
     }
     else
     {
         this.GradeLevels = GradeLevels;
     }
     // to ensure "SchoolId" is required (not null)
     if (SchoolId == null)
     {
         throw new InvalidDataException("SchoolId is a required property for EdFiSchoolReadable and cannot be null");
     }
     else
     {
         this.SchoolId = SchoolId;
     }
     // to ensure "NameOfInstitution" is required (not null)
     if (NameOfInstitution == null)
     {
         throw new InvalidDataException("NameOfInstitution is a required property for EdFiSchoolReadable and cannot be null");
     }
     else
     {
         this.NameOfInstitution = NameOfInstitution;
     }
     this.LocalEducationAgencyReference          = LocalEducationAgencyReference;
     this.IdentificationCodes                    = IdentificationCodes;
     this.TitleIPartASchoolDesignationDescriptor = TitleIPartASchoolDesignationDescriptor;
     this.Etag = Etag;
     this.Ext  = Ext;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="MnStudentSchoolAssociationExtensionWritable" /> class.
 /// </summary>
 /// <param name="SpecialEducationEvaluationStatusDescriptor">An indicator of the students&#39; need for and participation in special education programs during this enrollment period..</param>
 /// <param name="StateAidCategoryDescriptor">State Aid Category..</param>
 /// <param name="HomeboundServiceIndicator">The Homebound Service Indicator is used to validate Membership Days for students who have no Attendance Days. It is an indication of whether students were medically confined to their home and received instruction in the home during the enrollment period..</param>
 /// <param name="SpecialPupilIndicator">An indicator representing a Student  who qualifies as a Special Pupil for Care and Treatment at some time during the school year..</param>
 /// <param name="ResidentLocalEducationAgencyReference">ResidentLocalEducationAgencyReference.</param>
 /// <param name="Membership">Membership.</param>
 /// <param name="Transportation">Transportation.</param>
 public MnStudentSchoolAssociationExtensionWritable(string SpecialEducationEvaluationStatusDescriptor = default(string), string StateAidCategoryDescriptor = default(string), bool?HomeboundServiceIndicator = default(bool?), bool?SpecialPupilIndicator = default(bool?), EdFiLocalEducationAgencyReference ResidentLocalEducationAgencyReference = default(EdFiLocalEducationAgencyReference), MnStudentSchoolAssociationMembershipWritable Membership = default(MnStudentSchoolAssociationMembershipWritable), MnStudentSchoolAssociationTransportationWritable Transportation = default(MnStudentSchoolAssociationTransportationWritable))
 {
     this.SpecialEducationEvaluationStatusDescriptor = SpecialEducationEvaluationStatusDescriptor;
     this.StateAidCategoryDescriptor            = StateAidCategoryDescriptor;
     this.HomeboundServiceIndicator             = HomeboundServiceIndicator;
     this.SpecialPupilIndicator                 = SpecialPupilIndicator;
     this.ResidentLocalEducationAgencyReference = ResidentLocalEducationAgencyReference;
     this.Membership     = Membership;
     this.Transportation = Transportation;
 }