1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-07-23 15:19:41 +02:00
mealie/docs/docs/overrides/api.html
Hayden 42deb5ad10
Feature/migration-rewrite (#278)
* start

* migration rewrite

* update name

* convert chowdown to new methods

* refactor/remove duplicate code

* refactor to unify logger + log to file

* remove toolbox

* Display report on UI

Co-authored-by: hay-kot <hay-kot@pm.me>
2021-04-10 15:09:06 -08:00

24 lines
65 KiB
HTML

<!-- Custom HTML site displayed as the Home chapter -->
{% extends "main.html" %}
{% block tabs %}
{{ super() }}
<style>
body {
margin: 0;
padding: 0;
}
</style>
<div id="redoc-container"></div>
<script src="https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js"> </script>
<script>
var spec = {"openapi": "3.0.2", "info": {"title": "Mealie", "description": "A place for all your recipes", "version": "v0.4.1"}, "paths": {"/api/users/sign-ups": {"get": {"tags": ["User Signup"], "summary": "Get All Open Sign Ups", "description": "Returns a list of open sign up links ", "operationId": "get_all_open_sign_ups_api_users_sign_ups_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get All Open Sign Ups Api Users Sign Ups Get", "type": "array", "items": {"$ref": "#/components/schemas/SignUpOut"}}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["User Signup"], "summary": "Create User Sign Up Key", "description": "Generates a Random Token that a new user can sign up with ", "operationId": "create_user_sign_up_key_api_users_sign_ups_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SignUpIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SignUpToken"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users/sign-ups/{token}": {"post": {"tags": ["User Signup"], "summary": "Create User With Token", "description": "Creates a user with a valid sign up token ", "operationId": "create_user_with_token_api_users_sign_ups__token__post", "parameters": [{"required": true, "schema": {"title": "Token", "type": "string"}, "name": "token", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["User Signup"], "summary": "Delete Token", "description": "Removed a token from the database ", "operationId": "delete_token_api_users_sign_ups__token__delete", "parameters": [{"required": true, "schema": {"title": "Token", "type": "string"}, "name": "token", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/auth/token": {"post": {"tags": ["Authentication"], "summary": "Get Token", "operationId": "get_token_api_auth_token_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_get_token_api_auth_token_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/auth/token/long": {"post": {"tags": ["Authentication"], "summary": "Get Token", "operationId": "get_token_api_auth_token_long_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_get_token_api_auth_token_long_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/auth/refresh": {"get": {"tags": ["Authentication"], "summary": "Refresh Token", "description": "Use a valid token to get another token", "operationId": "refresh_token_api_auth_refresh_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users": {"get": {"tags": ["Users"], "summary": "Get All Users", "operationId": "get_all_users_api_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get All Users Api Users Get", "type": "array", "items": {"$ref": "#/components/schemas/UserOut"}}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Users"], "summary": "Create User", "operationId": "create_user_api_users_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserIn"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserOut"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users/self": {"get": {"tags": ["Users"], "summary": "Get Logged In User", "operationId": "get_logged_in_user_api_users_self_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserOut"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users/{id}": {"get": {"tags": ["Users"], "summary": "Get User By Id", "operationId": "get_user_by_id_api_users__id__get", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserOut"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Users"], "summary": "Update User", "operationId": "update_user_api_users__id__put", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserBase"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users"], "summary": "Delete User", "description": "Removes a user from the database. Must be the current user or a super user", "operationId": "delete_user_api_users__id__delete", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users/{id}/reset-password": {"put": {"tags": ["Users"], "summary": "Reset User Password", "operationId": "reset_user_password_api_users__id__reset_password_put", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users/{id}/image": {"get": {"tags": ["Users"], "summary": "Get User Image", "description": "Returns a users profile picture ", "operationId": "get_user_image_api_users__id__image_get", "parameters": [{"required": true, "schema": {"title": "Id", "type": "string"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Users"], "summary": "Update User Image", "description": "Updates a User Image ", "operationId": "update_user_image_api_users__id__image_post", "parameters": [{"required": true, "schema": {"title": "Id", "type": "string"}, "name": "id", "in": "path"}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_update_user_image_api_users__id__image_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/users/{id}/password": {"put": {"tags": ["Users"], "summary": "Update Password", "description": "Resets the User Password", "operationId": "update_password_api_users__id__password_put", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangePassword"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/groups": {"get": {"tags": ["Groups"], "summary": "Get All Groups", "description": "Returns a list of all groups in the database ", "operationId": "get_all_groups_api_groups_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get All Groups Api Groups Get", "type": "array", "items": {"$ref": "#/components/schemas/GroupInDB"}}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Groups"], "summary": "Create Group", "description": "Creates a Group in the Database ", "operationId": "create_group_api_groups_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupBase"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/groups/self": {"get": {"tags": ["Groups"], "summary": "Get Current User Group", "description": "Returns the Group Data for the Current User ", "operationId": "get_current_user_group_api_groups_self_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupInDB"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/groups/{id}": {"put": {"tags": ["Groups"], "summary": "Update Group Data", "description": "Updates a User Group ", "operationId": "update_group_data_api_groups__id__put", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGroup"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Groups"], "summary": "Delete User Group", "description": "Removes a user group from the database ", "operationId": "delete_user_group_api_groups__id__delete", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/recipes/summary": {"get": {"tags": ["Query All Recipes"], "summary": "Get Recipe Summary", "description": "Returns the summary data for recipes in the database ", "operationId": "get_recipe_summary_api_recipes_summary_get", "parameters": [{"required": false, "schema": {"title": "Skip", "default": 0}, "name": "skip", "in": "query"}, {"required": false, "schema": {"title": "End", "default": 9999}, "name": "end", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/recipes": {"get": {"tags": ["Query All Recipes"], "summary": "Get All Recipes", "description": "Returns key data for all recipes based off the query paramters provided.\nFor example, if slug, image, and name are provided you will recieve a list of\nrecipes containing the slug, image, and name property. By default, responses\nare limited to 100.\n\nAt this time you can only query top level values:\n\n- slug\n- name\n- description\n- image\n- recipeYield\n- totalTime\n- prepTime\n- performTime\n- rating\n- orgURL\n\n**Note:** You may experience problems with with query parameters. As an alternative\nyou may also use the post method and provide a body.\nSee the *Post* method for more details.", "operationId": "get_all_recipes_api_recipes_get", "parameters": [{"required": true, "schema": {"title": "Keys", "type": "array", "items": {"type": "string"}}, "name": "keys", "in": "query"}, {"required": false, "schema": {"title": "Num", "type": "integer", "default": 100}, "name": "num", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Query All Recipes"], "summary": "Get All Recipes Post", "description": "Returns key data for all recipes based off the body data provided.\nFor example, if slug, image, and name are provided you will recieve a list of\nrecipes containing the slug, image, and name property.\n\nAt this time you can only query top level values:\n\n- slug\n- name\n- description\n- image\n- recipeYield\n- totalTime\n- prepTime\n- performTime\n- rating\n- orgURL\n\nRefer to the body example for data formats.", "operationId": "get_all_recipes_post_api_recipes_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/AllRecipeRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/recipes/category": {"post": {"tags": ["Query All Recipes"], "summary": "Filter By Category", "description": "pass a list of categories and get a list of recipes associated with those categories ", "operationId": "filter_by_category_api_recipes_category_post", "requestBody": {"content": {"application/json": {"schema": {"title": "Categories", "type": "array", "items": {}}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/recipes/tag": {"post": {"tags": ["Query All Recipes"], "summary": "Filter By Tags", "description": "pass a list of tags and get a list of recipes associated with those tags", "operationId": "filter_by_tags_api_recipes_tag_post", "requestBody": {"content": {"application/json": {"schema": {"title": "Tags", "type": "array", "items": {}}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/categories": {"get": {"tags": ["Recipe Categories"], "summary": "Get All Recipe Categories", "description": "Returns a list of available categories in the database ", "operationId": "get_all_recipe_categories_api_categories_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}, "post": {"tags": ["Recipe Categories"], "summary": "Create Recipe Category", "description": "Creates a Category in the database ", "operationId": "create_recipe_category_api_categories_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CategoryIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/categories/{category}": {"get": {"tags": ["Recipe Categories"], "summary": "Get All Recipes By Category", "description": "Returns a list of recipes associated with the provided category. ", "operationId": "get_all_recipes_by_category_api_categories__category__get", "parameters": [{"required": true, "schema": {"title": "Category", "type": "string"}, "name": "category", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RecipeCategoryResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Recipe Categories"], "summary": "Delete Recipe Category", "description": "Removes a recipe category from the database. Deleting a\ncategory does not impact a recipe. The category will be removed\nfrom any recipes that contain it", "operationId": "delete_recipe_category_api_categories__category__delete", "parameters": [{"required": true, "schema": {"title": "Category", "type": "string"}, "name": "category", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/tags": {"get": {"tags": ["Recipe Tags"], "summary": "Get All Recipe Tags", "description": "Returns a list of available tags in the database ", "operationId": "get_all_recipe_tags_api_tags_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}, "post": {"tags": ["Recipe Tags"], "summary": "Create Recipe Tag", "description": "Creates a Tag in the database ", "operationId": "create_recipe_tag_api_tags_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TagIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/tags/{tag}": {"get": {"tags": ["Recipe Tags"], "summary": "Get All Recipes By Tag", "description": "Returns a list of recipes associated with the provided tag. ", "operationId": "get_all_recipes_by_tag_api_tags__tag__get", "parameters": [{"required": true, "schema": {"title": "Tag", "type": "string"}, "name": "tag", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RecipeTagResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Recipe Tags"], "summary": "Delete Recipe Tag", "description": "Removes a recipe tag from the database. Deleting a\ntag does not impact a recipe. The tag will be removed\nfrom any recipes that contain it", "operationId": "delete_recipe_tag_api_tags__tag__delete", "parameters": [{"required": true, "schema": {"title": "Tag", "type": "string"}, "name": "tag", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/recipes/create": {"post": {"tags": ["Recipe CRUD"], "summary": "Create From Json", "description": "Takes in a JSON string and loads data into the database as a new entry", "operationId": "create_from_json_api_recipes_create_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Recipe"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Create From Json Api Recipes Create Post", "type": "string"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/recipes/create-url": {"post": {"tags": ["Recipe CRUD"], "summary": "Parse Recipe Url", "description": "Takes in a URL and attempts to scrape data and load it into the database ", "operationId": "parse_recipe_url_api_recipes_create_url_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RecipeURLIn"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Parse Recipe Url Api Recipes Create Url Post", "type": "string"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/recipes/{recipe_slug}": {"get": {"tags": ["Recipe CRUD"], "summary": "Get Recipe", "description": "Takes in a recipe slug, returns all data for a recipe ", "operationId": "get_recipe_api_recipes__recipe_slug__get", "parameters": [{"required": true, "schema": {"title": "Recipe Slug", "type": "string"}, "name": "recipe_slug", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Recipe"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Recipe CRUD"], "summary": "Update Recipe", "description": "Updates a recipe by existing slug and data. ", "operationId": "update_recipe_api_recipes__recipe_slug__put", "parameters": [{"required": true, "schema": {"title": "Recipe Slug", "type": "string"}, "name": "recipe_slug", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Recipe"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Recipe CRUD"], "summary": "Delete Recipe", "description": "Deletes a recipe by slug ", "operationId": "delete_recipe_api_recipes__recipe_slug__delete", "parameters": [{"required": true, "schema": {"title": "Recipe Slug", "type": "string"}, "name": "recipe_slug", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/recipes/{recipe_slug}/image": {"get": {"tags": ["Recipe CRUD"], "summary": "Get Recipe Img", "description": "Takes in a recipe slug, returns the static image ", "operationId": "get_recipe_img_api_recipes__recipe_slug__image_get", "parameters": [{"required": true, "schema": {"title": "Recipe Slug", "type": "string"}, "name": "recipe_slug", "in": "path"}, {"required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/ImageType"}], "default": "original"}, "name": "image_type", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Recipe CRUD"], "summary": "Update Recipe Image", "description": "Removes an existing image and replaces it with the incoming file. ", "operationId": "update_recipe_image_api_recipes__recipe_slug__image_put", "parameters": [{"required": true, "schema": {"title": "Recipe Slug", "type": "string"}, "name": "recipe_slug", "in": "path"}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_update_recipe_image_api_recipes__recipe_slug__image_put"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/meal-plans/all": {"get": {"tags": ["Meal Plan"], "summary": "Get All Meals", "description": "Returns a list of all available Meal Plan ", "operationId": "get_all_meals_api_meal_plans_all_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get All Meals Api Meal Plans All Get", "type": "array", "items": {"$ref": "#/components/schemas/MealPlanInDB"}}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/meal-plans/create": {"post": {"tags": ["Meal Plan"], "summary": "Create Meal Plan", "description": "Creates a meal plan database entry ", "operationId": "create_meal_plan_api_meal_plans_create_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MealPlanIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/meal-plans/{plan_id}": {"put": {"tags": ["Meal Plan"], "summary": "Update Meal Plan", "description": "Updates a meal plan based off ID ", "operationId": "update_meal_plan_api_meal_plans__plan_id__put", "parameters": [{"required": true, "schema": {"title": "Plan Id", "type": "string"}, "name": "plan_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MealPlanIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Meal Plan"], "summary": "Delete Meal Plan", "description": "Removes a meal plan from the database ", "operationId": "delete_meal_plan_api_meal_plans__plan_id__delete", "parameters": [{"required": true, "schema": {"title": "Plan Id"}, "name": "plan_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/meal-plans/this-week": {"get": {"tags": ["Meal Plan"], "summary": "Get This Week", "description": "Returns the meal plan data for this week ", "operationId": "get_this_week_api_meal_plans_this_week_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MealPlanInDB"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/meal-plans/today": {"get": {"tags": ["Meal Plan", "Meal Plan"], "summary": "Get Today", "description": "Returns the recipe slug for the meal scheduled for today.\nIf no meal is scheduled nothing is returned", "operationId": "get_today_api_meal_plans_today_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/meal-plans/today/image": {"get": {"tags": ["Meal Plan", "Meal Plan"], "summary": "Get Todays Image", "description": "Returns the image for todays meal-plan.", "operationId": "get_todays_image_api_meal_plans_today_image_get", "parameters": [{"required": false, "schema": {"title": "Group Name", "type": "string", "default": "Home"}, "name": "group_name", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/meal-plans/{id}/shopping-list": {"get": {"tags": ["Meal Plan"], "summary": "Get Shopping List", "operationId": "get_shopping_list_api_meal_plans__id__shopping_list_get", "parameters": [{"required": true, "schema": {"title": "Id", "type": "string"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/site-settings/custom-pages": {"get": {"tags": ["Settings"], "summary": "Get Custom Pages", "description": "Returns the sites custom pages ", "operationId": "get_custom_pages_api_site_settings_custom_pages_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}, "put": {"tags": ["Settings"], "summary": "Update Multiple Pages", "description": "Update multiple custom pages ", "operationId": "update_multiple_pages_api_site_settings_custom_pages_put", "requestBody": {"content": {"application/json": {"schema": {"title": "Pages", "type": "array", "items": {"$ref": "#/components/schemas/CustomPageOut"}}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Settings"], "summary": "Create New Page", "description": "Creates a new Custom Page ", "operationId": "create_new_page_api_site_settings_custom_pages_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomPageBase"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/site-settings/custom-pages/{id}": {"get": {"tags": ["Settings"], "summary": "Get Single Page", "description": "Removes a custom page from the database ", "operationId": "get_single_page_api_site_settings_custom_pages__id__get", "parameters": [{"required": true, "schema": {"title": "Id", "anyOf": [{"type": "integer"}, {"type": "string"}]}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Settings"], "summary": "Update Single Age", "description": "Removes a custom page from the database ", "operationId": "update_single_age_api_site_settings_custom_pages__id__put", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomPageOut"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Settings"], "summary": "Delete Custom Page", "description": "Removes a custom page from the database ", "operationId": "delete_custom_page_api_site_settings_custom_pages__id__delete", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/site-settings": {"get": {"tags": ["Settings"], "summary": "Get Main Settings", "description": "Returns basic site settings ", "operationId": "get_main_settings_api_site_settings_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}, "put": {"tags": ["Settings"], "summary": "Update Settings", "description": "Returns Site Settings ", "operationId": "update_settings_api_site_settings_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SiteSettings"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/site-settings/webhooks/test": {"post": {"tags": ["Settings"], "summary": "Test Webhooks", "description": "Run the function to test your webhooks ", "operationId": "test_webhooks_api_site_settings_webhooks_test_post", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/themes": {"get": {"tags": ["Themes"], "summary": "Get All Themes", "description": "Returns all site themes ", "operationId": "get_all_themes_api_themes_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/api/themes/create": {"post": {"tags": ["Themes"], "summary": "Create Theme", "description": "Creates a site color theme database entry ", "operationId": "create_theme_api_themes_create_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SiteTheme"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/themes/{theme_name}": {"get": {"tags": ["Themes"], "summary": "Get Single Theme", "description": "Returns a named theme ", "operationId": "get_single_theme_api_themes__theme_name__get", "parameters": [{"required": true, "schema": {"title": "Theme Name", "type": "string"}, "name": "theme_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Themes"], "summary": "Update Theme", "description": "Update a theme database entry ", "operationId": "update_theme_api_themes__theme_name__put", "parameters": [{"required": true, "schema": {"title": "Theme Name", "type": "string"}, "name": "theme_name", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SiteTheme"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Themes"], "summary": "Delete Theme", "description": "Deletes theme from the database ", "operationId": "delete_theme_api_themes__theme_name__delete", "parameters": [{"required": true, "schema": {"title": "Theme Name", "type": "string"}, "name": "theme_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/backups/available": {"get": {"tags": ["Backups"], "summary": "Available Imports", "description": "Returns a list of avaiable .zip files for import into Mealie.", "operationId": "available_imports_api_backups_available_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Imports"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/backups/export/database": {"post": {"tags": ["Backups"], "summary": "Export Database", "description": "Generates a backup of the recipe database in json format.", "operationId": "export_database_api_backups_export_database_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/BackupJob"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/backups/upload": {"post": {"tags": ["Backups"], "summary": "Upload Backup File", "description": "Upload a .zip File to later be imported into Mealie ", "operationId": "upload_backup_file_api_backups_upload_post", "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_backup_file_api_backups_upload_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/backups/{file_name}/download": {"get": {"tags": ["Backups"], "summary": "Download Backup File", "description": "Upload a .zip File to later be imported into Mealie ", "operationId": "download_backup_file_api_backups__file_name__download_get", "parameters": [{"required": true, "schema": {"title": "File Name", "type": "string"}, "name": "file_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/backups/{file_name}/import": {"post": {"tags": ["Backups"], "summary": "Import Database", "description": "Import a database backup file generated from Mealie. ", "operationId": "import_database_api_backups__file_name__import_post", "parameters": [{"required": true, "schema": {"title": "File Name", "type": "string"}, "name": "file_name", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ImportJob"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/backups/{file_name}/delete": {"delete": {"tags": ["Backups"], "summary": "Delete Backup", "description": "Removes a database backup from the file system ", "operationId": "delete_backup_api_backups__file_name__delete_delete", "parameters": [{"required": true, "schema": {"title": "File Name", "type": "string"}, "name": "file_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/migrations": {"get": {"tags": ["Migration"], "summary": "Get All Migration Options", "description": "Returns a list of avaiable directories that can be imported into Mealie ", "operationId": "get_all_migration_options_api_migrations_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get All Migration Options Api Migrations Get", "type": "array", "items": {"$ref": "#/components/schemas/Migrations"}}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/migrations/{import_type}/{file_name}/import": {"post": {"tags": ["Migration"], "summary": "Import Nextcloud Directory", "description": "Imports all the recipes in a given directory ", "operationId": "import_nextcloud_directory_api_migrations__import_type___file_name__import_post", "parameters": [{"required": true, "schema": {"$ref": "#/components/schemas/Migration"}, "name": "import_type", "in": "path"}, {"required": true, "schema": {"title": "File Name", "type": "string"}, "name": "file_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/migrations/{import_type}/{file_name}/delete": {"delete": {"tags": ["Migration"], "summary": "Delete Migration Data", "description": "Removes migration data from the file system ", "operationId": "delete_migration_data_api_migrations__import_type___file_name__delete_delete", "parameters": [{"required": true, "schema": {"$ref": "#/components/schemas/Migration"}, "name": "import_type", "in": "path"}, {"required": true, "schema": {"title": "File Name", "type": "string"}, "name": "file_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/migrations/{import_type}/upload": {"post": {"tags": ["Migration"], "summary": "Upload Nextcloud Zipfile", "description": "Upload a .zip File to later be imported into Mealie ", "operationId": "upload_nextcloud_zipfile_api_migrations__import_type__upload_post", "parameters": [{"required": true, "schema": {"$ref": "#/components/schemas/Migration"}, "name": "import_type", "in": "path"}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_nextcloud_zipfile_api_migrations__import_type__upload_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/debug": {"get": {"tags": ["Debug"], "summary": "Get Debug Info", "description": "Returns general information about the application for debugging ", "operationId": "get_debug_info_api_debug_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/debug/version": {"get": {"tags": ["Debug"], "summary": "Get Mealie Version", "description": "Returns the current version of mealie", "operationId": "get_mealie_version_api_debug_version_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/api/debug/last-recipe-json": {"get": {"tags": ["Debug"], "summary": "Get Last Recipe Json", "description": "Doc Str ", "operationId": "get_last_recipe_json_api_debug_last_recipe_json_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/api/debug/log/{num}": {"get": {"tags": ["Debug"], "summary": "Get Log", "description": "Doc Str ", "operationId": "get_log_api_debug_log__num__get", "parameters": [{"required": true, "schema": {"title": "Num", "type": "integer"}, "name": "num", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}}, "components": {"schemas": {"AllRecipeRequest": {"title": "AllRecipeRequest", "required": ["properties"], "type": "object", "properties": {"properties": {"title": "Properties", "type": "array", "items": {"type": "string"}}, "limit": {"title": "Limit", "type": "integer"}}, "example": {"properties": ["name", "slug", "image"], "limit": 100}}, "BackupJob": {"title": "BackupJob", "required": ["options"], "type": "object", "properties": {"tag": {"title": "Tag", "type": "string"}, "options": {"$ref": "#/components/schemas/BackupOptions"}, "templates": {"title": "Templates", "type": "array", "items": {"type": "string"}}}, "example": {"tag": "July 23rd 2021", "options": {"recipes": true, "settings": true, "pages": true, "themes": true, "groups": true, "users": true}, "template": ["recipes.md"]}}, "BackupOptions": {"title": "BackupOptions", "type": "object", "properties": {"recipes": {"title": "Recipes", "type": "boolean", "default": true}, "settings": {"title": "Settings", "type": "boolean", "default": true}, "pages": {"title": "Pages", "type": "boolean", "default": true}, "themes": {"title": "Themes", "type": "boolean", "default": true}, "groups": {"title": "Groups", "type": "boolean", "default": true}, "users": {"title": "Users", "type": "boolean", "default": true}}, "example": {"recipes": true, "settings": true, "themes": true, "groups": true, "users": true}}, "Body_get_token_api_auth_token_long_post": {"title": "Body_get_token_api_auth_token_long_post", "required": ["username", "password"], "type": "object", "properties": {"grant_type": {"title": "Grant Type", "pattern": "password", "type": "string"}, "username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}, "scope": {"title": "Scope", "type": "string", "default": ""}, "client_id": {"title": "Client Id", "type": "string"}, "client_secret": {"title": "Client Secret", "type": "string"}}}, "Body_get_token_api_auth_token_post": {"title": "Body_get_token_api_auth_token_post", "required": ["username", "password"], "type": "object", "properties": {"grant_type": {"title": "Grant Type", "pattern": "password", "type": "string"}, "username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}, "scope": {"title": "Scope", "type": "string", "default": ""}, "client_id": {"title": "Client Id", "type": "string"}, "client_secret": {"title": "Client Secret", "type": "string"}}}, "Body_update_recipe_image_api_recipes__recipe_slug__image_put": {"title": "Body_update_recipe_image_api_recipes__recipe_slug__image_put", "required": ["image", "extension"], "type": "object", "properties": {"image": {"title": "Image", "type": "string", "format": "binary"}, "extension": {"title": "Extension", "type": "string"}}}, "Body_update_user_image_api_users__id__image_post": {"title": "Body_update_user_image_api_users__id__image_post", "required": ["profile_image"], "type": "object", "properties": {"profile_image": {"title": "Profile Image", "type": "string", "format": "binary"}}}, "Body_upload_backup_file_api_backups_upload_post": {"title": "Body_upload_backup_file_api_backups_upload_post", "required": ["archive"], "type": "object", "properties": {"archive": {"title": "Archive", "type": "string", "format": "binary"}}}, "Body_upload_nextcloud_zipfile_api_migrations__import_type__upload_post": {"title": "Body_upload_nextcloud_zipfile_api_migrations__import_type__upload_post", "required": ["archive"], "type": "object", "properties": {"archive": {"title": "Archive", "type": "string", "format": "binary"}}}, "CategoryBase": {"title": "CategoryBase", "required": ["name", "id", "slug"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "slug": {"title": "Slug", "type": "string"}}}, "CategoryIn": {"title": "CategoryIn", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "ChangePassword": {"title": "ChangePassword", "required": ["currentPassword", "newPassword"], "type": "object", "properties": {"currentPassword": {"title": "Currentpassword", "type": "string"}, "newPassword": {"title": "Newpassword", "type": "string"}}}, "Colors": {"title": "Colors", "type": "object", "properties": {"primary": {"title": "Primary", "type": "string", "default": "#E58325"}, "accent": {"title": "Accent", "type": "string", "default": "#00457A"}, "secondary": {"title": "Secondary", "type": "string", "default": "#973542"}, "success": {"title": "Success", "type": "string", "default": "#4CAF50"}, "info": {"title": "Info", "type": "string", "default": "#4990BA"}, "warning": {"title": "Warning", "type": "string", "default": "#FF4081"}, "error": {"title": "Error", "type": "string", "default": "#EF5350"}}}, "CustomPageBase": {"title": "CustomPageBase", "required": ["name", "position"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "position": {"title": "Position", "type": "integer"}, "categories": {"title": "Categories", "type": "array", "items": {"$ref": "#/components/schemas/CategoryBase"}, "default": []}}}, "CustomPageOut": {"title": "CustomPageOut", "required": ["name", "position", "id"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "position": {"title": "Position", "type": "integer"}, "categories": {"title": "Categories", "type": "array", "items": {"$ref": "#/components/schemas/CategoryBase"}, "default": []}, "id": {"title": "Id", "type": "integer"}}}, "GroupBase": {"title": "GroupBase", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "GroupInDB": {"title": "GroupInDB", "required": ["name", "id", "webhookEnable"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "categories": {"title": "Categories", "type": "array", "items": {"$ref": "#/components/schemas/CategoryBase"}, "default": []}, "webhookUrls": {"title": "Webhookurls", "type": "array", "items": {"type": "string"}, "default": []}, "webhookTime": {"title": "Webhooktime", "type": "string", "default": "00:00"}, "webhookEnable": {"title": "Webhookenable", "type": "boolean"}, "users": {"title": "Users", "type": "array", "items": {"$ref": "#/components/schemas/UserOut"}}, "mealplans": {"title": "Mealplans", "type": "array", "items": {"$ref": "#/components/schemas/MealPlanInDB"}}}}, "HTTPValidationError": {"title": "HTTPValidationError", "type": "object", "properties": {"detail": {"title": "Detail", "type": "array", "items": {"$ref": "#/components/schemas/ValidationError"}}}}, "ImageType": {"title": "ImageType", "enum": ["original", "small", "tiny"], "type": "string", "description": "An enumeration."}, "ImportJob": {"title": "ImportJob", "required": ["name"], "type": "object", "properties": {"recipes": {"title": "Recipes", "type": "boolean", "default": true}, "settings": {"title": "Settings", "type": "boolean", "default": true}, "pages": {"title": "Pages", "type": "boolean", "default": true}, "themes": {"title": "Themes", "type": "boolean", "default": true}, "groups": {"title": "Groups", "type": "boolean", "default": true}, "users": {"title": "Users", "type": "boolean", "default": true}, "name": {"title": "Name", "type": "string"}, "force": {"title": "Force", "type": "boolean", "default": false}, "rebase": {"title": "Rebase", "type": "boolean", "default": false}}, "example": {"name": "my_local_backup.zip", "recipes": true, "settings": true, "themes": true, "groups": true, "users": true}}, "Imports": {"title": "Imports", "required": ["imports", "templates"], "type": "object", "properties": {"imports": {"title": "Imports", "type": "array", "items": {"$ref": "#/components/schemas/LocalBackup"}}, "templates": {"title": "Templates", "type": "array", "items": {"type": "string"}}}, "example": {"imports": [{"name": "AutoBackup_12-1-2020.zip", "date": "2021-04-09T11:49:02.718836"}], "templates": ["recipes.md", "custom_template.md"]}}, "LocalBackup": {"title": "LocalBackup", "required": ["name", "date"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "date": {"title": "Date", "type": "string", "format": "date-time"}}}, "MealIn": {"title": "MealIn", "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "date": {"title": "Date", "type": "string", "format": "date"}}}, "MealOut": {"title": "MealOut", "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "slug": {"title": "Slug", "type": "string"}, "date": {"title": "Date", "type": "string", "format": "date"}, "image": {"title": "Image", "type": "string"}, "description": {"title": "Description", "type": "string"}}}, "MealPlanIn": {"title": "MealPlanIn", "required": ["group", "startDate", "endDate", "meals"], "type": "object", "properties": {"group": {"title": "Group", "type": "string"}, "startDate": {"title": "Startdate", "type": "string", "format": "date"}, "endDate": {"title": "Enddate", "type": "string", "format": "date"}, "meals": {"title": "Meals", "type": "array", "items": {"$ref": "#/components/schemas/MealIn"}}}}, "MealPlanInDB": {"title": "MealPlanInDB", "required": ["group", "startDate", "endDate", "meals", "uid"], "type": "object", "properties": {"group": {"title": "Group", "type": "string"}, "startDate": {"title": "Startdate", "type": "string", "format": "date"}, "endDate": {"title": "Enddate", "type": "string", "format": "date"}, "meals": {"title": "Meals", "type": "array", "items": {"$ref": "#/components/schemas/MealOut"}}, "uid": {"title": "Uid", "type": "string"}}}, "Migration": {"title": "Migration", "enum": ["nextcloud", "chowdown"], "type": "string", "description": "The class defining the supported types of migrations for Mealie. Pass the\nclass attribute of the class instead of the string when using."}, "MigrationFile": {"title": "MigrationFile", "required": ["name", "date"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "date": {"title": "Date", "type": "string", "format": "date-time"}}}, "Migrations": {"title": "Migrations", "required": ["type"], "type": "object", "properties": {"type": {"title": "Type", "type": "string"}, "files": {"title": "Files", "type": "array", "items": {"$ref": "#/components/schemas/MigrationFile"}, "default": []}}}, "Nutrition": {"title": "Nutrition", "type": "object", "properties": {"calories": {"title": "Calories", "type": "string"}, "fatContent": {"title": "Fatcontent", "type": "string"}, "fiberContent": {"title": "Fibercontent", "type": "string"}, "proteinContent": {"title": "Proteincontent", "type": "string"}, "sodiumContent": {"title": "Sodiumcontent", "type": "string"}, "sugarContent": {"title": "Sugarcontent", "type": "string"}}}, "Recipe": {"title": "Recipe", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "slug": {"title": "Slug", "type": "string", "default": ""}, "image": {"title": "Image"}, "description": {"title": "Description", "type": "string"}, "recipeCategory": {"title": "Recipecategory", "type": "array", "items": {"type": "string"}, "default": []}, "tags": {"title": "Tags", "type": "array", "items": {"type": "string"}, "default": []}, "rating": {"title": "Rating", "type": "integer"}, "recipeYield": {"title": "Recipeyield", "type": "string"}, "recipeIngredient": {"title": "Recipeingredient", "type": "array", "items": {"type": "string"}}, "recipeInstructions": {"title": "Recipeinstructions", "type": "array", "items": {"$ref": "#/components/schemas/RecipeStep"}}, "nutrition": {"$ref": "#/components/schemas/Nutrition"}, "tools": {"title": "Tools", "type": "array", "items": {"type": "string"}, "default": []}, "totalTime": {"title": "Totaltime", "type": "string"}, "prepTime": {"title": "Preptime", "type": "string"}, "performTime": {"title": "Performtime", "type": "string"}, "dateAdded": {"title": "Dateadded", "type": "string", "format": "date"}, "notes": {"title": "Notes", "type": "array", "items": {"$ref": "#/components/schemas/RecipeNote"}, "default": []}, "orgURL": {"title": "Orgurl", "type": "string"}, "extras": {"title": "Extras", "type": "object", "default": {}}}, "example": {"name": "Chicken and Rice With Leeks and Salsa Verde", "description": "This one-skillet dinner gets deep oniony flavor from lots of leeks cooked down to jammy tenderness.", "image": "chicken-and-rice-with-leeks-and-salsa-verde.jpg", "recipeYield": "4 Servings", "recipeIngredient": ["1 1/2 lb. skinless, boneless chicken thighs (4-8 depending on size)", "Kosher salt, freshly ground pepper", "3 Tbsp. unsalted butter, divided"], "recipeInstructions": [{"text": "Season chicken with salt and pepper."}], "slug": "chicken-and-rice-with-leeks-and-salsa-verde", "tags": ["favorite", "yummy!"], "recipeCategory": ["Dinner", "Pasta"], "notes": [{"title": "Watch Out!", "text": "Prep the day before!"}], "orgURL": "https://www.bonappetit.com/recipe/chicken-and-rice-with-leeks-and-salsa-verde", "rating": 3, "extras": {"message": "Don't forget to defrost the chicken!"}}}, "RecipeCategoryResponse": {"title": "RecipeCategoryResponse", "required": ["name", "id", "slug"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "slug": {"title": "Slug", "type": "string"}, "recipes": {"title": "Recipes", "type": "array", "items": {"$ref": "#/components/schemas/Recipe"}}}, "example": {"id": 1, "name": "dinner", "recipes": [{}]}}, "RecipeNote": {"title": "RecipeNote", "required": ["title", "text"], "type": "object", "properties": {"title": {"title": "Title", "type": "string"}, "text": {"title": "Text", "type": "string"}}}, "RecipeStep": {"title": "RecipeStep", "required": ["text"], "type": "object", "properties": {"text": {"title": "Text", "type": "string"}}}, "RecipeTagResponse": {"title": "RecipeTagResponse", "required": ["name", "id", "slug"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "slug": {"title": "Slug", "type": "string"}, "recipes": {"title": "Recipes", "type": "array", "items": {"$ref": "#/components/schemas/Recipe"}}}, "example": {"id": 1, "name": "dinner", "recipes": [{}]}}, "RecipeURLIn": {"title": "RecipeURLIn", "required": ["url"], "type": "object", "properties": {"url": {"title": "Url", "type": "string"}}, "example": {"url": "https://myfavoriterecipes.com/recipes"}}, "SignUpIn": {"title": "SignUpIn", "required": ["name", "admin"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "admin": {"title": "Admin", "type": "boolean"}}}, "SignUpOut": {"title": "SignUpOut", "required": ["name", "admin", "token", "id"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "admin": {"title": "Admin", "type": "boolean"}, "token": {"title": "Token", "type": "string"}, "id": {"title": "Id", "type": "integer"}}}, "SignUpToken": {"title": "SignUpToken", "required": ["name", "admin", "token"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "admin": {"title": "Admin", "type": "boolean"}, "token": {"title": "Token", "type": "string"}}}, "SiteSettings": {"title": "SiteSettings", "type": "object", "properties": {"language": {"title": "Language", "type": "string", "default": "en"}, "showRecent": {"title": "Showrecent", "type": "boolean", "default": true}, "cardsPerSection": {"title": "Cardspersection", "type": "integer", "default": 9}, "categories": {"title": "Categories", "type": "array", "items": {"$ref": "#/components/schemas/CategoryBase"}, "default": []}}, "example": {"language": "en", "showRecent": true, "categories": [{"id": 1, "name": "thanksgiving", "slug": "thanksgiving"}, {"id": 2, "name": "homechef", "slug": "homechef"}, {"id": 3, "name": "potatoes", "slug": "potatoes"}]}}, "SiteTheme": {"title": "SiteTheme", "type": "object", "properties": {"name": {"title": "Name", "type": "string", "default": "default"}, "colors": {"title": "Colors", "allOf": [{"$ref": "#/components/schemas/Colors"}], "default": {"primary": "#E58325", "accent": "#00457A", "secondary": "#973542", "success": "#4CAF50", "info": "#4990BA", "warning": "#FF4081", "error": "#EF5350"}}}, "example": {"name": "default", "colors": {"primary": "#E58325", "accent": "#00457A", "secondary": "#973542", "success": "#5AB1BB", "info": "#4990BA", "warning": "#FF4081", "error": "#EF5350"}}}, "TagIn": {"title": "TagIn", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "UpdateGroup": {"title": "UpdateGroup", "required": ["name", "id", "webhookEnable"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "id": {"title": "Id", "type": "integer"}, "categories": {"title": "Categories", "type": "array", "items": {"$ref": "#/components/schemas/CategoryBase"}, "default": []}, "webhookUrls": {"title": "Webhookurls", "type": "array", "items": {"type": "string"}, "default": []}, "webhookTime": {"title": "Webhooktime", "type": "string", "default": "00:00"}, "webhookEnable": {"title": "Webhookenable", "type": "boolean"}}}, "UserBase": {"title": "UserBase", "required": ["email", "admin"], "type": "object", "properties": {"fullName": {"title": "Fullname", "type": "string"}, "email": {"title": "Email", "type": "string"}, "admin": {"title": "Admin", "type": "boolean"}, "group": {"title": "Group", "type": "string"}}}, "UserIn": {"title": "UserIn", "required": ["email", "admin", "password"], "type": "object", "properties": {"fullName": {"title": "Fullname", "type": "string"}, "email": {"title": "Email", "type": "string"}, "admin": {"title": "Admin", "type": "boolean"}, "group": {"title": "Group", "type": "string"}, "password": {"title": "Password", "type": "string"}}}, "UserOut": {"title": "UserOut", "required": ["email", "admin", "group", "id"], "type": "object", "properties": {"fullName": {"title": "Fullname", "type": "string"}, "email": {"title": "Email", "type": "string"}, "admin": {"title": "Admin", "type": "boolean"}, "group": {"title": "Group", "type": "string"}, "id": {"title": "Id", "type": "integer"}}}, "ValidationError": {"title": "ValidationError", "required": ["loc", "msg", "type"], "type": "object", "properties": {"loc": {"title": "Location", "type": "array", "items": {"type": "string"}}, "msg": {"title": "Message", "type": "string"}, "type": {"title": "Error Type", "type": "string"}}}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "/api/auth/token"}}}}}};
Redoc.init(spec, {}, document.getElementById("redoc-container"));
</script>
{% endblock %}
{% block content %}{% endblock %}
{% block footer %}{% endblock %}