File: get_event_source_mapping.rb

package info (click to toggle)
ruby-fog-aws 3.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,140 kB
  • sloc: ruby: 73,328; javascript: 14; makefile: 9; sh: 4
file content (54 lines) | stat: -rw-r--r-- 2,412 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
module Fog
  module AWS
    class Lambda
      class Real
        # Returns configuration information for the specified event source mapping.
        # http://docs.aws.amazon.com/lambda/latest/dg/API_GetEventSourceMapping.html
        # ==== Parameters
        # * UUID <~String> - AWS Lambda assigned ID of the event source mapping.
        # ==== Returns
        # * response<~Excon::Response>:
        #   * body<~Hash>:
        #     * 'BatchSize' <~Integer> - largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function.
        #     * 'EventSourceArn' <~String> - Amazon Resource Name (ARN) of the stream that is the source of events.
        #     * 'FunctionArn' <~String> - Lambda function to invoke when AWS Lambda detects an event on the stream.
        #     * 'LastModified' <~Time> - UTC time string indicating the last time the event mapping was updated.
        #     * 'LastProcessingResult' <~String> - result of the last AWS Lambda invocation of your Lambda function.
        #     * 'State' <~String> - state of the event source mapping.
        #     * 'StateTransitionReason' <~String> - reason the event source mapping is in its current state.
        #     * 'UUID' <~String> - AWS Lambda assigned opaque identifier for the mapping.
        #     * 'Code' <~Hash> - object for the Lambda function location.
        #     * 'Configuration' <~Hash> - function metadata description.
        def get_event_source_mapping(params={})
          mapping_id = params.delete('UUID')
          request({
            :method  => 'GET',
            :path    => "/event-source-mappings/#{mapping_id}"
          }.merge(params))
        end
      end

      class Mock
        def get_event_source_mapping(params={})
          mapping_id = params.delete('UUID')

          unless mapping = self.data[:event_source_mappings][mapping_id]
            message  = 'ResourceNotFoundException => '
            message << 'The resource you requested does not exist.'
            raise Fog::AWS::Lambda::Error, message
          end

          if mapping['State'].eql?('Creating')
            mapping['LastProcessingResult'] = 'OK'
            mapping['State'] = 'Enabled'
          end

          response = Excon::Response.new
          response.status = 200
          response.body = mapping
          response
        end
      end
    end
  end
end