aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Capabilities/ICapability.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Capabilities/ICapability.php')
-rw-r--r--lib/public/Capabilities/ICapability.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/public/Capabilities/ICapability.php b/lib/public/Capabilities/ICapability.php
new file mode 100644
index 00000000000..c51d8b26f1a
--- /dev/null
+++ b/lib/public/Capabilities/ICapability.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCP\Capabilities;
+
+/**
+ * Minimal interface that has to be implemented for a class to be considered
+ * a capability.
+ *
+ * In an application use \OCP\AppFramework\Bootstrap\IRegistrationContext::registerCapability
+ * to register capabilities.
+ *
+ * @since 8.2.0
+ */
+interface ICapability {
+ /**
+ * Function an app uses to return the capabilities
+ *
+ * ```php
+ * return [
+ * 'myapp' => [
+ * 'awesomefeature' => true,
+ * 'featureversion' => 3,
+ * ],
+ * 'morecomplex' => [
+ * 'a' => [1, 2],
+ * ],
+ * ];
+ * ```
+ *
+ * @return array<string, array<string, mixed>> Indexed array containing the app's capabilities
+ * @since 8.2.0
+ */
+ public function getCapabilities();
+}