nextcloud_server/apps/oauth2/openapi.json

226 lines
8.0 KiB
JSON

{
"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",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "refresh_token",
"in": "query",
"description": "Refresh token",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "client_id",
"in": "query",
"description": "Client ID",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "client_secret",
"in": "query",
"description": "Client secret",
"schema": {
"type": "string",
"nullable": true
}
}
],
"responses": {
"500": {
"description": "",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"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": []
}