%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/3rdparty/php-opencloud/openstack/src/Identity/v3/Models/ |
Current File : /www/varak.net/nextcloud.varak.net/3rdparty/php-opencloud/openstack/src/Identity/v3/Models/User.php |
<?php declare(strict_types=1); namespace OpenStack\Identity\v3\Models; use OpenStack\Common\Resource\Creatable; use OpenStack\Common\Resource\Deletable; use OpenStack\Common\Resource\Listable; use OpenStack\Common\Resource\OperatorResource; use OpenStack\Common\Resource\Retrievable; use OpenStack\Common\Resource\Updateable; /** * @property \OpenStack\Identity\v3\Api $api */ class User extends OperatorResource implements Creatable, Listable, Retrievable, Updateable, Deletable { /** @var string */ public $domainId; /** @var string */ public $defaultProjectId; /** @var string */ public $id; /** @var string */ public $email; /** @var bool */ public $enabled; /** @var string */ public $description; /** @var array */ public $links; /** @var string */ public $name; protected $aliases = [ 'domain_id' => 'domainId', 'default_project_id' => 'defaultProjectId', ]; protected $resourceKey = 'user'; protected $resourcesKey = 'users'; /** * @param array $data {@see \OpenStack\Identity\v3\Api::postUsers} */ public function create(array $data): Creatable { $response = $this->execute($this->api->postUsers(), $data); return $this->populateFromResponse($response); } public function retrieve() { $response = $this->execute($this->api->getUser(), ['id' => $this->id]); $this->populateFromResponse($response); } public function update() { $response = $this->executeWithState($this->api->patchUser()); $this->populateFromResponse($response); } public function delete() { $this->execute($this->api->deleteUser(), ['id' => $this->id]); } /** * @return \Generator<mixed, \OpenStack\Identity\v3\Models\Group> */ public function listGroups(): \Generator { return $this->model(Group::class)->enumerate($this->api->getUserGroups(), ['id' => $this->id]); } /** * @return \Generator<mixed, \OpenStack\Identity\v3\Models\Project> */ public function listProjects(): \Generator { return $this->model(Project::class)->enumerate($this->api->getUserProjects(), ['id' => $this->id]); } /** * Creates a new application credential according to the provided options. * * @param array $options {@see \OpenStack\Identity\v3\Api::postApplicationCredential} */ public function createApplicationCredential(array $options): ApplicationCredential { return $this->model(ApplicationCredential::class)->create(['userId' => $this->id] + $options); } /** * Retrieves an application credential object and populates its unique identifier object. This operation will not * perform a GET or HEAD request by default; you will need to call retrieve() if you want to pull in remote state * from the API. */ public function getApplicationCredential(string $id): ApplicationCredential { return $this->model(ApplicationCredential::class, ['id' => $id, 'userId' => $this->id]); } }