class AWS::AutoScaling::GroupCollection

Public Instance Methods

[](name) click to toggle source

@param [String] name The name of the Auto Scaling group. @return [Group]

# File lib/aws/auto_scaling/group_collection.rb, line 66
def [] name
  Group.new(name, :config => config)
end
create(name, options = {}) click to toggle source

Creates an Auto Scaling Group.

group = auto_scaling.groups.create('group-name', 
  :launch_configuration => 'launch-config-name',
  :availability_zones => %Q(us-east-1a us-east-1b),
  :min_size => 1,
  :max_size => 4)

@param [String] name The name of the Auto Scaling group.

Must be unique within the scope of your AWS account.

@param [Hash] options

@option (see AWS::AutoScaling::GroupOptions#group_options)

@option options [Array<ELB::LoadBalancer>,Array<String>] :load_balancers

A list of load balancers to use.  This can be an array of 
{ELB::LoadBalancer} objects or an array of load balancer names.

@return [Group]

# File lib/aws/auto_scaling/group_collection.rb, line 43
def create name, options = {}

  unless options[:launch_configuration]
    raise ArgumentError, 'missing required option :launch_configuration'
  end

  group_opts = group_options(options)
  group_opts[:auto_scaling_group_name] = name

  if balancers = options[:load_balancers]
    group_opts[:load_balancer_names] = balancers.collect do |balancer|
      balancer.is_a?(ELB::LoadBalancer) ? balancer.name : balancer
    end
  end

  client.create_auto_scaling_group(group_opts)

  self[name]

end

Protected Instance Methods

_each_item(next_token, limit, options = {}) { |group| ... } click to toggle source
# File lib/aws/auto_scaling/group_collection.rb, line 72
def _each_item next_token, limit, options = {}, &block

  options[:next_token] = next_token if next_token
  options[:max_records] = limit if limit

  resp = client.describe_auto_scaling_groups(options)
  resp.auto_scaling_groups.each do |details|
    
    group = Group.new_from(
      :describe_auto_scaling_groups,
      details,
      details.auto_scaling_group_name,
      :config => config)

    yield(group)
    
  end

  resp.next_token if resp.respond_to?(:next_token)

end