summaryrefslogtreecommitdiff
path: root/server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php
diff options
context:
space:
mode:
Diffstat (limited to 'server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php')
-rw-r--r--server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php51
1 files changed, 51 insertions, 0 deletions
diff --git a/server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php b/server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php
new file mode 100644
index 0000000..43c6ce2
--- /dev/null
+++ b/server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace OpenCloud\Common\Api;
+
+use GuzzleHttp\ClientInterface;
+
+/**
+ * An operator is any resource or service that can invoke and send REST operations. In other words, it
+ * is any class that can send requests and receive responses with a HTTP client. To do this
+ * it needs two things: a {@see ClientInterface} for handling HTTP transactions and an {@see ApiInterface}
+ * for handling how operations are created.
+ *
+ * @package OpenCloud\Common\Api
+ */
+interface OperatorInterface
+{
+ /**
+ * @param ClientInterface $client The HTTP client responsible for handling HTTP transactions
+ * @param ApiInterface $api The data API class that dictates how REST operations are structured
+ */
+ public function __construct(ClientInterface $client, ApiInterface $api);
+
+ /**
+ * A convenience method that assembles an operation and sends it to the remote API
+ *
+ * @param array $definition The data that dictates how the operation works
+ * @param array $userValues The user-defined values that populate the request
+ *
+ * @return \Psr\Http\Message\ResponseInterface
+ */
+ public function execute(array $definition, array $userValues = []);
+
+ /**
+ * A convenience method that assembles an operation and asynchronously sends it to the remote API
+ *
+ * @param array $definition The data that dictates how the operation works
+ * @param array $userValues The user-defined values that populate the request
+ *
+ * @return \GuzzleHttp\Promise\PromiseInterface
+ */
+ public function executeAsync(array $definition, array $userValues = []);
+
+ /**
+ * @param string $name The name of the model class.
+ * @param mixed $data Either a {@see ResponseInterface} or data array that will populate the newly
+ * created model class.
+ *
+ * @return \OpenCloud\Common\Resource\ResourceInterface
+ */
+ public function model($name, $data = null);
+}