From bfa7836f5b094f991ca3b7225dff8c00e331027a Mon Sep 17 00:00:00 2001 From: jld3103 Date: Sat, 1 Jul 2023 15:48:11 +0200 Subject: [PATCH] tool,spec_templates,specs: Stop generating template specs --- packages/spec_templates/.gitignore | 10 - packages/spec_templates/LICENSE | 1 - packages/spec_templates/analysis_options.yaml | 1 - packages/spec_templates/bin/generate.dart | 500 --- .../spec_templates/lib/method_parameter.dart | 93 - packages/spec_templates/lib/openapi_spec.dart | 253 -- packages/spec_templates/pubspec.yaml | 16 - specs/templates/appinfo_core.xml | 9 - specs/templates/core.json | 2882 ----------------- specs/templates/news.json | 2657 --------------- specs/templates/notes.json | 821 ----- specs/templates/notifications.json | 401 --- specs/templates/provisioning_api.json | 1522 --------- specs/templates/user_status.json | 316 -- tool/generate-specs.sh | 125 - 15 files changed, 9607 deletions(-) delete mode 100644 packages/spec_templates/.gitignore delete mode 120000 packages/spec_templates/LICENSE delete mode 100644 packages/spec_templates/analysis_options.yaml delete mode 100644 packages/spec_templates/bin/generate.dart delete mode 100644 packages/spec_templates/lib/method_parameter.dart delete mode 100644 packages/spec_templates/lib/openapi_spec.dart delete mode 100644 packages/spec_templates/pubspec.yaml delete mode 100644 specs/templates/appinfo_core.xml delete mode 100644 specs/templates/core.json delete mode 100644 specs/templates/news.json delete mode 100644 specs/templates/notes.json delete mode 100644 specs/templates/notifications.json delete mode 100644 specs/templates/provisioning_api.json delete mode 100644 specs/templates/user_status.json delete mode 100755 tool/generate-specs.sh diff --git a/packages/spec_templates/.gitignore b/packages/spec_templates/.gitignore deleted file mode 100644 index 65c34dc8..00000000 --- a/packages/spec_templates/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Files and directories created by pub. -.dart_tool/ -.packages - -# Conventional directory for build outputs. -build/ - -# Omit committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/spec_templates/LICENSE b/packages/spec_templates/LICENSE deleted file mode 120000 index 30cff740..00000000 --- a/packages/spec_templates/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE \ No newline at end of file diff --git a/packages/spec_templates/analysis_options.yaml b/packages/spec_templates/analysis_options.yaml deleted file mode 100644 index 0ed2fb9f..00000000 --- a/packages/spec_templates/analysis_options.yaml +++ /dev/null @@ -1 +0,0 @@ -include: package:nit_picking/dart.yaml diff --git a/packages/spec_templates/bin/generate.dart b/packages/spec_templates/bin/generate.dart deleted file mode 100644 index dee3482c..00000000 --- a/packages/spec_templates/bin/generate.dart +++ /dev/null @@ -1,500 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; - -import 'package:path/path.dart' as p; -import 'package:spec_templates/method_parameter.dart'; -import 'package:spec_templates/openapi_spec.dart'; -import 'package:xml/xml.dart'; - -Future main(final List args) async { - final tmpDirectory = Directory(p.join(Directory.systemTemp.path, 'nextcloud-neon')); - if (!tmpDirectory.existsSync()) { - tmpDirectory.createSync(); - } - - final path = args[0]; - final isCore = args[1] == 'true'; - - final appDirectory = Directory(p.absolute(p.normalize(path))); - if (!appDirectory.existsSync()) { - throw Exception('App directory $appDirectory not found'); - } - late String infoXmlPath; - if (isCore) { - infoXmlPath = p.join( - 'specs', - 'templates', - 'appinfo_core.xml', - ); - } else { - infoXmlPath = p.join( - appDirectory.path, - 'appinfo', - 'info.xml', - ); - } - - final document = XmlDocument.parse(File(infoXmlPath).readAsStringSync()); - final info = document.findElements('info').toList().single; - final id = info.findElements('id').toList().single.innerText; - final name = info.findElements('name').toList().single.innerText; - final summary = info.findElements('summary').toList().single.innerText; - final version = info.findElements('version').toList().single.innerText; - final license = info.findElements('licence').toList().single.innerText; - - late String routesPhpPath; - if (isCore) { - routesPhpPath = p.join( - appDirectory.path, - 'routes.php', - ); - } else { - routesPhpPath = p.join( - appDirectory.path, - 'appinfo', - 'routes.php', - ); - } - - final routes = await _parseRoutesFile(tmpDirectory, routesPhpPath); - - final paths = {}; - - final hasRoutes = routes.keys.contains('routes'); - final hasOCS = routes.keys.contains('ocs'); - if (!hasRoutes && !hasOCS) { - throw Exception('One of ocs and routes is required, but only found: "${routes.keys.join('", "')}"'); - } - - final routesBasePath = '${isCore ? '' : '/apps'}/$id'; - final ocsBasePath = '/ocs/v2.php$routesBasePath'; - - for (final k in routes.keys) { - for (final route in routes[k]!) { - final name = route['name'] as String; - var url = route['url'] as String; - // ignore: avoid_dynamic_calls - final requirements = route['requirements']?.cast() as Map?; - if (!url.startsWith('/')) { - url = '/$url'; - } - if (url.endsWith('/')) { - url = url.substring(0, url.length - 1); - } - if (k == 'routes') { - url = '$routesBasePath$url'; - } else if (k == 'ocs') { - url = '$ocsBasePath$url'; - } - final verb = route['verb'] as String? ?? 'GET'; - - if (name.startsWith('page#') || name.startsWith('admin#')) { - continue; - } - - if (verb == 'GET' && url == '/') { - continue; - } - - final methodName = _getMethodName(name.split('#')[1]); - final controllerName = _getControllerName(name.split('#')[0]); - late String controllerFilePath; - if (isCore) { - controllerFilePath = p.join( - appDirectory.path, - 'Controller', - '$controllerName.php', - ); - } else { - controllerFilePath = p.join( - appDirectory.path, - 'lib', - 'Controller', - '$controllerName.php', - ); - } - final controllerContent = File(controllerFilePath).readAsStringSync().replaceAll('\n', ''); - - if (methodName == 'preflightedCors') { - continue; - } - - final reg = - RegExp('\\/\\*\\*((?:(?!\\/\\*\\*).)*?)\\*\\/(?:(?!\\*\\/).)*?public function $methodName\\(([^\\)]*)\\)'); - final match = reg.allMatches(controllerContent).single; - - final docParameters = []; - var current = ''; - for (final docLine in match - .group(1)! - .split('*') - .map((final s) { - var r = s.trim(); - while (r.contains(' ')) { - r = r.replaceAll(' ', ' '); - } - return r; - }) - .where((final s) => s.isNotEmpty) - .toList()) { - if (docLine.startsWith('@')) { - if (current != '') { - docParameters.add(current); - } - } - - if (docLine.startsWith('@return')) { - current = ''; - break; - } - - if (docLine.startsWith('@param')) { - current = docLine; - } else if (current != '') { - current += ' $docLine'; - } - } - if (current != '') { - docParameters.add(current); - } - - final methodParameters = _getMethodParameters( - controllerName, - methodName, - match.group(2)!.split(',').map((final s) => s.trim()).where((final s) => s.isNotEmpty).toList(), - docParameters, - ); - - final parameterNames = RegExp('{[^}]*}').allMatches(url).map((final m) { - final t = m.group(0)!; - return t.substring(1, t.length - 1); - }).toList(); - - final parameters = []; - for (final parameterName in parameterNames) { - MethodParameter? parameter; - for (final methodParameter in methodParameters) { - if (methodParameter.name == parameterName) { - parameter = methodParameter; - break; - } - } - if (parameter == null && (requirements == null || requirements[parameterName] == null)) { - throw Exception('Could not find parameter for $parameterName in $name'); - } - parameters.add( - Parameter( - name: parameterName, - in_: 'path', - required: true, - description: parameter?.description, - schema: { - 'type': parameter?.openAPIType ?? 'TODO', - if (parameter?.defaultValue != null) ...{ - 'default': parameter?.defaultValue, - }, - }, - ), - ); - } - final queryParameters = []; - for (final methodParameter in methodParameters) { - var found = false; - for (final parameter in parameters) { - if (parameter.name == methodParameter.name) { - found = true; - break; - } - } - if (!found) { - queryParameters.add(methodParameter); - } - } - - if (paths[url] == null) { - paths[url] = Path( - parameters: parameters, - ); - } - - final operation = Operation( - operationID: '${name.replaceAll('#', '-').toLowerCase()}-TODO', - tags: [id], - parameters: queryParameters.isNotEmpty - ? queryParameters - .map( - (final queryParameter) => Parameter( - name: queryParameter.name, - in_: 'query', - description: queryParameter.description, - required: !queryParameter.nullable && queryParameter.defaultValue == null, - schema: queryParameter.openAPIType == 'boolean' - ? { - // This is a quirk in Nextcloud where sending literal booleans in query parameters doesn't work and only integers work. - // See https://github.com/nextcloud/server/issues/34226 - 'type': 'integer', - if (queryParameter.defaultValue != null) ...{ - 'default': queryParameter.defaultValue == 'true' ? 1 : 0, - }, - } - : { - 'type': queryParameter.openAPIType ?? 'TODO', - if (queryParameter.defaultValue != null) ...{ - 'default': queryParameter.defaultValue, - }, - }, - ), - ) - .toList() - : null, - responses: { - 200: Response( - description: '', - content: { - 'application/json': MediaType( - schema: { - 'type': 'string', - }, - ), - }, - ), - }, - ); - - switch (verb) { - case 'DELETE': - paths[url]!.delete = operation; - break; - case 'GET': - paths[url]!.get = operation; - break; - case 'POST': - paths[url]!.post = operation; - break; - case 'PUT': - paths[url]!.put = operation; - break; - case 'PATCH': - paths[url]!.patch = operation; - break; - case 'OPTIONS': - paths[url]!.options = operation; - break; - default: - throw Exception('Unsupported verb: $verb'); - } - } - } - - late String spdxIdentifier; - switch (license) { - case 'agpl': - spdxIdentifier = 'AGPL-3.0'; - break; - default: - throw Exception('Can not convert license name "$license" to a SPDX identifier'); - } - - File( - p.join( - 'specs', - 'templates', - '$id.json', - ), - ).writeAsStringSync( - const JsonEncoder.withIndent(' ').convert( - Spec( - version: '3.1.0', - info: Info( - title: name, - version: version, - description: summary, - license: License( - name: license, - identifier: spdxIdentifier, - ), - ), - paths: paths, - ).toMap(), - ), - ); -} - -String _getControllerName(final String name) { - final result = StringBuffer(); - - final parts = name.split(''); - for (var i = 0; i < parts.length; i++) { - var char = parts[i]; - final prevChar = i > 0 ? parts[i - 1] : null; - - if (char == '_') { - continue; - } - if (i == 0 || prevChar == '_') { - char = char.toUpperCase(); - } - result.write(char); - } - - result.write('Controller'); - - return result.toString(); -} - -String _getMethodName(final String name) { - final result = StringBuffer(); - - final parts = name.split(''); - for (var i = 0; i < parts.length; i++) { - var char = parts[i]; - final prevChar = i > 0 ? parts[i - 1] : null; - - if (char == '_') { - continue; - } - if (prevChar == '_') { - char = char.toUpperCase(); - } - result.write(char); - } - - return result.toString(); -} - -List _getMethodParameters( - final String controllerName, - final String methodName, - final List parameters, - final List docs, -) { - var reg = RegExp(r'@param ((?:[a-z|\[\]]+ )?)(\$?)([a-zA-Z_]+)((?: .*)?)'); - final docMatches = []; - for (final doc in docs) { - reg.allMatches(doc).forEach(docMatches.add); - } - - final result = []; - - reg = RegExp(r'(\??)((?:[a-z-A-Z]+ )?)\$([a-zA-Z_]+)((?: = .*)?)'); - for (final parameter in parameters) { - final match = reg.allMatches(parameter).single; - var nullable = match.group(1)!.isNotEmpty; - String? type = match.group(2)!.trim(); - if (type.isEmpty) { - type = null; - } - final name = match.group(3)!; - final defaultValue = match.group(4)!.replaceAll('=', '').trim(); - String? description; - - for (final doc in docMatches) { - final docName = doc.group(3)!.trim(); - if (docName == name) { - final docType = doc.group(1)!.trim(); - final docDescription = doc.group(4)!.trim(); - if (docDescription.isNotEmpty) { - description = docDescription; - } - if (type == null && docType.isNotEmpty) { - final parts = docType.split('|').where((final p) => p.isNotEmpty); - if (parts.contains('null')) { - nullable = true; - } - final nonNullableParts = parts.where((final p) => p != 'null'); - if (nonNullableParts.length > 1) { - if (nonNullableParts.contains('string')) { - // Catch all - type = 'string'; - continue; - } - throw Exception( - 'Can not determine reliable type for "$docType" for parameter "$name" of method "$methodName" in controller "$controllerName"', - ); - } else { - type = nonNullableParts.single; - } - } - } - } - - result.add( - MethodParameter( - type: type, - nullable: nullable, - name: name, - defaultValue: defaultValue.isNotEmpty ? defaultValue : null, - description: description, - controllerName: controllerName, - methodName: methodName, - ), - ); - } - - return result; -} - -Future>>> _parseRoutesFile( - final Directory tmpDirectory, - final String path, -) async { - final content = File(path).readAsStringSync(); - - late String routes; - if (content.contains('registerRoutes')) { - routes = RegExp(r'registerRoutes\(\$this, (\[[^;]*)\);').firstMatch(content)!.group(1)!; - } else if (content.contains('return [')) { - routes = RegExp(r'return (\[[^;]*);').firstMatch(content)!.group(1)!; - } else if (content.contains('return array_merge_recursive(')) { - final includes = RegExp(r"include\(__DIR__ . '/([^']*)'\),") - .allMatches(RegExp(r'return array_merge_recursive\(\n(.*)\n\);', dotAll: true).firstMatch(content)!.group(1)!) - .map((final match) => match.group(1)!) - .toList(); - - final out = >>{}; - for (final include in includes) { - final routes = await _parseRoutesFile(tmpDirectory, p.join(File(path).parent.path, include)); - for (final key in routes.keys) { - if (!out.containsKey(key)) { - out[key] = []; - } - out[key]!.addAll(routes[key]!); - } - } - - return out; - } else { - throw Exception('Unsupported routes format'); - } - - final variables = RegExp(r'^(\$(requirements[a-zA-Z]*) =[^;]*;)$', multiLine: true) - .allMatches(content) - .map((final match) => match.group(1)!) - .toList(); - - final phpFile = File(p.join(tmpDirectory.path, p.basename(path))); - final jsonFile = File(p.join(tmpDirectory.path, p.basename(path).replaceAll('.php', '.json'))); - - phpFile.writeAsStringSync( - ''' - -''', - ); - final result = await Process.run('php', [phpFile.path]); - if (result.exitCode != 0) { - throw Exception('Failed to run php: ${result.stderr}'); - } - - return (json.decode(jsonFile.readAsStringSync()) as Map).map( - (final key, final value) => MapEntry>>( - key, - (value as List).map((final a) => a as Map).toList(), - ), - ); -} diff --git a/packages/spec_templates/lib/method_parameter.dart b/packages/spec_templates/lib/method_parameter.dart deleted file mode 100644 index 1e3e1eae..00000000 --- a/packages/spec_templates/lib/method_parameter.dart +++ /dev/null @@ -1,93 +0,0 @@ -// ignore_for_file: public_member_api_docs - -class MethodParameter { - MethodParameter({ - required this.type, - required this.nullable, - required this.name, - required final String? defaultValue, - required this.description, - required this.controllerName, - required this.methodName, - }) { - if (defaultValue == 'null') { - nullable = true; - } - if (type == null && defaultValue != null && defaultValue != 'null') { - nullable = false; - if (int.tryParse(defaultValue) != null) { - type = 'int'; - } - if (defaultValue == 'true' || defaultValue == 'false') { - type = 'bool'; - } - if (defaultValue == "''" || defaultValue == '""') { - type = 'string'; - } - if (defaultValue == '[]') { - type = 'array'; - } - } - if (type == null) { - throw Exception( - 'Unknown type for parameter "$name" with default value "$defaultValue" of method "$methodName" in controller "$controllerName"', - ); - } - if (defaultValue != null && defaultValue != 'null') { - switch (type) { - case 'int': - this.defaultValue = int.tryParse(defaultValue); - break; - case 'bool': - this.defaultValue = defaultValue == 'true'; - break; - case 'string': - this.defaultValue = defaultValue.substring(1, defaultValue.length - 1); - break; - case 'array': - break; - default: - throw Exception('Unknown way to parse default value for type "$type"'); - } - } - } - - String? type; - bool nullable; - final String name; - dynamic defaultValue; - final String? description; - - final String controllerName; - final String methodName; - - String? get openAPIType { - if (type != null) { - if (type == 'string') { - return 'string'; - } - if (type == 'int' || type == 'integer') { - return 'integer'; - } - if (type == 'bool' || type == 'boolean') { - return 'boolean'; - } - if (type == 'array') { - return 'array'; - } - if (type == 'Chain') { - // Unsupported - return null; - } - - throw Exception( - 'Could not infer OpenAPI type from type "$type" for parameter "$name" of method "$methodName" in controller "$controllerName"', - ); - } - return null; - } - - @override - String toString() => - 'MethodParameter(type: $type, nullable: $nullable, name: $name, defaultValue: $defaultValue, description: $description, controllerName: $controllerName, methodName: $methodName)'; -} diff --git a/packages/spec_templates/lib/openapi_spec.dart b/packages/spec_templates/lib/openapi_spec.dart deleted file mode 100644 index e7b811f9..00000000 --- a/packages/spec_templates/lib/openapi_spec.dart +++ /dev/null @@ -1,253 +0,0 @@ -// ignore_for_file: public_member_api_docs - -class Spec { - Spec({ - required this.version, - required this.info, - this.tags, - this.paths, - }); - - Map toMap() => { - 'openapi': version, - 'info': info.toMap(), - if (tags != null) ...{ - 'tags': tags!.map((final tag) => {'name': tag}).toList(), - }, - if (paths != null) ...{ - 'paths': paths!.map((final key, final value) => MapEntry(key, value.toMap())), - }, - }; - - final String version; - final Info info; - final List? tags; - final Map? paths; -} - -class Info { - Info({ - required this.title, - required this.version, - this.description, - this.license, - }); - - Map toMap() => { - 'title': title, - 'version': version, - if (description != null) 'description': description, - if (license != null) 'license': license!.toMap(), - }; - - final String title; - final String version; - final String? description; - final License? license; -} - -class License { - License({ - required this.name, - this.identifier, - this.url, - }) : assert( - (identifier == null) != (url == null), - 'Specify either identifier or url', - ); - - Map toMap() => { - 'name': name, - if (identifier != null) 'identifier': identifier, - if (url != null) 'url': url, - }; - - final String name; - final String? identifier; - final String? url; -} - -class Server { - Server({ - required this.url, - this.description, - this.variables, - }); - - final String url; - final String? description; - final Map? variables; - - Map toMap() => { - 'url': url, - if (description != null) 'description': description, - if (variables != null) - 'variables': variables!.map( - (final key, final value) => MapEntry( - key, - value.toMap(), - ), - ), - }; -} - -class ServerVariable { - ServerVariable({ - required this.default_, - this.enum_, - this.description, - }); - - final String default_; - final List? enum_; - final String? description; - - Map toMap() => { - if (enum_ != null) 'enum': enum_, - 'default': default_, - if (description != null) 'description': description, - }; -} - -class Path { - Path({ - this.summary, - this.description, - this.servers, - this.parameters, - this.get, - this.put, - this.post, - this.delete, - this.options, - this.head, - this.patch, - this.trace, - }); - - Map toMap() => { - if (summary != null) 'summary': summary, - if (description != null) 'description': description, - if (servers != null) 'servers': servers!.map((final s) => s.toMap()).toList(), - if (parameters != null && parameters!.isNotEmpty) - 'parameters': parameters!.map((final p) => p.toMap()).toList(), - if (get != null) 'get': get!.toMap(), - if (put != null) 'put': put!.toMap(), - if (post != null) 'post': post!.toMap(), - if (delete != null) 'delete': delete!.toMap(), - if (options != null) 'options': options!.toMap(), - if (head != null) 'head': head!.toMap(), - if (patch != null) 'patch': patch!.toMap(), - if (trace != null) 'trace': trace!.toMap(), - }; - - final String? summary; - final String? description; - final List? servers; - final List? parameters; - Operation? get; - Operation? put; - Operation? post; - Operation? delete; - Operation? options; - Operation? head; - Operation? patch; - Operation? trace; -} - -class Parameter { - Parameter({ - required this.name, - required this.in_, - this.description, - this.required, - this.deprecated, - this.allowEmptyValue, - this.schema, - }); - - Map toMap() => { - 'name': name, - 'in': in_, - if (description != null) 'description': description, - if (required != null) 'required': required, - if (deprecated != null) 'deprecated': deprecated, - if (allowEmptyValue != null) 'allowEmptyValue': allowEmptyValue, - if (schema != null) 'schema': schema, - }; - - final String name; - final String in_; - final String? description; - final bool? required; - final bool? deprecated; - final bool? allowEmptyValue; - final Map? schema; -} - -class Operation { - Operation({ - this.operationID, - this.tags, - this.parameters, - this.responses, - }); - - Map toMap() => { - if (operationID != null) ...{ - 'operationId': operationID, - }, - if (tags != null) ...{ - 'tags': tags, - }, - if (parameters != null) ...{ - 'parameters': parameters!.map((final p) => p.toMap()).toList(), - }, - if (responses != null) ...{ - 'responses': responses!.map( - (final key, final value) => MapEntry( - key.toString(), - value.toMap(), - ), - ), - }, - }; - - final String? operationID; - final List? tags; - final List? parameters; - final Map? responses; -} - -class Response { - Response({ - required this.description, - this.content, - }); - - Map toMap() => { - 'description': description, - if (content != null) - 'content': content!.map( - (final key, final value) => MapEntry( - key, - value.toMap(), - ), - ), - }; - - final String description; - final Map? content; -} - -class MediaType { - MediaType({ - this.schema, - }); - - Map toMap() => { - 'schema': schema, - }; - - final Map? schema; -} diff --git a/packages/spec_templates/pubspec.yaml b/packages/spec_templates/pubspec.yaml deleted file mode 100644 index 4eae2c7f..00000000 --- a/packages/spec_templates/pubspec.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: spec_templates -version: 1.0.0 -publish_to: 'none' - -environment: - sdk: '>=3.0.0 <4.0.0' - -dependencies: - path: ^1.8.3 - xml: ^6.3.0 - -dev_dependencies: - nit_picking: - git: - url: https://github.com/stack11/dart_nit_picking - ref: 0b2ee0d diff --git a/specs/templates/appinfo_core.xml b/specs/templates/appinfo_core.xml deleted file mode 100644 index c28c028e..00000000 --- a/specs/templates/appinfo_core.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - core - Core - Core functionality of Nextcloud - - 27.0.0 - agpl - diff --git a/specs/templates/core.json b/specs/templates/core.json deleted file mode 100644 index e43b0105..00000000 --- a/specs/templates/core.json +++ /dev/null @@ -1,2882 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Core", - "version": "27.0.0", - "description": "Core functionality of Nextcloud", - "license": { - "name": "agpl", - "identifier": "AGPL-3.0" - } - }, - "paths": { - "/core/lostpassword/email": { - "post": { - "operationId": "lost-email-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "user", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/lostpassword/reset/form/{token}/{userId}": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "lost-resetform-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/lostpassword/set/{token}/{userId}": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "lost-setpassword-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "password", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "proceed", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/u/{targetUserId}": { - "parameters": [ - { - "name": "targetUserId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "profilepage-index-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/displaynames": { - "post": { - "operationId": "user-getdisplaynames-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "users", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar/{userId}/{size}/dark": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "size", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "avatar-getavatardark-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar/{userId}/{size}": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "size", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "avatar-getavatar-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar": { - "post": { - "operationId": "avatar-postavatar-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "path", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "avatar-deleteavatar-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar/cropped": { - "post": { - "operationId": "avatar-postcroppedavatar-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "crop", - "in": "query", - "required": false, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar/tmp": { - "get": { - "operationId": "avatar-gettmpavatar-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar/guest/{guestName}/{size}/dark": { - "parameters": [ - { - "name": "guestName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "size", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "guestavatar-getavatardark-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/avatar/guest/{guestName}/{size}": { - "parameters": [ - { - "name": "guestName", - "in": "path", - "description": "The guest name, e.g. \"Albert\"", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "size", - "in": "path", - "description": "The desired avatar size, e.g. 64 for 64x64px", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "guestavatar-getavatar-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "darkTheme", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/csrftoken": { - "get": { - "operationId": "csrftoken-index-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login": { - "get": { - "operationId": "login-showloginform-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "user", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "redirect_url", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "login-trylogin-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "loginChain", - "in": "query", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "user", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "password", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "redirect_url", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "timezone", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "timezone_offset", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/confirm": { - "post": { - "operationId": "login-confirmpassword-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "password", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/logout": { - "get": { - "operationId": "login-logout-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/flow": { - "get": { - "operationId": "clientflowlogin-showauthpickerpage-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "clientIdentifier", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "user", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "direct", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "clientflowlogin-generateapppassword-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "stateToken", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "clientIdentifier", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/flow/grant": { - "get": { - "operationId": "clientflowlogin-grantpage-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "stateToken", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "clientIdentifier", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "direct", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/flow/apptoken": { - "post": { - "operationId": "clientflowlogin-apptokenredirect-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "stateToken", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/v2/poll": { - "post": { - "operationId": "clientflowloginv2-poll-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "token", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/v2/flow": { - "get": { - "operationId": "clientflowloginv2-showauthpickerpage-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "user", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/v2/flow/{token}": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "clientflowloginv2-landing-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "user", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/v2/grant": { - "get": { - "operationId": "clientflowloginv2-grantpage-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "stateToken", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "clientflowloginv2-generateapppassword-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "stateToken", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/v2": { - "post": { - "operationId": "clientflowloginv2-init-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/v2/apptoken": { - "post": { - "operationId": "clientflowloginv2-apptokenredirect-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "stateToken", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/selectchallenge": { - "get": { - "operationId": "twofactorchallenge-selectchallenge-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "redirect_url", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/challenge/{challengeProviderId}": { - "parameters": [ - { - "name": "challengeProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "twofactorchallenge-showchallenge-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "redirect_url", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "twofactorchallenge-solvechallenge-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "challenge", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "redirect_url", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/setupchallenge": { - "get": { - "operationId": "twofactorchallenge-setupproviders-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/setupchallenge/{providerId}": { - "parameters": [ - { - "name": "providerId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "twofactorchallenge-setupprovider-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "twofactorchallenge-confirmprovidersetup-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/js/oc.js": { - "get": { - "operationId": "ocjs-getconfig-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/preview": { - "get": { - "operationId": "preview-getpreviewbyfileid-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "fileId", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": -1 - } - }, - { - "name": "x", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 32 - } - }, - { - "name": "y", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 32 - } - }, - { - "name": "a", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "forceIcon", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "mode", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "fill" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/preview.png": { - "get": { - "operationId": "preview-getpreview-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "file", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "x", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 32 - } - }, - { - "name": "y", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 32 - } - }, - { - "name": "a", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "forceIcon", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "mode", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "fill" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/apps/recommended": { - "get": { - "operationId": "recommendedapps-index-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/references/preview/{referenceId}": { - "parameters": [ - { - "name": "referenceId", - "in": "path", - "description": "the reference cache key", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "reference-preview-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/css/{appName}/{fileName}": { - "parameters": [ - { - "name": "appName", - "in": "path", - "description": "css folder name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fileName", - "in": "path", - "description": "css filename with extension", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "css-getcss-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/js/{appName}/{fileName}": { - "parameters": [ - { - "name": "appName", - "in": "path", - "description": "js folder name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fileName", - "in": "path", - "description": "js filename with extension", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "js-getjs-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/contactsmenu/contacts": { - "post": { - "operationId": "contactsmenu-index-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "filter", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/contactsmenu/findOne": { - "post": { - "operationId": "contactsmenu-findone-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "shareType", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "shareWith", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/204": { - "get": { - "operationId": "walledgarden-get-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/search": { - "get": { - "operationId": "search-search-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "query", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "inApps", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 30 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/wipe/check": { - "post": { - "operationId": "wipe-checkwipe-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "token", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/core/wipe/success": { - "post": { - "operationId": "wipe-wipedone-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "token", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/webauthn/start": { - "post": { - "operationId": "webauthn-startauthentication-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "loginName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/login/webauthn/finish": { - "post": { - "operationId": "webauthn-finishauthentication-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "data", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/error/404": { - "get": { - "operationId": "error-error404-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/error/403": { - "get": { - "operationId": "error-error403-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/.well-known/{service}": { - "parameters": [ - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "wellknown-handle-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/core/unsupported": { - "get": { - "operationId": "unsupportedbrowser-index-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/capabilities": { - "get": { - "operationId": "ocs-getcapabilities-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/config": { - "get": { - "operationId": "ocs-getconfig-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/check": { - "post": { - "operationId": "ocs-personcheck-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "login", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "password", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/key/{cloudId}": { - "parameters": [ - { - "name": "cloudId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "ocs-getidentityproof-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/navigation/apps": { - "get": { - "operationId": "navigation-getappsnavigation-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "absolute", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/navigation/settings": { - "get": { - "operationId": "navigation-getsettingsnavigation-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "absolute", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/autocomplete/get": { - "get": { - "operationId": "autocomplete-get-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "search", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "itemType", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "itemId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "sorter", - "in": "query", - "description": "can be piped, top prio first, e.g.: \"commenters|share-recipients\"", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "shareTypes", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/whatsnew": { - "get": { - "operationId": "whatsnew-get-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "whatsnew-dismiss-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "version", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/getapppassword": { - "get": { - "operationId": "apppassword-getapppassword-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/apppassword/rotate": { - "post": { - "operationId": "apppassword-rotateapppassword-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/apppassword": { - "delete": { - "operationId": "apppassword-deleteapppassword-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/v1/{userId}": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "hovercard-getuser-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/resources/collections/search/{filter}": { - "parameters": [ - { - "name": "filter", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "collaborationresources-searchcollections-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/resources/collections/{collectionId}": { - "parameters": [ - { - "name": "collectionId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "collaborationresources-listcollection-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "collaborationresources-renamecollection-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "collectionName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "collaborationresources-addresource-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "resourceType", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resourceId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "collaborationresources-removeresource-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "resourceType", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resourceId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/resources/{resourceType}/{resourceId}": { - "parameters": [ - { - "name": "resourceType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resourceId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "collaborationresources-getcollectionsbyresource-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/resources/{baseResourceType}/{baseResourceId}": { - "parameters": [ - { - "name": "baseResourceType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "baseResourceId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "collaborationresources-createcollectiononresource-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/resolve": { - "get": { - "operationId": "referenceapi-resolveone-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "reference", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "referenceapi-resolve-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "references", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/extract": { - "post": { - "operationId": "referenceapi-extract-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "text", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resolve", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/providers": { - "get": { - "operationId": "unifiedsearch-getproviders-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "from", - "in": "query", - "description": "the url the user is currently at", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/provider/{providerId}": { - "parameters": [ - { - "name": "providerId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "referenceapi-touchprovider-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "timestamp", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/{targetUserId}": { - "parameters": [ - { - "name": "targetUserId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "profileapi-setvisibility-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "paramId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "visibility", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/providers/{providerId}/search": { - "parameters": [ - { - "name": "providerId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "unifiedsearch-search-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "term", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sortOrder", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "cursor", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/languages": { - "get": { - "operationId": "translationapi-languages-TODO", - "tags": [ - "core" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/core/translate": { - "post": { - "operationId": "translationapi-translate-TODO", - "tags": [ - "core" - ], - "parameters": [ - { - "name": "text", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fromLanguage", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "toLanguage", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/specs/templates/news.json b/specs/templates/news.json deleted file mode 100644 index ee64d7bd..00000000 --- a/specs/templates/news.json +++ /dev/null @@ -1,2657 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "News", - "version": "21.2.0", - "description": "An RSS/Atom feed reader", - "license": { - "name": "agpl", - "identifier": "AGPL-3.0" - } - }, - "paths": { - "/apps/news/folders": { - "get": { - "operationId": "folder-index-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "folder-create-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "folderName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "parent", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/folders/{folderId}": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "delete": { - "operationId": "folder-delete-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/folders/{folderId}/restore": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "folder-restore-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/folders/{folderId}/rename": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "description": "The ID of the folder", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "folder-rename-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "folderName", - "in": "query", - "description": "The new name of the folder", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/folders/{folderId}/read": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "folder-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "maxItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/folders/{folderId}/open": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "folder-open-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "open", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds": { - "get": { - "operationId": "feed-index-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "feed-create-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "parentFolderId", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "title", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "user", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "fullDiscover", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds/{feedId}": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "delete": { - "operationId": "feed-delete-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "patch": { - "operationId": "feed-patch-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "pinned", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "fullTextEnabled", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "updateMode", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "ordering", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "folderId", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": -1 - } - }, - { - "name": "title", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds/{feedId}/restore": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "feed-restore-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds/{feedId}/read": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "feed-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "highestItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds/{feedId}/update": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "feed-update-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds/active": { - "get": { - "operationId": "feed-active-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/feeds/import/articles": { - "post": { - "operationId": "feed-import-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "json", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items": { - "get": { - "operationId": "item-index-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 3 - } - }, - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 50 - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "showAll", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "oldestFirst", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items/new": { - "get": { - "operationId": "item-new_items-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "type", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "lastModified", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items/read": { - "post": { - "operationId": "item-readall-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "highestItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items/{itemId}/read": { - "parameters": [ - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "item-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "isRead", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items/read/multiple": { - "post": { - "operationId": "item-read_multiple-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "itemIds", - "in": "query", - "description": "item ids", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items/{feedId}/{guidHash}/star": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "guidHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "item-star-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "isStarred", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/items/{itemId}/share/{shareRecipientId}": { - "parameters": [ - { - "name": "itemId", - "in": "path", - "description": "Item to share", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "shareRecipientId", - "in": "path", - "description": "User to share the item with", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "item-share-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/export/opml": { - "get": { - "operationId": "export-opml-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/export/articles": { - "get": { - "operationId": "export-articles-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api": { - "get": { - "operationId": "api-index-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/version": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "utility_api-version-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/status": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "utility_api-status-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/cleanup/before-update": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "utility_api-before_update-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/cleanup/after-update": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "utility_api-after_update-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/folders": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "folder_api-index-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "folder_api-create-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/folders/{folderId}": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "folderId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "folder_api-update-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "folder_api-delete-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/folders/{folderId}/read": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "folderId", - "in": "path", - "description": "ID of the folder", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "folder_api-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "newestItemId", - "in": "query", - "description": "The newest read item", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/folders/{folderId}/read": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "description": "ID of the folder", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "folder_api-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "newestItemId", - "in": "query", - "description": "The newest read item", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "feed_api-index-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "feed_api-create-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "folderId", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds/{feedId}": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "feed_api-update-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "userId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "feed_api-delete-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds/all": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "feed_api-from_all_users-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds/{feedId}/move": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "feed_api-move-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "folderId", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/feeds/{feedId}/move": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "feed_api-move-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "folderId", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds/{feedId}/rename": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "feed_api-rename-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "feedTitle", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/feeds/{feedId}/rename": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "feed_api-rename-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "feedTitle", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds/{feedId}/read": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "feed_api-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "newestItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/feeds/{feedId}/read": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "feed_api-read-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "newestItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/feeds/update": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "feed_api-update-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "userId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "feedId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "item_api-index-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 3 - } - }, - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "getRead", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "batchSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": -1 - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "oldestFirst", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/updated": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "item_api-updated-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 3 - } - }, - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "lastModified", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/{itemId}/read": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "item_api-read-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/{itemId}/read": { - "parameters": [ - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "item_api-read-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/{itemId}/unread": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "item_api-unread-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/{itemId}/unread": { - "parameters": [ - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "item_api-unread-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/read": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "item_api-read_all-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "newestItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/read": { - "put": { - "operationId": "item_api-read_all-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "newestItemId", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/read/multiple": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "item_api-read_multiple_by_ids-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "itemIds", - "in": "query", - "description": "item ids", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/read/multiple": { - "put": { - "operationId": "item_api-read_multiple-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "items", - "in": "query", - "description": "item ids", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/unread/multiple": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "item_api-unread_multiple_by_ids-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "itemIds", - "in": "query", - "description": "item ids", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/unread/multiple": { - "put": { - "operationId": "item_api-unread_multiple-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "items", - "in": "query", - "description": "item ids", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/{itemId}/star": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "item_api-star_by_item_id-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/{feedId}/{guidHash}/star": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "guidHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "item_api-star-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/{itemId}/unstar": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "itemId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "post": { - "operationId": "item_api-unstar_by_item_id-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/{feedId}/{guidHash}/unstar": { - "parameters": [ - { - "name": "feedId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "guidHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "item_api-unstar-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/star/multiple": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "item_api-star_multiple_by_item_ids-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "itemIds", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/star/multiple": { - "put": { - "operationId": "item_api-star_multiple-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "items", - "in": "query", - "description": "items", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/{apiVersion}/items/unstar/multiple": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "item_api-unstar_multiple_by_item_ids-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "itemIds", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v1-2/items/unstar/multiple": { - "put": { - "operationId": "item_api-unstar_multiple-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "items", - "in": "query", - "description": "items", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v2/folders": { - "post": { - "operationId": "folder_api_v2-create-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/news/api/v2/folders/{folderId}": { - "parameters": [ - { - "name": "folderId", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "delete": { - "operationId": "folder_api_v2-delete-TODO", - "tags": [ - "news" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "patch": { - "operationId": "folder_api_v2-update-TODO", - "tags": [ - "news" - ], - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/specs/templates/notes.json b/specs/templates/notes.json deleted file mode 100644 index ae608b6e..00000000 --- a/specs/templates/notes.json +++ /dev/null @@ -1,821 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Notes", - "version": "4.8.0", - "description": "Distraction-free notes and writing", - "license": { - "name": "agpl", - "identifier": "AGPL-3.0" - } - }, - "paths": { - "/apps/notes/notes": { - "get": { - "operationId": "notes-index-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "pruneBefore", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "notes-create-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "category", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "content", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "title", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/notes/dashboard": { - "get": { - "operationId": "notes-dashboard-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/notes/{id}": { - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "notes-get-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "notes-update-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "content", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "notes-destroy-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/notes/undo": { - "post": { - "operationId": "notes-undo-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "title", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "content", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "category", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "modified", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "favorite", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/notes/{id}/autotitle": { - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "put": { - "operationId": "notes-autotitle-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/notes/{id}/{property}": { - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "property", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "notes-updateproperty-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "modified", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "title", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "category", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "favorite", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/notes/{noteid}/attachment": { - "parameters": [ - { - "name": "noteid", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "notes-getattachment-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "path", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "notes-uploadfile-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/settings": { - "get": { - "operationId": "settings-get-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "settings-set-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/settings/migrate": { - "post": { - "operationId": "settings-migrate-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/api/{apiVersion}/notes": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "notes_api-index-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "category", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "exclude", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "pruneBefore", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "chunkSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "chunkCursor", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "notes_api-create-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "category", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "title", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "content", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "modified", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "favorite", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/api/{apiVersion}/notes/{id}": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "notes_api-get-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "exclude", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "notes_api-update-TODO", - "tags": [ - "notes" - ], - "parameters": [ - { - "name": "content", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "modified", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "title", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "category", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "favorite", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "notes_api-destroy-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/api/{apiVersion}/settings": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "notes_api-getsettings-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "notes_api-setsettings-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/notes/api/{catchAll}": { - "parameters": [ - { - "name": "catchAll", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "get": { - "operationId": "notes_api-fail-TODO", - "tags": [ - "notes" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/specs/templates/notifications.json b/specs/templates/notifications.json deleted file mode 100644 index b157d639..00000000 --- a/specs/templates/notifications.json +++ /dev/null @@ -1,401 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Notifications", - "version": "2.15.0", - "description": "This app provides a backend and frontend for the notification API available in Nextcloud.", - "license": { - "name": "agpl", - "identifier": "AGPL-3.0" - } - }, - "paths": { - "/ocs/v2.php/apps/notifications/api/{apiVersion}/notifications": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "endpoint-listnotifications-TODO", - "tags": [ - "notifications" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "endpoint-deleteallnotifications-TODO", - "tags": [ - "notifications" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/notifications/api/{apiVersion}/notifications/{id}": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "get": { - "operationId": "endpoint-getnotification-TODO", - "tags": [ - "notifications" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "endpoint-deletenotification-TODO", - "tags": [ - "notifications" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/notifications/api/{apiVersion}/notifications/exists": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "endpoint-confirmidsforuser-TODO", - "tags": [ - "notifications" - ], - "parameters": [ - { - "name": "ids", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/notifications/api/{apiVersion}/push": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "push-registerdevice-TODO", - "tags": [ - "notifications" - ], - "parameters": [ - { - "name": "pushTokenHash", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "devicePublicKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "proxyServer", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "push-removedevice-TODO", - "tags": [ - "notifications" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/notifications/api/{apiVersion}/admin_notifications/{userId}": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - }, - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "api-generatenotification-TODO", - "tags": [ - "notifications" - ], - "parameters": [ - { - "name": "shortMessage", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "longMessage", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/notifications/api/{apiVersion}/settings": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "settings-personal-TODO", - "tags": [ - "notifications" - ], - "parameters": [ - { - "name": "batchSetting", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "soundNotification", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "soundTalk", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/notifications/api/{apiVersion}/settings/admin": { - "parameters": [ - { - "name": "apiVersion", - "in": "path", - "required": true, - "schema": { - "type": "TODO" - } - } - ], - "post": { - "operationId": "settings-admin-TODO", - "tags": [ - "notifications" - ], - "parameters": [ - { - "name": "batchSetting", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "soundNotification", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "soundTalk", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/specs/templates/provisioning_api.json b/specs/templates/provisioning_api.json deleted file mode 100644 index 8dad48da..00000000 --- a/specs/templates/provisioning_api.json +++ /dev/null @@ -1,1522 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Provisioning API", - "version": "1.17.0", - "description": "This application enables a set of APIs that external systems can use to manage users, groups and apps.", - "license": { - "name": "agpl", - "identifier": "AGPL-3.0" - } - }, - "paths": { - "/ocs/v2.php/apps/provisioning_api/apps": { - "get": { - "operationId": "apps-getapps-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "filter", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/apps/{app}": { - "parameters": [ - { - "name": "app", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "apps-getappinfo-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "apps-enable-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "apps-disable-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/groups": { - "get": { - "operationId": "groups-getgroups-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "groups-addgroup-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "groupid", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "displayname", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/groups/details": { - "get": { - "operationId": "groups-getgroupsdetails-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/groups/{groupId}/users": { - "parameters": [ - { - "name": "groupId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "groups-getgroupusers-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/groups/{groupId}/users/details": { - "parameters": [ - { - "name": "groupId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "groups-getgroupusersdetails-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/groups/{groupId}/subadmins": { - "parameters": [ - { - "name": "groupId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "groups-getsubadminsofgroup-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/groups/{groupId}": { - "parameters": [ - { - "name": "groupId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "groups-getgroup-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "groups-updategroup-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "key", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "value", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "groups-deletegroup-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users": { - "get": { - "operationId": "users-getusers-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "users-adduser-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "userid", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "displayName", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "email", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "groups", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - }, - { - "name": "subadmin", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - }, - { - "name": "quota", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "language", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "manager", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/details": { - "get": { - "operationId": "users-getusersdetails-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/search/by-phone": { - "post": { - "operationId": "users-searchbyphonenumbers-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "location", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "search", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "users-getuser-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "put": { - "operationId": "users-edituser-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "key", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "value", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "users-deleteuser-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/user": { - "get": { - "operationId": "users-getcurrentuser-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/user/fields": { - "get": { - "operationId": "users-geteditablefields-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/user/fields/{userId}": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "users-geteditablefieldsforuser-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/{collectionName}": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "collectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "users-editusermultivalue-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "key", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "value", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/wipe": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "users-wipeuserdevices-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/enable": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "users-enableuser-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/disable": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "put": { - "operationId": "users-disableuser-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/groups": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "users-getusersgroups-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "users-addtogroup-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "groupid", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "users-removefromgroup-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "groupid", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/subadmins": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "users-getusersubadmingroups-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "users-addsubadmin-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "groupid", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "users-removesubadmin-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "groupid", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/users/{userId}/welcome": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "users-resendwelcomemessage-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/api/v1/config/apps": { - "get": { - "operationId": "appconfig-getapps-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/{app}": { - "parameters": [ - { - "name": "app", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "appconfig-getkeys-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/{app}/{key}": { - "parameters": [ - { - "name": "app", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "appconfig-getvalue-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "defaultValue", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "appconfig-setvalue-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "value", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "appconfig-deletekey-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}": { - "parameters": [ - { - "name": "appId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "configKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "preferences-setpreference-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "configValue", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "preferences-deletepreference-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/provisioning_api/api/v1/config/users/{appId}": { - "parameters": [ - { - "name": "appId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "operationId": "preferences-setmultiplepreferences-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "configs", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "operationId": "preferences-deletemultiplepreference-TODO", - "tags": [ - "provisioning_api" - ], - "parameters": [ - { - "name": "configKeys", - "in": "query", - "required": true, - "schema": { - "type": "array" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/apps/provisioning_api/mailVerification/{key}/{token}/{userId}": { - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "verification-showverifymail-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "operationId": "verification-verifymail-TODO", - "tags": [ - "provisioning_api" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/specs/templates/user_status.json b/specs/templates/user_status.json deleted file mode 100644 index a7151aa4..00000000 --- a/specs/templates/user_status.json +++ /dev/null @@ -1,316 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "User status", - "version": "1.7.0", - "description": "User status", - "license": { - "name": "agpl", - "identifier": "AGPL-3.0" - } - }, - "paths": { - "/ocs/v2.php/apps/user_status/api/v1/statuses": { - "get": { - "operationId": "statuses-findall-TODO", - "tags": [ - "user_status" - ], - "parameters": [ - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/statuses/{userId}": { - "parameters": [ - { - "name": "userId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "operationId": "statuses-find-TODO", - "tags": [ - "user_status" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/user_status": { - "get": { - "operationId": "userstatus-getstatus-TODO", - "tags": [ - "user_status" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/user_status/status": { - "put": { - "operationId": "userstatus-setstatus-TODO", - "tags": [ - "user_status" - ], - "parameters": [ - { - "name": "statusType", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/user_status/message/predefined": { - "put": { - "operationId": "userstatus-setpredefinedmessage-TODO", - "tags": [ - "user_status" - ], - "parameters": [ - { - "name": "messageId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "clearAt", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/user_status/message/custom": { - "put": { - "operationId": "userstatus-setcustommessage-TODO", - "tags": [ - "user_status" - ], - "parameters": [ - { - "name": "statusIcon", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "message", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "clearAt", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/user_status/message": { - "delete": { - "operationId": "userstatus-clearmessage-TODO", - "tags": [ - "user_status" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/user_status/revert/{messageId}": { - "parameters": [ - { - "name": "messageId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "delete": { - "operationId": "userstatus-revertstatus-TODO", - "tags": [ - "user_status" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/predefined_statuses": { - "get": { - "operationId": "predefinedstatus-findall-TODO", - "tags": [ - "user_status" - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/ocs/v2.php/apps/user_status/api/v1/heartbeat": { - "put": { - "operationId": "heartbeat-heartbeat-TODO", - "tags": [ - "user_status" - ], - "parameters": [ - { - "name": "status", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/tool/generate-specs.sh b/tool/generate-specs.sh deleted file mode 100755 index 8bb634eb..00000000 --- a/tool/generate-specs.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash -set -euxo pipefail -cd "$(dirname "$0")/.." - -rm -rf /tmp/nextcloud-neon -mkdir -p /tmp/nextcloud-neon - -xmlstarlet \ - edit \ - --update "/info/version" \ - --value "$(cd external/nextcloud-server && git describe --tags | sed "s/^v//")" \ - specs/templates/appinfo_core.xml \ - > /tmp/nextcloud-neon/appinfo_core1.xml -xmlstarlet \ - format \ - --indent-spaces 4 \ - /tmp/nextcloud-neon/appinfo_core1.xml \ - > /tmp/nextcloud-neon/appinfo_core2.xml -cp /tmp/nextcloud-neon/appinfo_core2.xml specs/templates/appinfo_core.xml - -function generate_spec_templates() { - fvm dart packages/spec_templates/bin/generate.dart "$1" "$2" -} - -generate_spec_templates external/nextcloud-news false -generate_spec_templates external/nextcloud-notes false -generate_spec_templates external/nextcloud-notifications false -generate_spec_templates external/nextcloud-server/apps/provisioning_api false -generate_spec_templates external/nextcloud-server/apps/user_status false -generate_spec_templates external/nextcloud-server/core true - -codenames=(core news notes notifications provisioning_api user_status) - -for codename in ${codenames[*]}; do - jq \ - --arg codename "$codename" \ - -s \ - '{ - openapi: .[0].openapi, - info: .[0].info, - servers: [ - { - url: "https://{hostname}:{port}", - variables: { - hostname: { - default: "localhost" - }, - port: { - default: "8080" - } - } - } - ], - security: [ - { - basic_auth: [] - } - ], - tags: .[1].tags, - components: { - schemas: .[1].components.schemas - }, - paths: .[1].paths - } | - .components.securitySchemes = { - basic_auth: { - type: "http", - scheme: "basic", - }, - } | - .components.schemas.OCSMeta = - { - type: "object", - required: [ - "status", - "statuscode" - ], - properties: { - status: { - type: "string" - }, - statuscode: { - type: "integer" - }, - message: { - type: "string" - }, - totalitems: { - type: "string" - }, - itemsperpage: { - type: "string" - } - } - } | - .components.schemas.EmptyOCS = - { - type: "object", - required: [ - "ocs" - ], - properties: { - ocs: { - type: "object", - required: [ - "meta", - "data" - ], - properties: { - meta: { - "$ref": "#/components/schemas/OCSMeta" - }, - data: { - type: "array" - } - } - } - } - } - ' \ - specs/templates/"$codename".json \ - specs/"$codename".json \ - > /tmp/nextcloud-neon/"$codename".json - cp /tmp/nextcloud-neon/"$codename".json specs/"$codename".json -done