# Auto Scale v2

Note

This service is only available for Rackspace users.

## Setup

The first step is to pass in your credentials and set up a client. For Rackspace users, you will need your username and API key:

    use OpenCloud\Rackspace;

    $client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, array(
      'username' => '{username}',
      'apiKey'   => '{apiKey}',
    ));

### Auto Scale service

Now to instantiate the Auto Scale service:

    $service = $client->autoscaleService();

- `{catalogName}` is the name of the service as it appears in the service catalog. OpenStack users must set this value. For Rackspace users, a default will be provided if you pass in `null`.
- `{region}` is the region the service will operate in. For Rackspace users, you can select one of the following from the supported regions page.
- `{urlType}` is the type of URL to use, depending on which endpoints your catalog provides. If omitted, it will default to the public network.

## Operations

- Groups
  - List all groups
  - Retrieve group by ID
  - Create a new group
  - Delete a group
  - Get the current state of the scaling group
- Group configurations
  - Setup
  - Get group configuration
  - Edit group configuration
  - Get launch configuration
  - Edit group/launch configuration
- Scaling Policies
  - Setup
  - Get all policies
  - Create new scaling policies
  - Get an existing scaling policy
  - Update a scaling policy
  - Delete a scaling policy
  - Execute a scaling policy
- Webhooks
  - Setup
  - Get all webhooks
  - Create a new webhook
  - Get webhook
  - Update webhook
  - Delete webhook

## Glossary

group
  The scaling group is at the heart of an Auto Scale deployment. The scaling group specifies the basic elements of the Auto Scale configuration. It manages how many servers can participate in the scaling group. It also specifies information related to load balancers if your configuration uses a load balancer.
group configuration
  Outlines the basic elements of the Auto Scale configuration. The group configuration manages how many servers can participate in the scaling group. It sets a minimum and maximum limit for the number of entities that can be used in the scaling process. It also specifies information related to load balancers.
launch configuration
  Creates a blueprint for how new servers will be created. The launch configuration specifies what type of server image will be started on launch, what flavor the new server is, and which load balancer the new server connects to.
policy
  Auto Scale uses policies to define the scaling activity that will take place, as well as when and how that scaling activity will take place. Scaling policies specify how to modify the scaling group and its behavior. You can specify multiple policies to manage a scaling group.
webhook
  A webhook is a reachable endpoint that when visited will execute a scaling policy for a particular scaling group.

## Further Links

> - Getting Started Guide for the API
> - API Developer Guide
> - API release history