code: def create_launch_configuration(self, launch_config):
          
          params = {'ImageId': launch_config.image_id,
                    'LaunchConfigurationName': launch_config.name,
                    'InstanceType': launch_config.instance_type}
          if launch_config.key_name:
              params['KeyName'] = launch_config.key_name
          if launch_config.user_data:
              params['UserData'] = base64.b64encode(launch_config.user_data)
          if launch_config.kernel_id:
              params['KernelId'] = launch_config.kernel_id
          if launch_config.ramdisk_id:
              params['RamdiskId'] = launch_config.ramdisk_id
          if launch_config.block_device_mappings:
              self.build_list_params(params, launch_config.block_device_mappings,
                                     'BlockDeviceMappings')
          if launch_config.security_groups:
              self.build_list_params(params, launch_config.security_groups,
                                     'SecurityGroups')
          if launch_config.instance_monitoring:
              params['InstanceMonitoring.Enabled'] = 'true'
          return self.get_object('CreateLaunchConfiguration', params,
                                 Request, verb='POST')
docs: Creates a new Launch Configuration.
  
          :type launch_config: :class:`boto.ec2.autoscale.launchconfig.LaunchConfiguration`
          :param launch_config: LaunchConfiguration object.