summaryrefslogtreecommitdiff
path: root/server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php
diff options
context:
space:
mode:
authorEoleDev <root@serverpc.home>2016-03-09 16:17:33 +0100
committerEoleDev <root@serverpc.home>2016-03-09 16:17:33 +0100
commit2b8decb81faeb7928bcbfda84c6f33a003f707fd (patch)
tree0e491d7ae2bf91347b1cf50d2c475625d8f659b4 /server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php
parentb7ebe1272c1127df290535af2430622b28160bb0 (diff)
parent03ef74d0cfe675a6e18a91f039182ca1b248d8f5 (diff)
Maj Library
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);
+}