{"openapi":"3.1.0","info":{"title":"Portalverbund - Validator Backend REST-API","description":"Das Portalverbund-Onlinegateway (PVOG) stellt zentral die Verwaltungsleistungen von Bund und Ländern bereit.\nDie Aufgabe des Validators ist es, eine technische und fachliche Prüfung der XZuFi Dokumente durchzuführen, die über den Sammlerdienst in den Datenbestand des PVOG übernommen werden sollen. Die vom Validator bereitgestellte REST-API bietet die unabhängige Möglichkeit der fachlichen und technischen Prüfung von XZuFi Dokumenten, um die Erfüllung der Anforderungen an Importe in das PVOG zu prüfen.\nDie REST API des Validator Backend ermöglicht es, XZuFi 2.2 und 2.3 Dokumente von einem Bereitstellort zu validieren.\n\nWeitere Informationen zur Versionierung der Schnittstellen finden Sie in unserem\n<a target=\"_blank\" href=\"https://produktportal.pvog.fitko.de/docs/validator/doku/#versionierung-der-schnittstelle\">Produktportal</a>.\n\n**Authentifizierung / Autorisierung:**\n\nDie Zugangsdaten für Ihr Redaktionssystem erfragen Sie bitte beim Support.\n\nDie Endpunkte sind des Validators sind mit OAuth2 abgesichert. Folgende Grant Types werden unterstützt:\n* [Authorization Code](https://www.oauth.com/oauth2-servers/access-tokens/authorization-code-request/)\n* [Client Credentials](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/)\n\nDie Endpunkte des Validators kann man in diesem Swagger-UI folgendermaßen testen:\n1. Den gewünschten REST-Endpunkt auswählen\n2. Auf das offene Schloss im rechten Bereich klicken. Es öffnet sich ein Dialog\n3. Im Dialog im Feld *client_id* den Wert \"validator-frontend\" eingeben. Das Feld *client_secret* bleibt leer.\n4. Auf den Button \"authorize\" klicken. Dies führt dazu, dass sich ein neuer Tab / ein neues Fenster öffnet.\n5. In der Login-Maske meldet man sich mit denselben Zugangsdaten an, die man auch für das Validator-Frontend nutzt.\n6. Auf den Button \"Sign in\" klicken. Dies führt dazu, dass sich der neue Tabl / das neue Fenster schließt.\n   Das Swagger-UI zeigt in dem Dialog an, dass man angemeldet ist und aus dem ursprünglichen \"authorize\"-Button\n   wurde der \"logout\"-Button.\n7. Auf den Button \"Close\" klicken. Ab jetzt kann man die REST-Endpunkte wie gewohnt im Swagger-UI nutzen.\n","contact":{"name":"FITKO","url":"https://www.fitko.de/"},"license":{"name":"Creative Commons Attribution Share Alike 4.0 (CC BY-SA 4.0)","url":"https://creativecommons.org/licenses/by-sa/4.0/"},"version":"8.12.3"},"servers":[{"url":"https://stage.pvog.fitko.net/validator-backend/api","description":"Generated server url"}],"tags":[{"name":"XZuFiValidatorController","description":"Die XZuFi Dokumente müssen wie in dem Sammlerdienstkonzept beschrieben an dem Bereitstellort zur Verfügung gestellt werden.\nNach dem Start der Validierung ist über einen Fortschritt-Endpunkt in regelmäßigen Intervallen der Status der Validierung abzufragen.\nWurde der Status FINISHED erreicht, so kann über den Report-Endpunkt ein Fehlerbericht als JSON oder Text angefordert werden.\nDer Report wird nach 30 Minuten nach Ende der Validierung automatisch gelöscht.\n\nDer Validierungsprozess durchläuft vier Phasen, welche durch folgende Status repräsentiert werden:\n\n1. WAITING: Validierungsanfrage wurde entgegengenommen. Es wird gewartet bis genug Ressourcen frei sind\n2. READING_INDEX: Index Datei wird eingelesen\n3. VALIDATING: Die Validierung der XZuFi Dokumente läuft\n4. FINISHED: Die Validierung wurde beendet\n\nZusätzlich:\n\n5. STOPPED: Die Validierung wurde gestoppt. Ein Zugriff auf das Fortschrittsobjekt oder auf den Report ist nicht mehr möglich\n\nMit Hilfe der Yaml Version dieser Dokumentation kann ein REST Client generiert werden. Pfad zu der Yaml Version: `/api/api-docs` (siehe Eingabefeld oben)\n"},{"name":"ArchivValidatorController","description":"Der Controller stellt einen Endpunkt zur Verfügung, über den Zip-Archive hochgeladen werden können, in dem XZuFi-Dateien eines Redaktionssystems enthalten sind und startet dessen Validierung. Er bietet auch Endpunkte zum Abrufen der zugehörigen Statistiken und Reports."}],"paths":{"/v6/validiere":{"post":{"tags":["XZuFiValidatorController"],"summary":"Aufruf der Validierung.","description":"Nimmt eine Validierungsanfrage entgegen. Initiiert einen Validierungsprozess und erzeugt die ID, über welche auf den asynchron ablaufenden Validierungsprozess zugegriffen werden kann. Legt die Validierung in eine Warteschlange. Sobald genügend Ressourcen zur Verfügung stehen, wird die Validierung gestartet.","operationId":"validiereXZuFiV6","requestBody":{"description":"Enthält die Zugangsinformationen zu dem Bereitstellungsort, sowie die entsprechende Redaktionssystem-ID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidierungsAnfrageV6"},"examples":{"Validierungsanfrage":{"summary":"Validierungsanfrage mit Benutzername und Kennwort","description":"Validierungsanfrage, Dokumentation siehe Schema.","value":{"indexPfad":"https://pvog.dataport.de/xzufi/validierung/hessen/redaktionssystem/index.html","userName":"dataport","password":"streng_geheim","redaktionssystemId":"B100019"}}}}},"required":true},"responses":{"200":{"description":"Die Validierung wurde erfolgreich gestartet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fortschritt"},"examples":{"Rückgabe nach erfolgreichem Start der Validierung.":{"summary":"Erfolgreicher Start der Validierung","description":"Das Fortschritt-Objekt, Dokumentation siehe Schema.","value":{"status":"READING_INDEX","id":"3fa85f64-5717-4562-b3fc-2c963f66afa7","gesamt":1177,"validiert":0,"fehlerhaft":0,"warnungen":0}}}}}},"400":{"description":"Die Validierungsanfrage enthält unzulässige Anfrageparameter."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"}},"security":[{"pvog_auth":[]}]}},"/v2/validiere_benutzerdefiniert":{"post":{"tags":["XZuFiValidatorController"],"summary":"Aufruf der benutzerdefinierten Validierung.","description":"Nimmt eine Validierungsanfrage entgegen. Initiiert einen Validierungsprozess und erzeugt die ID, über welche auf den asynchron ablaufende Validierungsprozess zugegriffen werden kann. Legt die Validierung in eine Warteschlange. Sobald genug Ressourcen zur verfügung stehen, wird die Validierung gestartet.","operationId":"validiereXZuFiBenutzerdefiniertV2","requestBody":{"description":"Enthält die Zugangsinformationen zu dem Bereitstellungsort und die ARS des Redaktionssystems.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidierungsAnfrageBenutzerdefiniert"},"examples":{"Validierungsanfrage":{"summary":"Validierungsanfrage mit Benutzername und Kennwort","description":"Validierungsanfrage, Dokumentation siehe Schema.","value":{"indexPfad":"https://pvog.dataport.de/xzufi/validierung/hessen/redaktionssystem/index.html","userName":"dataport","password":"streng_geheim","erlaubteArs":["06"],"redaktionssystemId":"L100001","erlaubteLeikaTypisierung":["2","3","2/3","3a","3b"]}}}}},"required":true},"responses":{"200":{"description":"Die Validierung wurde erfolgreich gestartet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fortschritt"},"examples":{"Rückgabe nach erfolgreichem Start der Validierung.":{"summary":"Erfolgreicher Start der Validierung","description":"Das Fortschritt Objekt, Dokumentation siehe Schema.","value":{"status":"READING_INDEX","id":"3fa85f64-5717-4562-b3fc-2c963f66afa7","gesamt":1177,"validiert":0,"fehlerhaft":0}}}}}},"400":{"description":"Die Validierungsanfrage enthält unzulässige Anfrageparameter."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"}},"security":[{"pvog_auth":[]}]}},"/v1/urlpruefung":{"post":{"tags":["XZuFiValidatorController"],"summary":"Prüft eine URL auf Gültigkeit.","description":"Hilfswerkzeug, um Syntax-Fehler in einer URL zu finden. Kann z.B. verwendet werden, um Fehlerprotokolle des URL-Validators nachzuvollziehen.","operationId":"pruefeUrlV1","requestBody":{"description":"Muss die zu prüfende URL enthalten.","content":{"text/plain":{"schema":{"type":"string"},"example":"https://pvog.dataport.de/"}},"required":true},"responses":{"200":{"description":"Ergebnis der URL-Prüfung."},"400":{"description":"Es wurde keine URL übergeben."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"}},"security":[{"pvog_auth":[]}]}},"/v3/{id}/report":{"get":{"tags":["XZuFiValidatorController"],"summary":"Liefert den Validatorreport.","description":"Der Validatorreport kann erst angefordert werden, wenn der Status FINISHED erreicht ist, ansonsten wird HTTP Status 428 (Precondition Required) zurückgeliefert. Der Validatorreport wird ab einer bestimmten Größe gekürzt, der Vorgabewert für die maximale Berichtgröße ist 5MB. Um einen ungekürzten Fehlerbericht zu erhalten kann der Endpunkt /komplettreport verwendet werden.","operationId":"getXZuFiReportV3","parameters":[{"name":"id","in":"path","description":"Die ID des Validierungsprozess.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Der Validatorreport wurde erfolgreich ermittelt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportV2"},"examples":{"Fehlerbericht":{"summary":"Ein Beispiel für einen Validatorreport.","description":"Beispiel für einen Validatorreport.","value":{"status":"ValideMitWarnungen","vollstaendig":true,"info":null,"warnungen":1564,"hinweise":426,"fehlerhaft":0,"validiert":1564,"gesamt":1564,"validierungsprotokolle":[{"status":"VALIDE_MIT_WARNUNGEN","dokumentName":"https://kptaustausch.germanywestcentral.cloudapp.azure.com/7BxkpU0DZvZ0bpoGRDOtwk28dAIFvj/XZUFI20240310204520000000000005.xml","validatorErgebnisse":[{"validatorId":"VAL0059","meldungen":[{"typ":"WARNUNG","nachricht":"Leistung mit ID S1000020010000005383 hat nicht LeiKa-plus Handbuch konforme Leistungsschlüssel: 02000000000000","anzahl":1}]}]}]}}}},"text/plain":{"examples":{"Validatorreport":{"summary":"Ein Beispiel für einen Validatorreport.","description":"Ein Beispiel für einen Validatorreport.","value":"Validiere Dokument XZUFI202004171154090099000724111100.xml\nFehler: Fehler: Die Datei XZUFI202004171154090099000724111100.xml konnte nicht eingelesen werden.\n\nValidiere Dokument XZUFI_2_2 XZUFI202004171154090099000724111100.xml\nTechnische Validierung erfolgreich. XZuFi-Dokument ist schemakonform.\nDas Dokument enthält mindesten ein Element das mehrsprachig geliefert werden kann bzw. ein Attribut 'languageCode' enthalten könnte, welches jedoch kein oder ein leeres Attribut 'languageCode' enthält.\nFehler: Es wurde mindestens ein Element vom Typ 'modul' gefunden, welches keinen oder einen leeren languageCode besitzt.\nFehler (2 mal aufgetreten): Es wurde mindestens ein Element vom Typ 'link' gefunden, welches keinen oder einen leeren languageCode besitzt.\n"}}}}},"400":{"description":"Ungültiges Format der Validierungsprozess ID. Es wird eine UUID erwartet."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Die Id des Validierungsprozess konnte nicht gefunden werden."},"428":{"description":"Der Validatorreport wurde angefordert, obwohl die Validierung noch nicht beendet war."}},"security":[{"pvog_auth":[]}]}},"/v2/{redaktionssystemId}/redsyskonfig":{"get":{"tags":["XZuFiValidatorController"],"summary":"Informationen zu einem Redaktionssystem.","description":"Gibt alle gespeicherten Informationen eines Redaktionssystems nach angegebener ID aus.","operationId":"getRedaktionssystemConfigV2","parameters":[{"name":"redaktionssystemId","in":"path","description":"Die ID des entsprechenden Redaktionssystems","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Alle vorhandenen Informationen wurden gesammelt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedaktionssystemConfigV2"},"examples":{"Redsysinformationen":{"summary":"Ein Beispiel für ausgegebene Redaktionssysteminformationen.","description":"Beispiel einer Ausgabe an Informationen über ein angegebenes Redaktionssystem im JSON-Format.","value":{"redaktionssystemId":"S100002","landcode":"HH","name":"Hamburg","ars":["02"],"leikaTypen":["2a","2b"]}}}}}},"400":{"description":"Die angegebene Redaktionssystem-ID ist unbekannt."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"}},"security":[{"pvog_auth":[]}]}},"/v2/{id}/komplettreport":{"get":{"tags":["XZuFiValidatorController"],"summary":"Liefert den kompletten Validatorreport als JSON oder Text Datei.","description":"Der Validatorreport kann erst angefordert werden, wenn der Status FINISHED erreicht ist, ansonsten wird HTTP Status 428 (Precondition Required) zurückgeliefert.\nDer Bericht wird nicht gekürzt, auch wenn er die festgelegte maximale Größe überschreitet. Das Format des Reports wird mit dem Accept Header in der Anfrage festgelegt.\n\n'Accept: application/json' für JSON Format\n'Accept: text/plain' für Text Format\n\nFalls die Anfrage keinen Accept Header enthält, dann wird der Validatorreport im JSON Format ausgeliefert.","operationId":"getXZuFiKomplettReportV2","parameters":[{"name":"id","in":"path","description":"Die ID des Validierungsprozess.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accept","in":"header","required":false,"schema":{"type":"string","default":"application/json"}}],"responses":{"200":{"description":"Der Validatorreport wurde erfolgreich ermittelt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportV2"},"examples":{"Komprimierter Validatorreport":{"summary":"Ein Beispiel für einen Validatorreport.","description":"Ein Beispiel für einen Validatorreport im JSON Format.","value":{"status":"ValideMitWarnungen","vollstaendig":true,"info":null,"warnungen":1564,"hinweise":426,"fehlerhaft":0,"validiert":1564,"gesamt":1564,"validierungsprotokolle":[{"status":"VALIDE_MIT_WARNUNGEN","dokumentName":"https://kptaustausch.germanywestcentral.cloudapp.azure.com/7BxkpU0DZvZ0bpoGRDOtwk28dAIFvj/XZUFI20240310204520000000000005.xml","validatorErgebnisse":[{"validatorId":"VAL0059","meldungen":[{"typ":"WARNUNG","nachricht":"Leistung mit ID S1000020010000005383 hat nicht LeiKa-plus Handbuch konforme Leistungsschlüssel: 02000000000000","anzahl":1}]}]}]}}}},"text/plain":{"examples":{"Komprimierter Validatorreport":{"summary":"Ein Beispiel für einen Validatorreport.","description":"Beispiel für einen Validatorreport.","value":"Validiere Dokument XZUFI202004171154090099000724111100.xml\nFehler: Fehler: Die Datei XZUFI202004171154090099000724111100.xml konnte nicht eingelesen werden.\n\nValidiere Dokument XZUFI_2_2 XZUFI202004171154090099000724111100.xml\nTechnische Validierung erfolgreich. XZuFi-Dokument ist schemakonform.\nDas Dokument enthält mindesten ein Element das mehrsprachig geliefert werden kann bzw. ein Attribut 'languageCode' enthalten könnte, welches jedoch kein oder ein leeres Attribut 'languageCode' enthält.\nFehler: Es wurde mindestens ein Element vom Typ 'modul' gefunden, welches keinen oder einen leeren languageCode besitzt.\nFehler (2 mal aufgetreten): Es wurde mindestens ein Element vom Typ 'link' gefunden, welches keinen oder einen leeren languageCode besitzt.\n"}}}}},"400":{"description":"Ungültiges Format der Validierungsprozess ID. Es wird eine UUID erwartet."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Die Id des Validierungsprozess konnte nicht gefunden werden."},"428":{"description":"Der Validatorreport wurde angefordert, obwohl die Validierung noch nicht beendet war."}},"security":[{"pvog_auth":[]}]}},"/v2/archivvalidator/komplettreport/neuester/{schemeAgencyId}":{"get":{"tags":["ArchivValidatorController"],"summary":"Liefert den neuesten Validatorreport.","description":"Liefert den neuesten Validatorreport zu einem Redaktionssystem als JSON.","operationId":"getLatestReportBySchemeAgencyId","parameters":[{"name":"schemeAgencyId","in":"path","description":"Identifiziert das Redaktionssystem","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Der Validatorreport wurde erfolgreich ermittelt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportV2"},"examples":{"Fehlerbericht":{"summary":"Ein Beispiel für einen Validatorreport.","description":"Beispiel für einen Validatorreport.","value":{"status":"ValideMitWarnungen","vollstaendig":true,"warnungen":1564,"hinweise":426,"fehlerhaft":0,"validiert":1564,"gesamt":1564,"validierungsprotokolle":[{"status":"VALIDE_MIT_WARNUNGEN","dokumentName":"https://kptaustausch.germanywestcentral.cloudapp.azure.com/7BxkpU0DZvZ0bpoGRDOtwk28dAIFvj/XZUFI20240310204520000000000005.xml","validatorErgebnisse":[{"validatorId":"VAL0059","meldungen":[{"typ":"WARNUNG","nachricht":"Leistung mit ID S1000020010000005383 hat nicht LeiKa-plus Handbuch konforme Leistungsschlüssel: 02000000000000","anzahl":1}]}]}]}}}}}},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Es gibt noch keinen Report oder das Redaktionssystem existiert nicht."},"500":{"description":"Bei der Verarbeitung des Requests ist ein Fehler aufgetreten."}},"security":[{"pvog_auth":[]}]}},"/v1/{id}/statistik":{"get":{"tags":["XZuFiValidatorController"],"summary":"Liefert die Validierungsstatistik.","description":"Die Statistik zur Validierung kann erst angefordert werden, wenn der Status FINISHED erreicht ist, ansonsten wird HTTP Status 428 (Precondition Required) zurückgeliefert. ","operationId":"getXZuFiStatistikV1","parameters":[{"name":"id","in":"path","description":"Die ID des Validierungsprozess.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Der Validierungsstatistik wurde erfolgreich ermittelt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Statistik"},"examples":{"Validierungsstatistik":{"summary":"Ein Beispiel für eine Validierungsstatistik.","description":"Ein Beispiel für eine Validierungsstatistik.","value":{"status":"NichtValide","warnungen":1,"fehlerhaft":1,"validiert":760,"gesamt":760,"validatorStatistik":[{"validatorName":"CodeValidator","validatorModus":"Warnung","anzahl":1},{"validatorName":"PV-Lagen-Validator","validatorModus":"Warnung","anzahl":1}]}}}},"text/plain":{"examples":{"Validierungsstatistik":{"summary":"Ein Beispiel für eine Validierungsstatistik.","description":"Ein Beispiel für eine Validierungsstatistik.","value":"    Status: NichtValide\n    Dokumente mit Warnungen (ohne Fehler): 1\n    Dokumente mit Fehlern (und Warnungen): 1\n    Es wurden 760 Dokument(e) validiert\n    Validatorname: CodeValidator Modus: Warnung Anzahl Treffer: 1\n    Validatorname: PV-Lagen-Validator Modus: Warnung Anzahl Treffer: 1\n"}}}}},"400":{"description":"Ungültiges Format der Validierungsprozess ID. Es wird eine UUID erwartet."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Die Id des Validierungsprozess konnte nicht gefunden werden."},"428":{"description":"Der Validierungsstatistik wurde angefordert, obwohl die Validierung noch nicht beendet war."}},"security":[{"pvog_auth":[]}]}},"/v1/{id}/fortschritt":{"get":{"tags":["XZuFiValidatorController"],"description":"Liefert den Fortschritt der Validierung.","operationId":"getXZuFiProgressV1","parameters":[{"name":"id","in":"path","description":"Die ID des Validierungsprozess.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Abfrage wurde erfolgreich ausgeführt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fortschritt"},"examples":{"Fortschritt Start der Validierung":{"summary":"READING_INDEX","description":"Das Fortschritt Objekt, Dokumentation siehe Schema.","value":{"status":"READING_INDEX","id":"3fa85f64-5717-4562-b3fc-2c963f66afa7","gesamt":1177,"validiert":0,"fehlerhaft":0}},"Fortschritt läuft noch":{"summary":"VALIDATING","description":"Prozess Status: VALIDATING","value":{"status":"VALIDATING","id":"3fa85f64-5717-4562-b3fc-2c963f66afa8","gesamt":355,"validiert":277,"fehlerhaft":3}},"Fortschritt ist fertig":{"summary":"FINISHED","description":"Prozess Status:  FINISHED","value":{"status":"FINISHED","id":"3fa85f64-5717-4562-b3fc-2c963f66afaa","gesamt":990,"validiert":990,"fehlerhaft":6}},"Fortschritt wurde gestoppt":{"summary":"STOPPED","description":"Prozess Status: STOPPED","value":{"status":"STOPPED","id":"3fa85f64-5717-4562-b3fc-2c963f66afa9","gesamt":587,"validiert":278,"fehlerhaft":0}}}}}},"400":{"description":"Ungültiges Format der Validierungsprozess ID. Es wird eine UUID erwartet."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Die Id des Validierungsprozess konnte nicht gefunden werden."}},"security":[{"pvog_auth":[]}]}},"/v1/validatorconfig":{"get":{"tags":["XZuFiValidatorController"],"summary":"Liefert die Fachvalidatorkonfiguration.","description":"Die Fachvalidatorkonfiguration enthält eine Liste der unterstützten XZuFi-Versionen sowie eine Liste\naller Einzelvalidatorkonfigurationen, welche neben der Id und der Beschreibung der einzelnen Validatoren\nunter anderem auch deren Aktivitätsstatus und deren Protokollmodus (Hinweis, Warnung, Fehler)\nenthalten.","operationId":"getValidatorConfig","responses":{"200":{"description":"Die Fachvalidatorkonfiguration wurde erfolgreich ausgeliefert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidatorConfig"}}}}},"security":[{"pvog_auth":[]}]}},"/v1/redaktionssysteme":{"get":{"tags":["XZuFiValidatorController"],"summary":"Informationen zu allen konfigurierten Redaktionssystemen abrufen.","description":"Gibt eine Liste mit Informationen zu allen konfigurierten Redaktionssystemen im Validatorservice aus.","operationId":"getRedaktionssystemeConfigV1","responses":{"200":{"description":"Die Liste aller vorhandenen Redaktionssysteme wurde erfolgreich ermittelt.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RedaktionssystemConfigV2"}},"examples":{"Redaktionssysteme":{"summary":"Ein Beispiel für ausgegebene Redaktionssysteminformationen.","description":"Beispiel einer Ausgabe der Liste aller konfigurierten Redaktionssysteme im JSON-Format.","value":[{"redaktionssystemId":"S100002","name":"Hamburg","ars":["02"],"leikaTypen":["2a","2b"]},{"redaktionssystemId":"S100003","name":"Berlin","ars":["11"],"leikaTypen":["1","2a"]}]}}}}},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"}},"security":[{"pvog_auth":[]}]}},"/v1/archivvalidator/uebersicht":{"get":{"tags":["ArchivValidatorController"],"summary":"Liefert eine Übersicht über die zuletzt gelaufenen Archiv-Validierungen.","description":"Die Übersicht enthält pro Redaktionssystem die Anzahl der Dateien sowie Zeitpunkt und Dauer der Validierung.","operationId":"getUebersicht","responses":{"200":{"description":"Die Daten wurden erfolgreich abgerufen.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ValidierungsstatistikOutModel"}},"examples":{"Übersicht über die neuesten Validierungen pro Redaktionssystem":{"description":"Übersicht über die neuesten Validierungen pro Redaktionssystem","value":[{"id":1,"redaktionssystemId":"S100002","landName":"Hamburg","gesamt":1234,"fehlerhaft":12,"warnungen":45,"hinweise":234,"startZeit":"2024-08-09T14:42:47","dauer":1200},{"id":1,"redaktionssystemId":"L100022","landName":"Baden-Württemberg","gesamt":1235,"fehlerhaft":13,"warnungen":46,"hinweise":235,"startZeit":"2024-08-08T14:42:47","dauer":1500}]}}}}},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"500":{"description":"Bei der Verarbeitung des Requests ist ein Fehler aufgetreten."}},"security":[{"pvog_auth":[]}]}},"/v1/archivvalidator/komplettreport/download/{id}":{"get":{"tags":["ArchivValidatorController"],"summary":"Liefert den Validatorreport zu einer Validierung im JSON- oder CSV-Format als Zip-Archiv","operationId":"getReportByIdAndToken","parameters":[{"name":"id","in":"path","description":"Id der Validierung, geliefert von dem Endpunkt Übersicht bzw. Historie","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"downloadToken","in":"query","description":"Ein Download-Token als Berechtigung zum Herunterladen eines Validatorreports","required":true,"schema":{"type":"string"},"example":"bf99e4c7-7f8c-478b-bec9-f40f4a60bca6"},{"name":"reportFormat","in":"query","description":"Das Format des im Zip-Archiv enthaltenen Validatorreports (CSV oder JSON)","required":true,"schema":{"type":"string","pattern":"(CSV)|(JSON)"}}],"responses":{"200":{"description":"Der Validatorreport wurde erfolgreich ermittelt.","content":{"application/octet-stream":{}}},"400":{"description":"Ungültige Argumente in der Anfrage"},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Die Validierung mit der angegebenen id existiert nicht."},"500":{"description":"Bei der Verarbeitung des Requests ist ein Fehler aufgetreten."}},"security":[{"pvog_auth":[]}]}},"/v1/archivvalidator/komplettreport/download/neuester/{schemeAgencyId}":{"get":{"tags":["ArchivValidatorController"],"summary":"Liefert den neuesten Validatorreport zu einem Redaktionssystem im JSON- oder CSV-Format als Zip-Archiv.","operationId":"getLatestReportBySchemeAgencyIdAndToken","parameters":[{"name":"schemeAgencyId","in":"path","description":"Identifiziert das Redaktionssystem","required":true,"schema":{"type":"string"}},{"name":"downloadToken","in":"query","description":"Ein Download-Token als Berechtigung zum Herunterladen eines Validatorreports","required":true,"schema":{"type":"string"},"example":"bf99e4c7-7f8c-478b-bec9-f40f4a60bca6"},{"name":"reportFormat","in":"query","description":"Das Format des im Zip-Archiv enthaltenen Validatorreports (CSV oder JSON)","required":true,"schema":{"type":"string","pattern":"(CSV)|(JSON)"}}],"responses":{"200":{"description":"Der Validatorreport wurde erfolgreich ermittelt.","content":{"application/octet-stream":{}}},"400":{"description":"Ungültige Argumente in der Anfrage"},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Es gibt noch keinen Report oder das Redaktionssystem existiert nicht."},"500":{"description":"Bei der Verarbeitung des Requests ist ein Fehler aufgetreten."}},"security":[{"pvog_auth":[]}]}},"/v1/archivvalidator/komplettreport/download/getDownloadToken":{"get":{"tags":["ArchivValidatorController"],"summary":"Liefert ein Download-Token für einen Validatorreport.","description":"Liefert ein Download-Token für einen Validatorreport. Es muss passend zum Download entweder eine SchemeAgencyId oder eine Id übergeben werden.","operationId":"getDownloadToken","parameters":[{"name":"schemeAgencyId","in":"query","description":"Die SchemeAgencyId des Redaktionssystems","required":false,"schema":{"type":"string"}},{"name":"id","in":"query","description":"Die Id des Validierungsvorgangs","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Ok","content":{"text/plain":{}}},"401":{"description":"Der Zugriff ist nicht autorisiert","content":{"application/json":{}}},"403":{"description":"Keine Berechtigung für diesen Zugriff","content":{"application/json":{}}},"500":{"description":"Bei der Verarbeitung der Anfrage ist ein Fehler aufgetreten.","content":{"application/json":{}}}},"security":[{"pvog_auth":[]}]}},"/v1/archivvalidator/historie/{schemeAgencyId}":{"get":{"tags":["ArchivValidatorController"],"summary":"Liefert eine Historie zu allen Validierungen eines Redaktionssystems, mit Details zu den Fachvalidatoren","description":"Die Details enthalten die Anzahl der Dateien,Zeitpunkt und Dauer der Validierung und die Anzahl der Funde jedes Fachvalidators","operationId":"getHistorie","parameters":[{"name":"schemeAgencyId","in":"path","description":"schemeAgencyId des betreffenden Redaktionssystems.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ValidierungsstatistikDetailOutModel"}},"examples":{"Historie über alle Validierungen des Redaktionssystems mit Details":{"description":"Historie über alle Validierungen des Redaktionssystems mit Details","value":[{"id":1,"redaktionssystemId":"S100002","landName":"Hamburg","gesamt":1234,"fehlerhaft":12,"warnungen":45,"hinweise":234,"startZeit":"2024-08-09T14:42:47","dauer":1200,"fachvalidatorFunde":[{"validatorId":"VAL0051","typ":"FEHLER","anzahl":2},{"validatorId":"VAL0052","typ":"WARNUNG","anzahl":21}]},{"id":1,"redaktionssystemId":"S100002","landName":"Hamburg","gesamt":1235,"fehlerhaft":13,"warnungen":46,"hinweise":235,"startZeit":"2024-08-08T14:42:47","dauer":1500,"fachvalidatorFunde":[{"validatorId":"VAL0053","typ":"FEHLER","anzahl":6},{"validatorId":"VAL0054","typ":"WARNUNG","anzahl":33}]}]}}}}},"400":{"description":"Ungültige Argumente im Request oder das Redaktionssystem existiert nicht"},"401":{"description":"Keine Berechtigung für diesen Zugriff"},"500":{"description":"Bei der Verarbeitung des Requests ist ein Fehler aufgetreten."}},"security":[{"pvog_auth":[]}]}},"/v1/{id}":{"delete":{"tags":["XZuFiValidatorController"],"summary":"Stoppt den Validierungsprozess","description":"Stoppt den Validierungsprozess, kann in der Phase VALIDATING ausgeführt werden. Ein Zugriff auf das Fortschrittsobjekt oder auf den Report ist nicht mehr möglich.","operationId":"stopXZuFiValidationV1","parameters":[{"name":"id","in":"path","description":"Die ID des Validierungsprozess.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Überprüfung wurde erfolgreich gestoppt.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fortschritt"},"examples":{"Der Validierungsprozess wurde gestoppt.":{"summary":"STOPPED","description":"Das Fortschritt Objekt, Dokumentation siehe Schema.","value":{"status":"STOPPED","id":"3fa85f64-5717-4562-b3fc-2c963f66afa9","gesamt":587,"validiert":278,"fehlerhaft":0,"warnungen":0,"hinweise":0}}}}}},"400":{"description":"Ungültiges Format der Validierungsprozess ID. Es wird eine UUID erwartet."},"401":{"description":"Es fehlt die notwendige Berechtigung für die Anfrage"},"404":{"description":"Die Id des Fortschrittsobjekt konnte nicht gefunden werden."}},"security":[{"pvog_auth":[]}]}}},"components":{"schemas":{"ValidierungsAnfrageV6":{"type":"object","properties":{"indexPfad":{"type":"string","description":"Die URL mit der Index Datei des Bereitstellungsort.","minLength":1},"userName":{"type":"string","description":"Der Benutzername für den Zugriff auf die Dateien des Bereitstellungsorts."},"password":{"type":"string","description":"Das Kennwort für den Zugriff auf die Dateien des Bereitstellungsorts."},"redaktionssystemId":{"type":"string","description":"Die eindeutige ID des Redaktionssystems, welches validiert werden soll.","example":"B100019","minLength":1}},"required":["indexPfad","redaktionssystemId"]},"Fortschritt":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Die eindeutige Validierungsprozess ID."},"status":{"type":"string","description":"Der Status des Validierungsprozess.","enum":["WAITING","READING_INDEX","VALIDATING","FINISHED","STUCK","ABORTED"],"example":"WAITING, READING_INDEX, VALIDATING, FINISHED, STOPPED"},"gesamt":{"type":"integer","format":"int64","description":"Die Gesamtzahl der zu validierenden Dokumente."},"validiert":{"type":"integer","format":"int64","description":"Die Anzahl der bereits validierten Dokumente."},"fehlerhaft":{"type":"integer","format":"int64","description":"Die Anzahl der fehlerhaften Dokumente."},"warnungen":{"type":"integer","format":"int64","description":"Die Anzahl der Dokumente die Warnungen enthalten."},"hinweise":{"type":"integer","format":"int64","description":"Die Anzahl der Dokumente die Hinweise enthalten."}}},"ValidierungsAnfrageBenutzerdefiniert":{"type":"object","properties":{"indexPfad":{"type":"string","description":"Die URL mit der Index Datei des Bereitstellungsort.","minLength":1},"userName":{"type":"string","description":"Der Benutzername für den Zugriff auf die Dateien des Bereitstellungsorts."},"password":{"type":"string","description":"Das Kennwort für den Zugriff auf die Dateien des Bereitstellungsorts."},"erlaubteArs":{"type":"array","description":"Liste mit den ARS des Redaktionssystems. In der Regel wird nur ein zweistelliger Ländercode verwendet. Bsp: 01 Schleswig-Holstein, 02 Freie und Hansestadt Hamburg","items":{"type":"string"},"minItems":1},"redaktionssystemId":{"type":"string","description":"Die eindeutige ID des Redaktionssystems gemäß Sammlerdienstkonzept.","example":"L100001","minLength":1},"erlaubteLeikaTypisierung":{"type":"array","description":"Liste mit den erlaubten Leika Typisierungen.","example":["2","3","2/3","3a","3b"],"items":{"type":"string"}}},"required":["erlaubteArs","indexPfad","redaktionssystemId"]},"MeldungV2":{"type":"object","properties":{"typ":{"type":"string","description":"Der Typ des Protokolleintrags.","enum":["INFO","FEHLER","WARNUNG","HINWEIS"],"example":"FEHLER"},"nachricht":{"type":"string","description":"Die Nachricht des Protokolleintrags."},"nachrichtId":{"type":"string","description":"Eindeutiger Bezeichner für die Art von Fehlernachricht."},"nachrichtParameter":{"type":"array","description":"Eindeutige Parameter wie z.B. XZuFi-IDs oder ungültige Inhalte, welche auf die Fehlerursache hinweisen.","items":{"type":"string"}},"anzahl":{"type":"integer","format":"int32","description":"Anzahl, wie häufig dieser Eintrag erstellt wurde."}}},"ReportV2":{"type":"object","properties":{"status":{"type":"string","description":"Das Ergebnis der Validierung.","example":"Valide, ValideMitWarnungen, NichtValide"},"vollstaendig":{"type":"boolean","description":"Report wurde gekürzt/nicht gekürzt."},"info":{"type":["string","null"],"description":"Zusatzinformationen zum Report."},"warnungen":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Warnungen."},"hinweise":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Hinweisen."},"fehlerhaft":{"type":"integer","format":"int64","description":"Anzahl fehlerhafter Dokumente."},"validiert":{"type":"integer","format":"int64","description":"Anzahl bereits validierter Dokumente."},"gesamt":{"type":"integer","format":"int64","description":" Gesamtzahl der zu validierenden Dokumente."},"validierungsprotokolle":{"type":"array","description":"Liste aller Validierungsprotokolle aller Dokumente.","items":{"$ref":"#/components/schemas/ValidierungsprotokollV2"}}}},"ValidatorErgebnisV2":{"type":"object","properties":{"validatorId":{"type":"string","description":"Wenn vorhanden, die ID des Validators, welcher diesen Eintrag protokolliert hat.","example":"VAL0001"},"meldungen":{"type":"array","description":"Sammlung an Meldungen für diesen Validator.","items":{"$ref":"#/components/schemas/MeldungV2"}}}},"ValidierungsprotokollV2":{"type":"object","properties":{"status":{"type":"string","description":"Status der Validierung eines Dokumentes."},"dokumentName":{"type":"string","description":"Name bzw. Pfad eines Dokumentes."},"validatorErgebnisse":{"type":"array","description":"Liste aller Protokolleinträge eines Dokumentes.","items":{"$ref":"#/components/schemas/ValidatorErgebnisV2"}}}},"RedaktionssystemConfigV2":{"type":"object","properties":{"redaktionssystemId":{"type":"string","description":"Die Redaktionssystem-ID (schemeAgencyID)."},"landcode":{"type":"string","deprecated":true,"description":"Der Landcode des Bundeslands in Großbuchstaben."},"name":{"type":"string","description":"Der Name des Redaktionssystems bzw. des Bundeslands."},"ars":{"type":"array","description":"Liste von Gebietsschlüssel-Präfixen (ARS), für die das Redaktionssystem zugelassen ist.","example":["02","03"],"items":{"type":"string"}},"leikaTypen":{"type":"array","description":"Liste von kompatiblen Leika-Typen.","example":["2a","2b","3","3a","3b","2/3","4","4a","4b","5","6","7","8","9","10"],"items":{"type":"string"}}}},"Statistik":{"type":"object","properties":{"status":{"type":"string","description":"Das Ergebnis der Validierung.","example":"Valide, ValideMitWarnungen, NichtValide"},"warnungen":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Warnungen."},"hinweise":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Hinweisen."},"fehlerhaft":{"type":"integer","format":"int64","description":"Anzahl fehlerhafter Dokumente."},"validiert":{"type":"integer","format":"int64","description":"Anzahl bereits validierter Dokumente."},"gesamt":{"type":"integer","format":"int64","description":" Gesamtzahl der zu validierenden Dokumente."},"validatorStatistik":{"type":"array","description":"Statistik pro Validator.","items":{"$ref":"#/components/schemas/ValidatorStatistik"}}}},"ValidatorStatistik":{"type":"object","properties":{"validatorModus":{"type":"string","description":"Modus des Validators","example":"Warnung, Fehler"},"validatorName":{"type":"string","description":"Name des Validators"},"anzahl":{"type":"integer","format":"int32","description":"Anzahl der Treffer."}}},"ValidatorConfig":{"type":"object","properties":{"backendVersion":{"type":"string","description":"Versionsnummer des Validator Backends"},"fachvalidatorVersion":{"type":"string","description":"Versionsnummer der Fachvalidator Lib"},"xzufiVersionen":{"type":"array","description":"XZuFi Versionen","items":{"type":"string"}},"validatoren":{"type":"array","description":"Validatoren","items":{"$ref":"#/components/schemas/ValidatorInfoModel"}}}},"ValidatorInfoModel":{"type":"object","properties":{"id":{"type":"string"},"beschreibung":{"type":"string"},"aktiv":{"type":"boolean"},"modus":{"type":"string","enum":["WARNING","ERROR","HINT"]},"bereitstelldatum":{"type":"string","format":"date"},"nummer":{"type":"string"}}},"ValidierungsstatistikOutModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Die Id der Validierung, wird zur Abfrage der Details und des Protokolls verwendet werden."},"redaktionssystemId":{"type":"string","description":"Die schemeAgencyId des Redaktionssystems"},"landName":{"type":"string","description":"Der Name des Bundeslandes"},"gesamt":{"type":"integer","format":"int64","description":"Gesamtzahl der zu validierenden Dokumente"},"fehlerhaft":{"type":"integer","format":"int64","description":"Anzahl fehlerhafter Dokumente"},"warnungen":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Warnungen"},"hinweise":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Hinweisen"},"startZeit":{"type":"string","format":"date-time","description":"Startzeitpunkt der Validierung"},"dauer":{"type":"string","description":"Dauer der Validierung in Sekunden"}}},"FachvalidatorFund":{"type":"object","properties":{"validatorId":{"type":"string","description":"Id des Fachvalidators, z.b. VAL0039"},"typ":{"type":"string","description":"Typ der Meldungen","enum":["INFO","FEHLER","WARNUNG","HINWEIS"]},"anzahl":{"type":"integer","format":"int64","description":"Anzahl der Meldungen"}}},"ValidierungsstatistikDetailOutModel":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Die Id der Validierung, wird zur Abfrage der Details und des Protokolls verwendet werden."},"redaktionssystemId":{"type":"string","description":"Die schemeAgencyId des Redaktionssystems"},"landName":{"type":"string","description":"Der Name des Bundeslandes"},"gesamt":{"type":"integer","format":"int64","description":"Gesamtzahl der zu validierenden Dokumente"},"fehlerhaft":{"type":"integer","format":"int64","description":"Anzahl fehlerhafter Dokumente"},"warnungen":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Warnungen"},"hinweise":{"type":"integer","format":"int64","description":"Anzahl valider Dokumente mit Hinweisen"},"startZeit":{"type":"string","format":"date-time","description":"Startzeitpunkt der Validierung"},"dauer":{"type":"string","description":"Dauer der Validierung in Sekunden"},"fachvalidatorFunde":{"type":"array","description":"Die Id der Validierung, wird zur Abfrage der Details und des Protokolls verwendet werden.","items":{"$ref":"#/components/schemas/FachvalidatorFund"}}}}},"securitySchemes":{"pvog_auth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://stage.pvog.fitko.net/auth/realms/pvog/protocol/openid-connect/auth","tokenUrl":"https://stage.pvog.fitko.net/auth/realms/pvog/protocol/openid-connect/token","scopes":{}}}}}}}