summaryrefslogtreecommitdiffstats
path: root/apps/dashboard
diff options
context:
space:
mode:
authorjld3103 <jld3103yt@gmail.com>2023-05-24 16:34:27 +0200
committerjld3103 <jld3103yt@gmail.com>2023-05-24 16:51:38 +0200
commit4218f719eac246441dbe0b323635fb653ebcd482 (patch)
treee9f78bed6bdd5af5540a4b7178ed87605df35df9 /apps/dashboard
parent294035f523a0149dcab5eb301ec39e99d09f7adb (diff)
downloadnextcloud-server-4218f719eac246441dbe0b323635fb653ebcd482.tar.gz
nextcloud-server-4218f719eac246441dbe0b323635fb653ebcd482.zip
Add OpenAPI specs
Signed-off-by: jld3103 <jld3103yt@gmail.com>
Diffstat (limited to 'apps/dashboard')
-rw-r--r--apps/dashboard/openapi.json293
1 files changed, 293 insertions, 0 deletions
diff --git a/apps/dashboard/openapi.json b/apps/dashboard/openapi.json
new file mode 100644
index 00000000000..cf706f1f55d
--- /dev/null
+++ b/apps/dashboard/openapi.json
@@ -0,0 +1,293 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "dashboard",
+ "version": "0.0.1",
+ "description": "Dashboard app",
+ "license": {
+ "name": "agpl"
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "basic_auth": {
+ "type": "http",
+ "scheme": "basic"
+ },
+ "bearer_auth": {
+ "type": "http",
+ "scheme": "bearer"
+ }
+ },
+ "schemas": {
+ "OCSMeta": {
+ "type": "object",
+ "required": [
+ "status",
+ "statuscode"
+ ],
+ "properties": {
+ "status": {
+ "type": "string"
+ },
+ "statuscode": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "totalitems": {
+ "type": "string"
+ },
+ "itemsperpage": {
+ "type": "string"
+ }
+ }
+ },
+ "Widget": {
+ "type": "object",
+ "required": [
+ "id",
+ "title",
+ "order",
+ "icon_class",
+ "icon_url",
+ "widget_url",
+ "item_icons_round"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "order": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "icon_class": {
+ "type": "string"
+ },
+ "icon_url": {
+ "type": "string"
+ },
+ "widget_url": {
+ "type": "string",
+ "nullable": true
+ },
+ "item_icons_round": {
+ "type": "boolean"
+ },
+ "buttons": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "type",
+ "text",
+ "link"
+ ],
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "link": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "WidgetItem": {
+ "type": "object",
+ "required": [
+ "subtitle",
+ "title",
+ "link",
+ "iconUrl",
+ "sinceId"
+ ],
+ "properties": {
+ "subtitle": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "link": {
+ "type": "string"
+ },
+ "iconUrl": {
+ "type": "string"
+ },
+ "sinceId": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "paths": {
+ "/ocs/v2.php/apps/dashboard/api/v1/widgets": {
+ "get": {
+ "operationId": "dashboard_api-get-widgets",
+ "summary": "Get the widgets",
+ "tags": [
+ "dashboard_api"
+ ],
+ "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": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Widget"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/ocs/v2.php/apps/dashboard/api/v1/widget-items": {
+ "get": {
+ "operationId": "dashboard_api-get-widget-items",
+ "summary": "Get the items for the widgets",
+ "tags": [
+ "dashboard_api"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sinceIds",
+ "in": "query",
+ "description": "Array indexed by widget Ids, contains date/id from which we want the new items",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "Limit number of result items per widget",
+ "schema": {
+ "type": "integer",
+ "format": "int64",
+ "default": 7
+ }
+ },
+ {
+ "name": "widgets",
+ "in": "query",
+ "description": "Limit results to specific widgets",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "default": "true"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WidgetItem"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": []
+} \ No newline at end of file