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 15:36:02 +0100
committerEoleDev <root@serverpc.home>2016-03-09 15:36:02 +0100
commitc479658f0bb953ded4b29ca573404a318f1e798f (patch)
treef4c4fa4b7e245abd462794df5b6525ed41306e77 /server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php
parent5c6f6c97b7b906476ad5b9ed193e0140dd66f977 (diff)
New 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);
+}