# File lib/fog/aws/models/compute/spot_request.rb, line 79
        def save
          requires :image_id, :flavor_id, :price

          options = {
            'AvailabilityZoneGroup'                          => availability_zone_group,
            'InstanceCount'                                  => instance_count,
            'LaunchGroup'                                    => launch_group,
            'LaunchSpecification.BlockDeviceMapping'         => block_device_mapping,
            'LaunchSpecification.KeyName'                    => key_name,
            'LaunchSpecification.Monitoring.Enabled'         => monitoring,
            'LaunchSpecification.Placement.AvailabilityZone' => availability_zone,
            'LaunchSpecification.SecurityGroup'              => groups,
            'LaunchSpecification.UserData'                   => user_data,
            'Type'                                           => request_type,
            'ValidFrom'                                      => valid_from,
            'ValidUntil'                                     => valid_until }
          options.delete_if {|key, value| value.nil?}

          data = connection.request_spot_instances(image_id, flavor_id, price, options).body
          spot_instance_request = data['spotInstanceRequestSet'].first
          spot_instance_request['launchSpecification'].each do |name,value|
            spot_instance_request['LaunchSpecification.' + name[0,1].upcase + name[1..-1]] = value
          end
          spot_instance_request.merge(:groups => spot_instance_request['LaunchSpecification.GroupSet'])
          spot_instance_request.merge(options)
          merge_attributes( spot_instance_request )
        end