# Auto generated from lunchregisteret-schema.yaml by pythongen.py version: 0.0.1
# Generation date: 2026-08-15T06:19:25
# Schema: lunchregisteret
#
# id: https://data.norge.no/oreg/lunchregisteret
# description: Generert modell for 'lunchregisteret'.
# license: https://data.norge.no/nlod/no/2.0

import dataclasses
import re
from dataclasses import dataclass
from datetime import (
    date,
    datetime,
    time
)
from typing import (
    Any,
    ClassVar,
    Dict,
    List,
    Optional,
    Union
)

from jsonasobj2 import (
    JsonObj,
    as_dict
)
from linkml_runtime.linkml_model.meta import (
    EnumDefinition,
    PermissibleValue,
    PvFormulaOptions
)
from linkml_runtime.utils.curienamespace import CurieNamespace
from linkml_runtime.utils.enumerations import EnumDefinitionImpl
from linkml_runtime.utils.formatutils import (
    camelcase,
    sfx,
    underscore
)
from linkml_runtime.utils.metamodelcore import (
    bnode,
    empty_dict,
    empty_list
)
from linkml_runtime.utils.slot import Slot
from linkml_runtime.utils.yamlutils import (
    YAMLRoot,
    extended_float,
    extended_int,
    extended_str
)
from rdflib import (
    Namespace,
    URIRef
)

from linkml_runtime.linkml_model.types import Boolean, Date, Datetime, Double, Float, String, Uri, Uriorcurie
from linkml_runtime.utils.metamodelcore import Bool, URI, URIorCURIE, XSDDate, XSDDateTime

metamodel_version = "1.11.0"
version = "0.1.0"

# Namespaces
ADMS = CurieNamespace('adms', 'http://www.w3.org/ns/adms#')
CAPNO = CurieNamespace('capno', 'https://data.norge.no/ap-no/common-ap-no/')
CV = CurieNamespace('cv', 'http://data.europa.eu/m8g/')
DCAT = CurieNamespace('dcat', 'http://www.w3.org/ns/dcat#')
DCATAP = CurieNamespace('dcatap', 'http://data.europa.eu/r5r/')
DCT = CurieNamespace('dct', 'http://purl.org/dc/terms/')
DQV = CurieNamespace('dqv', 'http://www.w3.org/ns/dqv#')
DQVNO = CurieNamespace('dqvno', 'https://data.norge.no/vocabulary/dqvno#')
ELI = CurieNamespace('eli', 'http://data.europa.eu/eli/ontology#')
FOAF = CurieNamespace('foaf', 'http://xmlns.com/foaf/0.1/')
LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/')
LUNCHREGISTERET = CurieNamespace('lunchregisteret', 'https://data.norge.no/oreg/lunchregisteret/')
OA = CurieNamespace('oa', 'http://www.w3.org/ns/oa#')
ODRL = CurieNamespace('odrl', 'http://www.w3.org/ns/odrl/2/')
ODRS = CurieNamespace('odrs', 'http://schema.theodi.org/odrs#')
OWL = CurieNamespace('owl', 'http://www.w3.org/2002/07/owl#')
PROV = CurieNamespace('prov', 'http://www.w3.org/ns/prov#')
RDF = CurieNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
RDFS = CurieNamespace('rdfs', 'http://www.w3.org/2000/01/rdf-schema#')
SKOS = CurieNamespace('skos', 'http://www.w3.org/2004/02/skos/core#')
SPDX = CurieNamespace('spdx', 'http://spdx.org/rdf/terms#')
TIME = CurieNamespace('time', 'http://www.w3.org/2006/time#')
VCARD = CurieNamespace('vcard', 'http://www.w3.org/2006/vcard/ns#')
XSD = CurieNamespace('xsd', 'http://www.w3.org/2001/XMLSchema#')
DEFAULT_ = LUNCHREGISTERET


# Types
class LangString(str):
    """ Språktagget streng (rdf:langString). """
    type_class_uri = RDF["langString"]
    type_class_curie = "rdf:langString"
    type_name = "LangString"
    type_model_uri = LUNCHREGISTERET.LangString


class NonNegativeInteger(int):
    """ Ikkje-negativ heltalsverdi (xsd:nonNegativeInteger). """
    type_class_uri = XSD["nonNegativeInteger"]
    type_class_curie = "xsd:nonNegativeInteger"
    type_name = "NonNegativeInteger"
    type_model_uri = LUNCHREGISTERET.NonNegativeInteger


class Duration(str):
    """ ISO 8601-varigheit (xsd:duration), t.d. PT15M. """
    type_class_uri = XSD["duration"]
    type_class_curie = "xsd:duration"
    type_name = "Duration"
    type_model_uri = LUNCHREGISTERET.Duration


class GYear(str):
    """ Gregorisk årstal (xsd:gYear), t.d. 2024. """
    type_class_uri = XSD["gYear"]
    type_class_curie = "xsd:gYear"
    type_name = "GYear"
    type_model_uri = LUNCHREGISTERET.GYear


# Class references
class LunchregisteretId(URIorCURIE):
    pass


class KatalogisertRessursId(URIorCURIE):
    pass


class AktoerId(URIorCURIE):
    pass


class KontaktopplysningId(URIorCURIE):
    pass


class TidsromId(URIorCURIE):
    pass


class StandardId(URIorCURIE):
    pass


class RegulativRessursId(URIorCURIE):
    pass


class IdentifikatorId(URIorCURIE):
    pass


class RettighetserklaringId(URIorCURIE):
    pass


class SjekksumId(URIorCURIE):
    pass


class GebyrId(URIorCURIE):
    pass


class RelasjonId(URIorCURIE):
    pass


class DistribusjonId(URIorCURIE):
    pass


class DatasettId(KatalogisertRessursId):
    pass


class DatasettserieId(KatalogisertRessursId):
    pass


class DatatjenesteId(KatalogisertRessursId):
    pass


class KatalogpostId(URIorCURIE):
    pass


class KatalogId(KatalogisertRessursId):
    pass


class LisensdokumentId(URIorCURIE):
    pass


class MediatypeId(URIorCURIE):
    pass


class KonseptId(URIorCURIE):
    pass


class BegrepssamlingId(URIorCURIE):
    pass


class KvalitetsdimensjonId(URIorCURIE):
    pass


class KvalitetsdeldimensjonId(KvalitetsdimensjonId):
    pass


class KvalitetsmaalId(URIorCURIE):
    pass


class KvalitetsmerknadId(URIorCURIE):
    pass


class BrukartilbakemeldingId(KvalitetsmerknadId):
    pass


class KvalitetssertifikatId(KvalitetsmerknadId):
    pass


class KvalitetsmaalingId(URIorCURIE):
    pass


class TekstdelId(URIorCURIE):
    pass


