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\Autoscale;
19:
20: use OpenCloud\Common\Service\CatalogService;
21:
22: /**
23: * The Autoscale class represents the OpenStack Otter service.
24: */
25: class Service extends CatalogService
26: {
27: const DEFAULT_TYPE = 'rax:autoscale';
28: const DEFAULT_NAME = 'autoscale';
29:
30: /**
31: * Autoscale resources.
32: *
33: * @var array
34: * @access private
35: */
36: public $resources = array(
37: 'Group',
38: 'GroupConfiguration',
39: 'LaunchConfiguration',
40: 'ScalingPolicy'
41: );
42:
43: /**
44: * Convenience method for getting an autoscale group.
45: *
46: * @param mixed $info
47: * @return AbstractResource
48: */
49: public function group($info = null)
50: {
51: return $this->resource('Group', $info);
52: }
53:
54: /**
55: * Convenience method for getting a list of autoscale groups.
56: *
57: * @return OpenCloud\Common\Collection
58: */
59: public function groupList()
60: {
61: return $this->resourceList('Group');
62: }
63: }
64: