# File lib/fog/aws/requests/lambda/create_event_source_mapping.rb, line 49
        def create_event_source_mapping(params={})
          enabled          = params.delete('Enabled')   || false
          batch_size       = params.delete('BatchSize') || 100
          event_source_arn = params.delete('EventSourceArn')
          function_name    = params.delete('FunctionName')
          starting_pos     = params.delete('StartingPosition')

          function = self.get_function_configuration('FunctionName' => function_name).body

          unless event_source_arn
            message  = "ValidationException => "
            message << "'eventSourceArn' cannot be blank"
            raise Fog::AWS::Lambda::Error, message
          end

          unless starting_pos
            message  = "ValidationException => "
            message << "'startingPosition' cannot be blank"
            raise Fog::AWS::Lambda::Error, message
          end

          event_source_mapping_id = UUID.uuid
          event_source_mapping = {
            'BatchSize'             => batch_size,
            'EventSourceArn'        => event_source_arn,
            'FunctionArn'           => function['FunctionArn'],
            'LastModified'          => Time.now.to_f,
            'LastProcessingResult'  => 'No records processed',
            'State'                 => 'Creating',
            'StateTransitionReason' => 'User action',
            'UUID'                  => event_source_mapping_id
          }

          self.data[:event_source_mappings].merge!(
            event_source_mapping_id => event_source_mapping
          )

          response = Excon::Response.new
          response.body = event_source_mapping
          response.status = 202
          response
        end