    # File lib/fog/aws/models/compute/spot_request.rb, line 99
            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