/// <summary>
 /// Initializes a new instance of the <see cref="RegeltekstHal" /> class.
 /// </summary>
 /// <param name="begindatum">begindatum (required).</param>
 /// <param name="documentComponent">documentComponent (required).</param>
 /// <param name="einddatum">einddatum (required).</param>
 /// <param name="gerelateerdeRegeltekstIdentificaties">gerelateerdeRegeltekstIdentificaties.</param>
 /// <param name="identificatie">identificatie (required).</param>
 /// <param name="laatsteWijzigingsdatum">laatsteWijzigingsdatum (required).</param>
 /// <param name="locatieIdentificaties">locatieIdentificaties (required).</param>
 /// <param name="omschrijving">omschrijving (required).</param>
 /// <param name="links">links.</param>
 /// <param name="embedded">embedded.</param>
 public RegeltekstHal(DateTime begindatum = default(DateTime), DocumentComponent documentComponent = default(DocumentComponent), DateTime einddatum = default(DateTime), List <string> gerelateerdeRegeltekstIdentificaties = default(List <string>), string identificatie = default(string), DateTime laatsteWijzigingsdatum = default(DateTime), List <string> locatieIdentificaties = default(List <string>), string omschrijving = default(string), RegeltekstLinks links = default(RegeltekstLinks), RegeltekstEmbedded embedded = default(RegeltekstEmbedded))
 {
     this.Begindatum = begindatum;
     // to ensure "documentComponent" is required (not null)
     this.DocumentComponent = documentComponent ?? throw new ArgumentNullException("documentComponent is a required property for RegeltekstHal and cannot be null");
     this.Einddatum         = einddatum;
     // to ensure "identificatie" is required (not null)
     this.Identificatie          = identificatie ?? throw new ArgumentNullException("identificatie is a required property for RegeltekstHal and cannot be null");
     this.LaatsteWijzigingsdatum = laatsteWijzigingsdatum;
     // to ensure "locatieIdentificaties" is required (not null)
     this.LocatieIdentificaties = locatieIdentificaties ?? throw new ArgumentNullException("locatieIdentificaties is a required property for RegeltekstHal and cannot be null");
     // to ensure "omschrijving" is required (not null)
     this.Omschrijving = omschrijving ?? throw new ArgumentNullException("omschrijving is a required property for RegeltekstHal and cannot be null");
     this.GerelateerdeRegeltekstIdentificaties = gerelateerdeRegeltekstIdentificaties;
     this.Links    = links;
     this.Embedded = embedded;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RegeltekstHalAllOf" /> class.
 /// </summary>
 /// <param name="links">links.</param>
 /// <param name="embedded">embedded.</param>
 public RegeltekstHalAllOf(RegeltekstLinks links = default(RegeltekstLinks), RegeltekstEmbedded embedded = default(RegeltekstEmbedded))
 {
     this.Links    = links;
     this.Embedded = embedded;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="RegeltekstHal" /> class.
        /// </summary>
        /// <param name="begindatum">&lt;body&gt;&lt;p&gt;Datum waarop de regeltekst relevant werd.&lt;/p&gt;&lt;/body&gt;.</param>
        /// <param name="documentComponent">documentComponent (required).</param>
        /// <param name="einddatum">&lt;body&gt;&lt;p&gt;Datum vanaf waarop de regeltekst niet meer relevant was.&lt;/p&gt;&lt;/body&gt;.</param>
        /// <param name="gerelateerdeRegeltekstIdentificaties">&lt;body&gt;&lt;p&gt;Identificaties van de gerelateerde regelteksten.&lt;/p&gt;&lt;/body&gt;.</param>
        /// <param name="identificatie">&lt;body&gt;&lt;p&gt;Identificatie datatype van Geonovum.&lt;/p&gt;&lt;/body&gt; (required).</param>
        /// <param name="laatsteWijzigingsdatum">&lt;body&gt;&lt;p&gt;De laatste datum waarop, binnen het pakket, wijzigingen zijn aangebracht aan de regeltekst.&lt;/p&gt;&lt;/body&gt; (required).</param>
        /// <param name="locatieIdentificaties">&lt;body&gt;&lt;p&gt;Identificaties van de gerelateerde locaties die gezamenlijk het werkingsgebied van de regeltekst vormen.&lt;/p&gt;&lt;/body&gt; (required).</param>
        /// <param name="omschrijving">&lt;body&gt;&lt;p&gt;De letterlijke tekst waarmee de Regeltekst is omschreven, in een artikel of een lid. Een Regeltekst is altijd één doorlopend stuk juridische tekst, welke juridische regels bevat.&lt;/p&gt;&lt;/body&gt; (required).</param>
        /// <param name="werkpakketCode">&lt;body&gt;&lt;p&gt;Een unieke aanduiding van de verzameling samenhangende activiteiten gericht op het publiceren van een nieuwe versie van een omgevingsdocument.&lt;/p&gt;&lt;/body&gt;&lt;body&gt;&lt;p&gt;Er kunnen tegelijkertijd meerdere trajecten gaande zijn waarin bijvoorbeeld een omgevingsplan gewijzigd wordt, die elk leiden tot een apart te publiceren nieuwe versie van het omgevingsplan. De werkpakketcode biedt de mogelijkheid om de regelteksten te markeren die betrokken zijn in zo&#39;n traject. Daarvan kan gebruik gemaakt worden om alleen de regels met bijhorende annotaties op te vragen voor een specifiek werkpakket.&lt;/p&gt;&lt;/body&gt; (required).</param>
        /// <param name="links">links.</param>
        /// <param name="embedded">embedded.</param>
        public RegeltekstHal(DateTime begindatum = default(DateTime), DocumentComponent documentComponent = default(DocumentComponent), DateTime einddatum = default(DateTime), List <string> gerelateerdeRegeltekstIdentificaties = default(List <string>), string identificatie = default(string), DateTime laatsteWijzigingsdatum = default(DateTime), List <string> locatieIdentificaties = default(List <string>), string omschrijving = default(string), string werkpakketCode = default(string), RegeltekstLinks links = default(RegeltekstLinks), RegeltekstEmbedded embedded = default(RegeltekstEmbedded))
        {
            // to ensure "documentComponent" is required (not null)
            if (documentComponent == null)
            {
                throw new InvalidDataException("documentComponent is a required property for RegeltekstHal and cannot be null");
            }
            else
            {
                this.DocumentComponent = documentComponent;
            }

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

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

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

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

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

            this.Begindatum = begindatum;
            this.Einddatum  = einddatum;
            this.GerelateerdeRegeltekstIdentificaties = gerelateerdeRegeltekstIdentificaties;
            this.Links    = links;
            this.Embedded = embedded;
        }