/// <summary>
 /// Initializes a new instance of the <see cref="EdFiLocalEducationAgencyReadable" /> class.
 /// </summary>
 /// <param name="id">id.</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="localEducationAgencyId">The identifier assigned to a local education agency. (required).</param>
 /// <param name="stateEducationAgencyReference">stateEducationAgencyReference.</param>
 /// <param name="addresses">An unordered collection of educationOrganizationAddresses. The set of elements that describes an address for the education entity, including the street address, city, state, ZIP code, and ZIP code + 4..</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="etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="ext">ext.</param>
 public EdFiLocalEducationAgencyReadable(string id = default(string), List <EdFiEducationOrganizationCategoryLocalEducationAgencyReadable> categories = default(List <EdFiEducationOrganizationCategoryLocalEducationAgencyReadable>), int?localEducationAgencyId = default(int?), EdFiStateEducationAgencyReference stateEducationAgencyReference = default(EdFiStateEducationAgencyReference), List <EdFiEducationOrganizationAddressLocalEducationAgencyReadable> addresses = default(List <EdFiEducationOrganizationAddressLocalEducationAgencyReadable>), List <EdFiEducationOrganizationIdentificationCodeLocalEducationAgencyReadable> identificationCodes = default(List <EdFiEducationOrganizationIdentificationCodeLocalEducationAgencyReadable>), string nameOfInstitution = default(string), string etag = default(string), LocalEducationAgencyExtensionsReadable ext = default(LocalEducationAgencyExtensionsReadable))
 {
     // to ensure "categories" is required (not null)
     if (categories == null)
     {
         throw new InvalidDataException("categories is a required property for EdFiLocalEducationAgencyReadable and cannot be null");
     }
     else
     {
         this.Categories = categories;
     }
     // to ensure "localEducationAgencyId" is required (not null)
     if (localEducationAgencyId == null)
     {
         throw new InvalidDataException("localEducationAgencyId is a required property for EdFiLocalEducationAgencyReadable and cannot be null");
     }
     else
     {
         this.LocalEducationAgencyId = localEducationAgencyId;
     }
     // to ensure "nameOfInstitution" is required (not null)
     if (nameOfInstitution == null)
     {
         throw new InvalidDataException("nameOfInstitution is a required property for EdFiLocalEducationAgencyReadable and cannot be null");
     }
     else
     {
         this.NameOfInstitution = nameOfInstitution;
     }
     this.Id = id;
     this.StateEducationAgencyReference = stateEducationAgencyReference;
     this.Addresses           = addresses;
     this.IdentificationCodes = identificationCodes;
     this.Etag = etag;
     this.Ext  = ext;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdFiLocalEducationAgencyReadable" /> 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="LocalEducationAgencyId">The identifier assigned to a local education agency. (required).</param>
 /// <param name="StateEducationAgencyReference">StateEducationAgencyReference.</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="Etag">A unique system-generated value that identifies the version of the resource..</param>
 /// <param name="Ext">Ext.</param>
 public EdFiLocalEducationAgencyReadable(string Id = default(string), List <EdFiEducationOrganizationAddressLocalEducationAgencyReadable> Addresses = default(List <EdFiEducationOrganizationAddressLocalEducationAgencyReadable>), List <EdFiEducationOrganizationCategoryLocalEducationAgencyReadable> Categories = default(List <EdFiEducationOrganizationCategoryLocalEducationAgencyReadable>), int?LocalEducationAgencyId = default(int?), EdFiStateEducationAgencyReference StateEducationAgencyReference = default(EdFiStateEducationAgencyReference), List <EdFiEducationOrganizationIdentificationCodeLocalEducationAgencyReadable> IdentificationCodes = default(List <EdFiEducationOrganizationIdentificationCodeLocalEducationAgencyReadable>), string NameOfInstitution = default(string), string Etag = default(string), LocalEducationAgencyExtensionsReadable Ext = default(LocalEducationAgencyExtensionsReadable))
 {
     // to ensure "Id" is required (not null)
     if (Id == null)
     {
         throw new InvalidDataException("Id is a required property for EdFiLocalEducationAgencyReadable 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 EdFiLocalEducationAgencyReadable 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 EdFiLocalEducationAgencyReadable and cannot be null");
     }
     else
     {
         this.Categories = Categories;
     }
     // to ensure "LocalEducationAgencyId" is required (not null)
     if (LocalEducationAgencyId == null)
     {
         throw new InvalidDataException("LocalEducationAgencyId is a required property for EdFiLocalEducationAgencyReadable and cannot be null");
     }
     else
     {
         this.LocalEducationAgencyId = LocalEducationAgencyId;
     }
     // to ensure "NameOfInstitution" is required (not null)
     if (NameOfInstitution == null)
     {
         throw new InvalidDataException("NameOfInstitution is a required property for EdFiLocalEducationAgencyReadable and cannot be null");
     }
     else
     {
         this.NameOfInstitution = NameOfInstitution;
     }
     this.StateEducationAgencyReference = StateEducationAgencyReference;
     this.IdentificationCodes           = IdentificationCodes;
     this.Etag = Etag;
     this.Ext  = Ext;
 }