/usr/share/doc/php-opencloud/userguide/Services.md is in php-opencloud-doc 1.10.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # Services
Both OpenStack and Rackspace are comprised of different services: Compute (Nova),
Object Storage (Swift), Queues (Marconi), etc. Each of these services is
encapsulated in its own class which implements the
`OpenCloud\Common\Service\ServiceInterface` interface.
Each service class is nested in its own namespace:
Service|OpenStack codename|FQCN
---|---|---
Compute|Nova|`OpenCloud\Compute\Service`
Object Storage|Swift|`OpenCloud\ObjectStore\Service`
Identity|Keystone|`OpenCloud\Identity\Service`
Queues|Marconi|`OpenCloud\Queues\Service`
## Instantiating a service
The easiest way to instantiate a service, is using the convenient factory
methods of the client class. For more information about clients, see the
[client documentation](Clients.md).
To create a Compute service, for example:
```php
$service = $client->computeService('cloudServersOpenStack', 'DFW');
```
### Method arguments
As you will notice, each factory method accepts three arguments:
Position|Name|Required?|Type|Description
---|---|---|---|---
1|Service name|Yes|string|The name of the service as it appears in the [Service Catalog](https://github.com/rackspace/php-opencloud/blob/master/docs/userguide/Clients.md#service-catalog)
2|Region|Yes|string|The region you want your service to operate in
3|URL type|No|enum|Each service has two different URL types for API transactions: a public URL (i.e. over the Internet) and a private URL (through Rackspace's private network). Private URL's are beneficial because they have lower latency and incur no bandwidth charges; the only condition is that you are communicating to the API from the **same geographic region** (i.e. from a Cloud Serve in the same region). <br><br>The accepted options you may pass in are either `OpenCloud\Common\Constants\Service::INTERNAL_URL` or `OpenCloud\Common\Constants\Service::PUBLIC_URL`.
## Differences between OpenStack and Rackspace
Not all of Rackspace's services are supported by OpenStack; examples include:
Cloud Databases, Auto Scale, Load Balancers, DNS, etc.
For this reason, if you want to use or interact with these Rackspace-only
services, you must do so by using the methods of the `OpenCloud\Rackspace`
client object and **not** the `OpenCloud\OpenStack` client.
|