@dataclass(repr=False)
class LunchregisteretContainer(YAMLRoot):
    """
    containerklasse for serialisering av klasser i lunchregisteret modellen
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = LUNCHREGISTERET["LunchregisteretContainer"]
    class_class_curie: ClassVar[str] = "lunchregisteret:LunchregisteretContainer"
    class_name: ClassVar[str] = "LunchregisteretContainer"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.LunchregisteretContainer

    lunchregistereter: Optional[Union[list[Union[str, LunchregisteretId]], dict[Union[str, LunchregisteretId], Union[dict, "Lunchregisteret"]]]] = empty_dict()

    def __post_init__(self, *_: str, **kwargs: Any):
        self._normalize_inlined_as_list(slot_name="lunchregistereter", slot_type=Lunchregisteret, key_name="id", keyed=True)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Lunchregisteret(YAMLRoot):
    """
    TODO: beskriv klassen
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = LUNCHREGISTERET["lunchregisteret"]
    class_class_curie: ClassVar[str] = "lunchregisteret:lunchregisteret"
    class_name: ClassVar[str] = "Lunchregisteret"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Lunchregisteret

    id: Union[str, LunchregisteretId] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, LunchregisteretId):
            self.id = LunchregisteretId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class KatalogisertRessurs(YAMLRoot):
    """
    Basisklasse for ressursar som kan katalogiserast.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["Resource"]
    class_class_curie: ClassVar[str] = "dcat:Resource"
    class_name: ClassVar[str] = "KatalogisertRessurs"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.KatalogisertRessurs

    id: Union[str, KatalogisertRessursId] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KatalogisertRessursId):
            self.id = KatalogisertRessursId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Aktoer(YAMLRoot):
    """
    Ein aktør (person, organisasjon eller system) med ansvar for ein ressurs.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = FOAF["Agent"]
    class_class_curie: ClassVar[str] = "foaf:Agent"
    class_name: ClassVar[str] = "Aktoer"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Aktoer

    id: Union[str, AktoerId] = None
    navn_aktoer: Union[str, list[str]] = None
    identifikator_literal: Optional[str] = None
    type_concept: Optional[Union[str, KonseptId]] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, AktoerId):
            self.id = AktoerId(self.id)

        if self._is_empty(self.navn_aktoer):
            self.MissingRequiredField("navn_aktoer")
        if not isinstance(self.navn_aktoer, list):
            self.navn_aktoer = [self.navn_aktoer] if self.navn_aktoer is not None else []
        self.navn_aktoer = [v if isinstance(v, str) else str(v) for v in self.navn_aktoer]

        if self.identifikator_literal is not None and not isinstance(self.identifikator_literal, str):
            self.identifikator_literal = str(self.identifikator_literal)

        if self.type_concept is not None and not isinstance(self.type_concept, KonseptId):
            self.type_concept = KonseptId(self.type_concept)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kontaktopplysning(YAMLRoot):
    """
    Kontaktinformasjon for ein aktør.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = VCARD["Kind"]
    class_class_curie: ClassVar[str] = "vcard:Kind"
    class_name: ClassVar[str] = "Kontaktopplysning"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kontaktopplysning

    id: Union[str, KontaktopplysningId] = None
    navn_vcard: Union[str, list[str]] = None
    har_epost: Optional[str] = None
    har_kontaktside: Optional[str] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KontaktopplysningId):
            self.id = KontaktopplysningId(self.id)

        if self._is_empty(self.navn_vcard):
            self.MissingRequiredField("navn_vcard")
        if not isinstance(self.navn_vcard, list):
            self.navn_vcard = [self.navn_vcard] if self.navn_vcard is not None else []
        self.navn_vcard = [v if isinstance(v, str) else str(v) for v in self.navn_vcard]

        if self.har_epost is not None and not isinstance(self.har_epost, str):
            self.har_epost = str(self.har_epost)

        if self.har_kontaktside is not None and not isinstance(self.har_kontaktside, str):
            self.har_kontaktside = str(self.har_kontaktside)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Tidsrom(YAMLRoot):
    """
    Eit tidsintervall med start- og sluttdato.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCT["PeriodOfTime"]
    class_class_curie: ClassVar[str] = "dct:PeriodOfTime"
    class_name: ClassVar[str] = "Tidsrom"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Tidsrom

    id: Union[str, TidsromId] = None
    startdato: Optional[Union[str, XSDDate]] = None
    sluttdato: Optional[Union[str, XSDDate]] = None
    begynnelse: Optional[Union[str, XSDDateTime]] = None
    slutt: Optional[Union[str, XSDDateTime]] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, TidsromId):
            self.id = TidsromId(self.id)

        if self.startdato is not None and not isinstance(self.startdato, XSDDate):
            self.startdato = XSDDate(self.startdato)

        if self.sluttdato is not None and not isinstance(self.sluttdato, XSDDate):
            self.sluttdato = XSDDate(self.sluttdato)

        if self.begynnelse is not None and not isinstance(self.begynnelse, XSDDateTime):
            self.begynnelse = XSDDateTime(self.begynnelse)

        if self.slutt is not None and not isinstance(self.slutt, XSDDateTime):
            self.slutt = XSDDateTime(self.slutt)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Standard(YAMLRoot):
    """
    Ein standard eller spesifikasjon ein ressurs er i samsvar med.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCT["Standard"]
    class_class_curie: ClassVar[str] = "dct:Standard"
    class_name: ClassVar[str] = "Standard"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Standard

    id: Union[str, StandardId] = None
    tittel: Union[str, list[str]] = None
    har_referanse: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    har_merknad: Optional[Union[str, list[str]]] = empty_list()
    versjon: Optional[str] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, StandardId):
            self.id = StandardId(self.id)

        if self._is_empty(self.tittel):
            self.MissingRequiredField("tittel")
        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if not isinstance(self.har_referanse, list):
            self.har_referanse = [self.har_referanse] if self.har_referanse is not None else []
        self.har_referanse = [v if isinstance(v, URI) else URI(v) for v in self.har_referanse]

        if not isinstance(self.har_merknad, list):
            self.har_merknad = [self.har_merknad] if self.har_merknad is not None else []
        self.har_merknad = [v if isinstance(v, str) else str(v) for v in self.har_merknad]

        if self.versjon is not None and not isinstance(self.versjon, str):
            self.versjon = str(self.versjon)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class RegulativRessurs(YAMLRoot):
    """
    Ein regulativ ressurs (lov, forskrift o.l.) som gjeld for ein ressurs.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = ELI["LegalResource"]
    class_class_curie: ClassVar[str] = "eli:LegalResource"
    class_name: ClassVar[str] = "RegulativRessurs"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.RegulativRessurs

    id: Union[str, RegulativRessursId] = None
    beskrivelse: Optional[Union[str, list[str]]] = empty_list()
    identifikator_literal: Optional[str] = None
    har_referanse: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    spraak: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    tittel: Optional[Union[str, list[str]]] = empty_list()
    type_concept: Optional[Union[str, KonseptId]] = None
    relatert_regulativ_ressurs: Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, RegulativRessursId):
            self.id = RegulativRessursId(self.id)

        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if self.identifikator_literal is not None and not isinstance(self.identifikator_literal, str):
            self.identifikator_literal = str(self.identifikator_literal)

        if not isinstance(self.har_referanse, list):
            self.har_referanse = [self.har_referanse] if self.har_referanse is not None else []
        self.har_referanse = [v if isinstance(v, URI) else URI(v) for v in self.har_referanse]

        if not isinstance(self.spraak, list):
            self.spraak = [self.spraak] if self.spraak is not None else []
        self.spraak = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.spraak]

        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if self.type_concept is not None and not isinstance(self.type_concept, KonseptId):
            self.type_concept = KonseptId(self.type_concept)

        if not isinstance(self.relatert_regulativ_ressurs, list):
            self.relatert_regulativ_ressurs = [self.relatert_regulativ_ressurs] if self.relatert_regulativ_ressurs is not None else []
        self.relatert_regulativ_ressurs = [v if isinstance(v, RegulativRessursId) else RegulativRessursId(v) for v in self.relatert_regulativ_ressurs]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Identifikator(YAMLRoot):
    """
    Ein alternativ identifikator for ein ressurs.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = ADMS["Identifier"]
    class_class_curie: ClassVar[str] = "adms:Identifier"
    class_name: ClassVar[str] = "Identifikator"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Identifikator

    id: Union[str, IdentifikatorId] = None
    notasjon: str = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, IdentifikatorId):
            self.id = IdentifikatorId(self.id)

        if self._is_empty(self.notasjon):
            self.MissingRequiredField("notasjon")
        if not isinstance(self.notasjon, str):
            self.notasjon = str(self.notasjon)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Rettighetserklaring(YAMLRoot):
    """
    Ei erklæring om rettar til ein ressurs (ODRS).
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCT["RightsStatement"]
    class_class_curie: ClassVar[str] = "dct:RightsStatement"
    class_name: ClassVar[str] = "Rettighetserklaring"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Rettighetserklaring

    id: Union[str, RettighetserklaringId] = None
    anvendelsesretningslinjer: Optional[str] = None
    jurisdiksjon: Optional[str] = None
    krediteringstekst: Optional[str] = None
    krediteringsurl: Optional[Union[str, URI]] = None
    opphavsrettserklaring: Optional[str] = None
    opphavsrettsinnehaver: Optional[str] = None
    opphavsrettsnotis: Optional[str] = None
    opphavsrettsaar: Optional[str] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, RettighetserklaringId):
            self.id = RettighetserklaringId(self.id)

        if self.anvendelsesretningslinjer is not None and not isinstance(self.anvendelsesretningslinjer, str):
            self.anvendelsesretningslinjer = str(self.anvendelsesretningslinjer)

        if self.jurisdiksjon is not None and not isinstance(self.jurisdiksjon, str):
            self.jurisdiksjon = str(self.jurisdiksjon)

        if self.krediteringstekst is not None and not isinstance(self.krediteringstekst, str):
            self.krediteringstekst = str(self.krediteringstekst)

        if self.krediteringsurl is not None and not isinstance(self.krediteringsurl, URI):
            self.krediteringsurl = URI(self.krediteringsurl)

        if self.opphavsrettserklaring is not None and not isinstance(self.opphavsrettserklaring, str):
            self.opphavsrettserklaring = str(self.opphavsrettserklaring)

        if self.opphavsrettsinnehaver is not None and not isinstance(self.opphavsrettsinnehaver, str):
            self.opphavsrettsinnehaver = str(self.opphavsrettsinnehaver)

        if self.opphavsrettsnotis is not None and not isinstance(self.opphavsrettsnotis, str):
            self.opphavsrettsnotis = str(self.opphavsrettsnotis)

        if self.opphavsrettsaar is not None and not isinstance(self.opphavsrettsaar, str):
            self.opphavsrettsaar = str(self.opphavsrettsaar)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Sjekksum(YAMLRoot):
    """
    Ein sjekksum for ein distribusjon.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = SPDX["Checksum"]
    class_class_curie: ClassVar[str] = "spdx:Checksum"
    class_name: ClassVar[str] = "Sjekksum"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Sjekksum

    id: Union[str, SjekksumId] = None
    algoritme: str = None
    sjekksumverdi: str = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, SjekksumId):
            self.id = SjekksumId(self.id)

        if self._is_empty(self.algoritme):
            self.MissingRequiredField("algoritme")
        if not isinstance(self.algoritme, str):
            self.algoritme = str(self.algoritme)

        if self._is_empty(self.sjekksumverdi):
            self.MissingRequiredField("sjekksumverdi")
        if not isinstance(self.sjekksumverdi, str):
            self.sjekksumverdi = str(self.sjekksumverdi)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Gebyr(YAMLRoot):
    """
    Eit gebyr knytt til bruk av ein datatjeneste.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = CV["Cost"]
    class_class_curie: ClassVar[str] = "cv:Cost"
    class_name: ClassVar[str] = "Gebyr"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Gebyr

    id: Union[str, GebyrId] = None
    belop: Optional[str] = None
    beskrivelse: Optional[Union[str, list[str]]] = empty_list()
    dokumentasjon: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    valuta: Optional[Union[str, KonseptId]] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, GebyrId):
            self.id = GebyrId(self.id)

        if self.belop is not None and not isinstance(self.belop, str):
            self.belop = str(self.belop)

        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if not isinstance(self.dokumentasjon, list):
            self.dokumentasjon = [self.dokumentasjon] if self.dokumentasjon is not None else []
        self.dokumentasjon = [v if isinstance(v, URI) else URI(v) for v in self.dokumentasjon]

        if self.valuta is not None and not isinstance(self.valuta, KonseptId):
            self.valuta = KonseptId(self.valuta)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Relasjon(YAMLRoot):
    """
    Ein kvalifisert relasjon mellom to ressursar.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["Relationship"]
    class_class_curie: ClassVar[str] = "dcat:Relationship"
    class_name: ClassVar[str] = "Relasjon"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Relasjon

    id: Union[str, RelasjonId] = None
    har_rolle: str = None
    relasjon_til: Union[str, URI] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, RelasjonId):
            self.id = RelasjonId(self.id)

        if self._is_empty(self.har_rolle):
            self.MissingRequiredField("har_rolle")
        if not isinstance(self.har_rolle, str):
            self.har_rolle = str(self.har_rolle)

        if self._is_empty(self.relasjon_til):
            self.MissingRequiredField("relasjon_til")
        if not isinstance(self.relasjon_til, URI):
            self.relasjon_til = URI(self.relasjon_til)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Distribusjon(YAMLRoot):
    """
    Ein spesifikk representasjon/nedlastbar form av eit datasett.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["Distribution"]
    class_class_curie: ClassVar[str] = "dcat:Distribution"
    class_name: ClassVar[str] = "Distribusjon"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Distribusjon

    id: Union[str, DistribusjonId] = None
    tilgangs_url: Union[Union[str, URI], list[Union[str, URI]]] = None
    beskrivelse: Optional[Union[str, list[str]]] = empty_list()
    format: Optional[Union[str, KonseptId]] = None
    lisens: Optional[Union[str, LisensdokumentId]] = None
    status: Optional[Union[str, KonseptId]] = None
    tilgjengelighet: Optional[Union[str, KonseptId]] = None
    dokumentasjon: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    endringsdato: Optional[Union[str, XSDDate]] = None
    filstorrelse: Optional[int] = None
    gjeldende_lovgivning: Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]] = empty_list()
    i_samsvar_med: Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]] = empty_list()
    komprimeringsformat: Optional[Union[str, MediatypeId]] = None
    medietype: Optional[Union[str, MediatypeId]] = None
    nedlastningslenke: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    pakkeformat: Optional[Union[str, MediatypeId]] = None
    policy: Optional[Union[str, URI]] = None
    rettigheter: Optional[Union[str, RettighetserklaringId]] = None
    sjekksum: Optional[Union[str, SjekksumId]] = None
    spraak: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    tidsopplosning: Optional[str] = None
    tilgangstjeneste: Optional[Union[Union[str, DatatjenesteId], list[Union[str, DatatjenesteId]]]] = empty_list()
    tittel: Optional[Union[str, list[str]]] = empty_list()
    utgivelsesdato: Optional[Union[str, XSDDate]] = None
    romlig_opplosning: Optional[Union[float, list[float]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, DistribusjonId):
            self.id = DistribusjonId(self.id)

        if self._is_empty(self.tilgangs_url):
            self.MissingRequiredField("tilgangs_url")
        if not isinstance(self.tilgangs_url, list):
            self.tilgangs_url = [self.tilgangs_url] if self.tilgangs_url is not None else []
        self.tilgangs_url = [v if isinstance(v, URI) else URI(v) for v in self.tilgangs_url]

        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if self.format is not None and not isinstance(self.format, KonseptId):
            self.format = KonseptId(self.format)

        if self.lisens is not None and not isinstance(self.lisens, LisensdokumentId):
            self.lisens = LisensdokumentId(self.lisens)

        if self.status is not None and not isinstance(self.status, KonseptId):
            self.status = KonseptId(self.status)

        if self.tilgjengelighet is not None and not isinstance(self.tilgjengelighet, KonseptId):
            self.tilgjengelighet = KonseptId(self.tilgjengelighet)

        if not isinstance(self.dokumentasjon, list):
            self.dokumentasjon = [self.dokumentasjon] if self.dokumentasjon is not None else []
        self.dokumentasjon = [v if isinstance(v, URI) else URI(v) for v in self.dokumentasjon]

        if self.endringsdato is not None and not isinstance(self.endringsdato, XSDDate):
            self.endringsdato = XSDDate(self.endringsdato)

        if self.filstorrelse is not None and not isinstance(self.filstorrelse, int):
            self.filstorrelse = int(self.filstorrelse)

        if not isinstance(self.gjeldende_lovgivning, list):
            self.gjeldende_lovgivning = [self.gjeldende_lovgivning] if self.gjeldende_lovgivning is not None else []
        self.gjeldende_lovgivning = [v if isinstance(v, RegulativRessursId) else RegulativRessursId(v) for v in self.gjeldende_lovgivning]

        if not isinstance(self.i_samsvar_med, list):
            self.i_samsvar_med = [self.i_samsvar_med] if self.i_samsvar_med is not None else []
        self.i_samsvar_med = [v if isinstance(v, StandardId) else StandardId(v) for v in self.i_samsvar_med]

        if self.komprimeringsformat is not None and not isinstance(self.komprimeringsformat, MediatypeId):
            self.komprimeringsformat = MediatypeId(self.komprimeringsformat)

        if self.medietype is not None and not isinstance(self.medietype, MediatypeId):
            self.medietype = MediatypeId(self.medietype)

        if not isinstance(self.nedlastningslenke, list):
            self.nedlastningslenke = [self.nedlastningslenke] if self.nedlastningslenke is not None else []
        self.nedlastningslenke = [v if isinstance(v, URI) else URI(v) for v in self.nedlastningslenke]

        if self.pakkeformat is not None and not isinstance(self.pakkeformat, MediatypeId):
            self.pakkeformat = MediatypeId(self.pakkeformat)

        if self.policy is not None and not isinstance(self.policy, URI):
            self.policy = URI(self.policy)

        if self.rettigheter is not None and not isinstance(self.rettigheter, RettighetserklaringId):
            self.rettigheter = RettighetserklaringId(self.rettigheter)

        if self.sjekksum is not None and not isinstance(self.sjekksum, SjekksumId):
            self.sjekksum = SjekksumId(self.sjekksum)

        if not isinstance(self.spraak, list):
            self.spraak = [self.spraak] if self.spraak is not None else []
        self.spraak = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.spraak]

        if self.tidsopplosning is not None and not isinstance(self.tidsopplosning, str):
            self.tidsopplosning = str(self.tidsopplosning)

        if not isinstance(self.tilgangstjeneste, list):
            self.tilgangstjeneste = [self.tilgangstjeneste] if self.tilgangstjeneste is not None else []
        self.tilgangstjeneste = [v if isinstance(v, DatatjenesteId) else DatatjenesteId(v) for v in self.tilgangstjeneste]

        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if self.utgivelsesdato is not None and not isinstance(self.utgivelsesdato, XSDDate):
            self.utgivelsesdato = XSDDate(self.utgivelsesdato)

        if not isinstance(self.romlig_opplosning, list):
            self.romlig_opplosning = [self.romlig_opplosning] if self.romlig_opplosning is not None else []
        self.romlig_opplosning = [v if isinstance(v, float) else float(v) for v in self.romlig_opplosning]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Datasett(KatalogisertRessurs):
    """
    Ei samling av data utgjeven eller kuratert av éin aktør.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["Dataset"]
    class_class_curie: ClassVar[str] = "dcat:Dataset"
    class_name: ClassVar[str] = "Datasett"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Datasett

    id: Union[str, DatasettId] = None
    beskrivelse: Union[str, list[str]] = None
    kontaktpunkt: Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]] = None
    tema: Union[Union[str, KonseptId], list[Union[str, KonseptId]]] = None
    tittel: Union[str, list[str]] = None
    utgiver: Union[str, AktoerId] = None
    begrep: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    ble_generert_ved: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    datasettdistribusjon: Optional[Union[Union[str, DistribusjonId], list[Union[str, DistribusjonId]]]] = empty_list()
    dekningsomraade: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    gjeldende_lovgivning: Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]] = empty_list()
    nokkelord: Optional[Union[str, list[str]]] = empty_list()
    tidsrom: Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]] = empty_list()
    tilgangsrettigheter: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    annen_ansvarlig_aktor: Optional[Union[str, list[str]]] = empty_list()
    annen_identifikator: Optional[Union[Union[str, IdentifikatorId], list[Union[str, IdentifikatorId]]]] = empty_list()
    annen_spesifikk_relasjon: Optional[Union[Union[str, RelasjonId], list[Union[str, RelasjonId]]]] = empty_list()
    dokumentasjon: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    eierskapshistorikk: Optional[Union[str, list[str]]] = empty_list()
    eksempeldata: Optional[Union[Union[str, DistribusjonId], list[Union[str, DistribusjonId]]]] = empty_list()
    endringsdato: Optional[Union[str, XSDDate]] = None
    identifikator_literal: Optional[str] = None
    i_samsvar_med: Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]] = empty_list()
    i_serie: Optional[Union[Union[str, DatasettserieId], list[Union[str, DatasettserieId]]]] = empty_list()
    kilde_datasett: Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]] = empty_list()
    landingsside: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    produsent: Optional[Union[str, AktoerId]] = None
    relatert_ressurs: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    spraak: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    type_concept: Optional[Union[str, KonseptId]] = None
    utgivelsesdato: Optional[Union[str, XSDDate]] = None
    versjon: Optional[str] = None
    versjonsmerknad: Optional[Union[str, list[str]]] = empty_list()
    frekvens: Optional[Union[str, KonseptId]] = None
    romlig_opplosning: Optional[Union[float, list[float]]] = empty_list()
    tidsopplosning: Optional[str] = None
    har_gebyr: Optional[Union[Union[str, GebyrId], list[Union[str, GebyrId]]]] = empty_list()
    erstatter: Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]] = empty_list()
    forrige_versjon: Optional[Union[str, DatasettId]] = None
    har_versjon: Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]] = empty_list()
    er_referert_av: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    har_kvalitetsmerknad: Optional[Union[Union[str, KvalitetsmerknadId], list[Union[str, KvalitetsmerknadId]]]] = empty_list()
    har_kvalitetsmaaling: Optional[Union[Union[str, KvalitetsmaalingId], list[Union[str, KvalitetsmaalingId]]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, DatasettId):
            self.id = DatasettId(self.id)

        if self._is_empty(self.beskrivelse):
            self.MissingRequiredField("beskrivelse")
        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if self._is_empty(self.kontaktpunkt):
            self.MissingRequiredField("kontaktpunkt")
        if not isinstance(self.kontaktpunkt, list):
            self.kontaktpunkt = [self.kontaktpunkt] if self.kontaktpunkt is not None else []
        self.kontaktpunkt = [v if isinstance(v, KontaktopplysningId) else KontaktopplysningId(v) for v in self.kontaktpunkt]

        if self._is_empty(self.tema):
            self.MissingRequiredField("tema")
        if not isinstance(self.tema, list):
            self.tema = [self.tema] if self.tema is not None else []
        self.tema = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.tema]

        if self._is_empty(self.tittel):
            self.MissingRequiredField("tittel")
        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if self._is_empty(self.utgiver):
            self.MissingRequiredField("utgiver")
        if not isinstance(self.utgiver, AktoerId):
            self.utgiver = AktoerId(self.utgiver)

        if not isinstance(self.begrep, list):
            self.begrep = [self.begrep] if self.begrep is not None else []
        self.begrep = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.begrep]

        if not isinstance(self.ble_generert_ved, list):
            self.ble_generert_ved = [self.ble_generert_ved] if self.ble_generert_ved is not None else []
        self.ble_generert_ved = [v if isinstance(v, URI) else URI(v) for v in self.ble_generert_ved]

        if not isinstance(self.datasettdistribusjon, list):
            self.datasettdistribusjon = [self.datasettdistribusjon] if self.datasettdistribusjon is not None else []
        self.datasettdistribusjon = [v if isinstance(v, DistribusjonId) else DistribusjonId(v) for v in self.datasettdistribusjon]

        if not isinstance(self.dekningsomraade, list):
            self.dekningsomraade = [self.dekningsomraade] if self.dekningsomraade is not None else []
        self.dekningsomraade = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.dekningsomraade]

        if not isinstance(self.gjeldende_lovgivning, list):
            self.gjeldende_lovgivning = [self.gjeldende_lovgivning] if self.gjeldende_lovgivning is not None else []
        self.gjeldende_lovgivning = [v if isinstance(v, RegulativRessursId) else RegulativRessursId(v) for v in self.gjeldende_lovgivning]

        if not isinstance(self.nokkelord, list):
            self.nokkelord = [self.nokkelord] if self.nokkelord is not None else []
        self.nokkelord = [v if isinstance(v, str) else str(v) for v in self.nokkelord]

        if not isinstance(self.tidsrom, list):
            self.tidsrom = [self.tidsrom] if self.tidsrom is not None else []
        self.tidsrom = [v if isinstance(v, TidsromId) else TidsromId(v) for v in self.tidsrom]

        if not isinstance(self.tilgangsrettigheter, list):
            self.tilgangsrettigheter = [self.tilgangsrettigheter] if self.tilgangsrettigheter is not None else []
        self.tilgangsrettigheter = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.tilgangsrettigheter]

        if not isinstance(self.annen_ansvarlig_aktor, list):
            self.annen_ansvarlig_aktor = [self.annen_ansvarlig_aktor] if self.annen_ansvarlig_aktor is not None else []
        self.annen_ansvarlig_aktor = [v if isinstance(v, str) else str(v) for v in self.annen_ansvarlig_aktor]

        if not isinstance(self.annen_identifikator, list):
            self.annen_identifikator = [self.annen_identifikator] if self.annen_identifikator is not None else []
        self.annen_identifikator = [v if isinstance(v, IdentifikatorId) else IdentifikatorId(v) for v in self.annen_identifikator]

        if not isinstance(self.annen_spesifikk_relasjon, list):
            self.annen_spesifikk_relasjon = [self.annen_spesifikk_relasjon] if self.annen_spesifikk_relasjon is not None else []
        self.annen_spesifikk_relasjon = [v if isinstance(v, RelasjonId) else RelasjonId(v) for v in self.annen_spesifikk_relasjon]

        if not isinstance(self.dokumentasjon, list):
            self.dokumentasjon = [self.dokumentasjon] if self.dokumentasjon is not None else []
        self.dokumentasjon = [v if isinstance(v, URI) else URI(v) for v in self.dokumentasjon]

        if not isinstance(self.eierskapshistorikk, list):
            self.eierskapshistorikk = [self.eierskapshistorikk] if self.eierskapshistorikk is not None else []
        self.eierskapshistorikk = [v if isinstance(v, str) else str(v) for v in self.eierskapshistorikk]

        if not isinstance(self.eksempeldata, list):
            self.eksempeldata = [self.eksempeldata] if self.eksempeldata is not None else []
        self.eksempeldata = [v if isinstance(v, DistribusjonId) else DistribusjonId(v) for v in self.eksempeldata]

        if self.endringsdato is not None and not isinstance(self.endringsdato, XSDDate):
            self.endringsdato = XSDDate(self.endringsdato)

        if self.identifikator_literal is not None and not isinstance(self.identifikator_literal, str):
            self.identifikator_literal = str(self.identifikator_literal)

        if not isinstance(self.i_samsvar_med, list):
            self.i_samsvar_med = [self.i_samsvar_med] if self.i_samsvar_med is not None else []
        self.i_samsvar_med = [v if isinstance(v, StandardId) else StandardId(v) for v in self.i_samsvar_med]

        if not isinstance(self.i_serie, list):
            self.i_serie = [self.i_serie] if self.i_serie is not None else []
        self.i_serie = [v if isinstance(v, DatasettserieId) else DatasettserieId(v) for v in self.i_serie]

        if not isinstance(self.kilde_datasett, list):
            self.kilde_datasett = [self.kilde_datasett] if self.kilde_datasett is not None else []
        self.kilde_datasett = [v if isinstance(v, DatasettId) else DatasettId(v) for v in self.kilde_datasett]

        if not isinstance(self.landingsside, list):
            self.landingsside = [self.landingsside] if self.landingsside is not None else []
        self.landingsside = [v if isinstance(v, URI) else URI(v) for v in self.landingsside]

        if self.produsent is not None and not isinstance(self.produsent, AktoerId):
            self.produsent = AktoerId(self.produsent)

        if not isinstance(self.relatert_ressurs, list):
            self.relatert_ressurs = [self.relatert_ressurs] if self.relatert_ressurs is not None else []
        self.relatert_ressurs = [v if isinstance(v, URI) else URI(v) for v in self.relatert_ressurs]

        if not isinstance(self.spraak, list):
            self.spraak = [self.spraak] if self.spraak is not None else []
        self.spraak = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.spraak]

        if self.type_concept is not None and not isinstance(self.type_concept, KonseptId):
            self.type_concept = KonseptId(self.type_concept)

        if self.utgivelsesdato is not None and not isinstance(self.utgivelsesdato, XSDDate):
            self.utgivelsesdato = XSDDate(self.utgivelsesdato)

        if self.versjon is not None and not isinstance(self.versjon, str):
            self.versjon = str(self.versjon)

        if not isinstance(self.versjonsmerknad, list):
            self.versjonsmerknad = [self.versjonsmerknad] if self.versjonsmerknad is not None else []
        self.versjonsmerknad = [v if isinstance(v, str) else str(v) for v in self.versjonsmerknad]

        if self.frekvens is not None and not isinstance(self.frekvens, KonseptId):
            self.frekvens = KonseptId(self.frekvens)

        if not isinstance(self.romlig_opplosning, list):
            self.romlig_opplosning = [self.romlig_opplosning] if self.romlig_opplosning is not None else []
        self.romlig_opplosning = [v if isinstance(v, float) else float(v) for v in self.romlig_opplosning]

        if self.tidsopplosning is not None and not isinstance(self.tidsopplosning, str):
            self.tidsopplosning = str(self.tidsopplosning)

        if not isinstance(self.har_gebyr, list):
            self.har_gebyr = [self.har_gebyr] if self.har_gebyr is not None else []
        self.har_gebyr = [v if isinstance(v, GebyrId) else GebyrId(v) for v in self.har_gebyr]

        if not isinstance(self.erstatter, list):
            self.erstatter = [self.erstatter] if self.erstatter is not None else []
        self.erstatter = [v if isinstance(v, DatasettId) else DatasettId(v) for v in self.erstatter]

        if self.forrige_versjon is not None and not isinstance(self.forrige_versjon, DatasettId):
            self.forrige_versjon = DatasettId(self.forrige_versjon)

        if not isinstance(self.har_versjon, list):
            self.har_versjon = [self.har_versjon] if self.har_versjon is not None else []
        self.har_versjon = [v if isinstance(v, DatasettId) else DatasettId(v) for v in self.har_versjon]

        if not isinstance(self.er_referert_av, list):
            self.er_referert_av = [self.er_referert_av] if self.er_referert_av is not None else []
        self.er_referert_av = [v if isinstance(v, URI) else URI(v) for v in self.er_referert_av]

        if not isinstance(self.har_kvalitetsmerknad, list):
            self.har_kvalitetsmerknad = [self.har_kvalitetsmerknad] if self.har_kvalitetsmerknad is not None else []
        self.har_kvalitetsmerknad = [v if isinstance(v, KvalitetsmerknadId) else KvalitetsmerknadId(v) for v in self.har_kvalitetsmerknad]

        if not isinstance(self.har_kvalitetsmaaling, list):
            self.har_kvalitetsmaaling = [self.har_kvalitetsmaaling] if self.har_kvalitetsmaaling is not None else []
        self.har_kvalitetsmaaling = [v if isinstance(v, KvalitetsmaalingId) else KvalitetsmaalingId(v) for v in self.har_kvalitetsmaaling]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Datasettserie(KatalogisertRessurs):
    """
    Ei serie av relaterte datasett publisert separat men med felles metadata.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["DatasetSeries"]
    class_class_curie: ClassVar[str] = "dcat:DatasetSeries"
    class_name: ClassVar[str] = "Datasettserie"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Datasettserie

    id: Union[str, DatasettserieId] = None
    beskrivelse: Union[str, list[str]] = None
    kontaktpunkt: Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]] = None
    tema: Union[Union[str, KonseptId], list[Union[str, KonseptId]]] = None
    tittel: Union[str, list[str]] = None
    utgiver: Union[str, AktoerId] = None
    dekningsomraade: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    gjeldende_lovgivning: Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]] = empty_list()
    siste: Optional[Union[str, DatasettId]] = None
    tidsrom: Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]] = empty_list()
    endringsdato: Optional[Union[str, XSDDate]] = None
    frekvens: Optional[Union[str, KonseptId]] = None
    forste: Optional[Union[str, DatasettId]] = None
    utgivelsesdato: Optional[Union[str, XSDDate]] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, DatasettserieId):
            self.id = DatasettserieId(self.id)

        if self._is_empty(self.beskrivelse):
            self.MissingRequiredField("beskrivelse")
        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if self._is_empty(self.kontaktpunkt):
            self.MissingRequiredField("kontaktpunkt")
        if not isinstance(self.kontaktpunkt, list):
            self.kontaktpunkt = [self.kontaktpunkt] if self.kontaktpunkt is not None else []
        self.kontaktpunkt = [v if isinstance(v, KontaktopplysningId) else KontaktopplysningId(v) for v in self.kontaktpunkt]

        if self._is_empty(self.tema):
            self.MissingRequiredField("tema")
        if not isinstance(self.tema, list):
            self.tema = [self.tema] if self.tema is not None else []
        self.tema = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.tema]

        if self._is_empty(self.tittel):
            self.MissingRequiredField("tittel")
        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if self._is_empty(self.utgiver):
            self.MissingRequiredField("utgiver")
        if not isinstance(self.utgiver, AktoerId):
            self.utgiver = AktoerId(self.utgiver)

        if not isinstance(self.dekningsomraade, list):
            self.dekningsomraade = [self.dekningsomraade] if self.dekningsomraade is not None else []
        self.dekningsomraade = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.dekningsomraade]

        if not isinstance(self.gjeldende_lovgivning, list):
            self.gjeldende_lovgivning = [self.gjeldende_lovgivning] if self.gjeldende_lovgivning is not None else []
        self.gjeldende_lovgivning = [v if isinstance(v, RegulativRessursId) else RegulativRessursId(v) for v in self.gjeldende_lovgivning]

        if self.siste is not None and not isinstance(self.siste, DatasettId):
            self.siste = DatasettId(self.siste)

        if not isinstance(self.tidsrom, list):
            self.tidsrom = [self.tidsrom] if self.tidsrom is not None else []
        self.tidsrom = [v if isinstance(v, TidsromId) else TidsromId(v) for v in self.tidsrom]

        if self.endringsdato is not None and not isinstance(self.endringsdato, XSDDate):
            self.endringsdato = XSDDate(self.endringsdato)

        if self.frekvens is not None and not isinstance(self.frekvens, KonseptId):
            self.frekvens = KonseptId(self.frekvens)

        if self.forste is not None and not isinstance(self.forste, DatasettId):
            self.forste = DatasettId(self.forste)

        if self.utgivelsesdato is not None and not isinstance(self.utgivelsesdato, XSDDate):
            self.utgivelsesdato = XSDDate(self.utgivelsesdato)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Datatjeneste(KatalogisertRessurs):
    """
    Ei samling operasjonar tilgjengeleg via eit API-grensesnitt.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["DataService"]
    class_class_curie: ClassVar[str] = "dcat:DataService"
    class_name: ClassVar[str] = "Datatjeneste"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Datatjeneste

    id: Union[str, DatatjenesteId] = None
    endepunkts_url: Union[str, URI] = None
    kontaktpunkt: Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]] = None
    tittel: Union[str, list[str]] = None
    utgiver: Union[str, AktoerId] = None
    endepunktsbeskrivelse: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    format: Optional[Union[str, KonseptId]] = None
    gjeldende_lovgivning: Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]] = empty_list()
    i_samsvar_med: Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]] = empty_list()
    nokkelord: Optional[Union[str, list[str]]] = empty_list()
    tema: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    tilgjengeliggjor_datasett: Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]] = empty_list()
    tilgjengelighet: Optional[Union[str, KonseptId]] = None
    beskrivelse: Optional[Union[str, list[str]]] = empty_list()
    dokumentasjon: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    har_gebyr: Optional[Union[Union[str, GebyrId], list[Union[str, GebyrId]]]] = empty_list()
    identifikator_literal: Optional[str] = None
    landingsside: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    lisens: Optional[Union[str, LisensdokumentId]] = None
    rettigheter: Optional[Union[str, RettighetserklaringId]] = None
    status: Optional[Union[str, KonseptId]] = None
    tilgangsrettigheter: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    versjon: Optional[str] = None
    versjonsmerknad: Optional[Union[str, list[str]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, DatatjenesteId):
            self.id = DatatjenesteId(self.id)

        if self._is_empty(self.endepunkts_url):
            self.MissingRequiredField("endepunkts_url")
        if not isinstance(self.endepunkts_url, URI):
            self.endepunkts_url = URI(self.endepunkts_url)

        if self._is_empty(self.kontaktpunkt):
            self.MissingRequiredField("kontaktpunkt")
        if not isinstance(self.kontaktpunkt, list):
            self.kontaktpunkt = [self.kontaktpunkt] if self.kontaktpunkt is not None else []
        self.kontaktpunkt = [v if isinstance(v, KontaktopplysningId) else KontaktopplysningId(v) for v in self.kontaktpunkt]

        if self._is_empty(self.tittel):
            self.MissingRequiredField("tittel")
        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if self._is_empty(self.utgiver):
            self.MissingRequiredField("utgiver")
        if not isinstance(self.utgiver, AktoerId):
            self.utgiver = AktoerId(self.utgiver)

        if not isinstance(self.endepunktsbeskrivelse, list):
            self.endepunktsbeskrivelse = [self.endepunktsbeskrivelse] if self.endepunktsbeskrivelse is not None else []
        self.endepunktsbeskrivelse = [v if isinstance(v, URI) else URI(v) for v in self.endepunktsbeskrivelse]

        if self.format is not None and not isinstance(self.format, KonseptId):
            self.format = KonseptId(self.format)

        if not isinstance(self.gjeldende_lovgivning, list):
            self.gjeldende_lovgivning = [self.gjeldende_lovgivning] if self.gjeldende_lovgivning is not None else []
        self.gjeldende_lovgivning = [v if isinstance(v, RegulativRessursId) else RegulativRessursId(v) for v in self.gjeldende_lovgivning]

        if not isinstance(self.i_samsvar_med, list):
            self.i_samsvar_med = [self.i_samsvar_med] if self.i_samsvar_med is not None else []
        self.i_samsvar_med = [v if isinstance(v, StandardId) else StandardId(v) for v in self.i_samsvar_med]

        if not isinstance(self.nokkelord, list):
            self.nokkelord = [self.nokkelord] if self.nokkelord is not None else []
        self.nokkelord = [v if isinstance(v, str) else str(v) for v in self.nokkelord]

        if not isinstance(self.tema, list):
            self.tema = [self.tema] if self.tema is not None else []
        self.tema = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.tema]

        if not isinstance(self.tilgjengeliggjor_datasett, list):
            self.tilgjengeliggjor_datasett = [self.tilgjengeliggjor_datasett] if self.tilgjengeliggjor_datasett is not None else []
        self.tilgjengeliggjor_datasett = [v if isinstance(v, DatasettId) else DatasettId(v) for v in self.tilgjengeliggjor_datasett]

        if self.tilgjengelighet is not None and not isinstance(self.tilgjengelighet, KonseptId):
            self.tilgjengelighet = KonseptId(self.tilgjengelighet)

        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if not isinstance(self.dokumentasjon, list):
            self.dokumentasjon = [self.dokumentasjon] if self.dokumentasjon is not None else []
        self.dokumentasjon = [v if isinstance(v, URI) else URI(v) for v in self.dokumentasjon]

        if not isinstance(self.har_gebyr, list):
            self.har_gebyr = [self.har_gebyr] if self.har_gebyr is not None else []
        self.har_gebyr = [v if isinstance(v, GebyrId) else GebyrId(v) for v in self.har_gebyr]

        if self.identifikator_literal is not None and not isinstance(self.identifikator_literal, str):
            self.identifikator_literal = str(self.identifikator_literal)

        if not isinstance(self.landingsside, list):
            self.landingsside = [self.landingsside] if self.landingsside is not None else []
        self.landingsside = [v if isinstance(v, URI) else URI(v) for v in self.landingsside]

        if self.lisens is not None and not isinstance(self.lisens, LisensdokumentId):
            self.lisens = LisensdokumentId(self.lisens)

        if self.rettigheter is not None and not isinstance(self.rettigheter, RettighetserklaringId):
            self.rettigheter = RettighetserklaringId(self.rettigheter)

        if self.status is not None and not isinstance(self.status, KonseptId):
            self.status = KonseptId(self.status)

        if not isinstance(self.tilgangsrettigheter, list):
            self.tilgangsrettigheter = [self.tilgangsrettigheter] if self.tilgangsrettigheter is not None else []
        self.tilgangsrettigheter = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.tilgangsrettigheter]

        if self.versjon is not None and not isinstance(self.versjon, str):
            self.versjon = str(self.versjon)

        if not isinstance(self.versjonsmerknad, list):
            self.versjonsmerknad = [self.versjonsmerknad] if self.versjonsmerknad is not None else []
        self.versjonsmerknad = [v if isinstance(v, str) else str(v) for v in self.versjonsmerknad]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Katalogpost(YAMLRoot):
    """
    Ein katalogpost som beskriv ein ressurs i katalogen.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["CatalogRecord"]
    class_class_curie: ClassVar[str] = "dcat:CatalogRecord"
    class_name: ClassVar[str] = "Katalogpost"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Katalogpost

    id: Union[str, KatalogpostId] = None
    endringsdato: Union[str, XSDDate] = None
    primaertema: Union[str, KatalogisertRessursId] = None
    i_samsvar_med: Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]] = empty_list()
    status: Optional[Union[str, KonseptId]] = None
    utgivelsesdato: Optional[Union[str, XSDDate]] = None
    beskrivelse: Optional[Union[str, list[str]]] = empty_list()
    kilde_post: Optional[Union[str, URI]] = None
    spraak: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    tittel: Optional[Union[str, list[str]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KatalogpostId):
            self.id = KatalogpostId(self.id)

        if self._is_empty(self.endringsdato):
            self.MissingRequiredField("endringsdato")
        if not isinstance(self.endringsdato, XSDDate):
            self.endringsdato = XSDDate(self.endringsdato)

        if self._is_empty(self.primaertema):
            self.MissingRequiredField("primaertema")
        if not isinstance(self.primaertema, KatalogisertRessursId):
            self.primaertema = KatalogisertRessursId(self.primaertema)

        if not isinstance(self.i_samsvar_med, list):
            self.i_samsvar_med = [self.i_samsvar_med] if self.i_samsvar_med is not None else []
        self.i_samsvar_med = [v if isinstance(v, StandardId) else StandardId(v) for v in self.i_samsvar_med]

        if self.status is not None and not isinstance(self.status, KonseptId):
            self.status = KonseptId(self.status)

        if self.utgivelsesdato is not None and not isinstance(self.utgivelsesdato, XSDDate):
            self.utgivelsesdato = XSDDate(self.utgivelsesdato)

        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if self.kilde_post is not None and not isinstance(self.kilde_post, URI):
            self.kilde_post = URI(self.kilde_post)

        if not isinstance(self.spraak, list):
            self.spraak = [self.spraak] if self.spraak is not None else []
        self.spraak = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.spraak]

        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Katalog(KatalogisertRessurs):
    """
    Ei kuratert samling av metadata om datasett, datatenestar og/eller andre katalogar.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCAT["Catalog"]
    class_class_curie: ClassVar[str] = "dcat:Catalog"
    class_name: ClassVar[str] = "Katalog"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Katalog

    id: Union[str, KatalogId] = None
    beskrivelse: Union[str, list[str]] = None
    kontaktpunkt: Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]] = None
    tittel: Union[str, list[str]] = None
    utgiver: Union[str, AktoerId] = None
    datasett: Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]] = empty_list()
    datatjeneste: Optional[Union[Union[str, DatatjenesteId], list[Union[str, DatatjenesteId]]]] = empty_list()
    dekningsomraade: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    endringsdato: Optional[Union[str, XSDDate]] = None
    heimeside: Optional[Union[Union[str, URI], list[Union[str, URI]]]] = empty_list()
    lisens: Optional[Union[str, LisensdokumentId]] = None
    spraak: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()
    temaer: Optional[Union[Union[str, BegrepssamlingId], list[Union[str, BegrepssamlingId]]]] = empty_list()
    utgivelsesdato: Optional[Union[str, XSDDate]] = None
    gjeldende_lovgivning: Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]] = empty_list()
    har_del: Optional[Union[Union[str, KatalogId], list[Union[str, KatalogId]]]] = empty_list()
    identifikator_literal: Optional[str] = None
    underkatalog: Optional[Union[Union[str, KatalogId], list[Union[str, KatalogId]]]] = empty_list()
    katalogpost: Optional[Union[Union[str, KatalogpostId], list[Union[str, KatalogpostId]]]] = empty_list()
    produsent: Optional[Union[str, AktoerId]] = None
    rettigheter: Optional[Union[str, RettighetserklaringId]] = None
    tidsrom: Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KatalogId):
            self.id = KatalogId(self.id)

        if self._is_empty(self.beskrivelse):
            self.MissingRequiredField("beskrivelse")
        if not isinstance(self.beskrivelse, list):
            self.beskrivelse = [self.beskrivelse] if self.beskrivelse is not None else []
        self.beskrivelse = [v if isinstance(v, str) else str(v) for v in self.beskrivelse]

        if self._is_empty(self.kontaktpunkt):
            self.MissingRequiredField("kontaktpunkt")
        if not isinstance(self.kontaktpunkt, list):
            self.kontaktpunkt = [self.kontaktpunkt] if self.kontaktpunkt is not None else []
        self.kontaktpunkt = [v if isinstance(v, KontaktopplysningId) else KontaktopplysningId(v) for v in self.kontaktpunkt]

        if self._is_empty(self.tittel):
            self.MissingRequiredField("tittel")
        if not isinstance(self.tittel, list):
            self.tittel = [self.tittel] if self.tittel is not None else []
        self.tittel = [v if isinstance(v, str) else str(v) for v in self.tittel]

        if self._is_empty(self.utgiver):
            self.MissingRequiredField("utgiver")
        if not isinstance(self.utgiver, AktoerId):
            self.utgiver = AktoerId(self.utgiver)

        if not isinstance(self.datasett, list):
            self.datasett = [self.datasett] if self.datasett is not None else []
        self.datasett = [v if isinstance(v, DatasettId) else DatasettId(v) for v in self.datasett]

        if not isinstance(self.datatjeneste, list):
            self.datatjeneste = [self.datatjeneste] if self.datatjeneste is not None else []
        self.datatjeneste = [v if isinstance(v, DatatjenesteId) else DatatjenesteId(v) for v in self.datatjeneste]

        if not isinstance(self.dekningsomraade, list):
            self.dekningsomraade = [self.dekningsomraade] if self.dekningsomraade is not None else []
        self.dekningsomraade = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.dekningsomraade]

        if self.endringsdato is not None and not isinstance(self.endringsdato, XSDDate):
            self.endringsdato = XSDDate(self.endringsdato)

        if not isinstance(self.heimeside, list):
            self.heimeside = [self.heimeside] if self.heimeside is not None else []
        self.heimeside = [v if isinstance(v, URI) else URI(v) for v in self.heimeside]

        if self.lisens is not None and not isinstance(self.lisens, LisensdokumentId):
            self.lisens = LisensdokumentId(self.lisens)

        if not isinstance(self.spraak, list):
            self.spraak = [self.spraak] if self.spraak is not None else []
        self.spraak = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.spraak]

        if not isinstance(self.temaer, list):
            self.temaer = [self.temaer] if self.temaer is not None else []
        self.temaer = [v if isinstance(v, BegrepssamlingId) else BegrepssamlingId(v) for v in self.temaer]

        if self.utgivelsesdato is not None and not isinstance(self.utgivelsesdato, XSDDate):
            self.utgivelsesdato = XSDDate(self.utgivelsesdato)

        if not isinstance(self.gjeldende_lovgivning, list):
            self.gjeldende_lovgivning = [self.gjeldende_lovgivning] if self.gjeldende_lovgivning is not None else []
        self.gjeldende_lovgivning = [v if isinstance(v, RegulativRessursId) else RegulativRessursId(v) for v in self.gjeldende_lovgivning]

        if not isinstance(self.har_del, list):
            self.har_del = [self.har_del] if self.har_del is not None else []
        self.har_del = [v if isinstance(v, KatalogId) else KatalogId(v) for v in self.har_del]

        if self.identifikator_literal is not None and not isinstance(self.identifikator_literal, str):
            self.identifikator_literal = str(self.identifikator_literal)

        if not isinstance(self.underkatalog, list):
            self.underkatalog = [self.underkatalog] if self.underkatalog is not None else []
        self.underkatalog = [v if isinstance(v, KatalogId) else KatalogId(v) for v in self.underkatalog]

        if not isinstance(self.katalogpost, list):
            self.katalogpost = [self.katalogpost] if self.katalogpost is not None else []
        self.katalogpost = [v if isinstance(v, KatalogpostId) else KatalogpostId(v) for v in self.katalogpost]

        if self.produsent is not None and not isinstance(self.produsent, AktoerId):
            self.produsent = AktoerId(self.produsent)

        if self.rettigheter is not None and not isinstance(self.rettigheter, RettighetserklaringId):
            self.rettigheter = RettighetserklaringId(self.rettigheter)

        if not isinstance(self.tidsrom, list):
            self.tidsrom = [self.tidsrom] if self.tidsrom is not None else []
        self.tidsrom = [v if isinstance(v, TidsromId) else TidsromId(v) for v in self.tidsrom]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Lisensdokument(YAMLRoot):
    """
    Eit lisensdokument (dct:LicenseDocument).
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCT["LicenseDocument"]
    class_class_curie: ClassVar[str] = "dct:LicenseDocument"
    class_name: ClassVar[str] = "Lisensdokument"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Lisensdokument

    id: Union[str, LisensdokumentId] = None
    type_concept: Optional[Union[str, KonseptId]] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, LisensdokumentId):
            self.id = LisensdokumentId(self.id)

        if self.type_concept is not None and not isinstance(self.type_concept, KonseptId):
            self.type_concept = KonseptId(self.type_concept)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Mediatype(YAMLRoot):
    """
    Ein medietype eller filformat (dct:MediaTypeOrExtent).
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DCT["MediaTypeOrExtent"]
    class_class_curie: ClassVar[str] = "dct:MediaTypeOrExtent"
    class_name: ClassVar[str] = "Mediatype"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Mediatype

    id: Union[str, MediatypeId] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, MediatypeId):
            self.id = MediatypeId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Konsept(YAMLRoot):
    """
    Referanse til eit SKOS-omgrep frå eit kontrollert vokabular.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = SKOS["Concept"]
    class_class_curie: ClassVar[str] = "skos:Concept"
    class_name: ClassVar[str] = "Konsept"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Konsept

    id: Union[str, KonseptId] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KonseptId):
            self.id = KonseptId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Begrepssamling(YAMLRoot):
    """
    Ei SKOS-omgrepssamling (temavokabular).
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = SKOS["ConceptScheme"]
    class_class_curie: ClassVar[str] = "skos:ConceptScheme"
    class_name: ClassVar[str] = "Begrepssamling"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Begrepssamling

    id: Union[str, BegrepssamlingId] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, BegrepssamlingId):
            self.id = BegrepssamlingId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kvalitetsdimensjon(YAMLRoot):
    """
    Ein kvalitetsdimensjon som grupperer relaterte kvalitetsmål.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQV["Dimension"]
    class_class_curie: ClassVar[str] = "dqv:Dimension"
    class_name: ClassVar[str] = "Kvalitetsdimensjon"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kvalitetsdimensjon

    id: Union[str, KvalitetsdimensjonId] = None
    har_anbefalt_term: Optional[Union[str, list[str]]] = empty_list()
    har_kvalitetsdefinisjon: Optional[Union[str, list[str]]] = empty_list()
    gjelder_standard: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KvalitetsdimensjonId):
            self.id = KvalitetsdimensjonId(self.id)

        if not isinstance(self.har_anbefalt_term, list):
            self.har_anbefalt_term = [self.har_anbefalt_term] if self.har_anbefalt_term is not None else []
        self.har_anbefalt_term = [v if isinstance(v, str) else str(v) for v in self.har_anbefalt_term]

        if not isinstance(self.har_kvalitetsdefinisjon, list):
            self.har_kvalitetsdefinisjon = [self.har_kvalitetsdefinisjon] if self.har_kvalitetsdefinisjon is not None else []
        self.har_kvalitetsdefinisjon = [v if isinstance(v, str) else str(v) for v in self.har_kvalitetsdefinisjon]

        if not isinstance(self.gjelder_standard, list):
            self.gjelder_standard = [self.gjelder_standard] if self.gjelder_standard is not None else []
        self.gjelder_standard = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.gjelder_standard]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kvalitetsdeldimensjon(Kvalitetsdimensjon):
    """
    Ein deldimensjon av ein kvalitetsdimensjon.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQVNO["SubDimension"]
    class_class_curie: ClassVar[str] = "dqvno:SubDimension"
    class_name: ClassVar[str] = "Kvalitetsdeldimensjon"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kvalitetsdeldimensjon

    id: Union[str, KvalitetsdeldimensjonId] = None
    er_deldimensjon_av: Union[str, KvalitetsdimensjonId] = None
    har_anbefalt_term: Optional[Union[str, list[str]]] = empty_list()
    har_kvalitetsdefinisjon: Optional[Union[str, list[str]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KvalitetsdeldimensjonId):
            self.id = KvalitetsdeldimensjonId(self.id)

        if self._is_empty(self.er_deldimensjon_av):
            self.MissingRequiredField("er_deldimensjon_av")
        if not isinstance(self.er_deldimensjon_av, KvalitetsdimensjonId):
            self.er_deldimensjon_av = KvalitetsdimensjonId(self.er_deldimensjon_av)

        if not isinstance(self.har_anbefalt_term, list):
            self.har_anbefalt_term = [self.har_anbefalt_term] if self.har_anbefalt_term is not None else []
        self.har_anbefalt_term = [v if isinstance(v, str) else str(v) for v in self.har_anbefalt_term]

        if not isinstance(self.har_kvalitetsdefinisjon, list):
            self.har_kvalitetsdefinisjon = [self.har_kvalitetsdefinisjon] if self.har_kvalitetsdefinisjon is not None else []
        self.har_kvalitetsdefinisjon = [v if isinstance(v, str) else str(v) for v in self.har_kvalitetsdefinisjon]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kvalitetsmaal(YAMLRoot):
    """
    Eit kvalitetsmål som operasjonaliserer ein kvalitetsdeldimensjon.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQV["Metric"]
    class_class_curie: ClassVar[str] = "dqv:Metric"
    class_name: ClassVar[str] = "Kvalitetsmaal"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kvalitetsmaal

    id: Union[str, KvalitetsmaalId] = None
    er_i_kvalitetsdeldimensjon: Union[str, KvalitetsdeldimensjonId] = None
    har_forventet_datatype: Optional[Union[str, URIorCURIE]] = None
    har_anbefalt_term: Optional[Union[str, list[str]]] = empty_list()
    har_kvalitetsdefinisjon: Optional[Union[str, list[str]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KvalitetsmaalId):
            self.id = KvalitetsmaalId(self.id)

        if self._is_empty(self.er_i_kvalitetsdeldimensjon):
            self.MissingRequiredField("er_i_kvalitetsdeldimensjon")
        if not isinstance(self.er_i_kvalitetsdeldimensjon, KvalitetsdeldimensjonId):
            self.er_i_kvalitetsdeldimensjon = KvalitetsdeldimensjonId(self.er_i_kvalitetsdeldimensjon)

        if self.har_forventet_datatype is not None and not isinstance(self.har_forventet_datatype, URIorCURIE):
            self.har_forventet_datatype = URIorCURIE(self.har_forventet_datatype)

        if not isinstance(self.har_anbefalt_term, list):
            self.har_anbefalt_term = [self.har_anbefalt_term] if self.har_anbefalt_term is not None else []
        self.har_anbefalt_term = [v if isinstance(v, str) else str(v) for v in self.har_anbefalt_term]

        if not isinstance(self.har_kvalitetsdefinisjon, list):
            self.har_kvalitetsdefinisjon = [self.har_kvalitetsdefinisjon] if self.har_kvalitetsdefinisjon is not None else []
        self.har_kvalitetsdefinisjon = [v if isinstance(v, str) else str(v) for v in self.har_kvalitetsdefinisjon]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kvalitetsmerknad(YAMLRoot):
    """
    Ein merknad om kvaliteten til eit datasett.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQV["QualityAnnotation"]
    class_class_curie: ClassVar[str] = "dqv:QualityAnnotation"
    class_name: ClassVar[str] = "Kvalitetsmerknad"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kvalitetsmerknad

    id: Union[str, KvalitetsmerknadId] = None
    er_motivert_av: Union[str, "DqvMotivasjon"] = None
    er_i_kvalitetsdimensjon: Optional[Union[Union[str, KvalitetsdimensjonId], list[Union[str, KvalitetsdimensjonId]]]] = empty_list()
    har_tekstdel: Optional[Union[Union[str, TekstdelId], list[Union[str, TekstdelId]]]] = empty_list()
    har_merknad: Optional[Union[str, list[str]]] = empty_list()
    har_maal: Optional[Union[str, URIorCURIE]] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KvalitetsmerknadId):
            self.id = KvalitetsmerknadId(self.id)

        if self._is_empty(self.er_motivert_av):
            self.MissingRequiredField("er_motivert_av")
        if not isinstance(self.er_motivert_av, DqvMotivasjon):
            self.er_motivert_av = DqvMotivasjon(self.er_motivert_av)

        if not isinstance(self.er_i_kvalitetsdimensjon, list):
            self.er_i_kvalitetsdimensjon = [self.er_i_kvalitetsdimensjon] if self.er_i_kvalitetsdimensjon is not None else []
        self.er_i_kvalitetsdimensjon = [v if isinstance(v, KvalitetsdimensjonId) else KvalitetsdimensjonId(v) for v in self.er_i_kvalitetsdimensjon]

        if not isinstance(self.har_tekstdel, list):
            self.har_tekstdel = [self.har_tekstdel] if self.har_tekstdel is not None else []
        self.har_tekstdel = [v if isinstance(v, TekstdelId) else TekstdelId(v) for v in self.har_tekstdel]

        if not isinstance(self.har_merknad, list):
            self.har_merknad = [self.har_merknad] if self.har_merknad is not None else []
        self.har_merknad = [v if isinstance(v, str) else str(v) for v in self.har_merknad]

        if self.har_maal is not None and not isinstance(self.har_maal, URIorCURIE):
            self.har_maal = URIorCURIE(self.har_maal)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Brukartilbakemelding(Kvalitetsmerknad):
    """
    Tilbakemelding frå ein brukar om kvaliteten til eit datasett.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQV["UserQualityFeedback"]
    class_class_curie: ClassVar[str] = "dqv:UserQualityFeedback"
    class_name: ClassVar[str] = "Brukartilbakemelding"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Brukartilbakemelding

    id: Union[str, BrukartilbakemeldingId] = None
    er_motivert_av: Union[str, "DqvMotivasjon"] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, BrukartilbakemeldingId):
            self.id = BrukartilbakemeldingId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kvalitetssertifikat(Kvalitetsmerknad):
    """
    Eit sertifikat som stadfester kvaliteten til eit datasett.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQV["QualityCertificate"]
    class_class_curie: ClassVar[str] = "dqv:QualityCertificate"
    class_name: ClassVar[str] = "Kvalitetssertifikat"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kvalitetssertifikat

    id: Union[str, KvalitetssertifikatId] = None
    er_motivert_av: Union[str, "DqvMotivasjon"] = None

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KvalitetssertifikatId):
            self.id = KvalitetssertifikatId(self.id)

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Kvalitetsmaaling(YAMLRoot):
    """
    Ei konkret måling av eit kvalitetsmål for eit datasett.
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = DQV["QualityMeasurement"]
    class_class_curie: ClassVar[str] = "dqv:QualityMeasurement"
    class_name: ClassVar[str] = "Kvalitetsmaaling"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Kvalitetsmaaling

    id: Union[str, KvalitetsmaalingId] = None
    er_kvalitetsmaaling_av: Union[str, KvalitetsmaalId] = None
    har_boolean_verdi: Optional[Union[bool, Bool]] = None
    har_numerisk_verdi: Optional[float] = None
    har_tekst_verdi: Optional[str] = None
    har_merknad: Optional[Union[str, list[str]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, KvalitetsmaalingId):
            self.id = KvalitetsmaalingId(self.id)

        if self._is_empty(self.er_kvalitetsmaaling_av):
            self.MissingRequiredField("er_kvalitetsmaaling_av")
        if not isinstance(self.er_kvalitetsmaaling_av, KvalitetsmaalId):
            self.er_kvalitetsmaaling_av = KvalitetsmaalId(self.er_kvalitetsmaaling_av)

        if self.har_boolean_verdi is not None and not isinstance(self.har_boolean_verdi, Bool):
            self.har_boolean_verdi = Bool(self.har_boolean_verdi)

        if self.har_numerisk_verdi is not None and not isinstance(self.har_numerisk_verdi, float):
            self.har_numerisk_verdi = float(self.har_numerisk_verdi)

        if self.har_tekst_verdi is not None and not isinstance(self.har_tekst_verdi, str):
            self.har_tekst_verdi = str(self.har_tekst_verdi)

        if not isinstance(self.har_merknad, list):
            self.har_merknad = [self.har_merknad] if self.har_merknad is not None else []
        self.har_merknad = [v if isinstance(v, str) else str(v) for v in self.har_merknad]

        super().__post_init__(**kwargs)


@dataclass(repr=False)
class Tekstdel(YAMLRoot):
    """
    Ein tekstleg del av ein kvalitetsmerknad (Web Annotation).
    """
    _inherited_slots: ClassVar[list[str]] = []

    class_class_uri: ClassVar[URIRef] = OA["TextualBody"]
    class_class_curie: ClassVar[str] = "oa:TextualBody"
    class_name: ClassVar[str] = "Tekstdel"
    class_model_uri: ClassVar[URIRef] = LUNCHREGISTERET.Tekstdel

    id: Union[str, TekstdelId] = None
    har_verdi_tekstdel: str = None
    format: Optional[Union[str, KonseptId]] = None
    spraak: Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]] = empty_list()

    def __post_init__(self, *_: str, **kwargs: Any):
        if self._is_empty(self.id):
            self.MissingRequiredField("id")
        if not isinstance(self.id, TekstdelId):
            self.id = TekstdelId(self.id)

        if self._is_empty(self.har_verdi_tekstdel):
            self.MissingRequiredField("har_verdi_tekstdel")
        if not isinstance(self.har_verdi_tekstdel, str):
            self.har_verdi_tekstdel = str(self.har_verdi_tekstdel)

        if self.format is not None and not isinstance(self.format, KonseptId):
            self.format = KonseptId(self.format)

        if not isinstance(self.spraak, list):
            self.spraak = [self.spraak] if self.spraak is not None else []
        self.spraak = [v if isinstance(v, KonseptId) else KonseptId(v) for v in self.spraak]

        super().__post_init__(**kwargs)


