%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/3rdparty/php-opencloud/openstack/src/Networking/v2/ |
| Current File : /www/varak.net/nextcloud.varak.net/3rdparty/php-opencloud/openstack/src/Networking/v2/Service.php |
<?php
declare(strict_types=1);
namespace OpenStack\Networking\v2;
use OpenStack\Common\Service\AbstractService;
use OpenStack\Networking\v2\Extensions\Layer3\ServiceTrait as Layer3;
use OpenStack\Networking\v2\Extensions\SecurityGroups\ServiceTrait as SecurityGroups;
use OpenStack\Networking\v2\Models\LoadBalancer;
use OpenStack\Networking\v2\Models\LoadBalancerHealthMonitor;
use OpenStack\Networking\v2\Models\LoadBalancerListener;
use OpenStack\Networking\v2\Models\LoadBalancerMember;
use OpenStack\Networking\v2\Models\LoadBalancerPool;
use OpenStack\Networking\v2\Models\Network;
use OpenStack\Networking\v2\Models\Port;
use OpenStack\Networking\v2\Models\Quota;
use OpenStack\Networking\v2\Models\Subnet;
/**
* Network v2 service for OpenStack.
*
* @property Api $api
*/
class Service extends AbstractService
{
use Layer3;
use SecurityGroups;
/**
* Create a new network resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postNetwork}
*/
public function createNetwork(array $options): Network
{
return $this->model(Network::class)->create($options);
}
/**
* Create a new network resources.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postNetworks}
*/
public function createNetworks(array $options): array
{
return $this->model(Network::class)->bulkCreate($options);
}
/**
* Retrieve a network object without calling the remote API. Any values provided in the array will populate the
* empty object, allowing you greater control without the expense of network transactions. To call the remote API
* and have the response populate the object, call {@see Network::retrieve}.
*/
public function getNetwork(string $id): Network
{
return $this->model(Network::class, ['id' => $id]);
}
/**
* List networks.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::getNetworks}
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\Network>
*/
public function listNetworks(array $options = []): \Generator
{
return $this->model(Network::class)->enumerate($this->api->getNetworks(), $options);
}
/**
* Create a new subnet resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postSubnet}
*/
public function createSubnet(array $options): Subnet
{
return $this->model(Subnet::class)->create($options);
}
/**
* Create a new subnet resources.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postSubnets}
*
* @return []Subnet
*/
public function createSubnets(array $options): array
{
return $this->model(Subnet::class)->bulkCreate($options);
}
/**
* Retrieve a subnet object without calling the remote API. Any values provided in the array will populate the
* empty object, allowing you greater control without the expense of network transactions. To call the remote API
* and have the response populate the object, call {@see Subnet::retrieve}.
*/
public function getSubnet(string $id): Subnet
{
return $this->model(Subnet::class, ['id' => $id]);
}
/**
* List subnets.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::getSubnets}
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\Subnet>
*/
public function listSubnets(array $options = []): \Generator
{
return $this->model(Subnet::class)->enumerate($this->api->getSubnets(), $options);
}
/**
* Create a new port resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postSinglePort}
*/
public function createPort(array $options): Port
{
return $this->model(Port::class)->create($options);
}
/**
* Create new port resources.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postMultiplePorts}
*
* @return []Port
*/
public function createPorts(array $options): array
{
return $this->model(Port::class)->bulkCreate($options);
}
/**
* Retrieve a subnet object without calling the remote API. Any values provided in the array will populate the
* empty object, allowing you greater control without the expense of network transactions. To call the remote API
* and have the response populate the object, call {@see Port::retrieve}.
*/
public function getPort(string $id): Port
{
return $this->model(Port::class, ['id' => $id]);
}
/**
* List ports.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::getPorts}
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\Port>
*/
public function listPorts(array $options = []): \Generator
{
return $this->model(Port::class)->enumerate($this->api->getPorts(), $options);
}
/**
* Lists quotas for projects with non-default quota values.
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\Quota>
*/
public function listQuotas(): \Generator
{
return $this->model(Quota::class)->enumerate($this->api->getQuotas(), []);
}
/**
* Lists quotas for a project.
*
* Retrieve a quota object without calling the remote API. Any values provided in the array will populate the
* empty object, allowing you greater control without the expense of network transactions. To call the remote API
* and have the response populate the object, call {@see Quota::retrieve}.
*/
public function getQuota(string $tenantId): Quota
{
return $this->model(Quota::class, ['tenantId' => $tenantId]);
}
/**
* Lists default quotas for a project.
*/
public function getDefaultQuota(string $tenantId): Quota
{
$quota = $this->model(Quota::class, ['tenantId' => $tenantId]);
$quota->populateFromResponse($this->execute($this->api->getQuotaDefault(), ['tenantId' => $tenantId]));
return $quota;
}
/**
* Lists loadbalancers for projects.
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\LoadBalancer>
*/
public function listLoadBalancers(): \Generator
{
return $this->model(LoadBalancer::class)->enumerate($this->api->getLoadBalancers());
}
/**
* Retrieve an instance of a LoadBalancer object.
*/
public function getLoadBalancer(string $id): LoadBalancer
{
return $this->model(LoadBalancer::class, ['id' => $id]);
}
/**
* Create a new loadbalancer resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postLoadBalancer}
*/
public function createLoadBalancer(array $options): LoadBalancer
{
return $this->model(LoadBalancer::class)->create($options);
}
/**
* Lists loadbalancer listeners.
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\LoadBalancerListener>
*/
public function listLoadBalancerListeners(): \Generator
{
return $this->model(LoadBalancerListener::class)->enumerate($this->api->getLoadBalancerListeners());
}
/**
* Retrieve an instance of a loadbalancer listener object.
*/
public function getLoadBalancerListener(string $id): LoadBalancerListener
{
return $this->model(LoadBalancerListener::class, ['id' => $id]);
}
/**
* Create a new loadbalancer Listener resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postLoadBalancerListener}
*/
public function createLoadBalancerListener(array $options): LoadBalancerListener
{
return $this->model(LoadBalancerListener::class)->create($options);
}
/**
* Lists loadbalancer pools.
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\LoadBalancerPool>
*/
public function listLoadBalancerPools(): \Generator
{
return $this->model(LoadBalancerPool::class)->enumerate($this->api->getLoadBalancerPools());
}
/**
* Retrieve an instance of a loadbalancer Pool object.
*/
public function getLoadBalancerPool(string $id): LoadBalancerPool
{
return $this->model(LoadBalancerPool::class, ['id' => $id]);
}
/**
* Create a new loadbalancer Pool resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postLoadBalancerPool}
*/
public function createLoadBalancerPool(array $options): LoadBalancerPool
{
return $this->model(LoadBalancerPool::class)->create($options);
}
/**
* Lists loadbalancer members.
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\LoadBalancerMember>
*/
public function listLoadBalancerMembers(string $poolId): \Generator
{
return $this->model(LoadBalancerPool::class, ['poolId' => $poolId])->enumerate($this->api->getLoadBalancerMembers());
}
/**
* Retrieve an instance of a loadbalancer Member object.
*/
public function getLoadBalancerMember(string $poolId, string $memberId): LoadBalancerMember
{
return $this->model(LoadBalancerMember::class, ['poolId' => $poolId, 'id' => $memberId]);
}
/**
* Create a new loadbalancer member resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postLoadBalancerMember}
*/
public function createLoadBalancerMember(array $options): LoadBalancerMember
{
return $this->model(LoadBalancerMember::class)->create($options);
}
/**
* Lists loadbalancer healthmonitors.
*
* @return \Generator<mixed, \OpenStack\Networking\v2\Models\LoadBalancerHealthMonitor>
*/
public function listLoadBalancerHealthMonitors(): \Generator
{
return $this->model(LoadBalancerHealthMonitor::class)->enumerate($this->api->getLoadBalancerHealthMonitors());
}
/**
* Retrieve an instance of a loadbalancer healthmonitor object.
*/
public function getLoadBalancerHealthMonitor(string $id): LoadBalancerHealthMonitor
{
return $this->model(LoadBalancerHealthMonitor::class, ['id' => $id]);
}
/**
* Create a new loadbalancer healthmonitor resource.
*
* @param array $options {@see \OpenStack\Networking\v2\Api::postLoadBalancerHealthMonitor}
*/
public function createLoadBalancerHealthMonitor(array $options): LoadBalancerHealthMonitor
{
return $this->model(LoadBalancerHealthMonitor::class)->create($options);
}
}