Groups

List all groups

$groups = $service->groupList();
foreach ($group as $group) {
  /** @var $group OpenCloud\Autoscale\Resources\Group */
}

Please consult the iterator guide for more information about iterators.

Retrieve group by ID

$group = $service->group('{groupId}');

Create a new group

// Set the config object for this autoscale group; contains all of properties
// which determine its behaviour
$groupConfig = array(
  'name'        => 'new_autoscale_group',
  'minEntities' => 5,
  'maxEntities' => 25,
  'cooldown'    => 60,
);

// We need specify what is going to be launched. For now, we'll launch a new server
$launchConfig = array(
  'type' => 'launch_server',
  'args' => array(
    'server' => array(
      'flavorRef' => 3,
      'name'      => 'webhead',
      'imageRef'  => '0d589460-f177-4b0f-81c1-8ab8903ac7d8'
    ),
    'loadBalancers' => array(
      array('loadBalancerId' => 2200, 'port' => 8081),
    )
  )
);

// Do we want particular scaling policies?
$policy = array(
  'name'     => 'scale up by 10',
  'change'   => 10,
  'cooldown' => 5,
  'type'     => 'webhook',
);

$group->create(array(
  'groupConfiguration'  => $groupConfig,
  'launchConfiguration' => $launchConfig,
  'scalingPolicies'     => array($policy),
));

Delete a group

$group->delete();

Get the current state of the scaling group

$group->getState();