# Enumerations
class EULicence(EnumDefinitionImpl):
    """
    EU Licence-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/licence/
    """
    CC0 = PermissibleValue(
        text="CC0",
        description="Creative Commons Zero 1.0 Universal",
        meaning=None)
    CC_BY_4_0 = PermissibleValue(
        text="CC_BY_4_0",
        description="Creative Commons Attribution 4.0 International",
        meaning=None)
    NLOD_2_0 = PermissibleValue(
        text="NLOD_2_0",
        description="""Norwegian Licence for Open Government Data 2.0. Norsk skildring: https://data.norge.no/nlod/no/2.0""",
        meaning=None)
    CC_BYSA_4_0 = PermissibleValue(
        text="CC_BYSA_4_0",
        description="Creative Commons Attribution-ShareAlike 4.0 International",
        meaning=None)
    MIT = PermissibleValue(
        text="MIT",
        description="MIT License",
        meaning=None)
    APACHE_2_0 = PermissibleValue(
        text="APACHE_2_0",
        description="Apache License 2.0",
        meaning=None)
    GPL_3_0 = PermissibleValue(
        text="GPL_3_0",
        description="GNU General Public License 3.0",
        meaning=None)
    EUPL_1_2 = PermissibleValue(
        text="EUPL_1_2",
        description="European Union Public Licence 1.2",
        meaning=None)

    _defn = EnumDefinition(
        name="EULicence",
        description="""EU Licence-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/licence/""",
    )

