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.
1557 lines
64 KiB
1557 lines
64 KiB
{ |
|
"openapi": "3.1.0", |
|
"info": { |
|
"title": "notifications", |
|
"version": "0.0.1", |
|
"description": "This app provides a backend and frontend for the notification API available in Nextcloud.", |
|
"license": { |
|
"name": "agpl", |
|
"identifier": "AGPL-3.0-only" |
|
} |
|
}, |
|
"components": { |
|
"securitySchemes": { |
|
"basic_auth": { |
|
"type": "http", |
|
"scheme": "basic" |
|
}, |
|
"bearer_auth": { |
|
"type": "http", |
|
"scheme": "bearer" |
|
} |
|
}, |
|
"schemas": { |
|
"Capabilities": { |
|
"type": "object", |
|
"required": [ |
|
"notifications" |
|
], |
|
"properties": { |
|
"notifications": { |
|
"type": "object", |
|
"required": [ |
|
"ocs-endpoints", |
|
"push", |
|
"admin-notifications" |
|
], |
|
"properties": { |
|
"ocs-endpoints": { |
|
"type": "array", |
|
"items": { |
|
"type": "string" |
|
} |
|
}, |
|
"push": { |
|
"type": "array", |
|
"items": { |
|
"type": "string" |
|
} |
|
}, |
|
"admin-notifications": { |
|
"type": "array", |
|
"items": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"Notification": { |
|
"type": "object", |
|
"required": [ |
|
"notification_id", |
|
"app", |
|
"user", |
|
"datetime", |
|
"object_type", |
|
"object_id", |
|
"subject", |
|
"message", |
|
"link", |
|
"actions" |
|
], |
|
"properties": { |
|
"notification_id": { |
|
"type": "integer", |
|
"format": "int64" |
|
}, |
|
"app": { |
|
"type": "string" |
|
}, |
|
"user": { |
|
"type": "string" |
|
}, |
|
"datetime": { |
|
"type": "string" |
|
}, |
|
"object_type": { |
|
"type": "string" |
|
}, |
|
"object_id": { |
|
"type": "string" |
|
}, |
|
"subject": { |
|
"type": "string" |
|
}, |
|
"message": { |
|
"type": "string" |
|
}, |
|
"link": { |
|
"type": "string" |
|
}, |
|
"actions": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/NotificationAction" |
|
} |
|
}, |
|
"subjectRich": { |
|
"type": "string" |
|
}, |
|
"subjectRichParameters": { |
|
"type": "object", |
|
"additionalProperties": { |
|
"type": "object" |
|
} |
|
}, |
|
"messageRich": { |
|
"type": "string" |
|
}, |
|
"messageRichParameters": { |
|
"type": "object", |
|
"additionalProperties": { |
|
"type": "object" |
|
} |
|
}, |
|
"icon": { |
|
"type": "string" |
|
}, |
|
"shouldNotify": { |
|
"type": "boolean" |
|
} |
|
} |
|
}, |
|
"NotificationAction": { |
|
"type": "object", |
|
"required": [ |
|
"label", |
|
"link", |
|
"type", |
|
"primary" |
|
], |
|
"properties": { |
|
"label": { |
|
"type": "string" |
|
}, |
|
"link": { |
|
"type": "string" |
|
}, |
|
"type": { |
|
"type": "string" |
|
}, |
|
"primary": { |
|
"type": "boolean" |
|
} |
|
} |
|
}, |
|
"OCSMeta": { |
|
"type": "object", |
|
"required": [ |
|
"status", |
|
"statuscode" |
|
], |
|
"properties": { |
|
"status": { |
|
"type": "string" |
|
}, |
|
"statuscode": { |
|
"type": "integer" |
|
}, |
|
"message": { |
|
"type": "string" |
|
}, |
|
"totalitems": { |
|
"type": "string" |
|
}, |
|
"itemsperpage": { |
|
"type": "string" |
|
} |
|
} |
|
}, |
|
"PushDevice": { |
|
"type": "object", |
|
"required": [ |
|
"publicKey", |
|
"deviceIdentifier", |
|
"signature" |
|
], |
|
"properties": { |
|
"publicKey": { |
|
"type": "string" |
|
}, |
|
"deviceIdentifier": { |
|
"type": "string" |
|
}, |
|
"signature": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"paths": { |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/notifications": { |
|
"get": { |
|
"operationId": "endpoint-list-notifications", |
|
"summary": "Get all notifications", |
|
"tags": [ |
|
"endpoint" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"description": "Version of the API to use", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v1", |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Notifications returned", |
|
"headers": { |
|
"X-Nextcloud-User-Status": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
}, |
|
"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/Notification" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"204": { |
|
"description": "No app uses notifications", |
|
"headers": { |
|
"X-Nextcloud-User-Status": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
}, |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"delete": { |
|
"operationId": "endpoint-delete-all-notifications", |
|
"summary": "Delete all notifications", |
|
"tags": [ |
|
"endpoint" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v1", |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "All notifications deleted successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"403": { |
|
"description": "Deleting notification for impersonated user is not allowed", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/notifications/{id}": { |
|
"get": { |
|
"operationId": "endpoint-get-notification", |
|
"summary": "Get a notification", |
|
"tags": [ |
|
"endpoint" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"description": "Version of the API to use", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v1", |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "id", |
|
"in": "path", |
|
"description": "ID of the notification", |
|
"required": true, |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Notification returned", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Notification" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"404": { |
|
"description": "Notification not found", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"delete": { |
|
"operationId": "endpoint-delete-notification", |
|
"summary": "Delete a notification", |
|
"tags": [ |
|
"endpoint" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v1", |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "id", |
|
"in": "path", |
|
"description": "ID of the notification", |
|
"required": true, |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Notification deleted successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"403": { |
|
"description": "Deleting notification for impersonated user is not allowed", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"404": { |
|
"description": "Notification not found", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/notifications/exists": { |
|
"post": { |
|
"operationId": "endpoint-confirm-ids-for-user", |
|
"summary": "Check if notification IDs exist", |
|
"tags": [ |
|
"endpoint" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "ids[]", |
|
"in": "query", |
|
"description": "IDs of the notifications to check", |
|
"required": true, |
|
"schema": { |
|
"type": "array", |
|
"items": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
} |
|
}, |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"description": "Version of the API to use", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v1", |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Existing notification IDs returned", |
|
"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": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "Too many notification IDs requested", |
|
"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": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/push": { |
|
"post": { |
|
"operationId": "push-register-device", |
|
"summary": "Register device for push notifications", |
|
"tags": [ |
|
"push" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "pushTokenHash", |
|
"in": "query", |
|
"description": "Hash of the push token", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "devicePublicKey", |
|
"in": "query", |
|
"description": "Public key of the device", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "proxyServer", |
|
"in": "query", |
|
"description": "Proxy server to be used", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Device was already registered", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/PushDevice" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"201": { |
|
"description": "Device registered successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/PushDevice" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "Registering device is not possible", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"type": "object", |
|
"required": [ |
|
"message" |
|
], |
|
"properties": { |
|
"message": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"401": { |
|
"description": "Missing permissions to register device", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"delete": { |
|
"operationId": "push-remove-device", |
|
"summary": "Remove a device from push notifications", |
|
"tags": [ |
|
"push" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "No device registered", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"202": { |
|
"description": "Device removed successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"401": { |
|
"description": "Missing permissions to remove device", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "Removing device is not possible", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"type": "object", |
|
"required": [ |
|
"message" |
|
], |
|
"properties": { |
|
"message": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/admin_notifications/{userId}": { |
|
"post": { |
|
"operationId": "api-generate-notification", |
|
"summary": "Generate a notification for a user", |
|
"description": "This endpoint requires admin access", |
|
"tags": [ |
|
"api" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "shortMessage", |
|
"in": "query", |
|
"description": "Subject of the notification", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "longMessage", |
|
"in": "query", |
|
"description": "Message of the notification", |
|
"schema": { |
|
"type": "string", |
|
"default": "" |
|
} |
|
}, |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v1", |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "userId", |
|
"in": "path", |
|
"description": "ID of the user", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Notification generated successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "Generating notification is not possible", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"404": { |
|
"description": "User not found", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"500": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"nullable": true |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/settings": { |
|
"post": { |
|
"operationId": "settings-personal", |
|
"summary": "Update personal notification settings", |
|
"tags": [ |
|
"settings" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "batchSetting", |
|
"in": "query", |
|
"description": "How often E-mails about missed notifications should be sent (hourly: 1; every three hours: 2; daily: 3; weekly: 4)", |
|
"required": true, |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
}, |
|
{ |
|
"name": "soundNotification", |
|
"in": "query", |
|
"description": "Enable sound for notifications ('yes' or 'no')", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "soundTalk", |
|
"in": "query", |
|
"description": "Enable sound for Talk notifications ('yes' or 'no')", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Personal settings updated", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/notifications/api/{apiVersion}/settings/admin": { |
|
"post": { |
|
"operationId": "settings-admin", |
|
"summary": "Update default notification settings for new users", |
|
"description": "This endpoint requires admin access", |
|
"tags": [ |
|
"settings" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "batchSetting", |
|
"in": "query", |
|
"description": "How often E-mails about missed notifications should be sent (hourly: 1; every three hours: 2; daily: 3; weekly: 4)", |
|
"required": true, |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64" |
|
} |
|
}, |
|
{ |
|
"name": "soundNotification", |
|
"in": "query", |
|
"description": "Enable sound for notifications ('yes' or 'no')", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "soundTalk", |
|
"in": "query", |
|
"description": "Enable sound for Talk notifications ('yes' or 'no')", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "apiVersion", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string", |
|
"enum": [ |
|
"v2" |
|
], |
|
"default": "v2" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Admin settings updated", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"tags": [] |
|
} |