/* Options: Date: 2024-04-28 21:15:32 SwiftVersion: 5.0 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://taxfiling.pwc.de //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: BatchProtokollRequest17Async.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Represents the service request to retrieve logs about tax statements. */ // @Route("/async/datenabholungen/protokolle/17/verarbeitungsprotokoll/batch", "POST") // @Api(Description="Represents the service request to retrieve logs about tax statements.") public class BatchProtokollRequest17Async : BatchProtokollRequestBase17, IReturn { public typealias Return = [ProtokollResponse] /** * The tax assessements, whose processing records shall be obtained. */ // @ApiMember(Description="The tax assessements, whose processing records shall be obtained.", Name="Bescheide") public var bescheide:[Abholung17] = [] /** * The authentification certificate. */ // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat") public var zertifikat:PortalCertificate required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case bescheide case zertifikat } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) bescheide = try container.decodeIfPresent([Abholung17].self, forKey: .bescheide) ?? [] zertifikat = try container.decodeIfPresent(PortalCertificate.self, forKey: .zertifikat) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if bescheide.count > 0 { try container.encode(bescheide, forKey: .bescheide) } if zertifikat != nil { try container.encode(zertifikat, forKey: .zertifikat) } } } /** * Represents a portal certificate that is protected by a password. */ // @Api(Description="Represents a portal certificate that is protected by a password.") public class PortalCertificate : FileBase, ISecuredCertificate, IHasIndex { /** * The unique identifier of the certificate. */ // @ApiMember(Description="The unique identifier of the certificate.") public var id:String /** * The position of the certificate element in an indexed collection of certificates. */ // @ApiMember(Description="The position of the certificate element in an indexed collection of certificates.") public var index:Int /** * The password to protect the certificate from unauthorized access. */ // @StringLength(255) // @ApiMember(Description="The password to protect the certificate from unauthorized access.") public var pin:String /** * The description of the certificate. */ // @StringLength(Int32.max) // @ApiMember(Description="The description of the certificate.") public var Description:String /** * Tags that can be used to label or identify the certificate. */ // @ApiMember(Description="Tags that can be used to label or identify the certificate.") public var tags:[String] = [] /** * Gets or sets the file name of the certificate. */ // @ApiMember(Description="Gets or sets the file name of the certificate.") public var name:String /** * The raw data content of the file. */ // @ApiMember(Description="The raw data content of the file.", Name="Content") public var content:[UInt8] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id case index case pin case Description case tags case name case content } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(String.self, forKey: .id) index = try container.decodeIfPresent(Int.self, forKey: .index) pin = try container.decodeIfPresent(String.self, forKey: .pin) Description = try container.decodeIfPresent(String.self, forKey: .Description) tags = try container.decodeIfPresent([String].self, forKey: .tags) ?? [] name = try container.decodeIfPresent(String.self, forKey: .name) content = try container.decodeIfPresent([UInt8].self, forKey: .content) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } if index != nil { try container.encode(index, forKey: .index) } if pin != nil { try container.encode(pin, forKey: .pin) } if Description != nil { try container.encode(Description, forKey: .Description) } if tags.count > 0 { try container.encode(tags, forKey: .tags) } if name != nil { try container.encode(name, forKey: .name) } if content.count > 0 { try container.encode(content, forKey: .content) } } } /** * Represents a request to retrieve data records by means of one or more IDs. */ // @Api(Description="Represents a request to retrieve data records by means of one or more IDs.") public class Abholung17 : Abholung { /** * The tax type (e.g. ESB) of the data record. */ // @ApiMember(Description="The tax type (e.g. ESB) of the data record.") public var steuerart:Steuerart? /** * The meta information of the identifier. */ // @ApiMember(Description="The meta information of the identifier.") public var metaInformationen:MetaInformationen17 /** * Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden. */ // @ApiMember(Description="Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden.") public var bereitstellungsticket:String /** * The attachments of the data records. */ // @ApiMember(Description="The attachments of the data records.") public var anhaenge:Anhaenge17 /** * The identifier of the data record. */ // @ApiMember(Description="The identifier of the data record.") public var id:String /** * The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'. */ // @ApiMember(Description="The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.") public var idnr:String /** * The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'. */ // @ApiMember(Description="The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.") public var veranlagungsjahr:Int? /** * The transmission path used. */ // @ApiMember(Description="The transmission path used.") public var uebertragungsweg:Uebertragungsweg? /** * The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING. */ // @ApiMember(Description="The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.") public var encoding:String /** * The client number; only applicable to the tax type 'ElsterDIVADaten'. */ // @ApiMember(Description="The client number; only applicable to the tax type 'ElsterDIVADaten'.") public var mandantennummer:String /** * The tax number; only applicable to the tax type 'ElsterDIVADaten'. */ // @ApiMember(Description="The tax number; only applicable to the tax type 'ElsterDIVADaten'.") public var steuernummer:String /** * The asessment date; only applicable to the tax type 'ElsterDIVADaten'. */ // @ApiMember(Description="The asessment date; only applicable to the tax type 'ElsterDIVADaten'.") public var bescheiddatum:Date? /** * Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet. */ // @ApiMember(Description="Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.") public var datenpaket:Datenpaket /** * Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations. */ // @ApiMember(Description="Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations.") public var download:Download required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case steuerart case metaInformationen case bereitstellungsticket case anhaenge case id case idnr case veranlagungsjahr case uebertragungsweg case encoding case mandantennummer case steuernummer case bescheiddatum case datenpaket case download } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) steuerart = try container.decodeIfPresent(Steuerart.self, forKey: .steuerart) metaInformationen = try container.decodeIfPresent(MetaInformationen17.self, forKey: .metaInformationen) bereitstellungsticket = try container.decodeIfPresent(String.self, forKey: .bereitstellungsticket) anhaenge = try container.decodeIfPresent(Anhaenge17.self, forKey: .anhaenge) id = try container.decodeIfPresent(String.self, forKey: .id) idnr = try container.decodeIfPresent(String.self, forKey: .idnr) veranlagungsjahr = try container.decodeIfPresent(Int.self, forKey: .veranlagungsjahr) uebertragungsweg = try container.decodeIfPresent(Uebertragungsweg.self, forKey: .uebertragungsweg) encoding = try container.decodeIfPresent(String.self, forKey: .encoding) mandantennummer = try container.decodeIfPresent(String.self, forKey: .mandantennummer) steuernummer = try container.decodeIfPresent(String.self, forKey: .steuernummer) bescheiddatum = try container.decodeIfPresent(Date.self, forKey: .bescheiddatum) datenpaket = try container.decodeIfPresent(Datenpaket.self, forKey: .datenpaket) download = try container.decodeIfPresent(Download.self, forKey: .download) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if steuerart != nil { try container.encode(steuerart, forKey: .steuerart) } if metaInformationen != nil { try container.encode(metaInformationen, forKey: .metaInformationen) } if bereitstellungsticket != nil { try container.encode(bereitstellungsticket, forKey: .bereitstellungsticket) } if anhaenge != nil { try container.encode(anhaenge, forKey: .anhaenge) } if id != nil { try container.encode(id, forKey: .id) } if idnr != nil { try container.encode(idnr, forKey: .idnr) } if veranlagungsjahr != nil { try container.encode(veranlagungsjahr, forKey: .veranlagungsjahr) } if uebertragungsweg != nil { try container.encode(uebertragungsweg, forKey: .uebertragungsweg) } if encoding != nil { try container.encode(encoding, forKey: .encoding) } if mandantennummer != nil { try container.encode(mandantennummer, forKey: .mandantennummer) } if steuernummer != nil { try container.encode(steuernummer, forKey: .steuernummer) } if bescheiddatum != nil { try container.encode(bescheiddatum, forKey: .bescheiddatum) } if datenpaket != nil { try container.encode(datenpaket, forKey: .datenpaket) } if download != nil { try container.encode(download, forKey: .download) } } } /** * Represents a base service request to retrieve processing records from specified tax statements. Applicable to version 17.. */ // @Api(Description="Represents a base service request to retrieve processing records from specified tax statements. Applicable to version 17..") public class BatchProtokollRequestBase17 : BatchProtokollRequestBase { /** * The tax assessements, whose processing records shall be obtained. */ // @ApiMember(Description="The tax assessements, whose processing records shall be obtained.", Name="Bescheide") public var bescheide:[Abholung17] = [] /** * The authentification certificate. */ // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat") public var zertifikat:PortalCertificate required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case bescheide case zertifikat } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) bescheide = try container.decodeIfPresent([Abholung17].self, forKey: .bescheide) ?? [] zertifikat = try container.decodeIfPresent(PortalCertificate.self, forKey: .zertifikat) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if bescheide.count > 0 { try container.encode(bescheide, forKey: .bescheide) } if zertifikat != nil { try container.encode(zertifikat, forKey: .zertifikat) } } } public protocol IHasIndex { var index:Int { get set } } /** * Das Verarbeitungsprotokoll einer Datenabholungsprozesses. */ // @Api(Description="Das Verarbeitungsprotokoll einer Datenabholungsprozesses.") public class Protokoll06 : Codable { /** * Version des Protokolls. */ // @ApiMember(Description="Version des Protokolls.", Name="Version") public var version:Int? /** * Der Zeitstempel der Protokoll-Aufbereitung. Es wird der Zeitstempel der serverseitigen Verarbeitung der Protokollanfrage zurück übermittelt. Das String-Format des ZeitStempels lautet: JJJJMMTThhmmss. */ // @ApiMember(Description="Der Zeitstempel der Protokoll-Aufbereitung. Es wird der Zeitstempel der serverseitigen Verarbeitung der Protokollanfrage zurück übermittelt. Das String-Format des ZeitStempels lautet: JJJJMMTThhmmss.", Name="ZeitStempel") public var zeitStempel:Date? /** * Der Datenteil des Protokolls. */ // @ApiMember(Description="Der Datenteil des Protokolls.", Name="DatenTeil") public var datenTeil:DatenTeil06 required public init(){} } /** * Specifies a service response from an ERiC service operation. */ // @Api(Description="Specifies a service response from an ERiC service operation.") public class ServiceReponseBase : IHasIndex, Codable { /** * The unique identifier of the response. */ // @ApiMember(Description="The unique identifier of the response.", Name="Id") public var id:String /** * The position of the response element in an indexed collection. */ // @ApiMember(Description="The position of the response element in an indexed collection.", Name="Index") public var index:Int /** * Metadata that contains structured error information on the service response. */ // @ApiMember(Description="Metadata that contains structured error information on the service response.", Name="ResponseStatus") public var responseStatus:ResponseStatus required public init(){} } /** * Represents a base class for a file with raw data. */ // @Api(Description="Represents a base class for a file with raw data.") public class FileBase : Codable { /** * The raw data content of the file. */ // @ApiMember(Description="The raw data content of the file.", Name="Content") public var content:[UInt8] = [] required public init(){} } public protocol ISecuredCertificate { var pin:String { get set } } /** * Represents the various tax types for the retrieval of data. */ public enum Steuerart : String, Codable { case ESB case GSB case USB case EPBescheid case EPMitteilung case Gewerbesteuerbescheid case Gewerbesteuermitteilung case GEWMB case DIVAAnzeigeEinerLotterie case DIVABescheid case DivaBescheidESt case DIVABuchmachersteuer case DIVALotteriesteuerEinmal case DIVALotteriesteuerMehr case DIVASportwettensteuer case DIVATotalisator case OZGBescheid case VerbindlicheAuskunft case VerbindlicheZusage case DivaSonstigerVA case DivaBescheidErbSt case DivaBescheidFEIN case DivaBescheidGewSt case DivaBescheidKSt case DivaBescheidUSt case DivaBescheidSchenkSt case DIVATroncabgabe case DIVAVirtuelleAutomatenStB case DIVAOnlinePokerStB case LStHVVMRM case EinlagenrueckgewaehrVA case FTTMeldungVA case StatusInvStGVA case UStVEUVA case VERSVA case AltZertVA case KapEStEntlastungVA case PostUDLVA case StAb50aVA case StAbEntlastungVA case KassenangelegenheitenVA case KStOptVA case SteueroasenabwehrVA case KDBVollmachtRM case STBKE case VDBKDBRueckmeldungLief case AnhangRueckmeldung case DivaEinwilligungRM case GlueckspielF case OZGMitteilung case VerbindlicheAuskunftInfoF case ELOProtokoll } /** * Represents meta information. */ // @Api(Description="Represents meta information.") public class MetaInformationen17 : Codable { /** * List of metadata. */ // @ApiMember(Description="List of metadata.") public var meta:[Meta17] = [] /** * List of meta infomation maps. */ // @ApiMember(Description="List of meta infomation maps.") public var metaInfoMaps:MetaInfoMaps17 required public init(){} } /** * Represents a list of attachments. */ public class Anhaenge17 : Codable { required public init(){} } /** * Represents the transmission path. */ public enum Uebertragungsweg : String, Codable { case direkt case link case sammellink } /** * The data packet from the retrieval operation. */ // @Api(Description="The data packet from the retrieval operation.") public class Datenpaket : Codable { /** * Encoded (compressed and encrypted) requested data record */ // @ApiMember(Description="Encoded (compressed and encrypted) requested data record") public var value:String required public init(){} } /** * Represents the download of requested records. The downloaded content from the web server takes place: a) with https b) on port 443 c) on datenabholung1.elster.de or datenabholung2.elster.de. The HTTP Basic Authentication mechanism according to RFC 2617 is used for authentication. */ // @Api(Description="Represents the download of requested records. The downloaded content from the web server takes place: a) with https b) on port 443 c) on datenabholung1.elster.de or datenabholung2.elster.de. The HTTP Basic Authentication mechanism according to RFC 2617 is used for authentication.") public class Download : Codable { /** * The link to the data on the web server. */ // @ApiMember(Description="The link to the data on the web server.") public var url:String /** * The user name for the web server. */ // @ApiMember(Description="The user name for the web server.") public var benutzer:String /** * Password for the web server. */ // @ApiMember(Description="Password for the web server.") public var passwort:String required public init(){} } /** * Represents the request to retrieve tax assessments by means of a specfied ID. */ // @Api(Description="Represents the request to retrieve tax assessments by means of a specfied ID.") public class Abholung : Codable { /** * The identifier of the data record. */ // @ApiMember(Description="The identifier of the data record.") public var id:String /** * The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'. */ // @ApiMember(Description="The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.") public var idnr:String /** * The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'. */ // @ApiMember(Description="The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.") public var veranlagungsjahr:Int? /** * The transmission path used. */ // @ApiMember(Description="The transmission path used.") public var uebertragungsweg:Uebertragungsweg? /** * The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING. */ // @ApiMember(Description="The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.") public var encoding:String /** * The client number; only applicable to the tax type 'ElsterDIVADaten'. */ // @ApiMember(Description="The client number; only applicable to the tax type 'ElsterDIVADaten'.") public var mandantennummer:String /** * The tax number; only applicable to the tax type 'ElsterDIVADaten'. */ // @ApiMember(Description="The tax number; only applicable to the tax type 'ElsterDIVADaten'.") public var steuernummer:String /** * The asessment date; only applicable to the tax type 'ElsterDIVADaten'. */ // @ApiMember(Description="The asessment date; only applicable to the tax type 'ElsterDIVADaten'.") public var bescheiddatum:Date? /** * Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet. */ // @ApiMember(Description="Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.") public var datenpaket:Datenpaket /** * Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations. */ // @ApiMember(Description="Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations.") public var download:Download required public init(){} } /** * Represents a base service request to retrieve processing records from specified tax statements. */ // @Api(Description="Represents a base service request to retrieve processing records from specified tax statements.") public class BatchProtokollRequestBase : IPost, Codable { /** * The authentification certificate. */ // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat") public var zertifikat:PortalCertificate required public init(){} } /** * Stellt den Datenteil eines Protokolls dar. */ // @Api(Description="Stellt den Datenteil eines Protokolls dar.") public class DatenTeil06 : Codable { /** * Das Transferticket der Datenlieferung. */ // @ApiMember(Description="Das Transferticket der Datenlieferung.") public var transferTicket:String /** * Der Statuscode zur gesamten Datenlieferung. 0 (Datenlieferung ok - Alle Datensätze konnten verarbeitet werden). 1 (Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden). 2 (Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft). 3 (Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant). */ // @ApiMember(Description="Der Statuscode zur gesamten Datenlieferung. 0 (Datenlieferung ok - Alle Datensätze konnten verarbeitet werden). 1 (Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden). 2 (Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft). 3 (Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant).") public var code:Int? /** * Der Datenteil des Protokolls.Datenlieferung ok - Alle Datensätze konnten verarbeitet werden. Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden. Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft. 3Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant. */ // @ApiMember(Description="Der Datenteil des Protokolls.Datenlieferung ok - Alle Datensätze konnten verarbeitet werden. Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden. Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft. 3Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant.") public var text:String /** * Der Datenteil des Protokolls. */ // @ApiMember(Description="Der Datenteil des Protokolls.") public var nutzdatenbloecke:[Nutzdatenblock06] = [] required public init(){} } /** * Represents the metadata of a data record. */ // @Api(Description="Represents the metadata of a data record.") public class Meta17 : Codable { /** * The type of metadata, e.g. datei [file] */ // @ApiMember(Description="The type of metadata, e.g. datei [file]") public var name:String /** * The encoding of the metadata (text or base64) */ // @ApiMember(Description="The encoding of the metadata (text or base64)") public var coding:Coding? /** * The content of the metadata */ // @ApiMember(Description="The content of the metadata") public var value:String required public init(){} } /** * Represents a list of meta information maps. */ public class MetaInfoMaps17 : Codable { required public init(){} } /** * Stellt ein Element eines Nutztdatenblockes dar. */ // @Api(Description="Stellt ein Element eines Nutztdatenblockes dar.") public class Nutzdatenblock06 : Codable { /** * Über das Nutzdatenticket im Verarbeitungsprotokoll wird der Nutzdatenblock aus der Datenlieferung referenziert. */ // @ApiMember(Description="Über das Nutzdatenticket im Verarbeitungsprotokoll wird der Nutzdatenblock aus der Datenlieferung referenziert.") public var nutzdatenTicket:String /** * Der Statuscode zum Nutzdatenblock. */ // @ApiMember(Description="Der Statuscode zum Nutzdatenblock.") public var code:Int? /** * Der Statustext zum Nutzdatenblock. */ // @ApiMember(Description="Der Statustext zum Nutzdatenblock.") public var text:String /** * Anzahl der Verarbeiteten Nutzdatensätze. */ // @ApiMember(Description="Anzahl der Verarbeiteten Nutzdatensätze.") public var verarbeiteteNds:UInt32? /** * Anzahl der nichtverarbeiteten Nutzdatensätze. */ // @ApiMember(Description="Anzahl der nichtverarbeiteten Nutzdatensätze.") public var nichtverarbeiteteNds:UInt32? /** * Der Datenteil des Protokolls. */ // @ApiMember(Description="Der Datenteil des Protokolls.") public var ndSFehler:[NdSFehler06] = [] required public init(){} } /** * Specifies the encoding of the metadata. */ public enum Coding : String, Codable { case text case base64 } /** * Stellt einen Nutzdatensatz-Fehler dar. Dabei besteht der Fehler aus: - einer laufenden Nummer(Attribut zum NdSFehler)- der KmId (Attribut zum NdSFehler) und/oder dem ordnungsMerkmal (Attribut zum NdSFehler)- einem Fehlernummer (Attribut zum NdSFehler)- einem Fehlertext (Inhalt des Tag NdSFehler) */ // @Api(Description="Stellt einen Nutzdatensatz-Fehler dar. Dabei besteht der Fehler aus: - einer laufenden Nummer(Attribut zum NdSFehler)- der KmId (Attribut zum NdSFehler) und/oder dem ordnungsMerkmal (Attribut zum NdSFehler)- einem Fehlernummer (Attribut zum NdSFehler)- einem Fehlertext (Inhalt des Tag NdSFehler)") public class NdSFehler06 : Codable { /** * Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock. */ // @ApiMember(Description="Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock.", Name="LfdNr") public var lfdNr:String /** * Bei der kmId handelt es sich um die durch den Verfasser vorgegebene KmId des Nutzdatensatzes. */ // @ApiMember(Description="Bei der kmId handelt es sich um die durch den Verfasser vorgegebene KmId des Nutzdatensatzes.", Name="KmId") public var kmId:String /** * Die durch den Verfasser vorgegebene bundesweit eindeutige Identifikation des Nutzdatensatzes (z.B. bei LStB, Lohnersatzleistungen). */ // @ApiMember(Description="Die durch den Verfasser vorgegebene bundesweit eindeutige Identifikation des Nutzdatensatzes (z.B. bei LStB, Lohnersatzleistungen).", Name="OrdnungsMerkmal") public var ordnungsMerkmal:String /** * Es wird die vom Elstersystem für diesen Fehler vergebene Fehlernummer i.d.R. eine 9-stellige Nummer zurückgemeldet. */ // @ApiMember(Description="Es wird die vom Elstersystem für diesen Fehler vergebene Fehlernummer i.d.R. eine 9-stellige Nummer zurückgemeldet.", Name="FehlerNummer") public var fehlerNummer:UInt32? /** * Es wird der vom Elstersystem für diesen Fehler vergebene Fehlertext zurückgemeldet. */ // @ApiMember(Description="Es wird der vom Elstersystem für diesen Fehler vergebene Fehlertext zurückgemeldet.", Name="FehlerText") public var fehlerText:String required public init(){} } /** * Represents a type that encapulates the processing records of a tax statement. */ // @Api(Description="Represents a type that encapulates the processing records of a tax statement.") public class ProtokollResponse : ServiceReponseBase { /** * The processing record of a tax statement. */ // @ApiMember(Description="The processing record of a tax statement.", Name="Protokoll") public var protokoll:Protokoll06 /** * The unique identifier of the response. */ // @ApiMember(Description="The unique identifier of the response.", Name="Id") public var id:String /** * The position of the response element in an indexed collection. */ // @ApiMember(Description="The position of the response element in an indexed collection.", Name="Index") public var index:Int /** * Metadata that contains structured error information on the service response. */ // @ApiMember(Description="Metadata that contains structured error information on the service response.", Name="ResponseStatus") public var responseStatus:ResponseStatus required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case protokoll case id case index case responseStatus } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) protokoll = try container.decodeIfPresent(Protokoll06.self, forKey: .protokoll) id = try container.decodeIfPresent(String.self, forKey: .id) index = try container.decodeIfPresent(Int.self, forKey: .index) responseStatus = try container.decodeIfPresent(ResponseStatus.self, forKey: .responseStatus) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if protokoll != nil { try container.encode(protokoll, forKey: .protokoll) } if id != nil { try container.encode(id, forKey: .id) } if index != nil { try container.encode(index, forKey: .index) } if responseStatus != nil { try container.encode(responseStatus, forKey: .responseStatus) } } }