class EUFileType(EnumDefinitionImpl):
    """
    EU File type-vokabularet frå Publications Office. Kjelde:
    http://publications.europa.eu/resource/authority/file-type/
    """
    RDF_TURTLE = PermissibleValue(
        text="RDF_TURTLE",
        description="RDF Turtle",
        meaning=None)
    RDF_XML = PermissibleValue(
        text="RDF_XML",
        description="RDF XML",
        meaning=None)
    JSON_LD = PermissibleValue(
        text="JSON_LD",
        description="JSON-LD",
        meaning=None)
    JSON = PermissibleValue(
        text="JSON",
        description="JSON",
        meaning=None)
    XML = PermissibleValue(
        text="XML",
        description="XML",
        meaning=None)
    HTML = PermissibleValue(
        text="HTML",
        description="HTML",
        meaning=None)
    PDF = PermissibleValue(
        text="PDF",
        description="PDF",
        meaning=None)
    CSV = PermissibleValue(
        text="CSV",
        description="CSV",
        meaning=None)
    YAML = PermissibleValue(
        text="YAML",
        description="YAML",
        meaning=None)

    _defn = EnumDefinition(
        name="EUFileType",
        description="""EU File type-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/file-type/""",
    )

class EULanguage(EnumDefinitionImpl):
    """
    EU Language-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/language/
    """
    NOB = PermissibleValue(
        text="NOB",
        description="Norsk bokmål",
        meaning=None)
    NNO = PermissibleValue(
        text="NNO",
        description="Nynorsk",
        meaning=None)
    NOR = PermissibleValue(
        text="NOR",
        description="Norsk (uspesifisert)",
        meaning=None)
    SME = PermissibleValue(
        text="SME",
        description="Nordsamisk",
        meaning=None)
    SMA = PermissibleValue(
        text="SMA",
        description="Sørsamisk",
        meaning=None)
    SMJ = PermissibleValue(
        text="SMJ",
        description="Lulesamisk",
        meaning=None)
    ENG = PermissibleValue(
        text="ENG",
        description="Engelsk",
        meaning=None)

    _defn = EnumDefinition(
        name="EULanguage",
        description="""EU Language-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/language/""",
    )

class ADMSStatus(EnumDefinitionImpl):
    """
    ADMS Status-vokabularet. Kjelde: http://purl.org/adms/status/
    """
    COMPLETED = PermissibleValue(
        text="COMPLETED",
        description="Ferdigstilt (Completed)",
        meaning=None)
    DEPRECATED = PermissibleValue(
        text="DEPRECATED",
        description="Foreldet (Deprecated)",
        meaning=None)
    UNDER_DEVELOPMENT = PermissibleValue(
        text="UNDER_DEVELOPMENT",
        description="Under utvikling (Under development)",
        meaning=None)
    WITHDRAWN = PermissibleValue(
        text="WITHDRAWN",
        description="Trukket tilbake (Withdrawn)",
        meaning=None)

    _defn = EnumDefinition(
        name="ADMSStatus",
        description="ADMS Status-vokabularet. Kjelde: http://purl.org/adms/status/",
    )

class EUAccessRight(EnumDefinitionImpl):
    """
    EU Access Right-vokabularet frå Publications Office. Kjelde:
    http://publications.europa.eu/resource/authority/access-right/
    """
    PUBLIC = PermissibleValue(
        text="PUBLIC",
        description="Offentleg tilgjengeleg - ingen tilgangsrestriksjonar",
        meaning=None)
    RESTRICTED = PermissibleValue(
        text="RESTRICTED",
        description="Avgrensa tilgang - krev særskilde vilkår eller godkjenning",
        meaning=None)
    NON_PUBLIC = PermissibleValue(
        text="NON_PUBLIC",
        description="Ikkje offentleg - konfidensielt eller lukka",
        meaning=None)

    _defn = EnumDefinition(
        name="EUAccessRight",
        description="""EU Access Right-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/access-right/""",
    )

class ADMSPublisherType(EnumDefinitionImpl):
    """
    ADMS Publisher Type-vokabularet. Kjelde: http://purl.org/adms/publishertype/
    """
    NATIONAL_AUTHORITY = PermissibleValue(
        text="NATIONAL_AUTHORITY",
        description="Nasjonal styremakt",
        meaning=None)
    REGIONAL_AUTHORITY = PermissibleValue(
        text="REGIONAL_AUTHORITY",
        description="Regional styremakt",
        meaning=None)
    LOCAL_AUTHORITY = PermissibleValue(
        text="LOCAL_AUTHORITY",
        description="Lokal styremakt",
        meaning=None)
    SUPRANATIONAL_AUTHORITY = PermissibleValue(
        text="SUPRANATIONAL_AUTHORITY",
        description="Overnasjonal styremakt",
        meaning=None)
    ACADEMIA_SCIENTIFIC_ORGANISATION = PermissibleValue(
        text="ACADEMIA_SCIENTIFIC_ORGANISATION",
        description="Akademisk/vitskapeleg organisasjon",
        meaning=None)
    PRIVATE_INDIVIDUAL = PermissibleValue(
        text="PRIVATE_INDIVIDUAL",
        description="Privatperson",
        meaning=None)
    INDUSTRY_CONSORTIUM = PermissibleValue(
        text="INDUSTRY_CONSORTIUM",
        description="Industrikonsortium",
        meaning=None)
    NON_GOVERNMENTAL_ORGANISATION = PermissibleValue(
        text="NON_GOVERNMENTAL_ORGANISATION",
        description="Ikkje-offentleg organisasjon",
        meaning=None)
    NON_PROFIT_ORGANISATION = PermissibleValue(
        text="NON_PROFIT_ORGANISATION",
        description="Ideell organisasjon",
        meaning=None)
    COMPANY = PermissibleValue(
        text="COMPANY",
        description="Selskap",
        meaning=None)
    STANDARDISATION_BODY = PermissibleValue(
        text="STANDARDISATION_BODY",
        description="Standardiseringsorgan",
        meaning=None)

    _defn = EnumDefinition(
        name="ADMSPublisherType",
        description="ADMS Publisher Type-vokabularet. Kjelde: http://purl.org/adms/publishertype/",
    )

class DCTFrequency(EnumDefinitionImpl):
    """
    Dublin Core Frequency-vokabularet frå EU Publications Office. Kjelde:
    http://publications.europa.eu/resource/authority/frequency/
    """
    CONTINUOUS = PermissibleValue(
        text="CONTINUOUS",
        description="Kontinuerleg",
        meaning=None)
    DAILY = PermissibleValue(
        text="DAILY",
        description="Dagleg",
        meaning=None)
    DAILY_2 = PermissibleValue(
        text="DAILY_2",
        description="To gonger dagleg",
        meaning=None)
    BIWEEKLY = PermissibleValue(
        text="BIWEEKLY",
        description="Annakvar veke",
        meaning=None)
    WEEKLY = PermissibleValue(
        text="WEEKLY",
        description="Vekentleg",
        meaning=None)
    WEEKLY_2 = PermissibleValue(
        text="WEEKLY_2",
        description="To gonger per veke",
        meaning=None)
    WEEKLY_3 = PermissibleValue(
        text="WEEKLY_3",
        description="Tre gonger per veke",
        meaning=None)
    BIMONTHLY = PermissibleValue(
        text="BIMONTHLY",
        description="Annakvar månad",
        meaning=None)
    MONTHLY = PermissibleValue(
        text="MONTHLY",
        description="Månadleg",
        meaning=None)
    MONTHLY_2 = PermissibleValue(
        text="MONTHLY_2",
        description="To gonger per månad",
        meaning=None)
    MONTHLY_3 = PermissibleValue(
        text="MONTHLY_3",
        description="Tre gonger per månad",
        meaning=None)
    QUARTERLY = PermissibleValue(
        text="QUARTERLY",
        description="Kvartalsvis",
        meaning=None)
    ANNUAL = PermissibleValue(
        text="ANNUAL",
        description="Årleg",
        meaning=None)
    ANNUAL_2 = PermissibleValue(
        text="ANNUAL_2",
        description="To gonger årleg",
        meaning=None)
    ANNUAL_3 = PermissibleValue(
        text="ANNUAL_3",
        description="Tre gonger årleg",
        meaning=None)
    BIENNIAL = PermissibleValue(
        text="BIENNIAL",
        description="Annakvar år",
        meaning=None)
    TRIENNIAL = PermissibleValue(
        text="TRIENNIAL",
        description="Kvart tredje år",
        meaning=None)
    IRREG = PermissibleValue(
        text="IRREG",
        description="Uregelmessig",
        meaning=None)
    UNKNOWN = PermissibleValue(
        text="UNKNOWN",
        description="Ukjend",
        meaning=None)
    UPDATE_CONT = PermissibleValue(
        text="UPDATE_CONT",
        description="Kontinuerleg oppdatert",
        meaning=None)
    NEVER = PermissibleValue(
        text="NEVER",
        description="Aldri",
        meaning=None)
    OTHER = PermissibleValue(
        text="OTHER",
        description="Anna",
        meaning=None)

    _defn = EnumDefinition(
        name="DCTFrequency",
        description="""Dublin Core Frequency-vokabularet frå EU Publications Office. Kjelde: http://publications.europa.eu/resource/authority/frequency/""",
    )

class DqvMotivasjon(EnumDefinitionImpl):
    """
    Gyldige motivasjonsverdiar for kvalitetsmerknader per DQV-AP-NO og dqvno-vokabularet.
    """
    assessing = PermissibleValue(
        text="assessing",
        description="Allgemein vurdering av kvalitet.",
        meaning=OA["assessing"])
    classifying = PermissibleValue(
        text="classifying",
        description="Klassifisering av kvalitet.",
        meaning=OA["classifying"])
    availability = PermissibleValue(
        text="availability",
        description="Tilgjengelegheit.",
        meaning=DQVNO["availability"])
    completeness = PermissibleValue(
        text="completeness",
        description="Fullstendigheit.",
        meaning=DQVNO["completeness"])
    currentness = PermissibleValue(
        text="currentness",
        description="Aktualitet.",
        meaning=DQVNO["currentness"])
    validity = PermissibleValue(
        text="validity",
        description="Gyldighet.",
        meaning=DQVNO["validity"])
    accuracy = PermissibleValue(
        text="accuracy",
        description="Nøyaktigheit.",
        meaning=DQVNO["accuracy"])

    _defn = EnumDefinition(
        name="DqvMotivasjon",
        description="Gyldige motivasjonsverdiar for kvalitetsmerknader per DQV-AP-NO og dqvno-vokabularet.",
    )

# Slots
class slots:
    pass

slots.lunchregisteret_kontaktinformasjon = Slot(uri=DCAT.contactPoint, name="lunchregisteret_kontaktinformasjon", curie=DCAT.curie('contactPoint'),
                   model_uri=LUNCHREGISTERET.lunchregisteret_kontaktinformasjon, domain=None, range=Optional[Union[str, URIorCURIE]])

slots.tittel_literal = Slot(uri=DCT.title, name="tittel_literal", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.tittel_literal, domain=None, range=Optional[Union[str, list[str]]])

slots.notasjon = Slot(uri=SKOS.notation, name="notasjon", curie=SKOS.curie('notation'),
                   model_uri=LUNCHREGISTERET.notasjon, domain=None, range=Optional[str])

