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