{
	"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
									}
								}
							}
						}
					}
				}
			}
		},
		"/verbrauchsausweis-wohnen/": {
			"patch": {
				"parameters": [],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": { "application/json": { "schema": {} } }
					}
				}
			}
		},
		"/verbrauchsausweis-wohnen/{uid}": {
			"patch": {
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"type": "object",
								"properties": {
									"ausstellgrund": {
										"type": "string",
										"enum": [
											"Neubau",
											"Vermietung",
											"Verkauf",
											"Modernisierung",
											"Sonstiges"
										],
										"description": "Ausstellgrund wie z.B. Vermietung oder Verkauf",
										"nullable": true
									},
									"registriernummer": {
										"type": "string",
										"nullable": true,
										"description": "Die Registriernummer des Ausweises"
									},
									"zusaetzliche_heizquelle": {
										"type": "boolean",
										"nullable": true,
										"description": "Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen"
									},
									"einheit_1": {
										"type": "string",
										"nullable": true,
										"description": "Einheit des Energieträgers der primären Heizquelle"
									},
									"einheit_2": {
										"type": "string",
										"nullable": true,
										"description": "Einheit des Energieträgers der sekundären Heizquelle"
									},
									"startdatum": {
										"type": "string",
										"format": "date-time",
										"nullable": true
									},
									"verbrauch_1": {
										"type": "integer",
										"description": "Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre",
										"nullable": true
									},
									"verbrauch_2": {
										"type": "integer",
										"description": "Energieverbrauch der primären Heizquelle im zweiten der drei Verbrauchsjahre",
										"nullable": true
									},
									"verbrauch_3": {
										"type": "integer",
										"description": "Energieverbrauch der primären Heizquelle im letzten der drei Verbrauchsjahre",
										"nullable": true
									},
									"verbrauch_4": {
										"type": "integer",
										"description": "Energieverbrauch der sekund̈́ären Heizquelle im ersten der drei Verbrauchsjahre",
										"nullable": true
									},
									"verbrauch_5": {
										"type": "integer",
										"description": "Energieverbrauch der sekund̈́ären Heizquelle im zweiten der drei Verbrauchsjahre",
										"nullable": true
									},
									"verbrauch_6": {
										"type": "integer",
										"description": "Energieverbrauch der sekund̈́ären Heizquelle im letzten der drei Verbrauchsjahre",
										"nullable": true
									},
									"warmwasser_enthalten": {
										"type": "boolean",
										"nullable": true,
										"description": "Falls Warmwasser im Verbrauchswert enthalten ist, sollte dieser Wert auf true stehen"
									},
									"warmwasser_anteil_bekannt": {
										"type": "boolean",
										"nullable": true,
										"description": "Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen"
									},
									"wird_gekuehlt": {
										"type": "boolean",
										"nullable": true,
										"description": "Falls Kühlung im Verbrauch enthalten ist, sollte dieser Wert auf true stehen"
									},
									"keller_beheizt": {
										"type": "boolean",
										"nullable": true,
										"description": "Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen"
									},
									"faktorKeller": {
										"type": "number",
										"nullable": true,
										"description": "Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist."
									},
									"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 (z.B. Solarsystem, Wärmepumpe, etc.) 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."
									},
									"anteil_warmwasser_1": {
										"type": "number",
										"nullable": true,
										"description": "Anteil des Warmwassers am Gesamtverbrauch der primären Energiequelle in Prozent"
									},
									"anteil_warmwasser_2": {
										"type": "number",
										"nullable": true,
										"description": "Anteil des Warmwassers am Gesamtverbrauch der sekundären Energiequelle in Prozent"
									}
								},
								"additionalProperties": false
							}
						}
					}
				},
				"parameters": [
					{
						"name": "uid",
						"in": "path",
						"required": true,
						"schema": { "type": "string" }
					},
					{
						"name": "Authorization",
						"schema": { "type": "string" },
						"required": true,
						"in": "header"
					}
				],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": { "application/json": { "schema": {} } }
					}
				}
			}
		},
		"/aufnahme/": {
			"put": {
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"type": "object",
								"properties": {
									"aufnahme": {
										"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",
													"exclusiveMinimum": true,
													"minimum": 0
												},
												"nullable": true
											},
											"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": [
											"baujahr_gebaeude",
											"baujahr_heizung"
										],
										"additionalProperties": false
									},
									"uid_objekt": { "type": "string" }
								},
								"required": ["aufnahme", "uid_objekt"],
								"additionalProperties": false
							}
						}
					}
				},
				"parameters": [],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": {
							"application/json": {
								"schema": {
									"type": "object",
									"properties": {
										"uid": { "type": "string" }
									},
									"required": ["uid"],
									"additionalProperties": false
								}
							}
						}
					}
				}
			}
		},
		"/aufnahme/{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": [
									"baujahr_gebaeude",
									"baujahr_heizung",
									"baujahr_klima"
								],
								"additionalProperties": false
							}
						}
					}
				},
				"parameters": [
					{
						"name": "uid",
						"in": "path",
						"required": true,
						"schema": { "type": "string" }
					}
				],
				"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" }
									},
									"required": ["uid"],
									"additionalProperties": false
								}
							}
						}
					}
				}
			}
		},
		"/auth/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
								}
							}
						}
					}
				}
			}
		},
		"/auth/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" },
										"accessToken": { "type": "string" },
										"refreshToken": { "type": "string" },
										"refreshTokenBase64": {
											"type": "string"
										},
										"accessTokenBase64": {
											"type": "string"
										},
										"exp": { "type": "number" }
									},
									"required": [
										"uid",
										"accessToken",
										"refreshToken",
										"refreshTokenBase64",
										"accessTokenBase64",
										"exp"
									],
									"additionalProperties": false
								}
							}
						}
					}
				}
			}
		},
		"/user/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",
												"email",
												"rolle"
											],
											"additionalProperties": false
										},
										{ "enum": ["null"], "nullable": true }
									]
								}
							}
						}
					}
				}
			}
		},
		"/user/": {
			"put": {
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"type": "object",
								"properties": {
									"email": {
										"type": "string",
										"format": "email"
									},
									"passwort": {
										"type": "string",
										"minLength": 6
									},
									"vorname": { "type": "string" },
									"name": { "type": "string" }
								},
								"required": [
									"email",
									"passwort",
									"vorname",
									"name"
								],
								"additionalProperties": false
							}
						}
					}
				},
				"parameters": [],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": {
							"application/json": {
								"schema": {
									"type": "object",
									"properties": {
										"uid": { "type": "string" }
									},
									"required": ["uid"],
									"additionalProperties": false
								}
							}
						}
					}
				}
			}
		},
		"/objekt/{uid}/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": [
					{
						"name": "uid",
						"in": "path",
						"required": true,
						"schema": { "type": "string" }
					}
				],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": {
							"application/json": {
								"schema": {
									"type": "object",
									"properties": {
										"uid": {
											"type": "string",
											"description": "Die UID des Bildes."
										}
									},
									"required": ["uid"],
									"additionalProperties": false
								}
							}
						}
					}
				}
			}
		},
		"/objekt/{uid}/": {
			"patch": {
				"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"
									}
								},
								"additionalProperties": false
							}
						}
					}
				},
				"parameters": [
					{
						"name": "uid",
						"in": "path",
						"required": true,
						"schema": { "type": "string" }
					},
					{
						"name": "Authorization",
						"schema": { "type": "string" },
						"required": true,
						"in": "header"
					}
				],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": { "application/json": { "schema": {} } }
					}
				}
			}
		},
		"/objekt/": {
			"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"
									}
								},
								"additionalProperties": false
							}
						}
					}
				},
				"parameters": [],
				"responses": {
					"200": {
						"description": "Successful response",
						"content": {
							"application/json": {
								"schema": {
									"type": "object",
									"properties": {
										"uid": { "type": "string" }
									},
									"required": ["uid"],
									"additionalProperties": false
								}
							}
						}
					}
				}
			}
		}
	},
	"servers": [{ "url": "awd" }]
}