slots.versjon = Slot(uri=DCAT.version, name="versjon", curie=DCAT.curie('version'),
                   model_uri=LUNCHREGISTERET.versjon, domain=None, range=Optional[str])

slots.navn_aktoer = Slot(uri=FOAF.name, name="navn_aktoer", curie=FOAF.curie('name'),
                   model_uri=LUNCHREGISTERET.navn_aktoer, domain=None, range=Optional[Union[str, list[str]]])

slots.navn_vcard = Slot(uri=VCARD.fn, name="navn_vcard", curie=VCARD.curie('fn'),
                   model_uri=LUNCHREGISTERET.navn_vcard, domain=None, range=Optional[Union[str, list[str]]])

slots.algoritme = Slot(uri=SPDX.algorithm, name="algoritme", curie=SPDX.curie('algorithm'),
                   model_uri=LUNCHREGISTERET.algoritme, domain=None, range=Optional[str])

slots.sjekksumverdi = Slot(uri=SPDX.checksumValue, name="sjekksumverdi", curie=SPDX.curie('checksumValue'),
                   model_uri=LUNCHREGISTERET.sjekksumverdi, domain=None, range=Optional[str])

slots.belop = Slot(uri=CV.hasValue, name="belop", curie=CV.curie('hasValue'),
                   model_uri=LUNCHREGISTERET.belop, domain=None, range=Optional[str])

slots.startdato = Slot(uri=DCAT.startDate, name="startdato", curie=DCAT.curie('startDate'),
                   model_uri=LUNCHREGISTERET.startdato, domain=None, range=Optional[Union[str, XSDDate]])

slots.sluttdato = Slot(uri=DCAT.endDate, name="sluttdato", curie=DCAT.curie('endDate'),
                   model_uri=LUNCHREGISTERET.sluttdato, domain=None, range=Optional[Union[str, XSDDate]])

slots.tidsopplosning = Slot(uri=DCAT.temporalResolution, name="tidsopplosning", curie=DCAT.curie('temporalResolution'),
                   model_uri=LUNCHREGISTERET.tidsopplosning, domain=None, range=Optional[str])

slots.romlig_opplosning = Slot(uri=DCAT.spatialResolutionInMeters, name="romlig_opplosning", curie=DCAT.curie('spatialResolutionInMeters'),
                   model_uri=LUNCHREGISTERET.romlig_opplosning, domain=None, range=Optional[Union[float, list[float]]])

slots.endepunkts_url = Slot(uri=DCAT.endpointURL, name="endepunkts_url", curie=DCAT.curie('endpointURL'),
                   model_uri=LUNCHREGISTERET.endepunkts_url, domain=None, range=Optional[Union[str, URI]])

