// Auto-generated by automapper-generator. Do not edit.

#![allow(unused_imports)]

use serde::{Deserialize, Serialize};

/// Code values for the `ablesedatum_format` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum AblesedatumFormat {
    /// CCYYMMDD
    #[serde(rename = "102")]
    Ccyymmdd,
    /// CCYYMMDDHHMMZZZ
    #[serde(rename = "303")]
    Ccyymmddhhmmzzz,
    /// CCYYMM
    #[serde(rename = "610")]
    Ccyymm,
}

/// Code values for the `abonnement` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Abonnement {
    /// Kann nicht angeboten werden
    #[serde(rename = "Z09")]
    KannNichtAngebotenWerden,
    /// Identifikationslogik
    #[serde(rename = "Z36")]
    Identifikationslogik,
    /// Abgrenzung von Energiemengen
    #[serde(rename = "Z46")]
    AbgrenzungEnergiemengen,
    /// Abgrenzung
    #[serde(rename = "Z47")]
    Abgrenzung,
    /// Wechselereignis
    #[serde(rename = "Z48")]
    Wechselereignis,
    /// Zwischenablesung
    #[serde(rename = "Z49")]
    Zwischenablesung,
    /// Abschluss eines direkten Vertrags zwischen MSB der Marktlokation und AN
    #[serde(rename = "Z61")]
    AbschlussDirektenVertragsMsbMarktlokation,
    /// Abschluss eines direkten Vertrags zwischen MSB der Marktlokation und ANN
    #[serde(rename = "Z62")]
    AbschlussDirektenVertragsMsbMarktlokationAnn,
    /// Aufgrund von Änderungen im Lokationsbündel erfolgt die Abrechnung der Messentgelte über eine andere Marktlokation im Lokationsbündel
    #[serde(rename = "Z63")]
    AufgrundAenderungenLokationsbuendelErfolgtAbrechnungMessentgelteAndere,
    /// Neukonfiguration
    #[serde(rename = "Z64")]
    Neukonfiguration,
    /// Konfiguration unverändert
    #[serde(rename = "Z65")]
    KonfigurationUnveraendert,
}

/// Code values for the `aenderungs_verfahren` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum AenderungsVerfahren {
    /// Zählzeitdefinition ist bestellbar
    #[serde(rename = "Z27")]
    ZaehlzeitdefinitionBestellbar,
    /// Zählzeitdefinition ist nicht bestellbar
    #[serde(rename = "Z28")]
    ZaehlzeitdefinitionNichtBestellbar,
}

/// Code values for the `aktion` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Aktion {
    /// Diese Ebene und alle tieferen Ebenen zurückgewiesen
    #[serde(rename = "4")]
    DieseEbeneAlleTieferenEbenenZurueckgewiesen,
}

/// Code values for the `aktion_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum AktionCode {
    /// Enthalten in Dokument/Nachricht
    #[serde(rename = "1")]
    EnthaltenDokumentNachricht,
}

/// Code values for the `artikel_nummer_typ` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ArtikelNummerTyp {
    /// Artikelnummer
    #[serde(rename = "Z01")]
    Artikelnummer,
    /// Artikel-ID
    #[serde(rename = "Z09")]
    ArtikelId,
}

/// Code values for the `bank_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum BankQualifier {
    /// Kreditinstitut
    #[serde(rename = "BK")]
    Kreditinstitut,
}

/// Code values for the `befristung_grund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum BefristungGrund {
    /// Kunde verlässt eine schon bestehende Marktlokation
    #[serde(rename = "E01")]
    KundeVerlaesstBestehendeMarktlokation,
    /// - Kunde bleibt an der Marktlokation, hat nur den Marktpartner gewechselt - Marktpartner hat den Kunden gekündigt
    #[serde(rename = "E03")]
    KundeBleibtMarktlokationMarktpartnerGewechseltMarktpartnerKunden,
}

/// Code values for the `beschreibungsformat` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Beschreibungsformat {
    /// Code (aus der Liste einer codepflegenden Organisation)
    #[serde(rename = "C")]
    CodeListeCodepflegendenOrganisation,
    /// Freier Text
    #[serde(rename = "F")]
    FreierText,
    /// Teilstrukturiert (Code und Text)
    #[serde(rename = "X")]
    TeilstrukturiertCodeText,
}

/// Code values for the `betrag_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum BetragQualifier {
    /// Vorausbezahlter Betrag (inkl. USt.)
    #[serde(rename = "113")]
    VorausbezahlterBetragInklUst,
    /// Vorausbezahlte Steuern (USt.-Anteil des vorausbezahlten Betrages)
    #[serde(rename = "115")]
    VorausbezahlteSteuernUstAnteilVorausbezahltenBetrages,
    /// Überweisungsbetrag
    #[serde(rename = "12")]
    Ueberweisungsbetrag,
    /// Besteuerungsgrundlage
    #[serde(rename = "125")]
    Besteuerungsgrundlage,
    /// Gesamtzu- oder abschlagsbetrag
    #[serde(rename = "131")]
    GesamtzuAbschlagsbetrag,
    /// Steuer-/Gebühren-/Abgabebetrag
    #[serde(rename = "161")]
    SteuerGebuehrenAbgabebetrag,
    /// Positionsbetrag (ohne USt.)
    #[serde(rename = "203")]
    PositionsbetragOhneUst,
    /// Zu-/Abschlagsbasis
    #[serde(rename = "25")]
    Abschlagsbasis,
    /// Rechnungsbetrag
    #[serde(rename = "77")]
    Rechnungsbetrag,
    /// Fälliger Betrag (inkl. USt.)
    #[serde(rename = "9")]
    FaelligerBetragInklUst,
    /// Gemeinderabatt
    #[serde(rename = "Z01")]
    Gemeinderabatt,
}

/// Code values for the `bilanzkreiszuordnung_status` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum BilanzkreiszuordnungStatus {
    /// gescheitert
    #[serde(rename = "Z13")]
    Gescheitert,
    /// erfolgreich
    #[serde(rename = "Z14")]
    Erfolgreich,
}

/// Code values for the `datenelement_fehler_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum DatenelementFehlerCode {
    /// Mitteilung, dass der Wert eines einfachen Datenelements, einer Datenelementgruppe oder eines Gruppendatenelements nicht den entsprechenden Spezifikationen entspricht (z. B. Qualifier nicht aus erlaubtem Wertebereich oder ungültiges Datumsformat).
    #[serde(rename = "12")]
    MitteilungDassWertEinfachenDatenelementsDatenelementgruppe,
    /// Mitteilung, dass ein mit M oder R gekennzeichnetes Datenelement, eine Datenelementgruppe oder ein Gruppendatenelement fehlt.
    #[serde(rename = "13")]
    MitteilungDassMRGekennzeichnetesServiceNutzdatenSegmentDatenelement,
    /// Mitteilung, dass die identifizierte Datenelementgruppe zu viele Gruppendatenelemente enthält.
    #[serde(rename = "16")]
    MitteilungDassIdentifizierteSegmentVieleDatenelementeIdentifizierte,
    /// Mitteilung, dass die im Datenelement verwendete Dezimalschreibung nicht mit derjenigen im UNA angezeigten übereinstimmt.
    #[serde(rename = "19")]
    MitteilungDassDatenelementVerwendeteDezimalschreibungNichtDerjenigenUna,
    /// Mitteilung, dass ein oder mehrere in der Übertragungsdatei verwendete Zeichen nach der definierten Syntax-Ebene im Segment UNB ungültig sind. Das ungültige Zeichen ist Teil der Bezugsebene oder folgt unmittelbar dem identifizierten Teil der Übertragungsdatei.
    #[serde(rename = "21")]
    MitteilungDassMehrereUebertragungsdateiVerwendeteZeichenDefiniertenSyntax,
    /// Mitteilung, dass die in der Übertragungsdatei verwendeten Service-Zeichen nicht als Service-Zeichen gültig sind. Diese Zeichen werden entweder im UNA angezeigt oder nach der in UNB angezeigten Syntax-Kennung definiert oder in einer Datenaustauschvereinbarung definiert. Wenn dieser Code in den Segmenten UCS oder UCD verwendet wird, folgt das ungültige Zeichen unmittelbar dem identifizierten Teil der Übertragungsdatei.
    #[serde(rename = "22")]
    MitteilungDassUebertragungsdateiVerwendetenServiceZeichenNichtService,
    /// Mitteilung, dass ein oder mehrere numerische Zeichen in einem alphabetischen (Gruppen-)Datenelement oder ein oder mehrere alphabetische Zeichen in einem numerischen (Gruppen-)Datenelement verwendet wurden.
    #[serde(rename = "37")]
    MitteilungDassMehrereNumerischeZeichenAlphabetischenGruppenDatenelement,
    /// Mitteilung, dass vor einem Dezimalzeichen nicht eine oder mehrere Ziffern stehen.
    #[serde(rename = "38")]
    MitteilungDassVorDezimalzeichenNichtMehrereZiffernStehen,
    /// Mitteilung, dass die Länge eines empfangenen Datenelements die maximale Länge nach der Datenelementbeschreibung überschreitet.
    #[serde(rename = "39")]
    MitteilungDassLaengeEmpfangenenDatenelementsMaximaleLaenge,
    /// Mitteilung, dass die Länge eines empfangenen Datenelements die Mindestlänge nach der Datenelementbeschreibung unterschreitet.
    #[serde(rename = "40")]
    MitteilungDassLaengeEmpfangenenDatenelementsMindestlaenge,
}

/// Code values for the `datenqualitaet` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Datenqualitaet {
    /// Angebotsnummer
    #[serde(rename = "AAG")]
    Angebotsnummer,
    /// Nummer der Anfrage
    #[serde(rename = "AAV")]
    NummerAnfrage,
    /// Nummer des zugehörigen Dokuments
    #[serde(rename = "ACE")]
    NummerZugehoerigenDokuments,
    /// Referenznummer einer vorangegangenen Nachricht
    #[serde(rename = "ACW")]
    ReferenznummerVorangegangenenNachricht,
    /// Mitteilungsnummer
    #[serde(rename = "ADY")]
    Mitteilungsnummer,
    /// Zugehörige Rechnungen
    #[serde(rename = "AFL")]
    ZugehoerigeRechnungen,
    /// Beantragungsnummer
    #[serde(rename = "AGI")]
    Beantragungsnummer,
    /// Anwendungsreferenznummer
    #[serde(rename = "AGK")]
    Anwendungsreferenznummer,
    /// Absenderreferenz für die Original-Nachricht
    #[serde(rename = "AGO")]
    AbsenderreferenzOriginalNachricht,
    /// Verweis auf Katalognummer
    #[serde(rename = "APF")]
    VerweisKatalognummer,
    /// Referenz auf eine Zeitreihe
    #[serde(rename = "AUU")]
    ReferenzZeitreihe,
    /// Kundennummer beim Lieferanten
    #[serde(rename = "AVC")]
    KundennummerBeimLieferanten,
    /// Meldepunkt
    #[serde(rename = "AVE")]
    Meldepunkt,
    /// Steuernummer
    #[serde(rename = "FC")]
    Steuernummer,
    /// Gerätenummer
    #[serde(rename = "MG")]
    Geraetenummer,
    /// Ursprungsrechnungsnummer
    #[serde(rename = "OI")]
    Ursprungsrechnungsnummer,
    /// Auftragsnummer (Einkauf)
    #[serde(rename = "ON")]
    AuftragsnummerEinkauf,
    /// Transaktions-Referenznummer
    #[serde(rename = "TN")]
    TransaktionsReferenznummer,
    /// Umsatzsteuernummer
    #[serde(rename = "VA")]
    Umsatzsteuernummer,
    /// Kundennummer beim Altlieferanten
    #[serde(rename = "Z01")]
    KundennummerBeimAltlieferanten,
    /// Positionsnummer des Angebots
    #[serde(rename = "Z03")]
    PositionsnummerAngebots,
    /// Abrechnung des Messstellenbetriebs über NNE
    #[serde(rename = "Z05")]
    AbrechnungMessstellenbetriebsNne,
    /// MP-ID des nachfolgenden Netzbetreibers
    #[serde(rename = "Z08")]
    MpIdNachfolgendenNetzbetreibers,
    /// Gerätenummer
    #[serde(rename = "Z09")]
    Geraetenummer2,
    /// OBIS-Kennzahl
    #[serde(rename = "Z10")]
    ObisKennzahl,
    /// Gerätenummer des Mengenumwerters
    #[serde(rename = "Z11")]
    GeraetenummerMengenumwerters,
    /// Referenz auf ein Profil
    #[serde(rename = "Z12")]
    ReferenzProfil,
    /// Prüfidentifikator
    #[serde(rename = "Z13")]
    Pruefidentifikator,
    /// Smartmeter-Gateway
    #[serde(rename = "Z14")]
    SmartmeterGateway,
    /// zugeordnete Marktlokation
    #[serde(rename = "Z16")]
    ZugeordneteMarktlokation,
    /// Preisschlüsselstamm
    #[serde(rename = "Z17")]
    Preisschluesselstamm,
    /// Marktlokation
    #[serde(rename = "Z18")]
    Marktlokation,
    /// Messlokation
    #[serde(rename = "Z19")]
    Messlokation,
    /// Tranche
    #[serde(rename = "Z20")]
    Tranche,
    /// zugeordnete Messlokation
    #[serde(rename = "Z21")]
    ZugeordneteMesslokation,
    /// Beteiligte Marktrolle
    #[serde(rename = "Z22")]
    BeteiligteMarktrolle,
    /// Rechenschritt
    #[serde(rename = "Z23")]
    Rechenschritt,
    /// Faxnummer
    #[serde(rename = "Z25")]
    Faxnummer,
    /// Code der Zählzeitdefinition
    #[serde(rename = "Z27")]
    CodeZaehlzeitdefinition,
    /// Code des zählenden Registers
    #[serde(rename = "Z28")]
    CodeZaehlendenRegisters,
    /// Referenz auf vorherige Stammdatenmeldung des MSB
    #[serde(rename = "Z30")]
    ReferenzVorherigeStammdatenmeldungMsb,
    /// Lokationsbündelstruktur
    #[serde(rename = "Z31")]
    Lokationsbuendelstruktur,
    /// Netzlokation
    #[serde(rename = "Z32")]
    Netzlokation,
    /// Objektcode der Lokation in der Lokationsbündelstruktur
    #[serde(rename = "Z33")]
    ObjektcodeLokationLokationsbuendelstruktur,
    /// vorgelagerte Messlokation
    #[serde(rename = "Z34")]
    VorgelagerteMesslokation,
    /// vorgelagerte Netzlokation
    #[serde(rename = "Z35")]
    VorgelagerteNetzlokation,
    /// Technische Ressource
    #[serde(rename = "Z37")]
    TechnischeRessource,
    /// Steuerbare Ressource
    #[serde(rename = "Z38")]
    SteuerbareRessource,
    /// Keine standardisierte Lokationsbündelstruktur vorhanden
    #[serde(rename = "Z39")]
    KeineStandardisierteLokationsbuendelstrukturVorhanden,
    /// Referenznummer des Vorgangs der Anmeldung nach WiM
    #[serde(rename = "Z41")]
    ReferenznummerVorgangsAnmeldungWim,
    /// Referenznummer der Nachricht der betroffenen Antwort auf Bestellung (Bestellbestätigung)
    #[serde(rename = "Z42")]
    ReferenznummerNachrichtBetroffenenAntwortBestellungBestellbestaetigung,
    /// Referenznummer des Vorgangs der betroffenen Antwort auf Bestellung (Bestellbestätigung)
    #[serde(rename = "Z43")]
    ReferenznummerVorgangsBetroffenenAntwortBestellungBestellbestaetigung,
    /// Referenz auf die Artikel-ID
    #[serde(rename = "Z45")]
    ReferenzArtikelId,
    /// Referenz auf Zeitraum-ID
    #[serde(rename = "Z46")]
    ReferenzZeitraumId,
    /// Im System vorhandene Daten
    #[serde(rename = "Z47")]
    SystemVorhandeneDaten,
    /// Erwartete Daten
    #[serde(rename = "Z48")]
    ErwarteteDaten,
    /// Gültige Daten
    #[serde(rename = "Z49")]
    GueltigeDaten,
    /// Termindaten der Marktlokation
    #[serde(rename = "Z50")]
    TermindatenMarktlokation,
    /// Erwartete Termindaten der Marktlokation
    #[serde(rename = "Z51")]
    ErwarteteTermindatenMarktlokation,
    /// Im System vorhandene Termindaten der Marktlokation
    #[serde(rename = "Z52")]
    SystemVorhandeneTermindatenMarktlokation,
    /// Keine Daten
    #[serde(rename = "Z53")]
    KeineDaten,
    /// Im System keine Daten vorhanden
    #[serde(rename = "Z54")]
    SystemKeineDatenVorhanden,
    /// Keine Daten erwartet
    #[serde(rename = "Z55")]
    KeineDatenErwartet,
    /// Preise des Netzbetreibers
    #[serde(rename = "Z56")]
    PreiseNetzbetreibers,
    /// Marktlokation Kundenanlage
    #[serde(rename = "Z59")]
    MarktlokationKundenanlage,
    /// Informativ zur Umsetzung geplantes Produktpaket
    #[serde(rename = "Z60")]
    InformativUmsetzungGeplantesProduktpaket,
    /// Erwartete Daten
    #[serde(rename = "erwartet")]
    Erwartet,
    /// Gültige Daten
    #[serde(rename = "gueltigeDaten")]
    GueltigeDaten2,
    /// Im System vorhandene Daten
    #[serde(rename = "imSystemVorhanden")]
    ImSystemVorhanden,
    /// Keine Daten
    #[serde(rename = "keineDaten")]
    KeineDaten2,
    /// Keine Daten erwartet
    #[serde(rename = "keineDatenErwartet")]
    KeineDatenErwartet2,
    /// Im System keine Daten vorhanden
    #[serde(rename = "keineDatenImSystem")]
    KeineDatenImSystem,
}

/// Code values for the `datenqualitaet2` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Datenqualitaet2 {
    /// Erwartete Profilschardaten
    #[serde(rename = "erwartet")]
    Erwartet,
    /// Im System vorhandene Profilschardaten
    #[serde(rename = "imSystemVorhanden")]
    ImSystemVorhanden,
}

/// Code values for the `datum_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum DatumQualifier {
    /// Dokumenten-/Nachrichtendatum/-zeit
    #[serde(rename = "137")]
    DokumentenNachrichtendatumZeit,
    /// Annahmedatum eines Dokument
    #[serde(rename = "154")]
    AnnahmedatumDokument,
    /// Rechnungsperiode, Beginndatum
    #[serde(rename = "155")]
    RechnungsperiodeBeginndatum,
    /// Rechnungsperiode, Endedatum
    #[serde(rename = "156")]
    RechnungsperiodeEndedatum,
    /// Gültigkeit, Beginndatum
    #[serde(rename = "157")]
    GueltigkeitBeginndatum,
    /// Bilanzierungsbeginn
    #[serde(rename = "158")]
    Bilanzierungsbeginn,
    /// Bilanzierungsende
    #[serde(rename = "159")]
    Bilanzierungsende,
    /// Verarbeitung, Beginndatum/-zeit
    #[serde(rename = "163")]
    VerarbeitungBeginndatumZeit,
    /// Verarbeitung, Endedatum/-zeit
    #[serde(rename = "164")]
    VerarbeitungEndedatumZeit,
    /// Referenzdatum/-zeit
    #[serde(rename = "171")]
    ReferenzdatumZeit,
    /// Ausführungsdatum/-zeit
    #[serde(rename = "203")]
    AusfuehrungsdatumZeit,
    /// Endedatum/-zeit
    #[serde(rename = "206")]
    EndedatumZeit,
    /// Fälligkeitsdatum
    #[serde(rename = "265")]
    Faelligkeitsdatum,
    /// Gültigkeitszeitspanne
    #[serde(rename = "273")]
    Gueltigkeitszeitspanne,
    /// Datum/Zeit der abgeschlossenen Leistung (Arbeit), geplant
    #[serde(rename = "292")]
    DatumZeitAbgeschlossenenLeistungArbeitGeplant,
    /// Fertigstellungsdatum/-zeit
    #[serde(rename = "293")]
    FertigstellungsdatumZeit,
    /// Rechnungsdatum/-zeit
    #[serde(rename = "3")]
    RechnungsdatumZeit,
    /// Leistungsperiode
    #[serde(rename = "306")]
    Leistungsperiode,
    /// Statusveränderung, Datum/Zeit
    #[serde(rename = "334")]
    StatusveraenderungDatumZeit,
    /// Startdatum oder -zeitpunkt, frühestes/r
    #[serde(rename = "469")]
    StartdatumZeitpunktFruehestesR,
    /// Ende zum (nächstmöglichem Termin)
    #[serde(rename = "471")]
    EndeNaechstmoeglichemTermin,
    /// Endedatum oder -zeitpunkt, spätestes/r
    #[serde(rename = "472")]
    EndedatumZeitpunktSpaetestesR,
    /// Bilanzierungsdatum, -zeit, -periode
    #[serde(rename = "492")]
    BilanzierungsdatumZeitPeriode,
    /// Konstruktionsänderungsdatum
    #[serde(rename = "60")]
    Konstruktionsaenderungsdatum,
    /// Gültigkeitsdatum/-zeit
    #[serde(rename = "7")]
    GueltigkeitsdatumZeit,
    /// Turnusablesung
    #[serde(rename = "752")]
    Turnusablesung,
    /// Lieferdatum/-zeit, geplant
    #[serde(rename = "76")]
    LieferdatumZeitGeplant,
    /// Bearbeitungs-/Verarbeitungsdatum/-zeit
    #[serde(rename = "9")]
    BearbeitungsVerarbeitungsdatumZeit,
    /// Datum Vertragsbeginn
    #[serde(rename = "92")]
    DatumVertragsbeginn,
    /// Datum Vertragsende
    #[serde(rename = "93")]
    DatumVertragsende,
    /// Produktions-/Herstellungsdatum
    #[serde(rename = "94")]
    ProduktionsHerstellungsdatum,
    /// Kündigungsfrist
    #[serde(rename = "Z01")]
    Kuendigungsfrist,
    /// Baujahr/Jahr des in Verkehrs bringens
    #[serde(rename = "Z03")]
    BaujahrJahrVerkehrsBringens,
    /// Eichgültigkeit
    #[serde(rename = "Z04")]
    Eichgueltigkeit,
    /// gegenüber Kunde bestätigtes Kündigungsdatum
    #[serde(rename = "Z05")]
    GegenueberKundeBestaetigtesKuendigungsdatum,
    /// gegenüber Lieferant bestätigtes Kündigungsdatum
    #[serde(rename = "Z06")]
    GegenueberLieferantBestaetigtesKuendigungsdatum,
    /// Lieferbeginndatum in Bearbeitung
    #[serde(rename = "Z07")]
    LieferbeginndatumBearbeitung,
    /// Datum für nächste Bearbeitung
    #[serde(rename = "Z08")]
    DatumNaechsteBearbeitung,
    /// Nächste Netznutzungsabrechnung
    #[serde(rename = "Z09")]
    NaechsteNetznutzungsabrechnung,
    /// Kündigungstermin
    #[serde(rename = "Z10")]
    Kuendigungstermin,
    /// "Bilanzierungsbeginn" aus Daten der beteiligten Marktrolle
    #[serde(rename = "Z15")]
    BilanzierungsbeginnDatenBeteiligtenMarktrolle,
    /// "Bilanzierungsende" aus Daten der beteiligten Marktrolle
    #[serde(rename = "Z16")]
    BilanzierungsendeDatenBeteiligtenMarktrolle,
    /// Abrechnungsintervall des LF
    #[serde(rename = "Z20")]
    AbrechnungsintervallLf,
    /// Termin der Netznutzungsabrechnung
    #[serde(rename = "Z21")]
    TerminNetznutzungsabrechnung,
    /// Netznutzungsabrechnungs- bzw. Einspeisevergütungsintervall des NB
    #[serde(rename = "Z22")]
    NetznutzungsabrechnungsEinspeiseverguetungsintervallNb,
    /// Verwendung der Daten ab
    #[serde(rename = "Z25")]
    VerwendungDaten,
    /// Verwendung der Daten bis
    #[serde(rename = "Z26")]
    VerwendungDatenBis,
    /// Zählzeitänderungszeitpunkt
    #[serde(rename = "Z33")]
    Zaehlzeitaenderungszeitpunkt,
    /// Gültigkeitsbeginn
    #[serde(rename = "Z34")]
    Gueltigkeitsbeginn,
    /// Gültigkeitsende
    #[serde(rename = "Z35")]
    Gueltigkeitsende,
    /// Verfügbarkeit Montag
    #[serde(rename = "Z36")]
    VerfuegbarkeitMontag,
    /// Verfügbarkeit Dienstag
    #[serde(rename = "Z37")]
    VerfuegbarkeitDienstag,
    /// Verfügbarkeit Mittwoch
    #[serde(rename = "Z38")]
    VerfuegbarkeitMittwoch,
    /// Verfügbarkeit Donnerstag
    #[serde(rename = "Z39")]
    VerfuegbarkeitDonnerstag,
    /// Verfügbarkeit Freitag
    #[serde(rename = "Z40")]
    VerfuegbarkeitFreitag,
    /// Mittagspause (= Ausschluss der Verfügbarkeit)
    #[serde(rename = "Z41")]
    MittagspauseAusschlussVerfuegbarkeit,
    /// Schaltzeitänderungszeitpunkt
    #[serde(rename = "Z44")]
    Schaltzeitaenderungszeitpunkt,
    /// Leistungskurvenänderungszeitpunkt
    #[serde(rename = "Z45")]
    Leistungskurvenaenderungszeitpunkt,
}

/// Code values for the `dokumenttyp` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Dokumenttyp {
    /// Anfrage
    #[serde(rename = "21")]
    Anfrage,
    /// Antwort auf Anfrage
    #[serde(rename = "22")]
    AntwortAnfrage,
    /// Statusinformationen
    #[serde(rename = "23")]
    Statusinformationen,
    /// Prüfbericht
    #[serde(rename = "293")]
    Pruefbericht2,
    /// Handelsrechnung
    #[serde(rename = "380")]
    Handelsrechnung,
    /// Selbst ausgestellte Rechnung (engl.: "Self-billed invoice")
    #[serde(rename = "389")]
    SelbstAusgestellteRechnungEnglSelfBilledInvoice,
    /// Storno einer Belastung.
    #[serde(rename = "457")]
    StornoBelastung,
    /// Storno für selbst ausgestellte Rechnung (Gutschrift im Gutschriftsverfahren)
    #[serde(rename = "Z25")]
    StornoSelbstAusgestellteRechnungGutschriftGutschriftsverfahren,
    /// Lieferschein Grund- / Arbeitspreis
    #[serde(rename = "Z41")]
    LieferscheinGrundArbeitspreis,
    /// Lieferschein Arbeits- / Leistungspreis
    #[serde(rename = "Z42")]
    LieferscheinArbeitsLeistungspreis,
}

/// Code values for the `ebd_nummer` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum EbdNummer {
    /// EBD Nr. E_0004
    #[serde(rename = "E_0004")]
    EbdNrE0004,
    /// EBD Nr. E_0009
    #[serde(rename = "E_0009")]
    EbdNrE0009,
    /// EBD Nr. E_0010
    #[serde(rename = "E_0010")]
    EbdNrE0010,
    /// EBD Nr. E_0011
    #[serde(rename = "E_0011")]
    EbdNrE0011,
    /// EBD Nr. E_0012
    #[serde(rename = "E_0012")]
    EbdNrE0012,
    /// EBD Nr. E_0014
    #[serde(rename = "E_0014")]
    EbdNrE0014,
    /// EBD Nr. E_0015
    #[serde(rename = "E_0015")]
    EbdNrE0015,
    /// EBD Nr. E_0017
    #[serde(rename = "E_0017")]
    EbdNrE0017,
    /// EBD Nr. E_0018
    #[serde(rename = "E_0018")]
    EbdNrE0018,
    /// EBD Nr. E_0020
    #[serde(rename = "E_0020")]
    EbdNrE0020,
    /// EBD Nr. E_0024
    #[serde(rename = "E_0024")]
    EbdNrE0024,
    /// EBD Nr. E_0027
    #[serde(rename = "E_0027")]
    EbdNrE0027,
    /// EBD Nr. E_0028
    #[serde(rename = "E_0028")]
    EbdNrE0028,
    /// EBD Nr. E_0034
    #[serde(rename = "E_0034")]
    EbdNrE0034,
    /// EBD Nr. E_0035
    #[serde(rename = "E_0035")]
    EbdNrE0035,
    /// EBD Nr. E_0039
    #[serde(rename = "E_0039")]
    EbdNrE0039,
    /// EBD Nr. E_0047
    #[serde(rename = "E_0047")]
    EbdNrE0047,
    /// EBD Nr. E_0049
    #[serde(rename = "E_0049")]
    EbdNrE0049,
    /// EBD Nr. E_0052
    #[serde(rename = "E_0052")]
    EbdNrE0052,
    /// EBD Nr. E_0068
    #[serde(rename = "E_0068")]
    EbdNrE0068,
    /// EBD Nr. E_0070
    #[serde(rename = "E_0070")]
    EbdNrE0070,
    /// EBD Nr. E_0071
    #[serde(rename = "E_0071")]
    EbdNrE0071,
    /// EBD Nr. E_0072
    #[serde(rename = "E_0072")]
    EbdNrE0072,
    /// EBD Nr. E_0078
    #[serde(rename = "E_0078")]
    EbdNrE0078,
    /// EBD Nr. E_0079
    #[serde(rename = "E_0079")]
    EbdNrE0079,
    /// EBD Nr. E_0096
    #[serde(rename = "E_0096")]
    EbdNrE0096,
    /// EBD Nr. E_0097
    #[serde(rename = "E_0097")]
    EbdNrE0097,
    /// EBD Nr. E_0102
    #[serde(rename = "E_0102")]
    EbdNrE0102,
    /// EBD Nr. E_0103
    #[serde(rename = "E_0103")]
    EbdNrE0103,
    /// EBD Nr. E_0104
    #[serde(rename = "E_0104")]
    EbdNrE0104,
    /// EBD Nr. E_0105
    #[serde(rename = "E_0105")]
    EbdNrE0105,
    /// EBD Nr. E_0218
    #[serde(rename = "E_0218")]
    EbdNrE0218,
    /// EBD Nr. E_0408
    #[serde(rename = "E_0408")]
    EbdNrE0408,
    /// EBD Nr. E_0409
    #[serde(rename = "E_0409")]
    EbdNrE0409,
    /// EBD Nr. E_0410
    #[serde(rename = "E_0410")]
    EbdNrE0410,
    /// EBD Nr. E_0412
    #[serde(rename = "E_0412")]
    EbdNrE0412,
    /// EBD Nr. E_0415
    #[serde(rename = "E_0415")]
    EbdNrE0415,
    /// EBD Nr. E_0510
    #[serde(rename = "E_0510")]
    EbdNrE0510,
    /// EBD Nr. E_0511
    #[serde(rename = "E_0511")]
    EbdNrE0511,
    /// EBD Nr. E_0512
    #[serde(rename = "E_0512")]
    EbdNrE0512,
    /// EBD Nr. E_0513
    #[serde(rename = "E_0513")]
    EbdNrE0513,
    /// EBD Nr. E_0572
    #[serde(rename = "E_0572")]
    EbdNrE0572,
    /// EBD Nr. E_0574
    #[serde(rename = "E_0574")]
    EbdNrE0574,
    /// EBD Nr. E_0578
    #[serde(rename = "E_0578")]
    EbdNrE0578,
    /// EBD Nr. E_0583
    #[serde(rename = "E_0583")]
    EbdNrE0583,
    /// EBD Nr. E_0603
    #[serde(rename = "E_0603")]
    EbdNrE0603,
    /// EBD Nr. E_0604
    #[serde(rename = "E_0604")]
    EbdNrE0604,
    /// EBD Nr. E_0605
    #[serde(rename = "E_0605")]
    EbdNrE0605,
    /// EBD Nr. E_0606
    #[serde(rename = "E_0606")]
    EbdNrE0606,
    /// EBD Nr. E_0607
    #[serde(rename = "E_0607")]
    EbdNrE0607,
    /// EBD Nr. E_0608
    #[serde(rename = "E_0608")]
    EbdNrE0608,
    /// EBD Nr. E_0609
    #[serde(rename = "E_0609")]
    EbdNrE0609,
    /// EBD Nr. E_0610
    #[serde(rename = "E_0610")]
    EbdNrE0610,
    /// EBD Nr. E_0611
    #[serde(rename = "E_0611")]
    EbdNrE0611,
    /// EBD Nr. E_0612
    #[serde(rename = "E_0612")]
    EbdNrE0612,
    /// EBD Nr. E_0614
    #[serde(rename = "E_0614")]
    EbdNrE0614,
    /// EBD Nr. E_0615
    #[serde(rename = "E_0615")]
    EbdNrE0615,
    /// EBD Nr. E_0622
    #[serde(rename = "E_0622")]
    EbdNrE0622,
    /// EBD Nr. E_0623
    #[serde(rename = "E_0623")]
    EbdNrE0623,
    /// EBD Nr. E_0624
    #[serde(rename = "E_0624")]
    EbdNrE0624,
    /// EBD Nr. E_0639
    #[serde(rename = "E_0639")]
    EbdNrE0639,
    /// Codeliste Gas und Strom Nr. GS_001
    #[serde(rename = "GS_001")]
    CodelisteGasStromNrGs001,
    /// Codeliste Gas Nr. G_0002
    #[serde(rename = "G_0002")]
    CodelisteGasNrG0002,
    /// Codeliste Gas Nr. G_0003
    #[serde(rename = "G_0003")]
    CodelisteGasNrG0003,
    /// Codeliste Gas Nr. G_0004
    #[serde(rename = "G_0004")]
    CodelisteGasNrG0004,
    /// Codeliste Gas Nr. G_0005
    #[serde(rename = "G_0005")]
    CodelisteGasNrG0005,
    /// Codeliste Gas Nr. G_0006
    #[serde(rename = "G_0006")]
    CodelisteGasNrG0006,
    /// Codeliste Gas Nr. G_0007
    #[serde(rename = "G_0007")]
    CodelisteGasNrG0007,
    /// Codeliste Gas Nr. G_0008
    #[serde(rename = "G_0008")]
    CodelisteGasNrG0008,
    /// Codeliste Gas Nr. G_0009
    #[serde(rename = "G_0009")]
    CodelisteGasNrG0009,
    /// Codeliste Gas Nr. G_0010
    #[serde(rename = "G_0010")]
    CodelisteGasNrG0010,
    /// Codeliste Gas Nr. G_0011
    #[serde(rename = "G_0011")]
    CodelisteGasNrG0011,
    /// Codeliste Gas Nr. G_0012
    #[serde(rename = "G_0012")]
    CodelisteGasNrG0012,
    /// Codeliste Gas Nr. G_0013
    #[serde(rename = "G_0013")]
    CodelisteGasNrG0013,
    /// Codeliste Gas Nr. G_0014
    #[serde(rename = "G_0014")]
    CodelisteGasNrG0014,
    /// Codeliste Gas Nr. G_0016
    #[serde(rename = "G_0016")]
    CodelisteGasNrG0016,
    /// Codeliste Gas Nr. G_0018
    #[serde(rename = "G_0018")]
    CodelisteGasNrG0018,
    /// Codeliste Gas Nr. G_0019
    #[serde(rename = "G_0019")]
    CodelisteGasNrG0019,
    /// Codeliste Gas Nr. G_0022
    #[serde(rename = "G_0022")]
    CodelisteGasNrG0022,
    /// Codeliste Gas Nr. G_0023
    #[serde(rename = "G_0023")]
    CodelisteGasNrG0023,
    /// Codeliste Gas Nr. G_0025
    #[serde(rename = "G_0025")]
    CodelisteGasNrG0025,
    /// Codeliste Gas Nr. G_0026
    #[serde(rename = "G_0026")]
    CodelisteGasNrG0026,
    /// Codeliste Gas Nr. G_0027
    #[serde(rename = "G_0027")]
    CodelisteGasNrG0027,
    /// Codeliste Gas Nr. G_0030
    #[serde(rename = "G_0030")]
    CodelisteGasNrG0030,
    /// Codeliste Gas Nr. G_0031
    #[serde(rename = "G_0031")]
    CodelisteGasNrG0031,
    /// Codeliste Gas Nr. G_0032
    #[serde(rename = "G_0032")]
    CodelisteGasNrG0032,
    /// Codeliste Gas Nr. G_0033
    #[serde(rename = "G_0033")]
    CodelisteGasNrG0033,
    /// Codeliste Gas Nr. G_0034
    #[serde(rename = "G_0034")]
    CodelisteGasNrG0034,
    /// Codeliste Gas Nr. G_0035
    #[serde(rename = "G_0035")]
    CodelisteGasNrG0035,
    /// Codeliste Gas Nr. G_0036
    #[serde(rename = "G_0036")]
    CodelisteGasNrG0036,
    /// Codeliste Gas Nr. G_0038
    #[serde(rename = "G_0038")]
    CodelisteGasNrG0038,
    /// Codeliste Gas Nr. G_0039
    #[serde(rename = "G_0039")]
    CodelisteGasNrG0039,
    /// Codeliste Gas Nr. G_0040
    #[serde(rename = "G_0040")]
    CodelisteGasNrG0040,
    /// Codeliste Gas Nr. G_0042
    #[serde(rename = "G_0042")]
    CodelisteGasNrG0042,
    /// Codeliste Gas Nr. G_0043
    #[serde(rename = "G_0043")]
    CodelisteGasNrG0043,
    /// Codeliste Gas Nr. G_0044
    #[serde(rename = "G_0044")]
    CodelisteGasNrG0044,
    /// Codeliste Gas Nr. G_0045
    #[serde(rename = "G_0045")]
    CodelisteGasNrG0045,
    /// Codeliste Gas Nr. G_0046
    #[serde(rename = "G_0046")]
    CodelisteGasNrG0046,
    /// Codeliste Gas Nr. G_0047
    #[serde(rename = "G_0047")]
    CodelisteGasNrG0047,
    /// Codeliste Gas Nr. G_0048
    #[serde(rename = "G_0048")]
    CodelisteGasNrG0048,
    /// Codeliste Gas Nr. G_0051
    #[serde(rename = "G_0051")]
    CodelisteGasNrG0051,
    /// Codeliste Gas Nr. G_0052
    #[serde(rename = "G_0052")]
    CodelisteGasNrG0052,
    /// Codeliste Gas Nr. G_0053
    #[serde(rename = "G_0053")]
    CodelisteGasNrG0053,
    /// Codeliste Gas Nr. G_0054
    #[serde(rename = "G_0054")]
    CodelisteGasNrG0054,
    /// Codeliste Gas Nr. G_0057
    #[serde(rename = "G_0057")]
    CodelisteGasNrG0057,
    /// Codeliste Gas Nr. G_0058
    #[serde(rename = "G_0058")]
    CodelisteGasNrG0058,
    /// Codeliste Gas Nr. G_0067
    #[serde(rename = "G_0067")]
    CodelisteGasNrG0067,
    /// Codeliste Gas Nr. G_0068
    #[serde(rename = "G_0068")]
    CodelisteGasNrG0068,
    /// Codeliste Gas Nr. G_0069
    #[serde(rename = "G_0069")]
    CodelisteGasNrG0069,
    /// Codeliste Gas Nr. G_0070
    #[serde(rename = "G_0070")]
    CodelisteGasNrG0070,
    /// Codeliste Gas Nr. G_0071
    #[serde(rename = "G_0071")]
    CodelisteGasNrG0071,
    /// Codeliste Strom Nr. S_0054
    #[serde(rename = "S_0054")]
    CodelisteStromNrS0054,
    /// Codeliste Strom Nr. S_0055
    #[serde(rename = "S_0055")]
    CodelisteStromNrS0055,
    /// Codeliste Strom Nr. S_0056
    #[serde(rename = "S_0056")]
    CodelisteStromNrS0056,
    /// Codeliste Strom Nr. S_0059
    #[serde(rename = "S_0059")]
    CodelisteStromNrS0059,
    /// Codeliste Strom Nr. S_0060
    #[serde(rename = "S_0060")]
    CodelisteStromNrS0060,
    /// Codeliste Strom Nr. S_0063
    #[serde(rename = "S_0063")]
    CodelisteStromNrS0063,
    /// Codeliste Strom Nr. S_0064
    #[serde(rename = "S_0064")]
    CodelisteStromNrS0064,
    /// Codeliste Strom Nr. S_0086
    #[serde(rename = "S_0086")]
    CodelisteStromNrS0086,
    /// Codeliste Strom Nr. S_0087
    #[serde(rename = "S_0087")]
    CodelisteStromNrS0087,
    /// Codeliste Strom Nr. S_0090
    #[serde(rename = "S_0090")]
    CodelisteStromNrS0090,
    /// Codeliste Strom Nr. S_0091
    #[serde(rename = "S_0091")]
    CodelisteStromNrS0091,
}

/// Code values for the `ebd_referenz` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum EbdReferenz {
    /// EBD Nr. E_0003
    #[serde(rename = "E_0003")]
    EbdNrE0003,
    /// EBD Nr. E_0022
    #[serde(rename = "E_0022")]
    EbdNrE0022,
    /// EBD Nr. E_0206
    #[serde(rename = "E_0206")]
    EbdNrE0206,
    /// EBD Nr. E_0209
    #[serde(rename = "E_0209")]
    EbdNrE0209,
    /// EBD Nr. E_0210
    #[serde(rename = "E_0210")]
    EbdNrE0210,
    /// EBD Nr. E_0243
    #[serde(rename = "E_0243")]
    EbdNrE0243,
    /// EBD Nr. E_0249
    #[serde(rename = "E_0249")]
    EbdNrE0249,
    /// EBD Nr. E_0250
    #[serde(rename = "E_0250")]
    EbdNrE0250,
    /// EBD Nr. E_0254
    #[serde(rename = "E_0254")]
    EbdNrE0254,
    /// EBD Nr. E_0256
    #[serde(rename = "E_0256")]
    EbdNrE0256,
    /// EBD Nr. E_0257
    #[serde(rename = "E_0257")]
    EbdNrE0257,
    /// EBD Nr. E_0259
    #[serde(rename = "E_0259")]
    EbdNrE0259,
    /// EBD Nr. E_0261
    #[serde(rename = "E_0261")]
    EbdNrE0261,
    /// EBD Nr. E_0264
    #[serde(rename = "E_0264")]
    EbdNrE0264,
    /// EBD Nr. E_0265
    #[serde(rename = "E_0265")]
    EbdNrE0265,
    /// EBD Nr. E_0266
    #[serde(rename = "E_0266")]
    EbdNrE0266,
    /// EBD Nr. E_0267
    #[serde(rename = "E_0267")]
    EbdNrE0267,
    /// EBD Nr. E_0270
    #[serde(rename = "E_0270")]
    EbdNrE0270,
    /// EBD Nr. E_0271
    #[serde(rename = "E_0271")]
    EbdNrE0271,
    /// EBD Nr. E_0272
    #[serde(rename = "E_0272")]
    EbdNrE0272,
    /// EBD Nr. E_0273
    #[serde(rename = "E_0273")]
    EbdNrE0273,
    /// EBD Nr. E_0274
    #[serde(rename = "E_0274")]
    EbdNrE0274,
    /// EBD Nr. E_0275
    #[serde(rename = "E_0275")]
    EbdNrE0275,
    /// EBD Nr. E_0276
    #[serde(rename = "E_0276")]
    EbdNrE0276,
    /// EBD Nr. E_0277
    #[serde(rename = "E_0277")]
    EbdNrE0277,
    /// EBD Nr. E_0279
    #[serde(rename = "E_0279")]
    EbdNrE0279,
    /// EBD Nr. E_0283
    #[serde(rename = "E_0283")]
    EbdNrE0283,
    /// EBD Nr. E_0406
    #[serde(rename = "E_0406")]
    EbdNrE0406,
    /// EBD Nr. E_0407
    #[serde(rename = "E_0407")]
    EbdNrE0407,
    /// EBD Nr. E_0441
    #[serde(rename = "E_0441")]
    EbdNrE0441,
    /// EBD Nr. E_0442
    #[serde(rename = "E_0442")]
    EbdNrE0442,
    /// EBD Nr. E_0443
    #[serde(rename = "E_0443")]
    EbdNrE0443,
    /// EBD Nr. E_0459
    #[serde(rename = "E_0459")]
    EbdNrE0459,
    /// EBD Nr. E_0468
    #[serde(rename = "E_0468")]
    EbdNrE0468,
    /// EBD Nr. E_0470
    #[serde(rename = "E_0470")]
    EbdNrE0470,
    /// EBD Nr. E_0488
    #[serde(rename = "E_0488")]
    EbdNrE0488,
    /// EBD Nr. E_0497
    #[serde(rename = "E_0497")]
    EbdNrE0497,
    /// EBD Nr. E_0503
    #[serde(rename = "E_0503")]
    EbdNrE0503,
    /// EBD Nr. E_0504
    #[serde(rename = "E_0504")]
    EbdNrE0504,
    /// EBD Nr. E_0505
    #[serde(rename = "E_0505")]
    EbdNrE0505,
    /// EBD Nr. E_0506
    #[serde(rename = "E_0506")]
    EbdNrE0506,
    /// EBD Nr. E_0515
    #[serde(rename = "E_0515")]
    EbdNrE0515,
    /// EBD Nr. E_0516
    #[serde(rename = "E_0516")]
    EbdNrE0516,
    /// EBD Nr. E_0517
    #[serde(rename = "E_0517")]
    EbdNrE0517,
    /// EBD Nr. E_0518
    #[serde(rename = "E_0518")]
    EbdNrE0518,
    /// EBD Nr. E_0519
    #[serde(rename = "E_0519")]
    EbdNrE0519,
    /// EBD Nr. E_0520
    #[serde(rename = "E_0520")]
    EbdNrE0520,
    /// EBD Nr. E_0521
    #[serde(rename = "E_0521")]
    EbdNrE0521,
    /// EBD Nr. E_0522
    #[serde(rename = "E_0522")]
    EbdNrE0522,
    /// EBD Nr. E_0523
    #[serde(rename = "E_0523")]
    EbdNrE0523,
    /// EBD Nr. E_0526
    #[serde(rename = "E_0526")]
    EbdNrE0526,
    /// EBD Nr. E_0527
    #[serde(rename = "E_0527")]
    EbdNrE0527,
    /// EBD Nr. E_0533
    #[serde(rename = "E_0533")]
    EbdNrE0533,
    /// EBD Nr. E_0538
    #[serde(rename = "E_0538")]
    EbdNrE0538,
    /// EBD Nr. E_0539
    #[serde(rename = "E_0539")]
    EbdNrE0539,
    /// EBD Nr. E_0540
    #[serde(rename = "E_0540")]
    EbdNrE0540,
    /// EBD Nr. E_0544
    #[serde(rename = "E_0544")]
    EbdNrE0544,
    /// EBD Nr. E_0545
    #[serde(rename = "E_0545")]
    EbdNrE0545,
    /// EBD Nr. E_0546
    #[serde(rename = "E_0546")]
    EbdNrE0546,
    /// EBD Nr. E_0547
    #[serde(rename = "E_0547")]
    EbdNrE0547,
    /// EBD Nr. E_0548
    #[serde(rename = "E_0548")]
    EbdNrE0548,
    /// EBD Nr. E_0549
    #[serde(rename = "E_0549")]
    EbdNrE0549,
    /// EBD Nr. E_0550
    #[serde(rename = "E_0550")]
    EbdNrE0550,
    /// EBD Nr. E_0551
    #[serde(rename = "E_0551")]
    EbdNrE0551,
    /// EBD Nr. E_0552
    #[serde(rename = "E_0552")]
    EbdNrE0552,
    /// EBD Nr. E_0553
    #[serde(rename = "E_0553")]
    EbdNrE0553,
    /// EBD Nr. E_0554
    #[serde(rename = "E_0554")]
    EbdNrE0554,
    /// EBD Nr. E_0566
    #[serde(rename = "E_0566")]
    EbdNrE0566,
    /// EBD Nr. E_0567
    #[serde(rename = "E_0567")]
    EbdNrE0567,
    /// EBD Nr. E_0568
    #[serde(rename = "E_0568")]
    EbdNrE0568,
    /// EBD Nr. E_0569
    #[serde(rename = "E_0569")]
    EbdNrE0569,
    /// EBD Nr. E_0595
    #[serde(rename = "E_0595")]
    EbdNrE0595,
    /// EBD Nr. E_0800
    #[serde(rename = "E_0800")]
    EbdNrE0800,
    /// EBD Nr. E_0804
    #[serde(rename = "E_0804")]
    EbdNrE0804,
    /// EBD Nr. E_0806
    #[serde(rename = "E_0806")]
    EbdNrE0806,
    /// EBD Nr. E_1000
    #[serde(rename = "E_1000")]
    EbdNrE1000,
    /// EBD Nr. E_1001
    #[serde(rename = "E_1001")]
    EbdNrE1001,
    /// EBD Nr. E_1004
    #[serde(rename = "E_1004")]
    EbdNrE1004,
    /// EBD Nr. E_1006
    #[serde(rename = "E_1006")]
    EbdNrE1006,
    /// EBD Nr. E_1007
    #[serde(rename = "E_1007")]
    EbdNrE1007,
    /// EBD Nr. E_1008
    #[serde(rename = "E_1008")]
    EbdNrE1008,
    /// EBD Nr. E_1009
    #[serde(rename = "E_1009")]
    EbdNrE1009,
    /// EBD Nr. E_1010
    #[serde(rename = "E_1010")]
    EbdNrE1010,
    /// EBD Nr. E_3004
    #[serde(rename = "E_3004")]
    EbdNrE3004,
    /// EBD Nr. E_3038
    #[serde(rename = "E_3038")]
    EbdNrE3038,
    /// Codeliste Gas und Strom Nr. GS_002
    #[serde(rename = "GS_002")]
    CodelisteGasStromNrGs002,
    /// Codeliste Gas Nr. G_0001
    #[serde(rename = "G_0001")]
    CodelisteGasNrG0001,
    /// Codeliste Gas Nr. G_0015
    #[serde(rename = "G_0015")]
    CodelisteGasNrG0015,
    /// Codeliste Gas Nr. G_0049
    #[serde(rename = "G_0049")]
    CodelisteGasNrG0049,
    /// Codeliste Gas Nr. G_0050
    #[serde(rename = "G_0050")]
    CodelisteGasNrG0050,
    /// Codeliste Gas Nr. G_0059
    #[serde(rename = "G_0059")]
    CodelisteGasNrG0059,
    /// Codeliste Gas Nr. G_0060
    #[serde(rename = "G_0060")]
    CodelisteGasNrG0060,
    /// Codeliste Gas Nr. G_0061
    #[serde(rename = "G_0061")]
    CodelisteGasNrG0061,
    /// Codeliste Gas Nr. G_0062
    #[serde(rename = "G_0062")]
    CodelisteGasNrG0062,
    /// Codeliste Gas Nr. G_0063
    #[serde(rename = "G_0063")]
    CodelisteGasNrG0063,
    /// Codeliste Gas Nr. G_0064
    #[serde(rename = "G_0064")]
    CodelisteGasNrG0064,
    /// Codeliste Gas Nr. G_0065
    #[serde(rename = "G_0065")]
    CodelisteGasNrG0065,
    /// Codeliste Gas Nr. G_0066
    #[serde(rename = "G_0066")]
    CodelisteGasNrG0066,
    /// Codeliste Gas Nr. G_0072
    #[serde(rename = "G_0072")]
    CodelisteGasNrG0072,
    /// Codeliste Gas Nr. G_0073
    #[serde(rename = "G_0073")]
    CodelisteGasNrG0073,
    /// Codeliste Gas Nr. G_0074
    #[serde(rename = "G_0074")]
    CodelisteGasNrG0074,
    /// Codeliste Gas Nr. G_0075
    #[serde(rename = "G_0075")]
    CodelisteGasNrG0075,
    /// Codeliste Gas Nr. G_0078
    #[serde(rename = "G_0078")]
    CodelisteGasNrG0078,
    /// Codeliste Gas Nr. G_0079
    #[serde(rename = "G_0079")]
    CodelisteGasNrG0079,
    /// Codeliste Gas Nr. G_0080
    #[serde(rename = "G_0080")]
    CodelisteGasNrG0080,
    /// Codeliste Gas Nr. G_0081
    #[serde(rename = "G_0081")]
    CodelisteGasNrG0081,
    /// Codeliste Gas Nr. G_0082
    #[serde(rename = "G_0082")]
    CodelisteGasNrG0082,
    /// Codeliste Gas Nr. G_0083
    #[serde(rename = "G_0083")]
    CodelisteGasNrG0083,
    /// Codeliste Gas Nr. G_0084
    #[serde(rename = "G_0084")]
    CodelisteGasNrG0084,
    /// Codeliste Gas Nr. G_0085
    #[serde(rename = "G_0085")]
    CodelisteGasNrG0085,
    /// Codeliste Gas Nr. G_0086
    #[serde(rename = "G_0086")]
    CodelisteGasNrG0086,
    /// Codeliste Gas Nr. G_0087
    #[serde(rename = "G_0087")]
    CodelisteGasNrG0087,
    /// Codeliste Gas Nr. G_0089
    #[serde(rename = "G_0089")]
    CodelisteGasNrG0089,
    /// Codeliste Strom Nr. S_0061
    #[serde(rename = "S_0061")]
    CodelisteStromNrS0061,
    /// Codeliste Strom Nr. S_0062
    #[serde(rename = "S_0062")]
    CodelisteStromNrS0062,
    /// Codeliste Strom Nr. S_0065
    #[serde(rename = "S_0065")]
    CodelisteStromNrS0065,
    /// Codeliste Strom Nr. S_0066
    #[serde(rename = "S_0066")]
    CodelisteStromNrS0066,
    /// Codeliste Strom Nr. S_0067
    #[serde(rename = "S_0067")]
    CodelisteStromNrS0067,
    /// Codeliste Strom Nr. S_0068
    #[serde(rename = "S_0068")]
    CodelisteStromNrS0068,
    /// Codeliste Strom Nr. S_0073
    #[serde(rename = "S_0073")]
    CodelisteStromNrS0073,
    /// Codeliste Strom Nr. S_0074
    #[serde(rename = "S_0074")]
    CodelisteStromNrS0074,
    /// Codeliste Strom Nr. S_0075
    #[serde(rename = "S_0075")]
    CodelisteStromNrS0075,
    /// Codeliste Strom Nr. S_0076
    #[serde(rename = "S_0076")]
    CodelisteStromNrS0076,
    /// Codeliste Strom Nr. S_0077
    #[serde(rename = "S_0077")]
    CodelisteStromNrS0077,
    /// Codeliste Strom Nr. S_0078
    #[serde(rename = "S_0078")]
    CodelisteStromNrS0078,
    /// Codeliste Strom Nr. S_0079
    #[serde(rename = "S_0079")]
    CodelisteStromNrS0079,
    /// Codeliste Strom Nr. S_0092
    #[serde(rename = "S_0092")]
    CodelisteStromNrS0092,
    /// Codeliste Strom Nr. S_0093
    #[serde(rename = "S_0093")]
    CodelisteStromNrS0093,
    /// Codeliste Strom Nr. S_0103
    #[serde(rename = "S_0103")]
    CodelisteStromNrS0103,
    /// Codeliste Strom Nr. S_0104
    #[serde(rename = "S_0104")]
    CodelisteStromNrS0104,
    /// Codeliste Strom Nr. S_0108
    #[serde(rename = "S_0108")]
    CodelisteStromNrS0108,
    /// Codeliste Strom Nr. S_0109
    #[serde(rename = "S_0109")]
    CodelisteStromNrS0109,
}

/// Code values for the `eigenschaft_msb` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum EigenschaftMsb {
    /// Gaszähler G10
    #[serde(rename = "G10")]
    GaszaehlerG10,
    /// Gaszähler G100
    #[serde(rename = "G100")]
    GaszaehlerG100,
    /// Gaszähler G1000
    #[serde(rename = "G1000")]
    GaszaehlerG1000,
    /// Gaszähler G10000
    #[serde(rename = "G10000")]
    GaszaehlerG10000,
    /// Gaszähler G12500
    #[serde(rename = "G12500")]
    GaszaehlerG12500,
    /// Gaszähler G16
    #[serde(rename = "G16")]
    GaszaehlerG16,
    /// Gaszähler G160
    #[serde(rename = "G160")]
    GaszaehlerG160,
    /// Gaszähler G1600
    #[serde(rename = "G1600")]
    GaszaehlerG1600,
    /// Gaszähler G16000
    #[serde(rename = "G16000")]
    GaszaehlerG16000,
    /// Gaszähler G2.5
    #[serde(rename = "G2.5")]
    GaszaehlerG25,
    /// Gaszähler G25
    #[serde(rename = "G25")]
    GaszaehlerG252,
    /// Gaszähler G250
    #[serde(rename = "G250")]
    GaszaehlerG250,
    /// Gaszähler G2500
    #[serde(rename = "G2500")]
    GaszaehlerG2500,
    /// Gaszähler G350
    #[serde(rename = "G350")]
    GaszaehlerG350,
    /// Gaszähler G4
    #[serde(rename = "G4")]
    GaszaehlerG4,
    /// Gaszähler G40
    #[serde(rename = "G40")]
    GaszaehlerG40,
    /// Gaszähler G400
    #[serde(rename = "G400")]
    GaszaehlerG400,
    /// Gaszähler G4000
    #[serde(rename = "G4000")]
    GaszaehlerG4000,
    /// Gaszähler G6
    #[serde(rename = "G6")]
    GaszaehlerG6,
    /// Gaszähler G65
    #[serde(rename = "G65")]
    GaszaehlerG65,
    /// Gaszähler G650
    #[serde(rename = "G650")]
    GaszaehlerG650,
    /// Gaszähler G6500
    #[serde(rename = "G6500")]
    GaszaehlerG6500,
    /// Kunde
    #[serde(rename = "Z10")]
    Kunde,
    /// Lieferant
    #[serde(rename = "Z11")]
    Lieferant,
    /// Auf vertraglicher Grundlage gegenüber Anschlussnutzer / Anschlussnehmer
    #[serde(rename = "Z19")]
    VertraglicherGrundlageGegenueberAnschlussnutzerAnschlussnehmer,
    /// In der Ausübung der Weiterverpflichtung durch den gMSB
    #[serde(rename = "Z20")]
    AusuebungWeiterverpflichtungDurchGmsb,
    /// Grundzuständiger Messstellenbetreiber
    #[serde(rename = "Z39")]
    GrundzustaendigerMessstellenbetreiber,
    /// Wettbewerblicher Messstellenbetreiber
    #[serde(rename = "Z40")]
    WettbewerblicherMessstellenbetreiber,
    /// Auffangmessstellenbetreiber
    #[serde(rename = "Z41")]
    Auffangmessstellenbetreiber,
}

/// Code values for the `ende_datum_format` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum EndeDatumFormat {
    /// CCYYMMDD
    #[serde(rename = "102")]
    Ccyymmdd,
    /// CCYYMMDDHHMMZZZ
    #[serde(rename = "303")]
    Ccyymmddhhmmzzz,
}

/// Code values for the `ex_ref_name` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ExRefName {
    /// Angebotsnummer
    #[serde(rename = "AAG")]
    Angebotsnummer,
    /// Nummer der Anfrage
    #[serde(rename = "AAV")]
    NummerAnfrage,
    /// Nummer des zugehörigen Dokuments
    #[serde(rename = "ACE")]
    NummerZugehoerigenDokuments,
    /// Referenznummer einer vorangegangenen Nachricht
    #[serde(rename = "ACW")]
    ReferenznummerVorangegangenenNachricht,
    /// Mitteilungsnummer
    #[serde(rename = "ADY")]
    Mitteilungsnummer,
    /// Zugehörige Rechnungen
    #[serde(rename = "AFL")]
    ZugehoerigeRechnungen,
    /// Beantragungsnummer
    #[serde(rename = "AGI")]
    Beantragungsnummer,
    /// Anwendungsreferenznummer
    #[serde(rename = "AGK")]
    Anwendungsreferenznummer,
    /// Absenderreferenz für die Original-Nachricht
    #[serde(rename = "AGO")]
    AbsenderreferenzOriginalNachricht,
    /// Verweis auf Katalognummer
    #[serde(rename = "APF")]
    VerweisKatalognummer,
    /// Referenz auf eine Zeitreihe
    #[serde(rename = "AUU")]
    ReferenzZeitreihe,
    /// Kundennummer beim Lieferanten
    #[serde(rename = "AVC")]
    KundennummerBeimLieferanten,
    /// Meldepunkt
    #[serde(rename = "AVE")]
    Meldepunkt,
    /// Steuernummer
    #[serde(rename = "FC")]
    Steuernummer,
    /// Gerätenummer
    #[serde(rename = "MG")]
    Geraetenummer,
    /// Ursprungsrechnungsnummer
    #[serde(rename = "OI")]
    Ursprungsrechnungsnummer,
    /// Auftragsnummer (Einkauf)
    #[serde(rename = "ON")]
    AuftragsnummerEinkauf,
    /// Transaktions-Referenznummer
    #[serde(rename = "TN")]
    TransaktionsReferenznummer,
    /// Umsatzsteuernummer
    #[serde(rename = "VA")]
    Umsatzsteuernummer,
    /// Kundennummer beim Altlieferanten
    #[serde(rename = "Z01")]
    KundennummerBeimAltlieferanten,
    /// Positionsnummer des Angebots
    #[serde(rename = "Z03")]
    PositionsnummerAngebots,
    /// Abrechnung des Messstellenbetriebs über NNE
    #[serde(rename = "Z05")]
    AbrechnungMessstellenbetriebsNne,
    /// MP-ID des nachfolgenden Netzbetreibers
    #[serde(rename = "Z08")]
    MpIdNachfolgendenNetzbetreibers,
    /// Gerätenummer
    #[serde(rename = "Z09")]
    Geraetenummer2,
    /// OBIS-Kennzahl
    #[serde(rename = "Z10")]
    ObisKennzahl,
    /// Gerätenummer des Mengenumwerters
    #[serde(rename = "Z11")]
    GeraetenummerMengenumwerters,
    /// Referenz auf ein Profil
    #[serde(rename = "Z12")]
    ReferenzProfil,
    /// Prüfidentifikator
    #[serde(rename = "Z13")]
    Pruefidentifikator,
    /// Smartmeter-Gateway
    #[serde(rename = "Z14")]
    SmartmeterGateway,
    /// zugeordnete Marktlokation
    #[serde(rename = "Z16")]
    ZugeordneteMarktlokation,
    /// Preisschlüsselstamm
    #[serde(rename = "Z17")]
    Preisschluesselstamm,
    /// Marktlokation
    #[serde(rename = "Z18")]
    Marktlokation,
    /// Messlokation
    #[serde(rename = "Z19")]
    Messlokation,
    /// Tranche
    #[serde(rename = "Z20")]
    Tranche,
    /// zugeordnete Messlokation
    #[serde(rename = "Z21")]
    ZugeordneteMesslokation,
    /// Beteiligte Marktrolle
    #[serde(rename = "Z22")]
    BeteiligteMarktrolle,
    /// Rechenschritt
    #[serde(rename = "Z23")]
    Rechenschritt,
    /// Faxnummer
    #[serde(rename = "Z25")]
    Faxnummer,
    /// Code der Zählzeitdefinition
    #[serde(rename = "Z27")]
    CodeZaehlzeitdefinition,
    /// Code des zählenden Registers
    #[serde(rename = "Z28")]
    CodeZaehlendenRegisters,
    /// Referenz auf vorherige Stammdatenmeldung des MSB
    #[serde(rename = "Z30")]
    ReferenzVorherigeStammdatenmeldungMsb,
    /// Lokationsbündelstruktur
    #[serde(rename = "Z31")]
    Lokationsbuendelstruktur,
    /// Netzlokation
    #[serde(rename = "Z32")]
    Netzlokation,
    /// Objektcode der Lokation in der Lokationsbündelstruktur
    #[serde(rename = "Z33")]
    ObjektcodeLokationLokationsbuendelstruktur,
    /// vorgelagerte Messlokation
    #[serde(rename = "Z34")]
    VorgelagerteMesslokation,
    /// vorgelagerte Netzlokation
    #[serde(rename = "Z35")]
    VorgelagerteNetzlokation,
    /// Technische Ressource
    #[serde(rename = "Z37")]
    TechnischeRessource,
    /// Steuerbare Ressource
    #[serde(rename = "Z38")]
    SteuerbareRessource,
    /// Keine standardisierte Lokationsbündelstruktur vorhanden
    #[serde(rename = "Z39")]
    KeineStandardisierteLokationsbuendelstrukturVorhanden,
    /// Referenznummer des Vorgangs der Anmeldung nach WiM
    #[serde(rename = "Z41")]
    ReferenznummerVorgangsAnmeldungWim,
    /// Referenznummer der Nachricht der betroffenen Antwort auf Bestellung (Bestellbestätigung)
    #[serde(rename = "Z42")]
    ReferenznummerNachrichtBetroffenenAntwortBestellungBestellbestaetigung,
    /// Referenznummer des Vorgangs der betroffenen Antwort auf Bestellung (Bestellbestätigung)
    #[serde(rename = "Z43")]
    ReferenznummerVorgangsBetroffenenAntwortBestellungBestellbestaetigung,
    /// Referenz auf die Artikel-ID
    #[serde(rename = "Z45")]
    ReferenzArtikelId,
    /// Referenz auf Zeitraum-ID
    #[serde(rename = "Z46")]
    ReferenzZeitraumId,
    /// Im System vorhandene Daten
    #[serde(rename = "Z47")]
    SystemVorhandeneDaten,
    /// Erwartete Daten
    #[serde(rename = "Z48")]
    ErwarteteDaten,
    /// Gültige Daten
    #[serde(rename = "Z49")]
    GueltigeDaten,
    /// Termindaten der Marktlokation
    #[serde(rename = "Z50")]
    TermindatenMarktlokation,
    /// Erwartete Termindaten der Marktlokation
    #[serde(rename = "Z51")]
    ErwarteteTermindatenMarktlokation,
    /// Im System vorhandene Termindaten der Marktlokation
    #[serde(rename = "Z52")]
    SystemVorhandeneTermindatenMarktlokation,
    /// Keine Daten
    #[serde(rename = "Z53")]
    KeineDaten,
    /// Im System keine Daten vorhanden
    #[serde(rename = "Z54")]
    SystemKeineDatenVorhanden,
    /// Keine Daten erwartet
    #[serde(rename = "Z55")]
    KeineDatenErwartet,
    /// Preise des Netzbetreibers
    #[serde(rename = "Z56")]
    PreiseNetzbetreibers,
    /// Marktlokation Kundenanlage
    #[serde(rename = "Z59")]
    MarktlokationKundenanlage,
    /// Informativ zur Umsetzung geplantes Produktpaket
    #[serde(rename = "Z60")]
    InformativUmsetzungGeplantesProduktpaket,
}

/// Code values for the `fehler_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum FehlerCode {
    /// ID unbekannt
    #[serde(rename = "Z10")]
    IdUnbekannt,
    /// Objekt im IT-System nicht gefunden
    #[serde(rename = "Z14")]
    ObjektItSystemNichtGefunden,
    /// Objekt im IT-System nicht eindeutig
    #[serde(rename = "Z15")]
    ObjektItSystemNichtEindeutig,
    /// Objekt nicht mehr im Netzgebiet
    #[serde(rename = "Z16")]
    ObjektNichtMehrNetzgebiet,
    /// Absender ist zum angegebenen Zeitintervall / Zeitpunkt dem Objekt nicht zugeordnet
    #[serde(rename = "Z17")]
    AbsenderAngegebenenZeitintervallZeitpunktObjektNichtZugeordnet,
    /// Empfänger ist zum angegebenen Zeitintervall / Zeitpunkt dem Objekt nicht zugeordnet
    #[serde(rename = "Z18")]
    EmpfaengerAngegebenenZeitintervallZeitpunktObjektNichtZugeordnet,
    /// Gerätenummer zum angegebenen Zeitintervall / Zeitpunkt an der Messlokation nicht bekannt
    #[serde(rename = "Z19")]
    GeraetenummerAngegebenenZeitintervallZeitpunktMesslokationNichtBekannt,
    /// OBIS-Kennzahl zum angegebenen Zeitintervall / Zeitpunkt am Objekt nicht bekannt
    #[serde(rename = "Z20")]
    ObisKennzahlAngegebenenZeitintervallZeitpunktObjektNichtBekannt,
    /// Geschäftsvorfallinterne Referenzierung fehlerhaft
    #[serde(rename = "Z21")]
    GeschaeftsvorfallinterneReferenzierungFehlerhaft,
    /// Zuordnungs-Tupel unbekannt
    #[serde(rename = "Z24")]
    ZuordnungsTupelUnbekannt,
    /// Absender ist zum angegebenen Zeitintervall / Zeitpunkt dem durch das Zuordnungs-Tupel identifizierten Objekt nicht zugeordnet
    #[serde(rename = "Z25")]
    AbsenderAngegebenenZeitintervallZeitpunktDurchZuordnungsTupel,
    /// Empfänger ist zum angegebenen Zeitintervall / Zeitpunkt dem durch das Zuordnungs-Tupel identifizierten Objekt nicht zugeordnet
    #[serde(rename = "Z26")]
    EmpfaengerAngegebenenZeitintervallZeitpunktDurchZuordnungsTupel,
    /// Vorkomma-Stellenzahl des Zählwertes ist zu lang
    #[serde(rename = "Z27")]
    VorkommaStellenzahlZaehlwertesLang,
    /// Erforderliche Angabe für diesen Anwendungsfall fehlt
    #[serde(rename = "Z29")]
    ErforderlicheAngabeDiesenAnwendungsfallFehlt,
    /// Zeitreihe unvollständig
    #[serde(rename = "Z30")]
    ZeitreiheUnvollstaendig,
    /// Geschäftsvorfall wird vom Empfänger zurückgewiesen
    #[serde(rename = "Z31")]
    GeschaeftsvorfallEmpfaengerZurueckgewiesen,
    /// Referenziertes Geschäftsvorfall-Tupel nicht vorhanden
    #[serde(rename = "Z33")]
    ReferenziertesGeschaeftsvorfallTupelNichtVorhanden,
    /// Zeitintervall negativ oder Null
    #[serde(rename = "Z34")]
    ZeitintervallNegativNull,
    /// Format nicht eingehalten
    #[serde(rename = "Z35")]
    FormatNichtEingehalten,
    /// Geschäftsvorfall darf vom Sender nicht gesendet werden
    #[serde(rename = "Z37")]
    GeschaeftsvorfallDarfSenderNichtGesendetWerden,
    /// Anzahl der übermittelten Codes überschreitet Paketdefinition
    #[serde(rename = "Z38")]
    AnzahlUebermitteltenCodesUeberschreitetPaketdefinition,
    /// Code nicht aus erlaubtem Wertebereich
    #[serde(rename = "Z39")]
    CodeNichtErlaubtemWertebereich,
    /// Segment- bzw. Segmentgruppenwiederholbarkeit überschritten
    #[serde(rename = "Z40")]
    SegmentSegmentgruppenwiederholbarkeitUeberschritten,
    /// Zeitangabe unplausibel
    #[serde(rename = "Z41")]
    ZeitangabeUnplausibel,
    /// Konfigurations-ID zum angegebenen Zeitintervall / Zeitpunkt nicht bekannt
    #[serde(rename = "Z42")]
    KonfigurationsIdAngegebenenZeitintervallZeitpunktNichtBekannt,
    /// Geschäftsvorfall für Objekt mit der Eigenschaft nicht erlaubt
    #[serde(rename = "Z43")]
    GeschaeftsvorfallObjektEigenschaftNichtErlaubt,
    /// Eigenschaft des Objekts weicht von der im Geschäftsvorfall codierten Eigenschaft ab
    #[serde(rename = "Z44")]
    EigenschaftObjektsWeichtGeschaeftsvorfallCodiertenEigenschaft,
}

/// Code values for the `funktionscode` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Funktionscode {
    /// Informationskontakt
    #[serde(rename = "IC")]
    Informationskontakt,
}

/// Code values for the `geraete_status_anlass` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum GeraeteStatusAnlass {
    /// Kommunikationsstörung
    #[serde(rename = "Z75")]
    Kommunikationsstoerung,
    /// Gerätewechsel
    #[serde(rename = "Z78")]
    StromGasMesswerteUnvollstaendigWegenGeraetewechsels,
    /// Messeinrichtung gestört/defekt
    #[serde(rename = "Z81")]
    StromGasMesswerteSindNichtVerwendbarVerfuegbarMesseinrichtungDefekt,
    /// keine Störung feststellbar
    #[serde(rename = "ZB8")]
    KeineStoerungFeststellbar,
    /// Störungsbehebung nicht möglich
    #[serde(rename = "ZC1")]
    StoerungsbehebungNichtMoeglich,
    /// Reparatur ohne Gerätewechsel
    #[serde(rename = "ZS1")]
    ReparaturOhneGeraetewechsel,
}

/// Code values for the `geraete_status_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum GeraeteStatusCode {
    /// störungsfrei
    #[serde(rename = "Z09")]
    Stoerungsfrei,
    /// gestört
    #[serde(rename = "Z10")]
    Gestoert,
    /// festgestellte Störung
    #[serde(rename = "Z11")]
    FestgestellteStoerung,
    /// vermutete Störung
    #[serde(rename = "Z12")]
    VermuteteStoerung,
}

/// Code values for the `grundlage_lieferscheinpruefung` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum GrundlageLieferscheinpruefung {
    /// In der Marktkommunikation ausgetauschte Daten
    #[serde(rename = "Z12")]
    MarktkommunikationAusgetauschteDaten,
    /// Abweichend vertraglich mit Anschlussnutzer vereinbarte Grundlage
    #[serde(rename = "Z13")]
    AbweichendVertraglichAnschlussnutzerVereinbarteGrundlage,
}

/// Code values for the `haeufigkeit` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Haeufigkeit {
    /// Es handelt sich um eine Schaltzeitdefinition mit identischen Schaltzeitänderungszeitpunkten an allen Tagen über den gesamten Gültigkeitszeitraum. Diese Schaltzeitdefinitiont wird einmalig ausgerollt und übermittelt.
    #[serde(rename = "Z33")]
    EsHandeltSichUmZaehlzeitdefinitionZaehlzeitaenderungszeitpunktAllenTagen,
    /// Es handelt sich um eine Schaltzeitdefinition mit unterschiedlichen Schaltzeitänderungszeitpunkten an den einzelnen Tagen über den gesamten Gültigkeitszeitraum. Diese Schaltzeitdefinition muss jedes Jahr ausgerollt und übermittelt werden.
    #[serde(rename = "Z34")]
    EsHandeltSichUmZaehlzeitdefinitionUnterschiedlichen,
}

/// Code values for the `handlung_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum HandlungCode {
    /// Erforderliches Produkt der Tranche
    #[serde(rename = "Z16")]
    ErforderlichesProduktTranche,
    /// Erforderliches Produkt der Messlokation
    #[serde(rename = "Z19")]
    ErforderlichesProduktMesslokation,
    /// Zählzeitdefinition
    #[serde(rename = "Z42")]
    Zaehlzeitdefinition,
    /// Erforderliches Produkt der Marktlokation
    #[serde(rename = "Z54")]
    ErforderlichesProduktMarktlokation,
    /// Erforderliches Produkt der Netzlokation
    #[serde(rename = "Z55")]
    ErforderlichesProduktNetzlokation,
    /// Erforderliches Produkt der Steuerbaren Ressource
    #[serde(rename = "Z56")]
    ErforderlichesProduktSteuerbarenRessource,
    /// Erforderliches Produkt Schaltzeitdefinitionen
    #[serde(rename = "Z64")]
    ErforderlichesProduktSchaltzeitdefinitionen,
    /// Erforderliches Produkt Leistungskurvendefinitionen
    #[serde(rename = "Z65")]
    ErforderlichesProduktLeistungskurvendefinitionen,
    /// Erforderliches Produkt Ad-hoc-Steuerkanal
    #[serde(rename = "Z66")]
    ErforderlichesProduktAdHocSteuerkanal,
    /// Erforderliches Messprodukt für Werte nach Typ 2 aus Backend
    #[serde(rename = "Z67")]
    ErforderlichesMessproduktWerteTyp2Backend,
    /// Erforderliches Produkt Konfigurationserlaubnis für Werte nach Typ 2 aus SMGW
    #[serde(rename = "Z68")]
    ErforderlichesProduktKonfigurationserlaubnisWerteTyp2Smgw,
    /// Schaltzeitdefinition
    #[serde(rename = "Z69")]
    Schaltzeitdefinition,
    /// Leistungskurvendefinition
    #[serde(rename = "Z70")]
    Leistungskurvendefinition,
    /// Bestandteil eines Produktpakets
    #[serde(rename = "Z79")]
    BestandteilProduktpakets,
}

/// Code values for the `ide_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum IdeQualifier {
    /// Transaktion
    #[serde(rename = "24")]
    Transaktion,
    /// Liste
    #[serde(rename = "Z01")]
    Liste,
}

/// Code values for the `ident_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum IdentQualifier {
    /// Serialnummer
    #[serde(rename = "BN")]
    Serialnummer,
}

/// Code values for the `kav_betrag` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum KavBetrag {
    /// Gaszähler G10
    #[serde(rename = "G10")]
    GaszaehlerG10,
    /// Gaszähler G100
    #[serde(rename = "G100")]
    GaszaehlerG100,
    /// Gaszähler G1000
    #[serde(rename = "G1000")]
    GaszaehlerG1000,
    /// Gaszähler G10000
    #[serde(rename = "G10000")]
    GaszaehlerG10000,
    /// Gaszähler G12500
    #[serde(rename = "G12500")]
    GaszaehlerG12500,
    /// Gaszähler G16
    #[serde(rename = "G16")]
    GaszaehlerG16,
    /// Gaszähler G160
    #[serde(rename = "G160")]
    GaszaehlerG160,
    /// Gaszähler G1600
    #[serde(rename = "G1600")]
    GaszaehlerG1600,
    /// Gaszähler G16000
    #[serde(rename = "G16000")]
    GaszaehlerG16000,
    /// Gaszähler G2.5
    #[serde(rename = "G2.5")]
    GaszaehlerG25,
    /// Gaszähler G25
    #[serde(rename = "G25")]
    GaszaehlerG252,
    /// Gaszähler G250
    #[serde(rename = "G250")]
    GaszaehlerG250,
    /// Gaszähler G2500
    #[serde(rename = "G2500")]
    GaszaehlerG2500,
    /// Gaszähler G350
    #[serde(rename = "G350")]
    GaszaehlerG350,
    /// Gaszähler G4
    #[serde(rename = "G4")]
    GaszaehlerG4,
    /// Gaszähler G40
    #[serde(rename = "G40")]
    GaszaehlerG40,
    /// Gaszähler G400
    #[serde(rename = "G400")]
    GaszaehlerG400,
    /// Gaszähler G4000
    #[serde(rename = "G4000")]
    GaszaehlerG4000,
    /// Gaszähler G6
    #[serde(rename = "G6")]
    GaszaehlerG6,
    /// Gaszähler G65
    #[serde(rename = "G65")]
    GaszaehlerG65,
    /// Gaszähler G650
    #[serde(rename = "G650")]
    GaszaehlerG650,
    /// Gaszähler G6500
    #[serde(rename = "G6500")]
    GaszaehlerG6500,
    /// Kunde
    #[serde(rename = "Z10")]
    Kunde,
    /// Lieferant
    #[serde(rename = "Z11")]
    Lieferant,
}

/// Code values for the `kav_gruppe` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum KavGruppe {
    /// analoger Haushaltszähler (Drehstrom)
    #[serde(rename = "AHZ")]
    AnalogerHaushaltszaehlerDrehstrom,
    /// fernauslesbare Zähler
    #[serde(rename = "AMR")]
    FernauslesbareZaehler,
    /// Balgengaszähler
    #[serde(rename = "BGZ")]
    Balgengaszaehler,
    /// Stecktechnik (Befestigungs- und Kontaktierungseinrichtung)
    #[serde(rename = "BKE")]
    StecktechnikBefestigungsKontaktierungseinrichtung,
    /// Drehkolbengaszähler
    #[serde(rename = "DKZ")]
    Drehkolbengaszaehler,
    /// Dichtemengenumwerter
    #[serde(rename = "DMU")]
    Dichtemengenumwerter,
    /// 3-Dreipunktaufhängung
    #[serde(rename = "DPA")]
    Code3Dreipunktaufhaengung,
    /// DSL-Kom.Einr.
    #[serde(rename = "DSL")]
    DslKomEinr,
    /// SLP/SEP
    #[serde(rename = "E02")]
    SlpSep,
    /// Höchstspannung
    #[serde(rename = "E03")]
    Hoechstspannung,
    /// Hochspannung
    #[serde(rename = "E04")]
    Hochspannung,
    /// Mittelspannung
    #[serde(rename = "E05")]
    Mittelspannung,
    /// Niederspannung
    #[serde(rename = "E06")]
    Niederspannung,
    /// Hös/HS Umspannung
    #[serde(rename = "E07")]
    HoesHsUmspannung,
    /// HS/MS Umspannung
    #[serde(rename = "E08")]
    HsMsUmspannung,
    /// MS/NS Umspannung
    #[serde(rename = "E09")]
    MsNsUmspannung,
    /// TLP/TEP
    #[serde(rename = "E14")]
    TlpTep,
    /// elektronischer Haushaltszähler
    #[serde(rename = "EHZ")]
    ElektronischerHaushaltszaehler,
    /// Einrichtungszähler
    #[serde(rename = "ERZ")]
    Einrichtungszaehler,
    /// Ethernet-Kom.-Einricht. LAN/WLAN
    #[serde(rename = "ETH")]
    EthernetKomEinrichtLanWlan,
    /// Eintarif
    #[serde(rename = "ETZ")]
    Eintarif,
    /// GSM/GPRS/UMTS-Kom.-Einr.
    #[serde(rename = "GSM")]
    GsmGprsUmtsKomEinr,
    /// Hutschiene
    #[serde(rename = "HUT")]
    Hutschiene,
    /// Zur Sonderausstattung gehört z.B. Gas-Encoder
    #[serde(rename = "IVA")]
    SonderausstattungGehoertZBGasEncoder,
    /// für alle konzessionsvertraglichen Sonderregelungen, die nicht in die Systematik der KAV eingegliedert sind
    #[serde(rename = "KAS")]
    AlleKonzessionsvertraglichenSonderregelungenNichtSystematikKav,
    /// Lastgangzähler
    #[serde(rename = "LAZ")]
    Lastgangzaehler,
    /// LTE-Kom.-Einr.
    #[serde(rename = "LTE")]
    LteKomEinr,
    /// Maximumzähler
    #[serde(rename = "MAZ")]
    Maximumzaehler,
    /// Blockstromwandler
    #[serde(rename = "MBW")]
    Blockstromwandler,
    /// Messwandlersatz Strom
    #[serde(rename = "MIW")]
    MesswandlersatzStrom,
    /// moderne Messeinrichtung nach MsbG
    #[serde(rename = "MME")]
    ModerneMesseinrichtungMsbg,
    /// manuell ausgelesene Zähler
    #[serde(rename = "MMR")]
    ManuellAusgeleseneZaehler,
    /// Kombimesswandlersatz (Strom und Spannung)
    #[serde(rename = "MPW")]
    KombimesswandlersatzStromSpannung,
    /// Messdatenregistriergerät
    #[serde(rename = "MRG")]
    Messdatenregistriergeraet,
    /// Messwandlersatz Spannung
    #[serde(rename = "MUW")]
    MesswandlersatzSpannung,
    /// neue Messeinrichtung Gas nach MsbG
    #[serde(rename = "NMG")]
    NeueMesseinrichtungGasMsbg,
    /// Mehrtarif
    #[serde(rename = "NTZ")]
    Mehrtarif,
    /// PLC-Kom.-Einrichtung
    #[serde(rename = "PLC")]
    PlcKomEinrichtung,
    /// Festnetz-Kom.-Einricht. TAE
    #[serde(rename = "PST")]
    FestnetzKomEinrichtTae,
    /// Rundsteuerempfänger
    #[serde(rename = "RSU")]
    Rundsteuerempfaenger,
    /// Sondervertragskunden < 1 kV nach § 2 (7) und > 1 kV, Preis nach § 2 (3) (für Strom 0,11 ct/kWh und für Gas 0,03 ct/kWh)
    #[serde(rename = "SA")]
    Sondervertragskunden1KvParagraph271KvPreisParagraph23Strom011Ct,
    /// Kennzeichnung, dass ein abweichender Preis für Sondervertragskunden vorliegt
    #[serde(rename = "SAS")]
    KennzeichnungDassAbweichenderPreisSondervertragskundenVorliegt,
    /// Tarifkunden, für Strom § 2. (2) 1b HT bzw. ET (hohe KA) und für Gas § 2 (2) 2b
    #[serde(rename = "TA")]
    TarifkundenStromParagraph221bHtEtHoheKaGasParagraph222b,
    /// Kennzeichnung, dass ein abweichender Preis für Tarifkunden vorliegt
    #[serde(rename = "TAS")]
    KennzeichnungDassAbweichenderPreisTarifkundenVorliegt,
    /// für Gas nach KAV § 2 (2) 2a bei ausschließlicher Nutzung zum Kochen und Warmwassererzeugung
    #[serde(rename = "TK")]
    GasKavParagraph222aAusschliesslicherNutzungKochenWarmwassererzeugung,
    /// Kennzeichnung, wenn nach KAV § 2 (2) 2a ein anderer Preis zu verwenden ist
    #[serde(rename = "TKS")]
    KennzeichnungKavParagraph222aAndererPreisVerwenden,
    /// Temperaturmengenumwerter
    #[serde(rename = "TMU")]
    Temperaturmengenumwerter,
    /// Turbinenradgaszähler
    #[serde(rename = "TRZ")]
    Turbinenradgaszaehler,
    /// Tarifschaltuhr
    #[serde(rename = "TSU")]
    Tarifschaltuhr,
    /// Ultraschallgaszähler
    #[serde(rename = "UGZ")]
    Ultraschallgaszaehler,
    /// Wirbelgaszähler
    #[serde(rename = "WGZ")]
    Wirbelgaszaehler,
    /// analoger Wechselstromzähler
    #[serde(rename = "WSZ")]
    AnalogerWechselstromzaehler,
    /// Beispielcode
    #[serde(rename = "XYZ")]
    DieserCodeAnwendungDurchZulaessigenCodeNbGueltigenListe,
    /// Hochdruck
    #[serde(rename = "Y01")]
    Hochdruck,
    /// Mitteldruck
    #[serde(rename = "Y02")]
    Mitteldruck,
    /// Niederdruck
    #[serde(rename = "Y03")]
    Niederdruck,
    /// H-Gas
    #[serde(rename = "Y04")]
    HGas,
    /// L-Gas
    #[serde(rename = "Y05")]
    LGas,
    /// Verbrauchsaufteilung in %
    #[serde(rename = "Z22")]
    Verbrauchsaufteilung,
    /// Verlustfaktor
    #[serde(rename = "Z28")]
    Verlustfaktor,
    /// Gerätenummer
    #[serde(rename = "Z30")]
    Geraetenummer,
    /// Einstutzen-Zähler
    #[serde(rename = "Z31")]
    EinstutzenZaehler,
    /// Zweistutzen-Zähler
    #[serde(rename = "Z32")]
    ZweistutzenZaehler,
    /// EEG-Marktlokation ohne DV-Pflicht
    #[serde(rename = "Z33")]
    EegMarktlokationOhneDvPflicht,
    /// KWKG-Marktlokation ohne DV-Pflicht
    #[serde(rename = "Z34")]
    KwkgMarktlokationOhneDvPflicht,
    /// sonstige Marktlokation
    #[serde(rename = "Z35")]
    SonstigeMarktlokation,
    /// TEP mit Referenzmessung
    #[serde(rename = "Z36")]
    TepReferenzmessung,
    /// EEG-Marktlokation mit DV-Pflicht
    #[serde(rename = "Z37")]
    EegMarktlokationDvPflicht,
    /// Prognose auf Basis von Profilen
    #[serde(rename = "Z38")]
    PrognoseBasisProfilen,
    /// Prognose auf Basis von Werten
    #[serde(rename = "Z39")]
    PrognoseBasisWerten,
    /// KWKG-Marktlokation mit DV-Pflicht
    #[serde(rename = "Z46")]
    KwkgMarktlokationDvPflicht,
    /// Endkundenabrechnung
    #[serde(rename = "Z47")]
    Endkundenabrechnung,
    /// Bilanzkreis für verbrauchende Marktlokation
    #[serde(rename = "Z48")]
    BilanzkreisVerbrauchendeMarktlokation,
    /// Bilanzkreis für erzeugende Marktlokation EEG
    #[serde(rename = "Z49")]
    BilanzkreisErzeugendeMarktlokationEeg,
    /// Bilanzkreis für erzeugende Marktlokation KWKG
    #[serde(rename = "Z50")]
    BilanzkreisErzeugendeMarktlokationKwkg,
    /// Bilanzkreis für sonstige erzeugende Marktlokation
    #[serde(rename = "Z51")]
    BilanzkreisSonstigeErzeugendeMarktlokation,
    /// Anzuwenden wenn alle Messlokationen, die zur Erfassung der Energiewerte der Marktlokation erforderlich sind mit iMS ausgestattet sind.
    #[serde(rename = "Z52")]
    AnzuwendenAlleMesslokationenErfassungEnergiewerteMarktlokationErforderlich,
    /// Anzuwenden wenn noch mindestens eine Messlokation, die zur Erfassung der Energiewerte der Marktlokation mit kME oder mME ausgestattet ist.
    #[serde(rename = "Z53")]
    AnzuwendenMindestensMesslokationErfassungEnergiewerteMarktlokationKmeMme,
    /// Hierunter fallen Heizungsanlagen bei denen das Speichermedium (z.B. Standspeicherheizkörper, Estrich als Fußbodenspeicher) während lastschwacher Zeiten aufgeladen wird und während des Tages Wärme abgeben.
    #[serde(rename = "Z56")]
    HierunterFallenHeizungsanlagenDenenSpeichermediumZB,
    /// Wärmepumpen entziehen der Umwelt (Luft, Wasser oder Erdreich) Wärme und heben mit technischem Verfahren die Temperatur auf ein Temperaturniveau an, um Gebäude zu heizen. Der Stromverbrauch steht somit immer in zeitlicher Verbindung zur Wärmeerzeugung.
    #[serde(rename = "Z57")]
    WaermepumpenEntziehenUmweltLuftWasserErdreichWaermeHebenTechnischem,
    /// Fernschaltung der Zähleinrichtung
    #[serde(rename = "Z58")]
    FernschaltungZaehleinrichtung,
    /// Hierunter fallen Heizungsanlagen, die direkt und damit zeitgleich elektrische Energie in Wärme umwandeln (z.B. Konvektionsheizung, Infrarotheizung, Flächenheizung).
    #[serde(rename = "Z61")]
    HierunterFallenHeizungsanlagenDirektDamitZeitgleichElektrischeEnergie,
    /// Netzbetreiber kann die Verbrauchseinrichtung einer Marktlokation unterbrechen. Es kommen gesonderte Netzentgelte für die Marktlokation zum Tragen.
    #[serde(rename = "Z62")]
    NetzbetreiberKannVerbrauchseinrichtungMarktlokationUnterbrechenEsKommen,
    /// Netzbetreiber kann die Verbrauchseinrichtung einer Marktlokation nicht unterbrechen. Es kommen normale Netzentgelte zum Tragen.
    #[serde(rename = "Z63")]
    NetzbetreiberKannVerbrauchseinrichtungMarktlokationNichtUnterbrechenEs,
    /// Hierunter ist Strom zu verstehen, der ausschließlich zum Betrieb von Endverbrauchsgeräten (z.B. Radio, Fernseher, Kühlschrank, Beleuchtung...) genutzt wird.
    #[serde(rename = "Z64")]
    HierunterStromVerstehenAusschliesslichBetriebEndverbrauchsgeraetenZB,
    /// Hierunter ist Strom zu verstehen, der zur Wärmebedarfsdeckung (z.B. Standspeicherheizung, Fußbodenspeicherheizungen, Wärmepumpe....) eingesetzt wird.
    #[serde(rename = "Z65")]
    HierunterStromVerstehenWaermebedarfsdeckungZBStandspeicherheizung,
    /// Anzuwenden wenn keine Messlokation, zur Erfassung der Energiewerte der Marktlokation vorhanden ist (Pauschale-Marktlokation).
    #[serde(rename = "Z68")]
    AnzuwendenKeineMesslokationErfassungEnergiewerteMarktlokationVorhanden,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts wird in diesem Rechenschritt mittels Addition berücksichtigt.
    #[serde(rename = "Z69")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts wird in diesem Rechenschritt mittels Subtraktion berücksichtigt.
    #[serde(rename = "Z70")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten2,
    /// Verbrauch
    #[serde(rename = "Z71")]
    Verbrauch,
    /// Erzeugung
    #[serde(rename = "Z72")]
    Erzeugung,
    /// Zahlung der Netznutzung
    #[serde(rename = "Z73")]
    ZahlungNetznutzung,
    /// Netznutzungsvertrag
    #[serde(rename = "Z74")]
    Netznutzungsvertrag,
    /// 1. Priorität
    #[serde(rename = "Z75")]
    Code1Prioritaet,
    /// 2. Priorität
    #[serde(rename = "Z76")]
    Code2Prioritaet,
    /// 3. Priorität
    #[serde(rename = "Z77")]
    Code3Prioritaet,
    /// 4. Priorität
    #[serde(rename = "Z78")]
    Code4Prioritaet,
    /// 5. Priorität
    #[serde(rename = "Z79")]
    Code5Prioritaet,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts ist in diesem Rechenschritt der Divisor (Nenner des Bruchs).
    #[serde(rename = "Z80")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten3,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts ist in diesem Rechenschritt der Dividend (Zähler des Bruchs).
    #[serde(rename = "Z81")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten4,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des Rechenschritts wird in diesem Rechenschritt als ein Faktor einer Multiplikation berücksichtigt.
    #[serde(rename = "Z82")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisRechenschritts,
    /// Auf das Ergebnis des referenzierten Rechenschritts ist die Funktion Positivwert anzuwenden (d. h. ist das Ergebnis des referenzierten Rechenschritts ein negativer Wert, so ergibt sich durch das Anwenden der Funktion Positivwert der Wert 0. Ist das Ergebnis des referenzierten Rechenschritts ein positiver Wert, so ergibt sich durch das Anwenden der Funktion Positivwert genau dieser Wert als Ergebnis dieses Rechenschritts).
    #[serde(rename = "Z83")]
    ErgebnisReferenziertenRechenschrittsFunktionPositivwertAnzuwendenDH,
    /// Netznutzungsabrechnung
    #[serde(rename = "Z84")]
    Netznutzungsabrechnung,
    /// Bilanzkreisabrechnung
    #[serde(rename = "Z85")]
    Bilanzkreisabrechnung,
    /// Mehrmindermengenabrechnung
    #[serde(rename = "Z86")]
    Mehrmindermengenabrechnung,
    /// Es handelt sich um eine öffentliche Ladesäule mit ggf. mehreren Ladeanschlüssen an der Marktlokation
    #[serde(rename = "Z87")]
    EsHandeltSichUmOeffentlicheLadesaeuleMehrerenLadeanschluessen,
    /// NB
    #[serde(rename = "Z88")]
    Nb,
    /// LF
    #[serde(rename = "Z89")]
    Lf,
    /// ÜNB
    #[serde(rename = "Z90")]
    Uenb,
    /// MSB
    #[serde(rename = "Z91")]
    Msb,
    /// Übermittlung an das HKNR
    #[serde(rename = "Z92")]
    UebermittlungHknr,
    /// Tag
    #[serde(rename = "Z93")]
    Tag,
    /// Monat
    #[serde(rename = "Z94")]
    Monat,
    /// BG-SZR (Kategorie B)
    #[serde(rename = "Z95")]
    BgSzrKategorieB,
    /// BG-SZR (Kategorie C)
    #[serde(rename = "Z96")]
    BgSzrKategorieC,
    /// BK-SZR (Kategorie A)
    #[serde(rename = "Z97")]
    BkSzrKategorieA,
    /// BK-SZR (Kategorie B) auf Ebene Regelzone
    #[serde(rename = "Z98")]
    BkSzrKategorieBEbeneRegelzone,
    /// BK-SZR (Kategorie B) auf Ebene Bilanzierungsgebiet
    #[serde(rename = "Z99")]
    BkSzrKategorieBEbeneBilanzierungsgebiet,
    /// BK-SZR (Kategorie C)
    #[serde(rename = "ZA0")]
    BkSzrKategorieC,
    /// LF-SZR (Kategorie A)
    #[serde(rename = "ZA1")]
    LfSzrKategorieA,
    /// LF-SZR (Kategorie B) auf Ebene Regelzone
    #[serde(rename = "ZA2")]
    LfSzrKategorieBEbeneRegelzone,
    /// LF-SZR (Kategorie B) auf Ebene Bilanzierungsgebiet
    #[serde(rename = "ZA3")]
    LfSzrKategorieBEbeneBilanzierungsgebiet,
    /// Deltazeitreihenübertrag (DZÜ)
    #[serde(rename = "ZA4")]
    DeltazeitreihenuebertragDzue,
    /// Netzzeitreihe (NZR)
    #[serde(rename = "ZA5")]
    NetzzeitreiheNzr,
    /// Abrechnungssummenzeitreihe
    #[serde(rename = "ZA6")]
    Abrechnungssummenzeitreihe,
    /// Grundlage für Lieferscheinprüfung
    #[serde(rename = "ZA7")]
    GrundlageLieferscheinpruefung,
    /// Straßenbeleuchtung
    #[serde(rename = "ZA8")]
    Strassenbeleuchtung,
    /// Netznutzungsabrechnungsvariante
    #[serde(rename = "ZB1")]
    Netznutzungsabrechnungsvariante,
    /// Steuerung Wärmeabgabe
    #[serde(rename = "ZB3")]
    SteuerungWaermeabgabe,
    /// MSBA
    #[serde(rename = "ZB4")]
    Msba,
    /// Zur Ermittlung der Ausgeglichenheit von Bilanzkreisen
    #[serde(rename = "ZB5")]
    ErmittlungAusgeglichenheitBilanzkreisen,
    /// Monatlich
    #[serde(rename = "ZB7")]
    Monatlich,
    /// Art der Volumenerfassung
    #[serde(rename = "ZC0")]
    ArtVolumenerfassung,
    /// Zweite Messung für Vergleichsmessung erforderlich
    #[serde(rename = "ZC9")]
    ZweiteMessungVergleichsmessungErforderlich,
    /// Blindarbeitabrechnung / Betriebsführung
    #[serde(rename = "ZD1")]
    BlindarbeitabrechnungBetriebsfuehrung,
    /// Zählzeitdefinitionstyp
    #[serde(rename = "ZD3")]
    Zaehlzeitdefinitionstyp,
    /// Ermittlung des Leistungsmaximums bei atypischer Netznutzung
    #[serde(rename = "ZD4")]
    ErmittlungLeistungsmaximumsAtypischerNetznutzung,
    /// Übermittelbarkeit der ausgerollten Definition
    #[serde(rename = "ZD5")]
    UebermittelbarkeitAusgerolltenDefinition,
    /// Bestellbarkeit der Zählzeitdefinition
    #[serde(rename = "ZD7")]
    BestellbarkeitZaehlzeitdefinition,
    /// Jährlich
    #[serde(rename = "ZD9")]
    Jaehrlich,
    /// Häufigkeit der Übermittlung
    #[serde(rename = "ZE0")]
    HaeufigkeitUebermittlung,
    /// Es liegt kein Verwendungszweck vor
    #[serde(rename = "ZE1")]
    EsLiegtKeinVerwendungszweckVor,
    /// Zahler der Blindarbeit
    #[serde(rename = "ZE4")]
    ZahlerBlindarbeit,
    /// E-Mobilität
    #[serde(rename = "ZE5")]
    EMobilitaet,
    /// An der Marktlokation ist eine nicht öffentlliche Lademöglichkeit vorhanden
    #[serde(rename = "ZE6")]
    MarktlokationNichtOeffentllicheLademoeglichkeitVorhanden,
    /// Es handelt sich um mehr als eine öffentliche Ladesäule an der Marktlokation
    #[serde(rename = "ZE7")]
    EsHandeltSichUmMehrOeffentlicheLadesaeuleMarktlokation,
    /// Halbjährlich
    #[serde(rename = "ZE8")]
    Halbjaehrlich,
    /// Quartalsweise
    #[serde(rename = "ZE9")]
    Quartalsweise,
    /// gMSB
    #[serde(rename = "ZF0")]
    Gmsb,
    /// Netzgangzeitreihe (NGZ)
    #[serde(rename = "ZF1")]
    NetzgangzeitreiheNgz,
    /// Leistungsbeschreibung des Steuerkanals
    #[serde(rename = "ZF2")]
    LeistungsbeschreibungSteuerkanals,
    /// Solar
    #[serde(rename = "ZF5")]
    Solar,
    /// Wind
    #[serde(rename = "ZF6")]
    Wind,
    /// Wasserstoffspeicher
    #[serde(rename = "ZF7")]
    Wasserstoffspeicher,
    /// Pumpspeicher
    #[serde(rename = "ZF8")]
    Pumpspeicher,
    /// Batteriespeicher
    #[serde(rename = "ZF9")]
    Batteriespeicher,
    /// Gas
    #[serde(rename = "ZG0")]
    Gas,
    /// Wasser
    #[serde(rename = "ZG1")]
    Wasser,
    /// Lokation im Regelbetrieb
    #[serde(rename = "ZG3")]
    LokationRegelbetrieb,
    /// Lokation außerhalb des Regelbetriebs (Stilllegung)
    #[serde(rename = "ZG4")]
    LokationAusserhalbRegelbetriebsStilllegung,
    /// Sonstige Erzeugungsart
    #[serde(rename = "ZG5")]
    SonstigeErzeugungsart,
    /// Sonstige Speicherart
    #[serde(rename = "ZG6")]
    SonstigeSpeicherart,
    /// BK-SZR (eMob, täglich)
    #[serde(rename = "ZG7")]
    BkSzrEmobTaeglich,
    /// Technischen Ressource fällt unter § 14a EnWG
    #[serde(rename = "ZG8")]
    TechnischenRessourceFaelltParagraph14aEnwg,
    /// Technischen Ressource fällt nicht unter § 14a EnWG
    #[serde(rename = "ZG9")]
    TechnischenRessourceFaelltNichtParagraph14aEnwg,
    /// Inbetriebsetzung der TR nach 2023
    #[serde(rename = "ZH0")]
    InbetriebsetzungTr2023,
    /// Inbetriebsetzung der TR vor 2024
    #[serde(rename = "ZH1")]
    InbetriebsetzungTrVor2024,
    /// Wechselmöglichkeit in das § 14a EnWG-Modell gem. Festlegung BK6-22-300 einmalig noch möglich
    #[serde(rename = "ZH2")]
    WechselmoeglichkeitParagraph14aEnwgModellFestlegungBk622300Einmalig,
    /// Wechselmöglichkeit in das § 14a EnWG-Modell gem. Festlegung BK6-22-300 nicht möglich
    #[serde(rename = "ZH3")]
    WechselmoeglichkeitParagraph14aEnwgModellFestlegungBk622300Nicht,
    /// Befristet im alten § 14a EnWG-Modell bis 2028 ohne Wechselmöglichkeit
    #[serde(rename = "ZH4")]
    BefristetAltenParagraph14aEnwgModellBis2028OhneWechselmoeglichkeit,
    /// Wechsel in das § 14a EnWG-Modell gem. Festlegung BK6-22-300 wurde durchgeführt
    #[serde(rename = "ZH5")]
    WechselParagraph14aEnwgModellFestlegungBk622300WurdeDurchgefuehrt,
    /// Aufteilungsfaktor Energiemenge
    #[serde(rename = "ZH6")]
    AufteilungsfaktorEnergiemenge,
    /// Dieser Code ist auszuwählen, wenn neben den genannten Technischen Ressourcen in der verbrauchenden Marktlokation weitere technische Einrichtungen (z. B. Kraft/ Licht) vorhanden sind
    #[serde(rename = "ZH7")]
    DieserCodeAuszuwaehlenNebenGenanntenTechnischenRessourcenVerbrauchenden,
    /// Dieser Code ist auszuwählen, wenn neben den genannten Technischen Ressourcen in der verbrauchenden Marktlokation keine weitere technische Einrichtung vorhanden ist.
    #[serde(rename = "ZH8")]
    DieserCodeAuszuwaehlenNebenGenanntenTechnischenRessourcenVerbrauchenden2,
    /// Code der Produkteigenschaft
    #[serde(rename = "ZH9")]
    CodeProdukteigenschaft,
    /// Zustandsmengenumwerter
    #[serde(rename = "ZMU")]
    Zustandsmengenumwerter,
    /// Zweirichtungszähler
    #[serde(rename = "ZRZ")]
    Zweirichtungszaehler,
    /// Zweitarif
    #[serde(rename = "ZTZ")]
    Zweitarif,
    /// § 21 EnFG Stromspeicher und Verlustenergie
    #[serde(rename = "ZU5")]
    Paragraph21EnfgStromspeicherVerlustenergie,
    /// § 22 EnFG elektrisch angetriebene Wärmepumpen
    #[serde(rename = "ZU6")]
    Paragraph22EnfgElektrischAngetriebeneWaermepumpen,
    /// § 23 EnFG Umlageerhebung bei Anlagen zur Verstromung von Kuppelgasen
    #[serde(rename = "ZU7")]
    Paragraph23EnfgUmlageerhebungAnlagenVerstromungKuppelgasen,
    /// § 24 EnFG Herstellung von Grünen Wasserstoff
    #[serde(rename = "ZU8")]
    Paragraph24EnfgHerstellungGruenenWasserstoff,
    /// §§ 30 - 35 EnFG stromkostenintensive Unternehmen
    #[serde(rename = "ZU9")]
    Paragraphparagraph3035EnfgStromkostenintensiveUnternehmen,
    /// § 36 EnFG Herstellung von Wasserstoff in stromkostenintensiven Unternehmen
    #[serde(rename = "ZV0")]
    Paragraph36EnfgHerstellungWasserstoffStromkostenintensivenUnternehmen,
    /// § 37 EnFG Schienenbahnen
    #[serde(rename = "ZV1")]
    Paragraph37EnfgSchienenbahnen,
    /// § 38 EnFG elektrische betriebene Bussen im Linienverkehr
    #[serde(rename = "ZV2")]
    Paragraph38EnfgElektrischeBetriebeneBussenLinienverkehr,
    /// § 39 EnFG Landstromanlagen
    #[serde(rename = "ZV3")]
    Paragraph39EnfgLandstromanlagen,
    /// Wertedetails zum Produkt
    #[serde(rename = "ZV4")]
    WertedetailsProdukt,
    /// Wärmepumpe (Wärme und Kälte)
    #[serde(rename = "ZV5")]
    WaermepumpeWaermeKaelte,
    /// Wärmepumpe (Kälte)
    #[serde(rename = "ZV6")]
    WaermepumpeKaelte,
    /// Wärmepumpe (Wärme)
    #[serde(rename = "ZV7")]
    WaermepumpeWaerme,
    /// Firmware-Version
    #[serde(rename = "ZV8")]
    FirmwareVersion,
    /// Hersteller-Typbezeichnung
    #[serde(rename = "ZV9")]
    HerstellerTypbezeichnung,
    /// SIM-Karten-Nr
    #[serde(rename = "ZW0")]
    SimKartenNr,
    /// Modem-Kennung IMSI
    #[serde(rename = "ZW1")]
    ModemKennungImsi,
    /// TK-Provider
    #[serde(rename = "ZW2")]
    TkProvider,
    /// IP-Version
    #[serde(rename = "ZW3")]
    IpVersion,
    /// (steuerbar): Die Technische Ressource ist mit einer technischen Einrichtung ausgestattet, über die der Lieferant oder eine andere Person, an die der Strom veräußert wird, die Ist-Einspeisung der Technischen Ressource abrufen und die Einspeiseleistung vollständig oder, sobald jeweils die technische Möglichkeit besteht, stufenweise oder stufenlos ferngesteuert regeln kann.
    #[serde(rename = "ZW5")]
    SteuerbarTechnischeRessourceTechnischenEinrichtungAusgestattetLieferant,
    /// (nicht steuerbar): Nicht alle Anforderungen, die unter dem Code ZW5 (Status 1 „steuerbar“) beschrieben sind, sind erfüllt.
    #[serde(rename = "ZW6")]
    NichtSteuerbarNichtAlleAnforderungenCodeZw5Status1SteuerbarBeschrieben,
}

/// Code values for the `klassentyp` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Klassentyp {
    /// Produkt
    #[serde(rename = "11")]
    Produkt,
    /// Struktur
    #[serde(rename = "15")]
    Struktur,
    /// Verantwortlicher
    #[serde(rename = "6")]
    Verantwortlicher,
    /// Verwendungsumfang
    #[serde(rename = "Z01")]
    Verwendungsumfang,
    /// Standardlastprofil
    #[serde(rename = "Z02")]
    Standardlastprofil,
    /// tagesparameterabhängiges Lastprofil
    #[serde(rename = "Z03")]
    TagesparameterabhaengigesLastprofil,
    /// Standardeinspeiseprofil
    #[serde(rename = "Z04")]
    Standardeinspeiseprofil,
    /// tagesparameterabhängiges Einspeiseprofil
    #[serde(rename = "Z05")]
    TagesparameterabhaengigesEinspeiseprofil,
    /// Normierungsfaktor
    #[serde(rename = "Z06")]
    Normierungsfaktor,
    /// Profiltyp
    #[serde(rename = "Z07")]
    Profiltyp,
    /// Schwachlastfähigkeit
    #[serde(rename = "Z10")]
    Schwachlastfaehigkeit,
    /// Begrenzungskonstante
    #[serde(rename = "Z11")]
    Begrenzungskonstante,
    /// Lastprofil
    #[serde(rename = "Z12")]
    Lastprofil,
    /// Stromverbrauchsart
    #[serde(rename = "Z17")]
    Stromverbrauchsart,
    /// Regelzone
    #[serde(rename = "Z18")]
    Regelzone,
    /// Bilanzkreis
    #[serde(rename = "Z19")]
    Bilanzkreis,
    /// Bilanzierungsgebiet
    #[serde(rename = "Z20")]
    Bilanzierungsgebiet,
    /// Marktgebiet
    #[serde(rename = "Z21")]
    Marktgebiet,
    /// Gesetzliche Kategorie
    #[serde(rename = "Z22")]
    GesetzlicheKategorie,
    /// Land der Förderung
    #[serde(rename = "Z23")]
    LandFoerderung,
    /// Status der Fernsteuerbarkeit
    #[serde(rename = "Z24")]
    StatusFernsteuerbarkeit,
    /// Datenstatus zur Zeitreihe
    #[serde(rename = "Z25")]
    DatenstatusZeitreihe,
    /// Bilanzkreis "an"
    #[serde(rename = "Z28")]
    Bilanzkreis2,
    /// Bilanzkreis "von"
    #[serde(rename = "Z29")]
    Bilanzkreis3,
    /// Lieferrichtung
    #[serde(rename = "Z30")]
    Lieferrichtung,
    /// Betriebszustand der Messlokation
    #[serde(rename = "Z32")]
    BetriebszustandMesslokation,
    /// Beschreibung erforderlicher Wert
    #[serde(rename = "Z35")]
    BeschreibungErforderlicherWert,
    /// Versorgungsart der Marktlokation
    #[serde(rename = "Z36")]
    VersorgungsartMarktlokation,
    /// Basis zur Bildung der Tranchengröße
    #[serde(rename = "Z37")]
    BasisBildungTranchengroesse,
    /// Code des Zählzeitregisters
    #[serde(rename = "Z38")]
    CodeZaehlzeitregisters,
    /// Code der Zählzeitdefinition
    #[serde(rename = "Z39")]
    CodeZaehlzeitdefinition,
    /// Erreichbarkeit des Unternehmens
    #[serde(rename = "Z40")]
    ErreichbarkeitUnternehmens,
    /// Keine Zählzeit für Messprodukt erforderlich
    #[serde(rename = "Z41")]
    KeineZaehlzeitMessproduktErforderlich,
    /// Betriebszustand der Marktlokation
    #[serde(rename = "Z42")]
    BetriebszustandMarktlokation,
    /// Berechnungspreis
    #[serde(rename = "Z44")]
    Berechnungspreis,
    /// Abrechnung der Blindarbeit
    #[serde(rename = "Z45")]
    AbrechnungBlindarbeit,
    /// Zahlung der Blindarbeit durch Lieferanten
    #[serde(rename = "Z46")]
    ZahlungBlindarbeitDurchLieferanten,
    /// Zuordnungsregel des ZP der NGZ zur NZR
    #[serde(rename = "Z48")]
    ZuordnungsregelZpNgzNzr,
    /// Steuerkanal
    #[serde(rename = "Z49")]
    Steuerkanal,
    /// Stromerzeugungsart
    #[serde(rename = "Z50")]
    Stromerzeugungsart,
    /// Code der Schaltzeitdefinition
    #[serde(rename = "Z52")]
    CodeSchaltzeitdefinition,
    /// Code der Leistungskurvendefinition
    #[serde(rename = "Z53")]
    CodeLeistungskurvendefinition,
    /// Änderungsmöglichkeit der Konfiguration im SMGW
    #[serde(rename = "Z54")]
    AenderungsmoeglichkeitKonfigurationSmgw,
    /// Speicher
    #[serde(rename = "Z56")]
    Speicher,
    /// Schalthandlung
    #[serde(rename = "Z58")]
    Schalthandlung,
    /// Schwellwerte
    #[serde(rename = "Z60")]
    Schwellwerte,
    /// Grundlage zur Verringerung der Umlagen nach EnFG
    #[serde(rename = "Z61")]
    GrundlageVerringerungUmlagenEnfg,
    /// Information zu weiteren technischen Einrichtungen
    #[serde(rename = "Z63")]
    InformationWeiterenTechnischenEinrichtungen,
    /// Umsetzungsgradvorgabe des Produktpakets
    #[serde(rename = "Z65")]
    UmsetzungsgradvorgabeProduktpakets,
    /// Produkteigenschaft
    #[serde(rename = "Z66")]
    Produkteigenschaft,
    /// Paket-ID
    #[serde(rename = "Z67")]
    PaketId,
    /// Vergütungsverpflichtung nach EEG bzw. KWKG
    #[serde(rename = "Z68")]
    VerguetungsverpflichtungEegKwkg,
    /// Art und Nutzung der technischen Einrichtung
    #[serde(rename = "Z69")]
    ArtNutzungTechnischenEinrichtung,
    /// Messstelle des Tagesparameters (derzeit ist nur die Temperatur ein erlaubter Tagesparameter)
    #[serde(rename = "Z99")]
    MessstelleTagesparametersDerzeitTemperaturErlaubterTagesparameter,
    /// Klimazone des Tagesparameters (derzeit ist Tagesparameter)
    #[serde(rename = "ZA0")]
    KlimazoneTagesparametersDerzeitTagesparameter,
    /// Abwicklungsmodell
    #[serde(rename = "ZA2")]
    Abwicklungsmodell,
}

/// Code values for the `kommunikation.art` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum KommunikationArt {
    /// weiteres Telefon
    #[serde(rename = "AJ")]
    WeiteresTelefon,
    /// Handy
    #[serde(rename = "AL")]
    Handy,
    /// Elektronische Post
    #[serde(rename = "EM")]
    ElektronischePost,
    /// Telefax
    #[serde(rename = "FX")]
    Telefax,
    /// Telefon
    #[serde(rename = "TE")]
    Telefon,
}

/// Code values for the `loc_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum LocQualifier {
    /// Bilanzierungsgebiet
    #[serde(rename = "107")]
    Bilanzierungsgebiet,
    /// Meldepunkt
    #[serde(rename = "172")]
    Meldepunkt,
    /// Regelzone
    #[serde(rename = "231")]
    Regelzone,
    /// Bilanzkreis
    #[serde(rename = "237")]
    Bilanzkreis,
    /// Profilbezeichnung
    #[serde(rename = "Z04")]
    Profilbezeichnung,
    /// Profilschar
    #[serde(rename = "Z06")]
    Profilschar,
    /// zukünftiger Meldepunkt
    #[serde(rename = "Z08")]
    ZukuenftigerMeldepunkt,
    /// Code der Definition
    #[serde(rename = "Z09")]
    CodeDefinition,
    /// MaBiS-Zählpunkt
    #[serde(rename = "Z15")]
    MabisZaehlpunkt,
    /// Marktlokation
    #[serde(rename = "Z16")]
    Marktlokation,
    /// Messlokation
    #[serde(rename = "Z17")]
    Messlokation,
    /// Netzlokation
    #[serde(rename = "Z18")]
    Netzlokation,
    /// Steuerbare Ressource
    #[serde(rename = "Z19")]
    SteuerbareRessource,
    /// Technische Ressource
    #[serde(rename = "Z20")]
    TechnischeRessource,
    /// Tranche
    #[serde(rename = "Z21")]
    Tranche,
    /// Ruhende Marktlokation
    #[serde(rename = "Z22")]
    RuhendeMarktlokation,
}

/// Code values for the `marktgebiet.wert` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum MarktgebietWert {
    /// Direkter Vertrag zwischen Kunden und NB
    #[serde(rename = "Z08")]
    DirekterVertragKundenNb,
    /// Vertrag zwischen Lieferanten und NB
    #[serde(rename = "Z09")]
    VertragLieferantenNb,
}

/// Code values for the `marktrolle` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Marktrolle {
    /// Anspruchsteller
    #[serde(rename = "CC")]
    Anspruchsteller,
    /// Netzbetreiber
    #[serde(rename = "DDM")]
    Netzbetreiber,
    /// Location manager
    #[serde(rename = "DDO")]
    Hausverwalter,
    /// Messstellenbetreiber
    #[serde(rename = "DEB")]
    Messstellenbetreiber,
    /// Profilerstellung
    #[serde(rename = "DED")]
    Profilerstellung,
    /// Lieferanschrift
    #[serde(rename = "DP")]
    Lieferanschrift,
    /// Anschlussnehmer
    #[serde(rename = "EO")]
    Anschlussnehmer,
    /// Nachrichtenempfänger
    #[serde(rename = "MR")]
    Nachrichtenempfaenger,
    /// Dokumenten-/Nachrichtenaussteller bzw. -absender
    #[serde(rename = "MS")]
    DokumentenNachrichtenausstellerAbsender,
    /// Ansprechpartner
    #[serde(rename = "PK")]
    Ansprechpartner,
    /// Lieferant
    #[serde(rename = "SU")]
    Lieferant,
    /// andere zugehörige Partei
    #[serde(rename = "VY")]
    AndereZugehoerigePartei,
    /// Messlokationsadresse
    #[serde(rename = "Z03")]
    Messlokationsadresse,
    /// Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "Z04")]
    KorrespondenzanschriftKundenLf,
    /// Name und Adresse für die Ablesekarte
    #[serde(rename = "Z05")]
    NameAdresseAblesekarte,
    /// Kunde des MSB
    #[serde(rename = "Z07")]
    KundeMsb,
    /// Korrespondenzanschrift des Kunden des MSB
    #[serde(rename = "Z08")]
    KorrespondenzanschriftKundenMsb,
    /// Kunde des LF
    #[serde(rename = "Z09")]
    KundeLf,
    /// Ansprechpartner Übertragungsweg / Datenaustausch
    #[serde(rename = "Z10")]
    AnsprechpartnerUebertragungswegDatenaustausch,
    /// Ansprechpartner Rahmenverträge
    #[serde(rename = "Z11")]
    AnsprechpartnerRahmenvertraege,
    /// Ansprechpartner Kündigungsprozesse
    #[serde(rename = "Z12")]
    AnsprechpartnerKuendigungsprozesse,
    /// Ansprechpartner Wechselprozesse
    #[serde(rename = "Z13")]
    AnsprechpartnerWechselprozesse,
    /// Ansprechpartner Stammdatenprozesse
    #[serde(rename = "Z14")]
    AnsprechpartnerStammdatenprozesse,
    /// Überführungszeitreihe
    #[serde(rename = "Z15")]
    Ueberfuehrungszeitreihe,
    /// Ansprechpartner Einspeiseprozesse
    #[serde(rename = "Z16")]
    AnsprechpartnerEinspeiseprozesse,
    /// Ansprechpartner Abrechnungsprozesse
    #[serde(rename = "Z17")]
    AnsprechpartnerAbrechnungsprozesse,
    /// Ansprechpartner MMMA-Prozesse
    #[serde(rename = "Z18")]
    AnsprechpartnerMmmaProzesse,
    /// Ansprechpartner Bewegungsdaten
    #[serde(rename = "Z19")]
    AnsprechpartnerBewegungsdaten,
    /// Ansprechpartner Sperr-/Entsperrprozesse
    #[serde(rename = "Z20")]
    AnsprechpartnerSperrEntsperrprozesse,
    /// Ansprechpartner Bilanzierungsprozesse / Bilanzkreismanagement
    #[serde(rename = "Z21")]
    AnsprechpartnerBilanzierungsprozesseBilanzkreismanagement,
    /// Lieferadresse für Altgeräte
    #[serde(rename = "Z22")]
    LieferadresseAltgeraete,
    /// Marktlokationsadresse
    #[serde(rename = "Z23")]
    Marktlokationsadresse,
    /// Treffpunkt
    #[serde(rename = "Z24")]
    Treffpunkt,
    /// Kunde des NB
    #[serde(rename = "Z25")]
    KundeNb,
    /// Korrespondenzanschrift des Kunden des NB
    #[serde(rename = "Z26")]
    KorrespondenzanschriftKundenNb,
    /// Übertragungsnetzbetreiber
    #[serde(rename = "Z31")]
    Uebertragungsnetzbetreiber,
    /// Ansprechpartner technischer Netzanschluss für Neuanlagen und Anlagenumbau
    #[serde(rename = "Z33")]
    AnsprechpartnerTechnischerNetzanschlussNeuanlagenAnlagenumbau,
    /// Bilanzkoordinator
    #[serde(rename = "Z34")]
    Bilanzkoordinator,
    /// Bilanzkreisverantwortlicher
    #[serde(rename = "Z35")]
    Bilanzkreisverantwortlicher,
    /// Energieserviceanbieter
    #[serde(rename = "Z36")]
    Energieserviceanbieter,
    /// Erwarteter Kunde des MSB
    #[serde(rename = "Z39")]
    ErwarteterKundeMsb,
    /// Im System vorhandener Kunde des MSB
    #[serde(rename = "Z40")]
    SystemVorhandenerKundeMsb,
    /// Erwartete Korrespondenzanschrift des Kunden des MSB
    #[serde(rename = "Z41")]
    ErwarteteKorrespondenzanschriftKundenMsb,
    /// Im System vorhandene Korrespondenzanschrift des Kunden des MSB
    #[serde(rename = "Z42")]
    SystemVorhandeneKorrespondenzanschriftKundenMsb,
    /// Erwartete Messlokationsadresse
    #[serde(rename = "Z43")]
    ErwarteteMesslokationsadresse,
    /// Im System vorhandene Messlokationsadresse
    #[serde(rename = "Z44")]
    SystemVorhandeneMesslokationsadresse,
    /// Erwarteter Name und Adresse für die Ablesekarte
    #[serde(rename = "Z45")]
    ErwarteterNameAdresseAblesekarte,
    /// Im System vorhandener Name und Adresse für die Ablesekarte
    #[serde(rename = "Z46")]
    SystemVorhandenerNameAdresseAblesekarte,
    /// Erwarteter Kunde des LF
    #[serde(rename = "Z47")]
    ErwarteterKundeLf,
    /// Im System vorhandener Kunde des LF
    #[serde(rename = "Z48")]
    SystemVorhandenerKundeLf,
    /// Erwartete Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "Z49")]
    ErwarteteKorrespondenzanschriftKundenLf,
    /// Im System vorhandene Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "Z50")]
    SystemVorhandeneKorrespondenzanschriftKundenLf,
    /// Erwarteter Kunde des Netzbetreibers
    #[serde(rename = "Z51")]
    ErwarteterKundeNetzbetreibers,
    /// Im System vorhandener Kunde des Netzbetreibers
    #[serde(rename = "Z52")]
    SystemVorhandenerKundeNetzbetreibers,
    /// Erwartete Korrespondenzanschrift des Kunden des Netzbetreibers
    #[serde(rename = "Z53")]
    ErwarteteKorrespondenzanschriftKundenNetzbetreibers,
    /// Im System vorhandene Korrespondenzanschrift des Kunden des Netzbetreibers
    #[serde(rename = "Z54")]
    SystemVorhandeneKorrespondenzanschriftKundenNetzbetreibers,
    /// Erwarteter Anschlussnehmer
    #[serde(rename = "Z55")]
    ErwarteterAnschlussnehmer,
    /// Im System vorhandener Anschlussnehmer
    #[serde(rename = "Z56")]
    SystemVorhandenerAnschlussnehmer,
    /// Erwarteter Hausverwalter
    #[serde(rename = "Z57")]
    ErwarteterHausverwalter,
    /// Im System vorhandener Hausverwalter
    #[serde(rename = "Z58")]
    SystemVorhandenerHausverwalter,
    /// Erwartete Marktlokationsanschrift
    #[serde(rename = "Z59")]
    ErwarteteMarktlokationsanschrift,
    /// Im System vorhandene Marktlokationsanschrift
    #[serde(rename = "Z60")]
    SystemVorhandeneMarktlokationsanschrift,
    /// Informative Marktlokationsanschrift
    #[serde(rename = "Z63")]
    InformativeMarktlokationsanschrift,
    /// Informative Messlokationsadresse
    #[serde(rename = "Z64")]
    InformativeMesslokationsadresse,
    /// Informativer Kunde des LF
    #[serde(rename = "Z65")]
    InformativerKundeLf,
    /// Informative Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "Z66")]
    InformativeKorrespondenzanschriftKundenLf,
    /// Informativer Kundenname des NB
    #[serde(rename = "Z67")]
    InformativerKundennameNb,
    /// Informative Korrespondenzanschrift des Kunde des NB
    #[serde(rename = "Z68")]
    InformativeKorrespondenzanschriftKundeNb,
    /// Informative Daten des Anschlussnehmers
    #[serde(rename = "Z69")]
    InformativeDatenAnschlussnehmers,
    /// Informative Daten des Hausverwalters
    #[serde(rename = "Z70")]
    InformativeDatenHausverwalters,
    /// Marktgebietsverantwortlicher
    #[serde(rename = "Z71")]
    Marktgebietsverantwortlicher,
    /// Netzkonto
    #[serde(rename = "ZSH")]
    Netzkonto,
}

/// Code values for the `menge_einheit` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum MengeEinheit {
    /// Stück
    #[serde(rename = "H87")]
    Stueck,
    /// kilovolt ampere reactive hour
    #[serde(rename = "K3")]
    KilovoltAmpereReactiveHour,
    /// kilovar
    #[serde(rename = "KVR")]
    Kilovar,
    /// Kilowattstunde
    #[serde(rename = "KWH")]
    Kilowattstunde,
    /// Kilowatt
    #[serde(rename = "KWT")]
    Kilowatt,
}

/// Code values for the `menge_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum MengeQualifier {
    /// Aufteilungsmenge
    #[serde(rename = "11")]
    Aufteilungsmenge,
    /// Erreichte Menge in dem Zeitintervall
    #[serde(rename = "136")]
    ErreichteMengeZeitintervall,
    /// Prognosewert
    #[serde(rename = "187")]
    Prognosewert,
    /// Nicht verwendbarer Wert
    #[serde(rename = "20")]
    NichtVerwendbarerWert,
    /// Vorschlagswert
    #[serde(rename = "201")]
    Vorschlagswert,
    /// Wahrer Wert
    #[serde(rename = "220")]
    WahrerWert,
    /// Veranschlagte Jahresmenge Gesamt/Jahresverbrauchsprognose für spezifische Arbeit für tagesparameterabhängige Marktlokation
    #[serde(rename = "265")]
    VeranschlagteJahresmengeGesamtJahresverbrauchsprognoseSpezifischeArbeit,
    /// Veranschlagte Jahresmenge Gesamt
    #[serde(rename = "31")]
    VeranschlagteJahresmengeGesamt,
    /// Berechnete (fakturierte) Menge
    #[serde(rename = "47")]
    BerechneteFakturierteMenge,
    /// Ersatzwert
    #[serde(rename = "67")]
    Ersatzwert,
    /// Energiemenge summiert (Summenwert, Bilanzsumme)
    #[serde(rename = "79")]
    EnergiemengeSummiertSummenwertBilanzsumme,
    /// Kundenwert
    #[serde(rename = "Y02")]
    Kundenwert,
    /// Tatsächlich bilanzierte Energiemenge
    #[serde(rename = "Z07")]
    TatsaechlichBilanzierteEnergiemenge,
    /// Angepasste elektrische Arbeit nach Anhang D der VDN-Richtlinie "Lastprofile für unterbrechbare Verbrauchseinrichtungen"
    #[serde(rename = "Z08")]
    AngepassteElektrischeArbeitAnhangDVdnRichtlinieLastprofileUnterbrechbare,
    /// Vorjahresverbrauch
    #[serde(rename = "Z09")]
    Vorjahresverbrauch,
    /// Leistung der Marktlokation
    #[serde(rename = "Z10")]
    LeistungMarktlokation,
    /// Anteil A
    #[serde(rename = "Z11")]
    AnteilA,
    /// Anteil B
    #[serde(rename = "Z12")]
    AnteilB,
    /// Anteil C
    #[serde(rename = "Z13")]
    AnteilC,
    /// Anteil D
    #[serde(rename = "Z14")]
    AnteilD,
    /// Bezugstemperatur
    #[serde(rename = "Z15")]
    Bezugstemperatur,
    /// Gemeinderabatt
    #[serde(rename = "Z16")]
    Gemeinderabatt,
    /// Korrekturfaktor
    #[serde(rename = "Z17")]
    Korrekturfaktor,
    /// Vorläufiger Wert
    #[serde(rename = "Z18")]
    VorlaeufigerWert,
    /// Tarifstufe 0
    #[serde(rename = "Z20")]
    Tarifstufe0,
    /// Tarifstufe 1
    #[serde(rename = "Z21")]
    Tarifstufe1,
    /// Tarifstufe 2
    #[serde(rename = "Z22")]
    Tarifstufe2,
    /// Tarifstufe 3
    #[serde(rename = "Z23")]
    Tarifstufe3,
    /// Tarifstufe 4
    #[serde(rename = "Z24")]
    Tarifstufe4,
    /// Tarifstufe 5
    #[serde(rename = "Z25")]
    Tarifstufe5,
    /// Tarifstufe 6
    #[serde(rename = "Z26")]
    Tarifstufe6,
    /// Tarifstufe 7
    #[serde(rename = "Z27")]
    Tarifstufe7,
    /// Tarifstufe 8
    #[serde(rename = "Z28")]
    Tarifstufe8,
    /// Tarifstufe 9
    #[serde(rename = "Z29")]
    Tarifstufe9,
    /// Fehlender Wert
    #[serde(rename = "Z30")]
    FehlenderWert,
    /// Angabe für Lieferschein
    #[serde(rename = "Z31")]
    AngabeLieferschein,
    /// Tatsächlich bilanzierte Ausfallarbeit
    #[serde(rename = "Z32")]
    TatsaechlichBilanzierteAusfallarbeit,
    /// Singulär genutzte Betriebsmittel
    #[serde(rename = "Z33")]
    SingulaerGenutzteBetriebsmittel,
    /// Zuschlag
    #[serde(rename = "Z34")]
    Zuschlag,
    /// Abschlag
    #[serde(rename = "Z35")]
    Abschlag,
    /// Energiemenge: DZÜ-Anteil
    #[serde(rename = "Z36")]
    EnergiemengeDzueAnteil,
    /// Kein Zu-/Abschlag
    #[serde(rename = "Z37")]
    KeinAbschlag,
    /// Anzahl der abzurechenden Positionen der Gruppenartikel-ID / Artikel-ID
    #[serde(rename = "Z38")]
    AnzahlAbzurechendenPositionenGruppenartikelIdArtikelId,
    /// oberer Schwellwert
    #[serde(rename = "Z40")]
    ObererSchwellwert,
    /// Speicherkapazität
    #[serde(rename = "Z42")]
    Speicherkapazitaet,
    /// Nennleistung (Aufnahme)
    #[serde(rename = "Z43")]
    NennleistungAufnahme,
    /// Nennleistung (Abgabe)
    #[serde(rename = "Z44")]
    NennleistungAbgabe,
    /// Zu bilanzierende Energiemenge
    #[serde(rename = "Z45")]
    BilanzierendeEnergiemenge,
    /// kein Abschlag
    #[serde(rename = "Z46")]
    KeinAbschlag2,
    /// Grundlage POG-Ermittlung
    #[serde(rename = "Z47")]
    GrundlagePogErmittlung,
}

/// Code values for the `merkmal.qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum MerkmalQualifier {
    /// Produkt
    #[serde(rename = "11")]
    Produkt,
    /// Struktur
    #[serde(rename = "15")]
    Struktur,
    /// Verantwortlicher
    #[serde(rename = "6")]
    Verantwortlicher,
    /// analoger Haushaltszähler (Drehstrom)
    #[serde(rename = "AHZ")]
    AnalogerHaushaltszaehlerDrehstrom,
    /// fernauslesbare Zähler
    #[serde(rename = "AMR")]
    FernauslesbareZaehler,
    /// Balgengaszähler
    #[serde(rename = "BGZ")]
    Balgengaszaehler,
    /// Stecktechnik (Befestigungs- und Kontaktierungseinrichtung)
    #[serde(rename = "BKE")]
    StecktechnikBefestigungsKontaktierungseinrichtung,
    /// Drehkolbengaszähler
    #[serde(rename = "DKZ")]
    Drehkolbengaszaehler,
    /// Dichtemengenumwerter
    #[serde(rename = "DMU")]
    Dichtemengenumwerter,
    /// 3-Dreipunktaufhängung
    #[serde(rename = "DPA")]
    Code3Dreipunktaufhaengung,
    /// DSL-Kom.Einr.
    #[serde(rename = "DSL")]
    DslKomEinr,
    /// SLP/SEP
    #[serde(rename = "E02")]
    SlpSep,
    /// Höchstspannung
    #[serde(rename = "E03")]
    Hoechstspannung,
    /// Hochspannung
    #[serde(rename = "E04")]
    Hochspannung,
    /// Mittelspannung
    #[serde(rename = "E05")]
    Mittelspannung,
    /// Niederspannung
    #[serde(rename = "E06")]
    Niederspannung,
    /// Hös/HS Umspannung
    #[serde(rename = "E07")]
    HoesHsUmspannung,
    /// HS/MS Umspannung
    #[serde(rename = "E08")]
    HsMsUmspannung,
    /// MS/NS Umspannung
    #[serde(rename = "E09")]
    MsNsUmspannung,
    /// TLP/TEP
    #[serde(rename = "E14")]
    TlpTep,
    /// elektronischer Haushaltszähler
    #[serde(rename = "EHZ")]
    ElektronischerHaushaltszaehler,
    /// Einrichtungszähler
    #[serde(rename = "ERZ")]
    Einrichtungszaehler,
    /// Ethernet-Kom.-Einricht. LAN/WLAN
    #[serde(rename = "ETH")]
    EthernetKomEinrichtLanWlan,
    /// Eintarif
    #[serde(rename = "ETZ")]
    Eintarif,
    /// GSM/GPRS/UMTS-Kom.-Einr.
    #[serde(rename = "GSM")]
    GsmGprsUmtsKomEinr,
    /// Hutschiene
    #[serde(rename = "HUT")]
    Hutschiene,
    /// Zur Sonderausstattung gehört z.B. Gas-Encoder
    #[serde(rename = "IVA")]
    SonderausstattungGehoertZBGasEncoder,
    /// für alle konzessionsvertraglichen Sonderregelungen, die nicht in die Systematik der KAV eingegliedert sind
    #[serde(rename = "KAS")]
    AlleKonzessionsvertraglichenSonderregelungenNichtSystematikKav,
    /// Lastgangzähler
    #[serde(rename = "LAZ")]
    Lastgangzaehler,
    /// LTE-Kom.-Einr.
    #[serde(rename = "LTE")]
    LteKomEinr,
    /// Maximumzähler
    #[serde(rename = "MAZ")]
    Maximumzaehler,
    /// Blockstromwandler
    #[serde(rename = "MBW")]
    Blockstromwandler,
    /// Messwandlersatz Strom
    #[serde(rename = "MIW")]
    MesswandlersatzStrom,
    /// moderne Messeinrichtung nach MsbG
    #[serde(rename = "MME")]
    ModerneMesseinrichtungMsbg,
    /// manuell ausgelesene Zähler
    #[serde(rename = "MMR")]
    ManuellAusgeleseneZaehler,
    /// Kombimesswandlersatz (Strom und Spannung)
    #[serde(rename = "MPW")]
    KombimesswandlersatzStromSpannung,
    /// Messdatenregistriergerät
    #[serde(rename = "MRG")]
    Messdatenregistriergeraet,
    /// Messwandlersatz Spannung
    #[serde(rename = "MUW")]
    MesswandlersatzSpannung,
    /// neue Messeinrichtung Gas nach MsbG
    #[serde(rename = "NMG")]
    NeueMesseinrichtungGasMsbg,
    /// Mehrtarif
    #[serde(rename = "NTZ")]
    Mehrtarif,
    /// PLC-Kom.-Einrichtung
    #[serde(rename = "PLC")]
    PlcKomEinrichtung,
    /// Festnetz-Kom.-Einricht. TAE
    #[serde(rename = "PST")]
    FestnetzKomEinrichtTae,
    /// Rundsteuerempfänger
    #[serde(rename = "RSU")]
    Rundsteuerempfaenger,
    /// Sondervertragskunden < 1 kV nach § 2 (7) und > 1 kV, Preis nach § 2 (3) (für Strom 0,11 ct/kWh und für Gas 0,03 ct/kWh)
    #[serde(rename = "SA")]
    Sondervertragskunden1KvParagraph271KvPreisParagraph23Strom011Ct,
    /// Kennzeichnung, dass ein abweichender Preis für Sondervertragskunden vorliegt
    #[serde(rename = "SAS")]
    KennzeichnungDassAbweichenderPreisSondervertragskundenVorliegt,
    /// Tarifkunden, für Strom § 2. (2) 1b HT bzw. ET (hohe KA) und für Gas § 2 (2) 2b
    #[serde(rename = "TA")]
    TarifkundenStromParagraph221bHtEtHoheKaGasParagraph222b,
    /// Kennzeichnung, dass ein abweichender Preis für Tarifkunden vorliegt
    #[serde(rename = "TAS")]
    KennzeichnungDassAbweichenderPreisTarifkundenVorliegt,
    /// für Gas nach KAV § 2 (2) 2a bei ausschließlicher Nutzung zum Kochen und Warmwassererzeugung
    #[serde(rename = "TK")]
    GasKavParagraph222aAusschliesslicherNutzungKochenWarmwassererzeugung,
    /// Kennzeichnung, wenn nach KAV § 2 (2) 2a ein anderer Preis zu verwenden ist
    #[serde(rename = "TKS")]
    KennzeichnungKavParagraph222aAndererPreisVerwenden,
    /// Temperaturmengenumwerter
    #[serde(rename = "TMU")]
    Temperaturmengenumwerter,
    /// Turbinenradgaszähler
    #[serde(rename = "TRZ")]
    Turbinenradgaszaehler,
    /// Tarifschaltuhr
    #[serde(rename = "TSU")]
    Tarifschaltuhr,
    /// Ultraschallgaszähler
    #[serde(rename = "UGZ")]
    Ultraschallgaszaehler,
    /// Wirbelgaszähler
    #[serde(rename = "WGZ")]
    Wirbelgaszaehler,
    /// analoger Wechselstromzähler
    #[serde(rename = "WSZ")]
    AnalogerWechselstromzaehler,
    /// Beispielcode
    #[serde(rename = "XYZ")]
    DieserCodeAnwendungDurchZulaessigenCodeNbGueltigenListe,
    /// Hochdruck
    #[serde(rename = "Y01")]
    Hochdruck,
    /// Mitteldruck
    #[serde(rename = "Y02")]
    Mitteldruck,
    /// Niederdruck
    #[serde(rename = "Y03")]
    Niederdruck,
    /// H-Gas
    #[serde(rename = "Y04")]
    HGas,
    /// L-Gas
    #[serde(rename = "Y05")]
    LGas,
    /// Verwendungsumfang
    #[serde(rename = "Z01")]
    Verwendungsumfang,
    /// Standardlastprofil
    #[serde(rename = "Z02")]
    Standardlastprofil,
    /// tagesparameterabhängiges Lastprofil
    #[serde(rename = "Z03")]
    TagesparameterabhaengigesLastprofil,
    /// Standardeinspeiseprofil
    #[serde(rename = "Z04")]
    Standardeinspeiseprofil,
    /// tagesparameterabhängiges Einspeiseprofil
    #[serde(rename = "Z05")]
    TagesparameterabhaengigesEinspeiseprofil,
    /// Normierungsfaktor
    #[serde(rename = "Z06")]
    Normierungsfaktor,
    /// Profiltyp
    #[serde(rename = "Z07")]
    Profiltyp,
    /// Schwachlastfähigkeit
    #[serde(rename = "Z10")]
    Schwachlastfaehigkeit,
    /// Begrenzungskonstante
    #[serde(rename = "Z11")]
    Begrenzungskonstante,
    /// Lastprofil
    #[serde(rename = "Z12")]
    Lastprofil,
    /// Stromverbrauchsart
    #[serde(rename = "Z17")]
    Stromverbrauchsart,
    /// Regelzone
    #[serde(rename = "Z18")]
    Regelzone,
    /// Bilanzkreis
    #[serde(rename = "Z19")]
    Bilanzkreis,
    /// Bilanzierungsgebiet
    #[serde(rename = "Z20")]
    Bilanzierungsgebiet,
    /// Marktgebiet
    #[serde(rename = "Z21")]
    Marktgebiet,
    /// Gesetzliche Kategorie
    #[serde(rename = "Z22")]
    GesetzlicheKategorie,
    /// Land der Förderung
    #[serde(rename = "Z23")]
    LandFoerderung,
    /// Status der Fernsteuerbarkeit
    #[serde(rename = "Z24")]
    StatusFernsteuerbarkeit,
    /// Datenstatus zur Zeitreihe
    #[serde(rename = "Z25")]
    DatenstatusZeitreihe,
    /// Bilanzkreis "an"
    #[serde(rename = "Z28")]
    Bilanzkreis2,
    /// Bilanzkreis "von"
    #[serde(rename = "Z29")]
    Bilanzkreis3,
    /// Lieferrichtung
    #[serde(rename = "Z30")]
    Lieferrichtung,
    /// Einstutzen-Zähler
    #[serde(rename = "Z31")]
    EinstutzenZaehler,
    /// Betriebszustand der Messlokation
    #[serde(rename = "Z32")]
    BetriebszustandMesslokation,
    /// EEG-Marktlokation ohne DV-Pflicht
    #[serde(rename = "Z33")]
    EegMarktlokationOhneDvPflicht,
    /// KWKG-Marktlokation ohne DV-Pflicht
    #[serde(rename = "Z34")]
    KwkgMarktlokationOhneDvPflicht,
    /// Beschreibung erforderlicher Wert
    #[serde(rename = "Z35")]
    BeschreibungErforderlicherWert,
    /// Versorgungsart der Marktlokation
    #[serde(rename = "Z36")]
    VersorgungsartMarktlokation,
    /// Basis zur Bildung der Tranchengröße
    #[serde(rename = "Z37")]
    BasisBildungTranchengroesse,
    /// Code des Zählzeitregisters
    #[serde(rename = "Z38")]
    CodeZaehlzeitregisters,
    /// Code der Zählzeitdefinition
    #[serde(rename = "Z39")]
    CodeZaehlzeitdefinition,
    /// Erreichbarkeit des Unternehmens
    #[serde(rename = "Z40")]
    ErreichbarkeitUnternehmens,
    /// Keine Zählzeit für Messprodukt erforderlich
    #[serde(rename = "Z41")]
    KeineZaehlzeitMessproduktErforderlich,
    /// Betriebszustand der Marktlokation
    #[serde(rename = "Z42")]
    BetriebszustandMarktlokation,
    /// Berechnungspreis
    #[serde(rename = "Z44")]
    Berechnungspreis,
    /// Abrechnung der Blindarbeit
    #[serde(rename = "Z45")]
    AbrechnungBlindarbeit,
    /// Zahlung der Blindarbeit durch Lieferanten
    #[serde(rename = "Z46")]
    ZahlungBlindarbeitDurchLieferanten,
    /// Endkundenabrechnung
    #[serde(rename = "Z47")]
    Endkundenabrechnung,
    /// Zuordnungsregel des ZP der NGZ zur NZR
    #[serde(rename = "Z48")]
    ZuordnungsregelZpNgzNzr,
    /// Steuerkanal
    #[serde(rename = "Z49")]
    Steuerkanal,
    /// Stromerzeugungsart
    #[serde(rename = "Z50")]
    Stromerzeugungsart,
    /// Bilanzkreis für sonstige erzeugende Marktlokation
    #[serde(rename = "Z51")]
    BilanzkreisSonstigeErzeugendeMarktlokation,
    /// Code der Schaltzeitdefinition
    #[serde(rename = "Z52")]
    CodeSchaltzeitdefinition,
    /// Code der Leistungskurvendefinition
    #[serde(rename = "Z53")]
    CodeLeistungskurvendefinition,
    /// Änderungsmöglichkeit der Konfiguration im SMGW
    #[serde(rename = "Z54")]
    AenderungsmoeglichkeitKonfigurationSmgw,
    /// Speicher
    #[serde(rename = "Z56")]
    Speicher,
    /// Wärmepumpen entziehen der Umwelt (Luft, Wasser oder Erdreich) Wärme und heben mit technischem Verfahren die Temperatur auf ein Temperaturniveau an, um Gebäude zu heizen. Der Stromverbrauch steht somit immer in zeitlicher Verbindung zur Wärmeerzeugung.
    #[serde(rename = "Z57")]
    WaermepumpenEntziehenUmweltLuftWasserErdreichWaermeHebenTechnischem,
    /// Schalthandlung
    #[serde(rename = "Z58")]
    Schalthandlung,
    /// Schwellwerte
    #[serde(rename = "Z60")]
    Schwellwerte,
    /// Grundlage zur Verringerung der Umlagen nach EnFG
    #[serde(rename = "Z61")]
    GrundlageVerringerungUmlagenEnfg,
    /// Netzbetreiber kann die Verbrauchseinrichtung einer Marktlokation unterbrechen. Es kommen gesonderte Netzentgelte für die Marktlokation zum Tragen.
    #[serde(rename = "Z62")]
    NetzbetreiberKannVerbrauchseinrichtungMarktlokationUnterbrechenEsKommen,
    /// Information zu weiteren technischen Einrichtungen
    #[serde(rename = "Z63")]
    InformationWeiterenTechnischenEinrichtungen,
    /// Hierunter ist Strom zu verstehen, der ausschließlich zum Betrieb von Endverbrauchsgeräten (z.B. Radio, Fernseher, Kühlschrank, Beleuchtung...) genutzt wird.
    #[serde(rename = "Z64")]
    HierunterStromVerstehenAusschliesslichBetriebEndverbrauchsgeraetenZB,
    /// Umsetzungsgradvorgabe des Produktpakets
    #[serde(rename = "Z65")]
    UmsetzungsgradvorgabeProduktpakets,
    /// Produkteigenschaft
    #[serde(rename = "Z66")]
    Produkteigenschaft,
    /// Paket-ID
    #[serde(rename = "Z67")]
    PaketId,
    /// Vergütungsverpflichtung nach EEG bzw. KWKG
    #[serde(rename = "Z68")]
    VerguetungsverpflichtungEegKwkg,
    /// Art und Nutzung der technischen Einrichtung
    #[serde(rename = "Z69")]
    ArtNutzungTechnischenEinrichtung,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts wird in diesem Rechenschritt mittels Subtraktion berücksichtigt.
    #[serde(rename = "Z70")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten2,
    /// Verbrauch
    #[serde(rename = "Z71")]
    Verbrauch,
    /// Erzeugung
    #[serde(rename = "Z72")]
    Erzeugung,
    /// Zahlung der Netznutzung
    #[serde(rename = "Z73")]
    ZahlungNetznutzung,
    /// Netznutzungsvertrag
    #[serde(rename = "Z74")]
    Netznutzungsvertrag,
    /// 1. Priorität
    #[serde(rename = "Z75")]
    Code1Prioritaet,
    /// 2. Priorität
    #[serde(rename = "Z76")]
    Code2Prioritaet,
    /// 3. Priorität
    #[serde(rename = "Z77")]
    Code3Prioritaet,
    /// 4. Priorität
    #[serde(rename = "Z78")]
    Code4Prioritaet,
    /// 5. Priorität
    #[serde(rename = "Z79")]
    Code5Prioritaet,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts ist in diesem Rechenschritt der Divisor (Nenner des Bruchs).
    #[serde(rename = "Z80")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten3,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des referenzierten Rechenschritts ist in diesem Rechenschritt der Dividend (Zähler des Bruchs).
    #[serde(rename = "Z81")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisReferenzierten4,
    /// Die gemessene Energiemenge der referenzierten Messlokation oder das Ergebnis des Rechenschritts wird in diesem Rechenschritt als ein Faktor einer Multiplikation berücksichtigt.
    #[serde(rename = "Z82")]
    GemesseneEnergiemengeReferenziertenMesslokationErgebnisRechenschritts,
    /// Auf das Ergebnis des referenzierten Rechenschritts ist die Funktion Positivwert anzuwenden (d. h. ist das Ergebnis des referenzierten Rechenschritts ein negativer Wert, so ergibt sich durch das Anwenden der Funktion Positivwert der Wert 0. Ist das Ergebnis des referenzierten Rechenschritts ein positiver Wert, so ergibt sich durch das Anwenden der Funktion Positivwert genau dieser Wert als Ergebnis dieses Rechenschritts).
    #[serde(rename = "Z83")]
    ErgebnisReferenziertenRechenschrittsFunktionPositivwertAnzuwendenDH,
    /// Netznutzungsabrechnung
    #[serde(rename = "Z84")]
    Netznutzungsabrechnung,
    /// Bilanzkreisabrechnung
    #[serde(rename = "Z85")]
    Bilanzkreisabrechnung,
    /// Mehrmindermengenabrechnung
    #[serde(rename = "Z86")]
    Mehrmindermengenabrechnung,
    /// Es handelt sich um eine öffentliche Ladesäule mit ggf. mehreren Ladeanschlüssen an der Marktlokation
    #[serde(rename = "Z87")]
    EsHandeltSichUmOeffentlicheLadesaeuleMehrerenLadeanschluessen,
    /// NB
    #[serde(rename = "Z88")]
    Nb,
    /// LF
    #[serde(rename = "Z89")]
    Lf,
    /// ÜNB
    #[serde(rename = "Z90")]
    Uenb,
    /// MSB
    #[serde(rename = "Z91")]
    Msb,
    /// Übermittlung an das HKNR
    #[serde(rename = "Z92")]
    UebermittlungHknr,
    /// Tag
    #[serde(rename = "Z93")]
    Tag,
    /// Monat
    #[serde(rename = "Z94")]
    Monat,
    /// BG-SZR (Kategorie B)
    #[serde(rename = "Z95")]
    BgSzrKategorieB,
    /// BG-SZR (Kategorie C)
    #[serde(rename = "Z96")]
    BgSzrKategorieC,
    /// BK-SZR (Kategorie A)
    #[serde(rename = "Z97")]
    BkSzrKategorieA,
    /// BK-SZR (Kategorie B) auf Ebene Regelzone
    #[serde(rename = "Z98")]
    BkSzrKategorieBEbeneRegelzone,
    /// Messstelle des Tagesparameters (derzeit ist nur die Temperatur ein erlaubter Tagesparameter)
    #[serde(rename = "Z99")]
    MessstelleTagesparametersDerzeitTemperaturErlaubterTagesparameter,
    /// Klimazone des Tagesparameters (derzeit ist Tagesparameter)
    #[serde(rename = "ZA0")]
    KlimazoneTagesparametersDerzeitTagesparameter,
    /// LF-SZR (Kategorie A)
    #[serde(rename = "ZA1")]
    LfSzrKategorieA,
    /// Abwicklungsmodell
    #[serde(rename = "ZA2")]
    Abwicklungsmodell,
    /// LF-SZR (Kategorie B) auf Ebene Bilanzierungsgebiet
    #[serde(rename = "ZA3")]
    LfSzrKategorieBEbeneBilanzierungsgebiet,
    /// Deltazeitreihenübertrag (DZÜ)
    #[serde(rename = "ZA4")]
    DeltazeitreihenuebertragDzue,
    /// Netzzeitreihe (NZR)
    #[serde(rename = "ZA5")]
    NetzzeitreiheNzr,
    /// Abrechnungssummenzeitreihe
    #[serde(rename = "ZA6")]
    Abrechnungssummenzeitreihe,
    /// Grundlage für Lieferscheinprüfung
    #[serde(rename = "ZA7")]
    GrundlageLieferscheinpruefung,
    /// Straßenbeleuchtung
    #[serde(rename = "ZA8")]
    Strassenbeleuchtung,
    /// Netznutzungsabrechnungsvariante
    #[serde(rename = "ZB1")]
    Netznutzungsabrechnungsvariante,
    /// Steuerung Wärmeabgabe
    #[serde(rename = "ZB3")]
    SteuerungWaermeabgabe,
    /// MSBA
    #[serde(rename = "ZB4")]
    Msba,
    /// Zur Ermittlung der Ausgeglichenheit von Bilanzkreisen
    #[serde(rename = "ZB5")]
    ErmittlungAusgeglichenheitBilanzkreisen,
    /// Monatlich
    #[serde(rename = "ZB7")]
    Monatlich,
    /// Art der Volumenerfassung
    #[serde(rename = "ZC0")]
    ArtVolumenerfassung,
    /// Zweite Messung für Vergleichsmessung erforderlich
    #[serde(rename = "ZC9")]
    ZweiteMessungVergleichsmessungErforderlich,
    /// Blindarbeitabrechnung / Betriebsführung
    #[serde(rename = "ZD1")]
    BlindarbeitabrechnungBetriebsfuehrung,
    /// Zählzeitdefinitionstyp
    #[serde(rename = "ZD3")]
    Zaehlzeitdefinitionstyp,
    /// Ermittlung des Leistungsmaximums bei atypischer Netznutzung
    #[serde(rename = "ZD4")]
    ErmittlungLeistungsmaximumsAtypischerNetznutzung,
    /// Übermittelbarkeit der ausgerollten Definition
    #[serde(rename = "ZD5")]
    UebermittelbarkeitAusgerolltenDefinition,
    /// Bestellbarkeit der Zählzeitdefinition
    #[serde(rename = "ZD7")]
    BestellbarkeitZaehlzeitdefinition,
    /// Jährlich
    #[serde(rename = "ZD9")]
    Jaehrlich,
    /// Häufigkeit der Übermittlung
    #[serde(rename = "ZE0")]
    HaeufigkeitUebermittlung,
    /// Es liegt kein Verwendungszweck vor
    #[serde(rename = "ZE1")]
    EsLiegtKeinVerwendungszweckVor,
    /// Zahler der Blindarbeit
    #[serde(rename = "ZE4")]
    ZahlerBlindarbeit,
    /// E-Mobilität
    #[serde(rename = "ZE5")]
    EMobilitaet,
    /// An der Marktlokation ist eine nicht öffentlliche Lademöglichkeit vorhanden
    #[serde(rename = "ZE6")]
    MarktlokationNichtOeffentllicheLademoeglichkeitVorhanden,
    /// Es handelt sich um mehr als eine öffentliche Ladesäule an der Marktlokation
    #[serde(rename = "ZE7")]
    EsHandeltSichUmMehrOeffentlicheLadesaeuleMarktlokation,
    /// Halbjährlich
    #[serde(rename = "ZE8")]
    Halbjaehrlich,
    /// Quartalsweise
    #[serde(rename = "ZE9")]
    Quartalsweise,
    /// gMSB
    #[serde(rename = "ZF0")]
    Gmsb,
    /// Netzgangzeitreihe (NGZ)
    #[serde(rename = "ZF1")]
    NetzgangzeitreiheNgz,
    /// Leistungsbeschreibung des Steuerkanals
    #[serde(rename = "ZF2")]
    LeistungsbeschreibungSteuerkanals,
    /// Solar
    #[serde(rename = "ZF5")]
    Solar,
    /// Wind
    #[serde(rename = "ZF6")]
    Wind,
    /// Wasserstoffspeicher
    #[serde(rename = "ZF7")]
    Wasserstoffspeicher,
    /// Pumpspeicher
    #[serde(rename = "ZF8")]
    Pumpspeicher,
    /// Batteriespeicher
    #[serde(rename = "ZF9")]
    Batteriespeicher,
    /// Gas
    #[serde(rename = "ZG0")]
    Gas,
    /// Wasser
    #[serde(rename = "ZG1")]
    Wasser,
    /// Lokation im Regelbetrieb
    #[serde(rename = "ZG3")]
    LokationRegelbetrieb,
    /// Lokation außerhalb des Regelbetriebs (Stilllegung)
    #[serde(rename = "ZG4")]
    LokationAusserhalbRegelbetriebsStilllegung,
    /// Sonstige Erzeugungsart
    #[serde(rename = "ZG5")]
    SonstigeErzeugungsart,
    /// Sonstige Speicherart
    #[serde(rename = "ZG6")]
    SonstigeSpeicherart,
    /// BK-SZR (eMob, täglich)
    #[serde(rename = "ZG7")]
    BkSzrEmobTaeglich,
    /// Technischen Ressource fällt unter § 14a EnWG
    #[serde(rename = "ZG8")]
    TechnischenRessourceFaelltParagraph14aEnwg,
    /// Technischen Ressource fällt nicht unter § 14a EnWG
    #[serde(rename = "ZG9")]
    TechnischenRessourceFaelltNichtParagraph14aEnwg,
    /// Inbetriebsetzung der TR nach 2023
    #[serde(rename = "ZH0")]
    InbetriebsetzungTr2023,
    /// Inbetriebsetzung der TR vor 2024
    #[serde(rename = "ZH1")]
    InbetriebsetzungTrVor2024,
    /// Wechselmöglichkeit in das § 14a EnWG-Modell gem. Festlegung BK6-22-300 einmalig noch möglich
    #[serde(rename = "ZH2")]
    WechselmoeglichkeitParagraph14aEnwgModellFestlegungBk622300Einmalig,
    /// Wechselmöglichkeit in das § 14a EnWG-Modell gem. Festlegung BK6-22-300 nicht möglich
    #[serde(rename = "ZH3")]
    WechselmoeglichkeitParagraph14aEnwgModellFestlegungBk622300Nicht,
    /// Befristet im alten § 14a EnWG-Modell bis 2028 ohne Wechselmöglichkeit
    #[serde(rename = "ZH4")]
    BefristetAltenParagraph14aEnwgModellBis2028OhneWechselmoeglichkeit,
    /// Wechsel in das § 14a EnWG-Modell gem. Festlegung BK6-22-300 wurde durchgeführt
    #[serde(rename = "ZH5")]
    WechselParagraph14aEnwgModellFestlegungBk622300WurdeDurchgefuehrt,
    /// Aufteilungsfaktor Energiemenge
    #[serde(rename = "ZH6")]
    AufteilungsfaktorEnergiemenge,
    /// Dieser Code ist auszuwählen, wenn neben den genannten Technischen Ressourcen in der verbrauchenden Marktlokation weitere technische Einrichtungen (z. B. Kraft/ Licht) vorhanden sind
    #[serde(rename = "ZH7")]
    DieserCodeAuszuwaehlenNebenGenanntenTechnischenRessourcenVerbrauchenden,
    /// Dieser Code ist auszuwählen, wenn neben den genannten Technischen Ressourcen in der verbrauchenden Marktlokation keine weitere technische Einrichtung vorhanden ist.
    #[serde(rename = "ZH8")]
    DieserCodeAuszuwaehlenNebenGenanntenTechnischenRessourcenVerbrauchenden2,
    /// Code der Produkteigenschaft
    #[serde(rename = "ZH9")]
    CodeProdukteigenschaft,
    /// Zustandsmengenumwerter
    #[serde(rename = "ZMU")]
    Zustandsmengenumwerter,
    /// Zweirichtungszähler
    #[serde(rename = "ZRZ")]
    Zweirichtungszaehler,
    /// Zweitarif
    #[serde(rename = "ZTZ")]
    Zweitarif,
    /// § 21 EnFG Stromspeicher und Verlustenergie
    #[serde(rename = "ZU5")]
    Paragraph21EnfgStromspeicherVerlustenergie,
    /// § 22 EnFG elektrisch angetriebene Wärmepumpen
    #[serde(rename = "ZU6")]
    Paragraph22EnfgElektrischAngetriebeneWaermepumpen,
    /// § 23 EnFG Umlageerhebung bei Anlagen zur Verstromung von Kuppelgasen
    #[serde(rename = "ZU7")]
    Paragraph23EnfgUmlageerhebungAnlagenVerstromungKuppelgasen,
    /// § 24 EnFG Herstellung von Grünen Wasserstoff
    #[serde(rename = "ZU8")]
    Paragraph24EnfgHerstellungGruenenWasserstoff,
    /// §§ 30 - 35 EnFG stromkostenintensive Unternehmen
    #[serde(rename = "ZU9")]
    Paragraphparagraph3035EnfgStromkostenintensiveUnternehmen,
    /// § 36 EnFG Herstellung von Wasserstoff in stromkostenintensiven Unternehmen
    #[serde(rename = "ZV0")]
    Paragraph36EnfgHerstellungWasserstoffStromkostenintensivenUnternehmen,
    /// § 37 EnFG Schienenbahnen
    #[serde(rename = "ZV1")]
    Paragraph37EnfgSchienenbahnen,
    /// § 38 EnFG elektrische betriebene Bussen im Linienverkehr
    #[serde(rename = "ZV2")]
    Paragraph38EnfgElektrischeBetriebeneBussenLinienverkehr,
    /// § 39 EnFG Landstromanlagen
    #[serde(rename = "ZV3")]
    Paragraph39EnfgLandstromanlagen,
    /// Wertedetails zum Produkt
    #[serde(rename = "ZV4")]
    WertedetailsProdukt,
    /// Wärmepumpe (Wärme und Kälte)
    #[serde(rename = "ZV5")]
    WaermepumpeWaermeKaelte,
    /// Wärmepumpe (Kälte)
    #[serde(rename = "ZV6")]
    WaermepumpeKaelte,
    /// Wärmepumpe (Wärme)
    #[serde(rename = "ZV7")]
    WaermepumpeWaerme,
    /// Firmware-Version
    #[serde(rename = "ZV8")]
    FirmwareVersion,
    /// Hersteller-Typbezeichnung
    #[serde(rename = "ZV9")]
    HerstellerTypbezeichnung,
    /// SIM-Karten-Nr
    #[serde(rename = "ZW0")]
    SimKartenNr,
    /// Modem-Kennung IMSI
    #[serde(rename = "ZW1")]
    ModemKennungImsi,
    /// TK-Provider
    #[serde(rename = "ZW2")]
    TkProvider,
    /// IP-Version
    #[serde(rename = "ZW3")]
    IpVersion,
    /// (steuerbar): Die Technische Ressource ist mit einer technischen Einrichtung ausgestattet, über die der Lieferant oder eine andere Person, an die der Strom veräußert wird, die Ist-Einspeisung der Technischen Ressource abrufen und die Einspeiseleistung vollständig oder, sobald jeweils die technische Möglichkeit besteht, stufenweise oder stufenlos ferngesteuert regeln kann.
    #[serde(rename = "ZW5")]
    SteuerbarTechnischeRessourceTechnischenEinrichtungAusgestattetLieferant,
    /// (nicht steuerbar): Nicht alle Anforderungen, die unter dem Code ZW5 (Status 1 „steuerbar“) beschrieben sind, sind erfüllt.
    #[serde(rename = "ZW6")]
    NichtSteuerbarNichtAlleAnforderungenCodeZw5Status1SteuerbarBeschrieben,
}

/// Code values for the `msb_eigenschaft` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum MsbEigenschaft {
    /// Auf vertraglicher Grundlage gegenüber Anschlussnutzer / Anschlussnehmer
    #[serde(rename = "Z19")]
    VertraglicherGrundlageGegenueberAnschlussnutzerAnschlussnehmer,
    /// In der Ausübung der Weiterverpflichtung durch den gMSB
    #[serde(rename = "Z20")]
    AusuebungWeiterverpflichtungDurchGmsb,
    /// Grundzuständiger Messstellenbetreiber
    #[serde(rename = "Z39")]
    GrundzustaendigerMessstellenbetreiber,
    /// Wettbewerblicher Messstellenbetreiber
    #[serde(rename = "Z40")]
    WettbewerblicherMessstellenbetreiber,
    /// Auffangmessstellenbetreiber
    #[serde(rename = "Z41")]
    Auffangmessstellenbetreiber,
}

/// Code values for the `nna_format` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum NnaFormat {
    /// CCYY
    #[serde(rename = "602")]
    Ccyy,
}

/// Code values for the `nna_zeitraum_format` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum NnaZeitraumFormat {
    /// Monat
    #[serde(rename = "802")]
    Monat,
}

/// Code values for the `obis_identifikation.id` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ObisIdentifikationId {
    /// Ausfallarbeit
    #[serde(rename = "AUA")]
    Ausfallarbeit,
}

/// Code values for the `obis_identifikation.typ` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ObisIdentifikationTyp {
    /// OBIS-Kennzahl
    #[serde(rename = "SRW")]
    ObisKennzahl,
    /// BDEW OBIS-ähnliche Kennzahl
    #[serde(rename = "Z02")]
    BdewObisAehnlicheKennzahl,
    /// Medium
    #[serde(rename = "Z08")]
    Medium,
    /// Produkt
    #[serde(rename = "Z11")]
    Produkt,
    /// Konfigurationsprodukt
    #[serde(rename = "Z12")]
    Konfigurationsprodukt,
}

/// Code values for the `paket_id` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum PaketId {
    /// Spannungsebene der Marktlokation
    #[serde(rename = "E03")]
    SpannungsebeneMarktlokation,
    /// Spannungsebene der Messlokation
    #[serde(rename = "E04")]
    SpannungsebeneMesslokation,
    /// Messwerterfassung an der Zähleinrichtung
    #[serde(rename = "E12")]
    MesswerterfassungZaehleinrichtung,
    /// Zählertyp
    #[serde(rename = "E13")]
    Zaehlertyp,
    /// Verbrauchsaufteilung (in %) für temperaturabhängige Marktlokation
    #[serde(rename = "E17")]
    VerbrauchsaufteilungTemperaturabhaengigeMarktlokation,
    /// Druckebene der Marktlokation
    #[serde(rename = "Y01")]
    DruckebeneMarktlokation,
    /// Gasqualität
    #[serde(rename = "Y02")]
    Gasqualitaet,
    /// Konzessionsabgabe
    #[serde(rename = "Z08")]
    Konzessionsabgabe,
    /// Profilschar
    #[serde(rename = "Z12")]
    Profilschar,
    /// Haushaltskunde gem. EnWG
    #[serde(rename = "Z15")]
    HaushaltskundeEnwg,
    /// Verlustfaktor Trafo
    #[serde(rename = "Z16")]
    VerlustfaktorTrafo,
    /// Fallgruppenzuordnung nach GABi Gas
    #[serde(rename = "Z17")]
    FallgruppenzuordnungGabiGas,
    /// Kein Haushaltskunde gem. EnWG
    #[serde(rename = "Z18")]
    KeinHaushaltskundeEnwg,
    /// Wandler
    #[serde(rename = "Z25")]
    Wandler,
    /// Kommunikationseinrichtung
    #[serde(rename = "Z26")]
    Kommunikationseinrichtung,
    /// Technische Steuereinrichtung
    #[serde(rename = "Z27")]
    TechnischeSteuereinrichtung,
    /// Befestigungsart Zähleinrichtung
    #[serde(rename = "Z28")]
    BefestigungsartZaehleinrichtung,
    /// Art der erzeugenden Marktlokation
    #[serde(rename = "Z34")]
    ArtErzeugendenMarktlokation,
    /// Lokale Kennzeichnung zu Kontrollzwecken
    #[serde(rename = "Z63")]
    LokaleKennzeichnungKontrollzwecken,
    /// Mengenumwerter
    #[serde(rename = "Z64")]
    Mengenumwerter,
    /// Smartmeter-Gateway
    #[serde(rename = "Z75")]
    SmartmeterGateway,
    /// Steuerbox
    #[serde(rename = "Z76")]
    Steuerbox,
    /// Prognosegrundlage
    #[serde(rename = "Z77")]
    Prognosegrundlage,
    /// Messtechnische Einordnung der Marktlokation
    #[serde(rename = "Z83")]
    MesstechnischeEinordnungMarktlokation,
    /// Mathematischer Operator
    #[serde(rename = "Z86")]
    MathematischerOperator,
    /// Energieflussrichtung
    #[serde(rename = "Z87")]
    Energieflussrichtung,
    /// Netznutzung
    #[serde(rename = "Z88")]
    Netznutzung,
    /// Empfänger der Vergütung
    #[serde(rename = "Z89")]
    EmpfaengerVerguetung,
    /// Prognose auf Basis von Profilen
    #[serde(rename = "ZA6")]
    PrognoseBasisProfilen,
    /// LF
    #[serde(rename = "ZA7")]
    Lf,
    /// NB
    #[serde(rename = "ZA8")]
    Nb,
    /// ÜNB
    #[serde(rename = "ZA9")]
    Uenb,
    /// Prognose auf Basis von Werten gültig
    #[serde(rename = "ZB0")]
    PrognoseBasisWertenGueltig,
    /// Prognose auf Basis von Profilen gültig
    #[serde(rename = "ZB1")]
    PrognoseBasisProfilenGueltig,
    /// Verlustfaktor Leitung
    #[serde(rename = "ZB2")]
    VerlustfaktorLeitung,
    /// Zugeordneter Marktpartner
    #[serde(rename = "ZB3")]
    ZugeordneterMarktpartner,
    /// Bezeichnung der Summenzeitreihe
    #[serde(rename = "ZB4")]
    BezeichnungSummenzeitreihe,
    /// Spannungsebene der Summenzeitreihe
    #[serde(rename = "ZB5")]
    SpannungsebeneSummenzeitreihe,
    /// Bezugszeitraum der Summenzeitreihe
    #[serde(rename = "ZB6")]
    BezugszeitraumSummenzeitreihe,
    /// Prognose auf Basis von Werten
    #[serde(rename = "ZC0")]
    PrognoseBasisWerten,
    /// Zähleinrichtung
    #[serde(rename = "ZD4")]
    Zaehleinrichtung,
    /// Wertegranularität
    #[serde(rename = "ZE4")]
    Wertegranularitaet,
    /// Aufteilungsfaktor Energiemenge
    #[serde(rename = "ZG6")]
    AufteilungsfaktorEnergiemenge,
}

/// Code values for the `partnerrolle` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Partnerrolle {
    /// Name und Adresse für die Ablesekarte
    #[serde(rename = "ablesekarte")]
    Ablesekarte,
    /// Anschlussnehmer
    #[serde(rename = "anschlussnehmer")]
    Anschlussnehmer,
    /// andere zugehörige Partei
    #[serde(rename = "betreiber")]
    Betreiber,
    /// Lieferanschrift
    #[serde(rename = "dienstleister")]
    Dienstleister,
    /// Location manager
    #[serde(rename = "hausverwalter")]
    Hausverwalter,
    /// Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "korrespondenzKundeLf")]
    KorrespondenzKundeLf,
    /// Korrespondenzanschrift des Kunden des MSB
    #[serde(rename = "korrespondenzKundeMsb")]
    KorrespondenzKundeMsb,
    /// Erwartete Korrespondenzanschrift des Kunden des Netzbetreibers
    #[serde(rename = "korrespondenzKundeNb")]
    KorrespondenzKundeNb,
    /// Kunde des LF
    #[serde(rename = "kundeDesLf")]
    KundeDesLf,
    /// Erwarteter Kunde des Netzbetreibers
    #[serde(rename = "kundeDesNb")]
    KundeDesNb,
    /// Kunde des MSB
    #[serde(rename = "kundeMsb")]
    KundeMsb,
    /// Ansprechpartner Bewegungsdaten
    #[serde(rename = "lokationsinhaber")]
    Lokationsinhaber,
    /// Erwartete Marktlokationsanschrift
    #[serde(rename = "marktlokationsanschrift")]
    Marktlokationsanschrift,
    /// Messlokationsadresse
    #[serde(rename = "messlokationsadresse")]
    Messlokationsadresse,
    /// Ansprechpartner MMMA-Prozesse
    #[serde(rename = "netzlokation")]
    Netzlokation,
    /// Ansprechpartner
    #[serde(rename = "pruefstellenkennung")]
    Pruefstellenkennung,
    /// Messstellenbetreiber
    #[serde(rename = "schuldner")]
    Schuldner,
    /// Korrespondenzanschrift des Kunden des NB
    #[serde(rename = "steuerbareRessource")]
    SteuerbareRessource,
    /// Ansprechpartner Sperr-/Entsperrprozesse
    #[serde(rename = "technischeRessource")]
    TechnischeRessource,
}

/// Code values for the `preis_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum PreisQualifier {
    /// Berechnungspreis
    #[serde(rename = "CAL")]
    Berechnungspreis,
}

/// Code values for the `prioritaet` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Prioritaet {
    /// Verwendung des Hochlastzeitfensters
    #[serde(rename = "Z25")]
    VerwendungHochlastzeitfensters,
    /// keine Verwendung des Hochlastzeitfensters
    #[serde(rename = "Z26")]
    KeineVerwendungHochlastzeitfensters,
}

/// Code values for the `produkt_identifikation.funktion` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ProduktIdentifikationFunktion {
    /// Zusätzliche Identifikation
    #[serde(rename = "1")]
    ZusaetzlicheIdentifikation,
    /// Produktidentifikation
    #[serde(rename = "5")]
    Produktidentifikation,
    /// Berechnung Tagesmitteltemperatur
    #[serde(rename = "Z01")]
    BerechnungTagesmitteltemperatur,
    /// Gruppenartikel-ID / Artikel-ID
    #[serde(rename = "Z02")]
    GruppenartikelIdArtikelId,
    /// Es wird keine Messstellenbetriebsabrechnung über diese Marktlokation vorgenommen
    #[serde(rename = "Z03")]
    EsKeineMessstellenbetriebsabrechnungDieseMarktlokationVorgenommen,
}

/// Code values for the `produktbeschreibung` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Produktbeschreibung {
    /// Ansicht des Senders
    #[serde(rename = "Z01")]
    AnsichtSenders,
    /// Privilegierte Energiemenge
    #[serde(rename = "Z02")]
    PrivilegierteEnergiemenge,
}

/// Code values for the `produktgruppenart` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Produktgruppenart {
    /// keine Gruppe genutzt
    #[serde(rename = "9")]
    KeineGruppeGenutzt,
    /// Netzbetreiberindividuelle Artikel-ID
    #[serde(rename = "Z01")]
    NetzbetreiberindividuelleArtikelId,
}

/// Code values for the `prozent_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ProzentQualifier {
    /// Zu- oder Abschlag
    #[serde(rename = "3")]
    Abschlag,
}

/// Code values for the `pruefidentifikator` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Pruefidentifikator {
    /// Messw. Zählerstand (Gas)
    #[serde(rename = "13002")]
    MesswZaehlerstandGas,
    /// Summenzeitreihe
    #[serde(rename = "13003")]
    Summenzeitreihe,
    /// EEG-Überf.ZR
    #[serde(rename = "13005")]
    EegUeberfZr,
    /// Messw. Storno
    #[serde(rename = "13006")]
    MesswStorno,
    /// Gasbeschaffenheitsdaten
    #[serde(rename = "13007")]
    Gasbeschaffenheitsdaten,
    /// Messwert Lastgang (Gas)
    #[serde(rename = "13008")]
    MesswertLastgangGas,
    /// Messwert Energiemenge (Gas)
    #[serde(rename = "13009")]
    MesswertEnergiemengeGas,
    /// Profil
    #[serde(rename = "13010")]
    Profil,
    /// Profilschar
    #[serde(rename = "13011")]
    Profilschar,
    /// TEP Vergangenheitswerte Referenz-Messung
    #[serde(rename = "13012")]
    TepVergangenheitswerteReferenzMessung,
    /// Marktlokationsscharfe Allokationsliste Gas (MMMA)
    #[serde(rename = "13013")]
    MarktlokationsscharfeAllokationslisteGasMmma,
    /// Marktlokationsscharfe bilanzierte Menge (MMMA)
    #[serde(rename = "13014")]
    MarktlokationsscharfeBilanzierteMengeMmma,
    /// Bewegungsdaten im Kalenderjahr vor Lieferbeginn
    #[serde(rename = "13015")]
    BewegungsdatenKalenderjahrVorLieferbeginn,
    /// Energiemenge und Leistungsmaximum
    #[serde(rename = "13016")]
    EnergiemengeLeistungsmaximum,
    /// Messw. Zählerstand (Strom)
    #[serde(rename = "13017")]
    MesswZaehlerstandStrom,
    /// Lastgang Messlokation, Netzkoppelpunkt
    #[serde(rename = "13018")]
    LastgangMesslokationNetzkoppelpunkt,
    /// Messwert Energiemenge (Strom)
    #[serde(rename = "13019")]
    MesswertEnergiemengeStrom,
    /// Redispatch Ausfallarbeitsüberführungszeitreihe
    #[serde(rename = "13020")]
    RedispatchAusfallarbeitsueberfuehrungszeitreihe,
    /// Redispatch Übermittlung von meteorologischen Daten
    #[serde(rename = "13021")]
    RedispatchUebermittlungMeteorologischenDaten,
    /// Redispatch Einzelzeitreihe Ausfallarbeit
    #[serde(rename = "13022")]
    RedispatchEinzelzeitreiheAusfallarbeit,
    /// Redispatch Ausfallarbeitssummenzeitreihe
    #[serde(rename = "13023")]
    RedispatchAusfallarbeitssummenzeitreihe,
    /// Lastgang Marktlokation, Tranche
    #[serde(rename = "13025")]
    LastgangMarktlokationTranche,
    /// Redispatch EEG-Überführungszeitreihe aufgrund Ausfallarbeit
    #[serde(rename = "13026")]
    RedispatchEegUeberfuehrungszeitreiheAufgrundAusfallarbeit,
    /// Werte nach Typ 2
    #[serde(rename = "13027")]
    WerteTyp2,
    /// Grundlage POG-Ermittlung
    #[serde(rename = "13028")]
    GrundlagePogErmittlung,
    /// Angebot Geräteübernahme
    #[serde(rename = "15001")]
    AngebotGeraeteuebernahme,
    /// Angebot Rechnungsabwicklung MSB über LF
    #[serde(rename = "15002")]
    AngebotRechnungsabwicklungMsbLf,
    /// Angebot zur Anfrage von Werten für ESA
    #[serde(rename = "15003")]
    AngebotAnfrageWertenEsa,
    /// Angebot zur Anfrage einer Konfiguration
    #[serde(rename = "15004")]
    AngebotAnfrageKonfiguration,
    /// Angebot zur Anfrage Änderung Technik
    #[serde(rename = "15005")]
    AngebotAnfrageAenderungTechnik,
    /// Bestellung Geräteübernahme
    #[serde(rename = "17001")]
    BestellungGeraeteuebernahme,
    /// Weiterverpflichtung MSBA
    #[serde(rename = "17002")]
    WeiterverpflichtungMsba,
    /// Beauftragung zur Änderung der Messlokation
    #[serde(rename = "17003")]
    BeauftragungAenderungMesslokation,
    /// Anforderung Messwerte
    #[serde(rename = "17004")]
    AnforderungMesswerte,
    /// Bestellung Rechnungsabwicklung MSB über LF
    #[serde(rename = "17005")]
    BestellungRechnungsabwicklungMsbLf,
    /// Beendigung Rechnungsabwicklung MSB über LF
    #[serde(rename = "17006")]
    BeendigungRechnungsabwicklungMsbLf,
    /// Bestellung von Werten für ESA
    #[serde(rename = "17007")]
    BestellungWertenEsa,
    /// Abbestellung von Werten für ESA
    #[serde(rename = "17008")]
    AbbestellungWertenEsa,
    /// Anzeige Gerätewechselabsicht
    #[serde(rename = "17009")]
    AnzeigeGeraetewechselabsicht,
    /// Bestellung eines Angebots Änderung Technik
    #[serde(rename = "17011")]
    BestellungAngebotsAenderungTechnik,
    /// Anfrage Stammdaten Marktlokation
    #[serde(rename = "17101")]
    AnfrageStammdatenMarktlokation,
    /// Anfrage Werte
    #[serde(rename = "17102")]
    AnfrageWerte,
    /// Anfrage Brennwert und Zustandszahl
    #[serde(rename = "17103")]
    AnfrageBrennwertZustandszahl,
    /// Anfrage vom MSB Gas
    #[serde(rename = "17104")]
    AnfrageMsbGas,
    /// Anforderung Allokationsliste
    #[serde(rename = "17110")]
    AnforderungAllokationsliste,
    /// Meldung einer Reklamation von Werten
    #[serde(rename = "17113")]
    MeldungReklamationWerten,
    /// Anforderung bilanzierte Menge
    #[serde(rename = "17114")]
    AnforderungBilanzierteMenge,
    /// Sperrauftrag
    #[serde(rename = "17115")]
    Sperrauftrag,
    /// Anfrage Sperrung
    #[serde(rename = "17116")]
    AnfrageSperrung,
    /// Entsperrauftrag
    #[serde(rename = "17117")]
    Entsperrauftrag,
    /// Bestellung Konfigurationsänderung
    #[serde(rename = "17118")]
    BestellungKonfigurationsaenderung,
    /// Bestellung Änderung Prognosegrundlage
    #[serde(rename = "17120")]
    BestellungAenderungPrognosegrundlage,
    /// Bestellung Änderung
    #[serde(rename = "17121")]
    BestellungAenderung,
    /// Reklamation einer Definition
    #[serde(rename = "17122")]
    ReklamationDefinition,
    /// Bestellung Änderung Zählzeitdefinition
    #[serde(rename = "17123")]
    BestellungAenderungZaehlzeitdefinition,
    /// Anfrage Stammdaten Messlokation
    #[serde(rename = "17126")]
    AnfrageStammdatenMesslokation,
    /// Reklamation einer Konfiguration
    #[serde(rename = "17128")]
    ReklamationKonfiguration,
    /// Bestellung Beendigung einer Konfiguration
    #[serde(rename = "17129")]
    BestellungBeendigungKonfiguration,
    /// Bestellung Änderung einer Konfiguration
    #[serde(rename = "17130")]
    BestellungAenderungKonfiguration,
    /// Bestellung eines Angebots einer Konfiguration
    #[serde(rename = "17131")]
    BestellungAngebotsKonfiguration,
    /// Anfrage Stammdaten
    #[serde(rename = "17132")]
    AnfrageStammdaten,
    /// Bestellung Änderung Abrechnungsdaten
    #[serde(rename = "17133")]
    BestellungAenderungAbrechnungsdaten,
    /// Einrichtung Konfiguration aufgrund Zuordnung LF von NB an MSB
    #[serde(rename = "17134")]
    EinrichtungKonfigurationAufgrundZuordnungLfNbMsb,
    /// Einrichtung Konfiguration aufgrund Zuordnung LF von MSB an MSB
    #[serde(rename = "17135")]
    EinrichtungKonfigurationAufgrundZuordnungLfMsbMsb,
    /// Anforderung normierter Profile/Profilscharen
    #[serde(rename = "17201")]
    AnforderungNormierterProfileProfilscharen,
    /// Anforderung Lieferantenclearingliste
    #[serde(rename = "17202")]
    AnforderungLieferantenclearingliste,
    /// Anforderung Bilanzkreiszuordnungsliste
    #[serde(rename = "17203")]
    AnforderungBilanzkreiszuordnungsliste,
    /// Anforderung Clearingliste BAS
    #[serde(rename = "17204")]
    AnforderungClearinglisteBas,
    /// Anforderung Clearingliste DZR
    #[serde(rename = "17205")]
    AnforderungClearinglisteDzr,
    /// Anforderung Bilanzierungsgebietsclearingliste
    #[serde(rename = "17206")]
    AnforderungBilanzierungsgebietsclearingliste,
    /// Ab-/Bestellung BK-SZR auf Aggregationsebene RZ
    #[serde(rename = "17207")]
    BestellungBkSzrAggregationsebeneRz,
    /// Anforderung Clearingliste ÜNB-DZR
    #[serde(rename = "17208")]
    AnforderungClearinglisteUenbDzr,
    /// Anforderung Ausfallarbeit
    #[serde(rename = "17209")]
    AnforderungAusfallarbeit,
    /// Anforderung Lieferantenausfallarbeitsclearingliste
    #[serde(rename = "17210")]
    AnforderungLieferantenausfallarbeitsclearingliste,
    /// Reklamation Profile bzw. Profilscharen
    #[serde(rename = "17211")]
    ReklamationProfileProfilscharen,
    /// Anforderung Abo
    #[serde(rename = "17301")]
    AnforderungAbo,
    /// Bestellbestätigung
    #[serde(rename = "19001")]
    Bestellbestaetigung,
    /// Ablehnung der Bestellung
    #[serde(rename = "19002")]
    AblehnungBestellung,
    /// Fortführungsbestätigung MSBA
    #[serde(rename = "19003")]
    FortfuehrungsbestaetigungMsba,
    /// Ablehnung Fortführung
    #[serde(rename = "19004")]
    AblehnungFortfuehrung,
    /// Auftragsbestätigung der Änderung der Technik
    #[serde(rename = "19005")]
    AuftragsbestaetigungAenderungMesslokation,
    /// Ablehnung der Änderung der Technik
    #[serde(rename = "19006")]
    AblehnungAenderungMesslokation,
    /// Ablehnung Anforderung Messwerte
    #[serde(rename = "19007")]
    AblehnungAnforderungMesswerte,
    /// Bestätigung Beendigung Rechnungsabwicklung MSB über LF
    #[serde(rename = "19009")]
    BestaetigungBeendigungRechnungsabwicklungMsbLf,
    /// Ablehnung Beendigung Rechnungsabwicklung MSB über LF
    #[serde(rename = "19010")]
    AblehnungBeendigungRechnungsabwicklungMsbLf,
    /// Bestätigung der Ab-/Bestellung von Werten für ESA
    #[serde(rename = "19011")]
    BestaetigungBestellungWertenEsa,
    /// Ablehnung der Ab-/Bestellung von Werten für ESA
    #[serde(rename = "19012")]
    AblehnungBestellungWertenEsa,
    /// Bestätigung der Stornierung einer Bestellung für ESA
    #[serde(rename = "19013")]
    BestaetigungStornierungBestellungEsa,
    /// Ablehnung der Stornierung einer Bestellung für ESA
    #[serde(rename = "19014")]
    AblehnungStornierungBestellungEsa,
    /// Bestätigung Gerätewechselabsicht
    #[serde(rename = "19015")]
    BestaetigungGeraetewechselabsicht,
    /// Ablehnung Gerätewechselabsicht
    #[serde(rename = "19016")]
    AblehnungGeraetewechselabsicht,
    /// Ablehnung Anfrage Stammdaten
    #[serde(rename = "19101")]
    AblehnungAnfrageStammdaten,
    /// Ablehnung Anfrage Werte
    #[serde(rename = "19102")]
    AblehnungAnfrageWerte,
    /// Ablehnung Brennwert und Zustandszahl
    #[serde(rename = "19103")]
    AblehnungBrennwertZustandszahl,
    /// Ablehnung Anfrage vom MSB Gas
    #[serde(rename = "19104")]
    AblehnungAnfrageMsbGas,
    /// Ablehnung Allokationsliste
    #[serde(rename = "19110")]
    AblehnungAllokationsliste,
    /// Ablehnung der Reklamation von Werten
    #[serde(rename = "19114")]
    AblehnungReklamationWerten,
    /// Ablehnung Anforderung bilanzierte Menge
    #[serde(rename = "19115")]
    AblehnungAnforderungBilanzierteMenge,
    /// Bestätigung Sperr-/Entsperrauftrag
    #[serde(rename = "19116")]
    BestaetigungSperrEntsperrauftrag,
    /// Ablehnung Sperr-/Entsperrauftrag
    #[serde(rename = "19117")]
    AblehnungSperrEntsperrauftrag,
    /// Bestätigung Anfrage Sperrung
    #[serde(rename = "19118")]
    BestaetigungAnfrageSperrung,
    /// Ablehnung Anfrage Sperrung
    #[serde(rename = "19119")]
    AblehnungAnfrageSperrung,
    /// Mitteilung zur Änderung
    #[serde(rename = "19120")]
    MitteilungAenderung,
    /// Mitteilung zur Änderung Prognosegrundlage
    #[serde(rename = "19121")]
    MitteilungAenderungPrognosegrundlage,
    /// Ablehnung der Reklamation einer Definition
    #[serde(rename = "19123")]
    AblehnungReklamationDefinition,
    /// Mitteilung zur Änderung Zählzeitdefinition
    #[serde(rename = "19124")]
    MitteilungAenderungZaehlzeitdefinition,
    /// Mitteilung zur Konfigurationsänderung
    #[serde(rename = "19127")]
    MitteilungKonfigurationsaenderung,
    /// Bestätigung Stornierung Sperr-/Entsperrauftrag
    #[serde(rename = "19128")]
    BestaetigungStornierungSperrEntsperrauftrag,
    /// Ablehnung Stornierung Sperr-/Entsperrauftrag
    #[serde(rename = "19129")]
    AblehnungStornierungSperrEntsperrauftrag,
    /// Bearbeitungsstand zur Reklamation einer Konfiguration
    #[serde(rename = "19130")]
    BearbeitungsstandReklamationKonfiguration,
    /// Antwort auf Bestellung Beendigung einer Konfiguration
    #[serde(rename = "19131")]
    AntwortBestellungBeendigungKonfiguration,
    /// Mitteilung zur Bestellung Änderung einer Konfiguration
    #[serde(rename = "19132")]
    MitteilungBestellungAenderungKonfiguration,
    /// Bearbeitungsstand Bestellung Abrechnungsdaten
    #[serde(rename = "19133")]
    BearbeitungsstandBestellungAbrechnungsdaten,
    /// Ablehnung Ab-/Bestellung der Aggregationsebene
    #[serde(rename = "19204")]
    AblehnungBestellungAggregationsebene,
    /// Ablehnung Abo
    #[serde(rename = "19301")]
    AblehnungAbo,
    /// Bestätigung Ende Abo
    #[serde(rename = "19302")]
    BestaetigungEndeAbo,
    /// MaBiS / Statusmeldung vom LF an NB/ÜNB
    #[serde(rename = "21000")]
    MabisStatusmeldungLfNbUenb,
    /// MaBiS / Statusmeldung vom NB an NB
    #[serde(rename = "21001")]
    MabisStatusmeldungNbNb,
    /// MaBiS / Abweisung vom BIKO an NB/ÜNB
    #[serde(rename = "21002")]
    MabisAbweisungBikoNbUenb,
    /// MaBiS / Statusmeldung vom BIKO an NB/ÜNB
    #[serde(rename = "21003")]
    MabisStatusmeldungBikoNbUenb,
    /// MaBiS / Statusmeldung vom BIKO an BKV/NB
    #[serde(rename = "21004")]
    MabisStatusmeldungBikoBkvNb,
    /// MaBiS / Statusmeldung vom BKV/NB an BIKO
    #[serde(rename = "21005")]
    MabisStatusmeldungBkvNbBiko,
    /// WiM / Statusmeldung (Planungszeitpunkt) vom NB an MSBA
    #[serde(rename = "21007")]
    WimStatusmeldungPlanungszeitpunktNbMsba,
    /// WiM / Statusmeldung (gescheitert) vom MSBN an NB
    #[serde(rename = "21009")]
    WimStatusmeldungGescheitertMsbnNb,
    /// WiM / Statusmeldung (erfolgreich) vom MSBN an NB
    #[serde(rename = "21010")]
    WimStatusmeldungErfolgreichMsbnNb,
    /// WiM / Statusmeldung (MSB/Scheitermeldung) vom NB an MSBN / MSBA / LF
    #[serde(rename = "21011")]
    WimStatusmeldungMsbScheitermeldungNbMsbnMsbaLf,
    /// WiM / Statusmeldung (erfolgreich) vom NB an MSBN
    #[serde(rename = "21012")]
    WimStatusmeldungErfolgreichNbMsbn,
    /// WiM / Statusmeldung (gescheitert) vom NB an MSBN / MSBA / LF
    #[serde(rename = "21013")]
    WimStatusmeldungGescheitertNbMsbnMsbaLf,
    /// WiM / Informationsmeldung (erfolgreich) vom NB an MSBA
    #[serde(rename = "21015")]
    WimInformationsmeldungErfolgreichNbMsba,
    /// WiM / Statusmeldung vom NB an MSBA
    #[serde(rename = "21018")]
    WimStatusmeldungNbMsba,
    /// WiM / Statusmeldung (erfolgreich) vom MSB an LF
    #[serde(rename = "21024")]
    WimStatusmeldungErfolgreichMsbLf,
    /// WiM / Statusmeldung (gescheitert) vom MSB an LF
    #[serde(rename = "21025")]
    WimStatusmeldungGescheitertMsbLf,
    /// WiM / Statusmeldung (erfolgreich) vom MSB an NB
    #[serde(rename = "21026")]
    WimStatusmeldungErfolgreichMsbNb,
    /// WiM / Statusmeldung (gescheitert) vom MSB an NB / MSB
    #[serde(rename = "21027")]
    WimStatusmeldungGescheitertMsbNbMsb,
    /// WiM / Informationsmeldung vom MSB an NB
    #[serde(rename = "21028")]
    WimInformationsmeldungMsbNb,
    /// WiM / Vorabinformation
    #[serde(rename = "21029")]
    WimVorabinformation,
    /// WiM / Zustimmung iMS-Ersteinbau
    #[serde(rename = "21030")]
    WimZustimmungImsErsteinbau,
    /// WiM / Bestandsschutz / Eigenausbau iMS
    #[serde(rename = "21031")]
    WimBestandsschutzEigenausbauIms,
    /// WiM / Angebotsablehnung (LF an MSB)
    #[serde(rename = "21032")]
    WimAngebotsablehnungLfMsb,
    /// WiM, GPKE / Anfrageablehnung (MSB an ESA / LF / NB)
    #[serde(rename = "21033")]
    WimGpkeAnfrageablehnungMsbEsaLfNb,
    /// GPKE / Rückmeldung auf Lieferschein
    #[serde(rename = "21035")]
    GpkeRueckmeldungLieferschein,
    /// WiM / Gerätestatus
    #[serde(rename = "21036")]
    WimGeraetestatus,
    /// RD / NB-Bewertung
    #[serde(rename = "21037")]
    RdNbBewertung,
    /// RD / BTR-Bewertung
    #[serde(rename = "21038")]
    RdBtrBewertung,
    /// GPKE, Awh Sperrp. Gas / Auftragsstatus (Sperren)
    #[serde(rename = "21039")]
    GpkeAwhSperrpGasAuftragsstatusSperren,
    /// GPKE, Awh Sperrp. Gas / Information über Entsperrauftrag
    #[serde(rename = "21040")]
    GpkeAwhSperrpGasInformationEntsperrauftrag,
    /// WiM / Umsetzungsstatus der Bestellung
    #[serde(rename = "21042")]
    WimUmsetzungsstatusBestellung,
    /// GPKE / Bestellungsantwort / -mitteilung
    #[serde(rename = "21043")]
    GpkeBestellungsantwortMitteilung,
    /// GPKE / Bestellungsbeendigung
    #[serde(rename = "21044")]
    GpkeBestellungsbeendigung,
    /// GPKE / Privilegierungsinformation nach EnFG
    #[serde(rename = "21045")]
    GpkePrivilegierungsinformationEnfg,
    /// GPKE / Bearbeitungsstandsmeldung
    #[serde(rename = "21047")]
    GpkeBearbeitungsstandsmeldung,
    /// WiM / Störungsmeldung vom LF/NB/MSB an MSB
    #[serde(rename = "23001")]
    WimStoerungsmeldungLfNbMsbMsb,
    /// WiM / Ablehnung vom MSB an LF/NB/MSB
    #[serde(rename = "23003")]
    WimAblehnungMsbLfNbMsb,
    /// WiM / Bestätigung vom MSB an LF/NB/MSB
    #[serde(rename = "23004")]
    WimBestaetigungMsbLfNbMsb,
    /// WiM / Informationsmeldung (Störungsmeldung) vom MSB an NB (Gas)/MSB (Strom)
    #[serde(rename = "23005")]
    WimInformationsmeldungStoerungsmeldungMsbNbGasMsbStrom,
    /// WiM / Ergebnisbericht vom MSB an LF/NB/MSB
    #[serde(rename = "23008")]
    WimErgebnisberichtMsbLfNbMsb,
    /// WiM / Informationsmeldung (Störungsbehebung) vom MSB an NB (Gas)/MSB (Strom)
    #[serde(rename = "23009")]
    WimInformationsmeldungStoerungsbehebungMsbNbGasMsbStrom,
    /// WiM / Informationsmeldung (Störungsmeldung) vom MSB der MaLo
    #[serde(rename = "23011")]
    WimInformationsmeldungStoerungsmeldungMsbMalo,
    /// WiM / Informationsmeldung (Störungsbehebung) vom MSB der MaLo
    #[serde(rename = "23012")]
    WimInformationsmeldungStoerungsbehebungMsbMalo,
    /// Berechnungsformel
    #[serde(rename = "25001")]
    Berechnungsformel,
    /// Übersicht Zählzeitdefinitionen
    #[serde(rename = "25004")]
    UebersichtZaehlzeitdefinitionen,
    /// Ausgerollte Zählzeitdefinition
    #[serde(rename = "25005")]
    AusgerollteZaehlzeitdefinition,
    /// Übersicht Schaltzeitdefinitionen
    #[serde(rename = "25006")]
    UebersichtSchaltzeitdefinitionen,
    /// Übersicht Leistungskurvendefinitionen
    #[serde(rename = "25007")]
    UebersichtLeistungskurvendefinitionen,
    /// Ausgerollte Schaltzeitdefinition
    #[serde(rename = "25008")]
    AusgerollteSchaltzeitdefinition,
    /// Ausgerollte Leistungskurvendefinition
    #[serde(rename = "25009")]
    AusgerollteLeistungskurvendefinition,
    /// Antwort auf Berechnungsformel
    #[serde(rename = "25010")]
    AntwortBerechnungsformel,
    /// Übermittlung der Ausgleichsenergiepreise
    #[serde(rename = "27001")]
    UebermittlungAusgleichsenergiepreise,
    /// Preisblatt MSB-Leistungen
    #[serde(rename = "27002")]
    PreisblattMsbLeistungen,
    /// Preisblatt NB-Leistungen
    #[serde(rename = "27003")]
    PreisblattNbLeistungen,
    /// Prüfidentifikator
    #[serde(rename = "31001")]
    Pruefidentifikator3,
    /// Prüfidentifikator
    #[serde(rename = "31002")]
    Pruefidentifikator4,
    /// Prüfidentifikator
    #[serde(rename = "31003")]
    Pruefidentifikator5,
    /// Prüfidentifikator
    #[serde(rename = "31004")]
    Pruefidentifikator6,
    /// Prüfidentifikator
    #[serde(rename = "31005")]
    Pruefidentifikator7,
    /// Prüfidentifikator
    #[serde(rename = "31006")]
    Pruefidentifikator8,
    /// Prüfidentifikator
    #[serde(rename = "31007")]
    Pruefidentifikator9,
    /// Prüfidentifikator
    #[serde(rename = "31008")]
    Pruefidentifikator10,
    /// Prüfidentifikator
    #[serde(rename = "31009")]
    Pruefidentifikator11,
    /// Prüfidentifikator
    #[serde(rename = "31010")]
    Pruefidentifikator12,
    /// Prüfidentifikator
    #[serde(rename = "31011")]
    Pruefidentifikator13,
    /// Anforderung Angebot Geräteübernahme
    #[serde(rename = "35001")]
    AnforderungAngebotGeraeteuebernahme,
    /// Anfrage Rechnungsabwicklung MSB über LF
    #[serde(rename = "35002")]
    AnfrageRechnungsabwicklungMsbLf,
    /// Anfrage von Werten für ESA
    #[serde(rename = "35003")]
    AnfrageWertenEsa,
    /// Anfrage einer Konfiguration
    #[serde(rename = "35004")]
    AnfrageKonfiguration,
    /// Anfrage Angebot Änderung Technik
    #[serde(rename = "35005")]
    AnfrageAngebotAenderungTechnik,
    /// Übermittlung Kommunikationsdaten des LF
    #[serde(rename = "37000")]
    UebermittlungKommunikationsdatenLf,
    /// Übermittlung Kommunikationsdaten des NB
    #[serde(rename = "37001")]
    UebermittlungKommunikationsdatenNb,
    /// Übermittlung Kommunikationsdaten des MSB
    #[serde(rename = "37002")]
    UebermittlungKommunikationsdatenMsb,
    /// Übermittlung Kommunikationsdaten des BKV
    #[serde(rename = "37003")]
    UebermittlungKommunikationsdatenBkv,
    /// Übermittlung Kommunikationsdaten des BIKO
    #[serde(rename = "37004")]
    UebermittlungKommunikationsdatenBiko,
    /// Übermittlung Kommunikationsdaten des ÜNB
    #[serde(rename = "37005")]
    UebermittlungKommunikationsdatenUenb,
    /// Übermittlung Kommunikationsdaten des ESA
    #[serde(rename = "37006")]
    UebermittlungKommunikationsdatenEsa,
    /// Kommunikationsdaten des LF Gas
    #[serde(rename = "37008")]
    KommunikationsdatenLfGas,
    /// Kommunikationsdaten des NB Gas
    #[serde(rename = "37009")]
    KommunikationsdatenNbGas,
    /// Kommunikationsdaten des MSB Gas
    #[serde(rename = "37010")]
    KommunikationsdatenMsbGas,
    /// Kommunikationsdaten des MGV Gas
    #[serde(rename = "37011")]
    KommunikationsdatenMgvGas,
    /// Spartenüb. Kommunikationsdaten des NB Gas
    #[serde(rename = "37012")]
    SpartenuebKommunikationsdatenNbGas,
    /// Spartenüb. Kommunikationsdaten des MSB Gas
    #[serde(rename = "37013")]
    SpartenuebKommunikationsdatenMsbGas,
    /// Spartenüb. Kommunikationsdaten des MSB Strom
    #[serde(rename = "37014")]
    SpartenuebKommunikationsdatenMsbStrom,
    /// Stornierung Sperr-/Entsperrauftrag
    #[serde(rename = "39000")]
    StornierungSperrEntsperrauftrag,
    /// Weiterleitung der Stornierung
    #[serde(rename = "39001")]
    WeiterleitungStornierung,
    /// Stornierung der Bestellung für ESA
    #[serde(rename = "39002")]
    StornierungBestellungEsa,
    /// GeLi Gas / Anmeldung NN
    #[serde(rename = "44001")]
    GeliGasAnmeldungNn,
    /// GeLi Gas / Bestätigung Anmeldung
    #[serde(rename = "44002")]
    GeliGasBestaetigungAnmeldung,
    /// GeLi Gas / Ablehnung Anmeldung
    #[serde(rename = "44003")]
    GeliGasAblehnungAnmeldung,
    /// GeLi Gas / Abmeldung NN
    #[serde(rename = "44004")]
    GeliGasAbmeldungNn,
    /// GeLi Gas / Bestätigung Abmeldung
    #[serde(rename = "44005")]
    GeliGasBestaetigungAbmeldung,
    /// GeLi Gas / Ablehnung Abmeldung
    #[serde(rename = "44006")]
    GeliGasAblehnungAbmeldung,
    /// GeLi Gas / Abmeldung NN vom NB
    #[serde(rename = "44007")]
    GeliGasAbmeldungNnNb,
    /// GeLi Gas / Bestätigung Abmeldung vom NB
    #[serde(rename = "44008")]
    GeliGasBestaetigungAbmeldungNb,
    /// GeLi Gas / Ablehnung Abmeldung vom NB
    #[serde(rename = "44009")]
    GeliGasAblehnungAbmeldungNb,
    /// GeLi Gas / Abmeldeanfrage des NB
    #[serde(rename = "44010")]
    GeliGasAbmeldeanfrageNb,
    /// GeLi Gas / Bestätigung Abmeldeanfrage
    #[serde(rename = "44011")]
    GeliGasBestaetigungAbmeldeanfrage,
    /// GeLi Gas / Ablehnung Abmeldeanfrage
    #[serde(rename = "44012")]
    GeliGasAblehnungAbmeldeanfrage,
    /// GeLi Gas / Anmeldung EoG
    #[serde(rename = "44013")]
    GeliGasAnmeldungEog,
    /// GeLi Gas / Bestätigung EoG Anmeldung
    #[serde(rename = "44014")]
    GeliGasBestaetigungEogAnmeldung,
    /// GeLi Gas / Ablehnung EoG Anmeldung
    #[serde(rename = "44015")]
    GeliGasAblehnungEogAnmeldung,
    /// GeLi Gas / Kündigung beim alten Lieferanten
    #[serde(rename = "44016")]
    GeliGasKuendigungBeimAltenLieferanten,
    /// GeLi Gas / Bestätigung Kündigung
    #[serde(rename = "44017")]
    GeliGasBestaetigungKuendigung,
    /// GeLi Gas / Ablehnung Kündigung
    #[serde(rename = "44018")]
    GeliGasAblehnungKuendigung,
    /// GeLi Gas / Bestandsliste zugeordnete Marktlokationen
    #[serde(rename = "44019")]
    GeliGasBestandslisteZugeordneteMarktlokationen,
    /// GeLi Gas / Änderungsmeldung zur Bestandsliste
    #[serde(rename = "44020")]
    GeliGasAenderungsmeldungBestandsliste,
    /// GeLi Gas / Antwort auf Änderungsmeldung zur Bestandsliste
    #[serde(rename = "44021")]
    GeliGasAntwortAenderungsmeldungBestandsliste,
    /// GeLi Gas / Anfrage nach Stornierung
    #[serde(rename = "44022")]
    GeliGasAnfrageStornierung,
    /// GeLi Gas / Bestätigung Anfrage Stornierung
    #[serde(rename = "44023")]
    GeliGasBestaetigungAnfrageStornierung,
    /// GeLi Gas / Ablehnung Anfrage Stornierung
    #[serde(rename = "44024")]
    GeliGasAblehnungAnfrageStornierung,
    /// GeLi Gas / Antwort auf die Geschäftsdatenanfrage
    #[serde(rename = "44035")]
    GeliGasAntwortGeschaeftsdatenanfrage,
    /// GeLi Gas / Informationsmeldung über existierende Zuordnung
    #[serde(rename = "44036")]
    GeliGasInformationsmeldungExistierendeZuordnung,
    /// GeLi Gas / Informationsmeldung zur Beendigung der Zuordnung
    #[serde(rename = "44037")]
    GeliGasInformationsmeldungBeendigungZuordnung,
    /// GeLi Gas / Informationsmeldung zur Aufhebung einer zuk. Zuordnung
    #[serde(rename = "44038")]
    GeliGasInformationsmeldungAufhebungZukZuordnung,
    /// WiM Gas / Kündigung MSB
    #[serde(rename = "44039")]
    WimGasKuendigungMsb,
    /// WiM Gas / Bestätigung Kündigung MSB
    #[serde(rename = "44040")]
    WimGasBestaetigungKuendigungMsb,
    /// WiM Gas / Ablehnung Kündigung MSB
    #[serde(rename = "44041")]
    WimGasAblehnungKuendigungMsb,
    /// WiM Gas / Anmeldung MSB
    #[serde(rename = "44042")]
    WimGasAnmeldungMsb,
    /// WiM Gas / Bestätigung Anmeldung MSB
    #[serde(rename = "44043")]
    WimGasBestaetigungAnmeldungMsb,
    /// WiM Gas / Ablehnung Anmeldung MSB
    #[serde(rename = "44044")]
    WimGasAblehnungAnmeldungMsb,
    /// WiM Gas / Ende MSB
    #[serde(rename = "44051")]
    WimGasEndeMsb,
    /// WiM Gas / Bestätigung Ende MSB
    #[serde(rename = "44052")]
    WimGasBestaetigungEndeMsb,
    /// WiM Gas / Ablehnung Ende MSB
    #[serde(rename = "44053")]
    WimGasAblehnungEndeMsb,
    /// WiM Gas / Antwort auf die MSB Geschäftsdatenanfrage
    #[serde(rename = "44060")]
    WimGasAntwortMsbGeschaeftsdatenanfrage,
    /// TSIMSG / Deklarationsliste an MGV
    #[serde(rename = "44096")]
    TsimsgDeklarationslisteMgv,
    /// TSIMSG / Deklarationsliste an BKV
    #[serde(rename = "44097")]
    TsimsgDeklarationslisteBkv,
    /// NBW Gas / Stammdaten zur Messlokation
    #[serde(rename = "44101")]
    NbwGasStammdatenMesslokation,
    /// NBW Gas / Aktualisierte Stammdaten zur Messlokation
    #[serde(rename = "44102")]
    NbwGasAktualisierteStammdatenMesslokation,
    /// NBW Gas / Stammdaten zur verbrauchenden Marktlokation
    #[serde(rename = "44103")]
    NbwGasStammdatenVerbrauchendenMarktlokation,
    /// NBW Gas / Aktualisierte Stammdaten zur verbrauchenden Marktlokation
    #[serde(rename = "44104")]
    NbwGasAktualisierteStammdatenVerbrauchendenMarktlokation,
    /// NBW Gas / Ablehnung auf Stammdaten zur verbrauchenden Marktlokation
    #[serde(rename = "44105")]
    NbwGasAblehnungStammdatenVerbrauchendenMarktlokation,
    /// SDÄ Gas / Nicht bila.rel. Änderung vom LF an NB
    #[serde(rename = "44109")]
    SdaeGasNichtBilaRelAenderungLfNb,
    /// SDÄ Gas / Antwort auf Änderung vom LF AG an AF
    #[serde(rename = "44111")]
    SdaeGasAntwortAenderungLfAgAf,
    /// SDÄ Gas / Nicht bila.rel. Änderung vom NB an LF
    #[serde(rename = "44112")]
    SdaeGasNichtBilaRelAenderungNbLf,
    /// SDÄ Gas / Nicht bila.rel. Änderung vom NB an MSB
    #[serde(rename = "44113")]
    SdaeGasNichtBilaRelAenderungNbMsb,
    /// SDÄ Gas / Antwort auf Änderung vom NB AG an NB
    #[serde(rename = "44115")]
    SdaeGasAntwortAenderungNbAgNb,
    /// SDÄ Gas / Änderung vom MSB an NB
    #[serde(rename = "44116")]
    SdaeGasAenderungMsbNb,
    /// SDÄ Gas / Änderung vom MSB NB an LF
    #[serde(rename = "44117")]
    SdaeGasAenderungMsbNbLf,
    /// SDÄ Gas / Antwort auf Änderung vom MSB AG an AF
    #[serde(rename = "44119")]
    SdaeGasAntwortAenderungMsbAgAf,
    /// SDÄ Gas / Bila.rel. Änderung vom LF an NB
    #[serde(rename = "44120")]
    SdaeGasBilaRelAenderungLfNb,
    /// SDÄ Gas / Antwort auf bila.rel. Änderung vom LF NB an LF
    #[serde(rename = "44121")]
    SdaeGasAntwortBilaRelAenderungLfNbLf,
    /// SDÄ Gas / Bila.rel. Änderung vom NB mit Abhängigkeiten NB an LF / MSB
    #[serde(rename = "44123")]
    SdaeGasBilaRelAenderungNbAbhaengigkeitenNbLfMsb,
    /// SDÄ Gas / Antwort auf bila.rel. Änderung vom NB mit Abhängigkeiten AG an NB
    #[serde(rename = "44124")]
    SdaeGasAntwortBilaRelAenderungNbAbhaengigkeitenAgNb,
    /// SDÄ Gas / Nicht bila.rel. Anfrage an LF NB [Berechtigt] an LF
    #[serde(rename = "44137")]
    SdaeGasNichtBilaRelAnfrageLfNbBerechtigtLf,
    /// SDÄ Gas / Antwort auf nicht bila.rel. Anfrage an LF LF an NB
    #[serde(rename = "44138")]
    SdaeGasAntwortNichtBilaRelAnfrageLfLfNb,
    /// SDÄ Gas / Nicht bila.rel. Anfrage an NB LF an NB
    #[serde(rename = "44139")]
    SdaeGasNichtBilaRelAnfrageNbLfNb,
    /// SDÄ Gas / Nicht bila.rel. Anfrage an NB MSB an NB
    #[serde(rename = "44140")]
    SdaeGasNichtBilaRelAnfrageNbMsbNb,
    /// SDÄ Gas / Antwort auf nicht bila.rel. Anfrage an NB NB an AF
    #[serde(rename = "44142")]
    SdaeGasAntwortNichtBilaRelAnfrageNbNbAf,
    /// SDÄ Gas / Anfrage an MSB mit Abhängigkeiten LF an NB
    #[serde(rename = "44143")]
    SdaeGasAnfrageMsbAbhaengigkeitenLfNb,
    /// SDÄ Gas / Antwort auf Anfrage an MSB mit Abhängigkeiten NB an AF
    #[serde(rename = "44145")]
    SdaeGasAntwortAnfrageMsbAbhaengigkeitenNbAf,
    /// SDÄ Gas / Ablehnung der Anfrage an MSB mit Abhängigkeiten NB an AF
    #[serde(rename = "44146")]
    SdaeGasAblehnungAnfrageMsbAbhaengigkeitenNbAf,
    /// SDÄ Gas / Anfrage an MSB mit Abhängigkeiten NB [Verteiler] an MSB
    #[serde(rename = "44147")]
    SdaeGasAnfrageMsbAbhaengigkeitenNbVerteilerMsb,
    /// SDÄ Gas / Anfrage an MSB mit Abhängigkeiten NB [Berechtigt] an MSB
    #[serde(rename = "44148")]
    SdaeGasAnfrageMsbAbhaengigkeitenNbBerechtigtMsb,
    /// SDÄ Gas / Antwort auf Anfrage an MSB mit Abhängigkeiten MSB an NB
    #[serde(rename = "44149")]
    SdaeGasAntwortAnfrageMsbAbhaengigkeitenMsbNb,
    /// SDÄ Gas / Bila.rel. Anfrage an LF NB an LF
    #[serde(rename = "44150")]
    SdaeGasBilaRelAnfrageLfNbLf,
    /// SDÄ Gas / Antwort auf bila.rel. Anfrage an LF LF an NB
    #[serde(rename = "44151")]
    SdaeGasAntwortBilaRelAnfrageLfLfNb,
    /// SDÄ Gas / Ablehnung der bila.rel. Anfrage an LF LF an NB
    #[serde(rename = "44152")]
    SdaeGasAblehnungBilaRelAnfrageLfLfNb,
    /// SDÄ Gas / Bila.rel. Anfrage an NB mit Abhängigkeiten
    #[serde(rename = "44156")]
    SdaeGasBilaRelAnfrageNbAbhaengigkeiten,
    /// SDÄ Gas / Antwort auf bila.rel. Anfrage an NB mit Abhängigkeiten
    #[serde(rename = "44157")]
    SdaeGasAntwortBilaRelAnfrageNbAbhaengigkeiten,
    /// SDÄ Gas / Änderung vom MSB ohne Abhängigkeiten MSB an NB
    #[serde(rename = "44159")]
    SdaeGasAenderungMsbOhneAbhaengigkeitenMsbNb,
    /// SDÄ Gas / Änderung vom MSB ohne Abhängigkeiten NB an LF / MSB
    #[serde(rename = "44160")]
    SdaeGasAenderungMsbOhneAbhaengigkeitenNbLfMsb,
    /// SDÄ Gas / Änderung vom MSB ohne Abhängigkeiten AG an AF
    #[serde(rename = "44161")]
    SdaeGasAenderungMsbOhneAbhaengigkeitenAgAf,
    /// SDÄ /Anfrage an MSB ohne Abhängigkeiten von LF / MSB an NB
    #[serde(rename = "44162")]
    SdaeAnfrageMsbOhneAbhaengigkeitenLfMsbNb,
    /// SDÄ Gas / Antwort auf Anfrage an MSB ohne Abhängigkeiten LF / MSB an NB
    #[serde(rename = "44163")]
    SdaeGasAntwortAnfrageMsbOhneAbhaengigkeitenLfMsbNb,
    /// SDÄ Gas / Ablehnung auf Anfrage an MSB ohne Abhängigkeiten LF / MSB an NB
    #[serde(rename = "44164")]
    SdaeGasAblehnungAnfrageMsbOhneAbhaengigkeitenLfMsbNb,
    /// SDÄ Gas /Anfrage an MSB ohne Abhängigkeiten NB [Verteiler] an MSB
    #[serde(rename = "44165")]
    SdaeGasAnfrageMsbOhneAbhaengigkeitenNbVerteilerMsb,
    /// SDÄ Gas /Anfrage an MSB ohne Abhängigkeiten NB [Berechtigter] an MSB
    #[serde(rename = "44166")]
    SdaeGasAnfrageMsbOhneAbhaengigkeitenNbBerechtigterMsb,
    /// SDÄ Gas / Antwort auf Anfrage an MSB ohne Abhängigkeiten MSB an NB
    #[serde(rename = "44167")]
    SdaeGasAntwortAnfrageMsbOhneAbhaengigkeitenMsbNb,
    /// WiM Gas / Verpflichtungsanfrage / Aufforderung
    #[serde(rename = "44168")]
    WimGasVerpflichtungsanfrageAufforderung,
    /// WiM Gas / Bestätigung Verpflichtungsanfrage
    #[serde(rename = "44169")]
    WimGasBestaetigungVerpflichtungsanfrage,
    /// WiM Gas / Ablehnung Verpflichtungsanfrage
    #[serde(rename = "44170")]
    WimGasAblehnungVerpflichtungsanfrage,
    /// SDÄ Gas / Anfrage an MSB mit Abhängigkeit MSB an NB
    #[serde(rename = "44172")]
    SdaeGasAnfrageMsbAbhaengigkeitMsbNb,
    /// SDÄ Gas / Änderung der Marktlokationsstruktur NB an LF
    #[serde(rename = "44175")]
    SdaeGasAenderungMarktlokationsstrukturNbLf,
    /// SDÄ Gas / Antwort auf Änderung der Marktlokationsstruktur LF an NB
    #[serde(rename = "44176")]
    SdaeGasAntwortAenderungMarktlokationsstrukturLfNb,
    /// SDÄ Gas / Anfrage der komplexen Marktlokationsstruktur LF an NB
    #[serde(rename = "44180")]
    SdaeGasAnfrageKomplexenMarktlokationsstrukturLfNb,
    /// SDÄ Gas / Antwort auf Anfrage der komplexen Marktlokationsstruktur NB an LF
    #[serde(rename = "44181")]
    SdaeGasAntwortAnfrageKomplexenMarktlokationsstrukturNbLf,
    /// SDÄ Gas / Ablehnung der Anfrage der komplexen Marktlokationsstruktur NB an LF
    #[serde(rename = "44182")]
    SdaeGasAblehnungAnfrageKomplexenMarktlokationsstrukturNbLf,
    /// WiM Gas / Ende MSB vom NB
    #[serde(rename = "44183")]
    WimGasEndeMsbNb,
    /// GPKE / Anmeldung verbrauchende MaLo
    #[serde(rename = "55001")]
    GpkeAnmeldungVerbrauchendeMalo,
    /// GPKE / Bestätigung Anmeldung verbrauchende MaLo
    #[serde(rename = "55002")]
    GpkeBestaetigungAnmeldungVerbrauchendeMalo,
    /// GPKE / Ablehnung Anmeldung verbrauchende MaLo
    #[serde(rename = "55003")]
    GpkeAblehnungAnmeldungVerbrauchendeMalo,
    /// GPKE / Abmeldung
    #[serde(rename = "55004")]
    GpkeAbmeldung,
    /// GPKE / Bestätigung Abmeldung
    #[serde(rename = "55005")]
    GpkeBestaetigungAbmeldung,
    /// GPKE / Ablehnung Abmeldung
    #[serde(rename = "55006")]
    GpkeAblehnungAbmeldung,
    /// GPKE / Abmeldung / Beendigung der Zuordnung vom NB
    #[serde(rename = "55007")]
    GpkeAbmeldungBeendigungZuordnungNb,
    /// GPKE / Bestätigung Abmeldung vom NB
    #[serde(rename = "55008")]
    GpkeBestaetigungAbmeldungNb,
    /// GPKE / Ablehnung Abmeldung vom NB
    #[serde(rename = "55009")]
    GpkeAblehnungAbmeldungNb,
    /// GPKE / Abmeldeanfrage des NB
    #[serde(rename = "55010")]
    GpkeAbmeldeanfrageNb,
    /// GPKE / Bestätigung Abmeldeanfrage
    #[serde(rename = "55011")]
    GpkeBestaetigungAbmeldeanfrage,
    /// GPKE / Ablehnung Abmeldeanfrage
    #[serde(rename = "55012")]
    GpkeAblehnungAbmeldeanfrage,
    /// GPKE / Anmeldung EoG
    #[serde(rename = "55013")]
    GpkeAnmeldungEog,
    /// GPKE / Bestätigung EoG Anmeldung
    #[serde(rename = "55014")]
    GpkeBestaetigungEogAnmeldung,
    /// GPKE / Ablehnung EoG Anmeldung
    #[serde(rename = "55015")]
    GpkeAblehnungEogAnmeldung,
    /// GPKE / Kündigung beim alten Lieferanten
    #[serde(rename = "55016")]
    GpkeKuendigungBeimAltenLieferanten,
    /// GPKE / Bestätigung Kündigung
    #[serde(rename = "55017")]
    GpkeBestaetigungKuendigung,
    /// GPKE / Ablehnung Kündigung
    #[serde(rename = "55018")]
    GpkeAblehnungKuendigung,
    /// GPKE / Anfrage nach Stornierung
    #[serde(rename = "55022")]
    GpkeAnfrageStornierung,
    /// GPKE / Bestätigung Anfrage Stornierung
    #[serde(rename = "55023")]
    GpkeBestaetigungAnfrageStornierung,
    /// GPKE / Ablehnung Anfrage Stornierung
    #[serde(rename = "55024")]
    GpkeAblehnungAnfrageStornierung,
    /// GPKE / Antwort auf GDA zu verbrauchender MaLo
    #[serde(rename = "55035")]
    GpkeAntwortGdaVerbrauchenderMalo,
    /// GPKE / Informationsmeldung über existierende Zuordnung
    #[serde(rename = "55036")]
    GpkeInformationsmeldungExistierendeZuordnung,
    /// GPKE / Informationsmeldung zur Beendigung der Zuordnung
    #[serde(rename = "55037")]
    GpkeInformationsmeldungBeendigungZuordnung,
    /// GPKE / Informationsmeldung zur Aufhebung einer zuk. Zuordnung
    #[serde(rename = "55038")]
    GpkeInformationsmeldungAufhebungZukZuordnung,
    /// WiM Strom / Kündigung MSB
    #[serde(rename = "55039")]
    WimStromKuendigungMsb,
    /// WiM Strom / Bestätigung Kündigung MSB
    #[serde(rename = "55040")]
    WimStromBestaetigungKuendigungMsb,
    /// WiM Strom / Ablehnung Kündigung MSB
    #[serde(rename = "55041")]
    WimStromAblehnungKuendigungMsb,
    /// WiM Strom / Anmeldung MSB
    #[serde(rename = "55042")]
    WimStromAnmeldungMsb,
    /// WiM Strom / Bestätigung Anmeldung MSB
    #[serde(rename = "55043")]
    WimStromBestaetigungAnmeldungMsb,
    /// WiM Strom / Ablehnung Anmeldung MSB
    #[serde(rename = "55044")]
    WimStromAblehnungAnmeldungMsb,
    /// WiM Strom / Ende MSB
    #[serde(rename = "55051")]
    WimStromEndeMsb,
    /// WiM Strom / Bestätigung Ende MSB
    #[serde(rename = "55052")]
    WimStromBestaetigungEndeMsb,
    /// WiM Strom / Ablehnung Ende MSB
    #[serde(rename = "55053")]
    WimStromAblehnungEndeMsb,
    /// WiM Strom / Antwort auf die MSB GDA
    #[serde(rename = "55060")]
    WimStromAntwortMsbGda,
    /// MaBiS / Aktivierung von MaBiS-ZP
    #[serde(rename = "55062")]
    MabisAktivierungMabisZp,
    /// MaBiS / Deaktivierung von MaBiS-ZP
    #[serde(rename = "55063")]
    MabisDeaktivierungMabisZp,
    /// MaBiS / Antwort auf Aktivierung / Deaktivierung von MaBiS-ZP
    #[serde(rename = "55064")]
    MabisAntwortAktivierungDeaktivierungMabisZp,
    /// MaBiS / Lieferantenclearingliste
    #[serde(rename = "55065")]
    MabisLieferantenclearingliste,
    /// MaBiS / Korrekturliste zu Lieferantenclearingliste
    #[serde(rename = "55066")]
    MabisKorrekturlisteLieferantenclearingliste,
    /// MaBiS / Bilanzkreiszuordnungsliste
    #[serde(rename = "55067")]
    MabisBilanzkreiszuordnungsliste,
    /// MaBiS / Clearingliste DZR
    #[serde(rename = "55069")]
    MabisClearinglisteDzr,
    /// MaBiS / Clearingliste BAS
    #[serde(rename = "55070")]
    MabisClearinglisteBas,
    /// MaBiS / Aktivierung der Zuordnungsermächtigung
    #[serde(rename = "55071")]
    MabisAktivierungZuordnungsermaechtigung,
    /// MaBiS / Deaktivierung der Zuordnungsermächtigung
    #[serde(rename = "55072")]
    MabisDeaktivierungZuordnungsermaechtigung,
    /// MaBiS / Übermittlung der Profildefinitionen
    #[serde(rename = "55073")]
    MabisUebermittlungProfildefinitionen,
    /// HKNR / Stammdaten auf eine ORDERS
    #[serde(rename = "55074")]
    HknrStammdatenOrders,
    /// HKNR / Stammdaten aufgrund einer Änderung
    #[serde(rename = "55075")]
    HknrStammdatenAufgrundAenderung,
    /// HKNR / Antwort auf Stammdatenänderung
    #[serde(rename = "55076")]
    HknrAntwortStammdatenaenderung,
    /// GPKE / Anmeldung erzeugende Marktlokation
    #[serde(rename = "55077")]
    GpkeAnmeldungErzeugendeMarktlokation,
    /// GPKE / Bestätigung Anmeldung erzeugende Marktlokation
    #[serde(rename = "55078")]
    GpkeBestaetigungAnmeldungErzeugendeMarktlokation,
    /// GPKE / Ablehnung Anmeldung erzeugende Marktlokation
    #[serde(rename = "55080")]
    GpkeAblehnungAnmeldungErzeugendeMarktlokation,
    /// GPKE / Antwort auf GDA zu erzeugender MaLo
    #[serde(rename = "55095")]
    GpkeAntwortGdaErzeugenderMalo,
    /// GPKE / Änderung Daten der MaLo vom LF an NB
    #[serde(rename = "55109")]
    GpkeAenderungDatenMaloLfNb,
    /// GPKE / Änderung Daten der MaLo vom LF an MSB
    #[serde(rename = "55110")]
    GpkeAenderungDatenMaloLfMsb,
    /// GPKE / Abrechnungsdaten Bilanzkreisabrechnung verbrauchender MaLo an LF
    #[serde(rename = "55126")]
    GpkeAbrechnungsdatenBilanzkreisabrechnungVerbrauchenderMaloLf,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom MSB an LF
    #[serde(rename = "55136")]
    GpkeRueckmeldungAnfrageDatenMaloMsbLf,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom NB an LF
    #[serde(rename = "55137")]
    GpkeRueckmeldungAnfrageDatenMaloNbLf,
    /// GPKE / Rückmeldung/Anfrage Abrechnungsdaten Bilanzkreisabrechnung verbrauchender MaLo vom LF
    #[serde(rename = "55156")]
    GpkeRueckmeldungAnfrageAbrechnungsdatenBilanzkreisabrechnungVerbrauchender,
    /// WiM Strom / Verpflichtungsanfrage / Aufforderung
    #[serde(rename = "55168")]
    WimStromVerpflichtungsanfrageAufforderung,
    /// WiM Strom / Bestätigung Verpflichtungsanfrage
    #[serde(rename = "55169")]
    WimStromBestaetigungVerpflichtungsanfrage,
    /// WiM Strom / Ablehnung Verpflichtungsanfrage
    #[serde(rename = "55170")]
    WimStromAblehnungVerpflichtungsanfrage,
    /// GPKE / Änderung der Lokationsbündelstruktur NB an MSB
    #[serde(rename = "55173")]
    GpkeAenderungLokationsbuendelstrukturNbMsb,
    /// GPKE / Änderung der Lokationsbündelstruktur NB an LF
    #[serde(rename = "55175")]
    GpkeAenderungLokationsbuendelstrukturNbLf,
    /// GPKE / Rückmeldung / Anfrage der Lokationsbündelstruktur MSB an NB
    #[serde(rename = "55177")]
    GpkeRueckmeldungAnfrageLokationsbuendelstrukturMsbNb,
    /// GPKE / Rückmeldung / Anfrage der Lokationsbündelstruktur LF an NB
    #[serde(rename = "55180")]
    GpkeRueckmeldungAnfrageLokationsbuendelstrukturLfNb,
    /// GPKE / Antwort auf die MSB Gas GDA
    #[serde(rename = "55194")]
    GpkeAntwortMsbGasGda,
    /// MaBiS / Bilanzierungsgebietsclearingliste
    #[serde(rename = "55195")]
    MabisBilanzierungsgebietsclearingliste,
    /// MaBiS / Antwort auf die Bilanzierungsgebietsclearingliste
    #[serde(rename = "55196")]
    MabisAntwortBilanzierungsgebietsclearingliste,
    /// Redispatch / Aktivierung ZP tägliche AAÜZ
    #[serde(rename = "55197")]
    RedispatchAktivierungZpTaeglicheAauez,
    /// Redispatch / Deaktivierung tägliche AAÜZ
    #[serde(rename = "55198")]
    RedispatchDeaktivierungTaeglicheAauez,
    /// Redispatch / Aktivierung ZP LF-AASZR
    #[serde(rename = "55199")]
    RedispatchAktivierungZpLfAaszr,
    /// Redispatch / Deaktivierung ZP LF-AASZR
    #[serde(rename = "55200")]
    RedispatchDeaktivierungZpLfAaszr,
    /// Redispatch / LF-AACL
    #[serde(rename = "55201")]
    RedispatchLfAacl,
    /// Redispatch / Korrekturliste LF-AACL
    #[serde(rename = "55202")]
    RedispatchKorrekturlisteLfAacl,
    /// Redispatch / Aktivierung ZP monatliche AAÜZ
    #[serde(rename = "55203")]
    RedispatchAktivierungZpMonatlicheAauez,
    /// Redispatch / Antwort auf Aktivierung ZP
    #[serde(rename = "55204")]
    RedispatchAntwortAktivierungZp,
    /// Redispatch / Weiterleitung Aktivierung ZP
    #[serde(rename = "55205")]
    RedispatchWeiterleitungAktivierungZp,
    /// Redispatch / Deaktivierung ZP monatliche AAÜZ
    #[serde(rename = "55206")]
    RedispatchDeaktivierungZpMonatlicheAauez,
    /// Redispatch / Antwort auf Deaktivierung ZP
    #[serde(rename = "55207")]
    RedispatchAntwortDeaktivierungZp,
    /// Redispatch / Weiterleitung Deaktivierung ZP
    #[serde(rename = "55208")]
    RedispatchWeiterleitungDeaktivierungZp,
    /// Redispatch / Aktivierung ZP monatliche AAÜZ
    #[serde(rename = "55209")]
    RedispatchAktivierungZpMonatlicheAauez2,
    /// Redispatch / Antwort auf Aktivierung ZP
    #[serde(rename = "55210")]
    RedispatchAntwortAktivierungZp2,
    /// Redispatch / Weiterleitung Aktivierung ZP
    #[serde(rename = "55211")]
    RedispatchWeiterleitungAktivierungZp2,
    /// Redispatch / Deaktivierung ZP monatliche AAÜZ
    #[serde(rename = "55212")]
    RedispatchDeaktivierungZpMonatlicheAauez2,
    /// Redispatch / Antwort auf Deaktivierung ZP
    #[serde(rename = "55213")]
    RedispatchAntwortDeaktivierungZp2,
    /// Redispatch / Weiterleitung Deaktivierung ZP
    #[serde(rename = "55214")]
    RedispatchWeiterleitungDeaktivierungZp2,
    /// GPKE / Abrechnungsdaten Netznutzungsabrechnung
    #[serde(rename = "55218")]
    GpkeAbrechnungsdatenNetznutzungsabrechnung,
    /// GPKE / Rückmeldung/Anfrage Abrechnungsdaten Netznutzungsabrechnung
    #[serde(rename = "55220")]
    GpkeRueckmeldungAnfrageAbrechnungsdatenNetznutzungsabrechnung,
    /// MaBiS / DZÜ Liste
    #[serde(rename = "55223")]
    MabisDzueListe,
    /// MaBiS / Antwort auf DZÜ Liste
    #[serde(rename = "55224")]
    MabisAntwortDzueListe,
    /// GPKE / Änderung Abrechnung Blindarbeit vom NB
    #[serde(rename = "55225")]
    GpkeAenderungAbrechnungBlindarbeitNb,
    /// GPKE / Rückmeldung / Anfrage Abrechnung Blindarbeit an NB
    #[serde(rename = "55227")]
    GpkeRueckmeldungAnfrageAbrechnungBlindarbeitNb,
    /// GPKE / Änderung Abrechnung Blindarbeit vom LF
    #[serde(rename = "55230")]
    GpkeAenderungAbrechnungBlindarbeitLf,
    /// GPKE / Rückmeldung / Anfrage Abrechnung Blindarbeit an LF
    #[serde(rename = "55232")]
    GpkeRueckmeldungAnfrageAbrechnungBlindarbeitLf,
    /// MaBiS / Zuordnung ZP der NGZ zur NZR
    #[serde(rename = "55235")]
    MabisZuordnungZpNgzNzr,
    /// MaBiS / Beendigung Zuordnung ZP der NGZ zur NZR
    #[serde(rename = "55236")]
    MabisBeendigungZuordnungZpNgzNzr,
    /// MaBiS / Antwort auf Zuordnung / Beendigung Zuordnung ZP der NGZ zur NZR
    #[serde(rename = "55237")]
    MabisAntwortZuordnungBeendigungZuordnungZpNgzNzr,
    /// E-Mob / Anmeldung in Modell 2
    #[serde(rename = "55238")]
    EMobAnmeldungModell2,
    /// E-Mob / Antwort auf Anmeldung in Modell 2
    #[serde(rename = "55239")]
    EMobAntwortAnmeldungModell2,
    /// E-Mob / Beendigung der Zuordnung zur Marktlokation
    #[serde(rename = "55240")]
    EMobBeendigungZuordnungMarktlokation,
    /// E-Mob / Antwort auf Beendigung der Zuordnung zur Marktlokation
    #[serde(rename = "55241")]
    EMobAntwortBeendigungZuordnungMarktlokation,
    /// E-Mob / Abmeldung aus dem Modell 2
    #[serde(rename = "55242")]
    EMobAbmeldungModell2,
    /// E-Mob / Antwort auf Abmeldung aus dem Modell 2
    #[serde(rename = "55243")]
    EMobAntwortAbmeldungModell2,
    /// GPKE / Stammdaten auf individuelle Bestellung
    #[serde(rename = "55553")]
    GpkeStammdatenIndividuelleBestellung,
    /// GPKE / Anfrage Stammdaten auf individuelle Bestellung
    #[serde(rename = "55555")]
    GpkeAnfrageStammdatenIndividuelleBestellung,
    /// GPKE / Änderung von MSB Abrechnungsdaten
    #[serde(rename = "55557")]
    GpkeAenderungMsbAbrechnungsdaten,
    /// GPKE / Rückmeldung / Anfrage von MSB Abrechnungsdaten
    #[serde(rename = "55559")]
    GpkeRueckmeldungAnfrageMsbAbrechnungsdaten,
    /// GPKE / Anmeldung neue verbrauchende Marktlokation
    #[serde(rename = "55600")]
    GpkeAnmeldungNeueVerbrauchendeMarktlokation,
    /// GPKE / Anmeldung neue erzeugende Marktlokation
    #[serde(rename = "55601")]
    GpkeAnmeldungNeueErzeugendeMarktlokation,
    /// GPKE / Bestätigung Anmeldung neue verbrauchende Marktlokation
    #[serde(rename = "55602")]
    GpkeBestaetigungAnmeldungNeueVerbrauchendeMarktlokation,
    /// GPKE / Bestätigung Anmeldung neue erzeugende Marktlokation
    #[serde(rename = "55603")]
    GpkeBestaetigungAnmeldungNeueErzeugendeMarktlokation,
    /// GPKE / Ablehnung Anmeldung neue verbrauchende Marktlokation
    #[serde(rename = "55604")]
    GpkeAblehnungAnmeldungNeueVerbrauchendeMarktlokation,
    /// GPKE / Ablehnung Anmeldung neue erzeugende Marktlokation
    #[serde(rename = "55605")]
    GpkeAblehnungAnmeldungNeueErzeugendeMarktlokation,
    /// GPKE / Ankündigung Zuordnung / Zuordnung des LF zur erz. MaLo/ Tranche
    #[serde(rename = "55607")]
    GpkeAnkuendigungZuordnungZuordnungLfErzMaloTranche,
    /// GPKE / Bestätigung Zuordnung des LF zur erz. MaLo/ Tranche
    #[serde(rename = "55608")]
    GpkeBestaetigungZuordnungLfErzMaloTranche,
    /// GPKE / Ablehnung Zuordnung des LF zur erz. MaLo/ Tranche
    #[serde(rename = "55609")]
    GpkeAblehnungZuordnungLfErzMaloTranche,
    /// GPKE / Beendigung der Zuordnung des MSB zur MaLo / MeLo
    #[serde(rename = "55611")]
    GpkeBeendigungZuordnungMsbMaloMelo,
    /// GPKE / Abrechnungsdaten Bilanzkreisabrechnung verbrauchender MaLo an ÜNB
    #[serde(rename = "55613")]
    GpkeAbrechnungsdatenBilanzkreisabrechnungVerbrauchenderMaloUenb,
    /// GPKE / Rückmeldung / Anfrage Abrechnungsdaten Bilanzkreisabrechnung verbrauchender MaLo vom ÜNB
    #[serde(rename = "55614")]
    GpkeRueckmeldungAnfrageAbrechnungsdatenBilanzkreisabrechnungVerbrauchender2,
    /// GPKE / Änderung Daten der NeLo vom NB an LF
    #[serde(rename = "55615")]
    GpkeAenderungDatenNeloNbLf,
    /// GPKE / Änderung Daten der MaLo vom NB an LF
    #[serde(rename = "55616")]
    GpkeAenderungDatenMaloNbLf,
    /// GPKE / Änderung Daten der TR vom NB an LF
    #[serde(rename = "55617")]
    GpkeAenderungDatenTrNbLf,
    /// GPKE / Änderung Daten der SR vom NB an LF
    #[serde(rename = "55618")]
    GpkeAenderungDatenSrNbLf,
    /// GPKE / Änderung Daten der Tranche vom NB an LF
    #[serde(rename = "55619")]
    GpkeAenderungDatenTrancheNbLf,
    /// GPKE / Änderung Daten der MeLo von NB an LF
    #[serde(rename = "55620")]
    GpkeAenderungDatenMeloNbLf,
    /// GPKE / Rückmeldung / Anfrage Daten zur NeLo vom LF an NB
    #[serde(rename = "55621")]
    GpkeRueckmeldungAnfrageDatenNeloLfNb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom LF an NB
    #[serde(rename = "55622")]
    GpkeRueckmeldungAnfrageDatenMaloLfNb,
    /// GPKE / Rückmeldung / Anfrage Daten der TR vom LF an NB
    #[serde(rename = "55623")]
    GpkeRueckmeldungAnfrageDatenTrLfNb,
    /// GPKE / Rückmeldung / Anfrage Daten der SR vom LF an NB
    #[serde(rename = "55624")]
    GpkeRueckmeldungAnfrageDatenSrLfNb,
    /// GPKE / Rückmeldung / Anfrage Daten der Tranche vom LF an NB
    #[serde(rename = "55625")]
    GpkeRueckmeldungAnfrageDatenTrancheLfNb,
    /// GPKE / Rückmeldung / Anfrage Daten der MeLo vom LF an NB
    #[serde(rename = "55626")]
    GpkeRueckmeldungAnfrageDatenMeloLfNb,
    /// GPKE / Änderung Daten der NeLo vom NB an MSB
    #[serde(rename = "55627")]
    GpkeAenderungDatenNeloNbMsb,
    /// GPKE / Änderung Daten der MaLo vom NB an MSB
    #[serde(rename = "55628")]
    GpkeAenderungDatenMaloNbMsb,
    /// GPKE / Änderung Daten der TR vom NB an MSB
    #[serde(rename = "55629")]
    GpkeAenderungDatenTrNbMsb,
    /// GPKE / Änderung Daten der SR vom NB an MSB
    #[serde(rename = "55630")]
    GpkeAenderungDatenSrNbMsb,
    /// GPKE / Änderung Daten der MeLo vom NB an MSB
    #[serde(rename = "55632")]
    GpkeAenderungDatenMeloNbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten zur NeLo vom MSB an NB
    #[serde(rename = "55633")]
    GpkeRueckmeldungAnfrageDatenNeloMsbNb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom MSB an NB
    #[serde(rename = "55634")]
    GpkeRueckmeldungAnfrageDatenMaloMsbNb,
    /// GPKE / Rückmeldung / Anfrage Daten der TR vom MSB an NB
    #[serde(rename = "55635")]
    GpkeRueckmeldungAnfrageDatenTrMsbNb,
    /// GPKE / Rückmeldung / Anfrage Daten der SR vom MSB an NB
    #[serde(rename = "55636")]
    GpkeRueckmeldungAnfrageDatenSrMsbNb,
    /// GPKE / Rückmeldung / Anfrage Daten der MeLo vom MSB an NB
    #[serde(rename = "55638")]
    GpkeRueckmeldungAnfrageDatenMeloMsbNb,
    /// GPKE / Änderung Daten der NeLo vom MSB an NB
    #[serde(rename = "55639")]
    GpkeAenderungDatenNeloMsbNb,
    /// GPKE / Änderung Daten der MaLo vom MSB an NB
    #[serde(rename = "55640")]
    GpkeAenderungDatenMaloMsbNb,
    /// GPKE / Änderung Daten der SR vom MSB an NB
    #[serde(rename = "55641")]
    GpkeAenderungDatenSrMsbNb,
    /// GPKE / Änderung Daten der Tranche vom MSB an NB
    #[serde(rename = "55642")]
    GpkeAenderungDatenTrancheMsbNb,
    /// GPKE / Änderung Daten der MeLo vom MSB an NB
    #[serde(rename = "55643")]
    GpkeAenderungDatenMeloMsbNb,
    /// GPKE / Rückmeldung / Anfrage Daten der NeLo vom NB an MSB
    #[serde(rename = "55644")]
    GpkeRueckmeldungAnfrageDatenNeloNbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom NB an MSB
    #[serde(rename = "55645")]
    GpkeRueckmeldungAnfrageDatenMaloNbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der SR vom NB an MSB
    #[serde(rename = "55646")]
    GpkeRueckmeldungAnfrageDatenSrNbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der Tranche vom NB an MSB
    #[serde(rename = "55647")]
    GpkeRueckmeldungAnfrageDatenTrancheNbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der MeLo vom NB an MSB
    #[serde(rename = "55648")]
    GpkeRueckmeldungAnfrageDatenMeloNbMsb,
    /// GPKE / Änderung Daten der NeLo vom MSB an LF
    #[serde(rename = "55649")]
    GpkeAenderungDatenNeloMsbLf,
    /// GPKE / Änderung Daten der MaLo vom MSB an LF
    #[serde(rename = "55650")]
    GpkeAenderungDatenMaloMsbLf,
    /// GPKE / Änderung Daten der SR vom MSB an LF
    #[serde(rename = "55651")]
    GpkeAenderungDatenSrMsbLf,
    /// GPKE / Änderung Daten der Tranche vom MSB an LF
    #[serde(rename = "55652")]
    GpkeAenderungDatenTrancheMsbLf,
    /// GPKE / Änderung Daten der MeLo vom MSB an LF
    #[serde(rename = "55653")]
    GpkeAenderungDatenMeloMsbLf,
    /// GPKE / Rückmeldung / Anfrage Daten der NeLo vom LF an MSB
    #[serde(rename = "55654")]
    GpkeRueckmeldungAnfrageDatenNeloLfMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom LF an MSB
    #[serde(rename = "55655")]
    GpkeRueckmeldungAnfrageDatenMaloLfMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der SR vom LF an MSB
    #[serde(rename = "55656")]
    GpkeRueckmeldungAnfrageDatenSrLfMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der Tranche vom LF an MSB
    #[serde(rename = "55657")]
    GpkeRueckmeldungAnfrageDatenTrancheLfMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der MeLo vom LF an MSB
    #[serde(rename = "55658")]
    GpkeRueckmeldungAnfrageDatenMeloLfMsb,
    /// GPKE / Änderung Daten der NeLo vom MSB an wMSB
    #[serde(rename = "55659")]
    GpkeAenderungDatenNeloMsbWmsb,
    /// GPKE / Änderung Daten der MaLo vom MSB an wMSB
    #[serde(rename = "55660")]
    GpkeAenderungDatenMaloMsbWmsb,
    /// GPKE / Änderung Daten der SR vom MSB an wMSB
    #[serde(rename = "55661")]
    GpkeAenderungDatenSrMsbWmsb,
    /// GPKE / Änderung Daten der Tranche vom MSB an wMSB
    #[serde(rename = "55662")]
    GpkeAenderungDatenTrancheMsbWmsb,
    /// GPKE / Änderung Daten der MeLo vom MSB an wMSB
    #[serde(rename = "55663")]
    GpkeAenderungDatenMeloMsbWmsb,
    /// GPKE / Rückmeldung / Anfrage Daten der NeLo vom wMSB an MSB
    #[serde(rename = "55664")]
    GpkeRueckmeldungAnfrageDatenNeloWmsbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo wMSB an MSB
    #[serde(rename = "55665")]
    GpkeRueckmeldungAnfrageDatenMaloWmsbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der SR vom wMSB an MSB
    #[serde(rename = "55666")]
    GpkeRueckmeldungAnfrageDatenSrWmsbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der Tranche vom wMSB an MSB
    #[serde(rename = "55667")]
    GpkeRueckmeldungAnfrageDatenTrancheWmsbMsb,
    /// GPKE / Rückmeldung / Anfrage Daten der MeLo vom wMSB an MSB
    #[serde(rename = "55669")]
    GpkeRueckmeldungAnfrageDatenMeloWmsbMsb,
    /// GPKE / Stammdaten Bilanzkreistreue
    #[serde(rename = "55670")]
    GpkeStammdatenBilanzkreistreue,
    /// GPKE / Rückmeldung auf Stammdaten Bilanzkreistreue
    #[serde(rename = "55671")]
    GpkeRueckmeldungStammdatenBilanzkreistreue,
    /// GPKE / Abrechnungsdaten Bilanzkreisabrechnung erzeugender MaLo an LF
    #[serde(rename = "55672")]
    GpkeAbrechnungsdatenBilanzkreisabrechnungErzeugenderMaloLf,
    /// GPKE / Rückmeldung / Anfrage Abrechnungsdaten Bilanzkreisabrechnung erzeugender MaLo vom LF
    #[serde(rename = "55673")]
    GpkeRueckmeldungAnfrageAbrechnungsdatenBilanzkreisabrechnungErzeugender,
    /// GPKE / Abrechnungsdaten Bilanzkreisabrechnung erzeugender MaLo an ÜNB
    #[serde(rename = "55674")]
    GpkeAbrechnungsdatenBilanzkreisabrechnungErzeugenderMaloUenb,
    /// GPKE / Rückmeldung / Anfrage Abrechnungsdaten Bilanzkreisabrechnung erzeugender MaLo vom ÜNB
    #[serde(rename = "55675")]
    GpkeRueckmeldungAnfrageAbrechnungsdatenBilanzkreisabrechnungErzeugender2,
    /// GPKE / Änderung Daten der MaLo vom MSB an ÜNB
    #[serde(rename = "55684")]
    GpkeAenderungDatenMaloMsbUenb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom ÜNB an MSB
    #[serde(rename = "55685")]
    GpkeRueckmeldungAnfrageDatenMaloUenbMsb,
    /// GPKE / Änderung Daten der Tranche vom MSB an ÜNB
    #[serde(rename = "55686")]
    GpkeAenderungDatenTrancheMsbUenb,
    /// GPKE / Rückmeldung / Anfrage Daten der Tranche vom ÜNB an MSB
    #[serde(rename = "55687")]
    GpkeRueckmeldungAnfrageDatenTrancheUenbMsb,
    /// GPKE / Änderung Daten der MaLo vom NB an ÜNB
    #[serde(rename = "55688")]
    GpkeAenderungDatenMaloNbUenb,
    /// GPKE / Rückmeldung / Anfrage Daten der MaLo vom ÜNB an NB
    #[serde(rename = "55689")]
    GpkeRueckmeldungAnfrageDatenMaloUenbNb,
    /// NBW / Lokationsbündelstruktur und DB
    #[serde(rename = "55690")]
    NbwLokationsbuendelstrukturDb,
    /// GPKE / Änderung Paket-ID der MaLo
    #[serde(rename = "55691")]
    GpkeAenderungPaketIdMalo,
    /// GPKE / Rückmeldung / Anfrage Paket-ID der MaLo
    #[serde(rename = "55692")]
    GpkeRueckmeldungAnfragePaketIdMalo,
    /// GPKE / Änderung Daten der TR vom LF an NB
    #[serde(rename = "55693")]
    GpkeAenderungDatenTrLfNb,
    /// GPKE / Rückmeldung / Anfrage Daten der TR vom NB an LF
    #[serde(rename = "55694")]
    GpkeRueckmeldungAnfrageDatenTrNbLf,
}

/// Code values for the `pruefschritt_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum PruefschrittCode {
    /// Zustimmung ohne Korrekturen
    #[serde(rename = "E15")]
    ZustimmungOhneKorrekturen,
    /// Ablehnung (kein Vertragsverhältnis mehr vorhanden)
    #[serde(rename = "Z29")]
    AblehnungKeinVertragsverhaeltnisMehrVorhanden,
    /// keine Störung feststellbar
    #[serde(rename = "ZB8")]
    KeineStoerungFeststellbar,
}

/// Code values for the `qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Qualifier {
    /// Angebotsnummer
    #[serde(rename = "AAG")]
    Angebotsnummer,
    /// Nummer der Anfrage
    #[serde(rename = "AAV")]
    NummerAnfrage,
    /// Nummer des zugehörigen Dokuments
    #[serde(rename = "ACE")]
    NummerZugehoerigenDokuments,
    /// Referenznummer einer vorangegangenen Nachricht
    #[serde(rename = "ACW")]
    ReferenznummerVorangegangenenNachricht,
    /// Mitteilungsnummer
    #[serde(rename = "ADY")]
    Mitteilungsnummer,
    /// Zugehörige Rechnungen
    #[serde(rename = "AFL")]
    ZugehoerigeRechnungen,
    /// Beantragungsnummer
    #[serde(rename = "AGI")]
    Beantragungsnummer,
    /// Anwendungsreferenznummer
    #[serde(rename = "AGK")]
    Anwendungsreferenznummer,
    /// Absenderreferenz für die Original-Nachricht
    #[serde(rename = "AGO")]
    AbsenderreferenzOriginalNachricht,
    /// Verweis auf Katalognummer
    #[serde(rename = "APF")]
    VerweisKatalognummer,
    /// Referenz auf eine Zeitreihe
    #[serde(rename = "AUU")]
    ReferenzZeitreihe,
    /// Kundennummer beim Lieferanten
    #[serde(rename = "AVC")]
    KundennummerBeimLieferanten,
    /// Meldepunkt
    #[serde(rename = "AVE")]
    Meldepunkt,
    /// Anspruchsteller
    #[serde(rename = "CC")]
    Anspruchsteller,
    /// Netzbetreiber
    #[serde(rename = "DDM")]
    Netzbetreiber,
    /// Location manager
    #[serde(rename = "DDO")]
    Hausverwalter,
    /// Messstellenbetreiber
    #[serde(rename = "DEB")]
    Messstellenbetreiber,
    /// Profilerstellung
    #[serde(rename = "DED")]
    Profilerstellung,
    /// Lieferanschrift
    #[serde(rename = "DP")]
    Lieferanschrift,
    /// Anschlussnehmer
    #[serde(rename = "EO")]
    Anschlussnehmer,
    /// Steuernummer
    #[serde(rename = "FC")]
    Steuernummer,
    /// Gerätenummer
    #[serde(rename = "MG")]
    Geraetenummer,
    /// Nachrichtenempfänger
    #[serde(rename = "MR")]
    Nachrichtenempfaenger,
    /// Dokumenten-/Nachrichtenaussteller bzw. -absender
    #[serde(rename = "MS")]
    DokumentenNachrichtenausstellerAbsender,
    /// Ursprungsrechnungsnummer
    #[serde(rename = "OI")]
    Ursprungsrechnungsnummer,
    /// Auftragsnummer (Einkauf)
    #[serde(rename = "ON")]
    AuftragsnummerEinkauf,
    /// Ansprechpartner
    #[serde(rename = "PK")]
    Ansprechpartner,
    /// Lieferant
    #[serde(rename = "SU")]
    Lieferant,
    /// Transaktions-Referenznummer
    #[serde(rename = "TN")]
    TransaktionsReferenznummer,
    /// Umsatzsteuernummer
    #[serde(rename = "VA")]
    Umsatzsteuernummer,
    /// andere zugehörige Partei
    #[serde(rename = "VY")]
    AndereZugehoerigePartei,
    /// Kundennummer beim Altlieferanten
    #[serde(rename = "Z01")]
    KundennummerBeimAltlieferanten,
    /// Positionsnummer des Angebots
    #[serde(rename = "Z03")]
    PositionsnummerAngebots,
    /// Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "Z04")]
    KorrespondenzanschriftKundenLf,
    /// Abrechnung des Messstellenbetriebs über NNE
    #[serde(rename = "Z05")]
    AbrechnungMessstellenbetriebsNne,
    /// Kunde des MSB
    #[serde(rename = "Z07")]
    KundeMsb,
    /// MP-ID des nachfolgenden Netzbetreibers
    #[serde(rename = "Z08")]
    MpIdNachfolgendenNetzbetreibers,
    /// Gerätenummer
    #[serde(rename = "Z09")]
    Geraetenummer2,
    /// OBIS-Kennzahl
    #[serde(rename = "Z10")]
    ObisKennzahl,
    /// Gerätenummer des Mengenumwerters
    #[serde(rename = "Z11")]
    GeraetenummerMengenumwerters,
    /// Referenz auf ein Profil
    #[serde(rename = "Z12")]
    ReferenzProfil,
    /// Prüfidentifikator
    #[serde(rename = "Z13")]
    Pruefidentifikator,
    /// Smartmeter-Gateway
    #[serde(rename = "Z14")]
    SmartmeterGateway,
    /// Überführungszeitreihe
    #[serde(rename = "Z15")]
    Ueberfuehrungszeitreihe,
    /// zugeordnete Marktlokation
    #[serde(rename = "Z16")]
    ZugeordneteMarktlokation,
    /// Preisschlüsselstamm
    #[serde(rename = "Z17")]
    Preisschluesselstamm,
    /// Marktlokation
    #[serde(rename = "Z18")]
    Marktlokation,
    /// Messlokation
    #[serde(rename = "Z19")]
    Messlokation,
    /// Tranche
    #[serde(rename = "Z20")]
    Tranche,
    /// zugeordnete Messlokation
    #[serde(rename = "Z21")]
    ZugeordneteMesslokation,
    /// Beteiligte Marktrolle
    #[serde(rename = "Z22")]
    BeteiligteMarktrolle,
    /// Rechenschritt
    #[serde(rename = "Z23")]
    Rechenschritt,
    /// Treffpunkt
    #[serde(rename = "Z24")]
    Treffpunkt,
    /// Faxnummer
    #[serde(rename = "Z25")]
    Faxnummer,
    /// Korrespondenzanschrift des Kunden des NB
    #[serde(rename = "Z26")]
    KorrespondenzanschriftKundenNb,
    /// Code der Zählzeitdefinition
    #[serde(rename = "Z27")]
    CodeZaehlzeitdefinition,
    /// Code des zählenden Registers
    #[serde(rename = "Z28")]
    CodeZaehlendenRegisters,
    /// Referenz auf vorherige Stammdatenmeldung des MSB
    #[serde(rename = "Z30")]
    ReferenzVorherigeStammdatenmeldungMsb,
    /// Lokationsbündelstruktur
    #[serde(rename = "Z31")]
    Lokationsbuendelstruktur,
    /// Netzlokation
    #[serde(rename = "Z32")]
    Netzlokation,
    /// Objektcode der Lokation in der Lokationsbündelstruktur
    #[serde(rename = "Z33")]
    ObjektcodeLokationLokationsbuendelstruktur,
    /// vorgelagerte Messlokation
    #[serde(rename = "Z34")]
    VorgelagerteMesslokation,
    /// vorgelagerte Netzlokation
    #[serde(rename = "Z35")]
    VorgelagerteNetzlokation,
    /// Energieserviceanbieter
    #[serde(rename = "Z36")]
    Energieserviceanbieter,
    /// Technische Ressource
    #[serde(rename = "Z37")]
    TechnischeRessource,
    /// Steuerbare Ressource
    #[serde(rename = "Z38")]
    SteuerbareRessource,
    /// Keine standardisierte Lokationsbündelstruktur vorhanden
    #[serde(rename = "Z39")]
    KeineStandardisierteLokationsbuendelstrukturVorhanden,
    /// Im System vorhandener Kunde des MSB
    #[serde(rename = "Z40")]
    SystemVorhandenerKundeMsb,
    /// Referenznummer des Vorgangs der Anmeldung nach WiM
    #[serde(rename = "Z41")]
    ReferenznummerVorgangsAnmeldungWim,
    /// Referenznummer der Nachricht der betroffenen Antwort auf Bestellung (Bestellbestätigung)
    #[serde(rename = "Z42")]
    ReferenznummerNachrichtBetroffenenAntwortBestellungBestellbestaetigung,
    /// Referenznummer des Vorgangs der betroffenen Antwort auf Bestellung (Bestellbestätigung)
    #[serde(rename = "Z43")]
    ReferenznummerVorgangsBetroffenenAntwortBestellungBestellbestaetigung,
    /// Im System vorhandene Messlokationsadresse
    #[serde(rename = "Z44")]
    SystemVorhandeneMesslokationsadresse,
    /// Referenz auf die Artikel-ID
    #[serde(rename = "Z45")]
    ReferenzArtikelId,
    /// Referenz auf Zeitraum-ID
    #[serde(rename = "Z46")]
    ReferenzZeitraumId,
    /// Im System vorhandene Daten
    #[serde(rename = "Z47")]
    SystemVorhandeneDaten,
    /// Erwartete Daten
    #[serde(rename = "Z48")]
    ErwarteteDaten,
    /// Gültige Daten
    #[serde(rename = "Z49")]
    GueltigeDaten,
    /// Termindaten der Marktlokation
    #[serde(rename = "Z50")]
    TermindatenMarktlokation,
    /// Erwartete Termindaten der Marktlokation
    #[serde(rename = "Z51")]
    ErwarteteTermindatenMarktlokation,
    /// Im System vorhandene Termindaten der Marktlokation
    #[serde(rename = "Z52")]
    SystemVorhandeneTermindatenMarktlokation,
    /// Keine Daten
    #[serde(rename = "Z53")]
    KeineDaten,
    /// Im System keine Daten vorhanden
    #[serde(rename = "Z54")]
    SystemKeineDatenVorhanden,
    /// Keine Daten erwartet
    #[serde(rename = "Z55")]
    KeineDatenErwartet,
    /// Preise des Netzbetreibers
    #[serde(rename = "Z56")]
    PreiseNetzbetreibers,
    /// Erwarteter Hausverwalter
    #[serde(rename = "Z57")]
    ErwarteterHausverwalter,
    /// Im System vorhandener Hausverwalter
    #[serde(rename = "Z58")]
    SystemVorhandenerHausverwalter,
    /// Marktlokation Kundenanlage
    #[serde(rename = "Z59")]
    MarktlokationKundenanlage,
    /// Informativ zur Umsetzung geplantes Produktpaket
    #[serde(rename = "Z60")]
    InformativUmsetzungGeplantesProduktpaket,
    /// Informative Marktlokationsanschrift
    #[serde(rename = "Z63")]
    InformativeMarktlokationsanschrift,
    /// Informative Messlokationsadresse
    #[serde(rename = "Z64")]
    InformativeMesslokationsadresse,
    /// Informativer Kunde des LF
    #[serde(rename = "Z65")]
    InformativerKundeLf,
    /// Informative Korrespondenzanschrift des Kunden des LF
    #[serde(rename = "Z66")]
    InformativeKorrespondenzanschriftKundenLf,
    /// Informativer Kundenname des NB
    #[serde(rename = "Z67")]
    InformativerKundennameNb,
    /// Informative Korrespondenzanschrift des Kunde des NB
    #[serde(rename = "Z68")]
    InformativeKorrespondenzanschriftKundeNb,
    /// Informative Daten des Anschlussnehmers
    #[serde(rename = "Z69")]
    InformativeDatenAnschlussnehmers,
    /// Informative Daten des Hausverwalters
    #[serde(rename = "Z70")]
    InformativeDatenHausverwalters,
    /// Marktgebietsverantwortlicher
    #[serde(rename = "Z71")]
    Marktgebietsverantwortlicher,
    /// Netzkonto
    #[serde(rename = "ZSH")]
    Netzkonto,
}

/// Code values for the `referenz_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ReferenzCode {
    /// MSCONS
    #[serde(rename = "Z07")]
    Mscons,
    /// UTILMD
    #[serde(rename = "Z08")]
    Utilmd,
    /// INVOIC
    #[serde(rename = "Z09")]
    Invoic,
    /// ORDERS
    #[serde(rename = "Z10")]
    Orders,
    /// PRICAT
    #[serde(rename = "Z11")]
    Pricat,
    /// IFTSTA
    #[serde(rename = "Z12")]
    Iftsta,
    /// ORDCHG
    #[serde(rename = "Z13")]
    Ordchg,
}

/// Code values for the `regelzone.wert` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum RegelzoneWert {
    /// Arbeitspreis/Grundpreis
    #[serde(rename = "Z14")]
    ArbeitspreisGrundpreis,
    /// Arbeitspreis/Leistungspreis
    #[serde(rename = "Z15")]
    ArbeitspreisLeistungspreis,
}

/// Code values for the `seq_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum SeqQualifier {
    /// Daten der Marktlokation
    #[serde(rename = "Z01")]
    DatenMarktlokation,
    /// OBIS-Daten der Marktlokation
    #[serde(rename = "Z02")]
    ObisDatenMarktlokation,
    /// Zähleinrichtungsdaten
    #[serde(rename = "Z03")]
    Zaehleinrichtungsdaten,
    /// Wandlerdaten
    #[serde(rename = "Z04")]
    Wandlerdaten,
    /// Kommunikationseinrichtungsdaten
    #[serde(rename = "Z05")]
    Kommunikationseinrichtungsdaten,
    /// Daten der technischen Steuereinrichtung
    #[serde(rename = "Z06")]
    DatenTechnischenSteuereinrichtung,
    /// Konzessionsabgabedaten
    #[serde(rename = "Z07")]
    Konzessionsabgabedaten,
    /// Profilschardaten
    #[serde(rename = "Z08")]
    Profilschardaten,
    /// Mengenumwerter-Daten
    #[serde(rename = "Z09")]
    MengenumwerterDaten,
    /// Gemeinderabatt
    #[serde(rename = "Z12")]
    Gemeinderabatt,
    /// Smartmeter-Gateway
    #[serde(rename = "Z13")]
    SmartmeterGateway,
    /// Steuerbox
    #[serde(rename = "Z14")]
    Steuerbox,
    /// Daten der Tranche
    #[serde(rename = "Z15")]
    DatenTranche,
    /// Erforderliches Produkt der Tranche
    #[serde(rename = "Z16")]
    ErforderlichesProduktTranche,
    /// OBIS-Daten der Tranche
    #[serde(rename = "Z17")]
    ObisDatenTranche,
    /// Daten der Messlokation
    #[serde(rename = "Z18")]
    DatenMesslokation,
    /// Erforderliches Messprodukt der Messlokation
    #[serde(rename = "Z19")]
    ErforderlichesProduktMesslokation,
    /// OBIS-Daten der Zähleinrichtung
    #[serde(rename = "Z20")]
    ObisDatenZaehleinrichtung,
    /// Profildaten
    #[serde(rename = "Z21")]
    Profildaten,
    /// Daten der Summenzeitreihe
    #[serde(rename = "Z22")]
    DatenSummenzeitreihe,
    /// Produkt-Daten der Summenzeitreihe
    #[serde(rename = "Z23")]
    ProduktDatenSummenzeitreihe,
    /// Daten der Überführungszeitreihe
    #[serde(rename = "Z24")]
    DatenUeberfuehrungszeitreihe,
    /// Produkt-Daten der Überführungszeitreihe
    #[serde(rename = "Z25")]
    ProduktDatenUeberfuehrungszeitreihe,
    /// Daten der Deklarationsliste
    #[serde(rename = "Z26")]
    DatenDeklarationsliste,
    /// Erforderliches Messprodukt der Marktlokation
    #[serde(rename = "Z27")]
    ErforderlichesMessproduktMarktlokation,
    /// Daten der Marktlokation der beteiligten Marktrolle
    #[serde(rename = "Z29")]
    DatenMarktlokationBeteiligtenMarktrolle,
    /// OBIS-Daten der Marktlokation der beteiligten Marktrolle
    #[serde(rename = "Z30")]
    ObisDatenMarktlokationBeteiligtenMarktrolle,
    /// Daten der Tranche der beteiligten Marktrolle
    #[serde(rename = "Z31")]
    DatenTrancheBeteiligtenMarktrolle,
    /// OBIS-Daten der Tranche der beteiligten Marktrolle
    #[serde(rename = "Z32")]
    ObisDatenTrancheBeteiligtenMarktrolle,
    /// Profildaten der beteiligten Marktrolle
    #[serde(rename = "Z33")]
    ProfildatenBeteiligtenMarktrolle,
    /// Lastprofildaten
    #[serde(rename = "Z35")]
    Lastprofildaten,
    /// Energiemenge der Markt- bzw. Netzlokation
    #[serde(rename = "Z36")]
    EnergiemengeMarktNetzlokation,
    /// Bestandteil des Rechenschritts
    #[serde(rename = "Z37")]
    BestandteilRechenschritts,
    /// Referenzprofildaten
    #[serde(rename = "Z38")]
    Referenzprofildaten,
    /// Produkt-Daten der Marktlokation des NB
    #[serde(rename = "Z40")]
    ProduktDatenMarktlokationNb,
    /// Register der Zählzeitdefinition
    #[serde(rename = "Z41")]
    RegisterZaehlzeitdefinition,
    /// Zählzeitdefinition
    #[serde(rename = "Z42")]
    Zaehlzeitdefinition,
    /// Ausgerollte Zählzeitdefinition
    #[serde(rename = "Z43")]
    AusgerollteZaehlzeitdefinition,
    /// Verbrauchsart und Nutzung der OBIS-Kennzahl an der Marktlokation
    #[serde(rename = "Z44")]
    VerbrauchsartNutzungObisKennzahlMarktlokation,
    /// Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z45")]
    NetznutzungsabrechnungsdatenMarktlokation,
    /// Datenstand des ÜNB
    #[serde(rename = "Z47")]
    DatenstandUenb,
    /// Abgerechnete Daten der Bilanzkreissummenzeitreihe des ÜNB
    #[serde(rename = "Z48")]
    AbgerechneteDatenBilanzkreissummenzeitreiheUenb,
    /// Abgerechnete Daten der Bilanzierungsgebietssummenzeitreihe des ÜNB
    #[serde(rename = "Z49")]
    AbgerechneteDatenBilanzierungsgebietssummenzeitreiheUenb,
    /// Messdatenregistriergerätedaten
    #[serde(rename = "Z50")]
    Messdatenregistriergeraetedaten,
    /// Daten der Netzlokation
    #[serde(rename = "Z51")]
    DatenNetzlokation,
    /// Daten der Technischen Ressource
    #[serde(rename = "Z52")]
    DatenTechnischenRessource,
    /// OBIS-Daten der Netzlokation
    #[serde(rename = "Z57")]
    ObisDatenNetzlokation,
    /// Zuordnung Lokation zum Objektcode des Lokationsbündels
    #[serde(rename = "Z58")]
    ZuordnungLokationObjektcodeLokationsbuendels,
    /// Produkt-Daten der Marktlokation
    #[serde(rename = "Z59")]
    ProduktDatenMarktlokation,
    /// Produkt-Daten der Netzlokation
    #[serde(rename = "Z60")]
    ProduktDatenNetzlokation,
    /// Produkt-Daten der Steuerbaren Ressource
    #[serde(rename = "Z61")]
    ProduktDatenSteuerbarenRessource,
    /// Daten der Steuerbaren Ressource
    #[serde(rename = "Z62")]
    DatenSteuerbarenRessource,
    /// Schaltzeitdefinition
    #[serde(rename = "Z69")]
    Schaltzeitdefinition,
    /// Leistungskurvendefinition
    #[serde(rename = "Z70")]
    Leistungskurvendefinition,
    /// Abrechnungsdaten der Netzlokation
    #[serde(rename = "Z71")]
    AbrechnungsdatenNetzlokation,
    /// Datenstand des NB
    #[serde(rename = "Z72")]
    DatenstandNb,
    /// Ausgerollte Schaltzeitdefinition
    #[serde(rename = "Z73")]
    AusgerollteSchaltzeitdefinition,
    /// Ausgerollte Leistungskurvendefinition
    #[serde(rename = "Z74")]
    AusgerollteLeistungskurvendefinition,
    /// Daten des Kunden des Lieferanten
    #[serde(rename = "Z75")]
    DatenKundenLieferanten,
    /// Messstellenbetriebsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z76")]
    MessstellenbetriebsabrechnungsdatenMarktlokation,
    /// Referenz auf die Lokationsbündelstruktur
    #[serde(rename = "Z78")]
    ReferenzLokationsbuendelstruktur,
    /// Bestandteil eines Produktpakets
    #[serde(rename = "Z79")]
    BestandteilProduktpakets,
    /// Erwartete Daten der Marktlokation
    #[serde(rename = "Z80")]
    ErwarteteDatenMarktlokation,
    /// Im System vorhandene Daten der Marktlokation
    #[serde(rename = "Z81")]
    SystemVorhandeneDatenMarktlokation,
    /// Erwartete Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z82")]
    ErwarteteNetznutzungsabrechnungsdatenMarktlokation,
    /// Im System vorhandene Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z83")]
    SystemVorhandeneNetznutzungsabrechnungsdatenMarktlokation,
    /// Differenz-Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z84")]
    DifferenzNetznutzungsabrechnungsdatenMarktlokation,
    /// Erwartete Profildaten
    #[serde(rename = "Z85")]
    ErwarteteProfildaten,
    /// Im System vorhandene Profildaten
    #[serde(rename = "Z86")]
    SystemVorhandeneProfildaten,
    /// Erwartete Profilschardaten
    #[serde(rename = "Z87")]
    ErwarteteProfilschardaten,
    /// Im System vorhandene Profilschardaten
    #[serde(rename = "Z88")]
    SystemVorhandeneProfilschardaten,
    /// Erwartete Referenzprofildaten
    #[serde(rename = "Z89")]
    ErwarteteReferenzprofildaten,
    /// Im System vorhandene Referenzprofildaten
    #[serde(rename = "Z90")]
    SystemVorhandeneReferenzprofildaten,
    /// Erwartete Daten des Kunden des Lieferanten
    #[serde(rename = "Z92")]
    ErwarteteDatenKundenLieferanten,
    /// Im System vorhandene Daten des Kunden des Lieferanten
    #[serde(rename = "Z93")]
    SystemVorhandeneDatenKundenLieferanten,
    /// Erwartete Daten der Tranche
    #[serde(rename = "Z94")]
    ErwarteteDatenTranche,
    /// Im System vorhandene Daten der Tranche
    #[serde(rename = "Z95")]
    SystemVorhandeneDatenTranche,
    /// Erwartete Differenz-Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z96")]
    ErwarteteDifferenzNetznutzungsabrechnungsdatenMarktlokation,
    /// Im System vorhandene Differenz-Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "Z97")]
    SystemVorhandeneDifferenzNetznutzungsabrechnungsdatenMarktlokation,
    /// Informative Daten der Marktlokation
    #[serde(rename = "Z98")]
    InformativeDatenMarktlokation,
    /// Erwartete OBIS-Daten der Tranche
    #[serde(rename = "Z99")]
    ErwarteteObisDatenTranche,
    /// Im System vorhandene OBIS-Daten der Tranche
    #[serde(rename = "ZA0")]
    SystemVorhandeneObisDatenTranche,
    /// Erwartete OBIS-Daten der Marktlokation
    #[serde(rename = "ZA1")]
    ErwarteteObisDatenMarktlokation,
    /// Im System vorhandene OBIS-Daten der Marktlokation
    #[serde(rename = "ZA2")]
    SystemVorhandeneObisDatenMarktlokation,
    /// Erwartete Zähleinrichtungsdaten
    #[serde(rename = "ZA3")]
    ErwarteteZaehleinrichtungsdaten,
    /// Im System vorhandene Zähleinrichtungsdaten
    #[serde(rename = "ZA4")]
    SystemVorhandeneZaehleinrichtungsdaten,
    /// Erwartete OBIS-Daten der Zähleinrichtung
    #[serde(rename = "ZA5")]
    ErwarteteObisDatenZaehleinrichtung,
    /// Im System vorhandene OBIS-Daten der Zähleinrichtung
    #[serde(rename = "ZA6")]
    SystemVorhandeneObisDatenZaehleinrichtung,
    /// Erwartete OBIS-Daten der Netzlokation
    #[serde(rename = "ZA7")]
    ErwarteteObisDatenNetzlokation,
    /// Im System vorhandene OBIS-Daten der Netzlokation
    #[serde(rename = "ZA8")]
    SystemVorhandeneObisDatenNetzlokation,
    /// Erwartete Daten der Netzlokation
    #[serde(rename = "ZA9")]
    ErwarteteDatenNetzlokation,
    /// Im System vorhandene Daten der Netzlokation
    #[serde(rename = "ZB0")]
    SystemVorhandeneDatenNetzlokation,
    /// Erwartete Daten der Steuerbaren Ressource
    #[serde(rename = "ZB1")]
    ErwarteteDatenSteuerbarenRessource,
    /// Im System vorhandene Daten der Steuerbaren Ressource
    #[serde(rename = "ZB2")]
    SystemVorhandeneDatenSteuerbarenRessource,
    /// Erwartete Produkt-Daten der Steuerbaren Ressource
    #[serde(rename = "ZB3")]
    ErwarteteProduktDatenSteuerbarenRessource,
    /// Im System vorhandene Produkt-Daten der Steuerbaren Ressource
    #[serde(rename = "ZB4")]
    SystemVorhandeneProduktDatenSteuerbarenRessource,
    /// Erwartete Produkt-Daten der Marktlokation
    #[serde(rename = "ZB5")]
    ErwarteteProduktDatenMarktlokation,
    /// Im System vorhandene Produkt-Daten der Marktlokation
    #[serde(rename = "ZB6")]
    SystemVorhandeneProduktDatenMarktlokation,
    /// Erwartete Kommunikationseinrichtungsdaten
    #[serde(rename = "ZB7")]
    ErwarteteKommunikationseinrichtungsdaten,
    /// Im System vorhandene Kommunikationseinrichtungsdaten
    #[serde(rename = "ZB8")]
    SystemVorhandeneKommunikationseinrichtungsdaten,
    /// Erwartete Wandlerdaten
    #[serde(rename = "ZB9")]
    ErwarteteWandlerdaten,
    /// Im System vorhandene Wandlerdaten
    #[serde(rename = "ZC0")]
    SystemVorhandeneWandlerdaten,
    /// Erwartete Daten der technischen Steuereinrichtung
    #[serde(rename = "ZC1")]
    ErwarteteDatenTechnischenSteuereinrichtung,
    /// Im System vorhandene Daten der technischen Steuereinrichtung
    #[serde(rename = "ZC2")]
    SystemVorhandeneDatenTechnischenSteuereinrichtung,
    /// Erwartetes Smartmeter-Gateway
    #[serde(rename = "ZC3")]
    ErwartetesSmartmeterGateway,
    /// Im System vorhandenes Smartmeter-Gateway
    #[serde(rename = "ZC4")]
    SystemVorhandenesSmartmeterGateway,
    /// Erwartete Messstellenbetriebsabrechnungsdaten der Marktlokation
    #[serde(rename = "ZC5")]
    ErwarteteMessstellenbetriebsabrechnungsdatenMarktlokation,
    /// Im System vorhandene Messstellenbetriebsabrechnungsdaten der Marktlokation
    #[serde(rename = "ZC6")]
    SystemVorhandeneMessstellenbetriebsabrechnungsdatenMarktlokation,
    /// Erwartete Referenz auf die Lokationsbündelstruktur
    #[serde(rename = "ZC7")]
    ErwarteteReferenzLokationsbuendelstruktur,
    /// Im System vorhandene Referenz auf die Lokationsbündelstruktur
    #[serde(rename = "ZC8")]
    SystemVorhandeneReferenzLokationsbuendelstruktur,
    /// Erwartete Zuordnung Lokation zum Objektcode des Lokationsbündels
    #[serde(rename = "ZC9")]
    ErwarteteZuordnungLokationObjektcodeLokationsbuendels,
    /// Im System vorhandene Zuordnung Lokation zum Objektcode des Lokationsbündels
    #[serde(rename = "ZD0")]
    SystemVorhandeneZuordnungLokationObjektcodeLokationsbuendels,
    /// Erwartete Verbrauchsart und Nutzung der OBIS-Kennzahl der Marktlokation
    #[serde(rename = "ZD1")]
    ErwarteteVerbrauchsartNutzungObisKennzahlMarktlokation,
    /// Im System vorhandene Verbrauchsart und Nutzung der OBIS-Kennzahl der Marktlokation
    #[serde(rename = "ZD2")]
    SystemVorhandeneVerbrauchsartNutzungObisKennzahlMarktlokation,
    /// Erwartete Produkt-Daten der Marktlokation des NB
    #[serde(rename = "ZD3")]
    ErwarteteProduktDatenMarktlokationNb,
    /// Im System vorhandene Produkt-Daten der Marktlokation des NB
    #[serde(rename = "ZD4")]
    SystemVorhandeneProduktDatenMarktlokationNb,
    /// Informative Referenz auf die Lokationsbündelstruktur
    #[serde(rename = "ZD5")]
    InformativeReferenzLokationsbuendelstruktur,
    /// Informative Zuordnung Lokation zum Objektcode des Lokationsbündels
    #[serde(rename = "ZD6")]
    InformativeZuordnungLokationObjektcodeLokationsbuendels,
    /// Informative Daten der Netzlokation
    #[serde(rename = "ZD7")]
    InformativeDatenNetzlokation,
    /// Informative OBIS-Daten der Netzlokation
    #[serde(rename = "ZD9")]
    InformativeObisDatenNetzlokation,
    /// Informative Produkt-Daten der Netzlokation
    #[serde(rename = "ZE0")]
    InformativeProduktDatenNetzlokation,
    /// Informative Netznutzungsabrechnungsdaten der Marktlokation
    #[serde(rename = "ZE1")]
    InformativeNetznutzungsabrechnungsdatenMarktlokation,
    /// Informative Erforderliches Messprodukt der Marktlokation
    #[serde(rename = "ZE2")]
    InformativeErforderlichesMessproduktMarktlokation,
    /// Informative OBIS-Daten der Marktlokation
    #[serde(rename = "ZE3")]
    InformativeObisDatenMarktlokation,
    /// Informative Produkt-Daten der Marktlokation
    #[serde(rename = "ZE4")]
    InformativeProduktDatenMarktlokation,
    /// Informative Verbrauchsart und Nutzung der OBIS-Kennzahl an der Marktlokation
    #[serde(rename = "ZE5")]
    InformativeVerbrauchsartNutzungObisKennzahlMarktlokation,
    /// Informative Produkt-Daten der Marktlokation des NB
    #[serde(rename = "ZE6")]
    InformativeProduktDatenMarktlokationNb,
    /// Informative Daten der Tranche
    #[serde(rename = "ZE7")]
    InformativeDatenTranche,
    /// Informative Erforderliches Produkt der Tranche
    #[serde(rename = "ZE8")]
    InformativeErforderlichesProduktTranche,
    /// Informative OBIS-Daten der Tranche
    #[serde(rename = "ZE9")]
    InformativeObisDatenTranche,
    /// Informative Daten der Technischen Ressource
    #[serde(rename = "ZF0")]
    InformativeDatenTechnischenRessource,
    /// Informative Daten der Steuerbaren Ressource
    #[serde(rename = "ZF1")]
    InformativeDatenSteuerbarenRessource,
    /// Informative Produkt-Daten der Steuerbaren Ressource
    #[serde(rename = "ZF2")]
    InformativeProduktDatenSteuerbarenRessource,
    /// Informative Daten der Messlokation
    #[serde(rename = "ZF3")]
    InformativeDatenMesslokation,
    /// Informative Erforderliches Produkt der Messlokation
    #[serde(rename = "ZF4")]
    InformativeErforderlichesProduktMesslokation,
    /// Informative Zähleinrichtungsdaten
    #[serde(rename = "ZF5")]
    InformativeZaehleinrichtungsdaten,
    /// Informative OBIS-Daten der Zähleinrichtung
    #[serde(rename = "ZF6")]
    InformativeObisDatenZaehleinrichtung,
    /// Informative Wandlerdaten
    #[serde(rename = "ZF7")]
    InformativeWandlerdaten,
    /// Informative Kommunikationseinrichtungsdaten
    #[serde(rename = "ZF8")]
    InformativeKommunikationseinrichtungsdaten,
    /// Informative Daten der technischen Steuereinrichtung
    #[serde(rename = "ZF9")]
    InformativeDatenTechnischenSteuereinrichtung,
    /// Informative Smartmeter-Gateway
    #[serde(rename = "ZG0")]
    InformativeSmartmeterGateway,
    /// Informative Profildaten
    #[serde(rename = "ZG1")]
    InformativeProfildaten,
    /// Informative Profilschardaten
    #[serde(rename = "ZG2")]
    InformativeProfilschardaten,
    /// Informative Referenzprofildaten
    #[serde(rename = "ZG3")]
    InformativeReferenzprofildaten,
    /// Erwartete Daten der Technischen Ressource
    #[serde(rename = "ZG4")]
    ErwarteteDatenTechnischenRessource,
    /// Im System vorhandene Daten der Technischen Ressource
    #[serde(rename = "ZG5")]
    SystemVorhandeneDatenTechnischenRessource,
    /// Erwartete Daten der Messlokation
    #[serde(rename = "ZG6")]
    ErwarteteDatenMesslokation,
    /// Im System vorhandene Daten der Messlokation
    #[serde(rename = "ZG7")]
    SystemVorhandeneDatenMesslokation,
    /// Erwartete Produkt-Daten der NeLo
    #[serde(rename = "ZG8")]
    ErwarteteProduktDatenNelo,
    /// Im System vorhandene Produkt-Daten der NeLo
    #[serde(rename = "ZG9")]
    SystemVorhandeneProduktDatenNelo,
    /// Priorisierung erforderliches Produktpaket
    #[serde(rename = "ZH0")]
    PriorisierungErforderlichesProduktpaket,
    /// Erwartete Abrechnungsdaten der Netzlokation
    #[serde(rename = "ZH1")]
    ErwarteteAbrechnungsdatenNetzlokation,
    /// Im System vorhandene Abrechnungsdaten der Netzlokation
    #[serde(rename = "ZH2")]
    SystemVorhandeneAbrechnungsdatenNetzlokation,
    /// Erwartete Daten der Steuerbox
    #[serde(rename = "ZH3")]
    ErwarteteDatenSteuerbox,
    /// Im System vorhandene Daten der Steuerbox
    #[serde(rename = "ZH4")]
    SystemVorhandeneDatenSteuerbox,
    /// Daten der technischen Einrichtungen
    #[serde(rename = "ZH6")]
    DatenTechnischenEinrichtungen,
    /// Erwartete Daten der technischen Einrichtungen
    #[serde(rename = "ZH7")]
    ErwarteteDatenTechnischenEinrichtungen,
    /// Im System vorhandene Daten der technischen Einrichtungen
    #[serde(rename = "ZH8")]
    SystemVorhandeneDatenTechnischenEinrichtungen,
}

/// Code values for the `status_energiemenge_grund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusEnergiemengeGrund {
    /// Strom / Gas: Zugang zur Messeinrichtung nicht möglich (Vor-Ort-Ablesung).
    #[serde(rename = "Z74")]
    KeinZugang,
    /// Strom / Gas: Fernauslesung konnte nicht fristgerecht durchgeführt werden.
    #[serde(rename = "Z75")]
    Kommunikationsstoerung,
    /// Strom / Gas: Netzausfall = Ausfall eines Netzgebietes/fehlende Primärspannung.
    #[serde(rename = "Z76")]
    StromGasNetzausfallAusfallNetzgebietesFehlendePrimaerspannung,
    /// Strom: Messspannungsausfall oder fehlende Hilfsspannung.
    #[serde(rename = "Z77")]
    StromMessspannungsausfallFehlendeHilfsspannung,
    /// Strom / Gas: Messwerte unvollständig wegen Gerätewechsels.
    #[serde(rename = "Z78")]
    StromGasMesswerteUnvollstaendigWegenGeraetewechsels,
    /// Strom: Während Wartungs-, Revisions- oder Instandsetzungsarbeiten am geeichten Messgeräten stehen keine Messwerte zur Verfügung.
    #[serde(rename = "Z79")]
    StromWaehrendWartungsRevisionsInstandsetzungsarbeitenGeeichtenMessgeraeten,
    /// Strom / Gas: Das Gerät arbeitet außerhalb der zugelassenen Betriebsbedingungen und liefert keine Messwerte.
    #[serde(rename = "Z80")]
    StromGasGeraetArbeitetAusserhalbZugelassenenBetriebsbedingungenLiefert,
    /// Strom / Gas: Messwerte sind nicht verwendbar / verfügbar, da bei der Messeinrichtung ein Defekt festgestellt wurde.
    #[serde(rename = "Z81")]
    StromGasMesswerteSindNichtVerwendbarVerfuegbarMesseinrichtungDefekt,
    /// Strom / Gas: Möglicher Gerätedefekt/ Messeinrichtung in Überprüfung (z. B. Befundprüfung).
    #[serde(rename = "Z82")]
    StromGasMoeglicherGeraetedefektMesseinrichtungUeberpruefungZB,
    /// Gas: Normvolumen aus Störmengenzähler des MU.
    #[serde(rename = "Z98")]
    GasNormvolumenStoermengenzaehlerMu,
    /// Gas: Zur Ermittlung des Normvolumens relevante Faktoren sind nicht verfügbar.
    #[serde(rename = "Z99")]
    GasErmittlungNormvolumensRelevanteFaktorenSindNichtVerfuegbar,
    /// Strom / Gas: Uhrzeit war außerhalb der zulässigen Grenzwerte.
    #[serde(rename = "ZA0")]
    StromGasUhrzeitWarAusserhalbZulaessigenGrenzwerte,
    /// Strom / Gas: Energie, Leistung, Volumen, etc. unplausibel.
    #[serde(rename = "ZA1")]
    StromGasEnergieLeistungVolumenEtcUnplausibel,
    /// Falscher Wandlerfaktor
    #[serde(rename = "ZA3")]
    FalscherWandlerfaktor,
    /// Strom / Gas: Fehlerhafte Ablesung incl. Messstellenverwechslung, Zahlendreher, ...
    #[serde(rename = "ZA4")]
    StromGasFehlerhafteAblesungInclMessstellenverwechslungZahlendreher,
    /// Strom / Gas: z. B. Änderung der Berechnungsvorschrift, nachträglich berücksichtigte Zweit- bzw. Untermessung.
    #[serde(rename = "ZA5")]
    StromGasZBAenderungBerechnungsvorschriftNachtraeglichBeruecksichtigte,
    /// Umbau der Messlokation
    #[serde(rename = "ZA6")]
    UmbauMesslokation,
    /// Datenbearbeitungsfehler
    #[serde(rename = "ZA7")]
    Datenbearbeitungsfehler,
    /// Strom / Gas: Technischer Fehler in der Messeinrichtung.
    #[serde(rename = "ZB0")]
    StromGasTechnischerFehlerMesseinrichtung,
    /// Änderung Tarifschaltzeiten
    #[serde(rename = "ZB9")]
    AenderungTarifschaltzeiten,
    /// Strom: Tarifschaltgerät defekt.
    #[serde(rename = "ZC2")]
    StromTarifschaltgeraetDefekt,
    /// Strom / Gas: Der Wert basiert auf einer unzureichenden Anzahl von Impulsen gemäß der Eichordnung.
    #[serde(rename = "ZC4")]
    StromGasWertBasiertUnzureichendenAnzahlImpulsenEichordnung,
    /// Gas: Während Wartungs-, Revisions- oder Instandsetzungsarbeiten an geeichten Messgeräten stehen keine Messwerte zur Verfügung.
    #[serde(rename = "ZR1")]
    GasWaehrendWartungsRevisionsInstandsetzungsarbeitenGeeichtenMessgeraeten,
    /// Gas: Das Messgerät kennzeichnet seine Messergebnisse als gestörte Werte.
    #[serde(rename = "ZR2")]
    GasMessgeraetKennzeichnetSeineMessergebnisseGestoerteWerte,
    /// Gas: Während Wartungs-, Revisions- oder Instandsetzungsarbeiten an eichrechtskonformen Messgeräten stehen keine Messwerte zur Verfügung.
    #[serde(rename = "ZR3")]
    GasWaehrendWartungsRevisionsInstandsetzungsarbeitenEichrechtskonformen,
    /// Gas: Auf Basis der Prüfungen gemäß G685 Kapitel 2.4 und 2.5 wird ein Messwert als unplausibel erkannt (Konsistenz- und Synchronprüfung).
    #[serde(rename = "ZR4")]
    GasBasisPruefungenG685Kapitel2425MesswertUnplausibelErkannt,
    /// Strom / Gas: bei einer 1:N Beziehung zwischen Markt- und Messlokation können auf Ebene der Messlokation verschiedene unterschiedliche Gründe für die Ersatzwertbildung vorliegen, sodass auf Ebene der Marktlokation auf die Gründe der Ersatzwertbildung der bereits übermittelten Werte der Messlokation verwiesen wird.
    #[serde(rename = "ZS9")]
    StromGas1NBeziehungMarktMesslokationKoennenEbeneMesslokation2,
    /// Strom / Gas: Bei Bestellungen von Werten zu einem Nutzungszeitpunkt der in der Vergangenheit liegt, zu dem beim MSB kein realer Wert vorliegt, ist es notwendig für den angeforderten Zeitpunkt einen Ersatzwert zu bilden und zu übermitteln.
    #[serde(rename = "ZT8")]
    StromGasBestellungenWertenNutzungszeitpunktVergangenheitLiegtBeimMsb,
}

/// Code values for the `status_ersatzwert_grund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusErsatzwertGrund {
    /// Der Status wird gesetzt, wenn ein Wert auf Grund der Umstellung von Gasqualität übermittelt werden muss.
    #[serde(rename = "ZG3")]
    StatusGesetztWertGrundUmstellungGasqualitaetUebermitteltWerdenMuss,
}

/// Code values for the `status_kategorie` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusKategorie {
    /// Messklassifizierung
    #[serde(rename = "10")]
    Messklassifizierung,
    /// Transaktionsgrund
    #[serde(rename = "7")]
    Transaktionsgrund,
    /// Status der Antwort
    #[serde(rename = "E01")]
    StatusAntwort,
    /// Prüfstatus Antwort auf Summenzeitreihen
    #[serde(rename = "Z01")]
    PruefstatusAntwortSummenzeitreihen,
    /// Abweisung der Summenzeitreihe
    #[serde(rename = "Z02")]
    AbweisungSummenzeitreihe,
    /// Prüfstatus zur Summenzeitreihe
    #[serde(rename = "Z03")]
    PruefstatusSummenzeitreihe,
    /// Datenstatus zur Summenzeitreihe
    #[serde(rename = "Z04")]
    DatenstatusSummenzeitreihe,
    /// Gerätestatus
    #[serde(rename = "Z06")]
    Geraetestatus2,
    /// MSB-Wechsel nach MsbG
    #[serde(rename = "Z10")]
    MsbWechselMsbg,
    /// Ab-/Auslesung
    #[serde(rename = "Z12")]
    Auslesung,
    /// Abweisung Statusmeldung/-änderung
    #[serde(rename = "Z13")]
    AbweisungStatusmeldungAenderung,
    /// Messstellenumbau
    #[serde(rename = "Z15")]
    Messstellenumbau,
    /// Transaktionsgrundergänzung für befristete Anmeldung
    #[serde(rename = "Z17")]
    TransaktionsgrundergaenzungBefristeteAnmeldung,
    /// Bilanzkreiszuordnung zur Marktlokation
    #[serde(rename = "Z18")]
    BilanzkreiszuordnungMarktlokation,
    /// Ersteinbau iMS
    #[serde(rename = "Z19")]
    ErsteinbauIms,
    /// Status des referenzierten Dokuments
    #[serde(rename = "Z20")]
    StatusReferenziertenDokuments,
    /// Bestellung
    #[serde(rename = "Z21")]
    Bestellung,
    /// Status der Berechnungsformel
    #[serde(rename = "Z23")]
    StatusBerechnungsformel,
    /// Ersteinbau mME
    #[serde(rename = "Z24")]
    ErsteinbauMme,
    /// Status des Lieferscheins
    #[serde(rename = "Z25")]
    StatusLieferscheins,
    /// Gerätestatus
    #[serde(rename = "Z26")]
    Geraetestatus,
    /// Status der Ausfallarbeit
    #[serde(rename = "Z27")]
    StatusAusfallarbeit,
    /// Status des Fahrplananteils
    #[serde(rename = "Z28")]
    StatusFahrplananteils,
    /// Status des Gegenvorschlags der Ausfallarbeit
    #[serde(rename = "Z29")]
    StatusGegenvorschlagsAusfallarbeit,
    /// Status des Gegenvorschlags des Fahrplananteils
    #[serde(rename = "Z30")]
    StatusGegenvorschlagsFahrplananteils,
    /// Gasqualität
    #[serde(rename = "Z31")]
    Gasqualitaet,
    /// Ersatzwertbildungsverfahren
    #[serde(rename = "Z32")]
    Ersatzwertbildungsverfahren,
    /// Plausibilisierungshinweis
    #[serde(rename = "Z33")]
    Plausibilisierungshinweis,
    /// Korrekturgrund
    #[serde(rename = "Z34")]
    Korrekturgrund,
    /// Status der Antwort des dritten Marktbeteiligten
    #[serde(rename = "Z35")]
    StatusAntwortDrittenMarktbeteiligten,
    /// Nutzung von Definitionen
    #[serde(rename = "Z36")]
    NutzungDefinitionen,
    /// Auftragsstatus Sperren
    #[serde(rename = "Z37")]
    AuftragsstatusSperren,
    /// Auftragsstatus Entsperren
    #[serde(rename = "Z38")]
    AuftragsstatusEntsperren,
    /// Information über Entsperrauftrag
    #[serde(rename = "Z39")]
    InformationEntsperrauftrag,
    /// Grund der Ersatzwertbildung
    #[serde(rename = "Z40")]
    GrundErsatzwertbildung,
    /// Grund der Privilegierung nach EnFG
    #[serde(rename = "Z41")]
    GrundPrivilegierungEnfg,
    /// Veränderungsstatus der Daten
    #[serde(rename = "Z43")]
    VeraenderungsstatusDaten,
}

/// Code values for the `status_korrektur_grund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusKorrekturGrund {
    /// Strom / Gas: Zugang zur Messeinrichtung nicht möglich (Vor-Ort-Ablesung).
    #[serde(rename = "Z74")]
    KeinZugang,
    /// Strom / Gas: Fernauslesung konnte nicht fristgerecht durchgeführt werden.
    #[serde(rename = "Z75")]
    Kommunikationsstoerung,
    /// Strom / Gas: Netzausfall = Ausfall eines Netzgebietes/fehlende Primärspannung.
    #[serde(rename = "Z76")]
    StromGasNetzausfallAusfallNetzgebietesFehlendePrimaerspannung,
    /// Strom: Messspannungsausfall oder fehlende Hilfsspannung.
    #[serde(rename = "Z77")]
    StromMessspannungsausfallFehlendeHilfsspannung,
    /// Strom / Gas: Messwerte unvollständig wegen Gerätewechsels.
    #[serde(rename = "Z78")]
    StromGasMesswerteUnvollstaendigWegenGeraetewechsels,
    /// Strom: Während Wartungs-, Revisions- oder Instandsetzungsarbeiten am geeichten Messgeräten stehen keine Messwerte zur Verfügung.
    #[serde(rename = "Z79")]
    StromWaehrendWartungsRevisionsInstandsetzungsarbeitenGeeichtenMessgeraeten,
    /// Strom / Gas: Das Gerät arbeitet außerhalb der zugelassenen Betriebsbedingungen und liefert keine Messwerte.
    #[serde(rename = "Z80")]
    StromGasGeraetArbeitetAusserhalbZugelassenenBetriebsbedingungenLiefert,
    /// Strom / Gas: Messwerte sind nicht verwendbar / verfügbar, da bei der Messeinrichtung ein Defekt festgestellt wurde.
    #[serde(rename = "Z81")]
    StromGasMesswerteSindNichtVerwendbarVerfuegbarMesseinrichtungDefekt,
    /// Strom / Gas: Möglicher Gerätedefekt/ Messeinrichtung in Überprüfung (z. B. Befundprüfung).
    #[serde(rename = "Z82")]
    StromGasMoeglicherGeraetedefektMesseinrichtungUeberpruefungZB,
    /// Gas: Normvolumen aus Störmengenzähler des MU.
    #[serde(rename = "Z98")]
    GasNormvolumenStoermengenzaehlerMu,
    /// Gas: Zur Ermittlung des Normvolumens relevante Faktoren sind nicht verfügbar.
    #[serde(rename = "Z99")]
    GasErmittlungNormvolumensRelevanteFaktorenSindNichtVerfuegbar,
    /// Strom / Gas: Uhrzeit war außerhalb der zulässigen Grenzwerte.
    #[serde(rename = "ZA0")]
    StromGasUhrzeitWarAusserhalbZulaessigenGrenzwerte,
    /// Strom / Gas: Energie, Leistung, Volumen, etc. unplausibel.
    #[serde(rename = "ZA1")]
    StromGasEnergieLeistungVolumenEtcUnplausibel,
    /// Falscher Wandlerfaktor
    #[serde(rename = "ZA3")]
    FalscherWandlerfaktor,
    /// Strom / Gas: Fehlerhafte Ablesung incl. Messstellenverwechslung, Zahlendreher, ...
    #[serde(rename = "ZA4")]
    StromGasFehlerhafteAblesungInclMessstellenverwechslungZahlendreher,
    /// Strom / Gas: z. B. Änderung der Berechnungsvorschrift, nachträglich berücksichtigte Zweit- bzw. Untermessung.
    #[serde(rename = "ZA5")]
    StromGasZBAenderungBerechnungsvorschriftNachtraeglichBeruecksichtigte,
    /// Umbau der Messlokation
    #[serde(rename = "ZA6")]
    UmbauMesslokation,
    /// Datenbearbeitungsfehler
    #[serde(rename = "ZA7")]
    Datenbearbeitungsfehler,
    /// Brennwertkorrektur
    #[serde(rename = "ZA8")]
    Brennwertkorrektur,
    /// Z-Zahl-Korrektur
    #[serde(rename = "ZA9")]
    ZZahlKorrektur,
    /// Strom / Gas: Technischer Fehler in der Messeinrichtung.
    #[serde(rename = "ZB0")]
    StromGasTechnischerFehlerMesseinrichtung,
    /// Änderung Tarifschaltzeiten
    #[serde(rename = "ZB9")]
    AenderungTarifschaltzeiten,
    /// Strom: Tarifschaltgerät defekt.
    #[serde(rename = "ZC2")]
    StromTarifschaltgeraetDefekt,
    /// Strom / Gas: Der Wert basiert auf einer unzureichenden Anzahl von Impulsen gemäß der Eichordnung.
    #[serde(rename = "ZC4")]
    StromGasWertBasiertUnzureichendenAnzahlImpulsenEichordnung,
    /// Strom: Energiemenge, die in dem Zeitintervall Ausbau eines Zählers und Einbau eines neuen Zählers anfällt.
    #[serde(rename = "ZJ8")]
    StromEnergiemengeZeitintervallAusbauZaehlersEinbauNeuenZaehlersAnfaellt,
    /// Strom / Gas: Energiemenge, die in dem Zeitintervall Einbau einer mME und erstem Zählerstand aus einem SMGw anfällt.
    #[serde(rename = "ZJ9")]
    StromGasEnergiemengeZeitintervallEinbauMmeErstemZaehlerstandSmgw,
    /// Gas: Während Wartungs-, Revisions- oder Instandsetzungsarbeiten an geeichten Messgeräten stehen keine Messwerte zur Verfügung.
    #[serde(rename = "ZR1")]
    GasWaehrendWartungsRevisionsInstandsetzungsarbeitenGeeichtenMessgeraeten,
    /// Gas: Das Messgerät kennzeichnet seine Messergebnisse als gestörte Werte.
    #[serde(rename = "ZR2")]
    GasMessgeraetKennzeichnetSeineMessergebnisseGestoerteWerte,
    /// Gas: Während Wartungs-, Revisions- oder Instandsetzungsarbeiten an eichrechtskonformen Messgeräten stehen keine Messwerte zur Verfügung.
    #[serde(rename = "ZR3")]
    GasWaehrendWartungsRevisionsInstandsetzungsarbeitenEichrechtskonformen,
    /// Gas: Auf Basis der Prüfungen gemäß G685 Kapitel 2.4 und 2.5 wird ein Messwert als unplausibel erkannt (Konsistenz- und Synchronprüfung).
    #[serde(rename = "ZR4")]
    GasBasisPruefungenG685Kapitel2425MesswertUnplausibelErkannt,
}

/// Code values for the `status_messwertqualitaet_grund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusMesswertqualitaetGrund {
    /// Messwert wurde durch den Kunden am Zähler abgelesen.
    #[serde(rename = "Z83")]
    MesswertWurdeDurchKundenZaehlerAbgelesen,
    /// Leerstand
    #[serde(rename = "Z84")]
    Leerstand,
    /// Realer Zählerüberlauf geprüft
    #[serde(rename = "Z85")]
    RealerZaehlerueberlaufGeprueft,
    /// Plausibel wg. Kontrollablesung
    #[serde(rename = "Z86")]
    PlausibelWgKontrollablesung,
    /// Plausibel wg. Kundenhinweis
    #[serde(rename = "Z87")]
    PlausibelWgKundenhinweis,
    /// Austausch des Ersatzwertes
    #[serde(rename = "ZC3")]
    AustauschErsatzwertes,
    /// Gas: Rechnerisch ermittelter Wert gemäß G685
    #[serde(rename = "ZR5")]
    GasRechnerischErmittelterWertG685,
    /// Wert auf Basis der modernen Messeinrichtung
    #[serde(rename = "ZS2")]
    WertBasisModernenMesseinrichtung,
}

/// Code values for the `status_plausibilisierung_grund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusPlausibilisierungGrund {
    /// Strom: Messwert aus geeichter Vergleichsmessung.
    #[serde(rename = "Z88")]
    StromMesswertGeeichterVergleichsmessung,
    /// Strom: Messwert aus verfügbaren nicht geeichten Geräten (z. B. Analogmessung). Gas: Messwert eines nicht geeichten Messgerätes in der gleichen Messstrecke.
    #[serde(rename = "Z89")]
    StromMesswertVerfuegbarenNichtGeeichtenGeraetenZBAnalogmessungGas,
    /// Gas: Messwert eines geeichten Messgerätes an einem geeigneten, dem Messort möglichst nahen Ort, ggf. unter Berücksichtigung der Zeitverschiebung.
    #[serde(rename = "Z90")]
    GasMesswertGeeichtenMessgeraetesGeeignetenMessortMoeglichstNahenOrt,
    /// Gas: Messwert eines nicht geeichten Messgerätes an einem geeigneten, dem Messort möglichst nahen Ort, ggf. unter Berücksichtigung der Zeitverschiebung.
    #[serde(rename = "Z91")]
    GasMesswertNichtGeeichtenMessgeraetesGeeignetenMessortMoeglichstNahen,
    /// Strom / Gas: Berechnung eines neuen Wertes durch Interpolation.
    #[serde(rename = "Z92")]
    StromGasBerechnungNeuenWertesDurchInterpolation,
    /// Gas: Weiterverwendung des zuletzt gültig gemessenen Wertes.
    #[serde(rename = "Z93")]
    GasWeiterverwendungZuletztGueltigGemessenenWertes,
    /// Gas: Berechnung eines neuen Wertes durch Bilanzierung über einen geschlossenen Netzabschnitt.
    #[serde(rename = "Z94")]
    GasBerechnungNeuenWertesDurchBilanzierungGeschlossenenNetzabschnitt,
    /// Gas: historische Messwerte aus einem geeigneten Zeitabschnitt.
    #[serde(rename = "Z95")]
    GasHistorischeMesswerteGeeignetenZeitabschnitt,
    /// Strom: Vergleichswertverfahren mit Teilschritten Wertebestimmung, Ersatzprofilbestimmung und Skalierung.
    #[serde(rename = "ZJ2")]
    StromVergleichswertverfahrenTeilschrittenWertebestimmung,
    /// Gas: Aufteilung des bekannten Fortschritts des Volumens im Betriebszustand (aus den Zählerständen) über den zu betrachtenden Zeitbereich, ggf. mit Anwendung eines Profils. Stunden, in denen das Volumen im Betriebszustand Null ist, werden nicht berücksichtigt. Berechnung des Volumens im Normzustand mit den besten verfügbaren Werten für Druck, Temperatur und K-Zahl. Berechnung der Energie mit den besten verfügbaren Werten für Druck, Temperatur, K-Zahl und Brennwert.
    #[serde(rename = "ZQ8")]
    GasAufteilungBekanntenFortschrittsVolumensBetriebszustandZaehlerstaenden,
    /// Gas: Verwendung von Messwerten aus dem Störmengenzählwerk bei vorliegender Störung des Hauptzählwerkes.
    #[serde(rename = "ZQ9")]
    GasVerwendungMesswertenStoermengenzaehlwerkVorliegenderStoerung,
    /// Gas: Umgangs- und Korrekturmengen aus Revisionsmaßnahmen.
    #[serde(rename = "ZR0")]
    GasUmgangsKorrekturmengenRevisionsmassnahmen,
    /// Strom / Gas: bei einer 1:N Beziehung zwischen Markt- und Messlokation können auf Ebene der Messlokation verschiedene Ersatzwertbildungsverfahren verwendet werden, sodass auf Ebene der Marktlokation auf die Ersatzwerbildungsverfahren der bereits übermittelten Werte der Messlokation verwiesen wird.
    #[serde(rename = "ZS0")]
    StromGas1NBeziehungMarktMesslokationKoennenEbeneMesslokation,
}

/// Code values for the `status_verbrauch` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusVerbrauch {
    /// Zählerstand zum Beginn der angegebenen Energiemenge vorhanden und kommuniziert
    #[serde(rename = "Z36")]
    ZaehlerstandBeginnAngegebenenEnergiemengeVorhandenKommuniziert,
    /// Zählerstand zum Ende der angegebenen Energiemenge vorhanden und kommuniziert
    #[serde(rename = "Z37")]
    ZaehlerstandEndeAngegebenenEnergiemengeVorhandenKommuniziert,
    /// Zählerstand zum Beginn der angegebenen Energiemenge nicht vorhanden da Mengenabgrenzung
    #[serde(rename = "Z38")]
    ZaehlerstandBeginnAngegebenenEnergiemengeNichtVorhandenMengenabgrenzung,
    /// Zählerstand zum Ende der angegebenen Energiemenge nicht vorhanden da Mengenabgrenzung
    #[serde(rename = "Z39")]
    ZaehlerstandEndeAngegebenenEnergiemengeNichtVorhandenMengenabgrenzung,
}

/// Code values for the `status_z35` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusZ35 {
    /// Erzeugende Marktlokation
    #[serde(rename = "ZW3")]
    ErzeugendeMarktlokation,
    /// Tranche
    #[serde(rename = "ZW5")]
    Tranche,
}

/// Code values for the `status_z35_ebdnummer2` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StatusZ35Ebdnummer2 {
    /// EBD Nr. E_0624
    #[serde(rename = "E_0624")]
    EbdNrE0624,
    /// Codeliste Gas Nr. G_0009
    #[serde(rename = "G_0009")]
    CodelisteGasNrG0009,
}

/// Code values for the `steuer_funktion_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum SteuerFunktionCode {
    /// Steuer
    #[serde(rename = "7")]
    Steuer,
}

/// Code values for the `syntax_fehler_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum SyntaxFehlerCode {
    /// Mitteilung, dass ein mit M oder R gekennzeichnetes Nutzdaten-Segment fehlt.
    #[serde(rename = "13")]
    MitteilungDassMRGekennzeichnetesServiceNutzdatenSegmentDatenelement,
    /// Mitteilung, dass der Empfänger die Verwendung des Typs von Segment, an der identifizierten Position nicht unterstützt.
    #[serde(rename = "15")]
    MitteilungDassEmpfaengerVerwendungTypsSegmentIdentifiziertenPosition,
    /// Mitteilung, dass das identifizierte Segment zu viele Datenelemente oder Datenelementgruppen enthält.
    #[serde(rename = "16")]
    MitteilungDassIdentifizierteSegmentVieleDatenelementeIdentifizierte,
    /// Mitteilung, dass die in der Übertragungsdatei verwendeten Service-Zeichen nicht als Service-Zeichen gültig sind. Diese Zeichen werden entweder im UNA angezeigt oder nach der in UNB angezeigten Syntax-Kennung definiert oder in einer Datenaustauschvereinbarung definiert. Wenn dieser Code in den Segmenten UCS oder UCD verwendet wird, folgt das ungültige Zeichen unmittelbar dem identifizierten Teil der Übertragungsdatei.
    #[serde(rename = "22")]
    MitteilungDassUebertragungsdateiVerwendetenServiceZeichenNichtService,
    /// Mitteilung, dass ein Segment zu oft wiederholt wurde.
    #[serde(rename = "35")]
    MitteilungDassSegmentOftWiederholtWurde,
    /// Mitteilung, dass eine Segmentgruppe zu oft wiederholt wurde.
    #[serde(rename = "36")]
    MitteilungDassSegmentgruppeOftWiederholtWurde,
}

/// Code values for the `termin_nna_format` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum TerminNnaFormat {
    /// MMWW-MMWW
    #[serde(rename = "104")]
    MmwwMmww,
    /// MMDD
    #[serde(rename = "106")]
    Mmdd,
}

/// Code values for the `text_referenz_abo` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum TextReferenzAbo {
    /// Ergänzte Marktlokation
    #[serde(rename = "Z03")]
    ErgaenzteMarktlokation,
    /// Änderung vorhanden
    #[serde(rename = "Z05")]
    AenderungVorhanden,
}

/// Code values for the `textbezug` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Textbezug {
    /// Fehlerbeschreibung (Freier Text)
    #[serde(rename = "AAO")]
    FehlerbeschreibungFreierText,
    /// Antwort (Freier Text)
    #[serde(rename = "AAP")]
    AntwortFreierText,
    /// Information über Abweichung
    #[serde(rename = "ABO")]
    InformationAbweichung,
    /// Zusätzliche Informationen (für allgemeine Hinweise)
    #[serde(rename = "ACB")]
    ZusaetzlicheInformationenAllgemeineHinweise,
    /// Begründung
    #[serde(rename = "ACD")]
    Begruendung,
    /// Information zum Zählerstand
    #[serde(rename = "ADM")]
    InformationZaehlerstand,
    /// Profilbeschreibung
    #[serde(rename = "Z01")]
    Profilbeschreibung,
    /// Ortsangabe des AHB-Fehlers
    #[serde(rename = "Z02")]
    OrtsangabeAhbFehlers,
    /// Werte zu hoch im angegebenen Zeitintervall
    #[serde(rename = "Z04")]
    WerteHochAngegebenenZeitintervall,
    /// Werte zu niedrig im angegebenen Zeitintervall
    #[serde(rename = "Z05")]
    WerteNiedrigAngegebenenZeitintervall,
    /// Werte fehlen im angegebenen Zeitintervall
    #[serde(rename = "Z06")]
    WerteFehlenAngegebenenZeitintervall,
    /// Übersicht der Definition fehlt
    #[serde(rename = "Z07")]
    UebersichtDefinitionFehlt,
    /// Übersicht der Definition ist unplausibel
    #[serde(rename = "Z08")]
    UebersichtDefinitionUnplausibel,
    /// Ausgerollte Definition fehlt
    #[serde(rename = "Z09")]
    AusgerollteDefinitionFehlt,
    /// Ausgerollte Definition ist unplausibel
    #[serde(rename = "Z10")]
    AusgerollteDefinitionUnplausibel,
    /// Internetseite
    #[serde(rename = "Z13")]
    Internetseite,
    /// Enthaltene Abschläge
    #[serde(rename = "Z14")]
    EnthalteneAbschlaege,
    /// Gericht und Handelsregister-Nummer
    #[serde(rename = "Z15")]
    GerichtHandelsregisterNummer,
    /// Positionsnummern aus dem Angebot
    #[serde(rename = "Z16")]
    PositionsnummernAngebot,
    /// Zieladresse URI
    #[serde(rename = "Z17")]
    ZieladresseUri,
    /// IP-Adresse für das CLS-Device
    #[serde(rename = "Z18")]
    IpAdresseClsDevice,
    /// Konfiguration wirkt nicht
    #[serde(rename = "Z19")]
    KonfigurationWirktNicht,
    /// Konfiguration wirkt teilweise
    #[serde(rename = "Z20")]
    KonfigurationWirktTeilweise,
    /// Werte werden nicht nach Vorgaben übermittelt
    #[serde(rename = "Z21")]
    WerteWerdenNichtVorgabenUebermittelt,
    /// Zertifikatsnutzer (Subject)
    #[serde(rename = "Z23")]
    ZertifikatsnutzerSubject,
    /// Aussteller (Issuer)
    #[serde(rename = "Z24")]
    AusstellerIssuer,
    /// IP-Adresse des Absenders
    #[serde(rename = "Z27")]
    IpAdresseAbsenders,
    /// IP-Range des Absenders
    #[serde(rename = "Z28")]
    IpRangeAbsenders,
    /// Endpunkt-Adresse (IP:Port)
    #[serde(rename = "Z29")]
    EndpunktAdresseIpPort,
    /// Zertifikatsinformationen
    #[serde(rename = "Z30")]
    Zertifikatsinformationen,
    /// WakeUp Port
    #[serde(rename = "Z31")]
    WakeupPort,
    /// APN-Kommunikationsdaten
    #[serde(rename = "Z32")]
    ApnKommunikationsdaten,
    /// APN-Kommunikationsdaten-Zugriffsparameter
    #[serde(rename = "Z33")]
    ApnKommunikationsdatenZugriffsparameter,
}

/// Code values for the `transaktionsgrund` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Transaktionsgrund {
    /// Kunde verlässt eine schon bestehende Marktlokation
    #[serde(rename = "E01")]
    KundeVerlaesstBestehendeMarktlokation,
    /// Kunde bezieht erstmals eine Marktlokation (z. B. Neubau)
    #[serde(rename = "E02")]
    KundeBeziehtErstmalsMarktlokationZBNeubau,
    /// - Kunde bleibt an der Marktlokation, hat nur den Marktpartner gewechselt - Marktpartner hat den Kunden gekündigt
    #[serde(rename = "E03")]
    KundeBleibtMarktlokationMarktpartnerGewechseltMarktpartnerKunden,
    /// Dient dem Rückruf von abgegebenen Meldungen
    #[serde(rename = "E05")]
    DientRueckrufAbgegebenenMeldungen,
    /// Ersatzbelieferung
    #[serde(rename = "E06")]
    Ersatzbelieferung,
    /// Kündigung Lieferantenrahmenvertrag
    #[serde(rename = "Z02")]
    KuendigungLieferantenrahmenvertrag,
    /// Zusätzlicher Datensatz
    #[serde(rename = "Z15")]
    ZusaetzlicherDatensatz,
    /// Der NB informiert den LFN darüber, dass zum gewünschten Anmeldedatum noch ein anderer LFA der Marktlokation zugeordnet ist und deshalb eine Abmeldeanfrage an den LFA stellt.
    #[serde(rename = "Z26")]
    NbInformiertLfnDarueberDassGewuenschtenAnmeldedatumAndererLfa,
    /// Kunde zieht aus der Marktlokation aus und die Marktlokation wird stillgelegt (bei allen anderen Auszügen ist E01 zu verwenden)
    #[serde(rename = "Z33")]
    KundeZiehtMarktlokationMarktlokationStillgelegtAllenAnderenAuszuegenE01,
    /// Beim NB liegt nur eine Auszugsmeldung für die Marktlokation vor. Es erfolgt seitens des NB anschließend eine Meldung der Marktlokation an den E/G.
    #[serde(rename = "Z36")]
    BeimNbLiegtAuszugsmeldungMarktlokationVorEsErfolgtSeitensNb,
    /// Beim NB liegt eine neue Marktlokation ohne Lieferantenzuordnung vor. Daher erfolgt eine Meldung an den zuständigen LF für die EoG.
    #[serde(rename = "Z37")]
    BeimNbLiegtNeueMarktlokationOhneLieferantenzuordnungVorDaherErfolgt,
    /// Ein erstellter vorübergehender Anschluss wird aufgrund von fehlendem LF dem zuständigen LF für die EoG gemeldet.
    #[serde(rename = "Z39")]
    ErstellterVoruebergehenderAnschlussAufgrundFehlendemLfZustaendigenLfEog,
    /// Wird für den Prozess Geschäftsdatenanfrage benutzt.
    #[serde(rename = "Z40")]
    ProzessGeschaeftsdatenanfrageBenutzt,
    /// Verstreicht die gesetzliche 3 Monatsfrist der Ersatzversorgung ohne Aufnahme der Folgelieferung durch einen Lieferanten, kann der zuständigen LF die Marktlokation mit diesem Transaktionsgrund abmelden.
    #[serde(rename = "Z41")]
    VerstreichtGesetzliche3MonatsfristErsatzversorgungOhneAufnahme,
    /// Wiederinbetriebnahme
    #[serde(rename = "Z69")]
    Wiederinbetriebnahme,
    /// Stammdaten BK-Treue
    #[serde(rename = "ZAM")]
    StammdatenBkTreue,
    /// Korrektur Abrechnungsdaten BK-Abrechnung verbrauchender MaLo
    #[serde(rename = "ZAN")]
    KorrekturAbrechnungsdatenBkAbrechnungVerbrauchenderMalo,
    /// Korrektur Abrechnungsdaten BK-Abrechnung erzeugender MaLo
    #[serde(rename = "ZAO")]
    KorrekturAbrechnungsdatenBkAbrechnungErzeugenderMalo,
    /// ruhende Marktlokation
    #[serde(rename = "ZAP")]
    RuhendeMarktlokation,
    /// EoG aus Bilanzkreisschließung
    #[serde(rename = "ZC6")]
    EogBilanzkreisschliessung,
    /// EoG aufgrund Erlöschen der Zuordnungsermächtigung
    #[serde(rename = "ZC7")]
    EogAufgrundErloeschenZuordnungsermaechtigung,
    /// Beendigung der Zuordnung
    #[serde(rename = "ZC8")]
    BeendigungZuordnung,
    /// Es wird unverzüglich eine Korrektur der Zuordnungsliste vom LF an den NB versendet, mit dem abweichenden Inhalt der eingegangenen bzw. bestätigten Einzelmeldungen zu der Marktlokation. Die einzelnen Vorgänge können zu einer Fehlerkorrektur-Nachricht zusammengefasst werden.
    #[serde(rename = "ZD0")]
    EsUnverzueglichKorrekturZuordnungslisteLfNbVersendetAbweichendenInhalt,
    /// Der NB verzichtet bei Zuordnung der Marktlokation zum E/G auf die Namensprüfung und sendet eine Abmeldeanfrage an den E/G
    #[serde(rename = "ZD2")]
    NbVerzichtetZuordnungMarktlokationEGNamenspruefungSendetAbmeldeanfrageE,
    /// ZD9 wird angewendet in der Informationsmeldung des NB an den LF innerhalb der „GPKE“. Diese Meldung wird verwendet, wenn der EEG- bzw. KWK-G-Anlagenbetreiber über das entsprechende Formular 100% seiner Anlage wieder in die gesetzliche Förderung überführt hat.
    #[serde(rename = "ZD9")]
    Zd9AngewendetInformationsmeldungNbLfInnerhalbGpkeDieseMeldungVerwendet,
    /// Stammdatenänderung
    #[serde(rename = "ZE3")]
    Stammdatenaenderung,
    /// Weggefallene Markt- bzw. Messlokation
    #[serde(rename = "ZE4")]
    WeggefalleneMarktMesslokation,
    /// Initialmeldung
    #[serde(rename = "ZE5")]
    Initialmeldung,
    /// Nicht bila.rel. Änderung vom LF
    #[serde(rename = "ZE6")]
    NichtBilaRelAenderungLf,
    /// Nicht bila.rel. Änderung vom NB
    #[serde(rename = "ZE7")]
    NichtBilaRelAenderungNb,
    /// Änderung vom MSB mit Abhängigkeiten
    #[serde(rename = "ZE8")]
    AenderungMsbAbhaengigkeiten,
    /// Bila.rel. Änderung vom LF
    #[serde(rename = "ZE9")]
    BilaRelAenderungLf,
    /// Bila.rel. Änderung vom NB mit Abhängigkeiten
    #[serde(rename = "ZF0")]
    BilaRelAenderungNbAbhaengigkeiten,
    /// Nicht bila.rel. Anfrage an LF
    #[serde(rename = "ZF3")]
    NichtBilaRelAnfrageLf,
    /// Nicht bila.rel. Anfrage an NB
    #[serde(rename = "ZF4")]
    NichtBilaRelAnfrageNb,
    /// Anfrage an MSB mit Abhängigkeiten
    #[serde(rename = "ZF5")]
    AnfrageMsbAbhaengigkeiten,
    /// Bila.rel. Anfrage an LF
    #[serde(rename = "ZF6")]
    BilaRelAnfrageLf,
    /// Bila.rel. Anfrage an NB ohne Abhängigkeiten
    #[serde(rename = "ZF7")]
    BilaRelAnfrageNbOhneAbhaengigkeiten,
    /// Bila.rel. Anfrage an NB mit Abhängigkeiten
    #[serde(rename = "ZF8")]
    BilaRelAnfrageNbAbhaengigkeiten,
    /// Aufhebung einer zukünftigen Zuordnung aufgrund §38 EEG 2014 bzw. § 21b Abs. 1 Nr. 2 EEG 2017
    #[serde(rename = "ZG5")]
    AufhebungZukuenftigenZuordnungAufgrundParagraph38Eeg2014Paragraph21bAbs,
    /// Beendigung der Zuordnung aufgrund EEG 2014 §38
    #[serde(rename = "ZG6")]
    BeendigungZuordnungAufgrundEeg2014Paragraph38,
    /// Änderung vom MSB ohne Abhängigkeiten
    #[serde(rename = "ZG7")]
    AenderungMsbOhneAbhaengigkeiten,
    /// Anfrage an MSB ohne Abhängigkeiten
    #[serde(rename = "ZG8")]
    AnfrageMsbOhneAbhaengigkeiten,
    /// Aufhebung einer zukünftigen Zuordnung wegen Auszug des Kunden
    #[serde(rename = "ZG9")]
    AufhebungZukuenftigenZuordnungWegenAuszugKunden,
    /// Aufhebung einer zukünftigen Zuordnung wegen Anmeldung eines anderen Lieferanten zu einem früheren Termin
    #[serde(rename = "ZH0")]
    AufhebungZukuenftigenZuordnungWegenAnmeldungAnderenLieferantenFrueheren,
    /// Aufhebung einer zukünftigen Zuordnung wegen Stilllegung
    #[serde(rename = "ZH1")]
    AufhebungZukuenftigenZuordnungWegenStilllegung,
    /// Vertrag zwischen Absender des Geschäftsvorfalls und Kunde wurde aufgehoben, wird z. B. verwendet wenn der Kunde den Vertrag widerruft.
    #[serde(rename = "ZH2")]
    VertragAbsenderGeschaeftsvorfallsKundeWurdeAufgehobenZBVerwendetKunde,
    /// Änderung der komplexen Marktlokationsstruktur
    #[serde(rename = "ZI9")]
    AenderungKomplexenMarktlokationsstruktur,
    /// Anfrage der Lokationsbündelstruktur
    #[serde(rename = "ZJ0")]
    AnfrageLokationsbuendelstruktur,
    /// Anfrage der komplexen Marktlokationsstruktur
    #[serde(rename = "ZJ1")]
    AnfrageKomplexenMarktlokationsstruktur,
    /// Übernahme aufgrund nicht erfolgtem iMS-Einbau
    #[serde(rename = "ZJ4")]
    UebernahmeAufgrundNichtErfolgtemImsEinbau,
    /// Stammdaten
    #[serde(rename = "ZP3")]
    Stammdaten,
    /// Werte
    #[serde(rename = "ZP4")]
    Werte,
    /// Abmeldung wg. fehl. Zuordnungsermächtigung
    #[serde(rename = "ZQ7")]
    AbmeldungWgFehlZuordnungsermaechtigung,
    /// Kündigung aufgrund Vertrag mit Anschlussnehmer
    #[serde(rename = "ZR9")]
    KuendigungAufgrundVertragAnschlussnehmer,
    /// Abmeldung wegen fehl. Zuordnungsermächtigung aufgrund Änderung ZRT
    #[serde(rename = "ZT0")]
    AbmeldungWegenFehlZuordnungsermaechtigungAufgrundAenderungZrt,
    /// Anzuwenden wenn Ende wegen Kündigung durch bislang beliefernden LF (LFA)
    #[serde(rename = "ZT4")]
    AnzuwendenEndeWegenKuendigungDurchBislangBelieferndenLfLfaEntsteht,
    /// Anzuwenden wenn Ende wegen - Kündigung durch den Kunden, - Kündigung durch LFN, - Keine Kündigung des Vertrages notwendig da Vertrag nur auf bestimmte Zeit gelaufen ist und von alleine ausläuft und - Kündigung durch Dritten z.B. unabhängige Berater
    #[serde(rename = "ZT5")]
    AnzuwendenEndeWegenKuendigungDurchKundenKuendigungDurchLfnKeine,
    /// EoG wegen Kündigung durch LF
    #[serde(rename = "ZT6")]
    EogWegenKuendigungDurchLf,
    /// EoG wegen Kündigung durch Kunde/LFN
    #[serde(rename = "ZT7")]
    EogWegenKuendigungDurchKundeLfn,
    /// Änderung von MSB Abrechnungsdaten
    #[serde(rename = "ZU1")]
    AenderungMsbAbrechnungsdaten,
    /// Der LFN wird einer Marktlokation vollständig zugeordnet (vollständige (100%ige) Zuordnung). Dieser Geschäftsvorfall ist auch für die Änderung von einer tranchierten Marktlokation in eine nicht tranchierte Marktlokation anzuwenden.
    #[serde(rename = "ZW0")]
    LfnMarktlokationVollstaendigZugeordnetVollstaendige100IgeZuordnungDieser,
    /// Der LFN wird einer bestehenden Tranche vollständig zugeordnet (vollständige (100%ige) Zuordnung). Dieser Geschäftsvorfall ist bei einem direkten Übergang, d. h. lückenlosem Zuordnungsende und -beginn und unter Beibehaltung der Tranche, anzuwenden.
    #[serde(rename = "ZW1")]
    LfnBestehendenTrancheVollstaendigZugeordnetVollstaendige100IgeZuordnung,
    /// Der LFN wird einer neu zu bildenden Tranche zugeordnet (anteiliger Zuordnungsvorgang unter Bildung neuer Tranchen
    #[serde(rename = "ZW2")]
    LfnNeuBildendenTrancheZugeordnetAnteiligerZuordnungsvorgangBildungNeuer,
    /// Erzeugende Marktlokation
    #[serde(rename = "ZW3")]
    ErzeugendeMarktlokation,
    /// Verbrauchende Marktlokation
    #[serde(rename = "ZW4")]
    VerbrauchendeMarktlokation,
    /// Tranche
    #[serde(rename = "ZW5")]
    Tranche,
    /// Pauschale Marktlokation
    #[serde(rename = "ZW6")]
    PauschaleMarktlokation,
    /// Gemessene Marktlokation
    #[serde(rename = "ZW7")]
    GemesseneMarktlokation,
    /// Fall 1
    #[serde(rename = "ZW8")]
    Fall1,
    /// Fall 2
    #[serde(rename = "ZW9")]
    Fall2,
    /// Fall 3
    #[serde(rename = "ZX0")]
    Fall3,
    /// Fall 4
    #[serde(rename = "ZX1")]
    Fall4,
    /// Abrechnungsdaten BK-Abrechnung erzeugender Malo
    #[serde(rename = "ZX2")]
    AbrechnungsdatenBkAbrechnungErzeugenderMalo,
    /// Abrechnungsdaten BK-Abrechnung verbrauchender MaLo
    #[serde(rename = "ZX3")]
    AbrechnungsdatenBkAbrechnungVerbrauchenderMalo,
    /// Abrechnungsdaten NNA
    #[serde(rename = "ZX4")]
    AbrechnungsdatenNna,
    /// Änderung Blindabrechnungsdaten der NeLo
    #[serde(rename = "ZX5")]
    AenderungBlindabrechnungsdatenNelo,
    /// Änderung Daten der MaLo
    #[serde(rename = "ZX6")]
    AenderungDatenMalo,
    /// Änderung Daten der MeLo
    #[serde(rename = "ZX7")]
    AenderungDatenMelo,
    /// Änderung Daten der NeLo
    #[serde(rename = "ZX8")]
    AenderungDatenNelo,
    /// Änderung Daten der SR
    #[serde(rename = "ZX9")]
    AenderungDatenSr,
    /// Änderung Daten der TR
    #[serde(rename = "ZY0")]
    AenderungDatenTr,
    /// Änderung Daten der Tranche
    #[serde(rename = "ZY1")]
    AenderungDatenTranche,
    /// Änderung der Lokationsbündelstruktur
    #[serde(rename = "ZY2")]
    AenderungLokationsbuendelstruktur,
    /// Antwort auf GDA an MSB
    #[serde(rename = "ZY4")]
    AntwortGdaMsb,
    /// Antwort auf GDA (Strom an Gas)
    #[serde(rename = "ZY5")]
    AntwortGdaStromGas,
    /// Antwort auf GDA erzeugende MaLo
    #[serde(rename = "ZY6")]
    AntwortGdaErzeugendeMalo,
    /// Antwort auf GDA verbrauchende MaLo
    #[serde(rename = "ZY7")]
    AntwortGdaVerbrauchendeMalo,
    /// Daten auf individuelle Bestellung
    #[serde(rename = "ZY9")]
    DatenIndividuelleBestellung,
    /// Änderung Paket-ID der MaLo
    #[serde(rename = "ZZA")]
    AenderungPaketIdMalo,
    /// Die Stilllegung der MeLo hat auch die Stilllegung einer MaLo zur Folge (Dieser Code wird erst zum 1.4.2026 gültig und wird davor in der Marktkommunikation nicht ausgetauscht)
    #[serde(rename = "ZZB")]
    StilllegungMeloStilllegungMaloFolgeDieserCodeErst142026GueltigDavor,
    /// Die Stilllegung der MeLo hat keine Stilllegung einer MaLo zur Folge (Dieser Code wird erst zum 1.4.2026 gültig und wird davor in der Marktkommunikation nicht ausgetauscht)
    #[serde(rename = "ZZC")]
    StilllegungMeloKeineStilllegungMaloFolgeDieserCodeErst142026Gueltig,
    /// Übergangsversorgung gibt es nur bei Marktlokationen, die unter § 38a EnWG fallen. Grundlage ist eine bilaterale Vereinbarung. (Dieser Code wird erst zum 1.4.2026 gültig und wird davor in der Marktkommunikation nicht ausgetauscht)
    #[serde(rename = "ZZD")]
    UebergangsversorgungGibtEsMarktlokationenParagraph38aEnwgFallenGrundlage,
}

/// Code values for the `uebermittelbarkeit` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Uebermittelbarkeit {
    /// Der LF bzw. NB übermittelt die ausgerollte Schaltzeitdefinition per EDIFACT mit dem Nachrichtenformat UTILTS.
    #[serde(rename = "Z23")]
    LfNbUebermitteltAusgerollteZaehlzeitdefinitionPerEdifactNachrichtenformat,
    /// Der LF bzw. NB übermittelt die ausgerollte Schaltzeitdefinition auf einem bilateral vereinbarten Weg. Dieser Weg wird hier nicht weiter beschrieben.
    #[serde(rename = "Z24")]
    LfNbUebermitteltAusgerollteZaehlzeitdefinitionBilateralVereinbartenWeg,
}

/// Code values for the `validierung_status` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ValidierungStatus {
    /// Wärmepumpe
    #[serde(rename = "Z29")]
    Waermepumpe,
    /// Nachtspeicherheizung
    #[serde(rename = "Z30")]
    Nachtspeicherheizung,
    /// Schwachlastzeitfenster
    #[serde(rename = "Z31")]
    Schwachlastzeitfenster,
    /// sonstiger Zählzeitdefinitionstyp
    #[serde(rename = "Z32")]
    SonstigerZaehlzeitdefinitionstyp,
    /// Hochlastzeitfenster
    #[serde(rename = "Z35")]
    Hochlastzeitfenster,
}

/// Code values for the `verbindlich_masseinheit` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum VerbindlichMasseinheit {
    /// Stück
    #[serde(rename = "H87")]
    Stueck,
}

/// Code values for the `volumenerfassung.wert` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum VolumenerfassungWert {
    /// Hochfrequenzsonde
    #[serde(rename = "Z16")]
    Hochfrequenzsonde,
    /// Kennlinienkorrektur
    #[serde(rename = "Z17")]
    Kennlinienkorrektur,
    /// Schleichmengenunterdrückung
    #[serde(rename = "Z18")]
    Schleichmengenunterdrueckung,
}

/// Code values for the `waehrung_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum WaehrungQualifier {
    /// Referenzwährung
    #[serde(rename = "2")]
    Referenzwaehrung,
}

/// Code values for the `wertebereich_qualifier` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum WertebereichQualifier {
    /// jährlicher Mengenbereich
    #[serde(rename = "10")]
    JaehrlicherMengenbereich,
    /// verbindliche Mengenangabe
    #[serde(rename = "Z03")]
    VerbindlicheMengenangabe,
    /// unverbindliche Mengenangabe
    #[serde(rename = "Z04")]
    UnverbindlicheMengenangabe,
}

/// Code values for the `zahler_blindarbeit` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ZahlerBlindarbeit {
    /// Der NB rechnet die Blindarbeit gegenüber dem Anschlussnutzer ab.
    #[serde(rename = "Z36")]
    NbRechnetBlindarbeitGegenueberAnschlussnutzer,
    /// Der NB rechnet die Blindarbeit gegenüber dem Lieferanten ab.
    #[serde(rename = "Z37")]
    NbRechnetBlindarbeitGegenueberLieferanten,
    /// Der NB hat noch nicht festgelegt gegenüber wem er die Blindarbeit abrechnet.
    #[serde(rename = "Z38")]
    NbNichtFestgelegtGegenueberWemErBlindarbeitAbrechnet,
}

/// Code values for the `zahlung_netznutzung` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ZahlungNetznutzung {
    /// Kunde
    #[serde(rename = "Z10")]
    Kunde,
    /// Lieferant
    #[serde(rename = "Z11")]
    Lieferant,
}

/// Code values for the `zeiteinheit` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Zeiteinheit {
    /// Jahr
    #[serde(rename = "ANN")]
    Jahr,
    /// Tag
    #[serde(rename = "DAY")]
    Tag,
    /// Kilowattstunde
    #[serde(rename = "KWH")]
    Kilowattstunde,
    /// Monat
    #[serde(rename = "MON")]
    Monat,
}

/// Code values for the `zeitpunkt_format` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ZeitpunktFormat {
    /// CCYYMMDDHHMMZZZ
    #[serde(rename = "303")]
    Ccyymmddhhmmzzz,
    /// HHMM
    #[serde(rename = "401")]
    Hhmm,
}

/// Code values for the `zu_abschlag_code` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ZuAbschlagCode {
    /// Abschlag
    #[serde(rename = "A")]
    Abschlag,
    /// Zuschlag
    #[serde(rename = "C")]
    Zuschlag,
}

/// Code values for the `zusatz_produkt_identifikation.typ` field.
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ZusatzProduktIdentifikationTyp {
    /// Artikel-ID
    #[serde(rename = "Z09")]
    ArtikelId,
    /// Gruppenartikel-ID
    #[serde(rename = "Z10")]
    GruppenartikelId,
}

// ---------------------------------------------------------------------------
// Type aliases for deduplicated enums
// ---------------------------------------------------------------------------

pub type Abrechnungsmethode = PaketId;
pub type AntwortCodelisteCode = EbdNummer;
pub type AntwortDritterCodelisteCode = StatusZ35Ebdnummer2;
pub type AntwortDritterPruefschritt = StatusZ35;
pub type AntwortEbdCodeliste = EbdNummer;
pub type AntwortKategorie = StatusKategorie;
pub type AntwortPruefschritt = PruefschrittCode;
pub type AntwortStatusAnlass = PruefschrittCode;
pub type ArtLeistungserbringung = EigenschaftMsb;
pub type Artikelnummertyp = ArtikelNummerTyp;
pub type AuftragsdatumFormat = EndeDatumFormat;
pub type BeginnDatumFormat = EndeDatumFormat;
pub type BegruendungReferenzCode = ReferenzCode;
pub type BerichtszeitraumFormat = EndeDatumFormat;
pub type Beschreibung = Abonnement;
pub type Bilanzierungsgebiet = PaketId;
pub type BilanzierungsgebietWert = ZahlungNetznutzung;
pub type Bilanzkreis = PaketId;
pub type Dokumententyp = Dokumenttyp;
pub type EbdNummer2 = EbdNummer;
pub type FernsteuerbarkeitStatus = KavGruppe;
pub type FreitextQualifier = Textbezug;
pub type GeldbetragQualifier = BetragQualifier;
pub type GeraetereferenzQualifier = ExRefName;
pub type Handlungscode = HandlungCode;
pub type Haushaltskunde = PaketId;
pub type Identifikationsformat = Beschreibungsformat;
pub type IdentifikationslogikCode = Abonnement;
pub type KavZusatzinfo = KavBetrag;
pub type KlassentypCode = Klassentyp;
pub type KlimazoneId = PaketId;
pub type KlimazoneKlasse = Klassentyp;
pub type KommEinrichtungKlasse = Klassentyp;
pub type Kommunikationsart = KommunikationArt;
pub type Kommunikationstyp = KommunikationArt;
pub type Kommunikationstyp1 = KommunikationArt;
pub type Kommunikationstyp2 = KommunikationArt;
pub type KontaktFunktion = Funktionscode;
pub type KontaktFunktionCode = Funktionscode;
pub type Kontaktfunktion = Funktionscode;
pub type KonzessionKlasse = Klassentyp;
pub type KonzessionMerkmal = PaketId;
pub type KuendigungsdatumQualifier = DatumQualifier;
pub type LandDerFoerderung = PaketId;
pub type LokationsQualifier = LocQualifier;
pub type MarktpartnerZuordnung = MsbEigenschaft;
pub type MengenQualifier = MengeQualifier;
pub type MengenumwerterKlasse = Klassentyp;
pub type MerkmalCode = PaketId;
pub type MerkmalDatenWert = KavBetrag;
pub type MerkmalDatenWert2 = KavBetrag;
pub type MerkmalDatenWert3 = KavBetrag;
pub type MerkmalDatenWert4 = KavBetrag;
pub type MerkmalDatenWert5 = KavBetrag;
pub type MerkmalDatenWert6 = KavBetrag;
pub type MerkmalEigenschaft = KavBetrag;
pub type MerkmalEigenschaft2 = KavBetrag;
pub type MerkmalKlasse = Klassentyp;
pub type MerkmalQualifier0 = KavGruppe;
pub type MerkmalQualifier1 = KavGruppe;
pub type MerkmalQualifier2 = KavGruppe;
pub type MerkmalQualifier3 = KavGruppe;
pub type MerkmalQualifier4 = KavGruppe;
pub type MerkmalQualifier5 = KavGruppe;
pub type MerkmalQualifier6 = KavGruppe;
pub type MerkmalQualifier7 = KavGruppe;
pub type MerkmalQualifier8 = KavGruppe;
pub type MerkmalText = KavBetrag;
pub type MerkmalText2 = KavBetrag;
pub type MerkmalTyp = Klassentyp;
pub type MerkmalWert = KavGruppe;
pub type MerkmalWert2 = KavGruppe;
pub type MerkmalWert3 = KavGruppe;
pub type MerkmalWert4 = KavGruppe;
pub type MerkmalWert5 = KavGruppe;
pub type MerkmalWert6 = KavGruppe;
pub type MesslokationRefQualifier = ExRefName;
pub type MesswertQualifier = MengeQualifier;
pub type NaechsteNetznutzungsabrechnungFormat = NnaFormat;
pub type Netznutzungsvertrag = MarktgebietWert;
pub type OrtQualifier = LocQualifier;
pub type Privilegierungsgrund2 = KavGruppe;
pub type ProduktCode = Abonnement;
pub type ProduktIdentifikationId = ObisIdentifikationId;
pub type ProduktIdentifikationQualifier = ProduktIdentifikationFunktion;
pub type ProduktIdentifikationTyp = ObisIdentifikationTyp;
pub type ProduktLeistungCode = Abonnement;
pub type ProdukteigenschaftKlasse = Klassentyp;
pub type Profilschar = KavGruppe;
pub type Prognosegrundlage = PaketId;
pub type PrognosegrundlageCode = KavGruppe;
pub type PruefschrittCode2 = PruefschrittCode;
pub type Rechnungstyp = Abonnement;
pub type ReferenzQualifier = ExRefName;
pub type ReferenzTyp = ExRefName;
pub type Regelzone = PaketId;
pub type Reklamationsgrund = Textbezug;
pub type RffQualifierGeraet = ExRefName;
pub type Schalthandlung = PaketId;
pub type SequenzQualifier = SeqQualifier;
pub type SmgwKlasse = Klassentyp;
pub type Standardlastprofil = KavGruppe;
pub type StandardlastprofilVerfahren = PaketId;
pub type StatusZ35Transaktionsgrund2 = StatusZ35;
pub type TagesparameterProfil = KavGruppe;
pub type TagesparameterVerfahren = PaketId;
pub type TerminNetznutzungsabrechnungFormat = TerminNnaFormat;
pub type TermindatenQualifier = ExRefName;
pub type TextQualifier = Textbezug;
pub type TransaktionsgrundDetail = Transaktionsgrund;
pub type TransaktionsgrundErgaenzung = Transaktionsgrund;
pub type TransaktionsgrundErgaenzungBefristeteAnmeldung = Transaktionsgrund;
pub type TransaktionsgrundLieferende = Transaktionsgrund;
pub type TransaktionsgrundReferenz = Transaktionsgrund;
pub type TurnusablesungFormat = TerminNnaFormat;
pub type UmsetzungsgradKlasse = Klassentyp;
pub type UmsetzungsgradPrioritaet = KavGruppe;
pub type UnverbindlichMasseinheit = VerbindlichMasseinheit;
pub type ValidierungStatusZusatz = ValidierungStatus;
pub type Verwendungszweck = KavGruppe;
pub type Waehrungsverwendung = WaehrungQualifier;
pub type Wertegranularitaet = KavGruppe;
pub type WertegranularitaetKlasse = Klassentyp;
pub type ZaehlerCciKlasse = Klassentyp;
pub type Zaehlerart = KavGruppe;
pub type Zaehlertyp = KavBetrag;
pub type ZaehlertypMerkmal = PaketId;
pub type ZahlungsbedingungCode = ProzentQualifier;
pub type ZeitraumQualitaet = ExRefName;
pub type ZeitreihenCode = KavGruppe;
pub type Zeitreihentyp = PaketId;
pub type ZugeordneterMp = KavGruppe;
pub type ZugeordneterMpLokationstyp = MsbEigenschaft;
pub type ZugeordneterMpMerkmal = PaketId;
pub type ZugeordneterMpRolle = MsbEigenschaft;

