47: def create_autoscaling_group( options = {} )
48: raise ArgumentError, "No :autoscaling_group_name provided" if options[:autoscaling_group_name].nil? || options[:autoscaling_group_name].empty?
49: raise ArgumentError, "No :availability_zones provided" if options[:availability_zones].nil? || options[:availability_zones].empty?
50: raise ArgumentError, "No :launch_configuration_name provided" if options[:launch_configuration_name].nil? || options[:launch_configuration_name].empty?
51: raise ArgumentError, "No :min_size provided" if options[:min_size].nil?
52: raise ArgumentError, "No :max_size provided" if options[:max_size].nil?
53:
54: params = {}
55:
56: params.merge!(pathlist('AvailabilityZones.member', [options[:availability_zones]].flatten))
57: params['LaunchConfigurationName'] = options[:launch_configuration_name]
58: params['AutoScalingGroupName'] = options[:autoscaling_group_name]
59: params['MinSize'] = options[:min_size].to_s
60: params['MaxSize'] = options[:max_size].to_s
61: params.merge!(pathlist("LoadBalancerNames.member", [options[:load_balancer_names]].flatten)) if options.has_key?(:load_balancer_names)
62: params['Cooldown'] = options[:cooldown] if options[:cooldown]
63:
64: return response_generator(:action => "CreateAutoScalingGroup", :params => params)
65: end