18: def create_launch_configuration( options = {})
19: raise ArgumentError, "No :image_id provided" if options[:image_id].nil? || options[:image_id].empty?
20: raise ArgumentError, "No :launch_configuration_name provided" if options[:launch_configuration_name].nil? || options[:launch_configuration_name].empty?
21: raise ArgumentError, "No :instance_type provided" if options[:instance_type].nil? || options[:instance_type].empty?
22:
23: params = {}
24: params["ImageId"] = options[:image_id]
25: params["KeyName"] = options[:key_name] if options[:key_name]
26: params["LaunchConfigurationName"] = options[:launch_configuration_name]
27: params.merge!(pathlist('SecurityGroups.member', [options[:security_groups]].flatten)) if options[:security_groups]
28: params["UserData"] = options[:user_data] if options[:user_data]
29: params["InstanceType"] = options[:instance_type] if options[:instance_type]
30: params["KernelId"] = options[:kernel_id] if options[:kernel_id]
31: params["RamdiskId"] = options[:ramdisk_id] if options[:ramdisk_id]
32: params.merge!(pathlist('BlockDeviceMappings.member', [options[:block_device_mappings]].flatten)) if options[:block_device_mappings]
33:
34: return response_generator(:action => "CreateLaunchConfiguration", :params => params)
35: end