var openapiJSON = {"openapi": "3.0.3", "info": {"title": "YunoHost API", "description": "This is the YunoHost API used on all YunoHost instances. This API is essentially used by YunoHost Webadmin.", "version": "11.0.7"}, "servers": [{"url": "https://{domain}/yunohost/api", "variables": {"domain": {"default": "demo.yunohost.org", "description": "Your yunohost domain"}}}], "tags": [{"name": "public", "description": "Public route"}, {"name": "user", "description": "Manage users and groups"}, {"name": "user group", "description": "Manage user groups"}, {"name": "user permission", "description": "Manage permissions"}, {"name": "user ssh", "description": "Manage ssh access"}, {"name": "domain", "description": "Manage domains"}, {"name": "domain config", "description": "Domain settings"}, {"name": "domain dns", "description": "Manage domains DNS"}, {"name": "domain cert", "description": "Manage domain certificates"}, {"name": "app", "description": "Manage apps"}, {"name": "app action", "description": "Handle apps actions"}, {"name": "app config", "description": "Applications configuration panel"}, {"name": "backup", "description": "Manage backups"}, {"name": "settings", "description": "Manage YunoHost global settings"}, {"name": "service", "description": "Manage services"}, {"name": "firewall", "description": "Manage firewall rules"}, {"name": "dyndns", "description": "Subscribe and Update DynDNS Hosts"}, {"name": "tools", "description": "Specific tools"}, {"name": "tools migrations", "description": "Manage migrations"}, {"name": "hook", "description": "Manage hooks"}, {"name": "log", "description": "Manage debug logs"}, {"name": "diagnosis", "description": "Look for possible issues on the server"}], "paths": {"/login": {"post": {"tags": ["public"], "summary": "Logs in and returns the authentication cookie", "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"credentials": {"type": "string", "format": "password"}}, "required": ["credentials"]}}}}, "security": [], "responses": {"200": {"description": "Successfully login", "headers": {"Set-Cookie": {"schema": {"type": "string"}}}}}}}, "/installed": {"get": {"tags": ["public"], "summary": "Test if the API is working", "parameters": [], "security": [], "responses": {"200": {"description": "Successfully working"}}}}, "/users": {"get": {"tags": ["user"], "operationId": "user_list", "summary": "List users", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "fields", "in": "query", "description": "fields to fetch (username, fullname, mail, mail-alias, mail-forward, mailbox-quota, groups, shell, home-path)", "required": true, "schema": {"type": "array"}, "explode": true}]}, "post": {"tags": ["user"], "operationId": "user_create", "summary": "Create user", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"username": {"type": "string", "description": "The unique username to create"}, "firstname": {"type": "string", "description": ""}, "lastname": {"type": "string", "description": ""}, "password": {"type": "string", "description": "User password"}, "domain": {"type": "string", "description": "Domain for the email address and xmpp account"}, "mailbox_quota": {"type": "string", "description": "Mailbox size quota", "default": "0"}}, "required": ["username"]}}}}}}, "/users/": {"delete": {"tags": ["user"], "operationId": "user_delete", "summary": "Delete user", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "username", "in": "query", "description": "Username to delete", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "purge", "in": "query", "description": "Purge user's home and mail directories", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "put": {"tags": ["user"], "operationId": "user_update", "summary": "Update user informations", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"username": {"type": "string", "description": "Username to update"}, "firstname": {"type": "string", "description": ""}, "lastname": {"type": "string", "description": ""}, "mail": {"type": "string", "description": ""}, "change_password": {"type": "string", "description": "New password to set", "format": "password"}, "add_mailforward": {"type": "array", "description": "Mailforward addresses to add", "format": "mail"}, "remove_mailforward": {"type": "array", "description": "Mailforward addresses to remove", "format": "mail"}, "add_mailalias": {"type": "array", "description": "Mail aliases to add", "format": "mail"}, "remove_mailalias": {"type": "array", "description": "Mail aliases to remove", "format": "mail"}, "mailbox_quota": {"type": "string", "description": "Mailbox size quota"}}, "required": ["username"]}}}}}, "get": {"tags": ["user"], "operationId": "user_info", "summary": "Get user information", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "username", "in": "query", "description": "Username or email to get information", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/users/export": {"get": {"tags": ["user"], "operationId": "user_export", "summary": "Export users into CSV", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": []}}, "/users/import": {"post": {"tags": ["user"], "operationId": "user_import", "summary": "Import several users from CSV", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"csvfile": {"type": "file", "description": "CSV file with columns username, firstname, lastname, password, mail, mailbox-quota, mail-alias, mail-forward, groups (separated by coma)"}, "update": {"type": "boolean", "description": "Update all existing users contained in the CSV file (by default existing users are ignored)"}, "delete": {"type": "boolean", "description": "Delete all existing users that are not contained in the CSV file (by default existing users are kept)"}}, "required": ["csvfile"]}}}}}}, "/users/groups": {"get": {"tags": ["user group"], "operationId": "user group_list", "summary": "List existing groups", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "short", "in": "query", "description": "List only the names of groups", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "full", "in": "query", "description": "Display all informations known about each groups", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "include_primary_groups", "in": "query", "description": "Also display primary groups (each user has an eponym group that only contains itself)", "required": false, "schema": {"type": "boolean", "default": false}, "explode": false}]}, "post": {"tags": ["user group"], "operationId": "user group_create", "summary": "Create group", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"groupname": {"type": "string", "description": "Name of the group to be created"}}, "required": ["groupname"]}}}}}}, "/users/groups/": {"delete": {"tags": ["user group"], "operationId": "user group_delete", "summary": "Delete group", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "groupname", "in": "query", "description": "Name of the group to be deleted", "required": true, "schema": {"type": "string"}, "explode": false}]}, "get": {"tags": ["user group"], "operationId": "user group_info", "summary": "Get information about a specific group", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "groupname", "in": "query", "description": "Name of the group to fetch info about", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/users/groups//add/": {"put": {"tags": ["user group"], "operationId": "user group_add", "summary": "Add users to group", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"groupname": {"type": "string", "description": "Name of the group to add user(s) to"}, "usernames": {"type": "array", "description": "User(s) to add in the group"}}, "required": ["groupname"]}}}}}}, "/users/groups//remove/": {"put": {"tags": ["user group"], "operationId": "user group_remove", "summary": "Remove users from group", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"groupname": {"type": "string", "description": "Name of the group to remove user(s) from"}, "usernames": {"type": "array", "description": "User(s) to remove from the group"}}, "required": ["groupname"]}}}}}}, "/users/permissions": {"get": {"tags": ["user permission"], "operationId": "user permission_list", "summary": "List permissions and corresponding accesses", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "apps", "in": "query", "description": "Apps to list permission for (all by default)", "required": false, "schema": {"type": "array"}, "explode": true}, {"name": "short", "in": "query", "description": "Only list permission names", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "full", "in": "query", "description": "Display all info known about each permission, including the full user list of each group it is granted to.", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/users/permissions/": {"get": {"tags": ["user permission"], "operationId": "user permission_info", "summary": "Get information about a specific permission", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "permission", "in": "query", "description": "Name of the permission to fetch info about (use \"yunohost user permission list\" and \"yunohost user permission -f\" to see all the current permissions)", "required": true, "schema": {"type": "string"}, "explode": false}]}, "put": {"tags": ["user permission"], "operationId": "user permission_update", "summary": "Manage group or user permissions", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"permission": {"type": "string", "description": "Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use \"yunohost user permission list\" and \"yunohost user permission -f\" to see all the current permissions)"}, "label": {"type": "string", "description": "Label for this permission. This label will be shown on the SSO and in the admin"}, "show_tile": {"type": "string", "description": "Define if a tile will be shown in the SSO", "enum": ["True", "False"]}}, "required": ["permission"]}}}}}, "delete": {"tags": ["user permission"], "operationId": "user permission_reset", "summary": "Reset allowed groups to the default (all_users) for a given permission", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "permission", "in": "query", "description": "Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use \"yunohost user permission list\" and \"yunohost user permission -f\" to see all the current permissions)", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/users/permissions//add/": {"put": {"tags": ["user permission"], "operationId": "user permission_add", "summary": "Grant permission to group or user", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"permission": {"type": "string", "description": "Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use \"yunohost user permission list\" and \"yunohost user permission -f\" to see all the current permissions)"}, "names": {"type": "array", "description": "Group or usernames to grant this permission to"}}, "required": ["permission"]}}}}}}, "/users/permissions//remove/": {"put": {"tags": ["user permission"], "operationId": "user permission_remove", "summary": "Revoke permission to group or user", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"permission": {"type": "string", "description": "Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use \"yunohost user permission list\" and \"yunohost user permission -f\" to see all the current permissions)"}, "names": {"type": "array", "description": "Group or usernames to revoke this permission to"}}, "required": ["permission"]}}}}}}, "/users/ssh/keys": {"get": {"tags": ["user ssh"], "operationId": "user ssh_list-keys", "summary": "Show user's authorized ssh keys", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "username", "in": "query", "description": "Username of the user", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/users/ssh/key": {"post": {"tags": ["user ssh"], "operationId": "user ssh_add-key", "summary": "Add a new authorized ssh key for this user", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"username": {"type": "string", "description": "Username of the user"}, "key": {"type": "string", "description": "The key to be added"}, "comment": {"type": "string", "description": "Optional comment about the key"}}, "required": ["username", "key"]}}}}}, "delete": {"tags": ["user ssh"], "operationId": "user ssh_remove-key", "summary": "Remove an authorized ssh key for this user", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "username", "in": "query", "description": "Username of the user", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "key", "in": "query", "description": "The key to be removed", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/domains": {"get": {"tags": ["domain"], "operationId": "domain_list", "summary": "List domains", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "exclude_subdomains", "in": "query", "description": "Filter out domains that are obviously subdomains of other declared domains", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "post": {"tags": ["domain"], "operationId": "domain_add", "summary": "Create a custom domain", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "description": "Domain name to add"}, "dyndns": {"type": "boolean", "description": "Subscribe to the DynDNS service"}}, "required": ["domain"]}}}}}}, "/domains/": {"delete": {"tags": ["domain"], "operationId": "domain_remove", "summary": "Delete domains", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "domain", "in": "query", "description": "Domain to delete", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "remove_apps", "in": "query", "description": "Remove apps installed on the domain", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "force", "in": "query", "description": "Do not ask confirmation to remove apps", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/domains/main": {"get": {"tags": ["domain"], "operationId": "domain_main-domain", "summary": "Check the current main domain, or change it", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "new_main_domain", "in": "query", "description": "Change the current main domain", "required": false, "schema": {"type": "string"}, "explode": false}]}}, "/domains//main": {"put": {"tags": ["domain"], "operationId": "domain_main-domain_1", "summary": "Check the current main domain, or change it", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"new_main_domain": {"type": "string", "description": "Change the current main domain"}}, "required": []}}}}}}, "/domain//urlavailable": {"get": {"tags": ["domain"], "operationId": "domain_url-available", "summary": "Check availability of a web path", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "domain", "in": "query", "description": "The domain for the web path (e.g. your.domain.tld)", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "path", "in": "query", "description": "The path to check (e.g. /coffee)", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/domains//config": {"get": {"tags": ["domain config"], "operationId": "domain config_get", "summary": "Display a domain configuration", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "domain", "in": "query", "description": "Domain name", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "key", "in": "query", "description": "A specific panel, section or a question identifier", "required": false, "schema": {"type": "string"}, "explode": false}, {"name": "full", "in": "query", "description": "Display all details (meant to be used by the API)", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "export", "in": "query", "description": "Only export key/values, meant to be reimported using \"config set --args-file\"", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "put": {"tags": ["domain config"], "operationId": "domain config_set", "summary": "Apply a new configuration", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "description": "Domain name"}, "key": {"type": "string", "description": "The question or form key"}, "value": {"type": "string", "description": "new value"}, "args": {"type": "string", "description": "Serialized arguments for new configuration (i.e. \"mail_in=0&mail_out=0\")"}}, "required": ["domain"]}}}}}}, "/domains//dns": {"get": {"tags": ["domain dns"], "operationId": "domain dns_suggest", "summary": "Generate sample DNS configuration for a domain", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "domain", "in": "query", "description": "Target domain", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/domains//dns/suggest": {"get": {"tags": ["domain dns"], "operationId": "domain dns_suggest_1", "summary": "Generate sample DNS configuration for a domain", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "domain", "in": "query", "description": "Target domain", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/domains//dns/push": {"post": {"tags": ["domain dns"], "operationId": "domain dns_push", "summary": "Push DNS records to registrar", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "description": "Domain name to push DNS conf for"}, "dry_run": {"type": "boolean", "description": "Only display what's to be pushed"}, "force": {"type": "boolean", "description": "Also update/remove records which were not originally set by Yunohost, or which have been manually modified"}, "purge": {"type": "boolean", "description": "Delete all records"}}, "required": ["domain"]}}}}}}, "/domains//cert": {"get": {"tags": ["domain cert"], "operationId": "domain cert_status", "summary": "List status of current certificates (all by default).", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "domain_list", "in": "query", "description": "Domains to check", "required": false, "schema": {"type": "array"}, "explode": true}, {"name": "full", "in": "query", "description": "Show more details", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "put": {"tags": ["domain cert"], "operationId": "domain cert_install", "summary": "Install Let's Encrypt certificates for given domains (all by default).", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"domain_list": {"type": "array", "description": "Domains for which to install the certificates"}, "force": {"type": "boolean", "description": "Install even if current certificate is not self-signed"}, "no_checks": {"type": "boolean", "description": "Does not perform any check that your domain seems correctly configured (DNS, reachability) before attempting to install. (Not recommended)"}, "self_signed": {"type": "boolean", "description": "Install self-signed certificate instead of Let's Encrypt"}}, "required": []}}}}}}, "/domains//cert/renew": {"put": {"tags": ["domain cert"], "operationId": "domain cert_renew", "summary": "Renew the Let's Encrypt certificates for given domains (all by default).", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"domain_list": {"type": "array", "description": "Domains for which to renew the certificates"}, "force": {"type": "boolean", "description": "Ignore the validity threshold (30 days)"}, "email": {"type": "boolean", "description": "Send an email to root with logs if some renewing fails"}, "no_checks": {"type": "boolean", "description": "Does not perform any check that your domain seems correctly configured (DNS, reachability) before attempting to renew. (Not recommended)"}}, "required": []}}}}}}, "/apps/catalog": {"get": {"tags": ["app"], "operationId": "app_catalog", "summary": "Show the catalog of installable application", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "full", "in": "query", "description": "Display all details, including the app manifest and various other infos", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "with_categories", "in": "query", "description": "Also return a list of app categories", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/apps/manifest": {"get": {"tags": ["app"], "operationId": "app_manifest", "summary": "Return the manifest of a given app from the catalog, or from a remote git repo", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "Name, local path or git URL of the app to fetch the manifest of", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/apps": {"get": {"tags": ["app"], "operationId": "app_list", "summary": "List installed apps", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "full", "in": "query", "description": "Display all details, including the app manifest and various other infos", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "upgradable", "in": "query", "description": "List only apps that can upgrade to a newer version", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "post": {"tags": ["app"], "operationId": "app_install", "summary": "Install apps", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "string", "description": "Name, local path or git URL of the app to install"}, "label": {"type": "string", "description": "Custom name for the app"}, "args": {"type": "string", "description": "Serialized arguments for app script (i.e. \"domain=domain.tld&path=/path\")"}, "no_remove_on_failure": {"type": "boolean", "description": "Debug option to avoid removing the app on a failed installation"}, "force": {"type": "boolean", "description": "Do not ask confirmation if the app is not safe to use (low quality, experimental or 3rd party)"}}, "required": ["app"]}}}}}}, "/apps/": {"get": {"tags": ["app"], "operationId": "app_info", "summary": "Show infos about a specific installed app", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "Specific app ID", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "full", "in": "query", "description": "Display all details, including the app manifest and various other infos", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "delete": {"tags": ["app"], "operationId": "app_remove", "summary": "Remove app", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "App to remove", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "purge", "in": "query", "description": "Also remove all application data", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/apps/map": {"get": {"tags": ["app"], "operationId": "app_map", "summary": "Show the mapping between urls and apps", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "Specific app to map", "required": false, "schema": {"type": "string"}, "explode": false}, {"name": "raw", "in": "query", "description": "Return complete dict", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "user", "in": "query", "description": "Allowed app map for a user", "required": false, "schema": {"type": "string"}, "explode": false}]}}, "/apps//upgrade": {"put": {"tags": ["app"], "operationId": "app_upgrade", "summary": "Upgrade app", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "array", "description": "App(s) to upgrade (default all)"}, "url": {"type": "string", "description": "Git url to fetch for upgrade"}, "file": {"type": "string", "description": "Folder or tarball for upgrade"}, "force": {"type": "boolean", "description": "Force the update, even though the app is up to date"}, "no_safety_backup": {"type": "boolean", "description": "Disable the safety backup during upgrade"}}, "required": []}}}}}}, "/apps//changeurl": {"put": {"tags": ["app"], "operationId": "app_change-url", "summary": "Change app's URL", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "string", "description": "Target app instance name"}, "domain": {"type": "string", "description": "New app domain on which the application will be moved"}, "path": {"type": "string", "description": "New path at which the application will be moved"}}, "required": ["app"]}}}}}}, "/apps//settings": {"get": {"tags": ["app"], "operationId": "app_setting", "summary": "Set or get an app setting value", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "App ID", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "key", "in": "query", "description": "Key to get/set", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "value", "in": "query", "description": "Value to set", "required": false, "schema": {"type": "string"}, "explode": false}, {"name": "delete", "in": "query", "description": "Delete the key", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/apps//default": {"put": {"tags": ["app"], "operationId": "app_makedefault", "summary": "Redirect domain root to an app", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "string", "description": "App name to put on domain root"}, "domain": {"type": "string", "description": "Specific domain to put app on (the app domain by default)"}, "undo": {"type": "boolean", "description": "Undo redirection"}}, "required": ["app"]}}}}}}, "/apps//label": {"put": {"tags": ["app"], "operationId": "app_change-label", "summary": "Change app label", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "string", "description": "App ID"}, "new_label": {"type": "string", "description": "New app label"}}, "required": ["app", "new_label"]}}}}}}, "/apps//actions": {"get": {"tags": ["app action"], "operationId": "app action_list", "summary": "List app actions", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "App name", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/apps//actions/": {"put": {"tags": ["app action"], "operationId": "app action_run", "summary": "Run app action", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "string", "description": "App name"}, "action": {"type": "string", "description": "action id"}, "args": {"type": "string", "description": "Serialized arguments for app script (i.e. \"domain=domain.tld&path=/path\")"}}, "required": ["app", "action"]}}}}}}, "/apps//config-panel": {"get": {"tags": ["app config"], "operationId": "app config_get", "summary": "Display an app configuration", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "app", "in": "query", "description": "App name", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "key", "in": "query", "description": "A specific panel, section or a question identifier", "required": false, "schema": {"type": "string"}, "explode": false}, {"name": "full", "in": "query", "description": "Display all details (meant to be used by the API)", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "export", "in": "query", "description": "Only export key/values, meant to be reimported using \"config set --args-file\"", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/apps//config": {"put": {"tags": ["app config"], "operationId": "app config_set", "summary": "Apply a new configuration", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"app": {"type": "string", "description": "App name"}, "key": {"type": "string", "description": "The question or panel key"}, "value": {"type": "string", "description": "new value"}, "args": {"type": "string", "description": "Serialized arguments for new configuration (i.e. \"domain=domain.tld&path=/path\")"}, "args_file": {"type": "file", "description": "YAML or JSON file with key/value couples"}}, "required": ["app"]}}}}}}, "/backups": {"post": {"tags": ["backup"], "operationId": "backup_create", "summary": "Create a backup local archive. If neither --apps or --system are given, this will backup all apps and all system parts. If only --apps if given, this will only backup apps and no system parts. Similarly, if only --system is given, this will only backup system parts and no apps.", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "Name of the backup archive"}, "description": {"type": "string", "description": "Short description of the backup"}, "output_directory": {"type": "string", "description": "Output directory for the backup"}, "methods": {"type": "array", "description": "List of backup methods to apply (copy or tar by default)"}, "system": {"type": "array", "description": "List of system parts to backup (or all if none given)."}, "apps": {"type": "array", "description": "List of application names to backup (or all if none given)"}, "dry_run": {"type": "boolean", "description": "'Simulate' the backup and return the size details per item to backup"}}, "required": []}}}}}, "get": {"tags": ["backup"], "operationId": "backup_list", "summary": "List available local backup archives", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "with_info", "in": "query", "description": "Show backup information for each archive", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "human_readable", "in": "query", "description": "Print sizes in human readable format", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/backups//restore": {"put": {"tags": ["backup"], "operationId": "backup_restore", "summary": "Restore from a local backup archive. If neither --apps or --system are given, this will restore all apps and all system parts in the archive. If only --apps if given, this will only restore apps and no system parts. Similarly, if only --system is given, this will only restore system parts and no apps.", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "Name of the local backup archive"}, "system": {"type": "array", "description": "List of system parts to restore (or all if none is given)"}, "apps": {"type": "array", "description": "List of application names to restore (or all if none is given)"}, "force": {"type": "boolean", "description": "Force restauration on an already installed system"}}, "required": ["name"]}}}}}}, "/backups/": {"get": {"tags": ["backup"], "operationId": "backup_info", "summary": "Show info about a local backup archive", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "name", "in": "query", "description": "Name of the local backup archive", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "with_details", "in": "query", "description": "Show additional backup information", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "human_readable", "in": "query", "description": "Print sizes in human readable format", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "delete": {"tags": ["backup"], "operationId": "backup_delete", "summary": "Delete a backup archive", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "name", "in": "query", "description": "Name of the archive to delete", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/backups//download": {"get": {"tags": ["backup"], "operationId": "backup_download", "summary": "(API only) Request to download the file", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "name", "in": "query", "description": "Name of the local backup archive", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/settings": {"get": {"tags": ["settings"], "operationId": "settings_list", "summary": "list all entries of the settings", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": []}, "delete": {"tags": ["settings"], "operationId": "settings_reset-all", "summary": "reset all settings to their default value", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": []}}, "/settings/": {"get": {"tags": ["settings"], "operationId": "settings_get", "summary": "get an entry value in the settings", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "key", "in": "query", "description": "Settings key", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "full", "in": "query", "description": "Show more details", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "post": {"tags": ["settings"], "operationId": "settings_set", "summary": "set an entry value in the settings", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"key": {"type": "string", "description": "Settings key"}, "value": {"type": "string", "description": "new value"}}, "required": ["key"]}}}}}, "delete": {"tags": ["settings"], "operationId": "settings_reset", "summary": "set an entry value to its default one", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "key", "in": "query", "description": "Settings key", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/services//start": {"put": {"tags": ["service"], "operationId": "service_start", "summary": "Start one or more services", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Service name to start"}}, "required": ["names"]}}}}}}, "/services//stop": {"put": {"tags": ["service"], "operationId": "service_stop", "summary": "Stop one or more services", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Service name to stop"}}, "required": ["names"]}}}}}}, "/services//restart": {"put": {"tags": ["service"], "operationId": "service_restart", "summary": "Restart one or more services. If the services are not running yet, they will be started.", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Service name to restart"}}, "required": ["names"]}}}}}}, "/services//enable": {"put": {"tags": ["service"], "operationId": "service_enable", "summary": "Enable one or more services", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Service name to enable"}}, "required": ["names"]}}}}}}, "/services//disable": {"put": {"tags": ["service"], "operationId": "service_disable", "summary": "Disable one or more services", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Service name to disable"}}, "required": ["names"]}}}}}}, "/services": {"get": {"tags": ["service"], "operationId": "service_status", "summary": "Show status information about one or more services (all by default)", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "names", "in": "query", "description": "Service name to show", "required": false, "schema": {"type": "array"}, "explode": true}]}}, "/services/": {"get": {"tags": ["service"], "operationId": "service_status_1", "summary": "Show status information about one or more services (all by default)", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "names", "in": "query", "description": "Service name to show", "required": false, "schema": {"type": "array"}, "explode": true}]}}, "/services//log": {"get": {"tags": ["service"], "operationId": "service_log", "summary": "Log every log files of a service", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "name", "in": "query", "description": "Service name to log", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "number", "in": "query", "description": "Number of lines to display", "required": false, "schema": {"type": "int", "default": 50}, "explode": false}]}}, "/firewall": {"get": {"tags": ["firewall"], "operationId": "firewall_list", "summary": "List all firewall rules", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "raw", "in": "query", "description": "Return the complete YAML dict", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "by_ip_version", "in": "query", "description": "List rules by IP version", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "list_forwarded", "in": "query", "description": "List forwarded ports with UPnP", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/firewall//allow/": {"put": {"tags": ["firewall"], "operationId": "firewall_allow", "summary": "Allow connections on a port", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"protocol": {"type": "string", "description": "Protocol type to allow (TCP/UDP/Both)", "enum": ["TCP", "UDP", "Both"], "default": "TCP"}, "port": {"type": "string", "description": "Port or range of ports to open"}, "ipv4_only": {"type": "boolean", "description": "Only add a rule for IPv4 connections"}, "ipv6_only": {"type": "boolean", "description": "Only add a rule for IPv6 connections"}, "no_upnp": {"type": "boolean", "description": "Do not add forwarding of this port with UPnP"}, "no_reload": {"type": "boolean", "description": "Do not reload firewall rules"}}, "required": ["protocol", "port"]}}}}}}, "/firewall//disallow/": {"put": {"tags": ["firewall"], "operationId": "firewall_disallow", "summary": "Disallow connections on a port", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"protocol": {"type": "string", "description": "Protocol type to allow (TCP/UDP/Both)", "enum": ["TCP", "UDP", "Both"], "default": "TCP"}, "port": {"type": "string", "description": "Port or range of ports to close"}, "ipv4_only": {"type": "boolean", "description": "Only remove the rule for IPv4 connections"}, "ipv6_only": {"type": "boolean", "description": "Only remove the rule for IPv6 connections"}, "upnp_only": {"type": "boolean", "description": "Only remove forwarding of this port with UPnP"}, "no_reload": {"type": "boolean", "description": "Do not reload firewall rules"}}, "required": ["protocol", "port"]}}}}}}, "/firewall/upnp/": {"put": {"tags": ["firewall"], "operationId": "firewall_upnp", "summary": "Manage port forwarding using UPnP", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"action": {"type": "string", "description": "", "enum": ["enable", "disable", "status", "reload"], "default": "status"}, "no_refresh": {"type": "boolean", "description": "Do not refresh port forwarding"}}, "required": []}}}}}}, "/adminpw": {"put": {"tags": ["tools"], "operationId": "tools_adminpw", "summary": "Change password of admin and root users", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"new_password": {"type": "string", "description": ""}}, "required": []}}}}}}, "/postinstall": {"post": {"tags": ["tools"], "operationId": "tools_postinstall", "summary": "YunoHost post-install", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "X-Requested-With", "in": "header", "required": true, "schema": {"type": "string", "default": "Swagger API"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "description": "YunoHost main domain"}, "password": {"type": "string", "description": "YunoHost admin password"}, "ignore_dyndns": {"type": "boolean", "description": "Do not subscribe domain to a DynDNS service"}, "force_password": {"type": "boolean", "description": "Use this if you really want to set a weak password"}, "force_diskspace": {"type": "boolean", "description": "Use this if you really want to install YunoHost on a setup with less than 10 GB on the root filesystem"}}, "required": []}}}}}}, "/update/": {"put": {"tags": ["tools"], "operationId": "tools_update", "summary": "YunoHost update", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"target": {"type": "string", "description": "What to update, \"apps\" (application catalog) or \"system\" (fetch available package upgrades, equivalent to apt update), \"all\" for both", "enum": ["apps", "system", "all"], "default": "all"}}, "required": []}}}}}}, "/upgrade/": {"put": {"tags": ["tools"], "operationId": "tools_upgrade", "summary": "YunoHost upgrade", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"target": {"type": "string", "description": "What to upgrade, either \"apps\" (all apps) or \"system\" (all system packages)", "enum": ["apps", "system"]}}, "required": []}}}}}}, "/shutdown": {"put": {"tags": ["tools"], "operationId": "tools_shutdown", "summary": "Shutdown the server", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"force": {"type": "boolean", "description": "skip the shutdown confirmation"}}, "required": []}}}}}}, "/reboot": {"put": {"tags": ["tools"], "operationId": "tools_reboot", "summary": "Reboot the server", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"force": {"type": "boolean", "description": "skip the reboot confirmation"}}, "required": []}}}}}}, "/regenconf": {"put": {"tags": ["tools"], "operationId": "tools_regen-conf", "summary": "Regenerate the configuration file(s)", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Categories to regenerate configuration of (all by default)"}, "with_diff": {"type": "boolean", "description": "Show differences in case of configuration changes"}, "force": {"type": "boolean", "description": "Override all manual modifications in configuration files"}, "dry_run": {"type": "boolean", "description": "Show what would have been regenerated"}, "list_pending": {"type": "boolean", "description": "List pending configuration files and exit"}}, "required": []}}}}}}, "/regenconf/": {"put": {"tags": ["tools"], "operationId": "tools_regen-conf_1", "summary": "Regenerate the configuration file(s)", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"names": {"type": "array", "description": "Categories to regenerate configuration of (all by default)"}, "with_diff": {"type": "boolean", "description": "Show differences in case of configuration changes"}, "force": {"type": "boolean", "description": "Override all manual modifications in configuration files"}, "dry_run": {"type": "boolean", "description": "Show what would have been regenerated"}, "list_pending": {"type": "boolean", "description": "List pending configuration files and exit"}}, "required": []}}}}}}, "/versions": {"get": {"tags": ["tools"], "operationId": "tools_versions", "summary": "Display YunoHost's packages versions", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": []}}, "/migrations": {"get": {"tags": ["tools migrations"], "operationId": "tools migrations_list", "summary": "List migrations", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "pending", "in": "query", "description": "list only pending migrations", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "done", "in": "query", "description": "list only migrations already performed", "required": false, "schema": {"type": "boolean"}, "explode": false}]}, "put": {"tags": ["tools migrations"], "operationId": "tools migrations_run", "summary": "Run migrations", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"targets": {"type": "array", "description": "Migrations to run (all pendings by default)"}, "skip": {"type": "boolean", "description": "Skip specified migrations (to be used only if you know what you are doing)"}, "force_rerun": {"type": "boolean", "description": "Re-run already-ran specified migration (to be used only if you know what you are doing)"}, "auto": {"type": "boolean", "description": "Automatic mode, won't run manual migrations (to be used only if you know what you are doing)"}, "accept_disclaimer": {"type": "boolean", "description": "Accept disclaimers of migrations (please read them before using this option)"}}, "required": []}}}}}}, "/migrations/": {"put": {"tags": ["tools migrations"], "operationId": "tools migrations_run_1", "summary": "Run migrations", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"targets": {"type": "array", "description": "Migrations to run (all pendings by default)"}, "skip": {"type": "boolean", "description": "Skip specified migrations (to be used only if you know what you are doing)"}, "force_rerun": {"type": "boolean", "description": "Re-run already-ran specified migration (to be used only if you know what you are doing)"}, "auto": {"type": "boolean", "description": "Automatic mode, won't run manual migrations (to be used only if you know what you are doing)"}, "accept_disclaimer": {"type": "boolean", "description": "Accept disclaimers of migrations (please read them before using this option)"}}, "required": []}}}}}}, "/hooks/": {"get": {"tags": ["hook"], "operationId": "hook_list", "summary": "List available hooks for an action", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "action", "in": "query", "description": "Action name", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "list_by", "in": "query", "description": "Property to list hook by", "required": false, "schema": {"type": "string", "enum": ["name", "priority", "folder"], "default": "name"}, "explode": false}, {"name": "show_info", "in": "query", "description": "Show hook information", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/logs": {"get": {"tags": ["log"], "operationId": "log_list", "summary": "List logs", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "limit", "in": "query", "description": "Maximum number of operations to list (default to 50)", "required": false, "schema": {"type": "int", "default": 50}, "explode": false}, {"name": "with_details", "in": "query", "description": "Show additional infos (e.g. operation success) but may significantly increase command time. Consider using --limit in combination with this.", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "with_suboperations", "in": "query", "description": "Include metadata about operations that are not the main operation but are sub-operations triggered by another ongoing operation... (e.g. initializing groups/permissions when installing an app)", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/logs/": {"get": {"tags": ["log"], "operationId": "log_show", "summary": "Display a log content", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "path", "in": "query", "description": "Log file which to display the content", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "number", "in": "query", "description": "Number of lines to display", "required": false, "schema": {"type": "int", "default": 50}, "explode": false}, {"name": "share", "in": "query", "description": "(Deprecated, see yunohost log share) Share the full log using yunopaste", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "filter_irrelevant", "in": "query", "description": "Do not show some lines deemed not relevant (like set +x or helper argument parsing)", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "with_suboperations", "in": "query", "description": "Include metadata about sub-operations of this operation... (e.g. initializing groups/permissions when installing an app)", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/logs//share": {"get": {"tags": ["log"], "operationId": "log_share", "summary": "Share the full log on yunopaste (alias to show --share)", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "path", "in": "query", "description": "Log file to share", "required": true, "schema": {"type": "string"}, "explode": false}]}}, "/diagnosis/categories": {"get": {"tags": ["diagnosis"], "operationId": "diagnosis_list", "summary": "List diagnosis categories", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": []}}, "/diagnosis": {"get": {"tags": ["diagnosis"], "operationId": "diagnosis_show", "summary": "Show most recents diagnosis results", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "categories", "in": "query", "description": "Diagnosis categories to display (all by default)", "required": false, "schema": {"type": "array"}, "explode": true}, {"name": "full", "in": "query", "description": "Display additional information", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "issues", "in": "query", "description": "Only display issues", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "share", "in": "query", "description": "Share the logs using yunopaste", "required": false, "schema": {"type": "boolean"}, "explode": false}, {"name": "human_readable", "in": "query", "description": "Show a human-readable output", "required": false, "schema": {"type": "boolean"}, "explode": false}]}}, "/diagnosis/": {"get": {"tags": ["diagnosis"], "operationId": "diagnosis_get", "summary": "Low-level command to fetch raw data and status about a specific diagnosis test", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [{"name": "category", "in": "query", "description": "Diagnosis category to fetch results from", "required": true, "schema": {"type": "string"}, "explode": false}, {"name": "item", "in": "query", "description": "List of criteria describing the test. Must correspond exactly to the 'meta' infos in 'yunohost diagnosis show'", "required": false, "schema": {"type": "array"}, "explode": true}]}}, "/diagnosis/run": {"put": {"tags": ["diagnosis"], "operationId": "diagnosis_run", "summary": "Run diagnosis", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"categories": {"type": "array", "description": "Diagnosis categories to run (all by default)"}, "force": {"type": "boolean", "description": "Ignore the cached report even if it is still 'fresh'"}, "except_if_never_ran_yet": {"type": "boolean", "description": "Don't run anything if diagnosis never ran yet ... (this is meant to be used by the webadmin)"}, "email": {"type": "boolean", "description": "Send an email to root with issues found (this is meant to be used by cron job)"}}, "required": []}}}}}}, "/diagnosis/ignore": {"put": {"tags": ["diagnosis"], "operationId": "diagnosis_ignore", "summary": "Configure some diagnosis results to be ignored and therefore not considered as actual issues", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"filter": {"type": "array", "description": "Add a filter. The first element should be a diagnosis category, and other criterias can be provided using the infos from the 'meta' sections in 'yunohost diagnosis show'. For example: 'dnsrecords domain=yolo.test category=xmpp'"}, "list": {"type": "boolean", "description": "List active ignore filters"}}, "required": []}}}}}}, "/diagnosis/unignore": {"put": {"tags": ["diagnosis"], "operationId": "diagnosis_unignore", "summary": "Configure some diagnosis results to be unignored and therefore considered as actual issues", "description": "", "responses": {"200": {"description": "successful operation"}}, "parameters": [], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "properties": {"filter": {"type": "array", "description": "Remove a filter (it should be an existing filter as listed with --list)"}}, "required": []}}}}}}}}