slots.endepunktsbeskrivelse = Slot(uri=DCAT.endpointDescription, name="endepunktsbeskrivelse", curie=DCAT.curie('endpointDescription'),
                   model_uri=LUNCHREGISTERET.endepunktsbeskrivelse, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.tilgangs_url = Slot(uri=DCAT.accessURL, name="tilgangs_url", curie=DCAT.curie('accessURL'),
                   model_uri=LUNCHREGISTERET.tilgangs_url, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.nedlastningslenke = Slot(uri=DCAT.downloadURL, name="nedlastningslenke", curie=DCAT.curie('downloadURL'),
                   model_uri=LUNCHREGISTERET.nedlastningslenke, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.landingsside = Slot(uri=DCAT.landingPage, name="landingsside", curie=DCAT.curie('landingPage'),
                   model_uri=LUNCHREGISTERET.landingsside, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.har_epost = Slot(uri=VCARD.hasEmail, name="har_epost", curie=VCARD.curie('hasEmail'),
                   model_uri=LUNCHREGISTERET.har_epost, domain=None, range=Optional[str])

slots.har_kontaktside = Slot(uri=VCARD.hasURL, name="har_kontaktside", curie=VCARD.curie('hasURL'),
                   model_uri=LUNCHREGISTERET.har_kontaktside, domain=None, range=Optional[str])

slots.dokumentasjon = Slot(uri=FOAF.page, name="dokumentasjon", curie=FOAF.curie('page'),
                   model_uri=LUNCHREGISTERET.dokumentasjon, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.referanse = Slot(uri=RDFS.seeAlso, name="referanse", curie=RDFS.curie('seeAlso'),
                   model_uri=LUNCHREGISTERET.referanse, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.relatert_ressurs = Slot(uri=DCT.relation, name="relatert_ressurs", curie=DCT.curie('relation'),
                   model_uri=LUNCHREGISTERET.relatert_ressurs, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.er_referert_av = Slot(uri=DCT.isReferencedBy, name="er_referert_av", curie=DCT.curie('isReferencedBy'),
                   model_uri=LUNCHREGISTERET.er_referert_av, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.kilde_post = Slot(uri=DCT.source, name="kilde_post", curie=DCT.curie('source'),
                   model_uri=LUNCHREGISTERET.kilde_post, domain=None, range=Optional[Union[str, URI]])

slots.krediteringsurl = Slot(uri=ODRS.attributionURL, name="krediteringsurl", curie=ODRS.curie('attributionURL'),
                   model_uri=LUNCHREGISTERET.krediteringsurl, domain=None, range=Optional[Union[str, URI]])

slots.filstorrelse = Slot(uri=DCAT.byteSize, name="filstorrelse", curie=DCAT.curie('byteSize'),
                   model_uri=LUNCHREGISTERET.filstorrelse, domain=None, range=Optional[int])

slots.anvendelsesretningslinjer = Slot(uri=ODRS.reuserGuidelines, name="anvendelsesretningslinjer", curie=ODRS.curie('reuserGuidelines'),
                   model_uri=LUNCHREGISTERET.anvendelsesretningslinjer, domain=None, range=Optional[str])

slots.jurisdiksjon = Slot(uri=ODRS.jurisdiction, name="jurisdiksjon", curie=ODRS.curie('jurisdiction'),
                   model_uri=LUNCHREGISTERET.jurisdiksjon, domain=None, range=Optional[str])

slots.krediteringstekst = Slot(uri=ODRS.attributionText, name="krediteringstekst", curie=ODRS.curie('attributionText'),
                   model_uri=LUNCHREGISTERET.krediteringstekst, domain=None, range=Optional[str])

slots.opphavsrettserklaring = Slot(uri=ODRS.copyrightStatement, name="opphavsrettserklaring", curie=ODRS.curie('copyrightStatement'),
                   model_uri=LUNCHREGISTERET.opphavsrettserklaring, domain=None, range=Optional[str])

slots.opphavsrettsinnehaver = Slot(uri=ODRS.copyrightHolder, name="opphavsrettsinnehaver", curie=ODRS.curie('copyrightHolder'),
                   model_uri=LUNCHREGISTERET.opphavsrettsinnehaver, domain=None, range=Optional[str])

slots.opphavsrettsnotis = Slot(uri=ODRS.copyrightNotice, name="opphavsrettsnotis", curie=ODRS.curie('copyrightNotice'),
                   model_uri=LUNCHREGISTERET.opphavsrettsnotis, domain=None, range=Optional[str])

slots.opphavsrettsaar = Slot(uri=ODRS.copyrightYear, name="opphavsrettsaar", curie=ODRS.curie('copyrightYear'),
                   model_uri=LUNCHREGISTERET.opphavsrettsaar, domain=None, range=Optional[str])

slots.utgiver = Slot(uri=DCT.publisher, name="utgiver", curie=DCT.curie('publisher'),
                   model_uri=LUNCHREGISTERET.utgiver, domain=None, range=Optional[Union[str, AktoerId]])

slots.produsent = Slot(uri=DCT.creator, name="produsent", curie=DCT.curie('creator'),
                   model_uri=LUNCHREGISTERET.produsent, domain=None, range=Optional[Union[str, AktoerId]])

slots.kontaktpunkt = Slot(uri=DCAT.contactPoint, name="kontaktpunkt", curie=DCAT.curie('contactPoint'),
                   model_uri=LUNCHREGISTERET.kontaktpunkt, domain=None, range=Optional[Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]]])

slots.tema = Slot(uri=DCAT.theme, name="tema", curie=DCAT.curie('theme'),
                   model_uri=LUNCHREGISTERET.tema, domain=None, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.temaer = Slot(uri=DCAT.themeTaxonomy, name="temaer", curie=DCAT.curie('themeTaxonomy'),
                   model_uri=LUNCHREGISTERET.temaer, domain=None, range=Optional[Union[Union[str, BegrepssamlingId], list[Union[str, BegrepssamlingId]]]])

slots.begrep = Slot(uri=DCT.subject, name="begrep", curie=DCT.curie('subject'),
                   model_uri=LUNCHREGISTERET.begrep, domain=None, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.medietype = Slot(uri=DCAT.mediaType, name="medietype", curie=DCAT.curie('mediaType'),
                   model_uri=LUNCHREGISTERET.medietype, domain=None, range=Optional[Union[str, MediatypeId]])

slots.komprimeringsformat = Slot(uri=DCAT.compressFormat, name="komprimeringsformat", curie=DCAT.curie('compressFormat'),
                   model_uri=LUNCHREGISTERET.komprimeringsformat, domain=None, range=Optional[Union[str, MediatypeId]])

slots.pakkeformat = Slot(uri=DCAT.packageFormat, name="pakkeformat", curie=DCAT.curie('packageFormat'),
                   model_uri=LUNCHREGISTERET.pakkeformat, domain=None, range=Optional[Union[str, MediatypeId]])

slots.frekvens = Slot(uri=DCT.accrualPeriodicity, name="frekvens", curie=DCT.curie('accrualPeriodicity'),
                   model_uri=LUNCHREGISTERET.frekvens, domain=None, range=Optional[Union[str, KonseptId]])

slots.tilgjengelighet = Slot(uri=DCATAP.availability, name="tilgjengelighet", curie=DCATAP.curie('availability'),
                   model_uri=LUNCHREGISTERET.tilgjengelighet, domain=None, range=Optional[Union[str, KonseptId]])

slots.har_rolle = Slot(uri=DCAT.hadRole, name="har_rolle", curie=DCAT.curie('hadRole'),
                   model_uri=LUNCHREGISTERET.har_rolle, domain=None, range=Optional[str])

slots.gjeldende_lovgivning = Slot(uri=DCATAP.applicableLegislation, name="gjeldende_lovgivning", curie=DCATAP.curie('applicableLegislation'),
                   model_uri=LUNCHREGISTERET.gjeldende_lovgivning, domain=None, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.tidsrom = Slot(uri=DCT.temporal, name="tidsrom", curie=DCT.curie('temporal'),
                   model_uri=LUNCHREGISTERET.tidsrom, domain=None, range=Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]])

slots.tilgangsrettigheter = Slot(uri=DCT.accessRights, name="tilgangsrettigheter", curie=DCT.curie('accessRights'),
                   model_uri=LUNCHREGISTERET.tilgangsrettigheter, domain=None, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.rettigheter = Slot(uri=DCT.rights, name="rettigheter", curie=DCT.curie('rights'),
                   model_uri=LUNCHREGISTERET.rettigheter, domain=None, range=Optional[Union[str, RettighetserklaringId]])

slots.i_samsvar_med = Slot(uri=DCT.conformsTo, name="i_samsvar_med", curie=DCT.curie('conformsTo'),
                   model_uri=LUNCHREGISTERET.i_samsvar_med, domain=None, range=Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]])

slots.sjekksum = Slot(uri=SPDX.checksum, name="sjekksum", curie=SPDX.curie('checksum'),
                   model_uri=LUNCHREGISTERET.sjekksum, domain=None, range=Optional[Union[str, SjekksumId]])

slots.policy = Slot(uri=ODRL.hasPolicy, name="policy", curie=ODRL.curie('hasPolicy'),
                   model_uri=LUNCHREGISTERET.policy, domain=None, range=Optional[Union[str, URI]])

slots.eierskapshistorikk = Slot(uri=DCT.provenance, name="eierskapshistorikk", curie=DCT.curie('provenance'),
                   model_uri=LUNCHREGISTERET.eierskapshistorikk, domain=None, range=Optional[Union[str, list[str]]])

slots.ble_generert_ved = Slot(uri=PROV.wasGeneratedBy, name="ble_generert_ved", curie=PROV.curie('wasGeneratedBy'),
                   model_uri=LUNCHREGISTERET.ble_generert_ved, domain=Datasett, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.annen_ansvarlig_aktor = Slot(uri=PROV.qualifiedAttribution, name="annen_ansvarlig_aktor", curie=PROV.curie('qualifiedAttribution'),
                   model_uri=LUNCHREGISTERET.annen_ansvarlig_aktor, domain=None, range=Optional[Union[str, list[str]]])

slots.annen_identifikator = Slot(uri=ADMS.identifier, name="annen_identifikator", curie=ADMS.curie('identifier'),
                   model_uri=LUNCHREGISTERET.annen_identifikator, domain=None, range=Optional[Union[Union[str, IdentifikatorId], list[Union[str, IdentifikatorId]]]])

slots.annen_spesifikk_relasjon = Slot(uri=DCAT.qualifiedRelation, name="annen_spesifikk_relasjon", curie=DCAT.curie('qualifiedRelation'),
                   model_uri=LUNCHREGISTERET.annen_spesifikk_relasjon, domain=None, range=Optional[Union[Union[str, RelasjonId], list[Union[str, RelasjonId]]]])

slots.relasjon_til = Slot(uri=DCT.relation, name="relasjon_til", curie=DCT.curie('relation'),
                   model_uri=LUNCHREGISTERET.relasjon_til, domain=None, range=Optional[Union[str, URI]])

slots.primaertema = Slot(uri=FOAF.primaryTopic, name="primaertema", curie=FOAF.curie('primaryTopic'),
                   model_uri=LUNCHREGISTERET.primaertema, domain=None, range=Optional[Union[str, KatalogisertRessursId]])

slots.datasettdistribusjon = Slot(uri=DCAT.distribution, name="datasettdistribusjon", curie=DCAT.curie('distribution'),
                   model_uri=LUNCHREGISTERET.datasettdistribusjon, domain=None, range=Optional[Union[Union[str, DistribusjonId], list[Union[str, DistribusjonId]]]])

slots.eksempeldata = Slot(uri=ADMS.sample, name="eksempeldata", curie=ADMS.curie('sample'),
                   model_uri=LUNCHREGISTERET.eksempeldata, domain=None, range=Optional[Union[Union[str, DistribusjonId], list[Union[str, DistribusjonId]]]])

slots.tilgangstjeneste = Slot(uri=DCAT.accessService, name="tilgangstjeneste", curie=DCAT.curie('accessService'),
                   model_uri=LUNCHREGISTERET.tilgangstjeneste, domain=None, range=Optional[Union[Union[str, DatatjenesteId], list[Union[str, DatatjenesteId]]]])

slots.tilgjengeliggjor_datasett = Slot(uri=DCAT.servesDataset, name="tilgjengeliggjor_datasett", curie=DCAT.curie('servesDataset'),
                   model_uri=LUNCHREGISTERET.tilgjengeliggjor_datasett, domain=None, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.har_gebyr = Slot(uri=CV.hasCost, name="har_gebyr", curie=CV.curie('hasCost'),
                   model_uri=LUNCHREGISTERET.har_gebyr, domain=None, range=Optional[Union[Union[str, GebyrId], list[Union[str, GebyrId]]]])

slots.kilde_datasett = Slot(uri=DCT.source, name="kilde_datasett", curie=DCT.curie('source'),
                   model_uri=LUNCHREGISTERET.kilde_datasett, domain=None, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.i_serie = Slot(uri=DCAT.inSeries, name="i_serie", curie=DCAT.curie('inSeries'),
                   model_uri=LUNCHREGISTERET.i_serie, domain=None, range=Optional[Union[Union[str, DatasettserieId], list[Union[str, DatasettserieId]]]])

slots.siste = Slot(uri=DCAT.last, name="siste", curie=DCAT.curie('last'),
                   model_uri=LUNCHREGISTERET.siste, domain=None, range=Optional[Union[str, DatasettId]])

slots.forste = Slot(uri=DCAT.first, name="forste", curie=DCAT.curie('first'),
                   model_uri=LUNCHREGISTERET.forste, domain=None, range=Optional[Union[str, DatasettId]])

slots.erstatter = Slot(uri=DCT.replaces, name="erstatter", curie=DCT.curie('replaces'),
                   model_uri=LUNCHREGISTERET.erstatter, domain=None, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.forrige_versjon = Slot(uri=DCAT.prev, name="forrige_versjon", curie=DCAT.curie('prev'),
                   model_uri=LUNCHREGISTERET.forrige_versjon, domain=None, range=Optional[Union[str, DatasettId]])

slots.har_versjon = Slot(uri=DCAT.hasVersion, name="har_versjon", curie=DCAT.curie('hasVersion'),
                   model_uri=LUNCHREGISTERET.har_versjon, domain=None, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.relatert_regulativ_ressurs = Slot(uri=DCT.relation, name="relatert_regulativ_ressurs", curie=DCT.curie('relation'),
                   model_uri=LUNCHREGISTERET.relatert_regulativ_ressurs, domain=None, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.datasett = Slot(uri=DCAT.dataset, name="datasett", curie=DCAT.curie('dataset'),
                   model_uri=LUNCHREGISTERET.datasett, domain=None, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.datatjeneste = Slot(uri=DCAT.service, name="datatjeneste", curie=DCAT.curie('service'),
                   model_uri=LUNCHREGISTERET.datatjeneste, domain=None, range=Optional[Union[Union[str, DatatjenesteId], list[Union[str, DatatjenesteId]]]])

slots.har_del = Slot(uri=DCT.hasPart, name="har_del", curie=DCT.curie('hasPart'),
                   model_uri=LUNCHREGISTERET.har_del, domain=None, range=Optional[Union[Union[str, KatalogId], list[Union[str, KatalogId]]]])

slots.underkatalog = Slot(uri=DCAT.catalog, name="underkatalog", curie=DCAT.curie('catalog'),
                   model_uri=LUNCHREGISTERET.underkatalog, domain=None, range=Optional[Union[Union[str, KatalogId], list[Union[str, KatalogId]]]])

slots.katalogpost = Slot(uri=DCAT.record, name="katalogpost", curie=DCAT.curie('record'),
                   model_uri=LUNCHREGISTERET.katalogpost, domain=None, range=Optional[Union[Union[str, KatalogpostId], list[Union[str, KatalogpostId]]]])

slots.begynnelse = Slot(uri=TIME.hasBeginning, name="begynnelse", curie=TIME.curie('hasBeginning'),
                   model_uri=LUNCHREGISTERET.begynnelse, domain=None, range=Optional[Union[str, XSDDateTime]])

slots.slutt = Slot(uri=TIME.hasEnd, name="slutt", curie=TIME.curie('hasEnd'),
                   model_uri=LUNCHREGISTERET.slutt, domain=None, range=Optional[Union[str, XSDDateTime]])

slots.id = Slot(uri=CAPNO.id, name="id", curie=CAPNO.curie('id'),
                   model_uri=LUNCHREGISTERET.id, domain=None, range=URIRef)

slots.tittel = Slot(uri=DCT.title, name="tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.tittel, domain=None, range=Optional[Union[str, list[str]]])

slots.beskrivelse = Slot(uri=DCT.description, name="beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.beskrivelse, domain=None, range=Optional[Union[str, list[str]]])

slots.identifikator_literal = Slot(uri=DCT.identifier, name="identifikator_literal", curie=DCT.curie('identifier'),
                   model_uri=LUNCHREGISTERET.identifikator_literal, domain=None, range=Optional[str])

slots.type_concept = Slot(uri=DCT.type, name="type_concept", curie=DCT.curie('type'),
                   model_uri=LUNCHREGISTERET.type_concept, domain=None, range=Optional[Union[str, KonseptId]])

slots.endringsdato = Slot(uri=DCT.modified, name="endringsdato", curie=DCT.curie('modified'),
                   model_uri=LUNCHREGISTERET.endringsdato, domain=None, range=Optional[Union[str, XSDDate]])

slots.utgivelsesdato = Slot(uri=DCT.issued, name="utgivelsesdato", curie=DCT.curie('issued'),
                   model_uri=LUNCHREGISTERET.utgivelsesdato, domain=None, range=Optional[Union[str, XSDDate]])

slots.spraak = Slot(uri=DCT.language, name="spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.spraak, domain=None, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.format = Slot(uri=DCT.format, name="format", curie=DCT.curie('format'),
                   model_uri=LUNCHREGISTERET.format, domain=None, range=Optional[Union[str, KonseptId]])

slots.har_referanse = Slot(uri=RDFS.seeAlso, name="har_referanse", curie=RDFS.curie('seeAlso'),
                   model_uri=LUNCHREGISTERET.har_referanse, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.har_merknad = Slot(uri=RDFS.comment, name="har_merknad", curie=RDFS.curie('comment'),
                   model_uri=LUNCHREGISTERET.har_merknad, domain=None, range=Optional[Union[str, list[str]]])

slots.versjonsnummer = Slot(uri=OWL.versionInfo, name="versjonsnummer", curie=OWL.curie('versionInfo'),
                   model_uri=LUNCHREGISTERET.versjonsnummer, domain=None, range=Optional[str])

slots.nokkelord = Slot(uri=DCAT.keyword, name="nokkelord", curie=DCAT.curie('keyword'),
                   model_uri=LUNCHREGISTERET.nokkelord, domain=None, range=Optional[Union[str, list[str]]])

slots.dekningsomraade = Slot(uri=DCT.spatial, name="dekningsomraade", curie=DCT.curie('spatial'),
                   model_uri=LUNCHREGISTERET.dekningsomraade, domain=None, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.status = Slot(uri=ADMS.status, name="status", curie=ADMS.curie('status'),
                   model_uri=LUNCHREGISTERET.status, domain=None, range=Optional[Union[str, KonseptId]])

slots.valuta = Slot(uri=CV.currency, name="valuta", curie=CV.curie('currency'),
                   model_uri=LUNCHREGISTERET.valuta, domain=None, range=Optional[Union[str, KonseptId]])

slots.heimeside = Slot(uri=FOAF.homepage, name="heimeside", curie=FOAF.curie('homepage'),
                   model_uri=LUNCHREGISTERET.heimeside, domain=None, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.anbefalt_term = Slot(uri=SKOS.prefLabel, name="anbefalt_term", curie=SKOS.curie('prefLabel'),
                   model_uri=LUNCHREGISTERET.anbefalt_term, domain=None, range=Optional[Union[str, list[str]]])

slots.versjonsmerknad = Slot(uri=ADMS.versionNotes, name="versjonsmerknad", curie=ADMS.curie('versionNotes'),
                   model_uri=LUNCHREGISTERET.versjonsmerknad, domain=None, range=Optional[Union[str, list[str]]])

slots.lisens = Slot(uri=DCT.license, name="lisens", curie=DCT.curie('license'),
                   model_uri=LUNCHREGISTERET.lisens, domain=None, range=Optional[Union[str, LisensdokumentId]])

slots.har_kvalitetsmerknad = Slot(uri=DQV.hasQualityAnnotation, name="har_kvalitetsmerknad", curie=DQV.curie('hasQualityAnnotation'),
                   model_uri=LUNCHREGISTERET.har_kvalitetsmerknad, domain=None, range=Optional[Union[Union[str, KvalitetsmerknadId], list[Union[str, KvalitetsmerknadId]]]])

slots.har_kvalitetsmaaling = Slot(uri=DQV.hasQualityMeasurement, name="har_kvalitetsmaaling", curie=DQV.curie('hasQualityMeasurement'),
                   model_uri=LUNCHREGISTERET.har_kvalitetsmaaling, domain=None, range=Optional[Union[Union[str, KvalitetsmaalingId], list[Union[str, KvalitetsmaalingId]]]])

slots.er_deldimensjon_av = Slot(uri=SKOS.broader, name="er_deldimensjon_av", curie=SKOS.curie('broader'),
                   model_uri=LUNCHREGISTERET.er_deldimensjon_av, domain=None, range=Optional[Union[str, KvalitetsdimensjonId]])

slots.har_anbefalt_term = Slot(uri=SKOS.prefLabel, name="har_anbefalt_term", curie=SKOS.curie('prefLabel'),
                   model_uri=LUNCHREGISTERET.har_anbefalt_term, domain=None, range=Optional[Union[str, list[str]]])

slots.har_kvalitetsdefinisjon = Slot(uri=SKOS.definition, name="har_kvalitetsdefinisjon", curie=SKOS.curie('definition'),
                   model_uri=LUNCHREGISTERET.har_kvalitetsdefinisjon, domain=None, range=Optional[Union[str, list[str]]])

slots.er_i_kvalitetsdeldimensjon = Slot(uri=DQVNO.inSubDimension, name="er_i_kvalitetsdeldimensjon", curie=DQVNO.curie('inSubDimension'),
                   model_uri=LUNCHREGISTERET.er_i_kvalitetsdeldimensjon, domain=None, range=Optional[Union[str, KvalitetsdeldimensjonId]])

slots.har_forventet_datatype = Slot(uri=DQV.expectedDataType, name="har_forventet_datatype", curie=DQV.curie('expectedDataType'),
                   model_uri=LUNCHREGISTERET.har_forventet_datatype, domain=None, range=Optional[Union[str, URIorCURIE]])

slots.er_motivert_av = Slot(uri=OA.motivatedBy, name="er_motivert_av", curie=OA.curie('motivatedBy'),
                   model_uri=LUNCHREGISTERET.er_motivert_av, domain=None, range=Optional[Union[str, "DqvMotivasjon"]])

slots.er_i_kvalitetsdimensjon = Slot(uri=DQV.inDimension, name="er_i_kvalitetsdimensjon", curie=DQV.curie('inDimension'),
                   model_uri=LUNCHREGISTERET.er_i_kvalitetsdimensjon, domain=None, range=Optional[Union[Union[str, KvalitetsdimensjonId], list[Union[str, KvalitetsdimensjonId]]]])

slots.har_tekstdel = Slot(uri=OA.hasBody, name="har_tekstdel", curie=OA.curie('hasBody'),
                   model_uri=LUNCHREGISTERET.har_tekstdel, domain=None, range=Optional[Union[Union[str, TekstdelId], list[Union[str, TekstdelId]]]])

slots.har_maal = Slot(uri=OA.hasTarget, name="har_maal", curie=OA.curie('hasTarget'),
                   model_uri=LUNCHREGISTERET.har_maal, domain=None, range=Optional[Union[str, URIorCURIE]])

slots.gjelder_standard = Slot(uri=DQVNO.appliesToStandard, name="gjelder_standard", curie=DQVNO.curie('appliesToStandard'),
                   model_uri=LUNCHREGISTERET.gjelder_standard, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]])

slots.er_kvalitetsmaaling_av = Slot(uri=DQV.isMeasurementOf, name="er_kvalitetsmaaling_av", curie=DQV.curie('isMeasurementOf'),
                   model_uri=LUNCHREGISTERET.er_kvalitetsmaaling_av, domain=None, range=Optional[Union[str, KvalitetsmaalId]])

slots.har_boolean_verdi = Slot(uri=DQV.value, name="har_boolean_verdi", curie=DQV.curie('value'),
                   model_uri=LUNCHREGISTERET.har_boolean_verdi, domain=None, range=Optional[Union[bool, Bool]])

slots.har_numerisk_verdi = Slot(uri=DQV.value, name="har_numerisk_verdi", curie=DQV.curie('value'),
                   model_uri=LUNCHREGISTERET.har_numerisk_verdi, domain=None, range=Optional[float])

slots.har_tekst_verdi = Slot(uri=DQV.value, name="har_tekst_verdi", curie=DQV.curie('value'),
                   model_uri=LUNCHREGISTERET.har_tekst_verdi, domain=None, range=Optional[str])

slots.har_verdi_tekstdel = Slot(uri=RDFS.value, name="har_verdi_tekstdel", curie=RDFS.curie('value'),
                   model_uri=LUNCHREGISTERET.har_verdi_tekstdel, domain=None, range=Optional[str])

slots.lunchregisteretContainer__lunchregistereter = Slot(uri=LUNCHREGISTERET.lunchregistereter, name="lunchregisteretContainer__lunchregistereter", curie=LUNCHREGISTERET.curie('lunchregistereter'),
                   model_uri=LUNCHREGISTERET.lunchregisteretContainer__lunchregistereter, domain=None, range=Optional[Union[list[Union[str, LunchregisteretId]], dict[Union[str, LunchregisteretId], Union[dict, Lunchregisteret]]]])

slots.Aktoer_navn_aktoer = Slot(uri=FOAF.name, name="Aktoer_navn_aktoer", curie=FOAF.curie('name'),
                   model_uri=LUNCHREGISTERET.Aktoer_navn_aktoer, domain=Aktoer, range=Union[str, list[str]])

slots.Aktoer_identifikator_literal = Slot(uri=DCT.identifier, name="Aktoer_identifikator_literal", curie=DCT.curie('identifier'),
                   model_uri=LUNCHREGISTERET.Aktoer_identifikator_literal, domain=Aktoer, range=Optional[str])

slots.Aktoer_type_concept = Slot(uri=DCT.type, name="Aktoer_type_concept", curie=DCT.curie('type'),
                   model_uri=LUNCHREGISTERET.Aktoer_type_concept, domain=Aktoer, range=Optional[Union[str, KonseptId]])

slots.Kontaktopplysning_navn_vcard = Slot(uri=VCARD.fn, name="Kontaktopplysning_navn_vcard", curie=VCARD.curie('fn'),
                   model_uri=LUNCHREGISTERET.Kontaktopplysning_navn_vcard, domain=Kontaktopplysning, range=Union[str, list[str]])

slots.Kontaktopplysning_har_epost = Slot(uri=VCARD.hasEmail, name="Kontaktopplysning_har_epost", curie=VCARD.curie('hasEmail'),
                   model_uri=LUNCHREGISTERET.Kontaktopplysning_har_epost, domain=Kontaktopplysning, range=Optional[str])

slots.Kontaktopplysning_har_kontaktside = Slot(uri=VCARD.hasURL, name="Kontaktopplysning_har_kontaktside", curie=VCARD.curie('hasURL'),
                   model_uri=LUNCHREGISTERET.Kontaktopplysning_har_kontaktside, domain=Kontaktopplysning, range=Optional[str])

slots.Tidsrom_startdato = Slot(uri=DCAT.startDate, name="Tidsrom_startdato", curie=DCAT.curie('startDate'),
                   model_uri=LUNCHREGISTERET.Tidsrom_startdato, domain=Tidsrom, range=Optional[Union[str, XSDDate]])

slots.Tidsrom_sluttdato = Slot(uri=DCAT.endDate, name="Tidsrom_sluttdato", curie=DCAT.curie('endDate'),
                   model_uri=LUNCHREGISTERET.Tidsrom_sluttdato, domain=Tidsrom, range=Optional[Union[str, XSDDate]])

slots.Tidsrom_begynnelse = Slot(uri=TIME.hasBeginning, name="Tidsrom_begynnelse", curie=TIME.curie('hasBeginning'),
                   model_uri=LUNCHREGISTERET.Tidsrom_begynnelse, domain=Tidsrom, range=Optional[Union[str, XSDDateTime]])

slots.Tidsrom_slutt = Slot(uri=TIME.hasEnd, name="Tidsrom_slutt", curie=TIME.curie('hasEnd'),
                   model_uri=LUNCHREGISTERET.Tidsrom_slutt, domain=Tidsrom, range=Optional[Union[str, XSDDateTime]])

slots.Standard_tittel = Slot(uri=DCT.title, name="Standard_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Standard_tittel, domain=Standard, range=Union[str, list[str]])

slots.Standard_har_referanse = Slot(uri=RDFS.seeAlso, name="Standard_har_referanse", curie=RDFS.curie('seeAlso'),
                   model_uri=LUNCHREGISTERET.Standard_har_referanse, domain=Standard, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Standard_har_merknad = Slot(uri=RDFS.comment, name="Standard_har_merknad", curie=RDFS.curie('comment'),
                   model_uri=LUNCHREGISTERET.Standard_har_merknad, domain=Standard, range=Optional[Union[str, list[str]]])

slots.Standard_versjon = Slot(uri=DCAT.version, name="Standard_versjon", curie=DCAT.curie('version'),
                   model_uri=LUNCHREGISTERET.Standard_versjon, domain=Standard, range=Optional[str])

slots.RegulativRessurs_beskrivelse = Slot(uri=DCT.description, name="RegulativRessurs_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_beskrivelse, domain=RegulativRessurs, range=Optional[Union[str, list[str]]])

slots.RegulativRessurs_identifikator_literal = Slot(uri=DCT.identifier, name="RegulativRessurs_identifikator_literal", curie=DCT.curie('identifier'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_identifikator_literal, domain=RegulativRessurs, range=Optional[str])

slots.RegulativRessurs_har_referanse = Slot(uri=RDFS.seeAlso, name="RegulativRessurs_har_referanse", curie=RDFS.curie('seeAlso'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_har_referanse, domain=RegulativRessurs, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.RegulativRessurs_spraak = Slot(uri=DCT.language, name="RegulativRessurs_spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_spraak, domain=RegulativRessurs, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.RegulativRessurs_tittel = Slot(uri=DCT.title, name="RegulativRessurs_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_tittel, domain=RegulativRessurs, range=Optional[Union[str, list[str]]])

slots.RegulativRessurs_type_concept = Slot(uri=DCT.type, name="RegulativRessurs_type_concept", curie=DCT.curie('type'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_type_concept, domain=RegulativRessurs, range=Optional[Union[str, KonseptId]])

slots.RegulativRessurs_relatert_regulativ_ressurs = Slot(uri=DCT.relation, name="RegulativRessurs_relatert_regulativ_ressurs", curie=DCT.curie('relation'),
                   model_uri=LUNCHREGISTERET.RegulativRessurs_relatert_regulativ_ressurs, domain=RegulativRessurs, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.Identifikator_notasjon = Slot(uri=SKOS.notation, name="Identifikator_notasjon", curie=SKOS.curie('notation'),
                   model_uri=LUNCHREGISTERET.Identifikator_notasjon, domain=Identifikator, range=str)

slots.Rettighetserklaring_anvendelsesretningslinjer = Slot(uri=ODRS.reuserGuidelines, name="Rettighetserklaring_anvendelsesretningslinjer", curie=ODRS.curie('reuserGuidelines'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_anvendelsesretningslinjer, domain=Rettighetserklaring, range=Optional[str])

slots.Rettighetserklaring_jurisdiksjon = Slot(uri=ODRS.jurisdiction, name="Rettighetserklaring_jurisdiksjon", curie=ODRS.curie('jurisdiction'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_jurisdiksjon, domain=Rettighetserklaring, range=Optional[str])

slots.Rettighetserklaring_krediteringstekst = Slot(uri=ODRS.attributionText, name="Rettighetserklaring_krediteringstekst", curie=ODRS.curie('attributionText'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_krediteringstekst, domain=Rettighetserklaring, range=Optional[str])

slots.Rettighetserklaring_krediteringsurl = Slot(uri=ODRS.attributionURL, name="Rettighetserklaring_krediteringsurl", curie=ODRS.curie('attributionURL'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_krediteringsurl, domain=Rettighetserklaring, range=Optional[Union[str, URI]])

slots.Rettighetserklaring_opphavsrettserklaring = Slot(uri=ODRS.copyrightStatement, name="Rettighetserklaring_opphavsrettserklaring", curie=ODRS.curie('copyrightStatement'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_opphavsrettserklaring, domain=Rettighetserklaring, range=Optional[str])

slots.Rettighetserklaring_opphavsrettsinnehaver = Slot(uri=ODRS.copyrightHolder, name="Rettighetserklaring_opphavsrettsinnehaver", curie=ODRS.curie('copyrightHolder'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_opphavsrettsinnehaver, domain=Rettighetserklaring, range=Optional[str])

slots.Rettighetserklaring_opphavsrettsnotis = Slot(uri=ODRS.copyrightNotice, name="Rettighetserklaring_opphavsrettsnotis", curie=ODRS.curie('copyrightNotice'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_opphavsrettsnotis, domain=Rettighetserklaring, range=Optional[str])

slots.Rettighetserklaring_opphavsrettsaar = Slot(uri=ODRS.copyrightYear, name="Rettighetserklaring_opphavsrettsaar", curie=ODRS.curie('copyrightYear'),
                   model_uri=LUNCHREGISTERET.Rettighetserklaring_opphavsrettsaar, domain=Rettighetserklaring, range=Optional[str])

slots.Sjekksum_algoritme = Slot(uri=SPDX.algorithm, name="Sjekksum_algoritme", curie=SPDX.curie('algorithm'),
                   model_uri=LUNCHREGISTERET.Sjekksum_algoritme, domain=Sjekksum, range=str)

slots.Sjekksum_sjekksumverdi = Slot(uri=SPDX.checksumValue, name="Sjekksum_sjekksumverdi", curie=SPDX.curie('checksumValue'),
                   model_uri=LUNCHREGISTERET.Sjekksum_sjekksumverdi, domain=Sjekksum, range=str)

slots.Gebyr_belop = Slot(uri=CV.hasValue, name="Gebyr_belop", curie=CV.curie('hasValue'),
                   model_uri=LUNCHREGISTERET.Gebyr_belop, domain=Gebyr, range=Optional[str])

slots.Gebyr_beskrivelse = Slot(uri=DCT.description, name="Gebyr_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Gebyr_beskrivelse, domain=Gebyr, range=Optional[Union[str, list[str]]])

slots.Gebyr_dokumentasjon = Slot(uri=FOAF.page, name="Gebyr_dokumentasjon", curie=FOAF.curie('page'),
                   model_uri=LUNCHREGISTERET.Gebyr_dokumentasjon, domain=Gebyr, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Gebyr_valuta = Slot(uri=CV.currency, name="Gebyr_valuta", curie=CV.curie('currency'),
                   model_uri=LUNCHREGISTERET.Gebyr_valuta, domain=Gebyr, range=Optional[Union[str, KonseptId]])

slots.Relasjon_har_rolle = Slot(uri=DCAT.hadRole, name="Relasjon_har_rolle", curie=DCAT.curie('hadRole'),
                   model_uri=LUNCHREGISTERET.Relasjon_har_rolle, domain=Relasjon, range=str)

slots.Relasjon_relasjon_til = Slot(uri=DCT.relation, name="Relasjon_relasjon_til", curie=DCT.curie('relation'),
                   model_uri=LUNCHREGISTERET.Relasjon_relasjon_til, domain=Relasjon, range=Union[str, URI])

slots.Distribusjon_tilgangs_url = Slot(uri=DCAT.accessURL, name="Distribusjon_tilgangs_url", curie=DCAT.curie('accessURL'),
                   model_uri=LUNCHREGISTERET.Distribusjon_tilgangs_url, domain=Distribusjon, range=Union[Union[str, URI], list[Union[str, URI]]])

slots.Distribusjon_beskrivelse = Slot(uri=DCT.description, name="Distribusjon_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Distribusjon_beskrivelse, domain=Distribusjon, range=Optional[Union[str, list[str]]])

slots.Distribusjon_format = Slot(uri=DCT.format, name="Distribusjon_format", curie=DCT.curie('format'),
                   model_uri=LUNCHREGISTERET.Distribusjon_format, domain=Distribusjon, range=Optional[Union[str, KonseptId]])

slots.Distribusjon_lisens = Slot(uri=DCT.license, name="Distribusjon_lisens", curie=DCT.curie('license'),
                   model_uri=LUNCHREGISTERET.Distribusjon_lisens, domain=Distribusjon, range=Optional[Union[str, LisensdokumentId]])

slots.Distribusjon_status = Slot(uri=ADMS.status, name="Distribusjon_status", curie=ADMS.curie('status'),
                   model_uri=LUNCHREGISTERET.Distribusjon_status, domain=Distribusjon, range=Optional[Union[str, KonseptId]])

slots.Distribusjon_tilgjengelighet = Slot(uri=DCATAP.availability, name="Distribusjon_tilgjengelighet", curie=DCATAP.curie('availability'),
                   model_uri=LUNCHREGISTERET.Distribusjon_tilgjengelighet, domain=Distribusjon, range=Optional[Union[str, KonseptId]])

slots.Distribusjon_nedlastningslenke = Slot(uri=DCAT.downloadURL, name="Distribusjon_nedlastningslenke", curie=DCAT.curie('downloadURL'),
                   model_uri=LUNCHREGISTERET.Distribusjon_nedlastningslenke, domain=Distribusjon, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Distribusjon_dokumentasjon = Slot(uri=FOAF.page, name="Distribusjon_dokumentasjon", curie=FOAF.curie('page'),
                   model_uri=LUNCHREGISTERET.Distribusjon_dokumentasjon, domain=Distribusjon, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Distribusjon_endringsdato = Slot(uri=DCT.modified, name="Distribusjon_endringsdato", curie=DCT.curie('modified'),
                   model_uri=LUNCHREGISTERET.Distribusjon_endringsdato, domain=Distribusjon, range=Optional[Union[str, XSDDate]])

slots.Distribusjon_filstorrelse = Slot(uri=DCAT.byteSize, name="Distribusjon_filstorrelse", curie=DCAT.curie('byteSize'),
                   model_uri=LUNCHREGISTERET.Distribusjon_filstorrelse, domain=Distribusjon, range=Optional[int])

slots.Distribusjon_gjeldende_lovgivning = Slot(uri=DCATAP.applicableLegislation, name="Distribusjon_gjeldende_lovgivning", curie=DCATAP.curie('applicableLegislation'),
                   model_uri=LUNCHREGISTERET.Distribusjon_gjeldende_lovgivning, domain=Distribusjon, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.Distribusjon_i_samsvar_med = Slot(uri=DCT.conformsTo, name="Distribusjon_i_samsvar_med", curie=DCT.curie('conformsTo'),
                   model_uri=LUNCHREGISTERET.Distribusjon_i_samsvar_med, domain=Distribusjon, range=Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]])

slots.Distribusjon_komprimeringsformat = Slot(uri=DCAT.compressFormat, name="Distribusjon_komprimeringsformat", curie=DCAT.curie('compressFormat'),
                   model_uri=LUNCHREGISTERET.Distribusjon_komprimeringsformat, domain=Distribusjon, range=Optional[Union[str, MediatypeId]])

slots.Distribusjon_medietype = Slot(uri=DCAT.mediaType, name="Distribusjon_medietype", curie=DCAT.curie('mediaType'),
                   model_uri=LUNCHREGISTERET.Distribusjon_medietype, domain=Distribusjon, range=Optional[Union[str, MediatypeId]])

slots.Distribusjon_pakkeformat = Slot(uri=DCAT.packageFormat, name="Distribusjon_pakkeformat", curie=DCAT.curie('packageFormat'),
                   model_uri=LUNCHREGISTERET.Distribusjon_pakkeformat, domain=Distribusjon, range=Optional[Union[str, MediatypeId]])

slots.Distribusjon_policy = Slot(uri=ODRL.hasPolicy, name="Distribusjon_policy", curie=ODRL.curie('hasPolicy'),
                   model_uri=LUNCHREGISTERET.Distribusjon_policy, domain=Distribusjon, range=Optional[Union[str, URI]])

slots.Distribusjon_rettigheter = Slot(uri=DCT.rights, name="Distribusjon_rettigheter", curie=DCT.curie('rights'),
                   model_uri=LUNCHREGISTERET.Distribusjon_rettigheter, domain=Distribusjon, range=Optional[Union[str, RettighetserklaringId]])

slots.Distribusjon_romlig_opplosning = Slot(uri=DCAT.spatialResolutionInMeters, name="Distribusjon_romlig_opplosning", curie=DCAT.curie('spatialResolutionInMeters'),
                   model_uri=LUNCHREGISTERET.Distribusjon_romlig_opplosning, domain=Distribusjon, range=Optional[Union[float, list[float]]])

slots.Distribusjon_sjekksum = Slot(uri=SPDX.checksum, name="Distribusjon_sjekksum", curie=SPDX.curie('checksum'),
                   model_uri=LUNCHREGISTERET.Distribusjon_sjekksum, domain=Distribusjon, range=Optional[Union[str, SjekksumId]])

slots.Distribusjon_spraak = Slot(uri=DCT.language, name="Distribusjon_spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.Distribusjon_spraak, domain=Distribusjon, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Distribusjon_tidsopplosning = Slot(uri=DCAT.temporalResolution, name="Distribusjon_tidsopplosning", curie=DCAT.curie('temporalResolution'),
                   model_uri=LUNCHREGISTERET.Distribusjon_tidsopplosning, domain=Distribusjon, range=Optional[str])

slots.Distribusjon_tilgangstjeneste = Slot(uri=DCAT.accessService, name="Distribusjon_tilgangstjeneste", curie=DCAT.curie('accessService'),
                   model_uri=LUNCHREGISTERET.Distribusjon_tilgangstjeneste, domain=Distribusjon, range=Optional[Union[Union[str, DatatjenesteId], list[Union[str, DatatjenesteId]]]])

slots.Distribusjon_tittel = Slot(uri=DCT.title, name="Distribusjon_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Distribusjon_tittel, domain=Distribusjon, range=Optional[Union[str, list[str]]])

slots.Distribusjon_utgivelsesdato = Slot(uri=DCT.issued, name="Distribusjon_utgivelsesdato", curie=DCT.curie('issued'),
                   model_uri=LUNCHREGISTERET.Distribusjon_utgivelsesdato, domain=Distribusjon, range=Optional[Union[str, XSDDate]])

slots.Datasett_har_kvalitetsmerknad = Slot(uri=DQV.hasQualityAnnotation, name="Datasett_har_kvalitetsmerknad", curie=DQV.curie('hasQualityAnnotation'),
                   model_uri=LUNCHREGISTERET.Datasett_har_kvalitetsmerknad, domain=Datasett, range=Optional[Union[Union[str, KvalitetsmerknadId], list[Union[str, KvalitetsmerknadId]]]])

slots.Datasett_har_kvalitetsmaaling = Slot(uri=DQV.hasQualityMeasurement, name="Datasett_har_kvalitetsmaaling", curie=DQV.curie('hasQualityMeasurement'),
                   model_uri=LUNCHREGISTERET.Datasett_har_kvalitetsmaaling, domain=Datasett, range=Optional[Union[Union[str, KvalitetsmaalingId], list[Union[str, KvalitetsmaalingId]]]])

slots.Datasett_beskrivelse = Slot(uri=DCT.description, name="Datasett_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Datasett_beskrivelse, domain=Datasett, range=Union[str, list[str]])

slots.Datasett_kontaktpunkt = Slot(uri=DCAT.contactPoint, name="Datasett_kontaktpunkt", curie=DCAT.curie('contactPoint'),
                   model_uri=LUNCHREGISTERET.Datasett_kontaktpunkt, domain=Datasett, range=Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]])

slots.Datasett_tema = Slot(uri=DCAT.theme, name="Datasett_tema", curie=DCAT.curie('theme'),
                   model_uri=LUNCHREGISTERET.Datasett_tema, domain=Datasett, range=Union[Union[str, KonseptId], list[Union[str, KonseptId]]])

slots.Datasett_tittel = Slot(uri=DCT.title, name="Datasett_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Datasett_tittel, domain=Datasett, range=Union[str, list[str]])

slots.Datasett_utgiver = Slot(uri=DCT.publisher, name="Datasett_utgiver", curie=DCT.curie('publisher'),
                   model_uri=LUNCHREGISTERET.Datasett_utgiver, domain=Datasett, range=Union[str, AktoerId])

slots.Datasett_begrep = Slot(uri=DCT.subject, name="Datasett_begrep", curie=DCT.curie('subject'),
                   model_uri=LUNCHREGISTERET.Datasett_begrep, domain=Datasett, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datasett_ble_generert_ved = Slot(uri=PROV.wasGeneratedBy, name="Datasett_ble_generert_ved", curie=PROV.curie('wasGeneratedBy'),
                   model_uri=LUNCHREGISTERET.Datasett_ble_generert_ved, domain=Datasett, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datasett_datasettdistribusjon = Slot(uri=DCAT.distribution, name="Datasett_datasettdistribusjon", curie=DCAT.curie('distribution'),
                   model_uri=LUNCHREGISTERET.Datasett_datasettdistribusjon, domain=Datasett, range=Optional[Union[Union[str, DistribusjonId], list[Union[str, DistribusjonId]]]])

slots.Datasett_dekningsomraade = Slot(uri=DCT.spatial, name="Datasett_dekningsomraade", curie=DCT.curie('spatial'),
                   model_uri=LUNCHREGISTERET.Datasett_dekningsomraade, domain=Datasett, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datasett_gjeldende_lovgivning = Slot(uri=DCATAP.applicableLegislation, name="Datasett_gjeldende_lovgivning", curie=DCATAP.curie('applicableLegislation'),
                   model_uri=LUNCHREGISTERET.Datasett_gjeldende_lovgivning, domain=Datasett, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.Datasett_nokkelord = Slot(uri=DCAT.keyword, name="Datasett_nokkelord", curie=DCAT.curie('keyword'),
                   model_uri=LUNCHREGISTERET.Datasett_nokkelord, domain=Datasett, range=Optional[Union[str, list[str]]])

slots.Datasett_tidsrom = Slot(uri=DCT.temporal, name="Datasett_tidsrom", curie=DCT.curie('temporal'),
                   model_uri=LUNCHREGISTERET.Datasett_tidsrom, domain=Datasett, range=Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]])

slots.Datasett_tilgangsrettigheter = Slot(uri=DCT.accessRights, name="Datasett_tilgangsrettigheter", curie=DCT.curie('accessRights'),
                   model_uri=LUNCHREGISTERET.Datasett_tilgangsrettigheter, domain=Datasett, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datasett_frekvens = Slot(uri=DCT.accrualPeriodicity, name="Datasett_frekvens", curie=DCT.curie('accrualPeriodicity'),
                   model_uri=LUNCHREGISTERET.Datasett_frekvens, domain=Datasett, range=Optional[Union[str, KonseptId]])

slots.Datasett_dokumentasjon = Slot(uri=FOAF.page, name="Datasett_dokumentasjon", curie=FOAF.curie('page'),
                   model_uri=LUNCHREGISTERET.Datasett_dokumentasjon, domain=Datasett, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datasett_landingsside = Slot(uri=DCAT.landingPage, name="Datasett_landingsside", curie=DCAT.curie('landingPage'),
                   model_uri=LUNCHREGISTERET.Datasett_landingsside, domain=Datasett, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datasett_identifikator_literal = Slot(uri=DCT.identifier, name="Datasett_identifikator_literal", curie=DCT.curie('identifier'),
                   model_uri=LUNCHREGISTERET.Datasett_identifikator_literal, domain=Datasett, range=Optional[str])

slots.Datasett_annen_ansvarlig_aktor = Slot(uri=PROV.qualifiedAttribution, name="Datasett_annen_ansvarlig_aktor", curie=PROV.curie('qualifiedAttribution'),
                   model_uri=LUNCHREGISTERET.Datasett_annen_ansvarlig_aktor, domain=Datasett, range=Optional[Union[str, list[str]]])

slots.Datasett_annen_identifikator = Slot(uri=ADMS.identifier, name="Datasett_annen_identifikator", curie=ADMS.curie('identifier'),
                   model_uri=LUNCHREGISTERET.Datasett_annen_identifikator, domain=Datasett, range=Optional[Union[Union[str, IdentifikatorId], list[Union[str, IdentifikatorId]]]])

slots.Datasett_annen_spesifikk_relasjon = Slot(uri=DCAT.qualifiedRelation, name="Datasett_annen_spesifikk_relasjon", curie=DCAT.curie('qualifiedRelation'),
                   model_uri=LUNCHREGISTERET.Datasett_annen_spesifikk_relasjon, domain=Datasett, range=Optional[Union[Union[str, RelasjonId], list[Union[str, RelasjonId]]]])

slots.Datasett_eierskapshistorikk = Slot(uri=DCT.provenance, name="Datasett_eierskapshistorikk", curie=DCT.curie('provenance'),
                   model_uri=LUNCHREGISTERET.Datasett_eierskapshistorikk, domain=Datasett, range=Optional[Union[str, list[str]]])

slots.Datasett_eksempeldata = Slot(uri=ADMS.sample, name="Datasett_eksempeldata", curie=ADMS.curie('sample'),
                   model_uri=LUNCHREGISTERET.Datasett_eksempeldata, domain=Datasett, range=Optional[Union[Union[str, DistribusjonId], list[Union[str, DistribusjonId]]]])

slots.Datasett_endringsdato = Slot(uri=DCT.modified, name="Datasett_endringsdato", curie=DCT.curie('modified'),
                   model_uri=LUNCHREGISTERET.Datasett_endringsdato, domain=Datasett, range=Optional[Union[str, XSDDate]])

slots.Datasett_er_referert_av = Slot(uri=DCT.isReferencedBy, name="Datasett_er_referert_av", curie=DCT.curie('isReferencedBy'),
                   model_uri=LUNCHREGISTERET.Datasett_er_referert_av, domain=Datasett, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datasett_erstatter = Slot(uri=DCT.replaces, name="Datasett_erstatter", curie=DCT.curie('replaces'),
                   model_uri=LUNCHREGISTERET.Datasett_erstatter, domain=Datasett, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.Datasett_forrige_versjon = Slot(uri=DCAT.prev, name="Datasett_forrige_versjon", curie=DCAT.curie('prev'),
                   model_uri=LUNCHREGISTERET.Datasett_forrige_versjon, domain=Datasett, range=Optional[Union[str, DatasettId]])

slots.Datasett_har_gebyr = Slot(uri=CV.hasCost, name="Datasett_har_gebyr", curie=CV.curie('hasCost'),
                   model_uri=LUNCHREGISTERET.Datasett_har_gebyr, domain=Datasett, range=Optional[Union[Union[str, GebyrId], list[Union[str, GebyrId]]]])

slots.Datasett_har_versjon = Slot(uri=DCAT.hasVersion, name="Datasett_har_versjon", curie=DCAT.curie('hasVersion'),
                   model_uri=LUNCHREGISTERET.Datasett_har_versjon, domain=Datasett, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.Datasett_i_samsvar_med = Slot(uri=DCT.conformsTo, name="Datasett_i_samsvar_med", curie=DCT.curie('conformsTo'),
                   model_uri=LUNCHREGISTERET.Datasett_i_samsvar_med, domain=Datasett, range=Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]])

slots.Datasett_i_serie = Slot(uri=DCAT.inSeries, name="Datasett_i_serie", curie=DCAT.curie('inSeries'),
                   model_uri=LUNCHREGISTERET.Datasett_i_serie, domain=Datasett, range=Optional[Union[Union[str, DatasettserieId], list[Union[str, DatasettserieId]]]])

slots.Datasett_kilde_datasett = Slot(uri=DCT.source, name="Datasett_kilde_datasett", curie=DCT.curie('source'),
                   model_uri=LUNCHREGISTERET.Datasett_kilde_datasett, domain=Datasett, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.Datasett_produsent = Slot(uri=DCT.creator, name="Datasett_produsent", curie=DCT.curie('creator'),
                   model_uri=LUNCHREGISTERET.Datasett_produsent, domain=Datasett, range=Optional[Union[str, AktoerId]])

slots.Datasett_relatert_ressurs = Slot(uri=DCT.relation, name="Datasett_relatert_ressurs", curie=DCT.curie('relation'),
                   model_uri=LUNCHREGISTERET.Datasett_relatert_ressurs, domain=Datasett, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datasett_romlig_opplosning = Slot(uri=DCAT.spatialResolutionInMeters, name="Datasett_romlig_opplosning", curie=DCAT.curie('spatialResolutionInMeters'),
                   model_uri=LUNCHREGISTERET.Datasett_romlig_opplosning, domain=Datasett, range=Optional[Union[float, list[float]]])

slots.Datasett_spraak = Slot(uri=DCT.language, name="Datasett_spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.Datasett_spraak, domain=Datasett, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datasett_tidsopplosning = Slot(uri=DCAT.temporalResolution, name="Datasett_tidsopplosning", curie=DCAT.curie('temporalResolution'),
                   model_uri=LUNCHREGISTERET.Datasett_tidsopplosning, domain=Datasett, range=Optional[str])

slots.Datasett_type_concept = Slot(uri=DCT.type, name="Datasett_type_concept", curie=DCT.curie('type'),
                   model_uri=LUNCHREGISTERET.Datasett_type_concept, domain=Datasett, range=Optional[Union[str, KonseptId]])

slots.Datasett_utgivelsesdato = Slot(uri=DCT.issued, name="Datasett_utgivelsesdato", curie=DCT.curie('issued'),
                   model_uri=LUNCHREGISTERET.Datasett_utgivelsesdato, domain=Datasett, range=Optional[Union[str, XSDDate]])

slots.Datasett_versjon = Slot(uri=DCAT.version, name="Datasett_versjon", curie=DCAT.curie('version'),
                   model_uri=LUNCHREGISTERET.Datasett_versjon, domain=Datasett, range=Optional[str])

slots.Datasett_versjonsmerknad = Slot(uri=ADMS.versionNotes, name="Datasett_versjonsmerknad", curie=ADMS.curie('versionNotes'),
                   model_uri=LUNCHREGISTERET.Datasett_versjonsmerknad, domain=Datasett, range=Optional[Union[str, list[str]]])

slots.Datasettserie_beskrivelse = Slot(uri=DCT.description, name="Datasettserie_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Datasettserie_beskrivelse, domain=Datasettserie, range=Union[str, list[str]])

slots.Datasettserie_kontaktpunkt = Slot(uri=DCAT.contactPoint, name="Datasettserie_kontaktpunkt", curie=DCAT.curie('contactPoint'),
                   model_uri=LUNCHREGISTERET.Datasettserie_kontaktpunkt, domain=Datasettserie, range=Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]])

slots.Datasettserie_tema = Slot(uri=DCAT.theme, name="Datasettserie_tema", curie=DCAT.curie('theme'),
                   model_uri=LUNCHREGISTERET.Datasettserie_tema, domain=Datasettserie, range=Union[Union[str, KonseptId], list[Union[str, KonseptId]]])

slots.Datasettserie_tittel = Slot(uri=DCT.title, name="Datasettserie_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Datasettserie_tittel, domain=Datasettserie, range=Union[str, list[str]])

slots.Datasettserie_utgiver = Slot(uri=DCT.publisher, name="Datasettserie_utgiver", curie=DCT.curie('publisher'),
                   model_uri=LUNCHREGISTERET.Datasettserie_utgiver, domain=Datasettserie, range=Union[str, AktoerId])

slots.Datasettserie_dekningsomraade = Slot(uri=DCT.spatial, name="Datasettserie_dekningsomraade", curie=DCT.curie('spatial'),
                   model_uri=LUNCHREGISTERET.Datasettserie_dekningsomraade, domain=Datasettserie, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datasettserie_gjeldende_lovgivning = Slot(uri=DCATAP.applicableLegislation, name="Datasettserie_gjeldende_lovgivning", curie=DCATAP.curie('applicableLegislation'),
                   model_uri=LUNCHREGISTERET.Datasettserie_gjeldende_lovgivning, domain=Datasettserie, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.Datasettserie_siste = Slot(uri=DCAT.last, name="Datasettserie_siste", curie=DCAT.curie('last'),
                   model_uri=LUNCHREGISTERET.Datasettserie_siste, domain=Datasettserie, range=Optional[Union[str, DatasettId]])

slots.Datasettserie_tidsrom = Slot(uri=DCT.temporal, name="Datasettserie_tidsrom", curie=DCT.curie('temporal'),
                   model_uri=LUNCHREGISTERET.Datasettserie_tidsrom, domain=Datasettserie, range=Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]])

slots.Datasettserie_endringsdato = Slot(uri=DCT.modified, name="Datasettserie_endringsdato", curie=DCT.curie('modified'),
                   model_uri=LUNCHREGISTERET.Datasettserie_endringsdato, domain=Datasettserie, range=Optional[Union[str, XSDDate]])

slots.Datasettserie_frekvens = Slot(uri=DCT.accrualPeriodicity, name="Datasettserie_frekvens", curie=DCT.curie('accrualPeriodicity'),
                   model_uri=LUNCHREGISTERET.Datasettserie_frekvens, domain=Datasettserie, range=Optional[Union[str, KonseptId]])

slots.Datasettserie_forste = Slot(uri=DCAT.first, name="Datasettserie_forste", curie=DCAT.curie('first'),
                   model_uri=LUNCHREGISTERET.Datasettserie_forste, domain=Datasettserie, range=Optional[Union[str, DatasettId]])

slots.Datasettserie_utgivelsesdato = Slot(uri=DCT.issued, name="Datasettserie_utgivelsesdato", curie=DCT.curie('issued'),
                   model_uri=LUNCHREGISTERET.Datasettserie_utgivelsesdato, domain=Datasettserie, range=Optional[Union[str, XSDDate]])

slots.Datatjeneste_endepunkts_url = Slot(uri=DCAT.endpointURL, name="Datatjeneste_endepunkts_url", curie=DCAT.curie('endpointURL'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_endepunkts_url, domain=Datatjeneste, range=Union[str, URI])

slots.Datatjeneste_kontaktpunkt = Slot(uri=DCAT.contactPoint, name="Datatjeneste_kontaktpunkt", curie=DCAT.curie('contactPoint'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_kontaktpunkt, domain=Datatjeneste, range=Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]])

slots.Datatjeneste_tittel = Slot(uri=DCT.title, name="Datatjeneste_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_tittel, domain=Datatjeneste, range=Union[str, list[str]])

slots.Datatjeneste_utgiver = Slot(uri=DCT.publisher, name="Datatjeneste_utgiver", curie=DCT.curie('publisher'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_utgiver, domain=Datatjeneste, range=Union[str, AktoerId])

slots.Datatjeneste_endepunktsbeskrivelse = Slot(uri=DCAT.endpointDescription, name="Datatjeneste_endepunktsbeskrivelse", curie=DCAT.curie('endpointDescription'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_endepunktsbeskrivelse, domain=Datatjeneste, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datatjeneste_format = Slot(uri=DCT.format, name="Datatjeneste_format", curie=DCT.curie('format'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_format, domain=Datatjeneste, range=Optional[Union[str, KonseptId]])

slots.Datatjeneste_gjeldende_lovgivning = Slot(uri=DCATAP.applicableLegislation, name="Datatjeneste_gjeldende_lovgivning", curie=DCATAP.curie('applicableLegislation'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_gjeldende_lovgivning, domain=Datatjeneste, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.Datatjeneste_i_samsvar_med = Slot(uri=DCT.conformsTo, name="Datatjeneste_i_samsvar_med", curie=DCT.curie('conformsTo'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_i_samsvar_med, domain=Datatjeneste, range=Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]])

slots.Datatjeneste_nokkelord = Slot(uri=DCAT.keyword, name="Datatjeneste_nokkelord", curie=DCAT.curie('keyword'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_nokkelord, domain=Datatjeneste, range=Optional[Union[str, list[str]]])

slots.Datatjeneste_tema = Slot(uri=DCAT.theme, name="Datatjeneste_tema", curie=DCAT.curie('theme'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_tema, domain=Datatjeneste, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datatjeneste_tilgjengeliggjor_datasett = Slot(uri=DCAT.servesDataset, name="Datatjeneste_tilgjengeliggjor_datasett", curie=DCAT.curie('servesDataset'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_tilgjengeliggjor_datasett, domain=Datatjeneste, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.Datatjeneste_tilgjengelighet = Slot(uri=DCATAP.availability, name="Datatjeneste_tilgjengelighet", curie=DCATAP.curie('availability'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_tilgjengelighet, domain=Datatjeneste, range=Optional[Union[str, KonseptId]])

slots.Datatjeneste_beskrivelse = Slot(uri=DCT.description, name="Datatjeneste_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_beskrivelse, domain=Datatjeneste, range=Optional[Union[str, list[str]]])

slots.Datatjeneste_dokumentasjon = Slot(uri=FOAF.page, name="Datatjeneste_dokumentasjon", curie=FOAF.curie('page'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_dokumentasjon, domain=Datatjeneste, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datatjeneste_har_gebyr = Slot(uri=CV.hasCost, name="Datatjeneste_har_gebyr", curie=CV.curie('hasCost'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_har_gebyr, domain=Datatjeneste, range=Optional[Union[Union[str, GebyrId], list[Union[str, GebyrId]]]])

slots.Datatjeneste_identifikator_literal = Slot(uri=DCT.identifier, name="Datatjeneste_identifikator_literal", curie=DCT.curie('identifier'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_identifikator_literal, domain=Datatjeneste, range=Optional[str])

slots.Datatjeneste_landingsside = Slot(uri=DCAT.landingPage, name="Datatjeneste_landingsside", curie=DCAT.curie('landingPage'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_landingsside, domain=Datatjeneste, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Datatjeneste_lisens = Slot(uri=DCT.license, name="Datatjeneste_lisens", curie=DCT.curie('license'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_lisens, domain=Datatjeneste, range=Optional[Union[str, LisensdokumentId]])

slots.Datatjeneste_rettigheter = Slot(uri=DCT.rights, name="Datatjeneste_rettigheter", curie=DCT.curie('rights'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_rettigheter, domain=Datatjeneste, range=Optional[Union[str, RettighetserklaringId]])

slots.Datatjeneste_status = Slot(uri=ADMS.status, name="Datatjeneste_status", curie=ADMS.curie('status'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_status, domain=Datatjeneste, range=Optional[Union[str, KonseptId]])

slots.Datatjeneste_tilgangsrettigheter = Slot(uri=DCT.accessRights, name="Datatjeneste_tilgangsrettigheter", curie=DCT.curie('accessRights'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_tilgangsrettigheter, domain=Datatjeneste, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Datatjeneste_versjon = Slot(uri=DCAT.version, name="Datatjeneste_versjon", curie=DCAT.curie('version'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_versjon, domain=Datatjeneste, range=Optional[str])

slots.Datatjeneste_versjonsmerknad = Slot(uri=ADMS.versionNotes, name="Datatjeneste_versjonsmerknad", curie=ADMS.curie('versionNotes'),
                   model_uri=LUNCHREGISTERET.Datatjeneste_versjonsmerknad, domain=Datatjeneste, range=Optional[Union[str, list[str]]])

slots.Katalogpost_endringsdato = Slot(uri=DCT.modified, name="Katalogpost_endringsdato", curie=DCT.curie('modified'),
                   model_uri=LUNCHREGISTERET.Katalogpost_endringsdato, domain=Katalogpost, range=Union[str, XSDDate])

slots.Katalogpost_primaertema = Slot(uri=FOAF.primaryTopic, name="Katalogpost_primaertema", curie=FOAF.curie('primaryTopic'),
                   model_uri=LUNCHREGISTERET.Katalogpost_primaertema, domain=Katalogpost, range=Union[str, KatalogisertRessursId])

slots.Katalogpost_i_samsvar_med = Slot(uri=DCT.conformsTo, name="Katalogpost_i_samsvar_med", curie=DCT.curie('conformsTo'),
                   model_uri=LUNCHREGISTERET.Katalogpost_i_samsvar_med, domain=Katalogpost, range=Optional[Union[Union[str, StandardId], list[Union[str, StandardId]]]])

slots.Katalogpost_status = Slot(uri=ADMS.status, name="Katalogpost_status", curie=ADMS.curie('status'),
                   model_uri=LUNCHREGISTERET.Katalogpost_status, domain=Katalogpost, range=Optional[Union[str, KonseptId]])

slots.Katalogpost_utgivelsesdato = Slot(uri=DCT.issued, name="Katalogpost_utgivelsesdato", curie=DCT.curie('issued'),
                   model_uri=LUNCHREGISTERET.Katalogpost_utgivelsesdato, domain=Katalogpost, range=Optional[Union[str, XSDDate]])

slots.Katalogpost_beskrivelse = Slot(uri=DCT.description, name="Katalogpost_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Katalogpost_beskrivelse, domain=Katalogpost, range=Optional[Union[str, list[str]]])

slots.Katalogpost_kilde_post = Slot(uri=DCT.source, name="Katalogpost_kilde_post", curie=DCT.curie('source'),
                   model_uri=LUNCHREGISTERET.Katalogpost_kilde_post, domain=Katalogpost, range=Optional[Union[str, URI]])

slots.Katalogpost_spraak = Slot(uri=DCT.language, name="Katalogpost_spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.Katalogpost_spraak, domain=Katalogpost, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Katalogpost_tittel = Slot(uri=DCT.title, name="Katalogpost_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Katalogpost_tittel, domain=Katalogpost, range=Optional[Union[str, list[str]]])

slots.Katalog_beskrivelse = Slot(uri=DCT.description, name="Katalog_beskrivelse", curie=DCT.curie('description'),
                   model_uri=LUNCHREGISTERET.Katalog_beskrivelse, domain=Katalog, range=Union[str, list[str]])

slots.Katalog_kontaktpunkt = Slot(uri=DCAT.contactPoint, name="Katalog_kontaktpunkt", curie=DCAT.curie('contactPoint'),
                   model_uri=LUNCHREGISTERET.Katalog_kontaktpunkt, domain=Katalog, range=Union[Union[str, KontaktopplysningId], list[Union[str, KontaktopplysningId]]])

slots.Katalog_tittel = Slot(uri=DCT.title, name="Katalog_tittel", curie=DCT.curie('title'),
                   model_uri=LUNCHREGISTERET.Katalog_tittel, domain=Katalog, range=Union[str, list[str]])

slots.Katalog_utgiver = Slot(uri=DCT.publisher, name="Katalog_utgiver", curie=DCT.curie('publisher'),
                   model_uri=LUNCHREGISTERET.Katalog_utgiver, domain=Katalog, range=Union[str, AktoerId])

slots.Katalog_datasett = Slot(uri=DCAT.dataset, name="Katalog_datasett", curie=DCAT.curie('dataset'),
                   model_uri=LUNCHREGISTERET.Katalog_datasett, domain=Katalog, range=Optional[Union[Union[str, DatasettId], list[Union[str, DatasettId]]]])

slots.Katalog_datatjeneste = Slot(uri=DCAT.service, name="Katalog_datatjeneste", curie=DCAT.curie('service'),
                   model_uri=LUNCHREGISTERET.Katalog_datatjeneste, domain=Katalog, range=Optional[Union[Union[str, DatatjenesteId], list[Union[str, DatatjenesteId]]]])

slots.Katalog_dekningsomraade = Slot(uri=DCT.spatial, name="Katalog_dekningsomraade", curie=DCT.curie('spatial'),
                   model_uri=LUNCHREGISTERET.Katalog_dekningsomraade, domain=Katalog, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Katalog_endringsdato = Slot(uri=DCT.modified, name="Katalog_endringsdato", curie=DCT.curie('modified'),
                   model_uri=LUNCHREGISTERET.Katalog_endringsdato, domain=Katalog, range=Optional[Union[str, XSDDate]])

slots.Katalog_heimeside = Slot(uri=FOAF.homepage, name="Katalog_heimeside", curie=FOAF.curie('homepage'),
                   model_uri=LUNCHREGISTERET.Katalog_heimeside, domain=Katalog, range=Optional[Union[Union[str, URI], list[Union[str, URI]]]])

slots.Katalog_lisens = Slot(uri=DCT.license, name="Katalog_lisens", curie=DCT.curie('license'),
                   model_uri=LUNCHREGISTERET.Katalog_lisens, domain=Katalog, range=Optional[Union[str, LisensdokumentId]])

slots.Katalog_spraak = Slot(uri=DCT.language, name="Katalog_spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.Katalog_spraak, domain=Katalog, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

slots.Katalog_temaer = Slot(uri=DCAT.themeTaxonomy, name="Katalog_temaer", curie=DCAT.curie('themeTaxonomy'),
                   model_uri=LUNCHREGISTERET.Katalog_temaer, domain=Katalog, range=Optional[Union[Union[str, BegrepssamlingId], list[Union[str, BegrepssamlingId]]]])

slots.Katalog_utgivelsesdato = Slot(uri=DCT.issued, name="Katalog_utgivelsesdato", curie=DCT.curie('issued'),
                   model_uri=LUNCHREGISTERET.Katalog_utgivelsesdato, domain=Katalog, range=Optional[Union[str, XSDDate]])

slots.Katalog_gjeldende_lovgivning = Slot(uri=DCATAP.applicableLegislation, name="Katalog_gjeldende_lovgivning", curie=DCATAP.curie('applicableLegislation'),
                   model_uri=LUNCHREGISTERET.Katalog_gjeldende_lovgivning, domain=Katalog, range=Optional[Union[Union[str, RegulativRessursId], list[Union[str, RegulativRessursId]]]])

slots.Katalog_har_del = Slot(uri=DCT.hasPart, name="Katalog_har_del", curie=DCT.curie('hasPart'),
                   model_uri=LUNCHREGISTERET.Katalog_har_del, domain=Katalog, range=Optional[Union[Union[str, KatalogId], list[Union[str, KatalogId]]]])

slots.Katalog_identifikator_literal = Slot(uri=DCT.identifier, name="Katalog_identifikator_literal", curie=DCT.curie('identifier'),
                   model_uri=LUNCHREGISTERET.Katalog_identifikator_literal, domain=Katalog, range=Optional[str])

slots.Katalog_underkatalog = Slot(uri=DCAT.catalog, name="Katalog_underkatalog", curie=DCAT.curie('catalog'),
                   model_uri=LUNCHREGISTERET.Katalog_underkatalog, domain=Katalog, range=Optional[Union[Union[str, KatalogId], list[Union[str, KatalogId]]]])

slots.Katalog_katalogpost = Slot(uri=DCAT.record, name="Katalog_katalogpost", curie=DCAT.curie('record'),
                   model_uri=LUNCHREGISTERET.Katalog_katalogpost, domain=Katalog, range=Optional[Union[Union[str, KatalogpostId], list[Union[str, KatalogpostId]]]])

slots.Katalog_produsent = Slot(uri=DCT.creator, name="Katalog_produsent", curie=DCT.curie('creator'),
                   model_uri=LUNCHREGISTERET.Katalog_produsent, domain=Katalog, range=Optional[Union[str, AktoerId]])

slots.Katalog_rettigheter = Slot(uri=DCT.rights, name="Katalog_rettigheter", curie=DCT.curie('rights'),
                   model_uri=LUNCHREGISTERET.Katalog_rettigheter, domain=Katalog, range=Optional[Union[str, RettighetserklaringId]])

slots.Katalog_tidsrom = Slot(uri=DCT.temporal, name="Katalog_tidsrom", curie=DCT.curie('temporal'),
                   model_uri=LUNCHREGISTERET.Katalog_tidsrom, domain=Katalog, range=Optional[Union[Union[str, TidsromId], list[Union[str, TidsromId]]]])

slots.Lisensdokument_type_concept = Slot(uri=DCT.type, name="Lisensdokument_type_concept", curie=DCT.curie('type'),
                   model_uri=LUNCHREGISTERET.Lisensdokument_type_concept, domain=Lisensdokument, range=Optional[Union[str, KonseptId]])

slots.Kvalitetsdimensjon_har_anbefalt_term = Slot(uri=SKOS.prefLabel, name="Kvalitetsdimensjon_har_anbefalt_term", curie=SKOS.curie('prefLabel'),
                   model_uri=LUNCHREGISTERET.Kvalitetsdimensjon_har_anbefalt_term, domain=Kvalitetsdimensjon, range=Optional[Union[str, list[str]]])

slots.Kvalitetsdimensjon_har_kvalitetsdefinisjon = Slot(uri=SKOS.definition, name="Kvalitetsdimensjon_har_kvalitetsdefinisjon", curie=SKOS.curie('definition'),
                   model_uri=LUNCHREGISTERET.Kvalitetsdimensjon_har_kvalitetsdefinisjon, domain=Kvalitetsdimensjon, range=Optional[Union[str, list[str]]])

slots.Kvalitetsdimensjon_gjelder_standard = Slot(uri=DQVNO.appliesToStandard, name="Kvalitetsdimensjon_gjelder_standard", curie=DQVNO.curie('appliesToStandard'),
                   model_uri=LUNCHREGISTERET.Kvalitetsdimensjon_gjelder_standard, domain=Kvalitetsdimensjon, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]])

slots.Kvalitetsdeldimensjon_er_deldimensjon_av = Slot(uri=SKOS.broader, name="Kvalitetsdeldimensjon_er_deldimensjon_av", curie=SKOS.curie('broader'),
                   model_uri=LUNCHREGISTERET.Kvalitetsdeldimensjon_er_deldimensjon_av, domain=Kvalitetsdeldimensjon, range=Union[str, KvalitetsdimensjonId])

slots.Kvalitetsdeldimensjon_har_anbefalt_term = Slot(uri=SKOS.prefLabel, name="Kvalitetsdeldimensjon_har_anbefalt_term", curie=SKOS.curie('prefLabel'),
                   model_uri=LUNCHREGISTERET.Kvalitetsdeldimensjon_har_anbefalt_term, domain=Kvalitetsdeldimensjon, range=Optional[Union[str, list[str]]])

slots.Kvalitetsdeldimensjon_har_kvalitetsdefinisjon = Slot(uri=SKOS.definition, name="Kvalitetsdeldimensjon_har_kvalitetsdefinisjon", curie=SKOS.curie('definition'),
                   model_uri=LUNCHREGISTERET.Kvalitetsdeldimensjon_har_kvalitetsdefinisjon, domain=Kvalitetsdeldimensjon, range=Optional[Union[str, list[str]]])

slots.Kvalitetsmaal_er_i_kvalitetsdeldimensjon = Slot(uri=DQVNO.inSubDimension, name="Kvalitetsmaal_er_i_kvalitetsdeldimensjon", curie=DQVNO.curie('inSubDimension'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaal_er_i_kvalitetsdeldimensjon, domain=Kvalitetsmaal, range=Union[str, KvalitetsdeldimensjonId])

slots.Kvalitetsmaal_har_forventet_datatype = Slot(uri=DQV.expectedDataType, name="Kvalitetsmaal_har_forventet_datatype", curie=DQV.curie('expectedDataType'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaal_har_forventet_datatype, domain=Kvalitetsmaal, range=Optional[Union[str, URIorCURIE]])

slots.Kvalitetsmaal_har_anbefalt_term = Slot(uri=SKOS.prefLabel, name="Kvalitetsmaal_har_anbefalt_term", curie=SKOS.curie('prefLabel'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaal_har_anbefalt_term, domain=Kvalitetsmaal, range=Optional[Union[str, list[str]]])

slots.Kvalitetsmaal_har_kvalitetsdefinisjon = Slot(uri=SKOS.definition, name="Kvalitetsmaal_har_kvalitetsdefinisjon", curie=SKOS.curie('definition'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaal_har_kvalitetsdefinisjon, domain=Kvalitetsmaal, range=Optional[Union[str, list[str]]])

slots.Kvalitetsmerknad_er_motivert_av = Slot(uri=OA.motivatedBy, name="Kvalitetsmerknad_er_motivert_av", curie=OA.curie('motivatedBy'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmerknad_er_motivert_av, domain=Kvalitetsmerknad, range=Union[str, "DqvMotivasjon"])

slots.Kvalitetsmerknad_er_i_kvalitetsdimensjon = Slot(uri=DQV.inDimension, name="Kvalitetsmerknad_er_i_kvalitetsdimensjon", curie=DQV.curie('inDimension'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmerknad_er_i_kvalitetsdimensjon, domain=Kvalitetsmerknad, range=Optional[Union[Union[str, KvalitetsdimensjonId], list[Union[str, KvalitetsdimensjonId]]]])

slots.Kvalitetsmerknad_har_tekstdel = Slot(uri=OA.hasBody, name="Kvalitetsmerknad_har_tekstdel", curie=OA.curie('hasBody'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmerknad_har_tekstdel, domain=Kvalitetsmerknad, range=Optional[Union[Union[str, TekstdelId], list[Union[str, TekstdelId]]]])

slots.Kvalitetsmerknad_har_merknad = Slot(uri=RDFS.comment, name="Kvalitetsmerknad_har_merknad", curie=RDFS.curie('comment'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmerknad_har_merknad, domain=Kvalitetsmerknad, range=Optional[Union[str, list[str]]])

slots.Kvalitetsmerknad_har_maal = Slot(uri=OA.hasTarget, name="Kvalitetsmerknad_har_maal", curie=OA.curie('hasTarget'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmerknad_har_maal, domain=Kvalitetsmerknad, range=Optional[Union[str, URIorCURIE]])

slots.Kvalitetsmaaling_er_kvalitetsmaaling_av = Slot(uri=DQV.isMeasurementOf, name="Kvalitetsmaaling_er_kvalitetsmaaling_av", curie=DQV.curie('isMeasurementOf'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaaling_er_kvalitetsmaaling_av, domain=Kvalitetsmaaling, range=Union[str, KvalitetsmaalId])

slots.Kvalitetsmaaling_har_boolean_verdi = Slot(uri=DQV.value, name="Kvalitetsmaaling_har_boolean_verdi", curie=DQV.curie('value'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaaling_har_boolean_verdi, domain=Kvalitetsmaaling, range=Optional[Union[bool, Bool]])

slots.Kvalitetsmaaling_har_numerisk_verdi = Slot(uri=DQV.value, name="Kvalitetsmaaling_har_numerisk_verdi", curie=DQV.curie('value'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaaling_har_numerisk_verdi, domain=Kvalitetsmaaling, range=Optional[float])

slots.Kvalitetsmaaling_har_tekst_verdi = Slot(uri=DQV.value, name="Kvalitetsmaaling_har_tekst_verdi", curie=DQV.curie('value'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaaling_har_tekst_verdi, domain=Kvalitetsmaaling, range=Optional[str])

slots.Kvalitetsmaaling_har_merknad = Slot(uri=RDFS.comment, name="Kvalitetsmaaling_har_merknad", curie=RDFS.curie('comment'),
                   model_uri=LUNCHREGISTERET.Kvalitetsmaaling_har_merknad, domain=Kvalitetsmaaling, range=Optional[Union[str, list[str]]])

slots.Tekstdel_har_verdi_tekstdel = Slot(uri=RDFS.value, name="Tekstdel_har_verdi_tekstdel", curie=RDFS.curie('value'),
                   model_uri=LUNCHREGISTERET.Tekstdel_har_verdi_tekstdel, domain=Tekstdel, range=str)

slots.Tekstdel_format = Slot(uri=DCT.format, name="Tekstdel_format", curie=DCT.curie('format'),
                   model_uri=LUNCHREGISTERET.Tekstdel_format, domain=Tekstdel, range=Optional[Union[str, KonseptId]])

slots.Tekstdel_spraak = Slot(uri=DCT.language, name="Tekstdel_spraak", curie=DCT.curie('language'),
                   model_uri=LUNCHREGISTERET.Tekstdel_spraak, domain=Tekstdel, range=Optional[Union[Union[str, KonseptId], list[Union[str, KonseptId]]]])

