diff options
author | jld3103 <jld3103yt@gmail.com> | 2023-05-24 16:34:27 +0200 |
---|---|---|
committer | jld3103 <jld3103yt@gmail.com> | 2023-05-24 16:51:38 +0200 |
commit | 4218f719eac246441dbe0b323635fb653ebcd482 (patch) | |
tree | e9f78bed6bdd5af5540a4b7178ed87605df35df9 /apps/dashboard | |
parent | 294035f523a0149dcab5eb301ec39e99d09f7adb (diff) | |
download | nextcloud-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.json | 293 |
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 |