diff options
| author | EoleDev <root@serverpc.home> | 2016-03-09 15:36:02 +0100 |
|---|---|---|
| committer | EoleDev <root@serverpc.home> | 2016-03-09 15:36:02 +0100 |
| commit | c479658f0bb953ded4b29ca573404a318f1e798f (patch) | |
| tree | f4c4fa4b7e245abd462794df5b6525ed41306e77 /server/vendor/php-opencloud/common/src/Common/Api/OperatorInterface.php | |
| parent | 5c6f6c97b7b906476ad5b9ed193e0140dd66f977 (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.php | 51 |
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); +} |
