%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/3rdparty/php-opencloud/openstack/src/ObjectStore/v1/ |
Current File : //www/varak.net/nextcloud.varak.net/3rdparty/php-opencloud/openstack/src/ObjectStore/v1/Service.php |
<?php declare(strict_types=1); namespace OpenStack\ObjectStore\v1; use OpenStack\Common\Error\BadResponseError; use OpenStack\Common\Service\AbstractService; use OpenStack\ObjectStore\v1\Models\Account; use OpenStack\ObjectStore\v1\Models\Container; /** * @property Api $api */ class Service extends AbstractService { /** * Retrieves an Account object. */ public function getAccount(): Account { return $this->model(Account::class); } /** * Retrieves a collection of container resources in a generator format. * * @param array $options {@see \OpenStack\ObjectStore\v1\Api::getAccount} * @param callable|null $mapFn allows a function to be mapped over each element in the collection * * @return \Generator<mixed, \OpenStack\ObjectStore\v1\Models\Container> */ public function listContainers(array $options = [], callable $mapFn = null): \Generator { $options = array_merge($options, ['format' => 'json']); return $this->model(Container::class)->enumerate($this->api->getAccount(), $options, $mapFn); } /** * Retrieves a Container object and populates its name according to the value provided. Please note that the * remote API is not contacted. * * @param string $name The unique name of the container */ public function getContainer(string $name = null): Container { return $this->model(Container::class, ['name' => $name]); } /** * Creates a new container according to the values provided. * * @param array $data {@see \OpenStack\ObjectStore\v1\Api::putContainer} */ public function createContainer(array $data): Container { return $this->getContainer()->create($data); } /** * Checks the existence of a container. * * @param string $name The name of the container * * @return bool TRUE if exists, FALSE if it doesn't * * @throws BadResponseError Thrown for any non 404 status error */ public function containerExists(string $name): bool { try { $this->execute($this->api->headContainer(), ['name' => $name]); return true; } catch (BadResponseError $e) { if (404 === $e->getResponse()->getStatusCode()) { return false; } throw $e; } } }