# Class Group

An autoscaling group is monitored by Rackspace CloudMonitoring. When Monitoring triggers an alarm for high utilization within the autoscaling group, a webhook is triggered. The webhook stimulates the autoscale service which consults a policy in accordance with the webhook. The policy determines how many additional cloud servers should be added or removed in accordance with the alarm.

There are three components to Autoscale:

- The Scaling Group Configuration ($this->groupConfiguration)
- The Scaling Group's Launch Configuration ($this->launchConfiguration)
- The Scaling Group's Policies ($this->scalingPolicies)

  OpenCloud\Common\Base
  OpenCloud\Common\Resource\BaseResource
  OpenCloud\Common\Resource\PersistentResource
  OpenCloud\Common\PersistentObject
  OpenCloud\Autoscale\Resource\AbstractResource
  OpenCloud\Autoscale\Resource\Group

Namespace: OpenCloud\Autoscale\Resource
Link: https://github.com/rackerlabs/otter/blob/master/doc/getting_started.rst
Link: http://docs.autoscale.apiary.io/
Located at OpenCloud/Autoscale/Resource/Group.php

Methods summary
`public Guzzle\Http\Message\Response` | # `update( array $params = array() )` Update a resource Update a resource #### Parameters $params `array` $params #### Returns `Guzzle\Http\Message\Response` #### Overrides `OpenCloud\Common\Resource\PersistentResource::update()`
`public object|boolean` | # `getState( )` Get the current state of the scaling group, including the current set of active entities, the number of pending entities, and the desired number of entities. Get the current state of the scaling group, including the current set of active entities, the number of pending entities, and the desired number of entities. #### Returns `object|boolean` #### Throws ``OpenCloud\Common\Exceptions\HttpError`` ``OpenCloud\Common\Exceptions\ServerActionError``
`public `OpenCloud\Autoscale\Resource\GroupConfiguration`` | # `getGroupConfig( )` Get the group configuration for this autoscale group. Get the group configuration for this autoscale group. #### Returns ``OpenCloud\Autoscale\Resource\GroupConfiguration``
`public `OpenCloud\Autoscale\Resource\LaunchConfiguration`` | # `getLaunchConfig( )` Get the launch configuration for this autoscale group. Get the launch configuration for this autoscale group. #### Returns ``OpenCloud\Autoscale\Resource\LaunchConfiguration``
`public` | # `pause( )` NB: NOT SUPPORTED YET. NB: NOT SUPPORTED YET. #### CodeCoverageIgnore
`public` | # `resume( )` NB: NOT SUPPORTED YET. NB: NOT SUPPORTED YET. #### CodeCoverageIgnore
`public Collection` | # `getScalingPolicies( mixed $override = false )` Get the scaling policies associated with this autoscale group. Get the scaling policies associated with this autoscale group. #### Returns `Collection`
`public `OpenCloud\Autoscale\Resource\ScalingPolicy`` | # `getScalingPolicy( object|integer $id = null )` Get a particular scaling policy for this autoscale group. Get a particular scaling policy for this autoscale group. #### Parameters $id `object|integer` $id #### Returns ``OpenCloud\Autoscale\Resource\ScalingPolicy``
`public` | # `createScalingPolicies( array $policies )`

Methods inherited from OpenCloud\Autoscale\Resource\AbstractResource
`createJson(), primaryKeyField(), updateJson()`

Methods inherited from OpenCloud\Common\Resource\PersistentResource
`checkExtension(), create(), delete(), getAlias(), noCreate(), noDelete(), noUpdate(), refresh(), refreshFromLocationUrl(), waitFor()`

Methods inherited from OpenCloud\Common\Resource\BaseResource
`__construct(), findLink(), getClient(), getMetadata(), getParent(), getService(), getUrl(), jsonCollectionElement(), jsonCollectionName(), jsonName(), parseResponse(), resourceName(), setMetadata(), setParent(), setService()`

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

Properties summary
`protected `OpenCloud\Common\Metadata`` | $metadata | `` | #
`protected static string` | $json_name | `'group'` | #
`protected static string` | $url_resource | `'groups'` | #
`protected static string` | $json_collection_name | `'groups'` | #
`public array` | $createKeys | `array( 'groupConfiguration', 'launchConfiguration', 'scalingPolicies' )` | # These are used to set the object used for JSON encode. These are used to set the object used for JSON encode.
`public array` | $associatedResources | `array( 'groupConfiguration' => 'GroupConfiguration', 'launchConfiguration' => 'LaunchConfiguration', )` | # These resources are associated with this one. When this resource object is populated, if a key is found matching one of these array keys, it is set as an instantiated resource object (rather than an arbitrary string or stdClass object). These resources are associated with this one. When this resource object is populated, if a key is found matching one of these array keys, it is set as an instantiated resource object (rather than an arbitrary string or stdClass object).
`public array` | $associatedCollections | `array( 'scalingPolicies' => 'ScalingPolicy' )` | # Same as an associated resource, but it's instantiated as a Collection. Same as an associated resource, but it's instantiated as a Collection.

Properties inherited from OpenCloud\Common\Resource\BaseResource
`$parent, $service`

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