A framework for building convergent cross-platform Nextcloud clients using Flutter.
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.
 
 

445 lines
11 KiB

{
"openapi": "3.0.3",
"info": {
"title": "uppush",
"description": "Use Nextcloud as a push provider for mobile phones' notifications",
"license": {
"name": "agpl"
},
"version": "1.4.0"
},
"paths": {
"/index.php/apps/uppush": {
"get": {
"tags": [
"unified_push_provider"
],
"summary": "Check if the UnifiedPush provider is present",
"operationId": "unified_push_provider-check",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"required": [
"success"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/keepalive": {
"put": {
"tags": [
"unified_push_provider"
],
"summary": "Set keepalive interval",
"description": "This endpoint requires admin access",
"operationId": "unified_push_provider-set-keepalive",
"parameters": [
{
"name": "keepalive",
"in": "query",
"description": "Keep alive value in seconds",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"required": [
"success"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/device": {
"put": {
"tags": [
"unified_push_provider"
],
"summary": "Request to create a new deviceId",
"operationId": "unified_push_provider-create-device",
"parameters": [
{
"name": "deviceName",
"in": "query",
"description": "Name of the device",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"required": [
"success",
"deviceId"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"deviceId": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/device/{deviceId}": {
"parameters": [
{
"name": "deviceId",
"in": "path",
"description": "ID of the device",
"required": true,
"schema": {
"type": "string"
}
}
],
"get": {
"tags": [
"unified_push_provider"
],
"summary": "Request to get push messages",
"description": "This is a public page since it has to be handle by the non-connected app (NextPush app and not Nextcloud-app)",
"operationId": "unified_push_provider-sync-device",
"responses": {
"401": {
"description": "Missing permissions to sync device",
"content": {
"application/json": {
"schema": {
"required": [
"success"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
},
"delete": {
"tags": [
"unified_push_provider"
],
"summary": "Delete a device",
"operationId": "unified_push_provider-delete-device",
"responses": {
"200": {
"description": "Device deleted successfully",
"content": {
"application/json": {
"schema": {
"required": [
"success"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/app": {
"put": {
"tags": [
"unified_push_provider"
],
"summary": "Create an authorization token for a new 3rd party service",
"operationId": "unified_push_provider-create-app",
"parameters": [
{
"name": "deviceId",
"in": "query",
"description": "ID of the device",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "appName",
"in": "query",
"description": "Name of the app",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "App created successfully",
"content": {
"application/json": {
"schema": {
"required": [
"success",
"token"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"token": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/app/{token}": {
"parameters": [
{
"name": "token",
"in": "path",
"description": "Token of the app",
"required": true,
"schema": {
"type": "string"
}
}
],
"delete": {
"tags": [
"unified_push_provider"
],
"summary": "Delete an authorization token",
"operationId": "unified_push_provider-delete-app",
"responses": {
"200": {
"description": "App deleted successfully",
"content": {
"application/json": {
"schema": {
"required": [
"success"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/push/{token}": {
"parameters": [
{
"name": "token",
"in": "path",
"description": "Token of the app to push to",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"tags": [
"unified_push_provider"
],
"summary": "Receive notifications from 3rd parties",
"operationId": "unified_push_provider-push",
"responses": {
"201": {
"description": "Notification pushed successfully",
"content": {
"application/json": {
"schema": {
"required": [
"success"
],
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
}
}
}
}
}
},
"get": {
"tags": [
"unified_push_provider"
],
"summary": "Unifiedpush discovery Following specifications",
"operationId": "unified_push_provider-unifiedpush-discovery",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"required": [
"unifiedpush"
],
"type": "object",
"properties": {
"unifiedpush": {
"required": [
"version"
],
"type": "object",
"properties": {
"version": {
"type": "integer"
}
}
}
}
}
}
}
}
}
}
},
"/index.php/apps/uppush/gateway/matrix": {
"get": {
"tags": [
"unified_push_provider"
],
"summary": "Matrix Gateway discovery",
"operationId": "unified_push_provider-gateway-matrix-discovery",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"required": [
"unifiedpush"
],
"type": "object",
"properties": {
"unifiedpush": {
"required": [
"gateway"
],
"type": "object",
"properties": {
"gateway": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"post": {
"tags": [
"unified_push_provider"
],
"summary": "Matrix Gateway",
"operationId": "unified_push_provider-gateway-matrix",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"required": [
"rejected"
],
"type": "object",
"properties": {
"rejected": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
},
"components": {
"schemas": {},
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
}
}
},
"security": [
{
"basic_auth": []
}
],
"tags": []
}