1: <?php
2: /**
3: * Copyright 2012-2014 Rackspace US, Inc.
4: *
5: * Licensed under the Apache License, Version 2.0 (the "License");
6: * you may not use this file except in compliance with the License.
7: * You may obtain a copy of the License at
8: *
9: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: namespace OpenCloud\Database;
19:
20: use OpenCloud\Common\Service\NovaService;
21: use OpenCloud\Database\Resource\Instance;
22:
23: /**
24: * The Rackspace Database service
25: */
26: class Service extends NovaService
27: {
28: const DEFAULT_TYPE = 'rax:database';
29: const DEFAULT_NAME = 'cloudDatabases';
30:
31: /**
32: * Returns an Instance
33: *
34: * @param string $id the ID of the instance to retrieve
35: * @return \OpenCloud\Database\Resource\Instance
36: */
37: public function instance($id = null)
38: {
39: return $this->resource('Instance', $id);
40: }
41:
42: /**
43: * Returns a Collection of Instance objects
44: *
45: * @param array $params
46: * @return \OpenCloud\Common\Collection\PaginatedIterator
47: */
48: public function instanceList($params = array())
49: {
50: $url = clone $this->getUrl();
51: $url->addPath(Instance::resourceName())->setQuery($params);
52:
53: return $this->resourceList('Instance', $url);
54: }
55: }
56: