You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
778 lines
28 KiB
778 lines
28 KiB
2 years ago
|
{
|
||
|
"openapi": "3.1.0",
|
||
|
"info": {
|
||
|
"title": "theming",
|
||
|
"version": "0.0.1",
|
||
|
"description": "Adjust the Nextcloud theme",
|
||
|
"license": {
|
||
|
"name": "agpl",
|
||
|
"identifier": "AGPL-3.0-only"
|
||
|
}
|
||
|
},
|
||
|
"components": {
|
||
|
"securitySchemes": {
|
||
|
"basic_auth": {
|
||
|
"type": "http",
|
||
|
"scheme": "basic"
|
||
|
},
|
||
|
"bearer_auth": {
|
||
|
"type": "http",
|
||
|
"scheme": "bearer"
|
||
|
}
|
||
|
},
|
||
|
"schemas": {
|
||
|
"Background": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"backgroundImage",
|
||
|
"backgroundColor",
|
||
|
"version"
|
||
|
],
|
||
|
"properties": {
|
||
|
"backgroundImage": {
|
||
|
"type": "string",
|
||
|
"nullable": true
|
||
|
},
|
||
|
"backgroundColor": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"version": {
|
||
|
"type": "integer",
|
||
|
"format": "int64"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"OCSMeta": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"status",
|
||
|
"statuscode"
|
||
|
],
|
||
|
"properties": {
|
||
|
"status": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"statuscode": {
|
||
|
"type": "integer"
|
||
|
},
|
||
|
"message": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"totalitems": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"itemsperpage": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"PublicCapabilities": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"theming"
|
||
|
],
|
||
|
"properties": {
|
||
|
"theming": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"name",
|
||
|
"url",
|
||
|
"slogan",
|
||
|
"color",
|
||
|
"color-text",
|
||
|
"color-element",
|
||
|
"color-element-bright",
|
||
|
"color-element-dark",
|
||
|
"logo",
|
||
|
"background",
|
||
|
"background-plain",
|
||
|
"background-default",
|
||
|
"logoheader",
|
||
|
"favicon"
|
||
|
],
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"url": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"slogan": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"color": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"color-text": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"color-element": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"color-element-bright": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"color-element-dark": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"logo": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"background": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"background-plain": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"background-default": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"logoheader": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"favicon": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"paths": {
|
||
|
"/index.php/apps/theming/theme/{themeId}.css": {
|
||
|
"get": {
|
||
|
"operationId": "theming-get-theme-stylesheet",
|
||
|
"summary": "Get the CSS stylesheet for a theme",
|
||
|
"tags": [
|
||
|
"theming"
|
||
|
],
|
||
|
"security": [
|
||
|
{},
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "plain",
|
||
|
"in": "query",
|
||
|
"description": "Let the browser decide the CSS priority",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 0
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "withCustomCss",
|
||
|
"in": "query",
|
||
|
"description": "Include custom CSS",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 0
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "themeId",
|
||
|
"in": "path",
|
||
|
"description": "ID of the theme",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Stylesheet returned",
|
||
|
"content": {
|
||
|
"text/css": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/image/{key}": {
|
||
|
"get": {
|
||
|
"operationId": "theming-get-image",
|
||
|
"summary": "Get an image",
|
||
|
"tags": [
|
||
|
"theming"
|
||
|
],
|
||
|
"security": [
|
||
|
{},
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "useSvg",
|
||
|
"in": "query",
|
||
|
"description": "Return image as SVG",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"default": 1
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "key",
|
||
|
"in": "path",
|
||
|
"description": "Key of the image",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Image returned",
|
||
|
"content": {
|
||
|
"*/*": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/manifest/{app}": {
|
||
|
"get": {
|
||
|
"operationId": "theming-get-manifest",
|
||
|
"summary": "Get the manifest for an app",
|
||
|
"tags": [
|
||
|
"theming"
|
||
|
],
|
||
|
"security": [
|
||
|
{},
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "app",
|
||
|
"in": "path",
|
||
|
"description": "ID of the app",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "",
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"name",
|
||
|
"short_name",
|
||
|
"start_url",
|
||
|
"theme_color",
|
||
|
"background_color",
|
||
|
"description",
|
||
|
"icons",
|
||
|
"display"
|
||
|
],
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"short_name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"start_url": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"theme_color": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"background_color": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"icons": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"src",
|
||
|
"type",
|
||
|
"sizes"
|
||
|
],
|
||
|
"properties": {
|
||
|
"src": {
|
||
|
"type": "string",
|
||
|
"minLength": 1
|
||
|
},
|
||
|
"type": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"sizes": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"display": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/favicon/{app}": {
|
||
|
"get": {
|
||
|
"operationId": "icon-get-favicon",
|
||
|
"summary": "Return a 32x32 favicon as png",
|
||
|
"tags": [
|
||
|
"icon"
|
||
|
],
|
||
|
"security": [
|
||
|
{},
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "app",
|
||
|
"in": "path",
|
||
|
"description": "ID of the app",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "core"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Favicon returned",
|
||
|
"content": {
|
||
|
"image/x-icon": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/icon/{app}": {
|
||
|
"get": {
|
||
|
"operationId": "icon-get-touch-icon",
|
||
|
"summary": "Return a 512x512 icon for touch devices",
|
||
|
"tags": [
|
||
|
"icon"
|
||
|
],
|
||
|
"security": [
|
||
|
{},
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "app",
|
||
|
"in": "path",
|
||
|
"description": "ID of the app",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "core"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Touch icon returned",
|
||
|
"content": {
|
||
|
"image/png": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/img/{app}/{image}": {
|
||
|
"get": {
|
||
|
"operationId": "icon-get-themed-icon",
|
||
|
"summary": "Get a themed icon",
|
||
|
"tags": [
|
||
|
"icon"
|
||
|
],
|
||
|
"security": [
|
||
|
{},
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "app",
|
||
|
"in": "path",
|
||
|
"description": "ID of the app",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "image",
|
||
|
"in": "path",
|
||
|
"description": "image file name (svg required)",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"pattern": "^.+$"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Themed icon returned",
|
||
|
"content": {
|
||
|
"image/svg+xml": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/background": {
|
||
|
"get": {
|
||
|
"operationId": "user_theme-get-background",
|
||
|
"summary": "Get the background image",
|
||
|
"tags": [
|
||
|
"user_theme"
|
||
|
],
|
||
|
"security": [
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "OCS-APIRequest",
|
||
|
"in": "header",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "true"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Background image returned",
|
||
|
"content": {
|
||
|
"*/*": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/background/{type}": {
|
||
|
"post": {
|
||
|
"operationId": "user_theme-set-background",
|
||
|
"summary": "Set the background",
|
||
|
"tags": [
|
||
|
"user_theme"
|
||
|
],
|
||
|
"security": [
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "value",
|
||
|
"in": "query",
|
||
|
"description": "Path of the background image",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": ""
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "color",
|
||
|
"in": "query",
|
||
|
"description": "Color for the background",
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"nullable": true
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "type",
|
||
|
"in": "path",
|
||
|
"description": "Type of background",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "OCS-APIRequest",
|
||
|
"in": "header",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "true"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Background set successfully",
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/Background"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/index.php/apps/theming/background/custom": {
|
||
|
"delete": {
|
||
|
"operationId": "user_theme-delete-background",
|
||
|
"summary": "Delete the background",
|
||
|
"tags": [
|
||
|
"user_theme"
|
||
|
],
|
||
|
"security": [
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "OCS-APIRequest",
|
||
|
"in": "header",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "true"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "",
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/Background"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/ocs/v2.php/apps/theming/api/v1/theme/{themeId}/enable": {
|
||
|
"put": {
|
||
|
"operationId": "user_theme-enable-theme",
|
||
|
"summary": "Enable theme",
|
||
|
"tags": [
|
||
|
"user_theme"
|
||
|
],
|
||
|
"security": [
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "themeId",
|
||
|
"in": "path",
|
||
|
"description": "the theme ID",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "OCS-APIRequest",
|
||
|
"in": "header",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "true"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Theme enabled successfully",
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"ocs"
|
||
|
],
|
||
|
"properties": {
|
||
|
"ocs": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"meta",
|
||
|
"data"
|
||
|
],
|
||
|
"properties": {
|
||
|
"meta": {
|
||
|
"$ref": "#/components/schemas/OCSMeta"
|
||
|
},
|
||
|
"data": {}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/ocs/v2.php/apps/theming/api/v1/theme/{themeId}": {
|
||
|
"delete": {
|
||
|
"operationId": "user_theme-disable-theme",
|
||
|
"summary": "Disable theme",
|
||
|
"tags": [
|
||
|
"user_theme"
|
||
|
],
|
||
|
"security": [
|
||
|
{
|
||
|
"bearer_auth": []
|
||
|
},
|
||
|
{
|
||
|
"basic_auth": []
|
||
|
}
|
||
|
],
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "themeId",
|
||
|
"in": "path",
|
||
|
"description": "the theme ID",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "OCS-APIRequest",
|
||
|
"in": "header",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"default": "true"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Theme disabled successfully",
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"ocs"
|
||
|
],
|
||
|
"properties": {
|
||
|
"ocs": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"meta",
|
||
|
"data"
|
||
|
],
|
||
|
"properties": {
|
||
|
"meta": {
|
||
|
"$ref": "#/components/schemas/OCSMeta"
|
||
|
},
|
||
|
"data": {}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"tags": [
|
||
|
{
|
||
|
"name": "theming",
|
||
|
"description": "Class ThemingController\nhandle ajax requests to update the theme"
|
||
|
}
|
||
|
]
|
||
|
}
|