{"openapi":"3.0.3","info":{"title":"Title","version":"1.0.0","description":""},"paths":{"klimafaktoren":{"get":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plz":{"type":"string","minLength":4,"maxLength":5},"startdatum":{"type":"string","format":"date-time"},"enddatum":{"type":"string","format":"date-time"},"genauigkeit":{"type":"string","enum":["months","years"]}},"required":["plz","startdatum","enddatum","genauigkeit"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"month":{"type":"number"},"year":{"type":"number"},"klimafaktor":{"type":"number"}},"required":["month","year","klimafaktor"],"additionalProperties":false}}}}}}}},"postleitzahlen":{"get":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plz":{"type":"string","minLength":1,"maxLength":5},"limit":{"type":"integer","maximum":50,"minimum":1,"default":10}},"required":["plz"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"plz":{"type":"string","minLength":4,"maxLength":5},"stadt":{"type":"string"},"bundesland":{"type":"string"},"landkreis":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"}},"required":["plz","stadt","bundesland","landkreis","lat","lon"],"additionalProperties":false}}}}}}}},"index":{"put":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true},"plz":{"type":"string","nullable":true,"description":"Postleitzahl des Gebäudes"},"ort":{"type":"string","nullable":true,"description":"Ort des Gebäudes"},"adresse":{"type":"string","nullable":true,"description":"Adresse (Straße und Hausnummer) des Gebäudes"}},"required":["latitude","longitude","plz","ort","adresse"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"uid":{"type":"string","format":"uuid"}},"required":["uid"],"additionalProperties":false}}}}}}},"[uid]":{"patch":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ausweisart":{"type":"string","enum":["VerbrauchsausweisWohnen","VerbrauchsausweisGewerbe","BedarfsausweisWohnen","BedarfsausweisGewerbe"],"description":"Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen","nullable":true},"gebaeudetyp":{"type":"string","nullable":true,"description":"Art des Gebäudes und seiner primären Nutzungsart"},"gebaeudeteil":{"type":"string","nullable":true,"description":"Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil"},"baujahr_gebaeude":{"type":"array","items":{"type":"integer"},"description":"Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde"},"baujahr_heizung":{"type":"array","items":{"type":"integer"},"description":"Alle Jahre in denen die Heizung eingebaut oder grundlegend verändert wurde"},"baujahr_klima":{"type":"array","items":{"type":"integer"},"description":"Alle Jahre in denen die Klimaanlage eingebaut oder grundlegend verändert wurde"},"einheiten":{"type":"integer","description":"Anzahl der (Wohn)Einheiten im Gebäude","nullable":true},"flaeche":{"type":"integer","description":"Wohnfläche bei Wohngebäuden, Nutzfläche bei Gewerbegebäuden","nullable":true},"nutzflaeche":{"type":"integer","description":"(energetische) Nutzfläche des Gebäudes. Bei Gewerbegebäuden entspricht Sie der Nutzfläche","nullable":true},"saniert":{"type":"boolean","nullable":true,"description":"Falls das Gebäude energetisch saniert ist, sollte dieser Wert auf true stehen"},"keller":{"type":"string","enum":["BEHEIZT","UNBEHEIZT","NICHT_VORHANDEN"],"description":"Ob ein Keller vorhanden, beheizt oder unbeheizt ist","nullable":true},"dachgeschoss":{"type":"string","enum":["BEHEIZT","UNBEHEIZT","NICHT_VORHANDEN"],"description":"Ob ein Dachgeschoss vorhanden, beheizt oder unbeheizt ist","nullable":true},"lueftung":{"type":"string","enum":["Fensterlueftung","Schachtlueftung","LueftungsanlageMitWaermerueckgewinnung","LueftungsanlageOhneWaermerueckgewinnung"],"description":"Art der Gebäudelüftung","nullable":true},"kuehlung":{"type":"string","nullable":true,"description":"Art der Gebäudekühlung"},"leerstand":{"type":"integer","description":"Prozentualer Leerstand des Gebäudes in einem durchschnittlichen Jahr","nullable":true},"alternative_heizung":{"type":"boolean","nullable":true,"description":"Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen"},"alternative_warmwasser":{"type":"boolean","nullable":true,"description":"Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen"},"alternative_lueftung":{"type":"boolean","nullable":true,"description":"Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen"},"alternative_kuehlung":{"type":"boolean","nullable":true,"description":"Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen"},"brennstoff_1":{"type":"string","nullable":true,"description":"Genutzer Brennstoff der primären Energiequelle"},"brennstoff_2":{"type":"string","nullable":true,"description":"Genutzer Brennstoff der sekundären Energiequelle"},"storniert":{"type":"boolean","nullable":true,"description":"Falls der Ausweis storniert wurde, sollte dieser Wert auf true stehen"},"erledigt":{"type":"boolean","nullable":true,"description":"Falls der Ausweis erledigt ist, sollte dieser Wert auf true stehen"},"bestellt":{"type":"boolean","nullable":true,"description":"Falls der Ausweis bestellt wurde, sollte dieser Wert auf true stehen"},"zurueckgestellt":{"type":"boolean","nullable":true,"description":"Falls der Ausweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen"},"prueftext":{"type":"string","nullable":true,"description":"Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung"},"boxpruefung":{"type":"boolean","nullable":true},"energieeffizienzklasse":{"type":"string","nullable":true,"description":"Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes"},"erstellungsdatum":{"type":"string","format":"date-time","description":"Datum an dem der Kunde den Ausweis erstellt hat","nullable":true},"ausstellungsdatum":{"type":"string","format":"date-time","description":"Datum an dem der Aussteller den Ausweis ausgestellt hat","nullable":true},"zentralheizung":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen"},"solarsystem_warmwasser":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen"},"warmwasser_rohre_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen"},"niedertemperatur_kessel":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über einen Niedertemperaturkessel verfügt, sollte dieser Wert auf true stehen"},"brennwert_kessel":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über einen Brennwertkessel verfügt, sollte dieser Wert auf true stehen"},"heizungsrohre_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die Heizungsrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen"},"standard_kessel":{"type":"boolean","nullable":true},"waermepumpe":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über eine Wärmepumpe verfügt, sollte dieser Wert auf true stehen"},"raum_temperatur_regler":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über einen Raumtemperaturregler verfügt, sollte dieser Wert auf true stehen"},"photovoltaik":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über eine Photovoltaikanlage verfügt, sollte dieser Wert auf true stehen"},"durchlauf_erhitzer":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über einen Durchlauferhitzer verfügt, sollte dieser Wert auf true stehen"},"einzelofen":{"type":"boolean","nullable":true},"zirkulation":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über eine Zirkulationspumpe verfügt, sollte dieser Wert auf true stehen"},"einfach_verglasung":{"type":"boolean","nullable":true,"description":"Falls die Fenster des Gebäudes einfach gedämmt sind, sollte dieser Wert auf true stehen"},"dreifach_verglasung":{"type":"boolean","nullable":true,"description":"Falls die Fenster des Gebäudes dreifach gedämmt sind, sollte dieser Wert auf true stehen"},"fenster_teilweise_undicht":{"type":"boolean","nullable":true,"description":"Falls die Fenster des Gebäudes teilweise undicht sind, sollte dieser Wert auf true stehen"},"doppel_verglasung":{"type":"boolean","nullable":true,"description":"Falls die Fenster des Gebäudes doppelt gedämmt sind, sollte dieser Wert auf true stehen"},"fenster_dicht":{"type":"boolean","nullable":true,"description":"Falls die Fenster des Gebäudes dicht sind, sollte dieser Wert auf true stehen"},"rolllaeden_kaesten_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls das Gebäude über gedämmte Rolllädenkästen verfügt, sollte dieser Wert auf true stehen"},"isolier_verglasung":{"type":"boolean","nullable":true,"description":"Falls die Fenster des Gebäudes isolier Verglasung haben, sollte dieser Wert auf true stehen"},"tueren_undicht":{"type":"boolean","nullable":true,"description":"Falls die Türen des Gebäudes undicht sind, sollte dieser Wert auf true stehen"},"tueren_dicht":{"type":"boolean","nullable":true,"description":"Falls die Türen des Gebäudes dicht sind, sollte dieser Wert auf true stehen"},"dachgeschoss_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls das Dachgeschoss des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen"},"keller_decke_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die Kellerdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen"},"keller_wand_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die Kellerwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen"},"aussenwand_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die Außenwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen"},"oberste_geschossdecke_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die oberste Geschossdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen"},"aussenwand_min_12cm_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die Außenwände des Gebäudes mindestens 12cm gedämmt sind, sollte dieser Wert auf true stehen"},"dachgeschoss_min_12cm_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls das Dachgeschoss des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen"},"oberste_geschossdecke_min_12cm_gedaemmt":{"type":"boolean","nullable":true,"description":"Falls die oberste Geschossdecke des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen"}},"required":["ausweisart","gebaeudetyp","gebaeudeteil","baujahr_gebaeude","baujahr_heizung","baujahr_klima","einheiten","flaeche","nutzflaeche","saniert","keller","dachgeschoss","lueftung","kuehlung","leerstand","alternative_heizung","alternative_warmwasser","alternative_lueftung","alternative_kuehlung","brennstoff_1","brennstoff_2","storniert","erledigt","bestellt","zurueckgestellt","prueftext","boxpruefung","energieeffizienzklasse","erstellungsdatum","ausstellungsdatum","zentralheizung","solarsystem_warmwasser","warmwasser_rohre_gedaemmt","niedertemperatur_kessel","brennwert_kessel","heizungsrohre_gedaemmt","standard_kessel","waermepumpe","raum_temperatur_regler","photovoltaik","durchlauf_erhitzer","einzelofen","zirkulation","einfach_verglasung","dreifach_verglasung","fenster_teilweise_undicht","doppel_verglasung","fenster_dicht","rolllaeden_kaesten_gedaemmt","isolier_verglasung","tueren_undicht","tueren_dicht","dachgeschoss_gedaemmt","keller_decke_gedaemmt","keller_wand_gedaemmt","aussenwand_gedaemmt","oberste_geschossdecke_gedaemmt","aussenwand_min_12cm_gedaemmt","dachgeschoss_min_12cm_gedaemmt","oberste_geschossdecke_min_12cm_gedaemmt"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{}}}}}}},"ticket":{"put":{"description":"Erstellt ein neues Support Ticket und weist den Ersteller diesem zu, falls ein Authorization Header mitgegeben wurde.","tags":["Tickets"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"titel":{"type":"string"},"beschreibung":{"type":"string"},"metadata":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},{"type":"array","items":{"$ref":"#/properties/metadata"}},{"type":"object","additionalProperties":{"$ref":"#/properties/metadata"}}]},"email":{"type":"string"}},"required":["titel","beschreibung","metadata","email"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"uid":{"type":"string","format":"uuid"}},"required":["uid"],"additionalProperties":false}}}}}}},"access-token":{"get":{"description":"Erstellt, basierend auf einem existierenden und gültigen Refresh Tokens, einen neuen Access Token, welcher zur Authentifizierung genutzt werden kann. Der resultierende Access Token ist nur 2 Tage gültig und muss danach neu generiert werden. Diese Funktion gibt ebenfalls einen neuen Refresh Token zurück, der alte wird dadurch invalidiert.","tags":["Benutzer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"refreshToken":{"type":"string"}},"required":["refreshToken"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"accessToken":{"type":"string"},"accessTokenExpiry":{"type":"number"},"refreshToken":{"type":"string"},"refreshTokenExpiry":{"type":"number"}},"required":["accessToken","accessTokenExpiry","refreshToken","refreshTokenExpiry"],"additionalProperties":false}}}}}}},"refresh-token":{"get":{"description":"Erstellt sowohl einen neuen Refresh Token als auch einen Access Token für den gegebenen Benutzer. Der Refresh Token kann später für die Erstellung neuer Access Token genutzt werden.","tags":["Benutzer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"passwort":{"type":"string","minLength":8,"maxLength":100}},"required":["email","passwort"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"uid":{"type":"string","format":"uuid"},"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"refreshTokenBase64":{"type":"string"},"accessTokenBase64":{"type":"string"},"exp":{"type":"number"}},"required":["uid","accessToken","refreshToken","refreshTokenBase64","accessTokenBase64","exp"],"additionalProperties":false}}}}}}},"self":{"get":{"description":"Gibt die Daten des momentan eingeloggten Benutzers zurück. Falls der Authorization Key invalid ist wird stattdessen null zurückgegeben.","tags":["Benutzer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"uid":{"type":"string"},"name":{"type":"string","nullable":true},"vorname":{"type":"string","nullable":true},"email":{"type":"string"},"profilbild":{"type":"string","nullable":true},"plz":{"type":"string","nullable":true},"ort":{"type":"string","nullable":true},"adresse":{"type":"string","nullable":true},"telefon":{"type":"string","nullable":true},"anrede":{"type":"string","nullable":true},"rolle":{"type":"string","enum":["USER","ADMIN"]}},"required":["uid","name","vorname","email","profilbild","plz","ort","adresse","telefon","anrede","rolle"],"additionalProperties":false},{"enum":["null"],"nullable":true}]}}}}}}},"bilder":{"put":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kategorie":{"type":"string","enum":["Heizung","Fenster","Gebaeude","Daemmung"]},"base64":{"type":"string"}},"required":["kategorie","base64"],"additionalProperties":false}}}},"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"uid":{"type":"string","description":"Die UID des Bildes."}},"required":["uid"],"additionalProperties":false}}}}}}}}}