{ "openapi": "3.1.0", "info": { "title": "Home Automation Backend (Python)", "description": "Python rewrite skeleton for the home automation backend. This stage provides only the foundation for future module migration.", "version": "0.1.0" }, "paths": { "/status": { "get": { "tags": [ "system" ], "summary": "Get Status", "operationId": "get_status_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatusResponse" } } } } } } }, "/login": { "get": { "tags": [ "auth" ], "summary": "Login Page", "operationId": "login_page_login_get", "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } } } }, "post": { "tags": [ "auth" ], "summary": "Login Submit", "operationId": "login_submit_login_post", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_login_submit_login_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/logout": { "post": { "tags": [ "auth" ], "summary": "Logout", "operationId": "logout_logout_post", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_logout_logout_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/": { "get": { "tags": [ "pages" ], "summary": "Home", "operationId": "home__get", "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } } } } }, "/admin": { "get": { "tags": [ "pages" ], "summary": "Admin Page", "operationId": "admin_page_admin_get", "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } } } } }, "/homeassistant/publish": { "post": { "tags": [ "homeassistant" ], "summary": "Publish From Homeassistant", "operationId": "publish_from_homeassistant_homeassistant_publish_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/location/record": { "post": { "tags": [ "location" ], "summary": "Create Location Record", "operationId": "create_location_record_location_record_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/poo/record": { "post": { "tags": [ "poo" ], "summary": "Create Poo Record", "operationId": "create_poo_record_poo_record_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/poo/latest": { "get": { "tags": [ "poo" ], "summary": "Notify Latest Poo", "operationId": "notify_latest_poo_poo_latest_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } } }, "components": { "schemas": { "Body_login_submit_login_post": { "properties": { "username": { "type": "string", "title": "Username" }, "password": { "type": "string", "title": "Password" }, "csrf_token": { "type": "string", "title": "Csrf Token" } }, "type": "object", "required": [ "username", "password", "csrf_token" ], "title": "Body_login_submit_login_post" }, "Body_logout_logout_post": { "properties": { "csrf_token": { "type": "string", "title": "Csrf Token" } }, "type": "object", "required": [ "csrf_token" ], "title": "Body_logout_logout_post" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "StatusResponse": { "properties": { "status": { "type": "string", "title": "Status" } }, "type": "object", "required": [ "status" ], "title": "StatusResponse" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } } } }