# Class AbstractService

This class defines a cloud service; a relationship between a specific OpenStack and a provided service, represented by a URL in the service catalog.

Because Service is an abstract class, it cannot be called directly. Provider services such as Rackspace Cloud Servers or OpenStack Swift are each subclassed from Service.

  OpenCloud\Common\Base
  OpenCloud\Common\Service\AbstractService implements OpenCloud\Common\Service\ServiceInterface

#### Direct known subclasses

OpenCloud\Common\Service\CatalogService, OpenCloud\Identity\Service

#### Indirect known subclasses

OpenCloud\Autoscale\Service, OpenCloud\CloudMonitoring\Service, OpenCloud\ObjectStore\Service, OpenCloud\Orchestration\Service, OpenCloud\Queues\Service, OpenCloud\Volume\Service, OpenCloud\Common\Service\NovaService, OpenCloud\Compute\Service, OpenCloud\Database\Service, OpenCloud\DNS\Service, OpenCloud\Image\Service, OpenCloud\LoadBalancer\Service, OpenCloud\ObjectStore\AbstractService, OpenCloud\ObjectStore\CDNService
Abstract
Namespace: OpenCloud\Common\Service
Located at OpenCloud/Common/Service/AbstractService.php

Methods summary
`public` | # `setClient( Guzzle\Http\ClientInterface $client )` #### Parameters $client `Guzzle\Http\ClientInterface` $client #### Implementation of `OpenCloud\Common\Service\ServiceInterface::setClient()`
`public `OpenCloud\Common\Http\Client`` | # `getClient( )` #### Returns ``OpenCloud\Common\Http\Client`` #### Implementation of `OpenCloud\Common\Service\ServiceInterface::getClient()`
`public` | # `setEndpoint( `OpenCloud\Common\Service\Endpoint` $endpoint )` #### Parameters $endpoint ``OpenCloud\Common\Service\Endpoint`` $endpoint #### Implementation of `OpenCloud\Common\Service\ServiceInterface::setEndpoint()`
`public `OpenCloud\Common\Service\Endpoint`` | # `getEndpoint( )` #### Returns ``OpenCloud\Common\Service\Endpoint`` #### Implementation of `OpenCloud\Common\Service\ServiceInterface::getEndpoint()`
`public array` | # `getResources( )` Get all associated resources for this service. Get all associated resources for this service. #### Returns `array`
`protected type` | # `getCurrentNamespace( )` Internal method for accessing child namespace from parent scope. Internal method for accessing child namespace from parent scope. #### Returns `type`
`protected string` | # `resolveResourceClass( mixed $resourceName )` Resolves FQCN for local resource. Resolves FQCN for local resource. #### Parameters $resourceName `mixed` $resourceName #### Returns `string` #### Throws ``OpenCloud\Common\Exceptions\UnrecognizedServiceError``
`public object` | # `resource( string $resourceName, mixed $info = null, mixed $parent = null )` Factory method for instantiating resource objects. Factory method for instantiating resource objects. #### Parameters $resourceName `string` $resourceName $info `mixed` $info (default: null) $parent `mixed` $parent The parent object #### Returns `object`
`public `OpenCloud\Common\Collection\PaginatedIterator`` | # `resourceList( string $resourceName, string|null $url = null, string|null $parent = null )` Factory method for instantiating a resource collection. Factory method for instantiating a resource collection. #### Parameters $resourceName `string` $resourceName $url `string|null` $url $parent `string|null` $parent #### Returns ``OpenCloud\Common\Collection\PaginatedIterator``
`public` | # `collection( mixed $class, mixed $url = null, mixed $parent = null, mixed $data = null )` #### CodeCoverageIgnore
`public array` | # `getNamespaces( )` Returns a list of supported namespaces Returns a list of supported namespaces #### Returns `array`

Methods inherited from OpenCloud\Common\Base
`__call(), checkJsonError(), generateUuid(), getInstance(), getJsonHeader(), getLogger(), getProperty(), makeResourceIteratorOptions(), populate(), propertyExists(), setLogger(), setProperty(), stripNamespace(), toCamel(), toUnderscores()`

Methods inherited from OpenCloud\Common\Service\ServiceInterface
`getUrl()`

Properties summary
`protected `OpenCloud\Common\Http\Client`` | $client | `` | # The client which interacts with the API. The client which interacts with the API.
`protected `OpenCloud\Common\Service\Endpoint`` | $endpoint | `` | # The endpoint for this service. The endpoint for this service.
`protected array` | $resources | `array()` | # A collection of resource models that this service has control over. A collection of resource models that this service has control over.
`protected array` | $namespaces | `array()` | # Namespaces for this service. Namespaces for this service.

Properties inherited from OpenCloud\Common\Base
`$aliases`