{"swagger": "2.0", "basePath": "/api", "paths": {"/billing": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/BillingOverviewResponseSchema"}}}}, "summary": "returns billing overview for properties", "operationId": "get_billing_overview", "security": [{"oauth2": []}], "tags": ["billing"]}}, "/billing/aggregated": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/BillingAggregatedResponseSchema"}}}, "summary": "get data for Aggregierter Abrechnungsstatus chart", "operationId": "get_aggregated_billing_status", "parameters": [{"name": "start", "in": "query", "type": "string", "description": "Start of date range"}, {"name": "end", "in": "query", "type": "string", "description": "End of date range"}], "security": [{"oauth2": []}], "tags": ["billing"]}}, "/billing/periods": {"get": {"responses": {"404": {"description": "Billing period not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/BillingPeriodResponseSchema"}}}}, "summary": "list billing heating periods", "operationId": "get_billing_periods", "security": [{"oauth2": []}], "tags": ["billing"]}}, "/billing/property/{property_id}/periods": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexcepted exception"}, "404": {"description": "Billing information for this property not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/BillingPeriodResponseSchema"}}}}, "summary": "list billing information for a given property", "operationId": "get_billing_information_by_property_list", "security": [{"oauth2": []}], "tags": ["billing"]}}, "/casavi/import": {"get": {"responses": {"400": {"description": "Bad request"}, "200": {"description": "Success"}}, "summary": "Get complete import data from casavi", "operationId": "get_casavi_import", "security": [{"oauth2": []}], "tags": ["casavi"]}, "post": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "post_casavi_import", "security": [{"oauth2": []}], "tags": ["casavi"]}}, "/casavi/property": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "Get casavi properties", "operationId": "get_casavi_property_list", "security": [{"oauth2": []}], "tags": ["casavi"]}}, "/casavi/property/{casavi_property_id}/import": {"parameters": [{"default": "1", "in": "path", "description": "Id of property in casavi external systems", "name": "casavi_property_id", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Property not found"}, "401": {"description": "Authorization error"}, "200": {"description": "Success"}}, "summary": "Get unit & tenants in kugu import format from casavi property to import", "description": "into kugu property (if no property_id query argument is provided) main user property is used", "operationId": "get_casavi_property_import", "security": [{"oauth2": []}], "tags": ["casavi"]}}, "/central-heating": {"get": {"responses": {"404": {"description": "No central heatings found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingIdResponse"}}}}, "summary": "list central heating by property", "operationId": "get_central_heating_list", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/consumption": {"get": {"responses": {"500": {"description": "Unexpected error"}, "404": {"description": "Not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingConsumptionResponse"}}}}, "operationId": "get_multi_central_heating_consumption_resource", "parameters": [{"name": "periods", "in": "query", "type": "string", "description": "List of periods separated by comma", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00"}, {"name": "measurements", "in": "query", "type": "string", "description": "List of additional calculations to include, separeted by comma.\nAvailable values: final_energy, primary_energy, heat_energy, electricity, co2_emission", "default": "final_energy, primary_energy"}, {"name": "ids", "in": "query", "type": "string", "description": "List of periods separated by comma", "default": "1,2"}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/consumption/{central_heating_id}": {"parameters": [{"name": "central_heating_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "404": {"description": "Not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/CentralHeatingConsumptionResponse"}}}, "operationId": "get_single_central_heating_consumption_resource", "parameters": [{"name": "periods", "in": "query", "type": "string", "description": "List of periods separated by comma", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00"}, {"name": "measurements", "in": "query", "type": "string", "description": "List of additional calculations to include, separeted by comma.\nAvailable values: final_energy, primary_energy, heat_energy, electricity, co2_emission", "default": "final_energy, primary_energy"}, {"name": "ids", "in": "query", "type": "string", "description": "List of periods separated by comma", "default": "1,2"}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/contracting": {"get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Bad request: invalid start or end date"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ContractingResponseSchema"}}}}, "operationId": "get_contracting_table", "parameters": [{"description": "2019-01-01T00:00:00", "name": "start", "type": "string", "in": "query"}, {"description": "2019-12-31T00:00:00", "name": "end", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/group": {"post": {"responses": {"500": {"description": "unexpected error"}, "201": {"description": "group created"}}, "operationId": "post_group_create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CentralHeatingGroup"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/group/{group_id}/central_heating/{central_heating_id}": {"parameters": [{"name": "group_id", "in": "path", "required": true, "type": "integer"}, {"name": "central_heating_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "unexpected error"}, "201": {"description": "group member created"}}, "operationId": "post_group_membership", "security": [{"oauth2": []}], "tags": ["central-heating"]}, "delete": {"responses": {"404": {"description": "no membership found"}, "200": {"description": "group member removed"}}, "operationId": "delete_group_membership", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/groups": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_available_groups", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/optimisations/{property_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "No property found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/HeatingCurveResponseSchema"}}}}, "summary": "Get heating curve expert system values", "operationId": "get_heating_curve_expert_system", "parameters": [{"description": "start date in YYYY-MM-DD format", "name": "start", "type": "string", "in": "query"}, {"description": "end date in YYYY-MM-DD format", "name": "end", "type": "string", "in": "query"}, {"description": "Boolean - Limits the meterings per optimisation module by 1", "name": "limited", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/periods": {"get": {"responses": {"404": {"description": "Central heating not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingPeriodResponseSchema"}}}}, "summary": "list all heating periods", "operationId": "get_central_heating_periods", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/property/{property_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Central heating not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingPropertyResponse"}}}}, "summary": "list central heating by property", "operationId": "get_central_heating_by_property_id", "parameters": [{"name": "period", "in": "query", "type": "string", "default": []}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/property/{property_id}/devices": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingDevices"}}}}, "summary": "list central heating devices by property", "operationId": "get_central_heating_devices_by_property_id", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/wips/property/{property_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "create ch from wips integration", "operationId": "post_central_heating_create_wips", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/WipsCentralHeating"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/wips/{tid}": {"parameters": [{"name": "tid", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"401": {"description": "Unauthorized"}, "200": {"description": "Success"}}, "summary": "get central heating list from wips", "operationId": "get_wips_central_heating", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/{central_heating_id}": {"parameters": [{"in": "path", "description": "Central heating identifier (portal_db.central_heating.id)", "name": "central_heating_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Central heating not found"}, "500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Update selected fields of central heating object entry by id", "operationId": "put_central_heating_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CentralHeatingIdResponse"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}, "get": {"responses": {"404": {"description": "Central heating not found"}, "500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/CentralHeatingIdResponse"}}}, "summary": "Get given central heating object", "operationId": "get_central_heating_id", "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/{central_heating_id}/environmental-data": {"parameters": [{"in": "path", "description": "Central heating identifier (portal_db.central_heating.id)", "name": "central_heating_id", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "Environmental data not found"}, "500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Creates EnvironmentalData entry", "operationId": "post_environmental_data_create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/EnvironmentalData"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/{central_heating_id}/environmental-data/{environmental_data_id}": {"parameters": [{"in": "path", "description": "Environmental data identifier (portal_db.environmental_data.id)", "name": "environmental_data_id", "required": true, "type": "integer"}, {"in": "path", "description": "Central heating identifier (portal_db.central_heating.id)", "name": "central_heating_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Environmental data not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Update EnvironmentalData entry by id", "operationId": "put_environmental_data_by_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/EnvironmentalData"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}, "delete": {"responses": {"404": {"description": "Environmental data not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Delete EnvironmentalData entry by id", "operationId": "delete_environmental_data_by_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/EnvironmentalData"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}, "get": {"responses": {"404": {"description": "Environmental data not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Read EnvironmentalData entry by id", "operationId": "get_environmental_data_by_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/EnvironmentalData"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/central-heating/{central_heating_id}/last_maintenance": {"parameters": [{"in": "path", "description": "Central heating identifier (portal_db.central_heating.id)", "name": "central_heating_id", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "update last central_heating_id of cho", "operationId": "post_last_maintenance", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/LastMaintananceUpdate"}}], "security": [{"oauth2": []}], "tags": ["central-heating"]}}, "/clients": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientListResponseSchema"}}}}, "summary": "get an overview of all clients", "operationId": "get_client_list", "security": [{"oauth2": []}], "tags": ["clients"]}}, "/clients/current": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientListResponseSchema"}}}}, "summary": "get details for a specific client", "operationId": "get_client_current_details", "security": [{"oauth2": []}], "tags": ["clients"]}}, "/clients/current/imprint": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientImprintResponseSchema"}}}}, "summary": "get imprint markdown of the current domain", "operationId": "get_client_current_imprint__public", "security": [], "tags": ["clients"]}}, "/clients/current/privacy": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientPrivacyPolicyResponseSchema"}}}}, "summary": "get privacy policy markdown of the current domain", "operationId": "get_client_current_privacy_policy__public", "security": [], "tags": ["clients"]}}, "/clients/current/styling": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientStylingResponseSchema"}}}}, "summary": "get logo and main colors of the current domain", "operationId": "get_client_current_styling__public", "security": [], "tags": ["clients"]}}, "/clients/current/terms": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientTermsOfServiceResponseSchema"}}}}, "summary": "get terms of service markdown of the current domain", "operationId": "get_client_current_terms_of_service__public", "security": [], "tags": ["clients"]}}, "/clients/{client_id}": {"parameters": [{"name": "client_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "summary": "edit client by client id", "operationId": "put_client_details", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ClientUpdate"}}], "security": [{"oauth2": []}], "tags": ["clients"]}, "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ClientListResponseSchema"}}}}, "summary": "get details for a specific client", "operationId": "get_client_details", "security": [{"oauth2": []}], "tags": ["clients"]}}, "/clients/{client_id}/logo": {"parameters": [{"name": "client_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "Unexpected error"}}, "summary": "set logo of the specified mandant", "operationId": "post_update_client_logo", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Logo"}}], "security": [{"oauth2": []}], "tags": ["clients"]}}, "/clients/{client_id}/logo/{logo_type}": {"parameters": [{"name": "client_id", "in": "path", "required": true, "type": "integer"}, {"name": "logo_type", "in": "path", "required": true, "type": "string"}], "delete": {"responses": {"500": {"description": "Unexpected error"}}, "summary": "delete logo of the specified mandant", "operationId": "delete_delete_client_logo", "security": [{"oauth2": []}], "tags": ["clients"]}}, "/consumption/average/{consumption_type}/{consumption_summary_type}": {"parameters": [{"default": "unit", "in": "path", "description": "Type of consumption units (euro/unit)", "name": "consumption_summary_type", "required": true, "type": "string"}, {"default": "heating", "in": "path", "description": "Type of consumption for tenant app (heating/electicity/warmwater etc.)", "name": "consumption_type", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_consumption_average", "parameters": [{"default": "heating", "in": "query", "description": "Type of consumption for tenant app (heating/warmwater )", "name": "consumption_type", "required": true, "type": "string"}, {"name": "tenant_id", "in": "query", "type": "integer", "description": "ID of a tenant"}], "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/budget/{consumption_type}/divide-into/{time_division}/{consumption_summary_type}": {"parameters": [{"default": "unit", "in": "path", "description": "Type of consumption units (euro/unit)", "name": "consumption_summary_type", "required": true, "type": "string"}, {"default": "month-of-year", "in": "path", "description": "Type of time division for tenant app (month-of-year etc.)", "name": "time_division", "required": true, "type": "string"}, {"default": "heating", "in": "path", "description": "Type of consumption for tenant app (heating/electicity/warmwater etc.)", "name": "consumption_type", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_consumption_budget", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/cost-components/{year}": {"parameters": [{"name": "year", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionCostComponentResponseSchema"}}}, "operationId": "get_conspumption_cost_components", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/cost-components/{year}/{unit_id}": {"parameters": [{"name": "year", "in": "path", "required": true, "type": "integer"}, {"name": "unit_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionCostComponentResponseSchema"}}}, "operationId": "get_conspumption_cost_components", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/discovery": {"get": {"responses": {"404": {"description": "Tenant not found"}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_category_discovery", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/outside-temperature": {"parameters": [{"default": "unit", "in": "query", "description": "Type of consumption units (euro/unit)", "name": "consumption_summary_type", "type": "string"}, {"default": "heating", "in": "query", "description": "Type of consumption for tenant app (heating/electicity/warmwater etc.)", "name": "consumption_type", "type": "string"}], "get": {"responses": {"404": {"description": "Not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "operationId": "get_tenant_outside_temperature", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/terms-and-conditions/acceptance": {"put": {"responses": {"404": {"description": "User not found"}, "400": {"description": "User is not assigned to any property"}, "200": {"description": "Success"}}, "operationId": "put_consumption_app_terms_and_conditions", "security": [{"oauth2": []}], "tags": ["consumption"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/AcceptanceResponseSchema"}}}, "operationId": "get_consumption_app_terms_and_conditions", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/consumption/{consumption_type}/divide-into/{time_division}/{consumption_summary_type}": {"parameters": [{"default": "unit", "in": "path", "description": "Type of consumption units (euro/unit)", "name": "consumption_summary_type", "required": true, "type": "string"}, {"default": "month-of-year", "in": "path", "description": "Type of time division for tenant app (month-of-year etc.)", "name": "time_division", "required": true, "type": "string"}, {"default": "heating", "in": "path", "description": "Type of consumption for tenant app (heating/electicity/warmwater etc.)", "name": "consumption_type", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_consumption", "security": [{"oauth2": []}], "tags": ["consumption"]}}, "/costs": {"parameters": [{"default": 1, "in": "query", "description": "Id of cost", "name": "cost_id", "type": "string"}], "post": {"responses": {"200": {"description": "Success"}}, "summary": "create new cost for property", "operationId": "post_create_cost", "security": [{"oauth2": []}], "tags": ["costs"]}}, "/costs/description-suggestions": {"get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Bad request"}, "200": {"description": "Success"}}, "summary": "get suggestions for cost descriptions", "operationId": "get_descriptionsuggestions", "security": [{"oauth2": []}], "tags": ["costs"]}}, "/costs/local": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "create new cost for property", "description": "available types are:\n- additional cost\n- direct cost\n- fuel cost\n- heating operation cost", "operationId": "post_create_local_cost", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PortalDirectCost"}}], "security": [{"oauth2": []}], "tags": ["costs"]}}, "/costs/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/AdditionalCostResponseSchema"}}}}, "summary": "get costs for a specific property", "operationId": "get_property_costs", "security": [{"oauth2": []}], "tags": ["costs"]}}, "/costs/tenant/{tenant_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of tenant (nutzer)", "name": "tenant_id", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "create direct cost for tenant", "operationId": "post_direct_cost_by_tenant", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DirectCost"}}], "security": [{"oauth2": []}], "tags": ["costs"]}}, "/costs/{cost_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of cost", "name": "cost_id", "required": true, "type": "integer"}], "put": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "update exsisting cost", "operationId": "put_cost", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CostUpdate"}}], "security": [{"oauth2": []}], "tags": ["costs"]}, "delete": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "delete cost by id", "operationId": "delete_cost", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CostUpdate"}}], "security": [{"oauth2": []}], "tags": ["costs"]}}, "/credentials": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_credential_dump", "security": [{"oauth2": []}], "tags": ["credentials"]}}, "/credentials/topics/{credential_type}": {"parameters": [{"default": "", "in": "path", "description": "Type of the credential entries", "name": "credential_type", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_credential_topics", "security": [{"oauth2": []}], "tags": ["credentials"]}}, "/credentials/types": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_credential_types", "security": [{"oauth2": []}], "tags": ["credentials"]}}, "/credentials/{credential_type}/{credential_topic}": {"parameters": [{"default": "", "in": "path", "description": "Topic of an credetenial entry", "name": "credential_topic", "required": true, "type": "string"}, {"default": "", "in": "path", "description": "Type of the credential entries", "name": "credential_type", "required": true, "type": "string"}], "put": {"responses": {"200": {"description": "Success"}}, "operationId": "put_credentials", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "object", "properties": {"payload": {"type": "string"}}}}], "security": [{"oauth2": []}], "tags": ["credentials"]}, "delete": {"responses": {"200": {"description": "Success"}}, "operationId": "delete_credentials", "security": [{"oauth2": []}], "tags": ["credentials"]}, "get": {"responses": {"404": {"description": "Credential not found"}}, "operationId": "get_credentials", "security": [{"oauth2": []}], "tags": ["credentials"]}, "post": {"responses": {"400": {"description": "Invalid credentials"}}, "operationId": "post_credentials", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "object", "properties": {"payload": {"type": "string"}}}}], "security": [{"oauth2": []}], "tags": ["credentials"]}}, "/customers": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/CustomerResponseSchema"}}}}, "summary": "list all customers", "operationId": "get_create_customer", "security": [{"oauth2": []}], "tags": ["customers"]}, "post": {"responses": {"400": {"description": "No data passed for creating customer / Validation error"}, "200": {"description": "Success"}}, "summary": "Create new customer", "operationId": "post_create_customer", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CustomerCreate"}}], "security": [{"oauth2": []}], "tags": ["customers"]}}, "/customers/next-customer-number": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "generate the next logical customer number", "operationId": "get_customer_number", "security": [{"oauth2": []}], "tags": ["customers"]}}, "/customers/salutation": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/SalutationResponseSchema"}}}}, "summary": "list all available salutations", "operationId": "get_customer_salutation_list", "security": [{"oauth2": []}], "tags": ["customers"]}}, "/customers/{customer_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of customer (kunden)", "name": "customer_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Customer not found"}, "400": {"description": "No data passed for updating customer / Validation error"}, "200": {"description": "Success"}}, "summary": "update customer", "operationId": "put_customer", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CustomerUpdate"}}], "security": [{"oauth2": []}], "tags": ["customers"]}, "get": {"responses": {"500": {"description": "Unexpected exception"}, "404": {"description": "Not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/CustomerDetailResponseSchema"}}}, "summary": "get detailed data for a given customer", "operationId": "get_customer", "security": [{"oauth2": []}], "tags": ["customers"]}}, "/customers/{customer_id}/coordinates": {"parameters": [{"name": "lat", "in": "query", "type": "number", "description": "Latitude"}, {"name": "lon", "in": "query", "type": "number", "description": "Longitude"}, {"default": 1, "in": "path", "description": "Id of customer (kunden)", "name": "customer_id", "required": true, "type": "integer"}], "post": {"responses": {"400": {"description": "Validation errors"}, "404": {"description": "Address/Customer not found"}}, "summary": "Geocodes & sets address geocoordinates", "description": "if no payload provided tries to resolve against\naddress assigned in database", "operationId": "post_customer_address_geocode", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Geocoordinates"}}], "security": [{"oauth2": []}], "tags": ["customers"]}}, "/dashboard/smoke-detectors": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/SmokeDetectorsResponseSchema"}}}, "summary": "Get data for smoke detector dasboard view", "operationId": "get_smoke_detectors_dashboard", "security": [{"oauth2": []}], "tags": ["dashboard"]}}, "/data-collectors/devices/{device_eui}": {"parameters": [{"name": "device_eui", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "operationId": "get_data_collector_details", "security": [{"oauth2": []}], "tags": ["data-collectors"]}}, "/data-collectors/devices/{device_eui}/configuration": {"parameters": [{"name": "device_eui", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "operationId": "get_data_collectors_config", "security": [{"oauth2": []}], "tags": ["data-collectors"]}, "post": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "operationId": "post_data_collectors_config", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DatacollectorConfig"}}], "tags": ["data-collectors"]}}, "/data-collectors/devices/{device_eui}/datahub": {"parameters": [{"name": "device_eui", "in": "path", "required": true, "type": "string"}], "put": {"responses": {"200": {"description": "Success"}}, "operationId": "put_data_collectors_config__public", "tags": ["data-collectors"]}, "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_data_collectors_config__public", "security": [], "tags": ["data-collectors"]}}, "/data-collectors/lobaro-ids": {"put": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Updates all lobaro ids in the database to the current status quo of the lobaro api", "operationId": "put_lobaro_ids", "security": [{"oauth2": []}], "tags": ["data-collectors"]}, "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Returns a map of lobaro ids to their respective eras ids, kugu ids and device numbers", "operationId": "get_lobaro_ids", "parameters": [{"description": "whether the response should be returned in csv format", "name": "as_csv", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["data-collectors"]}}, "/data-collectors/{device_eui}/receptions": {"parameters": [{"name": "device_eui", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "operationId": "get_data_collector_receptions", "security": [{"oauth2": []}], "tags": ["data-collectors"]}}, "/data-inlets": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/DataInletResponseSchema"}}}}, "summary": "get device inlets", "operationId": "get_data_inlets", "security": [{"oauth2": []}], "tags": ["data-inlets"]}, "post": {"responses": {"400": {"description": "Bad request"}, "200": {"description": "Success"}}, "summary": "create new device inlets", "operationId": "post_data_inlets", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DataInlet"}}], "security": [{"oauth2": []}], "tags": ["data-inlets"]}}, "/data-inlets/{data_inlet_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of data inlet integration", "name": "data_inlet_id", "required": true, "type": "integer"}], "put": {"responses": {"400": {"description": "Bad request"}, "200": {"description": "Ok"}}, "summary": "update data inlet", "operationId": "put_data_inlet_details", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DataInletUpdate"}}], "security": [{"oauth2": []}], "tags": ["data-inlets"]}, "delete": {"responses": {"200": {"description": "Ok"}}, "summary": "delete data inlet", "operationId": "delete_data_inlet_details", "security": [{"oauth2": []}], "tags": ["data-inlets"]}}, "/device-inbox/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Not found"}, "409": {"description": "Foreign relation violation"}}, "summary": "Create new devices assigned to properties", "operationId": "put_new_devices_for_device_inbox", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "array", "items": {"$ref": "#/definitions/InboxDevice"}}}], "security": [{"oauth2": []}], "tags": ["device-inbox"]}, "delete": {"responses": {"404": {"description": "Not found"}, "409": {"description": "Devices cannot be deleted"}, "200": {"description": "Success"}}, "operationId": "delete_new_devices_for_device_inbox", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "array", "items": {"$ref": "#/definitions/InboxDevice"}}}], "security": [{"oauth2": []}], "tags": ["device-inbox"]}, "get": {"responses": {"404": {"description": "Not found"}, "200": {"description": "\n    List of objects like\n        {\n            \"id\": \"12345\",\n            \"sources\": [\n                {\n                    \"id\": \"1234\",\n                    \"datahub_id\": null,\n                    \"device_name\": \"device\",\n                    \"oms_id\": null\n                }\n            ],\n            \"type\": \"Type\",\n            \"property\": null, # Can be object with id and name\n            \"room\": null, # Can be object with id and name\n            \"unit\": null, # Can be object with id and name\n            \"manufacturer_id\": \"BBB\",\n            \"property_changed\": false,\n            \"gereate_id\": null,\n            \"existing\": 0,\n            \"tainted\": false\n        },\n    "}}, "operationId": "get_new_devices_for_device_inbox", "parameters": [{"name": "from", "in": "query", "type": "string", "description": "Either influx date expression or rfc3339 timestamp"}, {"name": "to", "in": "query", "type": "string", "description": "Either influx date expression or rfc3339 timestamp"}], "security": [{"oauth2": []}], "tags": ["device-inbox"]}}, "/device-inbox/{oms_id}/count": {"parameters": [{"default": "", "in": "path", "description": "hardware oms (WBM-ID)", "name": "oms_id", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success"}}, "summary": "get message count for single device from device inbox", "operationId": "get_device_message_count", "security": [{"oauth2": []}], "tags": ["device-inbox"]}}, "/files/assets/{filename}": {"parameters": [{"name": "filename", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "File not found"}, "200": {"description": "File download"}}, "operationId": "get_release_note_assets__public", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/central-heating/contracting/export": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_contracting_export", "parameters": [{"description": "2019-01-01T00:00:00", "name": "start", "type": "string", "in": "query"}, {"description": "2019-12-31T00:00:00", "name": "end", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/climate_factor": {"post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_climate_factor_import", "parameters": [{"name": "import_file", "in": "formData", "type": "file", "required": true, "description": "file"}], "security": [{"oauth2": []}], "consumes": ["multipart/form-data"], "tags": ["files"]}}, "/files/folder": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "Lists files in folder specified by path argument", "operationId": "get_folder_files", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/get_consumption_app_file/{language}/{file_name}": {"parameters": [{"name": "language", "in": "path", "required": true, "type": "string"}, {"name": "file_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "File not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ConsumptionDocumentsResponseSchema"}}}}, "operationId": "get_get_consumption_files", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/hardware/csv/export": {"get": {"responses": {"404": {"description": "Devices not found"}, "400": {"description": "Invalid parameters"}, "200": {"description": "File download"}}, "operationId": "get_hardware_csv_export", "parameters": [{"name": "ids", "in": "query", "type": "string", "description": "List of hardware ids", "default": "1,2"}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/insert/property/{property_id}": {"parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "object", "properties": {"payload": {"type": "string"}}}}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"200": {"description": "Success"}}, "summary": "read json and insert into database", "operationId": "post_document_insert", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/insert/property/{property_id}/unit/{unit_id}": {"parameters": [{"default": 1, "in": "path", "description": "Unit id for tenant", "name": "unit_id", "required": true, "type": "integer"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "Property or unit not found"}, "400": {"description": "Import contains errors"}, "200": {"description": "Success"}}, "operationId": "post_device_document_csv", "parameters": [{"name": "category", "in": "query", "type": "string", "description": "The type of import\n                         1. **digitaler_lieferschein_qundis**: Qunids csv file for devices\n                         2. **digitaler_lieferschein_aquamess**: Aquamess csv file for devices\n                         3. **digitaler_lieferschein_innotas**: Innotas csv file for devices\n                         ", "enum": ["digitaler_lieferschein_qundis", "digitaler_lieferschein_aquamess", "digitaler_lieferschein_innotas"]}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/presigned": {"get": {"responses": {"404": {"description": "File not found"}, "200": {"description": "Success"}}, "summary": "Returns file for static hosting etc", "description": "url argument is required", "operationId": "get_get_file__public", "security": [], "tags": ["files"]}}, "/files/property/devices-reading": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_central_heating_property_devices_reading_list_v1", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "500": {"description": "UnexpectedException"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/PropertyDocumentResponseSchema"}}}}, "summary": "get document data for a specific property", "operationId": "get_property_document_list", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}/csv/export": {"parameters": [{"in": "query", "description": "document export type", "name": "type", "type": "string"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "File download"}}, "operationId": "get_property_csv_export", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}/devices-reading": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_central_heating_property_devices_reading_by_id_v1", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}/export": {"parameters": [{"in": "query", "description": "document export type", "name": "type", "type": "string"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Export type not found"}, "200": {"description": "File download"}}, "summary": "download selected document for property", "operationId": "get_property_document_export", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}/new-import": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "Property not found"}, "400": {"description": "Csv invalid header"}, "200": {"description": "ok"}}, "summary": "Parse new import csv", "operationId": "post_new_csv_import", "parameters": [{"name": "import", "in": "formData", "type": "file", "required": true, "description": "new csv import file"}, {"name": "type", "in": "query", "type": "string", "description": "The type of import\n        1. **1**: full import (advanced)\n        2. **2**: import units and tenants\n        3. **3**: import only device data\n        4. **4**: import only tenant data\n        5. **5**: device readings\n        If not provided defaults to full import\n        ", "enum": [1, 2, 3, 4, 5]}], "security": [{"oauth2": []}], "consumes": ["multipart/form-data"], "tags": ["files"]}}, "/files/property/{property_id}/new-import/save": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"400": {"description": "Import contains error"}, "200": {"description": "Success"}}, "summary": "Save parsed results of /new-import endpoint", "operationId": "post_new_csv_save_entities", "parameters": [{"name": "type", "in": "query", "type": "string", "description": "The type of import\n        1. **1**: full import (advanced)\n        2. **2**: import units and tenants\n        3. **3**: import only device data\n        4. **4**: import only tenant data\n        5. **5**: device readings\n        If not provided defaults to full import\n        ", "enum": [1, 2, 3, 4, 5]}, {"name": "payload", "required": true, "in": "body", "schema": {"type": "object", "properties": {"payload": {"type": "string"}}}}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}/radiatis": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "ok"}}, "summary": "save radiatis csv import", "operationId": "post_radiatis_csv_import", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/property/{property_id}/smoke-detectors-protocol": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "400": {"description": "Protocol cannot be exported"}, "200": {"description": "File download"}}, "summary": "Export/save smoke detectors protocl csv file", "description": "if only_save flag is checked saves the csv instead of returning it", "operationId": "get_smoke_detectors_protocol_export", "parameters": [{"name": "only_save", "in": "query", "type": "string", "description": "Save flag of export protocol", "default": false}, {"name": "detectors", "in": "query", "type": "string", "description": "List of hardware ids for export separated by comma i.e 1,2,3"}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/redirect_etag/{etag}": {"parameters": [{"name": "etag", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Not found"}, "200": {"description": "Success"}}, "summary": "get file by etag", "operationId": "get_folder_file_redirect__public", "security": [], "tags": ["files"]}}, "/files/serialize/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"412": {"description": "database import failed due to prerequisites not matching"}, "406": {"description": "number of columns and headers do not match"}, "405": {"description": "not all rows have the same number of elements"}, "404": {"description": "file mimetype is not \"application/pdf\" or \"text/csv\""}, "200": {"description": "ok"}}, "summary": "upload a document and serialize it into json", "operationId": "post_document_parser", "parameters": [{"name": "import_file", "in": "formData", "type": "file", "required": true, "description": "file"}, {"name": "file_category", "in": "query", "type": "string", "required": true, "description": "The type of import\n                         1. **techem_technical_documentation**: techem pdf document\n                         2. **add_year_end_values_to_devices**: csvfile with full years readings\n                         3. **create_devices_for_units**: csvfile with devices connected to units\n                         4. **create_devices_and_units**: csvfile with devices and units\n                         5. **radiatis_csv**: csv radiatis file\n                         6. **('digitaler_lieferschein_qundis',)**: qundis device import file\n                         7. **('consumption_app',)**: consumption app documents\n                         ", "enum": ["techem_technical_documentation", "add_year_end_values_to_devices", "create_devices_for_units", "create_devices_and_units", "radiatis_csv", "digitaler_lieferschein_qundis", "consumption_app"]}, {"name": "dry_run", "in": "query", "type": "boolean", "description": "If the file should be directly inserted into the database", "default": true}, {"name": "unit_id", "in": "query", "type": "integer", "required": true, "description": "Nutzenheit id to import devices"}, {"name": "lang", "in": "query", "type": "string", "required": true, "description": "Language of consumption app document"}, {"name": "tenants", "in": "query", "type": "string", "description": "list of tenants with access to file"}], "security": [{"oauth2": []}], "consumes": ["multipart/form-data"], "tags": ["files"]}}, "/files/set_default_consumption_app_file/{language}/{file_name}": {"parameters": [{"name": "language", "in": "path", "required": true, "type": "string"}, {"name": "file_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"204": {"description": "OK"}}, "operationId": "post_default_consumption_app_file", "parameters": [{"name": "file", "in": "formData", "type": "file", "required": true, "description": "file"}], "security": [{"oauth2": []}], "consumes": ["multipart/form-data"], "tags": ["files"]}}, "/files/upload": {"post": {"responses": {"200": {"description": "Success"}, "500": {"description": "Unexpected error"}, "400": {"description": "File already exsist"}}, "summary": "save file in object storage", "operationId": "post_file_insert", "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/{file_id}": {"parameters": [{"name": "file_id", "in": "path", "required": true, "type": "integer"}], "delete": {"responses": {"404": {"description": "Not found"}, "200": {"description": "Success"}}, "summary": "removes file by id", "operationId": "delete_file_by_id", "parameters": [{"name": "file_id", "in": "query", "required": true, "type": "integer", "default": 1, "description": "Id of min.io file"}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/{file_id}/logo": {"parameters": [{"default": 1, "in": "path", "description": "Id of min.io file", "name": "file_id", "required": true, "type": "integer"}], "post": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Assign/Reassign file to be logo of entity", "operationId": "post_logo_file", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/LogoSchema"}}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/files/{file_id}/primary": {"parameters": [{"default": 1, "in": "path", "description": "Id of min.io file", "name": "file_id", "required": true, "type": "integer"}], "post": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Assign/Reassign file to be primary image of entity", "operationId": "post_primary_image_file", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PrimaryImage"}}], "security": [{"oauth2": []}], "tags": ["files"]}}, "/general/device-catalogue": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/DeviceCatalogueResponseSchema"}}}}, "summary": "Get device catalogue options", "operationId": "get_device_catalogue", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/device_types": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_device_type_list", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/eras-installer": {"get": {"responses": {"HTTPStatus.OK": {"description": "File found"}, "HTTPStatus.NOT_FOUND": {"description": "File not found"}}, "summary": "Get ERAS installer ", "description": "exe file", "operationId": "get_eras2_installer__public", "security": [], "produces": ["file/exe"], "tags": ["general"]}}, "/general/eras-version": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/DbVersionResponseSchema"}}}, "summary": "Returns ERAS db version statistics", "operationId": "get_eras_database_version__public", "security": [], "tags": ["general"]}}, "/general/force-notification": {"post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_force_notification_send", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SendMySubscriptionsContactSchema"}}], "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/fuel-calorific-value": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/FuelCalorificValueSchema"}}}}, "summary": "Get fuel medium calorific value", "description": "* value_s - Hs (s = superior, Latin for \u201chigher\u201d) (Brennwert)\n            Gross calorific value (Hs) = net calorific value (Hi) + condensation heat\n\n* value_i - Hi (i = inferior, Latin for \u201clower\u201d) (Heizwert)\n            Net calorific value (Hi) = gross calorific value (Hs) - condensation heat", "operationId": "get_fuel_medium_calorific_values", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/fuel-medium": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/FuelMediumResponseSchema"}}}}, "summary": "Get fuel medium options", "operationId": "get_fuel_medium", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/heating-system-type": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/FuelMediumResponseSchema"}}}}, "summary": "Get heating system type options", "operationId": "get_heating_system_type", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/mandant": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "404": {"description": "Not Found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MandantResponseSchema"}}}, "summary": "Get mandant data for origin domain", "operationId": "get_general_mandant_by_domain__public", "security": [], "tags": ["general"]}}, "/general/mandant/details": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "404": {"description": "Not Found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MandantDetailsResponseSchema"}}}, "summary": "Get mandant details for origin domain", "operationId": "get_general_mandant_details_by_domain", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/mandant/settings": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "404": {"description": "Not Found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MandantResponseSchema"}}}, "summary": "Get mandant settings for origin domain", "operationId": "get_general_mandant_settings_by_domain__public", "security": [], "tags": ["general"]}}, "/general/mandant/{mandant_slug}": {"parameters": [{"name": "mandant_slug", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"404": {"description": "Not Found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MandantResponseSchema"}}}, "summary": "Get mandant by slug", "operationId": "get_mandant_by_slug__public", "security": [], "tags": ["general"]}}, "/general/manufacturer": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_manufacturer_list", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/release-notes": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ReleaseNotesResponseSchema"}}}}, "summary": "Get list of release notes", "operationId": "get_release_notes", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/room": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/RoomResponseSchema"}}}}, "summary": "Get list of rooms", "operationId": "get_rooms", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/salutations": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/LabelValueResponseSchema"}}}}, "summary": "Get salutation options", "operationId": "get_salutations", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/timeframes": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TimefreamesResponseSchema"}}}}, "operationId": "get_generic_timeframes_range", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/titles": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/LabelValueResponseSchema"}}}}, "summary": "Get title options", "operationId": "get_titles", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/umlage": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/UmlageResponseSchema"}}}, "summary": "Get umlage options", "operationId": "get_umlage_options", "security": [{"oauth2": []}], "tags": ["general"]}}, "/general/unittypes": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitTypesResponseSchema"}}}}, "operationId": "get_unit_types_list", "security": [{"oauth2": []}], "tags": ["general"]}}, "/group": {"post": {"responses": {"201": {"description": "Created"}}, "operationId": "post_group", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/GroupCreate"}}], "security": [{"oauth2": []}], "tags": ["group"]}}, "/group/{group_id}": {"parameters": [{"name": "group_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Group not found"}, "200": {"description": "Success"}}, "operationId": "get_group_get_by_id", "security": [{"oauth2": []}], "tags": ["group"]}, "delete": {"responses": {"200": {"description": "Success"}}, "operationId": "delete_group_get_by_id", "security": [{"oauth2": []}], "tags": ["group"]}}, "/group/{group_id}/customer/{customer_id}": {"parameters": [{"name": "group_id", "in": "path", "required": true, "type": "integer"}, {"name": "customer_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_group_to_customer", "security": [{"oauth2": []}], "tags": ["group"]}, "delete": {"responses": {"200": {"description": "Success"}}, "operationId": "delete_group_to_customer", "security": [{"oauth2": []}], "tags": ["group"]}}, "/group/{group_id}/property/{property_id}": {"parameters": [{"name": "group_id", "in": "path", "required": true, "type": "integer"}, {"name": "property_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_group_to_property", "security": [{"oauth2": []}], "tags": ["group"]}, "delete": {"responses": {"200": {"description": "Success"}}, "operationId": "delete_group_to_property", "security": [{"oauth2": []}], "tags": ["group"]}}, "/group/{group_id}/user/{user_id}": {"parameters": [{"name": "group_id", "in": "path", "required": true, "type": "integer"}, {"name": "user_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"201": {"description": "Success"}}, "operationId": "post_group_to_user_create_and_delete", "security": [{"oauth2": []}], "tags": ["group"]}, "delete": {"responses": {"200": {"description": "Success"}}, "operationId": "delete_group_to_user_create_and_delete", "security": [{"oauth2": []}], "tags": ["group"]}}, "/group/{groupname}": {"get": {"responses": {"404": {"description": "Group not found"}, "200": {"description": "Success"}}, "operationId": "get_group_by_name", "parameters": [{"name": "groupname", "in": "path", "required": true, "type": "string", "default": "", "description": "Name of the keycloak group"}], "security": [{"oauth2": []}], "tags": ["group"]}}, "/hardware": {"post": {"responses": {"404": {"description": "Not found"}, "400": {"description": "Bad request"}, "200": {"description": "Ok"}}, "summary": "Add a new device", "operationId": "post_insert_device", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/NewDevice"}}], "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/catalog": {"post": {"responses": {"201": {"description": "Created"}}, "operationId": "post_device_catalog", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeviceCatalog"}}], "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/catalogue/full": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/DeviceCatalogResponseSchema"}}}}, "operationId": "get_device_catalog_all", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/catalogue/{catalog_id}": {"parameters": [{"name": "catalog_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"204": {"description": "Updated"}}, "operationId": "put_device_catalog_update", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeviceCatalog"}}], "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/data_collector_analysis/{hardware_id}": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Hardware not found"}}, "operationId": "get_data_collector_analysis", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/impulse-devices": {"get": {"responses": {"200": {"description": "Ok"}}, "operationId": "get_impulse_devices_data", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/intervals": {"put": {"responses": {"400": {"description": "Bad request"}, "200": {"description": "Ok"}}, "operationId": "put_hardware_intervals_update", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "array", "items": {"$ref": "#/definitions/HardwareIntervalSchema"}}}], "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/manager": {"get": {"responses": {"500": {"description": "Unexpeted exception"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/HardwareManagerResponseSchema"}}}, "summary": "list all hardware accessible to current user", "operationId": "get_hardware_list", "parameters": [{"name": "type_id", "in": "query", "type": "string", "description": "device type"}, {"name": "oms_id", "in": "query", "type": "string", "description": "device reference"}, {"name": "street", "in": "query", "type": "string", "description": "street"}, {"name": "hardware_state", "in": "query", "type": "integer", "description": "device status"}, {"name": "start", "in": "query", "type": "string", "description": "timeframe start"}, {"name": "end", "in": "query", "type": "string", "description": "timeframe end"}, {"name": "extend_smoke_detectors", "in": "query", "type": "boolean", "description": "extend smoke detectors information flag"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1.", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Entities per page. Defaults to 100.", "default": 100}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. asc|desc"}], "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/object/{object_number}": {"parameters": [{"default": "", "in": "path", "description": "Objektnummer from objekte in eras", "name": "object_number", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success"}}, "summary": "get hardware by eras object number", "operationId": "get_hardware_by_object_number", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/periods": {"get": {"responses": {"404": {"description": "Not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/PeriodResponseSchema"}}}}, "summary": "list all periods", "operationId": "get_central_heating_periods", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Failure"}, "404": {"description": "Property not found"}, "401": {"description": "No access to module"}}, "summary": "list all hardware data for a given property and hardware type", "operationId": "get_hardware_by_property", "parameters": [{"description": "Start date (e.g. start of billing period)", "name": "start", "type": "string", "in": "query"}, {"description": "End date (e.g. end of billing period)", "name": "end", "type": "string", "in": "query"}, {"description": "Type of hardware (e.g. \"smoke-detector\")", "name": "type", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/reception-analysis/property/{property_id}": {"parameters": [{"name": "from", "in": "query", "type": "string", "description": "influxdb timestamp", "default": "now()-7d"}, {"name": "to", "in": "query", "type": "string", "description": "influxdb timestamp", "default": "now()"}, {"name": "image", "in": "query", "type": "boolean", "description": "boolean to request a base64-encoded image", "default": "false"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}, "400": {"description": "Invalid arguments"}, "500": {"description": "Server error"}}, "operationId": "get_hardware_reception_analysis", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/reception-metrics": {"parameters": [{"name": "from", "in": "query", "type": "string", "description": "influxdb timestamp", "default": "now()-7d"}, {"name": "to", "in": "query", "type": "string", "description": "influxdb timestamp", "default": "now()"}], "get": {"responses": {"200": {"description": "Success"}, "404": {"description": "Invalid arguments"}}, "summary": "get reception metrics for all hardware that is accessible to the keycloak user", "operationId": "get_hardware_reception_counts", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/{hardware_id}": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Update hardware", "operationId": "put_hardware_detail", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ErasHardwareUpdate"}}], "security": [{"oauth2": []}], "tags": ["hardware"]}, "get": {"responses": {"404": {"description": "Hardware not found"}}, "summary": "get detailed hardware data", "operationId": "get_hardware_detail", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/{hardware_id}/activity": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Hardware not found"}}, "operationId": "get_hardware_activity", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/{hardware_id}/catalogue": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Hardware not found"}, "400": {"description": "Bad request"}, "200": {"description": "Ok"}}, "summary": "get detailed information of hardwares catalogue information", "operationId": "get_catalogue_data", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/{hardware_id}/history": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Hardware not found"}}, "operationId": "get_hardware_history", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/{hardware_id}/measuring-point": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Hardware not found"}}, "summary": "get detailed information of hardwares measurement point", "operationId": "get_measuring_point", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/hardware/{hardware_id}/metering": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected exception"}, "404": {"description": "Not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/HardwareMeteringResponseSchema"}}}}, "summary": "get list of hardware measurements for metering panels", "operationId": "get_metering_panel", "security": [{"oauth2": []}], "tags": ["hardware"]}}, "/keycloak/users/property-manager": {"post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_keycloak_property_manager", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "object", "properties": {"email": {"type": "string"}, "first_name": {"type": "string"}, "last_name": {"type": "string"}, "property_id": {"type": "integer"}, "username": {"type": "string"}}}}], "security": [{"oauth2": []}], "tags": ["keycloak"]}}, "/malinche/firmware": {"get": {"responses": {"200": {"description": "ok", "schema": {"type": "array", "items": {"$ref": "#/definitions/MalincheFirmwareResponseSchema"}}}}, "summary": "lists the different types of malinches available", "operationId": "get_malinche_firmware_list", "security": [{"oauth2": []}], "tags": ["malinche"]}}, "/malinche/firmware/download": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "download the requested malinche firmware", "operationId": "get_malinche_firmware_downloader", "parameters": [{"name": "firmware_class", "in": "query", "type": "string", "description": "One of production", "enum": ["production"]}], "security": [{"oauth2": []}], "produces": ["application/zip"], "tags": ["malinche"]}}, "/measurements/expert-system/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "400": {"description": "Invalid parameters"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MeasurementResponseSchema"}}}, "summary": "Get data for various expert system charts", "operationId": "get_expert_system_measurements", "parameters": [{"name": "measurement", "in": "query", "type": "string", "required": true, "enum": ["detection_points", "mean_temperature", "wmz_mean_temperature", "wmz_current_water_volumen", "wmz_mean_forward_flow", "slope", "intercept", "system_efficiency", "nightdrop_detection_points", "heating_curve", "pump_characteristics", "summer_shutdown"]}, {"name": "group_by_period", "in": "query", "type": "string", "description": "Time in influx query format to group entries by", "default": "15m"}, {"name": "time_filter", "in": "query", "type": "string", "default": "2019-11-01T00:00:00Z|now-14d"}, {"name": "to", "in": "query", "type": "string", "default": "2020-01-01T00:00:00Z|now-14d"}, {"name": "from", "in": "query", "type": "string", "default": "2021-01-01T00:00:00Z|now-21d"}], "security": [{"oauth2": []}], "tags": ["measurements"]}}, "/measurements/probe/hardware/{hardware_id}": {"parameters": [{"name": "hardware_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/MeasurementProbeResponseSchema"}}}, "operationId": "get_measurement_by_hardware_probe", "security": [{"oauth2": []}], "tags": ["measurements"]}}, "/measurements/property/{property_id}/hardware/{hardware_id}": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "400": {"description": "Invalid parameters"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MeasurementResponseSchema"}}}, "summary": "Get data various device charts", "operationId": "get_device_measurements", "parameters": [{"name": "measurement", "in": "query", "type": "string", "required": true, "enum": ["temperature", "radiators_heat", "cubic_meters", "flow_temperature", "return_flow_temperature", "external_temperature", "heat_energy", "water_volume", "heat_output", "current_flow", "oil_consumption", "gas_consumption", "electricity_consumption", "speed", "frequency", "pressure", "voltage", "electricity_consumption_pure"]}, {"name": "group_by_period", "in": "query", "type": "string", "description": "Time in influx query format to group entries by", "default": "4h"}, {"name": "time_filter", "in": "query", "type": "string", "default": "now-14d"}, {"name": "to", "in": "query", "type": "string", "default": "now-14d"}, {"name": "from", "in": "query", "type": "string", "default": "now-21d"}, {"name": "intermediate_type", "in": "query", "type": "string"}], "security": [{"oauth2": []}], "tags": ["measurements"]}}, "/measurements/type": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/MeasurementTypesResponseSchema"}}}, "summary": "returns available measurement types for charts", "operationId": "get_measurement_types", "security": [{"oauth2": []}], "tags": ["measurements"]}}, "/mfr/document/{document_id}": {"parameters": [{"name": "document_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_mfr_fetch_document_request", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/documents": {"get": {"responses": {"404": {"description": "Not found"}}, "summary": "get list of mfr service objects", "operationId": "get_mfr_document_list", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/report/{property_id}/{service_request_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}, {"name": "service_request_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_mfr_reportby_service_request", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/service-object/{property_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"404": {"description": "Property not found"}, "201": {"description": "ServiceObject created"}}, "operationId": "post_mfr_service_object_create", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/service-objects": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "get list of mfr service objects", "operationId": "get_mfr_service_object_list", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/service-requests": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "get list of mfr service objects", "operationId": "get_mfr_service_request_list", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/service_request": {"post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_mfr_service_request", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ServiceRequestSchema"}}], "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/service_request/{service_request_id}": {"parameters": [{"name": "service_request_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_mfr_service_request_by_id", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/service_request/{service_request_id}/{tag_id}": {"parameters": [{"name": "service_request_id", "in": "path", "required": true, "type": "integer"}, {"name": "tag_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"200": {"description": "Success"}}, "operationId": "put_mfr_service_request_link_to_tag", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/tag": {"post": {"responses": {"401": {"description": "Unauthorized"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "send mfr tag", "operationId": "post_mfr_send_tag", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TagSchema"}}], "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/mfr/tags": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_mfr_tag_list", "security": [{"oauth2": []}], "tags": ["mfr"]}}, "/openhab/inbox": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "get content of Openhab inbox", "operationId": "get_openhab_inbox", "security": [{"oauth2": []}], "tags": ["openhab"]}}, "/openhab/inbox/approve": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "approve device from Openhab inbox", "operationId": "post_approve_openhab_device", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/OpenhabDevice"}}], "security": [{"oauth2": []}], "tags": ["openhab"]}}, "/openhab/inbox/ignore": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "sets ignore flag of Openhab inbox", "operationId": "post_ignore_openhab_device", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/OpenhabDevice"}}], "security": [{"oauth2": []}], "tags": ["openhab"]}}, "/openhab/inbox/remove": {"delete": {"responses": {"200": {"description": "Success"}}, "summary": "remove device from Openhab inbox", "operationId": "delete_remove_openhab_device", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/OpenhabDevice"}}], "security": [{"oauth2": []}], "tags": ["openhab"]}}, "/openhab/inbox/unignore": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "removes ignore flag of Openhab inbox", "operationId": "post_unignore_openhab_device", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/OpenhabDevice"}}], "security": [{"oauth2": []}], "tags": ["openhab"]}}, "/periods": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "Returns default periods for the portal", "operationId": "get_general_periods", "parameters": [{"description": "Optional scope to specify the period usage (one of [\"central-heating\", \"expert-system\"])", "name": "scope", "type": "string", "in": "query"}, {"description": "Year of first timeperiod (defaults to 2017)", "name": "start_year", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["periods"]}}, "/periods/billing/{billing_period_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of billing period", "name": "billing_period_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Billing information for this property not found"}, "400": {"description": "Bad request, returns json with message field"}, "200": {"description": "Success"}}, "summary": "Locks/unlocks billing period", "operationId": "put_update_billing_information_period", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/BillingPeriodUpdate"}}], "security": [{"oauth2": []}], "tags": ["periods"]}}, "/periods/manager": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_hardware_manager_periods", "parameters": [{"description": "Optional scope to specify the period usage (one of [\"central-heating\", \"expert-system\"])", "name": "scope", "type": "string", "in": "query"}, {"description": "Year of first timeperiod (defaults to 2017)", "name": "start_year", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["periods"]}}, "/periods/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "Returns periods for a specific property of the portal", "operationId": "get_property_periods", "parameters": [{"description": "Optional scope to specify the period usage (one of [\"central-heating\", \"expert-system\"])", "name": "scope", "type": "string", "in": "query"}, {"description": "Year of first timeperiod (defaults to 2017)", "name": "start_year", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["periods"]}}, "/properties": {"post": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "summary": "create property", "operationId": "post_property_create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PropertyCreation"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/billing/property/{property_id}/periods": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"400": {"description": "Bad request"}, "401": {"description": "Unauthorized"}, "201": {"description": "Created"}}, "operationId": "post_create_billing_period_by_template", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/BillingPeriod"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/next-object-number": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "generate the next logical object number", "operationId": "get_object_number", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/unit_group": {"put": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "summary": "update property unit group", "operationId": "put_property_unit_group", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UnitGroupDelete"}}], "security": [{"oauth2": []}], "tags": ["properties"]}, "get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitGroupRelationsResponseSchema"}}}}, "summary": "list all property unit groups", "operationId": "get_property_unit_group", "security": [{"oauth2": []}], "tags": ["properties"]}, "post": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "summary": "create property unit group or groups", "operationId": "post_property_unit_group", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UnitGroupCreate"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/unit_groups": {"put": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "summary": "delete multiple property unit groups child parent relationship", "operationId": "put_property_unit_groups_children", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UnitGroupMatrixDelete"}}], "security": [{"oauth2": []}], "tags": ["properties"]}, "get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitGroupRelationsMatrixResponseSchema"}}}}, "summary": "list all property unit groups child parent relationship", "operationId": "get_property_unit_groups_children", "security": [{"oauth2": []}], "tags": ["properties"]}, "post": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "summary": "create multiple property unit groups child parent relationship", "operationId": "post_property_unit_groups_children", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UnitGroupMatrix"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/units": {"post": {"responses": {"401": {"description": "Unauthorized"}, "200": {"description": "Success"}}, "operationId": "post_batch_create_unit", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UnitList"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/user": {"post": {"responses": {"200": {"description": "Success"}}, "summary": "create a user for a given property", "operationId": "post_property_user_create", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/user/{keycloak_username}": {"parameters": [{"default": "", "in": "path", "description": "Username in keycloak", "name": "keycloak_username", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PropertyByUsernameResponseSchema"}}}, "summary": "list all properties for a given user", "operationId": "get_property_by_user", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/user/{user_property_id}": {"parameters": [{"default": 1, "in": "path", "description": "The id of property to user association", "name": "user_property_id", "required": true, "type": "integer"}], "delete": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "delete connection betweend user & property", "operationId": "delete_property_user", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/wips/import": {"post": {"responses": {"401": {"description": "Unauthorized"}, "200": {"description": "Success"}}, "summary": "get properties list from wips", "operationId": "post_wips_property", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/WIPSIdList"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/wips/list": {"get": {"responses": {"401": {"description": "Unauthorized"}, "200": {"description": "Success"}}, "summary": "get properties list from wips", "operationId": "get_wips_properties", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Not Found"}, "403": {"description": "No permission"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "put_property_detail", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PropertyUpdate"}}], "security": [{"oauth2": []}], "tags": ["properties"]}, "get": {"responses": {"404": {"description": "Not found"}, "500": {"description": "Unexpected exception"}, "403": {"description": "No permission"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/PropertyResponseSchema"}}}, "summary": "get data for a specific property", "operationId": "get_property_detail", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}/communication": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "put": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "summary": "upsert property communication", "operationId": "put_property_communication", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/CommunicationUpdateOrPost"}}], "security": [{"oauth2": []}], "tags": ["properties"]}, "get": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "operationId": "get_property_communication", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}/consumption-groups": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "500": {"description": "UnexpectedException"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/ConsumptionGroupResponseSchema"}}}}, "summary": "get all consumption grops for a specific property", "operationId": "get_property_consumption_groups_list", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}/coordinates": {"parameters": [{"name": "lat", "in": "query", "type": "number", "description": "Latitude"}, {"name": "lon", "in": "query", "type": "number", "description": "Longitude"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"400": {"description": "Validation errors"}, "404": {"description": "Address/Property not found"}}, "summary": "Geocodes & sets address geocoordinates", "description": "if no payload provided tries to resolve against\naddress assigned in database", "operationId": "post_property_address_geocode", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Geocoordinates"}}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}/energy-utilisers": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/PropertyEnergyUtiliserResponseSchema"}}}}, "summary": "get document data for a specific property", "operationId": "get_property_energy_utilisers_list", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}/modules": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_property_modules", "parameters": [{"name": "module", "in": "query", "type": "string", "required": true, "description": "type of module", "enum": ["billing", "hardware", "smoke_detector", "central_heating"]}, {"name": "state", "in": "query", "type": "boolean", "required": true, "description": "is_locked"}], "security": [{"oauth2": []}], "tags": ["properties"]}}, "/properties/{property_id}/uvi-actions": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "404": {"description": "Property not found"}, "403": {"description": "No required permission"}, "200": {"description": "Success"}}, "operationId": "get_uvi_action", "security": [{"oauth2": []}], "tags": ["properties"]}}, "/public-keys": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/PublicKeyResponseSchema"}}}}, "summary": "list all public keys", "operationId": "get_public_keys", "security": [{"oauth2": []}], "tags": ["public-keys"]}, "post": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "save new public key", "operationId": "post_public_keys", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PublicKey"}}], "security": [{"oauth2": []}], "tags": ["public-keys"]}}, "/public-keys/{public_key_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of public key", "name": "public_key_id", "required": true, "type": "integer"}], "put": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "update public key by id", "operationId": "put_public_key_details", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PublicKey"}}], "security": [{"oauth2": []}], "tags": ["public-keys"]}}, "/radiatis/export/{propery_id}": {"parameters": [{"default": 4, "in": "query", "description": "The property id (portal_db.property.id)", "name": "property_id", "type": "string"}, {"name": "propery_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "property not found"}, "200": {"description": "Success"}}, "operationId": "get_radiatis_property_export", "security": [{"oauth2": []}], "tags": ["radiatis"]}}, "/radiatis/projects/{project_id}": {"parameters": [{"name": "project_id", "in": "path", "required": true, "type": "integer"}], "delete": {"responses": {"404": {"description": "Project not found"}, "200": {"description": "Success"}}, "operationId": "delete_radiatis_projects", "security": [{"oauth2": []}], "tags": ["radiatis"]}}, "/readings": {"put": {"responses": {"404": {"description": "Unit not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Upsert a list of readings by id", "operationId": "put_multiple_readings", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/BatchReadingUpdateSchema"}}], "security": [{"oauth2": []}], "tags": ["readings"]}}, "/readings/hardware/{hardware_id}": {"parameters": [{"name": "hardware_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_hardware_readings", "security": [{"oauth2": []}], "tags": ["readings"]}, "post": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "post_hardware_readings", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ReadingInstance"}}], "security": [{"oauth2": []}], "tags": ["readings"]}}, "/readings/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "Success"}, "400": {"description": "Invalid parameters"}}, "summary": "Get readings for a specific property", "description": "PLEASE NOTE: \nOnly most recent installation/removal readings are returned per device.\nIf 'reading_inconsistency_flag' is set to true on a device, \nplease review GET readings/hardware/:hardware_id for for potential \nduplications of installation or removal readings (Einbaustand/Ausbaustand)\nand delete readings accordingly via DELETE readings/:reading_id.", "operationId": "get_property_readings", "parameters": [{"description": "Start date (e.g. start of billing period). RFC3339 compatible timestamp", "name": "start_date", "type": "string", "in": "query"}, {"description": "End date (e.g. end of billing period). RFC3339 compatible timestamp", "name": "end_date", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["readings"]}, "delete": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "Success"}, "500": {"description": "Unexpected exception"}}, "summary": "get document data for a specific property", "operationId": "delete_property_readings", "security": [{"oauth2": []}], "tags": ["readings"]}, "post": {"responses": {"404": {"description": "Not found"}, "200": {"description": "Success"}, "500": {"description": "Unexpected exception"}, "400": {"description": "Validation error"}}, "summary": "save property readings in ERAS2", "operationId": "post_property_readings", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SavedReadings"}}], "security": [{"oauth2": []}], "tags": ["readings"]}}, "/readings/unit/{unit_id}": {"parameters": [{"default": 1, "in": "path", "description": "Unit id for tenant", "name": "unit_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Unit not found"}, "200": {"description": "Success"}}, "summary": "get readings for a specific unit", "operationId": "get_unit_readings", "parameters": [{"description": "Start date (e.g. start of billing period). RFC3339 compatible timestamp", "name": "start_date", "type": "string", "in": "query"}, {"description": "End date (e.g. end of billing period). RFC3339 compatible timestamp", "name": "end_date", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["readings"]}}, "/readings/{reading_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of the reading in the eras table geraeteverbraeuche", "name": "reading_id", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Unit not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Update reading entry by id", "operationId": "put_single_reading", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ReadingUpdateSchema"}}], "security": [{"oauth2": []}], "tags": ["readings"]}, "delete": {"responses": {"404": {"description": "Unit not found"}, "500": {"description": "Unexpected exception"}}, "summary": "Delete reading by reading ID", "operationId": "delete_single_reading", "security": [{"oauth2": []}], "tags": ["readings"]}}, "/sim": {"get": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "User has no required role"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/SimResponseSchema"}}}}, "summary": "get list of sim cards from WhereverSim", "operationId": "get_sim_list", "security": [{"oauth2": []}], "tags": ["sim"]}}, "/sim/address": {"get": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "User has no required role"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/SimAddressResponseSchema"}}}}, "summary": "get list of sim addresses", "operationId": "get_addresses_space_list", "security": [{"oauth2": []}], "tags": ["sim"]}}, "/sim/endpoint": {"get": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "User has no required role"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/SimEndpointResponseSchema"}}}}, "summary": "get list of endpoints from WheneverSim", "operationId": "get_endpoint_list", "security": [{"oauth2": []}], "tags": ["sim"]}, "post": {"responses": {"401": {"description": "User has no required role"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "get list of sim endpoints", "operationId": "post_endpoint_list", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SimEndpoint"}}], "security": [{"oauth2": []}], "tags": ["sim"]}}, "/sim/profile": {"get": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "User has no required role"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/SimProfileResponseSchema"}}}}, "summary": "get list of sim service profiles", "operationId": "get_profile_list", "security": [{"oauth2": []}], "tags": ["sim"]}}, "/sim/statistics": {"get": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "User has no required role"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/SimStatisticsResponseSchema"}}}}, "summary": "get usage statistics", "operationId": "get_usage_statistics", "security": [{"oauth2": []}], "tags": ["sim"]}}, "/sim/{sim_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of sim card in WheneverSim api", "name": "sim_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "User has no required role"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SimResponseSchema"}}}, "summary": "get sim card details", "operationId": "get_sim_detail", "security": [{"oauth2": []}], "tags": ["sim"]}}, "/support/contact": {"post": {"responses": {"501": {"description": "Unable to send email"}, "500": {"description": "Unexpected error"}, "403": {"description": "No permission"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "send an email to the configured account", "operationId": "post_contact_form", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SupportMessage"}}], "security": [{"oauth2": []}], "tags": ["support"]}}, "/tasks/billing": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TaskListResponseSchema"}}}}, "summary": "get all billing tasks", "operationId": "get_billing_tasks", "parameters": [{"description": "Start date (e.g. start of billing period)", "name": "start_date", "type": "string", "in": "query"}, {"description": "End date (e.g. end of billing period)", "name": "end_date", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/billing/{billing_period_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of billing period", "name": "billing_period_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TaskListResponseSchema"}}}}, "operationId": "get_tasks_by_billing_id", "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/central-heating/{central_heating_id}": {"parameters": [{"default": 1, "in": "path", "description": "Central heating identifier (portal_db.central_heating.id)", "name": "central_heating_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TaskListResponseSchema"}}}}, "summary": "List of tasks by central heating", "operationId": "get_tasks_by_central_heating_id", "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/hardware/{hardware_id}": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_tasks_by_hardware_id", "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TaskListResponseSchema"}}}}, "summary": "get tasks by module & property", "operationId": "get_tasks_by_property", "parameters": [{"description": "Module name to filter by ", "in": "query", "type": "str", "enum": ["Abrechnung", "Erstaufnahme", "Zentral-Heizung"], "name": "module"}], "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/{task_id}": {"parameters": [{"name": "task_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "No task found with this task id"}, "500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "summary": "edit task by task id", "operationId": "put_task_information", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TaskUpdate"}}], "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/{task_id}/acknowledgement": {"parameters": [{"name": "task_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "No task found with this task id"}, "500": {"description": "Unexpected error"}, "400": {"description": "No fields to update"}, "200": {"description": "Success"}}, "summary": "acknowledge task by task id", "operationId": "post_task_acknowloedgement", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TaskAcknowledgement"}}], "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/{task_id}/comments": {"parameters": [{"name": "task_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Comment not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_comments", "security": [{"oauth2": []}], "tags": ["tasks"]}, "post": {"responses": {"404": {"description": "Comment not found"}, "500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "post_comments", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Comment"}}], "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tasks/{task_id}/comments/{comment_id}": {"parameters": [{"name": "task_id", "in": "path", "required": true, "type": "integer"}, {"name": "comment_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Comment not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "put_comments_by_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TaskComment"}}], "security": [{"oauth2": []}], "tags": ["tasks"]}, "delete": {"responses": {"404": {"description": "Comment not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "delete_comments_by_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TaskComment"}}], "security": [{"oauth2": []}], "tags": ["tasks"]}, "get": {"responses": {"404": {"description": "Comment not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_comments_by_id", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TaskComment"}}], "security": [{"oauth2": []}], "tags": ["tasks"]}}, "/tenants/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/PropertyTenantResponseSchema"}}}}, "summary": "get list of tenants", "operationId": "get_property_tenants_list", "security": [{"oauth2": []}], "tags": ["tenants"]}}, "/tenants/unit/{unit_id}": {"parameters": [{"default": 1, "in": "path", "description": "Unit id for tenant", "name": "unit_id", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "Unexpected exception"}, "400": {"description": "Validation error"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/TenantInsertResponseSchema"}}}, "summary": "Insert a new tenant into the specified unit", "operationId": "post_insert_tenant_by_unit", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TenantInsert"}}], "security": [{"oauth2": []}], "tags": ["tenants"]}}, "/tenants/user": {"post": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Create or update connection between user & tenant", "operationId": "post_create_user_tenant", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UserTenantInsert"}}], "security": [{"oauth2": []}], "tags": ["tenants"]}}, "/tenants/user/{keycloak_username}": {"parameters": [{"default": "", "in": "path", "description": "Username in keycloak", "name": "keycloak_username", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/TenantByKeycloackResponseSchema"}}}, "summary": "returns tenant connected to user or just id of user", "operationId": "get_tenant_by_keycloack_user", "security": [{"oauth2": []}], "tags": ["tenants"]}}, "/tenants/user/{user_tenant_id}": {"parameters": [{"default": 1, "in": "query", "description": "Id of tenant (nutzer)", "name": "tenant_id", "type": "string"}, {"name": "user_tenant_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Update user tenant relation", "operationId": "put_edit_user_tenant", "security": [{"oauth2": []}], "tags": ["tenants"]}, "delete": {"responses": {"404": {"description": "User tenant relation not found"}, "200": {"description": "Success"}}, "summary": "Delete user tenant relation", "operationId": "delete_edit_user_tenant", "security": [{"oauth2": []}], "tags": ["tenants"]}}, "/tenants/{tenant_id}": {"parameters": [{"default": 1, "in": "path", "description": "Id of tenant (nutzer)", "name": "tenant_id", "required": true, "type": "integer"}], "put": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "Tenant does not exist"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Update tenant data", "operationId": "put_update_tenant", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TenantInsert"}}], "security": [{"oauth2": []}], "tags": ["tenants"]}}, "/ttn/applications": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "create all ttn applications", "operationId": "get_application_create", "security": [{"oauth2": []}], "tags": ["ttn"]}, "post": {"responses": {"200": {"description": "Success"}}, "summary": "create new ttn application", "operationId": "post_application_create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TTNApplication"}}], "security": [{"oauth2": []}], "tags": ["ttn"]}}, "/ttn/applications/{application_id}": {"parameters": [{"default": "", "in": "path", "description": "Id of application in ttn system", "name": "application_id", "required": true, "type": "string"}], "delete": {"responses": {"200": {"description": "Success"}}, "summary": "delete ttn appllication", "operationId": "delete_application_detail", "security": [{"oauth2": []}], "tags": ["ttn"]}}, "/ttn/applications/{application_id}/devices": {"parameters": [{"default": "", "in": "path", "description": "Id of application in ttn system", "name": "application_id", "required": true, "type": "string"}], "put": {"responses": {"200": {"description": "Success"}}, "summary": "create new ttn device for applications", "operationId": "put_application_devices", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TTNDevice"}}], "security": [{"oauth2": []}], "tags": ["ttn"]}, "get": {"responses": {"200": {"description": "Success"}}, "summary": "get all application devices", "operationId": "get_application_devices", "security": [{"oauth2": []}], "tags": ["ttn"]}}, "/ttn/applications/{application_id}/devices/{device_id}": {"parameters": [{"default": "", "in": "path", "description": "Id of application in ttn system", "name": "application_id", "required": true, "type": "string"}, {"name": "device_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success"}}, "summary": "get details of device for selected application", "operationId": "get_application_device_detail", "security": [{"oauth2": []}], "tags": ["ttn"]}, "delete": {"responses": {"200": {"description": "Success"}}, "summary": "delete device assigned to application", "operationId": "delete_application_device_detail", "security": [{"oauth2": []}], "tags": ["ttn"]}}, "/ttn/gateways": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "get list of all gateways from ttn", "operationId": "get_gateways_list", "security": [{"oauth2": []}], "tags": ["ttn"]}, "post": {"responses": {"200": {"description": "Success"}}, "summary": "create new ttn gateway", "operationId": "post_gateways_list", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Gateway"}}], "security": [{"oauth2": []}], "tags": ["ttn"]}}, "/ttn/gateways/{gateway_id}": {"parameters": [{"default": "", "in": "path", "description": "Id of gateway in ttn system", "name": "gateway_id", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success"}}, "summary": "get gateway details", "operationId": "get_gateway_detail", "security": [{"oauth2": []}], "tags": ["ttn"]}}, "/units": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitResponseSchema"}}}}, "summary": "returns list of units", "operationId": "get_all_units", "security": [{"oauth2": []}], "tags": ["units"]}}, "/units/count": {"get": {"responses": {"200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitGroupCountSchema"}}}}, "summary": "Returns number of units in realm groupped by type", "operationId": "get_unit_count_per_realm", "security": [{"oauth2": []}], "tags": ["units"]}}, "/units/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitInListResponseSchema"}}}}, "summary": "Returns list of units in property", "operationId": "get_units_by_property", "security": [{"oauth2": []}], "tags": ["units"]}}, "/units/property/{property_id}/count": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Not found"}, "500": {"description": "Unexpected error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/UnitCountByPropertyResponseSchema"}}}}, "summary": "Returns unit counts by property", "operationId": "get_unit_count_by_property", "security": [{"oauth2": []}], "tags": ["units"]}}, "/units/{unit_id}": {"parameters": [{"default": 1, "in": "path", "description": "Unit id for tenant", "name": "unit_id", "required": true, "type": "integer"}], "put": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "Unit cannot be moved to this property"}, "401": {"description": "User has no required role"}, "400": {"description": "This unit cannot be updated"}}, "summary": "Update unit details", "operationId": "put_unit", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UnitUpdate"}}], "security": [{"oauth2": []}], "tags": ["units"]}}, "/units/{unit_id}/handover": {"parameters": [{"default": 1, "in": "path", "description": "Unit id for tenant", "name": "unit_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property unit not found"}, "200": {"description": "File download"}}, "operationId": "get_hand_over_protocol", "security": [{"oauth2": []}], "tags": ["units"]}}, "/user/arigo-access": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_user_arigo_access", "security": [{"oauth2": []}], "tags": ["user"]}}, "/user/notification-subscriptions": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "get tasks by module & property", "operationId": "get_subscriptions_list", "security": [{"oauth2": []}], "tags": ["user"]}}, "/user/notification-subscriptions/contact": {"put": {"responses": {"400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "put_subscriptions_contact", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SubscriptionContact"}}], "security": [{"oauth2": []}], "tags": ["user"]}, "get": {"responses": {"404": {"description": "Not found"}, "200": {"description": "Success"}}, "operationId": "get_subscriptions_contact", "security": [{"oauth2": []}], "tags": ["user"]}}, "/user/notification-subscriptions/property/{property_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "get tasks by module & property", "operationId": "get_subscriptions_by_property", "security": [{"oauth2": []}], "tags": ["user"]}, "post": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "get tasks by module & property", "operationId": "post_subscriptions_by_property", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PropertySubscription"}}], "security": [{"oauth2": []}], "tags": ["user"]}}, "/user/tenant": {"put": {"responses": {"404": {"description": "Tenant not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/TenantByUserResponseSchema"}}}, "summary": "Update tenant data from initial form", "operationId": "put_tenant_by_current_user_resource", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UpdateTenantCommunication"}}], "security": [{"oauth2": []}], "tags": ["user"]}, "get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/TenantByUserResponseSchema"}}}, "summary": "Get tenant detail by current user", "operationId": "get_tenant_by_current_user_resource", "security": [{"oauth2": []}], "tags": ["user"]}}, "/user/{user_id}": {"parameters": [{"name": "user_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "User not found"}, "200": {"description": "Success"}}, "operationId": "get_user_to_customer_list", "security": [{"oauth2": []}], "tags": ["user"]}}, "/user/{user_id}/customer/{customer_id}": {"parameters": [{"name": "user_id", "in": "path", "required": true, "type": "integer"}, {"name": "customer_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"200": {"description": "Success"}}, "operationId": "post_user_to_customer_create_and_delete", "security": [{"oauth2": []}], "tags": ["user"]}, "delete": {"responses": {"200": {"description": "Success"}}, "operationId": "delete_user_to_customer_create_and_delete", "security": [{"oauth2": []}], "tags": ["user"]}}, "/v1/billing": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_billing_overview", "parameters": [{"name": "object_number", "in": "query", "type": "string", "description": "property object id"}, {"name": "street", "in": "query", "type": "string", "description": "property location street"}, {"name": "customer", "in": "query", "type": "string", "description": "property owner"}, {"name": "city", "in": "query", "type": "string", "description": "property location city"}, {"name": "zip", "in": "query", "type": "string", "description": "property location zip code"}, {"name": "billing_state", "in": "query", "type": "integer", "description": "property billing state"}, {"name": "billing_is_locked", "in": "query", "type": "integer", "description": "property billing status"}, {"name": "locked_for_billing", "in": "query", "type": "integer", "description": "property locked for billing status"}, {"name": "billable", "in": "query", "type": "integer", "description": "property billable status"}, {"name": "move_in", "in": "query", "type": "string", "description": "property start of billing period, if no value is provided, a date of greater or equal to 2017-01-01 will be used  "}, {"name": "move_out", "in": "query", "type": "string", "description": "property end of billing period if no value is provided, a date of less than or equal to end of the current year will be used  "}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 25", "default": 25}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "number"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/billing"]}}, "/v1/central-heating": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_central_heating_list_v1", "parameters": [{"name": "object_number", "in": "query", "type": "string", "description": "property object number"}, {"name": "customer", "in": "query", "type": "string", "description": "customer name"}, {"name": "street", "in": "query", "type": "string", "description": "main street of central heating property"}, {"name": "city", "in": "query", "type": "string", "description": "city of central heating property"}, {"name": "zip", "in": "query", "type": "string", "description": "zip code of central heating property"}, {"name": "area", "in": "query", "type": "string", "description": "total area of units in central heating property"}, {"name": "fuel_medium", "in": "query", "type": "string", "description": "central heating fuel type"}, {"name": "burner_type", "in": "query", "type": "string", "description": "central heating burner type"}, {"name": "consumption_groups", "in": "query", "type": "string", "description": "central heating consumption groups"}, {"name": "status_nightdrop", "in": "query", "type": "string", "description": "central heating night reduction"}, {"name": "status_summer_shutdown", "in": "query", "type": "string", "description": "central heating summer shutdown"}, {"name": "status_energy_efficiency", "in": "query", "type": "string", "description": "central heating degree of utilization"}, {"name": "status_heating_curve", "in": "query", "type": "string", "description": "central heating heating curve"}, {"name": "status_pump_efficiency", "in": "query", "type": "string", "description": "central heating pump efficiency"}, {"name": "periods", "in": "query", "type": "array", "description": "List of periods separated by comma", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00", "items": {"type": "string"}, "collectionFormat": "csv"}, {"name": "central_heating_group_names", "in": "query", "type": "array", "description": "list of CH group names to filter", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "central_heating_group_ids", "in": "query", "type": "array", "description": "list of CH group names to filter", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 25", "default": 25}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "number"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/arigo-ids": {"put": {"responses": {"401": {"description": "Unauthorized"}, "404": {"description": "Not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "put_central_heating_arigo_ids__public", "parameters": [{"name": "file", "in": "formData", "type": "file", "description": "CSV file which maps property_id to arigo_id"}], "security": [{"oauth2": []}], "consumes": ["multipart/form-data"], "tags": ["v1/central-heating"]}}, "/v1/central-heating/consumption": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_central_heatings_consumption", "parameters": [{"name": "ids", "in": "query", "type": "array", "description": "list of ch ids", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "periods", "in": "query", "type": "array", "description": "List of comma-separated periods", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00", "items": {"type": "string"}, "collectionFormat": "csv"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/consumption-contexts": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/CalculationContextsSchema"}}}, "operationId": "get_central_heating_consumption_contexts", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1.", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Entities per page. Defaults to 100.", "default": 100}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/consumption/groups": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_central_heating_groups_consumption", "parameters": [{"name": "ids", "in": "query", "type": "array", "description": "list of ch group ids", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "periods", "in": "query", "type": "array", "description": "List of periods separated by comma", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00", "items": {"type": "string"}, "collectionFormat": "csv"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/group": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_central_heating_group_list", "parameters": [{"name": "id", "in": "query", "type": "string", "description": "central heating group id"}, {"name": "ids", "in": "query", "type": "array", "description": "list of ch group ids", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "name", "in": "query", "type": "string", "description": "Group name"}, {"name": "periods", "in": "query", "type": "array", "description": "List of periods separated by comma", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00", "items": {"type": "string"}, "collectionFormat": "csv"}, {"name": "export", "in": "query", "type": "boolean", "default": false}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "name"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/stats": {"get": {"responses": {"200": {"description": "Success"}}, "summary": "Presents some statistics on the state of the central heating module:", "description": "- Total CH systems installed\n    - Total area heated\n    - Consumption this year\n... with possibly more to come.", "operationId": "get_central_heating_stats", "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/stats/histograms": {"get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "summary": "Presents several histograms about stats on the central heating module:", "description": "for now (with possible extension):\n    - plant ages (in categories of 5 year spans)\n    - fuel mediums", "operationId": "get_central_heating_histograms", "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/stats/series/efficiency": {"get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/EfficiencyStatsResponseSchema"}}}}, "operationId": "get_central_heating_efficiency_stats", "parameters": [{"name": "ch_id", "in": "query", "type": "integer", "description": "Central heating ID", "default": 6}, {"name": "bin_size", "in": "query", "type": "string", "description": "Time bin size for grouping", "default": "month", "enum": ["year", "heating-period", "quarter", "month", "week"]}, {"name": "bin_count", "in": "query", "type": "integer", "description": "Number of bins (groups)", "default": 6}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/stats/series/heating-curve": {"get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/HeatingCurveStatsSchema"}}}, "summary": "Retrieves the data required to draw and annotate the heating curve for a", "description": "central heating for 10 last months.\nThe \"curves\" object can be used directly for graphing, while the \"additional\"\nobject contains raw values for heating curve slope and intercept for each month.", "operationId": "get_central_heating_heating_curve_stats", "parameters": [{"name": "ch_id", "in": "query", "type": "integer", "description": "Central heating ID", "default": 6}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/stats/topflop/efficiency": {"get": {"responses": {"500": {"description": "Unexpected error"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "get_central_heating_topflop_by_efficiency", "parameters": [{"name": "period", "in": "query", "type": "string", "description": "Time period", "default": "2021-12-11T00:00:00|2022-12-12T00:00:00"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/table/export": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_central_heating_table_export", "parameters": [{"name": "object_number", "in": "query", "type": "string", "description": "property object number"}, {"name": "customer", "in": "query", "type": "string", "description": "customer name"}, {"name": "street", "in": "query", "type": "string", "description": "main street of central heating property"}, {"name": "city", "in": "query", "type": "string", "description": "city of central heating property"}, {"name": "zip", "in": "query", "type": "string", "description": "zip code of central heating property"}, {"name": "area", "in": "query", "type": "string", "description": "total area of units in central heating property"}, {"name": "fuel_medium", "in": "query", "type": "string", "description": "central heating fuel type"}, {"name": "burner_type", "in": "query", "type": "string", "description": "central heating burner type"}, {"name": "consumption_groups", "in": "query", "type": "string", "description": "central heating consumption groups"}, {"name": "status_nightdrop", "in": "query", "type": "string", "description": "central heating night reduction"}, {"name": "status_summer_shutdown", "in": "query", "type": "string", "description": "central heating summer shutdown"}, {"name": "status_energy_efficiency", "in": "query", "type": "string", "description": "central heating degree of utilization"}, {"name": "status_heating_curve", "in": "query", "type": "string", "description": "central heating heating curve"}, {"name": "status_pump_efficiency", "in": "query", "type": "string", "description": "central heating pump efficiency"}, {"name": "periods", "in": "query", "type": "array", "description": "List of periods separated by comma", "default": "2021-01-01T00:00:00|2021-12-01T00:00:00", "items": {"type": "string"}, "collectionFormat": "csv"}, {"name": "central_heating_group_names", "in": "query", "type": "array", "description": "list of CH group names to filter", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "central_heating_group_ids", "in": "query", "type": "array", "description": "list of CH group names to filter", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 25", "default": 25}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "number"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}, {"name": "ids", "in": "query", "type": "array", "description": "list of ch ids to export", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "columns", "in": "query", "type": "string", "description": "list of selected columns"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/central-heating/{property_id}/devices": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Returns all central heating devices currently installed in a property", "operationId": "get_central_heating_devices_v1", "parameters": [{"name": "id", "in": "query", "type": "string", "description": "device id"}, {"name": "device_number", "in": "query", "type": "string", "description": "number that is specific and unique to de device"}, {"name": "device_type", "in": "query", "type": "string", "description": "type of device"}, {"name": "article_id", "in": "query", "type": "integer", "description": "article id from device catalogue"}, {"name": "description", "in": "query", "type": "string", "description": "desription of usage (\"Nutzung\")"}, {"name": "calibration_date", "in": "query", "type": "string", "format": "date-time", "description": "date of calibration (\"Eichung\")"}, {"name": "installation_date", "in": "query", "type": "string", "format": "date-time", "description": "date of installation"}, {"name": "removal_date", "in": "query", "type": "string", "format": "date-time", "description": "date of removal"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 50", "default": 25}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "device_type"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/central-heating"]}}, "/v1/consumption": {"get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_consumption_v1", "parameters": [{"name": "consumption_summary_type", "in": "query", "type": "string", "description": "Type of consumption units (euro/unit)", "default": "unit"}, {"name": "time_division", "in": "query", "type": "string", "description": "Type of time division for tenant app (month-of-year etc.)", "default": "month-of-year"}, {"name": "consumption_type", "in": "query", "type": "string", "description": "Type of consumption for tenant app (heating/electicity/warmwater etc.)", "default": "heating"}, {"name": "tenant_id", "in": "query", "type": "string", "description": "ID of a tenant"}], "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/consumption/average": {"get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_consumption_average", "parameters": [{"name": "tenant_id", "in": "query", "type": "integer", "description": "ID of a tenant"}, {"name": "consumption_type", "in": "query", "type": "string", "description": "Type of consumption for tenant app (heating/warmwater )", "default": "heating"}], "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/consumption/average-temperature": {"get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success"}}, "operationId": "get_average_temperature", "parameters": [{"name": "tenant_id", "in": "query", "type": "string", "description": "ID of a tenant"}, {"name": "year", "in": "query", "type": "integer", "description": "For which year should average temperature/consumption should be calculated", "default": 2026}], "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/consumption/climate-adjusted": {"get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/ConsumptionResponseSchema"}}}, "summary": "Returns consumption for consumption app", "description": "Values may be null", "operationId": "get_tenant_climate_adjusted_consumption", "parameters": [{"name": "consumption_type", "in": "query", "type": "string", "description": "Type of consumption for tenant app availiable only for heating or warmwater", "default": "heating"}], "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/consumption/discovery": {"get": {"responses": {"404": {"description": "Tenant not found"}, "200": {"description": "Success"}}, "summary": "Returns consumption types available to given tenant", "operationId": "get_tenant_category_discovery", "parameters": [{"name": "consumption_summary_type", "in": "query", "type": "string", "description": "Type of consumption units (euro/unit)", "default": "unit"}, {"name": "time_division", "in": "query", "type": "string", "description": "Type of time division for tenant app (month-of-year etc.)", "default": "month-of-year"}, {"name": "consumption_type", "in": "query", "type": "string", "description": "Type of consumption for tenant app (heating/electicity/warmwater etc.)", "default": "heating"}, {"name": "tenant_id", "in": "query", "type": "string", "description": "ID of a tenant"}], "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/consumption/property-average": {"post": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "Success"}}, "summary": "Insert/Update the property consumption average for created uVI reports", "operationId": "post_store_average_property_consumption_v1", "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/consumption/property-average/{property_id}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "Success"}}, "summary": "Insert/Update the property consumption average for created uVI reports", "operationId": "post_store_average_property_consumption_v1", "security": [{"oauth2": []}], "tags": ["v1/consumption"]}}, "/v1/hardware/counts": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_hardware_status_overview", "parameters": [{"name": "by", "in": "query", "type": "string", "description": "attribute to group by", "default": "status"}], "security": [{"oauth2": []}], "tags": ["v1/hardware"]}}, "/v1/hardware/hardware-changes": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "summary": "Returns hardware info of devices that were last updated/created between given dates", "description": "If no dates are provided, constraints are not applied.", "operationId": "get_hardware_changes", "parameters": [{"name": "date_from", "in": "query", "type": "string", "description": "start date to retrieve inventory changes in ISO format"}, {"name": "date_to", "in": "query", "type": "string", "description": "end date to retrieve inventory changes in ISO format"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 25", "default": 25}], "security": [{"oauth2": []}], "tags": ["v1/hardware"]}}, "/v1/hardware/latest-measurements-report": {"get": {"responses": {"500": {"description": "Unexpected error"}, "200": {"description": "Success"}}, "operationId": "get_hardware_latest_measurements_report", "parameters": [{"name": "date", "in": "query", "type": "string", "description": "Report date (upper bound of measurements, exclusive)", "default": "2023-01-01T00:00:00+02:00"}, {"name": "device_types", "in": "query", "type": "array", "description": "Comma-separated list of device types (WMZ, GZ, SZ). Queries all devices if none are selected.", "items": {"type": "string"}, "collectionFormat": "csv"}, {"name": "format", "in": "query", "type": "string", "description": "Output format (csv or xlsx)", "enum": ["csv", "xlsx"]}], "security": [{"oauth2": []}], "tags": ["v1/hardware"]}}, "/v1/measurements/property/{property_id}/hardware/{hardware_id}/latest": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Device not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/LastValueMeasurement"}}}}, "summary": "Get latest measurements for device", "operationId": "get_latest_device_measurements", "tags": ["v1/measurements"]}}, "/v1/measurements/property/{property_id}/hardware/{hardware_id}/monthly": {"parameters": [{"default": 1, "in": "path", "description": "The hardware id (portal_db.hardware.id)", "name": "hardware_id", "required": true, "type": "integer"}, {"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Device not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/LastValueMeasurement"}}}}, "summary": "Get latest measurements for device for each month", "operationId": "get_monthly_device_measurements", "tags": ["v1/measurements"]}}, "/v1/properties": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PaginatedPropertyResponseSchema"}}}, "operationId": "get_property_list_v1", "parameters": [{"name": "number", "in": "query", "type": "string", "description": "property object number"}, {"name": "number_external_arge", "in": "query", "type": "string", "description": "property object fremd number"}, {"name": "customer_id", "in": "query", "type": "integer", "description": "customer owning property by id"}, {"name": "customer", "in": "query", "type": "string", "description": "customer owning property by name"}, {"name": "street", "in": "query", "type": "string", "description": "property address"}, {"name": "zip", "in": "query", "type": "string", "description": "property zip code"}, {"name": "city", "in": "query", "type": "string", "description": "property city"}, {"name": "hardware_state", "in": "query", "type": "string", "description": "aggregated hardware state of property"}, {"name": "billing_state", "in": "query", "type": "string", "description": "aggregated billing state of property"}, {"name": "smoke_detector_state", "in": "query", "type": "string", "description": "aggregated smoke detector state of property"}, {"name": "central_heating_state", "in": "query", "type": "string", "description": "aggregated central heating state of property"}, {"name": "unit_groups", "in": "query", "type": "string", "description": "unit group name"}, {"name": "search", "in": "query", "type": "string", "description": "seaches all available fields for matching phrase. Must be at least 3 characters"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 50", "default": 50}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "number"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/hardware-history": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_property_hardware_history", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1.", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Entities per page. Defaults to 100.", "default": 100}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/manager/email": {"post": {"responses": {"404": {"description": "Not found"}, "400": {"description": "Account already exist"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/PropertyManagerEmailResponseSchema"}}}}, "operationId": "post_batch_property_manager_email_resource", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/IDListSchema"}}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/slim": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PaginatedPropertyResponseSchema"}}}, "operationId": "get_simplified_property_list_v1", "parameters": [{"name": "number", "in": "query", "type": "string", "description": "property object number"}, {"name": "number_external_arge", "in": "query", "type": "string", "description": "property object fremd number"}, {"name": "customer_id", "in": "query", "type": "integer", "description": "customer owning property by id"}, {"name": "customer", "in": "query", "type": "string", "description": "customer owning property by name"}, {"name": "street", "in": "query", "type": "string", "description": "property address"}, {"name": "zip", "in": "query", "type": "string", "description": "property zip code"}, {"name": "city", "in": "query", "type": "string", "description": "property city"}, {"name": "hardware_state", "in": "query", "type": "string", "description": "aggregated hardware state of property"}, {"name": "billing_state", "in": "query", "type": "string", "description": "aggregated billing state of property"}, {"name": "smoke_detector_state", "in": "query", "type": "string", "description": "aggregated smoke detector state of property"}, {"name": "central_heating_state", "in": "query", "type": "string", "description": "aggregated central heating state of property"}, {"name": "unit_groups", "in": "query", "type": "string", "description": "unit group name"}, {"name": "search", "in": "query", "type": "string", "description": "seaches all available fields for matching phrase. Must be at least 3 characters"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 50", "default": 50}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "number"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/table/export": {"get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_property_table_export", "parameters": [{"name": "number", "in": "query", "type": "string", "description": "property object number"}, {"name": "number_external_arge", "in": "query", "type": "string", "description": "property object fremd number"}, {"name": "customer_id", "in": "query", "type": "integer", "description": "customer owning property by id"}, {"name": "customer", "in": "query", "type": "string", "description": "customer owning property by name"}, {"name": "street", "in": "query", "type": "string", "description": "property address"}, {"name": "zip", "in": "query", "type": "string", "description": "property zip code"}, {"name": "city", "in": "query", "type": "string", "description": "property city"}, {"name": "hardware_state", "in": "query", "type": "string", "description": "aggregated hardware state of property"}, {"name": "billing_state", "in": "query", "type": "string", "description": "aggregated billing state of property"}, {"name": "smoke_detector_state", "in": "query", "type": "string", "description": "aggregated smoke detector state of property"}, {"name": "central_heating_state", "in": "query", "type": "string", "description": "aggregated central heating state of property"}, {"name": "unit_groups", "in": "query", "type": "string", "description": "unit group name"}, {"name": "search", "in": "query", "type": "string", "description": "seaches all available fields for matching phrase. Must be at least 3 characters"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 50", "default": 50}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "number"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}, {"name": "ids", "in": "query", "type": "string", "description": "list of property ids to export"}, {"name": "columns", "in": "query", "type": "string", "description": "list of selected columns"}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/uvi-active-ids": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/UviActivePropertyIdsSchema"}}}, "summary": "Returns a list of all IDs of uvi active properties", "operationId": "get_uvi_active_property_ids_list_v1", "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/{property_id}/device-activity": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"500": {"description": "Unexpected error"}, "403": {"description": "Property cannot be have device activity of the supplied date"}, "401": {"description": "User has no required role"}, "400": {"description": "This property device activity setting cannot be saved"}, "200": {"description": "Success"}}, "operationId": "post_property_device_activity", "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/{property_id}/manager/email": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "post": {"responses": {"404": {"description": "Not found"}, "400": {"description": "Account already exist"}, "200": {"description": "Success"}}, "operationId": "post_property_manager_email_resource", "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/{property_id}/tenant-communication": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PropertyTenantCommunicationResponseSchema"}}}, "summary": "Returns a list of all set communication means of tenants", "description": "for a given property id.", "operationId": "get_property_tenant_communication_list_v1", "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/{property_id}/tenant-letters": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PropertyTenantLettersResponseSchema"}}}, "summary": "Returns a list of all tenant letters that were sent for", "description": "a given property id.", "operationId": "get_property_tenant_letter_list_v1", "parameters": [{"name": "date_from", "in": "query", "type": "string", "description": "Date from filter"}, {"name": "date_to", "in": "query", "type": "string", "description": "Date to filter"}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/properties/{property_id}/tenant/communication": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "put_tenant_batch_communication_update_resource", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/BatchTenantComUpdateSchema"}}], "security": [{"oauth2": []}], "tags": ["v1/properties"]}}, "/v1/tenants/property/{property_id}": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "500": {"description": "Unexpected exception"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TenantInPropertyV1ResponseSchemas"}}}}, "summary": "Get list of tenants", "operationId": "get_property_tenants_list", "parameters": [{"name": "move_in", "in": "query", "type": "string", "description": "Move in date"}, {"name": "move_out", "in": "query", "type": "string", "description": "Move out date"}, {"name": "tenant_in_year", "in": "query", "type": "string", "description": "Filter all tenants in given year"}, {"name": "id", "in": "query", "type": "string", "description": "Tenant id"}, {"name": "ids", "in": "query", "type": "array", "description": "list of tenant ids to filter", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "arge_unit_nr", "in": "query", "type": "string", "description": "Arge unit number"}, {"name": "name", "in": "query", "type": "string", "description": "Tenant first and last name"}, {"name": "unit_id", "in": "query", "type": "string", "description": "Unit id"}, {"name": "location", "in": "query", "type": "string", "description": "Unit location  (street + number + lage)"}, {"name": "is_owner", "in": "query", "type": "boolean", "description": "Is tenant owner of apartment"}, {"name": "status_of_sent_message", "in": "query", "type": "integer", "description": "Status of sending initial communication letter"}, {"name": "tenant_receive", "in": "query", "type": "string", "description": "Option on how tenant receives consumption data"}, {"name": "credentials_available", "in": "query", "type": "boolean", "description": "App credentials available"}, {"name": "start_date_of_provisioning", "in": "query", "type": "string", "description": "Start date data provisioning"}, {"name": "end_date_of_provisioning", "in": "query", "type": "string", "description": "End date data provisioning"}, {"name": "count_letter", "in": "query", "type": "integer", "description": "Number of consumption letters sent to tenant"}, {"name": "additional_address_city", "in": "query", "type": "string", "description": "Additional addresss city"}, {"name": "ne_number", "in": "query", "type": "array", "description": "list of ch ne_number to filter", "items": {"type": "string"}, "collectionFormat": "csv"}, {"name": "show_tenant", "in": "query", "type": "string", "description": "specifies of which status tenants are returned", "enum": ["all", "previous", "current", "future"]}, {"name": "tenant_type", "in": "query", "type": "string", "description": "specifies which types of tenants are returned", "enum": ["all", "general", "normal"]}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 25", "default": 50}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "id"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}], "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/property/{property_id}/emails": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Property not found"}, "200": {"description": "Success", "schema": {"type": "array", "items": {"$ref": "#/definitions/TenantEmailCheckSchema"}}}}, "summary": "List of tenants in property with email set flag", "operationId": "get_tenant_has_email_resource", "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/property/{property_id}/inconsistencies": {"parameters": [{"default": 4, "in": "path", "description": "The property id (portal_db.property.id)", "name": "property_id", "required": true, "type": "integer"}], "get": {"responses": {"500": {"description": "Unexpected error"}}, "summary": "Returns a list of tenant inconsistency errors in property", "operationId": "get_tenant_inconsistencies_by_property", "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/property/{property_id}/letter/{letter_type}": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}, {"name": "letter_type", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"500": {"description": "Unexpected error"}, "401": {"description": "No access to all selected tenants"}, "202": {"description": "Accepted", "schema": {"type": "array", "items": {"$ref": "#/definitions/TenantLetterAction"}}}}, "operationId": "post_tenants_letter_resource", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/TenantBatchLetterSchema"}}], "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/property/{property_id}/table/export": {"parameters": [{"name": "property_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"200": {"description": "Success"}}, "operationId": "get_tenant_table_export", "parameters": [{"name": "move_in", "in": "query", "type": "string", "description": "Move in date"}, {"name": "move_out", "in": "query", "type": "string", "description": "Move out date"}, {"name": "tenant_in_year", "in": "query", "type": "string", "description": "Filter all tenants in given year"}, {"name": "id", "in": "query", "type": "string", "description": "Tenant id"}, {"name": "ids", "in": "query", "type": "array", "description": "list of tenant ids to filter", "items": {"type": "integer"}, "collectionFormat": "csv"}, {"name": "arge_unit_nr", "in": "query", "type": "string", "description": "Arge unit number"}, {"name": "name", "in": "query", "type": "string", "description": "Tenant first and last name"}, {"name": "unit_id", "in": "query", "type": "string", "description": "Unit id"}, {"name": "location", "in": "query", "type": "string", "description": "Unit location  (street + number + lage)"}, {"name": "is_owner", "in": "query", "type": "boolean", "description": "Is tenant owner of apartment"}, {"name": "status_of_sent_message", "in": "query", "type": "integer", "description": "Status of sending initial communication letter"}, {"name": "tenant_receive", "in": "query", "type": "string", "description": "Option on how tenant receives consumption data"}, {"name": "credentials_available", "in": "query", "type": "boolean", "description": "App credentials available"}, {"name": "start_date_of_provisioning", "in": "query", "type": "string", "description": "Start date data provisioning"}, {"name": "end_date_of_provisioning", "in": "query", "type": "string", "description": "End date data provisioning"}, {"name": "count_letter", "in": "query", "type": "integer", "description": "Number of consumption letters sent to tenant"}, {"name": "additional_address_city", "in": "query", "type": "string", "description": "Additional addresss city"}, {"name": "ne_number", "in": "query", "type": "array", "description": "list of ch ne_number to filter", "items": {"type": "string"}, "collectionFormat": "csv"}, {"name": "show_tenant", "in": "query", "type": "string", "description": "specifies of which status tenants are returned", "enum": ["all", "previous", "current", "future"]}, {"name": "tenant_type", "in": "query", "type": "string", "description": "specifies which types of tenants are returned", "enum": ["all", "general", "normal"]}, {"name": "page", "in": "query", "type": "integer", "description": "Page number. Defaults to 1", "default": 1}, {"name": "per_page", "in": "query", "type": "integer", "description": "Records per page. Defaults to 25", "default": 50}, {"name": "sortBy", "in": "query", "type": "string", "description": "Field to sort by. Defaults to number", "default": "id"}, {"name": "typeSort", "in": "query", "type": "string", "description": "Sorting direction. Defaults to ascending", "default": "asc"}, {"name": "columns", "in": "query", "type": "string", "description": "list of selected columns"}], "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/tenant_letter": {"post": {"responses": {"404": {"description": "TenantLetter not found"}, "200": {"description": "Success"}}, "operationId": "post_tenant_letter_resource", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"type": "object", "properties": {"id": {"type": "integer"}, "external_id": {"type": "string"}, "status": {"type": "string"}}}}], "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/uvi-csv": {"get": {"responses": {"404": {"description": "Not found"}, "400": {"description": "Validation error"}, "202": {"description": "Success"}}, "summary": "Returns a csv containing all uvi tenants active in specified timeframe", "operationId": "get_uvi_tenants_resource", "parameters": [{"name": "report_month", "in": "query", "type": "integer", "required": true, "description": "month to report"}, {"name": "report_year", "in": "query", "type": "integer", "required": true, "description": "year to report"}], "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/{tenant_id}/communication": {"parameters": [{"name": "tenant_id", "in": "path", "required": true, "type": "integer"}], "put": {"responses": {"404": {"description": "Tenant not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "put_tenant_communication_resource", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/UpdateTenantCommunication"}}], "security": [{"oauth2": []}], "tags": ["v1/tenants"]}}, "/v1/tenants/{tenant_id}/uvi-report": {"parameters": [{"name": "tenant_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Tenant not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "get_tenant_uvi_report", "parameters": [{"name": "report_month", "in": "query", "type": "integer", "required": true, "description": "month to report"}, {"name": "report_year", "in": "query", "type": "integer", "required": true, "description": "year to report"}], "security": [{"oauth2": []}], "produces": ["application/pdf"], "tags": ["v1/tenants"]}}, "/v1/tenants/{tenant_id}/uvi-report-aws": {"parameters": [{"name": "tenant_id", "in": "path", "required": true, "type": "integer"}], "get": {"responses": {"404": {"description": "Tenant not found"}, "400": {"description": "Validation error"}, "200": {"description": "Success"}}, "operationId": "get_tenant_uvi_report_aws", "parameters": [{"name": "report_month", "in": "query", "type": "integer", "required": true, "description": "month to report"}, {"name": "report_year", "in": "query", "type": "integer", "required": true, "description": "year to report"}, {"name": "mandant_name", "in": "query", "type": "string", "required": true, "description": "mandant name"}], "security": [{"oauth2": []}], "produces": ["application/pdf"], "tags": ["v1/tenants"]}}, "/validator/arge-unit-number": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "verify whether an ARGE unit number is valid", "description": "- has a length of 20 characters\n    - is unique across the specified property", "operationId": "get_arge_unit_number_validation", "parameters": [{"name": "arge_unit_nr", "in": "query", "type": "string", "description": "Unit number in ARGE standard format"}, {"name": "tenant_id", "in": "query", "type": "integer", "description": "Tenant ID", "default": 1}], "security": [{"oauth2": []}], "tags": ["validator"]}}, "/validator/customer-number": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "verify whether a customer number is valid", "operationId": "get_customer_number_validation", "parameters": [{"description": "Customer number to be verified", "name": "number", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["validator"]}}, "/validator/object-number": {"get": {"responses": {"500": {"description": "Unexpected exception"}, "200": {"description": "Success"}}, "summary": "verify whether an object number is valid", "operationId": "get_object_number_validation", "parameters": [{"description": "Object number to be verified", "name": "number", "type": "string", "in": "query"}], "security": [{"oauth2": []}], "tags": ["validator"]}}}, "info": {"title": "KUGU Portal API", "version": "1.84.1", "description": "This is the API for the KUGU Web Portal for accessing the different data points such as property and hardware. <br/><br/> In general you can access the different endpoints only after authorizing yourself with our identity provider Keycloak at <a href='https://auth.kugu.cloud/'>auth.kugu-home.com</a>. In the UI you can just click the button 'Authorize' for that. <br/><br/> <a href='https://gitlab.kugu-home.com/kugu/product-digital-property/portal-backend/'>Find out more about this API</a>"}, "produces": ["application/json"], "consumes": ["application/json"], "securityDefinitions": {"oauth2": {"type": "oauth2", "authorizationUrl": "/auth/realms/Portal-Development/protocol/openid-connect/auth?nonce=zelreqjibe", "flow": "implicit", "scopes": {"openid": "openid", "profile": "profile"}}}, "security": [{"Bearer Auth": []}], "tags": [{"name": "general", "description": "general data independent from the entities"}, {"name": "clients", "description": "clients"}, {"name": "properties", "description": "properties share a manager"}, {"name": "tenants", "description": "tenant endpoints"}, {"name": "units", "description": "units share a manager"}, {"name": "hardware", "description": "find hardware"}, {"name": "readings", "description": "endpoint for live readings and saved readings"}, {"name": "tasks", "description": "get tasks"}, {"name": "costs", "description": "costs endpoints"}, {"name": "customers", "description": "Endpoints for customer information"}, {"name": "data-collectors", "description": "data-collectors"}, {"name": "billing", "description": "billing information"}, {"name": "files", "description": "handlers for uploaded files"}, {"name": "support", "description": "support endpoints have their namespace"}, {"name": "central-heating", "description": "central heating information"}, {"name": "sim", "description": "Wherever sim api clinet endpoints"}, {"name": "malinche", "description": "provides interaction with chirpstack about malinches"}, {"name": "ttn", "description": "Entities from TTN client"}, {"name": "device-inbox", "description": "new hardware fo device inbox"}, {"name": "openhab", "description": "openhab api intergation"}, {"name": "data-inlets", "description": "Endpoints for data inlets integration"}, {"name": "public-keys", "description": "Endpoints for stored public keys"}, {"name": "consumption", "description": "endpoints for tenant consumption app"}, {"name": "measurements", "description": "data for drawing plots in portal"}, {"name": "casavi", "description": "Endpoints for casavi integration"}, {"name": "validator", "description": "to validate unique eras identifiers"}, {"name": "periods", "description": "get portal timeframe periods"}, {"name": "user", "description": "user share a manager"}, {"name": "radiatis", "description": "Endpoints for Radiatis integration"}, {"name": "credentials", "description": "handlers for credentials"}, {"name": "mfr", "description": "MFR integration"}, {"name": "group", "description": "groups share a manager"}, {"name": "dashboard", "description": "Endpoints for dashboards"}, {"name": "v1/properties", "description": "Version 1"}, {"name": "v1/measurements", "description": "Version 1"}, {"name": "v1/central-heating", "description": "Version 1 of central heating endpoints"}, {"name": "v1/tenants", "description": "Version 1 of tenant endpoints"}, {"name": "v1/billing", "description": "Version 1 of billing endpoints"}, {"name": "v1/hardware", "description": "Version 1 of hardware endpoints"}, {"name": "v1/consumption", "description": "endpoints for tenant consumption app"}, {"name": "keycloak", "description": "endpoints for managing keycloak"}], "definitions": {"MandantResponseSchema": {"properties": {"db_name": {"type": "string", "example": "realm name"}, "mandant_name": {"type": "string", "example": "mandant name"}, "primary_color": {"type": "string", "example": "#ffffff"}, "secondary_color": {"type": "string", "example": "#000000"}, "logo": {"type": "string", "example": "file"}}, "type": "object"}, "MandantDetailsResponseSchema": {"properties": {"db_name": {"type": "string", "example": "realm name"}, "mandant_name": {"type": "string", "example": "mandant name"}, "keycloak_realm": {"type": "string", "example": "keycloak realm name"}, "primary_color": {"type": "string", "example": "#ffffff"}, "secondary_color": {"type": "string", "example": "#000000"}, "document_logo": {"type": "string", "example": "file"}, "cc_correspondence": {"type": "string", "example": "test@mail.com"}, "sender_email_address": {"type": "string", "example": "test@mail.com"}, "mandant_logo": {"type": "string", "example": "file"}, "app_url_android": {"type": "string", "example": "file"}, "app_url_ios": {"type": "string", "example": "file"}, "app_logo": {"type": "string", "example": "file"}, "app_qrcode": {"type": "string", "example": "file"}, "favicon": {"type": "string", "example": "file"}, "url": {"type": "string", "example": "www.example-portal.de"}, "street": {"type": "string", "example": "musterstra\u00dfe"}, "street2": {"type": "string", "example": "musterstra\u00dfe"}, "house_number": {"type": "string", "example": "2a"}, "latitude": {"type": "number", "example": 12.3}, "longitude": {"type": "number", "example": 24.4}, "city": {"type": "string", "example": "musterstadt"}, "zipcode": {"type": "string", "example": "musterstadt"}, "client_id": {"type": "integer", "example": 1}, "consumption_app_name": {"type": "string", "example": "app name"}}, "type": "object"}, "UmlageResponseSchema": {"properties": {"umlage_in": {"type": "array", "items": {"$ref": "#/definitions/NameValueResponseSchema"}}, "umlage_auf": {"type": "array", "items": {"$ref": "#/definitions/NameValueResponseSchema"}}, "umlage": {"type": "array", "items": {"$ref": "#/definitions/NameValueResponseSchema"}}}, "type": "object"}, "NameValueResponseSchema": {"properties": {"name": {"type": "string", "example": "Name"}, "value": {"type": "integer", "example": 0}}, "type": "object"}, "LabelValueResponseSchema": {"properties": {"label": {"type": "string", "example": "Labenl"}, "value": {"type": "integer", "example": 0}}, "type": "object"}, "DeviceCatalogueResponseSchema": {"properties": {"label": {"type": "string", "example": "Allg. Heizkostenverteiler"}, "value": {"type": "integer", "example": 1}, "article_number": {"type": "string", "example": "20b12434"}, "device_type": {"type": "string", "example": "HKV"}, "readable": {"type": "boolean", "example": true}}, "type": "object"}, "FuelMediumResponseSchema": {"properties": {"value": {"type": "integer", "example": 1}, "label": {"type": "string", "example": "Brennwertkessel"}}, "type": "object"}, "FuelCalorificValueSchema": {"properties": {"id": {"type": "integer", "example": 1}, "type": {"type": "string", "example": "NG_H"}, "type_label": {"type": "string", "example": "oil_l"}, "label": {"type": "string", "example": "Heiz\u00f6l L"}, "name": {"type": "string", "example": ""}, "unit": {"type": "string", "example": "m\u00b3"}, "unit_label": {"type": "string", "example": "Kubikmeter"}, "value_i": {"type": "object", "example": 10.4}, "value_s": {"type": "object", "example": 11.5}, "factor_co2": {"type": "object", "example": 201.6}}, "type": "object"}, "RoomResponseSchema": {"properties": {"value": {"type": "integer", "example": 1}, "label": {"type": "string", "example": "Kuche"}}, "type": "object"}, "DbVersionResponseSchema": {"properties": {"current_version": {"type": "string", "example": "1.0.1.0"}, "desired_version": {"type": "string", "example": "1.0.2.0"}, "version_comparison": {"type": "string", "example": "matching"}, "hardware_type_mismatch": {"type": "boolean", "example": true}, "version_mismatch": {"type": "boolean", "example": true}}, "type": "object"}, "TimefreamesResponseSchema": {"properties": {"start": {"type": "string", "example": "2020-01-01T00:00:00"}, "end": {"type": "string", "example": "2020-01-31T23:59:59"}, "label": {"type": "string", "example": "2020 Januar"}}, "type": "object"}, "SendMySubscriptionsContactSchema": {"required": ["email", "name"], "properties": {"name": {"type": "string", "description": "Recipient name", "example": "Erika Mustermann"}, "email": {"type": "string", "description": "Email", "example": "e.mustermann@kugu-home.com"}}, "type": "object"}, "ReleaseNotesResponseSchema": {"properties": {"version": {"type": "string", "example": "0.1"}, "release_date": {"type": "string", "example": "21.07.2021"}, "name": {"type": "string", "example": "Test release"}, "content": {"type": "string", "example": "Some markdonw text ###"}}, "type": "object"}, "UnitTypesResponseSchema": {"properties": {"short": {"type": "string", "example": "kWh"}, "value": {"type": "string", "example": "Kilowattstunden"}, "label": {"type": "string", "example": "Kilowattstunden"}}, "type": "object"}, "ClientListResponseSchema": {"properties": {"client_id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "Portal Development"}, "portal_url": {"type": "string", "example": "development.kugu.cloud"}, "database_name": {"type": "string", "example": "eras2_development"}, "url": {"type": "string", "example": "iVBORw0KGgoAAAANSUhEUgAAArwAAAK8CAYAAAANumxDAAABB3"}, "keycloak_realm": {"type": "string", "example": "Portal-Development"}, "primary_color": {"type": "string", "example": "#123123"}, "secondary_color": {"type": "string", "example": "#312312"}, "wireguard_database_ip": {"type": "string", "example": "127.0.0.1"}, "wireguard_database_public_key": {"type": "string", "example": "g54gerg43t34gg4wsg"}, "wireguard_database_endpoint": {"type": "string", "example": "127.0.0.1:1337"}, "consumption_app_name": {"type": "string", "example": "Mein Energiemonitor"}, "sender_email_address": {"type": "string", "example": "example@kugu-home.com"}}, "type": "object"}, "ClientStylingResponseSchema": {"properties": {"logo": {"type": "string", "example": "iVBORw0KGgoAAAANSUhEUgAAArwAAAK8CAYAAAANumxDAAABB3"}, "primary_color": {"type": "string", "example": "#123123"}, "secondary_color": {"type": "string", "example": "#312312"}}, "type": "object"}, "ClientImprintResponseSchema": {"properties": {"imprint": {"type": "string", "example": ""}}, "type": "object"}, "ClientTermsOfServiceResponseSchema": {"properties": {"terms_of_service": {"type": "string", "example": ""}}, "type": "object"}, "ClientPrivacyPolicyResponseSchema": {"properties": {"privacy_policy": {"type": "string", "example": ""}}, "type": "object"}, "Logo": {"required": ["logo", "type"], "properties": {"logo": {"type": "string", "description": "Logo as base64 String", "example": "dfgdfgfdg"}, "type": {"type": "string", "description": "Type of logo [document_logo, web_logo, favicon]", "example": "web_logo"}}, "type": "object"}, "ClientUpdate": {"properties": {"logo": {"type": "string", "description": "logo as base64 string", "example": "dGVzdA=="}, "primary_color": {"type": "string", "description": "primary color of color scheme", "example": "#A3A2A3"}, "secondary_color": {"type": "string", "description": "secondary color of color scheme", "example": "#000000"}, "cc_correspondence": {"type": "string", "description": "cc for correspondence with the support", "example": "mail@domain.com"}, "imprint": {"type": "string", "description": "markdown to be displayed on the clients imprint page", "example": "# Anschrift ..."}, "privacy_policy": {"type": "string", "description": "markdown to be displayed on the clients privacy policy page", "example": "# Privacy policy ..."}, "terms_of_service": {"type": "string", "description": "markdown to be displayed on the clients terms of service page", "example": "# Terms of service ..."}, "consumption_app_name": {"type": "string", "description": "name of the consumption app", "example": "Mein Energiemonitor"}, "sender_email_address": {"type": "string", "description": "e-mail address of sender", "example": "example@kugu-home.com"}}, "type": "object"}, "PropertyUpdate": {"properties": {"comment": {"type": "string", "description": "Property public comment", "example": "This property is very cool"}, "internal_comment": {"type": "string", "description": "Property internal comment", "example": "Check gas valve"}, "longitude": {"type": "number", "description": "Longitude of the property", "example": "56.6"}, "latitude": {"type": "number", "description": "Latitude of the property", "example": "23.6"}, "street": {"type": "string", "description": "Street of the property", "example": "Hauptstrasse"}, "housenumber": {"type": "string", "description": "Housnumber of the property", "example": "23a"}, "zip": {"type": "string", "description": "Postal code of the property", "example": "10115"}, "city": {"type": "string", "description": "City of the property", "example": "Berlin"}, "customer_id": {"type": "integer", "description": "customer related to the property", "example": "11"}, "object_number": {"type": "string", "description": "Identifier of the property", "example": "O-1234-O-5678"}, "locked_for_billing": {"type": "boolean", "description": "Flag: property editing is locked due to billing process", "example": true}, "building_type": {"type": "string", "description": "type of the building", "example": "Wohnanlage"}, "year_built": {"type": "integer", "example": "2011"}, "arge_object_nr": {"type": "string", "description": "Property ARGE identifier", "example": "K7-54321"}, "uvi_status": {"type": "integer", "description": "uVi Status", "example": 20}, "cold_water_temp": {"type": "number", "description": "Cold water temperature", "example": 0.0}, "warm_water_temp": {"type": "number", "description": "Warm water temperature", "example": 3.0}, "system_sensitivity": {"type": "number", "description": "System efficiency", "example": 3.0}, "estimated_values_status": {"type": "boolean", "description": "Switch if property is allowed to use estimated values for calculations", "example": true}, "uvi_start_date": {"type": "string", "format": "date-time", "description": "starting date for uvi reporting", "example": "2021-01-01 00:00:00"}, "reference_date_for_device_reset": {"type": "string", "description": "reference date on which device reset is performed, defaults to last day of the year", "example": "12-31"}}, "type": "object"}, "PropertyResponseSchema": {"properties": {"property_id": {"type": "integer", "example": 1}, "customer": {"type": "string", "example": "Firma"}, "customer_id": {"type": "integer", "example": 2}, "eras_object_id": {"type": "integer", "example": 2}, "comment": {"type": "string", "example": "some comment"}, "internal_comment": {"type": "string", "example": "some internal comment"}, "Objektnummer": {"type": "string", "example": "1234CXZ"}, "street": {"type": "string", "example": "Bahnhofsstra\u00dfe 3"}, "city": {"type": "string", "example": "Berlin"}, "longitude": {"type": "number", "example": 11.263134}, "latitude": {"type": "number", "example": 50.1766326}, "zip": {"type": "string", "example": "01234"}, "billing_state": {"type": "integer", "example": 10}, "hardware_state": {"type": "integer", "example": 10}, "smoke_detector_state": {"type": "integer", "example": 10}, "cho_state": {"type": "integer", "example": 10}, "uvi_start_date": {"type": "string", "format": "date-time", "example": "2022-01-01 00:00:00"}}, "type": "object"}, "ConsumptionGroupResponseSchema": {"properties": {"name": {"type": "string", "example": "H1"}, "consumption_group_id": {"type": "integer", "example": 1}}, "type": "object"}, "Geocoordinates": {"properties": {"lat": {"type": "number", "description": "Latitude", "example": 1.21}, "lon": {"type": "number", "description": "Longitude", "example": 2.98}}, "type": "object"}, "PropertyEnergyUtiliserResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "Test"}, "calorific_value": {"type": "integer", "example": 1}, "fuel_medium_id": {"type": "integer", "example": 1}, "heat_value": {"type": "integer", "example": 100}}, "type": "object"}, "PropertyCreation": {"properties": {"street": {"type": "string", "description": "Property address street", "example": "Streetalley"}, "housenumber": {"type": "string", "description": "Property address house number", "example": "12B"}, "zip": {"type": "string", "description": "Property address postal code", "example": "12345"}, "city": {"type": "string", "description": "Property address city", "example": "Berlin"}, "objectnumber": {"type": "string", "description": "Property object number", "example": "OBJ-12345"}, "arge_object_nr": {"type": "string", "description": "Property ARGE identifier", "example": "K7-54321"}, "customer": {"type": "integer", "description": "Customer id", "example": 1}, "setup_billing": {"type": "boolean", "description": "Should setup billing", "example": false}, "consumption_cost_ratio": {"type": "integer", "description": "Ratio of consumption costs", "example": 1}, "basic_cost_ratio": {"type": "integer", "description": "Ratio of basic costs", "example": 1}, "energy_utilization_type": {"type": "integer", "description": "Energy utilizer type ID\n                {\n                    0: 'Fernw\u00e4rme',\n                    1: 'Gas',\n                    2: '\u00d6l'\n                }", "example": 0}, "billing_start": {"type": "string", "format": "date-time", "description": "Begin of the billing period", "example": "2020-12-23 14:00"}, "commission_unit": {"type": "boolean", "description": "Whether a new unit with location 'Kommission' should be created along with the property", "example": true}, "create_general_unit": {"type": "boolean", "description": "Whether Allgemein Nutzung unit should be created", "example": true}, "comment": {"type": "string", "description": "The Anmerkung field in ERAS2 Objekt", "example": "Text"}, "internal_comment": {"type": "string", "description": "Property internal comment", "example": "Check gas valve"}, "longitude": {"type": "number", "example": 66.6}, "latitude": {"type": "number", "example": 111.1}, "building_type": {"type": "string", "example": "Wohnanlage"}, "year_built": {"type": "integer", "example": "2011"}, "billing_end_first_period": {"type": "boolean", "description": "Use the end of the year as end of the first billing period", "example": "true"}, "ch_is_locked": {"type": "boolean", "example": true}, "smoke_detector_is_locked": {"type": "boolean", "example": true}, "hardware_is_locked": {"type": "boolean", "example": false}, "billing_is_locked": {"type": "boolean", "example": true}, "setup_type": {"type": "integer", "example": 0}, "uvi_start_date": {"type": "string", "format": "date-time", "description": "starting date for uvi reporting", "example": "2021-01-01 00:00:00"}, "reference_date_for_device_reset": {"type": "string", "description": "reference date on which device reset is performed, defaults to last day of the year", "example": "12-31"}}, "type": "object"}, "PropertyByUsernameResponseSchema": {"properties": {"user_id": {"type": "integer", "example": 1}, "properties": {"type": "array", "items": {"$ref": "#/definitions/PropertyResponseSchema"}}}, "type": "object"}, "UnitGroupDelete": {"required": ["id"], "properties": {"id": {"type": "integer", "description": "unit group id", "example": 112}, "name": {"type": "string", "example": "HeckAllstate 10-22"}, "property_id": {"type": "integer", "description": "property id", "example": 1212}, "consumption_group_id": {"type": "integer", "description": "consumption group id", "example": 1233}, "tenant_group_id": {"type": "integer", "description": "tenant id", "example": 1244}}, "type": "object"}, "UnitGroupCreate": {"properties": {"name": {"type": "string", "example": "HechAllststra\u00dfe 10-22"}, "property_id": {"type": "integer", "description": "property id", "example": 1212}, "consumption_group_id": {"type": "integer", "description": "consumption group id", "example": 1233}, "tenant_group_id": {"type": "integer", "description": "tenant id", "example": 1244}, "units": {"type": "array", "items": {"$ref": "#/definitions/UnitGroup"}}}, "type": "object"}, "UnitGroup": {"properties": {"name": {"type": "string", "example": "HechAllststra\u00dfe 10-22"}, "property_id": {"type": "integer", "description": "property id", "example": 1212}, "consumption_group_id": {"type": "integer", "description": "consumption group id", "example": 1233}, "tenant_group_id": {"type": "integer", "description": "tenant id", "example": 1244}}, "type": "object"}, "UnitGroupRelationsResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "property_id": {"type": "string", "example": "Some name"}, "consumption_group_id": {"type": "integer", "example": 1}, "tenant_group_id": {"type": "integer", "example": 1}, "unit_groups": {"$ref": "#/definitions/UnitGroupResponseSchema"}, "units": {"$ref": "#/definitions/UnitGroupResponseSchema"}, "unit_siblings": {"type": "array", "items": {"$ref": "#/definitions/UnitGroupResponseSchema"}}}, "type": "object"}, "UnitGroupResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "ada"}, "property_id": {"type": "integer", "example": 0}, "consumption_group_id": {"type": "integer", "example": 0}, "tenant_group_id": {"type": "integer", "example": 0}}, "type": "object"}, "UnitGroupMatrixDelete": {"properties": {"unit_group_relations": {"type": "array", "items": {"$ref": "#/definitions/UnitGroupsDeleteBase"}}}, "type": "object"}, "UnitGroupsDeleteBase": {"required": ["parent_unit_group_id"], "properties": {"parent_unit_group_id": {"type": "integer", "description": "parent unit group id", "example": 1244}, "unit_group_ids": {"type": "array", "items": {"type": "integer"}}}, "type": "object"}, "UnitGroupMatrix": {"properties": {"unit_group_relations": {"type": "array", "items": {"$ref": "#/definitions/UnitGroupsBase"}}}, "type": "object"}, "UnitGroupsBase": {"required": ["parent_unit_group_id"], "properties": {"parent_unit_group_id": {"type": "integer", "description": "parent unit group id", "example": 1244}, "unit_group_ids": {"type": "array", "items": {"type": "integer"}}}, "type": "object"}, "UnitGroupRelationsMatrixResponseSchema": {"properties": {"unit_group_id": {"type": "integer", "example": 1}, "unit_group_name": {"type": "string", "example": "Bobystra\u00dfe 22-43"}, "unit_group_children": {"type": "array", "items": {"type": "integer"}}}, "type": "object"}, "CommunicationUpdateOrPost": {"properties": {"biller_first_name": {"type": "string"}, "biller_name": {"type": "string"}, "biller_salutation_id": {"type": "integer"}, "biller_email": {"type": "string"}, "property_manager_first_name": {"type": "string"}, "property_manager_name": {"type": "string"}, "property_manager_salutation_id": {"type": "integer"}, "property_manager_email": {"type": "string"}, "customer_name": {"type": "string"}, "customer_salutation_id": {"type": "integer"}, "customer_house_number": {"type": "string"}, "customer_street": {"type": "string"}, "customer_zipcode": {"type": "string"}, "customer_city": {"type": "string"}, "customer_email": {"type": "string"}}, "type": "object"}, "WIPSIdList": {"required": ["customer_id"], "properties": {"customer_id": {"type": "integer"}, "id_list": {"type": "array", "items": {"type": "integer"}}}, "type": "object"}, "UnitList": {"required": ["property_id"], "properties": {"property_id": {"type": "integer"}, "units": {"type": "array", "items": {"$ref": "#/definitions/UnitCreateSchema"}}}, "type": "object"}, "UnitCreateSchema": {"required": ["date_from", "location", "ne_arge", "ne_number", "order_nr"], "properties": {"date_from": {"type": "string", "format": "date-time"}, "location": {"type": "string"}, "ne_number": {"type": "string"}, "ne_arge": {"type": "string"}, "order_nr": {"type": "integer"}, "area": {"type": "number"}, "area_heating": {"type": "number"}, "area_cold_water": {"type": "number"}, "area_warm_water": {"type": "number"}, "area_additional_costs": {"type": "number"}, "address_id": {"type": "integer"}, "address": {"$ref": "#/definitions/ErasFullAddress"}}, "type": "object"}, "ErasFullAddress": {"required": ["city", "house_number", "street", "zip"], "properties": {"street": {"type": "string", "description": "Street", "example": "Teststrasse"}, "zip": {"type": "string", "description": "Zip code", "example": "12345"}, "city": {"type": "string", "description": "City", "example": "Berlin"}, "house_number": {"type": "string", "description": "House number", "example": "23B"}}, "type": "object"}, "BillingPeriod": {"required": ["billing_end", "billing_start"], "properties": {"billing_start": {"type": "string", "format": "date-time", "description": "Start of new billing period", "example": "2022-01-01"}, "billing_end": {"type": "string", "format": "date-time", "description": "End of new billing period", "example": "2022-11-01"}}, "type": "object"}, "TenantInsert": {"required": ["move_in", "type"], "properties": {"move_in": {"type": "string", "format": "date-time", "description": "Tenant move in date", "example": "2020-12-23T12:33:43"}, "move_out": {"type": "string", "format": "date-time", "description": "Tenant move out date", "example": "2022-12-23T12:33:43"}, "type": {"type": "integer", "description": "Tenant type as one of {0: \"Leerstand\", 1: \"Privat\", 2: \"Gewerblich\"}", "example": 1}, "salutation": {"type": "integer", "description": "Tenant salutation id", "example": 1}, "company_name": {"type": "string", "description": "Company name", "example": "Firma"}, "title": {"type": "integer", "description": "Tenant title id", "example": 1}, "contact_person_title": {"type": "integer", "description": "Contact title id", "example": 1}, "contact_person_salutation": {"type": "integer", "description": "Contact salutation id", "example": 1}, "contact_person_last_name": {"type": "string", "description": "Contact last name", "example": "Smith"}, "contact_person_first_name": {"type": "string", "description": "Contact first name", "example": "John"}, "last_name": {"type": "string", "description": "Tenant last name", "example": "Smith"}, "first_name": {"type": "string", "description": "Tenant first name", "example": "John"}, "arge_unit_nr": {"type": "string", "description": "Unit of reading", "example": "1"}, "skip_gapfilling": {"type": "boolean", "description": "Skip the filling algorithm that avoids gaps in the tenant history for a unit. ", "example": "true"}, "old_readings": {"type": "array", "items": {"$ref": "#/definitions/OldReadingSchema"}}}, "type": "object"}, "OldReadingSchema": {"required": ["date", "device_id", "reading"], "properties": {"device_id": {"type": "integer", "description": "Hardware ID connected to reading", "example": 1}, "reading": {"type": "string", "description": "Value of reading", "example": "1234"}, "date": {"type": "string", "description": "Unit of reading", "example": "m"}}, "type": "object"}, "TenantInsertResponseSchema": {"required": ["id"], "properties": {"id": {"type": "integer", "example": 6}, "from_date": {"type": "string", "format": "date-time", "example": "2017-01-01 00:00:00"}, "type": {"type": "integer", "example": 1}, "eras_uvi_type": {"type": "integer", "example": 0}, "to_date": {"type": "string", "format": "date-time", "example": "2017-01-01 00:00:00"}, "order": {"type": "integer", "example": 1}, "unit_id": {"type": "integer", "example": 3146}, "is_locked": {"type": "boolean", "example": true}, "is_netto": {"type": "boolean", "example": true}, "has_history": {"type": "boolean", "example": true}, "self_reader": {"type": "boolean", "example": true}, "web_guid": {"type": "string", "example": "234"}, "title_id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "John"}, "name2": {"type": "string", "example": "Smith"}, "name3": {"type": "string", "example": "Smithson"}, "name4": {"type": "string", "example": "extra"}, "salutation_id": {"type": "integer", "example": 1}, "was_created_by_app": {"type": "boolean", "example": true}, "diff_amount_allocation_settlement": {"type": "integer", "example": 1}, "new_number_ext": {"type": "string", "example": "12345"}, "note": {"type": "string", "example": "a note"}, "salutation_description_id": {"type": "integer", "example": 1}, "property_id": {"type": "integer", "example": 16}, "tenant_communication_id": {"type": "integer", "example": 1}, "tenant_communication_type": {"type": "integer", "example": 1}, "area_in_square_meters": {"type": "number", "example": 20.4}, "tenant_his": {"type": "string", "example": "1"}, "arge_unit_nr": {"type": "string", "example": "00123"}, "contact_person_title": {"type": "integer", "example": 1}, "contact_person_salutation": {"type": "integer", "example": 1}, "contact_person_last_name": {"type": "string", "example": "Smith"}, "contact_person_first_name": {"type": "string", "example": "John"}, "title": {"type": "string", "example": "Mr."}, "to_update": {"type": "boolean", "example": false}, "idarg": {"type": "string", "example": "0034"}, "ngw": {"type": "string", "example": "0034"}, "keycloak_username": {"type": "string", "example": "username"}, "portal_user_id": {"type": "integer", "example": 2}, "ut_id": {"type": "integer", "example": 2}, "zip_code": {"type": "string", "example": "14157"}, "email": {"type": "string", "example": "abc@de.com"}, "phone_number": {"type": "string", "example": "+49123424567"}, "address_street": {"type": "string", "example": "Hauptstr."}, "country": {"type": "string", "example": "Deutschland"}, "additional_address_id": {"type": "integer", "example": 5}, "additional_address_street": {"type": "string", "example": "Hauptstr."}, "additional_address_street2": {"type": "string", "example": "str."}, "additional_address_house_number": {"type": "string", "example": "2"}, "additional_address_zip_code": {"type": "string", "example": "14159"}, "additional_address_city": {"type": "string", "example": "Berlin"}, "additional_address_addon": {"type": "string", "example": "notiz"}, "additional_address_country": {"type": "string", "example": "Deutschland"}, "additional_address_country_iso": {"type": "string", "example": "DE"}, "uvi_start_date": {"type": "string", "format": "date-time", "example": "2017-01-01 00:00:00"}, "data_provision": {"type": "integer", "example": 2}}, "type": "object"}, "UserTenantInsert": {"required": ["tenant_id", "user_id"], "properties": {"tenant_id": {"type": "integer", "description": "Id of tenant", "example": 1}, "user_id": {"type": "integer", "description": "Id of user", "example": 2}}, "type": "object"}, "TenantByKeycloackResponseSchema": {"properties": {"keycloak_username": {"type": "string", "example": "user"}, "tenant_id": {"type": "integer", "example": 1}, "user_id": {"type": "integer", "example": 1}, "user_tenant_id": {"type": "integer", "example": 1}, "date_from": {"type": "string", "format": "date-time", "example": "2017-01-01 00:00:00"}, "date_to": {"type": "string", "format": "date-time", "example": "2023-01-01 00:00:00"}, "unit_id": {"type": "integer", "example": 123}}, "type": "object"}, "PropertyTenantResponseSchema": {"properties": {"id": {"type": "integer", "example": 6}, "first_name": {"type": "string", "example": "Tom"}, "last_name": {"type": "string", "example": "Testman"}, "unit_id": {"type": "integer", "example": 32}}, "type": "object"}, "UnitGroupCountSchema": {"properties": {"count": {"type": "integer", "example": 123}, "type": {"type": "string", "example": "Privat"}}, "type": "object"}, "UnitResponseSchema": {"properties": {"id": {"type": "integer", "example": 12}, "name": {"type": "string", "example": "1GR"}, "property_id": {"type": "integer", "example": 1}, "internal_unit_number": {"type": "integer", "example": 123}, "order_of_entering": {"type": "string", "example": ""}}, "type": "object"}, "UnitInListResponseSchema": {"properties": {"unit_id": {"type": "integer", "example": 111}, "designation": {"type": "string", "example": "Heizung"}, "name": {"type": "string", "example": "1GR"}, "order": {"type": "string", "example": ""}, "ne_nr": {"type": "string", "example": "0123"}, "location": {"type": "string", "example": "1GR"}, "type": {"type": "integer", "example": 0}, "area": {"type": "integer", "example": 87}, "area_additional_costs": {"type": "number", "example": 74.01}, "area_heating": {"type": "number", "example": 41.48}, "area_warm_water": {"type": "number", "example": 16.0}, "status": {"type": "integer", "example": 30}, "unit_groups": {"type": "string", "example": "G1"}, "street": {"type": "string", "example": "Alphastra\u00dfe 42"}, "city": {"type": "string", "example": "Aarsee"}, "longitude": {"type": "number", "example": 42.22}, "latitude": {"type": "number", "example": 21.22}, "zip": {"type": "string", "example": "00001"}, "eras_object_id": {"type": "integer", "example": "123098"}, "all_tenants": {"type": "array", "items": {"$ref": "#/definitions/TenantInUnitResponseSchema"}}}, "type": "object"}, "TenantInUnitResponseSchema": {"properties": {"id": {"type": "integer", "example": 1666}, "arge_unit_nr": {"type": "string", "example": "00ABC123456"}, "tenant_his": {"type": "integer", "example": 32}, "name": {"type": "string", "example": "Ulrike Heinze"}, "first_name": {"type": "string", "example": "Ulrike"}, "last_name": {"type": "string", "example": "Heinze"}, "bezeichnung": {"type": "string", "example": "Test"}, "brutto": {"type": "number", "example": 132.47}, "nutzerID": {"type": "integer", "example": 1}, "type": {"type": "integer", "example": 1}, "move_in": {"type": "string", "format": "date-time", "example": "2018-01-01 00:00:00"}, "move_out": {"type": "string", "format": "date-time", "example": "2020-12-31 23:59:59"}, "tenant_area": {"type": "number", "example": 12.6}, "unit_id": {"type": "integer", "example": 2237}}, "type": "object"}, "UnitCountByPropertyResponseSchema": {"properties": {"unit_count": {"type": "integer", "example": 123}}, "type": "object"}, "UnitUpdate": {"properties": {"address_id": {"type": "integer", "description": "Id of unit address", "example": 1}, "object_id": {"type": "integer", "description": "Id of Objekte where unit should be assigned", "example": 1}, "ne_number": {"type": "string", "description": "Number of unit within the property", "example": "B1-2345-K"}, "ne_arge": {"type": "string", "description": "ARGE identifier of unit within the property", "example": "O-1234"}, "location": {"type": "string", "description": "Unit name (lage)", "example": "1GL"}, "from_date": {"type": "string", "format": "date-time", "description": "Unit from date", "example": "2020-12-23T12:33:43"}, "to_date": {"type": "string", "format": "date-time", "description": "Unit to date", "example": "2020-12-23T12:33:43"}, "street": {"type": "string", "description": "the street for this unit", "example": "Hauptstrasse"}, "housenumber": {"type": "string", "description": "the housenumber for this unit", "example": "23a"}, "zip": {"type": "string", "description": "the postal code for this unit", "example": "12345"}, "order_nr": {"type": "integer", "description": "number of the unit", "example": "23"}, "area": {"type": "number", "description": "The living area of the unit", "example": "88.8"}, "area_cold_water": {"type": "number", "example": "32.2"}, "area_warm_water": {"type": "number", "example": "12.4"}, "area_heating": {"type": "number"}, "area_additional_costs": {"type": "number", "example": "13.8"}, "address": {"$ref": "#/definitions/ErasFullAddress"}}, "type": "object"}, "NewDevice": {"required": ["article_id", "device_number", "installation_date", "property_id", "unit_id"], "properties": {"property_id": {"type": "integer", "description": "Property id", "example": 1}, "unit_id": {"type": "integer", "description": "Unit id", "example": 1}, "device_number": {"type": "string", "description": "Device number", "example": "2435334e345"}, "article_id": {"type": "integer", "description": "Id of device catalogue entry", "example": 1}, "installation_date": {"type": "string", "format": "date-time", "description": "Installation date", "example": "2020-01-01 00:00:00"}, "removal_date": {"type": "string", "format": "date-time", "description": "Removal date", "example": "2020-12-31 00:00:00"}, "calibration_date": {"type": "string", "format": "date-time", "description": "Calibration date", "example": "2020-12-31 00:00:00"}, "position": {"type": "string", "description": "Position (Laufende Nummer) in the unit", "example": "\"1\""}, "allow_duplicate_positions": {"type": "boolean", "description": "whether duplicate positions can be added", "example": true}, "room_id": {"type": "integer", "description": "Room id. Either this or room is required", "example": 2}, "room": {"type": "string", "description": "Room by name. Either this or room_id is required", "example": 2}, "aes_key": {"type": "string", "description": "AES key, must be 16 hex values", "example": "d15c434735a21fe171acaa170e90bc59"}, "description": {"type": "string", "description": "Device description", "example": "new HKV in the kitchen"}, "designation": {"type": "string", "description": "Device designation", "example": "designation"}, "note": {"type": "string", "description": "Device note", "example": "this device should be replaced in 2021"}, "readings_unit_id": {"type": "integer", "description": "ID of the eras readings unit", "example": 2}, "rented": {"type": "integer", "description": "whether the device is rented or not (1/0)", "example": 1}, "maintained": {"type": "integer", "description": "whether the device is maintained or not (1/0)", "example": 0}, "reading_determination": {"type": "integer", "description": "The type of determination  of the reading for this model", "example": 2}, "duration_estimate": {"type": "integer", "description": "duration estimate", "example": 0}, "no_print": {"type": "integer", "description": "no printing", "example": 0}, "cable_diameter": {"type": "integer", "description": "line diameter (Leitungsdurchmesser)", "example": 1}, "cable_length": {"type": "integer", "description": "cable length  (Leitungsl\u00e4nge)", "example": 10}, "connection": {"type": "string", "description": "line connection (Leitungsanschluss)", "example": "Leitungsanschluss"}, "throughput": {"type": "number", "description": "throughput (Durchsatz)", "example": 1.5}, "pulse_valence": {"type": "number", "description": "Pulse valence (Impuls-Wertigkeit)", "example": 1.5}, "connected_module_pulse_valence": {"type": "number", "description": "Pulse valence of the radio module (Impuls-Wertigkeit)", "example": 1.5}, "factor": {"type": "number", "description": "factor", "example": 1.5}, "kc1": {"type": "number", "description": "kc1", "example": 1.5}, "kc2": {"type": "number", "description": "kc2", "example": 1.5}, "kq": {"type": "number", "description": "kq", "example": 1.5}, "ant_factor": {"type": "number", "description": "ant factor", "example": 1.5}, "initial_reading": {"type": "number", "description": "initial reading", "example": 100}, "final_reading": {"type": "number", "description": "final reading", "example": 200}, "has_distance_sensor": {"type": "integer", "description": "has distance sensor (Fernf\u00fchler)", "example": 1}, "has_electrical_addition": {"type": "integer", "description": "has electrical addition (Elektrozusatz)", "example": 1}, "magnetic_number_register": {"type": "string", "description": "magnetic number register (Magnetzahlenregister)", "example": "Magnetzahlenregister"}, "is_dubious": {"type": "integer", "description": "is dubious (Zweifelhaft)", "example": 1}, "hk_type": {"type": "string", "description": "HK type", "example": "HK type"}, "hk_length": {"type": "integer", "description": "hk length", "example": 2}, "hk_height": {"type": "integer", "description": "hk height", "example": 2}, "hk_measure_f": {"type": "string", "description": "HK measure F", "example": "HK measure"}, "hk_measure_g": {"type": "string", "description": "HK measure G", "example": "HK measure"}, "hk_measure_h": {"type": "string", "description": "HK measure H", "example": "HK measure"}, "hk_measure_i": {"type": "string", "description": "HK measure I", "example": "HK measure"}, "hk_manufacturer": {"type": "string", "description": "HK manufacturer", "example": "HK manufacturer"}, "hk_model": {"type": "string", "description": "HK model", "example": "HK model"}, "hk_assembly_point": {"type": "string", "description": "HK assembly point", "example": "HK assembly point"}, "hk_form_characteristic_1": {"type": "integer", "description": "HK form characteristic 1", "example": 2}, "hk_form_characteristic_2": {"type": "integer", "description": "HK form characteristic 2", "example": 2}, "hk_form_characteristic_3": {"type": "integer", "description": "HK form characteristic 3", "example": 2}, "hk_form_characteristic_4": {"type": "integer", "description": "HK form characteristic 4", "example": 2}, "hk_form_characteristic_5": {"type": "integer", "description": "HK form characteristic 5", "example": 2}, "hk_form_characteristic_6": {"type": "integer", "description": "HK form characteristic 6", "example": 2}, "hk_form_characteristic_7": {"type": "integer", "description": "HK form characteristic 7", "example": 2}, "hk_form_characteristic_8": {"type": "integer", "description": "HK form characteristic 8", "example": 2}, "hk_form_characteristic_9": {"type": "integer", "description": "HK form characteristic 9", "example": 2}, "hk_form_characteristic_10": {"type": "integer", "description": "HK form characteristic 10", "example": 2}, "base_sensitivity": {"type": "number", "description": "Base sensitiviy of a heat cost allocator", "example": 1.5}, "deumess_factor": {"type": "number", "description": "Deumess factor", "example": 1.0}}, "type": "object"}, "HardwareManagerResponseSchema": {"properties": {"counts": {"$ref": "#/definitions/HardwareManagerCountsResponseSchema"}, "hardware": {"type": "array", "items": {"$ref": "#/definitions/HardwareManagerHardwareInstanceResponseSchema"}}, "tasks": {"type": "array", "items": {"$ref": "#/definitions/HardwareManagerTaskInstanceResponseSchema"}}}, "type": "object"}, "HardwareManagerCountsResponseSchema": {"properties": {"cho_components": {"$ref": "#/definitions/HardwareManagerCentralHeatingComponentsResponseSchema"}, "collectors": {"$ref": "#/definitions/HardwareManagerCollectorsResponseSchema"}, "meters": {"$ref": "#/definitions/HardwareManagerMetersResponseSchema"}}, "type": "object"}, "HardwareManagerCentralHeatingComponentsResponseSchema": {"properties": {"Heizkessel": {"type": "integer", "example": 1}, "Pumpen": {"type": "integer", "example": 3}, "Warmwasserspeicher": {"type": "integer", "example": 0}, "W\u00e4remetauscher": {"type": "integer", "example": 2}}, "type": "object"}, "HardwareManagerCollectorsResponseSchema": {"properties": {"Datensammler": {"type": "integer", "example": 9}, "LoRa": {"type": "integer", "example": 0}}, "type": "object"}, "HardwareManagerMetersResponseSchema": {"properties": {"GZ": {"type": "integer", "example": 0}, "HKV": {"type": "integer", "example": 123}, "KWZ": {"type": "integer", "example": 1000}, "RWM": {"type": "integer", "example": 0}, "SZ": {"type": "integer", "example": 12}, "WMZ": {"type": "integer", "example": 603}, "WWZ": {"type": "integer", "example": 61}}, "type": "object"}, "HardwareManagerHardwareInstanceResponseSchema": {"properties": {"activation_date": {"type": "string", "example": "Mon, 26 Oct 2020 00:00:00 GMT"}, "calibration_date": {"type": "string", "example": "Mon, 26 Oct 2020 00:00:00 GMT"}, "category": {"type": "string", "example": "Empfang"}, "city": {"type": "string", "example": "Berlin"}, "customer": {"type": "string", "example": "Customer"}, "description": {"type": "string", "example": "Elektronischer W\u00e4rmemengenz\u00e4hler"}, "designation": {"type": "string", "example": ""}, "hardware_id": {"type": "integer", "example": 1}, "hardware_state": {"type": "integer", "example": 20}, "location": {"type": "string", "example": "Y"}, "oms_id": {"type": "string", "example": "OMS-1234"}, "property_id": {"type": "integer", "example": 1}, "room": {"type": "string", "example": "Kuche"}, "street": {"type": "string", "example": "Test Strasse 20"}, "type_id": {"type": "string", "example": "WMZ"}, "zip": {"type": "string", "example": "12345"}}, "type": "object"}, "HardwareManagerTaskInstanceResponseSchema": {"properties": {"activation_date": {"type": "string", "example": "Mon, 26 Oct 2020 00:00:00 GMT"}, "calibration_date": {"type": "string", "example": "Mon, 26 Oct 2020 00:00:00 GMT"}, "category": {"type": "string", "example": "Empfang"}, "city": {"type": "string", "example": "Berlin"}, "customer": {"type": "string", "example": "Customer"}, "description": {"type": "string", "example": "Elektronischer W\u00e4rmemengenz\u00e4hler"}, "designation": {"type": "string", "example": ""}, "hardware_id": {"type": "integer", "example": 1}, "hardware_state": {"type": "integer", "example": 20}, "location": {"type": "string", "example": "Y"}, "oms_id": {"type": "string", "example": "OMS-1234"}, "property_id": {"type": "integer", "example": 1}, "room": {"type": "string", "example": "Kuche"}, "street": {"type": "string", "example": "Test Strasse 20"}, "type_id": {"type": "string", "example": "WMZ"}, "zip": {"type": "string", "example": "12345"}}, "type": "object"}, "HardwareMeteringResponseSchema": {"properties": {"title": {"type": "string", "example": "Temperatur"}, "panel_id": {"type": "integer", "example": 10}, "first_value": {"$ref": "#/definitions/HardwareMeteringReadingValueSchema"}, "last_value": {"$ref": "#/definitions/HardwareMeteringReadingValueSchema"}}, "type": "object"}, "HardwareMeteringReadingValueSchema": {"properties": {"time": {"type": "string", "example": "2020-02-01T16:21:05Z"}, "last": {"type": "number", "example": 12.3}}, "type": "object"}, "ErasHardwareUpdate": {"properties": {"unit_id": {"type": "integer", "description": "Id of unit", "example": 1}, "comment": {"type": "string", "description": "Hardware commnet", "example": "Some maintanance comment"}, "description": {"type": "string", "description": "Hardware description", "example": "Hauptz\u00e4hler Heizkreis"}, "designation": {"type": "string", "description": "Hardware desgination", "example": "Generischer Gasz\u00e4hler (allgemein)"}, "removal_date": {"type": "string", "format": "date-time", "description": "date of removal", "example": "2020-12-23T12:33:43"}, "installation_date": {"type": "string", "format": "date-time", "description": "date of installation", "example": "2020-12-23T12:33:43"}, "calibration_date": {"type": "string", "format": "date-time", "description": "date of calibration", "example": "2020-12-23T12:33:43"}, "article_id": {"type": "integer", "description": "device type article id", "example": 1}, "room_id": {"type": "integer", "description": "room id", "example": 1}, "room": {"type": "string", "description": "Room by name. Either this or room_id is required", "example": 2}, "device_number": {"type": "string", "description": "Device number", "example": "1259834e3"}, "position": {"type": "string", "description": "Position (\"laufende Nummer\")", "example": "1.1"}, "aes_key": {"type": "string", "description": "AES key, must be 16 hex values", "example": "d15c434735a21fe171acaa170e90bc59"}, "factor": {"type": "number", "description": "factor", "example": 1.2}, "base_sensitivity": {"type": "number", "description": "Base sensitiviy of a heat cost allocator", "example": 1.5}, "deumess_factor": {"type": "number", "description": "Deumess factor", "example": 1.5}, "pulse_valence": {"type": "number", "description": "Pulse Valence", "example": 1.2}, "connected_module_pulse_valence": {"type": "number", "description": "Pulse Valence of the radio module", "example": 1.2}, "installation_status": {"type": "string", "format": "date-time", "description": "Installation date", "example": "2020-12-23T12:33:43"}, "rented": {"type": "integer", "example": 1}, "maintained": {"type": "integer", "example": 0}, "reading_determination": {"type": "integer", "description": "The type of determination  of the reading for this model", "example": 2}}, "type": "object"}, "PeriodResponseSchema": {"properties": {"label": {"type": "string", "example": "Heizperiode 2020"}, "value": {"$ref": "#/definitions/CentralHeatingPeriodValues"}}, "type": "object"}, "CentralHeatingPeriodValues": {"properties": {"start": {"type": "string", "format": "date", "example": "17.06.2020"}, "end": {"type": "string", "format": "date", "example": "17.06.2021"}}, "type": "object"}, "HardwareIntervalSchema": {"required": ["expected_data_interval_max", "expected_data_interval_min", "hardware_id", "verbosity_treatment"], "properties": {"hardware_id": {"type": "integer", "description": "Id of hardware", "example": 1}, "expected_data_interval_min": {"type": "string", "description": "Minimal data ingestion period", "example": "7d"}, "expected_data_interval_max": {"type": "string", "description": "Maximal data ingestion period", "example": "14d"}, "verbosity_treatment": {"type": "integer", "description": "Verbosity treatment", "example": 1}}, "type": "object"}, "DeviceCatalog": {"required": ["manufacturer_id", "name", "number", "qn", "readable", "short_name", "type_id"], "properties": {"name": {"type": "string", "description": "The name of the device type", "example": "Qundis KWZ 2,5 AP 80"}, "short_name": {"type": "string", "description": "The short name of the device type", "example": "KWZ 2,5 AP 80"}, "number": {"type": "string", "description": "The identifying number for the model"}, "readable": {"type": "boolean", "description": "Is the device type readable", "example": "true"}, "qn": {"type": "string", "description": "Norminal flow", "example": "2.5"}, "length": {"type": "number", "description": "The length", "example": "2.5"}, "connector": {"type": "string", "description": "The connection type of the model"}, "determination_of_reading_value_id": {"type": "integer", "description": "The type of determination  of the reading for this model"}, "description": {"type": "string", "description": "A description for the model"}, "manufacturer_id": {"type": "integer", "description": "The id of the manufacturer.", "example": "54531"}, "type_id": {"type": "integer", "example": "13"}}, "type": "object"}, "DeviceCatalogResponseSchema": {"properties": {"name": {"type": "string", "example": "Allgemein WZ"}, "readable": {"type": "integer", "example": 23}, "qn": {"type": "string", "example": "2.5"}, "device_length": {"type": "string", "example": "60mm"}, "name_short": {"type": "string", "example": "Allg. WZ"}, "connection": {"type": "string", "example": "M66x6"}, "article_determination_of_reading_value_id": {"type": "integer", "example": 3}, "number": {"type": "string", "example": "1011010101"}, "article_id": {"type": "integer", "example": 8753}, "description": {"type": "string", "example": "Allg. Wasserz\u00e4hler"}, "device_type": {"type": "string", "example": "Allgemeiner Wasserz\u00e4hler"}, "device_type_short": {"type": "string", "default": "Allg. Wasserz\u00e4hler"}, "type_id": {"type": "integer", "example": 3}, "type_text": {"type": "string", "example": "WZ"}, "manufacturer_id": {"type": "integer", "example": 123123}, "manufacturer_name": {"type": "string", "example": "Qundis"}}, "type": "object"}, "ReadingUpdateSchema": {"properties": {"value": {"type": "number", "description": "Value of single reading", "example": 300.3}, "date": {"type": "string", "description": "Datestring in isoformat", "example": "2020-01-01 00:00:00"}, "raw_reading": {"type": "number", "description": "Value of single raw reading", "example": 300.3}}, "type": "object"}, "BatchReadingUpdateSchema": {"properties": {"readings": {"type": "array", "items": {"$ref": "#/definitions/NestedUpdate"}}}, "type": "object"}, "NestedUpdate": {"required": ["device_id", "id"], "properties": {"id": {"type": "integer", "description": "Reading id", "example": 1}, "device_id": {"type": "integer", "description": "Device id", "example": 1}, "date": {"type": "string", "format": "date-time", "description": "Date of reading", "example": "2020-12-23T12:33:43"}, "type": {"type": "string", "description": "Type of the reading (HA, ZA, MO, EB, AB)", "example": "HA"}, "factor": {"type": "number", "description": "factor of device (Bewertungsfaktor)", "example": 1.12}, "value": {"type": "number", "description": "Value of reading", "example": 12.12}}, "type": "object"}, "SavedReadings": {"properties": {"readings": {"type": "array", "items": {"$ref": "#/definitions/ReadingInstance"}}}, "type": "object"}, "ReadingInstance": {"required": ["reading_date", "type", "value"], "properties": {"reading_date": {"type": "string", "format": "date-time", "description": "Date of reading", "example": "2020-12-23T12:33:43"}, "type": {"type": "string", "description": "Type of the reading (HA, ZA, MO, EB, AB)", "example": "HA"}, "factor": {"type": "number", "description": "factor of device (Bewertungsfaktor)", "example": 1.12}, "value": {"type": "number", "description": "Value of reading", "example": 12.12}}, "type": "object"}, "TaskListResponseSchema": {"properties": {"task_id": {"type": "integer", "example": 1}, "module": {"type": "string", "example": "Abrechnung"}, "headline": {"type": "string", "example": "Abrechnung"}, "property_id": {"type": "integer", "example": 1}, "category": {"type": "string", "example": "Category"}, "task": {"type": "string", "example": "Do something important"}, "priority": {"type": "integer", "example": 1000}, "responsibility": {"type": "string", "example": "null"}, "status": {"type": "integer", "example": 20}, "actions": {"type": "string", "example": "[\"snooze\"]"}, "snoozed_unitl": {"type": "string", "format": "date-time", "example": "2023-01-01 00:00:00"}, "activation_date": {"type": "string", "format": "date-time", "example": "2020-01-01 00:00:00"}, "linked_entity": {"type": "string", "example": "property"}, "linked_ids": {"type": "integer", "example": 1}, "variables": {"type": "string", "example": "null"}, "street": {"type": "string", "example": "TestStreet"}}, "type": "object"}, "TaskUpdate": {"properties": {"user_comment": {"type": "string", "description": "User comment about task", "example": "Task was removed"}, "snoozed_until": {"type": "string", "format": "date-time", "description": "Snooze time for task", "example": "2020-12-23T12:33:43"}}, "type": "object"}, "TaskAcknowledgement": {"required": ["resulting_tasktype_id"], "properties": {"resulting_tasktype_id": {"type": "integer", "description": "task type id of the new task to be generated", "example": 1}}, "type": "object"}, "Comment": {"required": ["message"], "properties": {"message": {"type": "string", "description": "Comment connected to task", "example": "Fix this ASAP."}}, "type": "object"}, "TaskComment": {"required": ["message"], "properties": {"message": {"type": "string", "description": "Comment connected to task", "example": "Fix this ASAP."}}, "type": "object"}, "AdditionalCostResponseSchema": {"properties": {"type": {"type": "string", "example": "N"}, "type_name": {"type": "string", "example": "nebenkosten"}, "description": {"type": "string", "example": "Some new cost"}, "id": {"type": "integer", "example": 1}, "date_from": {"type": "string", "format": "date-time", "example": "2018-01-01 00:00:00"}, "date_to": {"type": "string", "format": "date-time", "example": "2018-01-01 00:00:00"}, "distribution_in": {"type": "integer", "example": 0}, "distribution_for": {"type": "integer", "example": 1}, "distribution_out": {"type": "integer", "example": 2}, "reduction_type": {"type": "integer", "example": 0}, "brutto": {"type": "number", "example": 0.0}, "mwst": {"type": "number", "example": 19.0}, "unit_of_cost": {"type": "string", "example": "null"}, "hnd_gross": {"type": "number", "example": 0.0}, "hnd_description": {"type": "string", "example": "null"}, "billing_period_id": {"type": "integer", "example": 1}, "position": {"type": "integer", "example": 3}, "related_tenants": {"type": "string", "example": "[{id: \"1111\", first_name: \"Henry\",last_name: \"Name\"}]"}, "related_units": {"type": "string", "example": "[{id: \"1553\", location: \"1GL\",arge_unit_nr: \"0009\"}]"}, "related_tenants_cnt": {"type": "integer", "example": 1}, "related_units_cnt": {"type": "integer", "example": 1}}, "type": "object"}, "PortalDirectCost": {"required": ["amount", "billing_period_id", "brutto", "date", "description", "property_id", "tenant_id", "type"], "properties": {"description": {"type": "string", "description": "Cost description", "example": "Another important cost"}, "date": {"type": "string", "format": "date-time", "description": "Cost description", "example": "2020-12-23T08:53:39"}, "brutto": {"type": "number", "description": "Brutto", "example": 12.12}, "mwst": {"type": "number", "description": "MWST[%]", "example": 1.0}, "amount": {"type": "number", "description": "Cost amount", "example": 10.11}, "type": {"type": "integer", "description": "Type of cost", "example": 1}, "tenant_id": {"type": "integer", "description": "Id of tenant connected to cost", "example": 1}, "billing_period_id": {"type": "integer", "description": "Id of billing period connected to cost", "example": 1}, "property_id": {"type": "integer", "description": "Id of property connected to cost", "example": 1}, "note": {"type": "string", "description": "Additional note for costs", "example": "Fixing cost"}}, "type": "object"}, "DirectCost": {"required": ["amount", "billing_period_id", "brutto", "date", "description", "mwst", "property_id", "tenant_id", "type"], "properties": {"description": {"type": "string", "description": "Cost description", "example": "Another important cost"}, "date": {"type": "string", "format": "date-time", "description": "Cost description", "example": "2020-12-23T08:53:39"}, "brutto": {"type": "number", "description": "Brutto", "example": 12.12}, "mwst": {"type": "number", "description": "MWST[%]", "example": 1.0}, "amount": {"type": "number", "description": "Cost amount", "example": 10.11}, "type": {"type": "integer", "description": "Type of cost", "example": 1}, "tenant_id": {"type": "integer", "description": "Id of tenant connected to cost", "example": 1}, "billing_period_id": {"type": "integer", "description": "Id of billing period connected to cost", "example": 1}, "property_id": {"type": "integer", "description": "Id of property connected to cost", "example": 1}}, "type": "object"}, "CostUpdate": {"required": ["cost_type", "is_local"], "properties": {"cost_type": {"type": "string", "description": "cost type", "example": "heizbetriebskosten"}, "is_local": {"type": "boolean", "description": "whether costs are still unfinalized and saved in the local portal db", "example": false}}, "type": "object"}, "CustomerCreate": {"required": ["customer_number", "name", "salutation_id"], "properties": {"salutation_id": {"type": "integer", "description": "ID of salutation of customer itself (not contact person)", "example": 1}, "name": {"type": "string", "description": "Name of the customer itself", "example": "ACME Inc."}, "customer_number": {"type": "string", "description": "Customer number", "example": "K-1234"}, "arge_customer_nr": {"type": "string", "description": "Reference number of the customer in an external system (e.g. property management ERP),\n                        used for ARGE data exchange", "example": "12345CDF678"}, "is_netto": {"type": "boolean", "description": "Whether netto values/amounts are used for the bills to this customer", "example": false}, "address_street": {"type": "string", "description": "Street of customer address", "example": "Streetlane"}, "address_house_number": {"type": "string", "description": "House number of customer address", "example": "1/2"}, "address_zip": {"type": "string", "description": "Postal code of customer address", "example": "12345"}, "address_city": {"type": "string", "description": "City of customer address", "example": "Berlin"}, "latitude": {"type": "number", "description": "Latitude of the customer location", "example": "13.2"}, "longitude": {"type": "number", "description": "Longitude of the customer location.", "example": "26.1"}, "contact_person_salutation_id": {"type": "integer", "description": "Salutation ID of the contact person", "example": "13, check /general/salutations"}, "contact_person_name": {"type": "string", "description": "Name of the contact person", "example": "Mustermann"}, "comment": {"type": "string", "description": "Comment about the customer", "example": "This is a very important customer!"}, "logo": {"type": "object", "description": "Logo sent as bytes", "example": ""}}, "type": "object"}, "CustomerResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "Test"}, "comment": {"type": "string", "example": "Some comment"}, "Kundennummer": {"type": "string", "example": "CXZZ-1234"}, "city": {"type": "string", "example": "Berlin"}, "longitude": {"type": "number", "example": 12.213}, "latitude": {"type": "number", "example": 13.213}, "street": {"type": "string", "example": "Teststreet 123"}, "zip": {"type": "string", "example": "12345"}, "property_count": {"type": "integer", "example": 0}, "ne_count": {"type": "integer", "example": 0}, "contact_name": {"type": "string", "example": "Mr. Test"}}, "type": "object"}, "CustomerUpdate": {"required": ["salutation_id"], "properties": {"salutation_id": {"type": "integer", "description": "ID of salutation of customer itself (not contact person)", "example": 1}, "company_name": {"type": "string", "description": "Name of the customer itself", "example": "ACME Inc."}, "customer_number": {"type": "string", "description": "Customer number", "example": "C-1234-XX"}, "arge_customer_nr": {"type": "string", "description": "Reference number of the customer in an external system\n                       (e.g. property management ERP), used for ARGE data exchange", "example": "12345CDF678"}, "is_netto": {"type": "boolean", "description": "Whether netto values/amounts are used for the bills to this customer", "example": false}, "street": {"type": "string", "description": "Street of customer address", "example": "Streetlane"}, "house_number": {"type": "string", "description": "House number of customer address", "example": "1/2"}, "zip": {"type": "string", "description": "Postal code of customer address", "example": "12345"}, "city": {"type": "string", "description": "City of customer address", "example": "Berlin"}, "latitude": {"type": "number", "description": "Latitude of the customer location", "example": "23.6"}, "longitude": {"type": "number", "description": "Longitude of the customer location.", "example": "56.6"}, "contact_person_salutation_id": {"type": "integer", "description": "Salutation ID of the contact person", "example": "13, check /general/salutations"}, "contact_person_name": {"type": "string", "description": "Name of the contact person", "example": "Mustermann"}, "comment": {"type": "string", "description": "Comment about the customer", "example": "This is a very important customer!"}}, "type": "object"}, "CustomerDetailResponseSchema": {"properties": {"name": {"type": "string", "example": "Test"}, "Kundennummer": {"type": "string", "example": "CXZZ-1234"}, "logo": {"type": "string", "example": "endoded image"}, "comment": {"type": "string", "example": "Some comment"}, "city": {"type": "string", "example": "Berlin"}, "street": {"type": "string", "example": "Teststreet 123"}, "address_street": {"type": "string", "example": "Teststreet"}, "address_house_number": {"type": "string", "example": "123"}, "zip": {"type": "string", "example": "12345"}, "property_count": {"type": "integer", "example": 1}, "ne_count": {"type": "integer", "example": 0}, "ge_count": {"type": "integer", "example": 0}, "contact_name": {"type": "string", "example": "Mr. Test"}, "latitude": {"type": "number", "example": 62.3}, "longitude": {"type": "number", "example": 62.3}, "is_netto": {"type": "boolean", "example": false}, "salutation_id": {"type": "integer", "example": 6}, "properties": {"type": "array", "items": {"$ref": "#/definitions/CustomerPropertyPartResponseSchema"}}}, "type": "object"}, "CustomerPropertyPartResponseSchema": {"properties": {"property_id": {"type": "integer", "example": 1}, "eras_object_id": {"type": "integer", "example": 2}, "comment": {"type": "string", "example": "some comment"}, "internal_comment": {"type": "string", "example": "some internal comment"}, "address_id": {"type": "integer", "example": 6}, "customer": {"type": "string", "example": "Firma"}, "street": {"type": "string", "example": "Bahnhofsstra\u00dfe 3"}, "city": {"type": "string", "example": "Berlin"}, "Objektnummer": {"type": "string", "example": "1234CXZ"}, "zip": {"type": "string", "example": "01234"}, "longitude": {"type": "number", "example": 11.263134}, "latitude": {"type": "number", "example": 50.1766326}, "billing_state": {"type": "integer", "example": 10}, "hardware_state": {"type": "integer", "example": 10}, "smoke_detector_state": {"type": "integer", "example": 10}, "cho_state": {"type": "integer", "example": 10}}, "type": "object"}, "SalutationResponseSchema": {"properties": {"value": {"type": "integer", "example": 1}, "label": {"type": "string", "example": "Test"}}, "type": "object"}, "DatacollectorConfig": {"properties": {"listenCron": {"type": "string", "description": "ron expression defining when to rx wMBUS", "example": ""}, "mFilter": {"type": "string", "description": "wMBus manufacturer filter sep. by , e.g. dme,itwe", "example": "dme"}, "devFilter": {"type": "string", "description": "wMBus id filter e.g. 88009035,06198833 (8 digits)", "example": "88009035"}, "cmodeDurSec": {"type": "integer", "description": "Duration (Seconds) of C1/T1-mode receive", "example": 120}, "smodeDurSec": {"type": "integer", "description": "Duration (Seconds) of S1-mode receive", "example": 120}}, "type": "object"}, "BillingOverviewResponseSchema": {"properties": {"property_id": {"type": "integer", "example": 1}, "eras_object_id": {"type": "integer", "example": 2}, "comment": {"type": "string", "example": "Comment"}, "internal_comment": {"type": "string", "example": "Secret comment"}, "address_id": {"type": "integer", "example": 1}, "customer": {"type": "string", "example": "Company 1"}, "street": {"type": "string", "example": "Street 1"}, "city": {"type": "string", "example": "Berlin"}, "arge_object_nr": {"type": "string", "example": ""}, "Objektnummer": {"type": "string", "example": "1234vvv"}, "zip": {"type": "string", "example": "12345"}, "longitude": {"type": "number", "example": 8.612321}, "latitude": {"type": "number", "example": 50.10166}, "billing_state": {"type": "integer", "example": 10}, "hardware_state": {"type": "integer", "example": 10}, "smoke_detector_state": {"type": "integer", "example": 10}, "cho_state": {"type": "integer", "example": 10}, "tasks": {"type": "array", "items": {"$ref": "#/definitions/BillingTaskResponseSchema"}}, "billing_periods": {"type": "array", "items": {"$ref": "#/definitions/BillinePeriodOverviewResponseSchema"}}}, "type": "object"}, "BillingTaskResponseSchema": {"properties": {"task_id": {"type": "integer", "example": 1}, "property_id": {"type": "integer", "example": 1}, "street": {"type": "string", "example": "Street 1"}, "module": {"type": "string", "example": "Abrechnung"}, "headline": {"type": "string", "example": "Abrechnung"}, "user_comment": {"type": "string", "example": "some comment"}, "responsibility": {"type": "string", "example": "responsibility"}, "priority": {"type": "string", "example": "priority"}, "category": {"type": "string", "example": "category"}, "task": {"type": "string", "example": "Fix billing for property Street 1 !"}, "status": {"type": "integer", "example": 40}, "activation_date": {"type": "string", "example": "2020-08-04 14:36:31"}}, "type": "object"}, "BillinePeriodOverviewResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "from": {"type": "string", "format": "date-time", "example": "2019-01-01 00:00:00"}, "to": {"type": "string", "format": "date-time", "example": "2019-12-31 00:00:00"}, "property_id": {"type": "integer", "example": 1}, "street": {"type": "string", "example": "Street 1"}}, "type": "object"}, "BillingPeriodResponseSchema": {"properties": {"label": {"type": "string", "example": "01.01.2020 - 31.12.2020"}, "value": {"$ref": "#/definitions/CentralHeatingPeriodValues"}}, "type": "object"}, "BillingAggregatedResponseSchema": {"properties": {"closed_bills": {"type": "integer", "example": 1}, "total_bills": {"type": "integer", "example": 5}, "aggregated": {"type": "array", "items": {"$ref": "#/definitions/BillingMonthStats"}}}, "type": "object"}, "BillingMonthStats": {"properties": {"year": {"type": "integer", "example": 2020}, "month": {"type": "integer", "example": 1}, "closed_this_month": {"type": "integer", "example": 1}, "aggregated": {"type": "integer", "example": 1}, "percentage": {"type": "number", "example": 4.35}, "closed": {"type": "array", "items": {"$ref": "#/definitions/ClosedBilling"}}}, "type": "object"}, "ClosedBilling": {"properties": {"billing_id": {"type": "integer", "example": 1}, "billing_start": {"type": "string", "example": "2020-01-01 00:00:00"}, "billing_end": {"type": "string", "example": "2020-12-31 00:00:00"}, "property_id": {"type": "integer", "example": 3}, "closing_date": {"type": "string", "example": "2020-12-31 00:00:00"}}, "type": "object"}, "PropertyDocumentResponseSchema": {"properties": {"document_count": {"type": "integer", "example": 1}, "file_name": {"type": "string", "example": "1234.pdf"}, "created_at": {"type": "string", "example": "06.02.2020 08:26:12"}, "file_path": {"type": "string", "example": "upload/1234.pdf"}, "category": {"type": "string", "example": "General"}}, "type": "object"}, "LogoSchema": {"required": ["entity", "entity_id"], "properties": {"entity": {"type": "string", "description": "Entity (property, hardware etc.)", "example": "property"}, "entity_id": {"type": "integer", "description": "Id of the entity in database", "example": 1}}, "type": "object"}, "PrimaryImage": {"required": ["entity", "entity_id"], "properties": {"entity": {"type": "string", "description": "Entity (property, hardware etc.)", "example": "property"}, "entity_id": {"type": "integer", "description": "Id of the entity in database", "example": 1}}, "type": "object"}, "ConsumptionDocumentsResponseSchema": {"properties": {"link": {"type": "string", "example": "https://some.url.com/xdsjidiqjw123"}, "title": {"type": "string", "example": "test.csv"}}, "type": "object"}, "SupportMessage": {"required": ["email", "name", "problemExplanation", "subject", "text"], "properties": {"email": {"type": "string", "description": "Contact email", "example": "test@example.com"}, "name": {"type": "string", "description": "Contact name", "example": "John Smith"}, "subject": {"type": "string", "description": "Message subject", "example": "Somethings not working right"}, "text": {"type": "string", "description": "Message body", "example": "Very important error occured. Please fix."}, "phone": {"type": "string", "description": "Contact phone number", "example": "123123123"}, "problemExample": {"type": "string", "description": "Url of problem source", "example": "http://127.0.0.1/#important-url"}, "problemExplanation": {"type": "string", "description": "Short description", "example": "Explanation in one line"}, "files": {"type": "object", "description": "File attached", "example": ""}}, "type": "object"}, "CentralHeatingIdResponse": {"properties": {"id": {"type": "integer", "readOnly": true, "example": 1}, "energieverwerter_id": {"type": "integer", "readOnly": true, "example": 1}, "boiler_type": {"type": "string", "readOnly": true, "example": "Buderus / 1234"}, "heat_output": {"type": "string", "example": "50"}, "regulation": {"type": "string", "readOnly": true, "example": "Buderus Ecomatic"}, "circulation_pump": {"type": "string", "readOnly": true, "example": "Wilo 123"}, "hot_water_preparation": {"type": "string", "readOnly": true, "example": "Wilo 324"}, "year_built": {"type": "string", "readOnly": true, "example": "2017"}, "system_temperature": {"type": "string", "example": "80/60 \u00b0C"}, "temperature_incoming_fresh_water": {"type": "string", "example": "10 \u00b0 C"}, "heating_circuit_pump": {"type": "string", "readOnly": true, "example": "Wilo Star 1"}, "storage_loading_pump": {"type": "string", "readOnly": true, "example": "Wilo Stratos 1"}, "thumbnail_file_name": {"type": "string", "readOnly": true, "example": "1.png"}, "last_maintenance": {"type": "string", "readOnly": true, "example": "2020-04-25 20:00:00"}, "graph_flow_return": {"type": "string", "readOnly": true, "example": "https://some.url.com"}, "graph_efficiency_time": {"type": "string", "readOnly": true, "example": "https://some.url.com/1"}, "graph_gas_consumption": {"type": "string", "readOnly": true, "example": "https://some.url.com/2"}, "graph_heat_demand": {"type": "string", "readOnly": true, "example": "https://some.url.com/3"}, "graph_heat_meter_power": {"type": "string", "readOnly": true, "example": "https://some.url.com/4"}, "influx_database": {"type": "string", "readOnly": true, "example": "db"}, "created_at": {"type": "string", "readOnly": true, "example": "2020-02-06 12:15:13"}, "updated_at": {"type": "string", "readOnly": true}, "ID": {"type": "integer", "readOnly": true, "example": 1}, "Bezeichnung": {"type": "string", "readOnly": true, "example": "some description"}, "Beschreibung": {"type": "string", "readOnly": true, "example": "some other description"}, "Wirkungsgrad": {"type": "string", "readOnly": true, "example": "12.000"}, "Einbau": {"type": "string", "readOnly": true, "example": "2016-01-01 00:00:00"}, "Ausbau": {"type": "string", "readOnly": true}, "Baujahr": {"type": "integer", "example": 1990}, "ObjekteID": {"type": "integer", "readOnly": true, "example": 3}, "BrennstoffMediumID": {"type": "integer", "example": 3}, "Temperatur": {"type": "integer", "readOnly": true, "example": 50}, "EigenstGewerbLieferung": {"type": "integer", "readOnly": true, "example": 1}, "HatHistorie": {"type": "integer", "readOnly": true, "example": 0}, "Brennwert": {"type": "integer", "example": 1}, "WebGuid": {"type": "string", "readOnly": true, "example": "some-guid-1234-bbbb"}, "BHKWStromkostenProzent": {"type": "string", "readOnly": true, "example": "12.12"}, "property_id": {"type": "integer", "readOnly": true, "example": 2}, "Verbrauchsgruppen": {"type": "string", "readOnly": true, "example": "H1,H2"}, "kapacitor_site_tag": {"type": "string", "readOnly": true, "example": "some_tag"}, "Objektnummer": {"type": "string", "readOnly": true, "example": "1234"}, "brennstoffmedium": {"type": "string", "readOnly": true, "example": "Erdgas"}, "Heizwert": {"type": "string", "readOnly": true, "example": "10.000"}, "unit_of_medium": {"type": "integer", "readOnly": true, "example": 1}, "street": {"type": "string", "readOnly": true, "example": "Teststreet 32"}, "city": {"type": "string", "readOnly": true, "example": "Test city"}, "name": {"type": "string", "readOnly": true, "example": "Test"}, "optimisation": {"readOnly": true, "allOf": [{"$ref": "#/definitions/CentralHeatingOptimization"}]}, "heating_system_type_id": {"type": "integer", "example": 2}, "has_central_water_heating": {"type": "boolean", "example": false}}, "type": "object"}, "CentralHeatingOptimization": {"properties": {"energy_efficiency": {"$ref": "#/definitions/CentralHeatingGenericOptimization"}, "summer_shutdown": {"$ref": "#/definitions/CentralHeatingGenericOptimization"}, "nightdrop": {"$ref": "#/definitions/CentralHeatingGenericOptimization"}, "heating_curve": {"$ref": "#/definitions/CentralHeatingGenericOptimization"}, "pump_efficiency": {"$ref": "#/definitions/CentralHeatingGenericOptimization"}}, "type": "object"}, "CentralHeatingGenericOptimization": {"properties": {"status": {"type": "integer", "example": 30}, "explanation": {"type": "string"}, "graph_id": {"type": "string", "example": "12"}}, "type": "object"}, "LastMaintananceUpdate": {"required": ["value"], "properties": {"value": {"type": "string", "format": "date-time", "description": "Device of last maintanance", "example": "2020-12-23T10:29:36"}}, "type": "object"}, "CentralHeatingPropertyResponse": {"properties": {"id": {"type": "integer", "example": 1}, "energieverwerter_id": {"type": "integer", "example": 1}, "boiler_type": {"type": "string", "example": "Buderus / 1234"}, "heat_output": {"type": "string", "example": "50"}, "regulation": {"type": "string", "example": "Buderus Ecomatic"}, "circulation_pump": {"type": "string", "example": "Wilo 123"}, "hot_water_preparation": {"type": "string", "example": "Wilo 324"}, "year_built": {"type": "string", "example": "2017"}, "system_temperature": {"type": "string", "example": "80/60 \u00b0C"}, "heating_circuit_pump": {"type": "string", "example": "Wilo Star 1"}, "storage_loading_pump": {"type": "string", "example": "Wilo Stratos 1"}, "thumbnail_file_name": {"type": "string", "example": "1.png"}, "last_maintenance": {"type": "string", "example": "2020-04-25 20:00:00"}, "graph_flow_return": {"type": "string", "example": "https://some.url.com"}, "graph_efficiency_time": {"type": "string", "example": "https://some.url.com/1"}, "graph_gas_consumption": {"type": "string", "example": "https://some.url.com/2"}, "graph_heat_demand": {"type": "string", "example": "https://some.url.com/3"}, "graph_heat_meter_power": {"type": "string", "example": "https://some.url.com/4"}, "influx_database": {"type": "string", "example": "db"}, "created_at": {"type": "string", "example": "2020-02-06 12:15:13"}, "updated_at": {"type": "string"}, "ID": {"type": "integer", "example": 1}, "Bezeichnung": {"type": "string", "example": "some description"}, "Beschreibung": {"type": "string", "example": "some other description"}, "Wirkungsgrad": {"type": "string", "example": "12.000"}, "Einbau": {"type": "string", "example": "2016-01-01 00:00:00"}, "Ausbau": {"type": "string"}, "Baujahr": {"type": "integer", "example": 1990}, "ObjekteID": {"type": "integer", "example": 3}, "BrennstoffMediumID": {"type": "integer", "example": 3}, "Temperatur": {"type": "integer", "example": 50}, "EigenstGewerbLieferung": {"type": "integer", "example": 1}, "HatHistorie": {"type": "integer", "example": 0}, "Brennwert": {"type": "integer", "example": 1}, "WebGuid": {"type": "string", "example": "some-guid-1234-bbbb"}, "BHKWStromkostenProzent": {"type": "string", "example": "12.12"}, "Verbrauchsgruppen": {"type": "string", "example": "H1,H2"}}, "type": "object"}, "CentralHeatingPeriodResponseSchema": {"properties": {"label": {"type": "string", "example": "Heizperiode 2020"}, "value": {"$ref": "#/definitions/CentralHeatingPeriodValues"}}, "type": "object"}, "CentralHeatingDevices": {"properties": {"hardware_id": {"type": "integer", "example": 2}, "oms_id": {"type": "string", "example": "11111"}, "description": {"type": "string", "example": "Test description"}, "type_id": {"type": "string", "example": "HKV"}, "order_number": {"type": "integer", "example": 12}, "unit_id": {"type": "integer", "example": 12}, "metering_panels": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingMeteringPanel"}}, "tasks": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingTaskResponseSchema"}}, "last_year_values": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingInfluxValuesSchema"}}, "current_consumption": {"type": "integer", "example": 100}, "year_consumption": {"type": "integer", "example": 75}}, "type": "object"}, "CentralHeatingMeteringPanel": {"properties": {"title": {"type": "string", "example": "Some title"}, "panel_id": {"type": "string", "example": "24"}, "first_value": {"type": "string", "example": "Empty dict"}, "last_value": {"type": "string", "example": "Empty dict"}, "measurement": {"type": "string", "example": "Heat energy"}, "kind": {"type": "string", "example": "current"}}, "type": "object"}, "CentralHeatingTaskResponseSchema": {"properties": {"task_id": {"type": "integer", "example": 2}, "module": {"type": "string", "example": "Zentral-Heizung"}, "category": {"type": "string", "example": "W\u00e4rmemengenz\u00e4hler"}, "headline": {"type": "string", "example": "Messstellen"}, "task": {"type": "string", "example": "Some task text"}, "priority": {"type": "integer", "example": 1000}, "user_comment": {"type": "string", "example": "Some comment"}, "responsibility": {"type": "string", "example": ""}, "status": {"type": "integer", "example": 40}, "actions": {"type": "string", "example": "[\"snooze\"]"}, "task_type_id": {"type": "integer", "example": 94}, "snoozed_until": {"type": "string", "example": ""}, "created_at": {"type": "string", "example": "2021-06-15 11:39:13"}, "updated_at": {"type": "string", "example": "2021-06-16 11:39:13"}, "linked_entity": {"type": "string", "example": "hardware"}, "linked_ids": {"type": "integer", "example": 100}, "variables": {"type": "string", "example": ""}}, "type": "object"}, "CentralHeatingInfluxValuesSchema": {"properties": {"time": {"type": "string", "example": "2021-01-01T00:00:00Z"}, "value": {"type": "integer", "example": 0}, "unit": {"type": "string", "example": "Wh"}}, "type": "object"}, "ContractingResponseSchema": {"properties": {"property_id": {"type": "integer", "example": 12}, "client": {"type": "string", "example": "Hausverwaltung Judaplauhein"}, "object_number": {"type": "string", "example": "157541"}, "street": {"type": "string", "example": "Marienstra\u00dfe"}, "city": {"type": "string", "example": "Berlin"}, "fuel": {"type": "string", "example": "Heiz\u00f6l H"}, "cost_split": {"type": "string", "example": "100 / 100"}, "base_costs": {"type": "number"}, "operation_costs": {"type": "number"}, "unit_area": {"type": "number", "example": 1024.5}, "devices": {"type": "array", "items": {"$ref": "#/definitions/ContractingDeviceSchema"}}, "total_consumption": {"type": "number", "example": 928.2}, "total_consumption_previous": {"type": "number", "example": 928.2}, "cost_proportion": {"type": "string", "example": "unbekannt"}, "total_base_costs": {"type": "number", "example": 0.0}, "total_operation_costs": {"type": "number", "example": 0.0}, "total_costs": {"type": "number", "example": 0.0}, "specific_costs": {"type": "number", "example": 0.0}}, "type": "object"}, "ContractingDeviceSchema": {"properties": {"installed": {"type": "string", "format": "date-time"}, "removed": {"type": "string", "format": "date-time"}, "meter_reading": {"type": "number", "example": 1114.158}, "meter_reading_previous": {"type": "number", "example": 1114.158}, "total_consumption_device": {"type": "number", "example": 1114.158}, "total_consumption_device_previous": {"type": "number", "example": 1114.158}, "meter_type": {"type": "string", "example": "A"}, "meter": {"type": "string", "example": "47549513"}}, "type": "object"}, "HeatingCurveResponseSchema": {"properties": {"intercept": {"type": "number", "example": 1.2}, "r2": {"type": "number", "example": 1.2}, "r_sqr": {"type": "number", "example": 1.2}, "recommendation": {"type": "number", "example": 1.2}, "slope": {"type": "number", "example": 1.2}, "y_intercept": {"type": "number", "example": 1.2}}, "type": "object"}, "EnvironmentalData": {"properties": {"timeframe_from": {"type": "string", "format": "date-time", "description": "Timeframe from", "example": "2020-12-23T10:29:36"}, "timeframe_to": {"type": "string", "format": "date-time", "description": "Timeframe to", "example": "2020-12-23T10:29:36"}, "central_heating_id": {"type": "integer", "description": "ID of central heating environmental data is referring to", "example": 1}, "energy_source": {"type": "string", "description": "Energy source", "example": "L-Gas"}, "calorific_value": {"type": "number", "description": "Calorific value", "example": 14.06}, "absolute_energy_consumption": {"type": "number", "description": "Absolute energy consumption", "example": 9000.1}, "proportion_hot_water": {"type": "number", "description": "Share of hot water", "example": 4000.1}, "proportion_heating": {"type": "number", "description": "Share of heating", "example": 5000}, "climate_factor": {"type": "number", "description": "Climate factor", "example": 1.19}, "co2_factor": {"type": "number", "description": "CO2 emission factor", "example": 0.249}, "energy_demand": {"type": "number", "description": "Energy demand", "example": 85.2}, "primary_energy_demand": {"type": "number", "description": "Primary energy demand", "example": 93.72}, "primary_energy_factor": {"type": "number", "description": "Primary energy factor", "example": 1.1}, "quantity": {"type": "number", "description": "Quantity", "example": 16277.3}, "theoretical_energy": {"type": "number", "description": "Theoretical energy", "example": 146496.0}, "weather_adjusted_energy_consumption": {"type": "number", "description": "Weather adjusted energy consumption", "example": 13519.981}}, "type": "object"}, "WipsCentralHeating": {"required": ["fuel", "installation_date", "name", "tid"], "properties": {"tid": {"type": "integer", "description": "Wips external id", "example": 21}, "name": {"type": "string", "description": "Name", "example": "Kessel 1"}, "manufacture_year": {"type": "integer", "description": "Manufacture date", "example": 1996}, "temperature": {"type": "integer", "description": "Working temperature", "example": 70}, "fuel": {"type": "string", "description": "Fuel type", "example": "Gas"}, "installation_date": {"type": "string", "format": "date-time", "description": "Installation date", "example": "2021-03-30T11:29:07"}, "removal_date": {"type": "string", "format": "date-time", "description": "Removal date", "example": "2021-04-30T11:29:07"}}, "type": "object"}, "CentralHeatingConsumptionResponse": {"properties": {"central_heating_id": {"type": "integer", "example": 1}, "measurements": {"type": "array", "items": {"$ref": "#/definitions/CentralHeatingConsumptionEntrySchema"}}}, "type": "object"}, "CentralHeatingConsumptionEntrySchema": {"properties": {"hardware_id": {"type": "integer", "example": 12}, "measurement": {"type": "string", "example": "primary_energy"}, "fuel_type": {"type": "string", "example": "gas"}, "time": {"type": "array", "example": "[\"2021-01-01T00:00:00\", \"2021-12-01T00:00:00\"]", "items": {"type": "string", "format": "date-time"}}, "incomplete": {"type": "boolean", "example": false}, "energy": {"type": "array", "example": "[119598, 231514]", "items": {"type": "number"}}, "energy_intensity": {"type": "array", "example": "[119598, 231514]", "items": {"type": "number"}}, "normalized_energy": {"type": "array", "example": "[1243819.2, 2407745.6]", "items": {"type": "number"}}, "normalized_energy_intensity": {"type": "array", "example": "[1243819.2, 2407745.6]", "items": {"type": "number"}}}, "type": "object"}, "CentralHeatingGroup": {"required": ["name"], "properties": {"name": {"type": "string", "description": "The name of the group", "example": "a groupname"}}, "type": "object"}, "SimResponseSchema": {"properties": {"id": {"type": "integer", "example": 23451}, "iccid": {"type": "string", "example": "123451412421"}, "production_date": {"type": "string", "example": "2019-10-09T13:28:19.000+0000"}, "activation_date": {"type": "string", "example": "2020-10-09T13:28:19.000+0000"}, "status": {"$ref": "#/definitions/SimStatusResponseSchema"}, "customer_org": {"$ref": "#/definitions/SimCustomerOrgResponseSchema"}, "issuer_org": {"$ref": "#/definitions/SimIssuerResponseSchema"}, "endpoint": {"$ref": "#/definitions/SimEndpointResponseSchema"}, "imsi": {"type": "string", "example": "6484987751231321"}, "msisdn": {"type": "string", "example": "3123215614648"}, "model": {"$ref": "#/definitions/SimModelResponseSchema"}}, "type": "object"}, "SimStatusResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "description": {"type": "string", "example": "activated"}}, "type": "object"}, "SimCustomerOrgResponseSchema": {"properties": {"id": {"type": "integer", "example": 10324}, "name": {"type": "string", "example": "Kugu"}, "country": {"$ref": "#/definitions/SimCountryResponseSchema"}}, "type": "object"}, "SimCountryResponseSchema": {"properties": {"id": {"type": "integer", "example": 63}, "name": {"type": "string", "example": "Germany"}}, "type": "object"}, "SimIssuerResponseSchema": {"properties": {"id": {"type": "integer", "example": 1111}, "name": {"type": "string", "example": "whenever sim"}, "country": {"$ref": "#/definitions/SimCountryResponseSchema"}}, "type": "object"}, "SimEndpointResponseSchema": {"properties": {"id": {"type": "integer", "example": 123456}, "name": {"type": "string", "example": "kugu-example-1"}, "tags": {"type": "string", "example": ""}, "created": {"type": "string", "example": "2020-02-27T13:57:28.000+0000"}, "last_updated": {"type": "string", "example": "2020-09-21T12:16:04.000+0000"}, "status": {"$ref": "#/definitions/SimEndpointStatusResponseSchema"}, "service_profile": {"$ref": "#/definitions/SimServiceProfileResponseSchema"}, "tariff_profile": {"$ref": "#/definitions/SimTarrifProfileResponseSchema"}, "sim": {"$ref": "#/definitions/SimEndpointSimResponseSchema"}, "ime": {"type": "string", "example": "419818723432"}, "ip_address": {"type": "string", "example": "192.168.0.1"}, "ip_address_space": {"$ref": "#/definitions/SimIdResponseSchema"}, "imei_lock": {"type": "boolean", "example": true}}, "type": "object"}, "SimEndpointStatusResponseSchema": {"properties": {"id": {"type": "integer", "example": 123412}, "description": {"type": "string", "example": "Enabled"}}, "type": "object"}, "SimServiceProfileResponseSchema": {"properties": {"id": {"type": "integer", "example": 12345}, "name": {"type": "string", "example": "5GB limit"}}, "type": "object"}, "SimTarrifProfileResponseSchema": {"properties": {"id": {"type": "integer", "example": 12345}, "name": {"type": "string", "example": "Global Roaming"}}, "type": "object"}, "SimEndpointSimResponseSchema": {"properties": {"id": {"type": "integer", "example": 1234512}, "iccid": {"type": "string", "example": "3485498441211"}, "imsi": {"type": "string", "example": "46548184231"}, "msisdn": {"type": "string", "example": "484912132113"}}, "type": "object"}, "SimIdResponseSchema": {"properties": {"id": {"type": "integer", "example": 1234}}, "type": "object"}, "SimModelResponseSchema": {"properties": {"id": {"type": "integer", "example": 12}, "description": {"type": "string", "example": "1234 Test company"}, "memory_size": {"type": "integer", "example": 64}, "formfactor": {"$ref": "#/definitions/SimFormFactorResponseSchema"}, "manufacturer": {"$ref": "#/definitions/SimFormFactorResponseSchema"}}, "type": "object"}, "SimFormFactorResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "Test"}}, "type": "object"}, "SimEndpoint": {"required": ["ip_address_space", "name", "service_profile", "sim", "status", "tariff_profile"], "properties": {"name": {"type": "string", "description": "Endpoint name", "example": "Berlin endpoint"}, "tags": {"type": "string", "description": "Endpotin tags", "example": "some,tags"}, "status": {"type": "integer", "description": "Endpoint status", "example": 1}, "sim": {"type": "integer", "description": "Connected sim ID", "example": 2}, "service_profile": {"type": "integer", "description": "Connected servie profile id", "example": 1}, "tariff_profile": {"type": "integer", "description": "Connected tariff profile idi", "example": 1}, "ip_address_space": {"type": "integer", "description": "Ip address space", "example": 1}, "ip_address": {"type": "string", "description": "Ip address", "example": "127.0.0.1"}, "imei": {"type": "string", "description": "IMEI", "example": "123514124"}, "imei_lock": {"type": "boolean", "description": "IMEI lock", "example": false}}, "type": "object"}, "SimStatisticsResponseSchema": {"properties": {"date": {"type": "string", "format": "date", "example": "2020-11-01"}, "data": {"$ref": "#/definitions/SimStatisticsDataResponseSchema"}, "sms": {"$ref": "#/definitions/SimSmsStatisticsResponseSchema"}}, "type": "object"}, "SimStatisticsDataResponseSchema": {"properties": {"volume": {"type": "string", "example": "123.312312"}, "volume_tx": {"type": "string", "example": "100.32131"}, "volume_rx": {"type": "string", "example": "60.12356"}, "traffic_type": {"$ref": "#/definitions/SimTrafficTypeResponseSchema"}}, "type": "object"}, "SimTrafficTypeResponseSchema": {"properties": {"description": {"type": "string", "example": "Data"}, "unit": {"type": "string", "example": "MB"}, "id": {"type": "integer", "example": 3}}, "type": "object"}, "SimSmsStatisticsResponseSchema": {"properties": {"volume": {"type": "integer", "example": 0}, "volume_tx": {"type": "integer", "example": 0}, "volume_rx": {"type": "integer", "example": 0}, "cost": {"type": "string", "example": "null"}}, "type": "object"}, "SimProfileResponseSchema": {"properties": {"organisation_id": {"type": "string", "example": "12345"}, "name": {"type": "string", "example": "Data"}, "description": {"type": "string", "example": "Test description"}, "allowed_3g": {"type": "string", "example": "1"}, "moc_callback_id": {"type": "string", "example": "null"}, "retail": {"type": "string", "example": "0"}, "sms_p2p_int": {"type": "string", "example": "1"}, "sms_p2p_ext": {"type": "string", "example": "1"}, "apply_quota": {"type": "string", "example": "0"}, "prepaid": {"type": "string", "example": "0"}, "nipdp": {"type": "string", "example": "0"}, "allowed_4g": {"type": "string", "example": "1"}, "allowed_nb_iot": {"type": "string", "example": "1"}, "apply_sms_quota": {"type": "string", "example": "0"}, "used_count": {"type": "string", "example": "1"}, "id": {"type": "integer", "example": 12345}, "api_callback": {"type": "string", "example": "null"}, "api_secret": {"type": "string", "example": "null"}, "esme_interface_type": {"type": "string", "example": "null"}, "breakout_region": {"$ref": "#/definitions/SimProfileBreakoutRegion"}, "dns": {"type": "string", "example": "null"}, "apply_data_quota": {"type": "string", "example": "0"}}, "type": "object"}, "SimProfileBreakoutRegion": {"properties": {"name": {"type": "string", "example": "eu-east-1"}, "ip_address": {"type": "string", "example": "0.0.0.0"}, "id": {"type": "integer", "example": 1}}, "type": "object"}, "SimAddressResponseSchema": {"properties": {"id": {"type": "integer", "example": 12345}, "ip_address_space": {"type": "string", "example": "101.119.235.0/24"}, "ip_address_version": {"type": "integer", "example": 1}, "used_count": {"type": "integer", "example": 10}, "available_count": {"type": "integer", "example": 123}}, "type": "object"}, "MalincheFirmwareResponseSchema": {"properties": {"id": {"type": "string", "example": "test"}, "description": {"type": "string", "example": "latest firmware kugu board"}, "filename": {"type": "string", "example": "malinche-artifact.bin"}, "tags": {"type": "array", "items": {"type": "string", "example": "category"}}, "date": {"type": "string", "format": "date", "example": "17.06.2020"}, "size": {"type": "integer", "example": 651748}, "changelog": {"type": "string", "example": "Some important changes"}, "jobsurl": {"type": "string", "example": "http://example.com/api/1"}}, "type": "object"}, "Gateway": {"required": ["frequency_plan", "id"], "properties": {"id": {"type": "string", "description": "Gateway id", "example": "1234"}, "frequency_plan": {"type": "string", "description": "Frequency plan", "example": "Basic"}, "location": {"$ref": "#/definitions/GatewayLocation"}, "auto_update": {"type": "boolean", "description": "Auto update", "example": true}}, "type": "object"}, "GatewayLocation": {"properties": {"longitude": {"type": "number", "description": "Longitude", "example": 13.22}, "latitude": {"type": "number", "description": "Latitude", "example": 14.22}, "altitude": {"type": "number", "description": "Altitude", "example": 13.22}}, "type": "object"}, "TTNApplication": {"required": ["created", "id", "name"], "properties": {"id": {"type": "string", "description": "Application id", "example": "1234"}, "name": {"type": "string", "description": "Application name", "example": "Some metering application"}, "euis": {"type": "array", "items": {"type": "string"}}, "created": {"type": "string", "format": "date-time", "description": "Date of application creation", "example": "2020-12-23T12:33:43"}, "rights": {"type": "array", "items": {"type": "string"}}, "collaborators": {"$ref": "#/definitions/Collaborator"}, "access_keys": {"$ref": "#/definitions/AccessKey"}, "deleted": {"type": "string", "format": "date-time", "description": "Date of remoal", "example": "2020-12-24"}}, "type": "object"}, "Collaborator": {"required": ["email", "username"], "properties": {"username": {"type": "string", "description": "Collaborator username", "example": "John Smith"}, "email": {"type": "string", "description": "Collaborator email", "example": "test@example.com"}, "rights": {"type": "array", "items": {"type": "string"}}}, "type": "object"}, "AccessKey": {"required": ["key", "name"], "properties": {"name": {"type": "string", "description": "Access key name", "example": "ImportantAccessKey"}, "key": {"type": "string", "description": "Access key", "example": "12312-==0d-as"}, "rights": {"type": "array", "items": {"type": "string"}}}, "type": "object"}, "TTNDevice": {"required": ["altitude", "app_id", "description", "dev_id", "latitude", "longitude"], "properties": {"altitude": {"type": "integer", "description": "Device altitude", "example": 12}, "app_id": {"type": "string", "description": "Application ID", "example": "12231"}, "attributes": {"$ref": "#/definitions/DeviceAttribute"}, "description": {"type": "string", "description": "Device description", "example": "Some important ttn device"}, "dev_id": {"type": "string", "description": "Device id", "example": "12312"}, "latitude": {"type": "number", "description": "Latitude", "example": 12.2}, "longitude": {"type": "number", "description": "Longitude", "example": 13.22}, "lorawan_device": {"$ref": "#/definitions/LorawanDevice"}}, "type": "object"}, "DeviceAttribute": {"required": ["key", "value"], "properties": {"key": {"type": "string", "description": "Device attribute key", "example": "some key"}, "value": {"type": "string", "description": "Device attribute value", "example": "12"}}, "type": "object"}, "LorawanDevice": {"required": ["activation_constraints", "app_eui", "app_id", "app_key", "app_s_key", "dev_addr", "dev_eui", "dev_id", "disable_f_cnt_check", "f_cnt_down", "f_cnt_up", "last_seen", "nwk_s_key", "uses32_bit_f_cnt"], "properties": {"activation_constraints": {"type": "string", "description": "Activation constraints", "example": ""}, "app_eui": {"type": "string", "description": "App eui", "example": "121312"}, "app_id": {"type": "string", "description": "App id", "example": "123"}, "app_key": {"type": "string", "description": "App key", "example": "112312"}, "app_s_key": {"type": "string", "description": "App S Key", "example": "11231323"}, "dev_addr": {"type": "string", "description": "Device address", "example": "123123"}, "dev_eui": {"type": "string", "description": "Device eui", "example": "1123123"}, "dev_id": {"type": "string", "description": "Device id", "example": "12312312"}, "disable_f_cnt_check": {"type": "boolean", "description": "Should disable count check", "example": false}, "f_cnt_down": {"type": "integer", "description": "F count down", "example": 1}, "f_cnt_up": {"type": "integer", "description": "F count up", "example": 2}, "last_seen": {"type": "integer", "description": "Last seen", "example": 1}, "nwk_s_key": {"type": "string", "description": "Nwk S Key", "example": "132131"}, "uses32_bit_f_cnt": {"type": "boolean", "description": "Should use 32 bit F count", "example": true}}, "type": "object"}, "InboxDevice": {"required": ["existing", "geraete_id", "id", "property", "property_changed", "room", "type", "unit"], "properties": {"existing": {"type": "boolean", "description": "Flag if the device is new or already exist in eras"}, "geraete_id": {"type": "integer", "description": "Id of the device in eras"}, "id": {"type": "string", "description": "Id of device from influx"}, "property": {"type": "integer", "description": "Id of device property"}, "property_changed": {"type": "boolean", "description": "Flag if the property was reassigned by user"}, "room": {"type": "integer", "description": "Id of device room"}, "type": {"type": "string", "description": "Device type (WMZ etc.)"}, "unit": {"type": "integer", "description": "Id of device unit"}}, "type": "object"}, "OpenhabDevice": {"required": ["label", "uid"], "properties": {"uid": {"type": "string", "description": "Device uid identifier", "example": "1234-dsa-321-f321"}, "label": {"type": "string", "description": "Device label", "example": "Example"}}, "type": "object"}, "DataInlet": {"required": ["password"], "properties": {"name": {"type": "string", "description": "Endpoint name", "example": "readings"}, "message_type": {"type": "string", "description": "Mqtt type", "example": "structured"}, "password": {"type": "string", "description": "Password for inlet integration", "example": "123182ksakd!!"}, "example": {"type": "string", "description": "JSON example", "example": ""}}, "type": "object"}, "DataInletResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "Test inlet"}, "topic": {"type": "string", "example": "Example topic"}, "username": {"type": "string", "example": "inlet_username"}, "password": {"type": "string", "example": "passwordhash"}, "example": {"type": "string", "example": ""}}, "type": "object"}, "DataInletUpdate": {"properties": {"name": {"type": "string", "description": "Endpoint name", "example": "readings"}, "message_type": {"type": "string", "description": "Mqtt type", "example": "structured"}}, "type": "object"}, "PublicKey": {"properties": {"name": {"type": "string", "description": "Public key name", "example": "key0002"}, "ip_address": {"type": "string", "description": "Public key ip address", "example": "127.0.0.1"}, "deleted": {"type": "boolean", "description": "Soft delete flag", "example": true}, "validated": {"type": "boolean", "description": "If this entry is already validated", "example": true}}, "type": "object"}, "PublicKeyResponseSchema": {"properties": {"id": {"type": "integer", "example": 1}, "name": {"type": "string", "example": "key1"}, "creation_date": {"type": "string", "format": "date-time", "example": "2020-09-09 14:17:27"}, "ip_address": {"type": "string", "example": "127.0.0.1"}, "validated": {"type": "integer", "example": 0}, "deleted": {"type": "integer", "example": 1}}, "type": "object"}, "ConsumptionResponseSchema": {"properties": {"2019": {"$ref": "#/definitions/ConsumptionDiviceByMonth"}, "2020": {"$ref": "#/definitions/ConsumptionDiviceByMonth"}}, "type": "object"}, "ConsumptionDiviceByMonth": {"properties": {"months": {"$ref": "#/definitions/MonthsConsumptionDiviceByMonth"}, "unit": {"type": "string", "example": "VE"}}, "type": "object"}, "MonthsConsumptionDiviceByMonth": {"properties": {"January": {"type": "number", "example": 2.3}, "February": {"type": "number", "example": 3.3}, "March": {"type": "number", "example": 1}, "April": {"type": "number", "example": 12.12}, "May": {"type": "number", "example": 1}, "June": {"type": "number", "example": 3.4}, "July": {"type": "number", "example": 5.2}, "August": {"type": "number", "example": 1.1}, "September": {"type": "number", "example": 2.2}, "October": {"type": "number", "example": 6}, "November": {"type": "number", "example": 7.6}, "December": {"type": "number", "example": 9}}, "type": "object"}, "AcceptanceResponseSchema": {"properties": {"accepted": {"type": "boolean", "default": false}}, "type": "object"}, "ConsumptionCostComponentResponseSchema": {"properties": {"2020": {"$ref": "#/definitions/ConsumptionCostComponents"}}, "type": "object"}, "ConsumptionCostComponents": {"properties": {"taxes": {"type": "integer", "example": 12866}, "fees": {"type": "integer", "example": 9999}, "duties": {"type": "integer", "example": 2998}, "levies": {"type": "integer", "example": 990}}, "type": "object"}, "MeasurementTypesResponseSchema": {"properties": {"expert_system": {"type": "string", "example": "detection"}, "hkv": {"type": "string", "example": "temperature"}, "kwz": {"type": "string", "example": "cubic_meters"}, "wwz": {"type": "string", "example": "flow"}, "wmz": {"type": "string", "example": "flow"}, "wz": {"type": "string", "example": "cubic_meters"}, "gz": {"type": "string", "example": "gas_consumption"}, "generic": {"type": "string", "example": "outdoor_temperature"}}, "type": "object"}, "MeasurementProbeResponseSchema": {"properties": {"has_data": {"type": "boolean", "default": false}, "categories": {"type": "string", "example": "Heat energy"}}, "type": "object"}, "MeasurementResponseSchema": {"properties": {"series": {"type": "array", "items": {"$ref": "#/definitions/SingleMeasurementSeriesResponseSchema"}}}, "type": "object"}, "SingleMeasurementSeriesResponseSchema": {"properties": {"name": {"type": "string", "example": "W\u00e4rmeenergie (aktuell)"}, "unit": {"type": "string", "example": "Wattstunden"}, "wmbus_id": {"type": "string", "example": "37089411"}, "data": {"type": "array", "items": {"$ref": "#/definitions/SingleMeasurementDataPoint"}}}, "type": "object"}, "SingleMeasurementDataPoint": {"description": "Data point item [timestamp, value]", "type": "array", "maxItems": 2, "minItems": 2, "prefixItems": [{"type": "number"}, {"type": "integer"}], "default": [1234234324234.5, 12145700]}, "BillingPeriodUpdate": {"properties": {"locked": {"type": "boolean", "description": "Lock/Unlock billing flag"}}, "type": "object"}, "PropertySubscription": {"required": ["module", "subscribed"], "properties": {"module": {"type": "string", "description": "The module which should be subscribed to/unsubscribed of", "example": "Abrechnung"}, "headline": {"type": "boolean", "description": "The headline which should be subscribed to/unsubscribed of", "example": "Allgemein"}, "subscribed": {"type": "boolean", "description": "whether subscription is added or removed", "example": true}}, "type": "object"}, "SubscriptionContact": {"required": ["email", "first_name", "last_name"], "properties": {"first_name": {"type": "string", "description": "First name", "example": "John"}, "last_name": {"type": "string", "description": "Last name", "example": "Smith"}, "email": {"type": "string", "description": "Email", "example": "test@example.com"}}, "type": "object"}, "UpdateTenantCommunication": {"properties": {"communication_type": {"type": "integer", "description": "Selected communication type (email, etc.)", "example": 1}, "email": {"type": "string", "description": "Tenant email", "example": "name@example.com"}, "additional_communication_email": {"type": "string", "description": "Additional communication email", "example": "name@example.com"}, "start_date_of_provisioning": {"type": "string", "format": "date-time", "description": "Start date of sending communication", "example": "2020-12-23T12:33:43"}, "end_date_of_provisioning": {"type": "string", "format": "date-time", "description": "End date of sending communication", "example": "2021-12-23T12:33:43"}, "phone_number": {"type": "string", "description": "Tenant phone number", "example": "123456789"}, "initial_communication_type": {"type": "integer", "description": "Selected initial communication type (email/post)", "example": 3}, "additional_address": {"$ref": "#/definitions/ErasAddress"}, "personal_info": {"$ref": "#/definitions/TenantPersonalInfo"}}, "type": "object"}, "ErasAddress": {"required": ["city", "street", "zip"], "properties": {"street": {"type": "string", "description": "Street", "example": "Teststrasse 23B"}, "zip": {"type": "string", "description": "Zip code", "example": "12345"}, "city": {"type": "string", "description": "City", "example": "Berlin"}}, "type": "object"}, "TenantPersonalInfo": {"properties": {"first_name": {"type": "string", "description": "Tenant first name", "example": "Alice"}, "last_name": {"type": "string", "description": "Tenant last name", "example": "Testy"}, "arge_unit_nr": {"type": "string", "description": "Tenant external number", "example": "000123BB"}}, "type": "object"}, "TenantByUserResponseSchema": {"properties": {"first_name": {"type": "string", "example": "Tom"}, "last_name": {"type": "string", "example": "Testy"}, "email": {"type": "string", "example": "test@example.com"}}, "type": "object"}, "TagSchema": {"required": ["tag", "tag_type"], "properties": {"tag": {"type": "string", "description": "Mfr tag", "example": "Tag123"}, "tag_type": {"type": "string"}}, "type": "object"}, "ServiceRequestSchema": {"required": ["customer_id", "identifier", "service_object_id"], "properties": {"identifier": {"type": "string", "description": "The identifier for the request", "example": "just_do_it_07"}, "customer_id": {"type": "integer", "description": "The ID of the company that acts as customer", "example": "kugu_1234"}, "service_object_id": {"type": "integer", "description": "Numeric ID of Service Objects in MFR", "example": "10077"}}, "type": "object"}, "GroupCreate": {"required": ["name"], "properties": {"name": {"type": "string", "description": "Name of the keycloak group", "example": "/Mandant/Mandant Staging"}, "keycloak_id": {"type": "string", "description": "The (uu)id of the group in Keycloak", "example": "8b47243d-c8d4-45d2-9976-3a671e9c6f3c"}}, "type": "object"}, "SmokeDetectorsResponseSchema": {"properties": {"smoke_detectors_count": {"type": "integer", "example": 12}, "smoke_detector_unit_count": {"type": "integer", "example": 5}, "old_protocols_count": {"type": "integer", "example": 3}, "properties": {"type": "array", "items": {"$ref": "#/definitions/SmokeDetectorPropertySchema"}}}, "type": "object"}, "SmokeDetectorPropertySchema": {"properties": {"Objektnummer": {"type": "string", "example": "OBJ-1"}, "address_id": {"type": "integer", "example": 1}, "all_addresses": {"type": "string", "example": "[{\"street\":\"Teststrasse 43\",\"city\":\"Berlin\",\"zip\":\"12345\"}]"}, "arge_object_nr": {"type": "string", "example": ""}, "billing_is_locked": {"type": "integer", "example": 0}, "billing_state": {"type": "integer", "example": 40}, "ch_is_locked": {"type": "integer", "example": 0}, "cho_state": {"type": "integer", "example": 30}, "city": {"type": "string", "example": "Berlin"}, "comment": {"type": "string", "example": ""}, "consumption_groups": {"type": "string", "example": "Heizung"}, "customer": {"type": "string", "example": "Some customer"}, "customer_id": {"type": "integer", "example": 1}, "eras_object_id": {"type": "integer", "example": 3}, "hardware_is_locked": {"type": "integer", "example": 0}, "hardware_state": {"type": "integer", "example": 50}, "internal_comment": {"type": "string", "example": ""}, "latitude": {"type": "number", "example": 52.1}, "longitude": {"type": "number", "example": 13.5}, "property_id": {"type": "integer", "example": 2}, "smoke_detector_is_locked": {"type": "integer", "example": 0}, "smoke_detector_protocol_status": {"type": "integer", "example": 50}, "smoke_detector_state": {"type": "integer", "example": 20}, "smoke_detectors_protocol_date": {"type": "string", "example": "2021-06-22T10:17:45.081933"}, "street": {"type": "string", "example": "Teststrasse 43"}, "unit_group_id": {"type": "integer", "example": 1}, "unit_groups": {"type": "string", "example": ""}, "zip": {"type": "string", "example": "12345"}}, "type": "object"}, "PaginatedPropertyResponseSchema": {"properties": {"pagination": {"$ref": "#/definitions/PaginationResponseModel"}, "data": {"type": "array", "items": {"$ref": "#/definitions/PropertyResponseSchema"}}}, "type": "object"}, "PaginationResponseModel": {"properties": {"offset": {"type": "integer", "example": 20}, "limit": {"type": "integer", "example": 20}, "total": {"type": "integer", "example": 40}, "pages": {"type": "integer", "example": 2}}, "type": "object"}, "BatchTenantComUpdateSchema": {"properties": {"ids": {"type": "array", "items": {"type": "integer"}}, "start_date_of_provisioning": {"type": "string", "format": "date-time", "description": "Start date of sending communication", "example": "2020-12-23T12:33:43"}, "end_date_of_provisioning": {"type": "string", "format": "date-time", "description": "End date of sending communication", "example": "2021-12-23T12:33:43"}, "communication_type": {"type": "integer", "description": "Selected communication type (email, etc.)", "example": 1}, "initial_communication_type": {"type": "integer", "description": "Selected initial communication type (email/post)", "example": 3}}, "type": "object"}, "IDListSchema": {"properties": {"ids": {"type": "array", "items": {"type": "integer"}}}, "type": "object"}, "PropertyManagerEmailResponseSchema": {"properties": {"property_id": {"type": "integer", "example": 1}, "status": {"type": "integer", "example": 200}, "message": {"type": "string", "example": "ok"}}, "type": "object"}, "PropertyTenantLettersResponseSchema": {"properties": {"letter_id": {"type": "integer", "example": 1}, "tenant_id": {"type": "integer", "example": 1}, "sent_at": {"type": "string", "example": "2020-02-06 12:15:13"}, "communication_type": {"type": "integer", "example": 1}, "letter_type": {"type": "string", "example": "consumption"}}, "type": "object"}, "PropertyTenantCommunicationResponseSchema": {"properties": {"communication_id": {"type": "integer", "example": 1}, "tenant_id": {"type": "integer", "example": 1}, "communication_type": {"type": "integer", "example": 1}, "communication_type_literal": {"type": "string", "example": "letter"}, "email": {"type": "string", "example": "kuguuser@kugu-home.com"}, "additional_communication_email": {"type": "string", "example": "kuguuser@kugu-home.com"}, "additional_address": {"type": "string", "example": "Musterstr. 1, 12345 Musterstadt"}}, "type": "object"}, "UviActivePropertyIdsSchema": {"properties": {"uvi_active_property_ids": {"type": "array", "items": {"type": "integer"}}}, "type": "object"}, "LastValueMeasurement": {"properties": {"measurement": {"type": "string", "example": "Power"}, "values": {"type": "array", "items": {"$ref": "#/definitions/TimeAndValue"}}}, "type": "object"}, "TimeAndValue": {"properties": {"value": {"type": "number", "example": 100}, "time": {"type": "string", "example": "2021-10-17T08:13:36"}}, "type": "object"}, "EfficiencyStatsResponseSchema": {"properties": {"name": {"type": "string", "example": "min"}, "values": {"type": "array", "items": {"type": "array", "example": [1676382195, 0.832156], "items": {"type": "number"}}}}, "type": "object"}, "HeatingCurveStatsSchema": {"properties": {"curves": {"type": "array", "items": {"$ref": "#/definitions/SeriesSchema"}}, "slope": {"$ref": "#/definitions/SeriesSchema"}, "intercept": {"$ref": "#/definitions/SeriesSchema"}}, "type": "object"}, "SeriesSchema": {"properties": {"name": {"type": "string", "description": "Name of the series"}, "data": {"type": "array", "items": {"type": "array", "items": {"type": "number"}}}}, "type": "object"}, "CalculationContextsSchema": {"properties": {"pagination": {"$ref": "#/definitions/PaginationObjectSchema"}, "data": {"type": "array", "items": {"$ref": "#/definitions/_CalculationContextRow"}}}, "type": "object"}, "PaginationObjectSchema": {"properties": {"offset": {"type": "integer"}, "limit": {"type": "integer"}, "total": {"type": "integer"}, "rows": {"type": "integer"}, "pages": {"type": "integer"}}, "type": "object"}, "_CalculationContextRow": {"properties": {"ch_id": {"type": "integer"}, "property_id": {"type": "integer"}, "context": {"$ref": "#/definitions/CalculationContextSchema"}}, "type": "object"}, "CalculationContextSchema": {"properties": {"property_area_sq_m": {"type": "number"}, "fuel_energy_factor": {"type": "number"}, "fuel_co2_factor": {"type": "number"}, "primary_energy_factor": {"type": "number"}, "has_central_water_heating": {"type": "boolean"}, "is_condensing_boiler": {"type": "boolean"}}, "type": "object"}, "TenantInPropertyV1ResponseSchemas": {"properties": {"id": {"type": "integer", "example": 6}, "move_id": {"type": "string", "format": "date-time", "example": "2017-01-01 00:00:00"}, "move_out": {"type": "string", "format": "date", "example": "2023-01-01 00:00:00"}, "arge_unit_nr": {"type": "string", "example": "B12345498"}, "first_name": {"type": "string", "example": "Tom"}, "last_name": {"type": "string", "example": "Testman"}, "name": {"type": "string", "example": "Tom Testman"}, "unit_id": {"type": "integer", "example": 32}, "apartment": {"type": "string", "example": "EG1"}, "ne_number": {"type": "string", "example": "0010"}, "location": {"type": "string", "example": "Teststreet 1 EG1"}, "is_owner": {"type": "boolean", "example": 0}, "status_of_sent_message": {"type": "integer", "default": 50, "example": 50}, "tenant_receive": {"type": "string", "default": "Keine"}, "credentials_available": {"type": "boolean"}, "start_date_of_provisioning": {"type": "string", "format": "date-time"}, "end_date_of_provisioning": {"type": "string", "format": "date-time"}, "count_letter": {"type": "integer", "default": 0}, "additional_address_id": {"type": "integer"}, "email": {"type": "string", "example": "test@example.com"}, "phone_number": {"type": "string", "example": "123456789"}, "additional_address_street": {"type": "string", "example": "Other street 28"}, "additional_address_city": {"type": "string", "example": "Berlin"}, "additional_zip_code": {"type": "string", "example": "01234"}, "initial_communication_date": {"type": "string", "format": "date-time"}}, "type": "object"}, "TenantBatchLetterSchema": {"properties": {"ids": {"type": "array", "items": {"type": "integer"}}, "email": {"type": "string", "description": "tenant email", "example": "tensnt.some@example.com"}, "communication_type": {"type": "integer", "description": "Communication type indexID ", "example": "1"}}, "type": "object"}, "TenantLetterAction": {"properties": {"tenant_id": {"type": "integer", "description": "Id of tenant", "example": 1}, "batch_id": {"type": "integer", "description": "Id of batch letter was sent in", "example": 12345}, "state": {"type": "string", "example": "in progress"}, "error": {"type": "object", "description": "Id of user", "example": {"addressLine2": ["Field may not be null."], "city": ["Field may not be null."], "zipCode": ["Field may not be null."]}}}, "type": "object"}, "TenantEmailCheckSchema": {"properties": {"tenant_id": {"type": "integer", "example": 6}, "email": {"type": "string", "example": "test@example.com"}, "name": {"type": "string", "example": "Test Testy"}}, "type": "object"}}, "responses": {"ParseError": {"description": "When a mask can't be parsed"}, "MaskError": {"description": "When any error occurs on mask"}}}
