     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: