summaryrefslogtreecommitdiffstats
path: root/apps/oauth2
diff options
context:
space:
mode:
authorjld3103 <jld3103yt@gmail.com>2023-05-24 16:34:27 +0200
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>2023-05-24 16:25:28 +0000
commitb683f77842e24bb7bb44c8d131a96297b18d4104 (patch)
tree0f0218ea86060901e0b6b7dafb0943fe9adb9508 /apps/oauth2
parent16a1ec629fc816e37ff6e19f0b3c72fb8658dd5f (diff)
downloadnextcloud-server-b683f77842e24bb7bb44c8d131a96297b18d4104.tar.gz
nextcloud-server-b683f77842e24bb7bb44c8d131a96297b18d4104.zip
Add OpenAPI specs
Signed-off-by: jld3103 <jld3103yt@gmail.com>
Diffstat (limited to 'apps/oauth2')
-rw-r--r--apps/oauth2/openapi.json216
1 files changed, 216 insertions, 0 deletions
diff --git a/apps/oauth2/openapi.json b/apps/oauth2/openapi.json
new file mode 100644
index 00000000000..57a7bee1a64
--- /dev/null
+++ b/apps/oauth2/openapi.json
@@ -0,0 +1,216 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "oauth2",
+ "version": "0.0.1",
+ "description": "Allows OAuth2 compatible authentication from other web applications.",
+ "license": {
+ "name": "agpl"
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "basic_auth": {
+ "type": "http",
+ "scheme": "basic"
+ },
+ "bearer_auth": {
+ "type": "http",
+ "scheme": "bearer"
+ }
+ },
+ "schemas": []
+ },
+ "paths": {
+ "/index.php/apps/oauth2/authorize": {
+ "get": {
+ "operationId": "login_redirector-authorize",
+ "summary": "Authorize the user",
+ "tags": [
+ "login_redirector"
+ ],
+ "security": [
+ {},
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "client_id",
+ "in": "query",
+ "description": "Client ID",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "state",
+ "in": "query",
+ "description": "State of the flow",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "response_type",
+ "in": "query",
+ "description": "Response type for the flow",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Client not found",
+ "content": {
+ "text/html": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "303": {
+ "description": "Redirect to login URL",
+ "headers": {
+ "Location": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/index.php/apps/oauth2/api/v1/token": {
+ "post": {
+ "operationId": "oauth_api-get-token",
+ "summary": "Get a token",
+ "tags": [
+ "oauth_api"
+ ],
+ "security": [
+ {},
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "grant_type",
+ "in": "query",
+ "description": "Token type that should be granted",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "code",
+ "in": "query",
+ "description": "Code of the flow",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "refresh_token",
+ "in": "query",
+ "description": "Refresh token",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "client_id",
+ "in": "query",
+ "description": "Client ID",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "client_secret",
+ "in": "query",
+ "description": "Client secret",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Token returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "access_token",
+ "token_type",
+ "expires_in",
+ "refresh_token",
+ "user_id"
+ ],
+ "properties": {
+ "access_token": {
+ "type": "string"
+ },
+ "token_type": {
+ "type": "string"
+ },
+ "expires_in": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "refresh_token": {
+ "type": "string"
+ },
+ "user_id": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Getting token is not possible",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": []
+} \ No newline at end of file