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
|
module Fog
module AWS
class SNS
class Real
require 'fog/aws/parsers/sns/add_permission'
def add_permission(options = {})
request({
'Action' => 'AddPermission',
:parser => Fog::Parsers::AWS::SNS::AddPermission.new
}.merge!(options))
end
end
class Mock
def add_permission(options = {})
topic_arn = options.delete('TopicArn')
label = options.delete('Label')
actions = Hash[options.select { |k,v| k.match(/^ActionName/) }].values
members = Hash[options.select { |k,v| k.match(/^AWSAccountId/) }].values
self.data[:permissions][topic_arn][label] = {
:members => members,
:actions => actions,
}
response = Excon::Response.new
response.body = {"RequestId" => Fog::AWS::Mock.request_id}
response
end
end
end
end
end
|