diff --git a/lib/fog/aws/parsers/sns/list_subscriptions_by_topic.rb b/lib/fog/aws/parsers/sns/list_subscriptions_by_topic.rb new file mode 100644 index 000000000..db44bf5cf --- /dev/null +++ b/lib/fog/aws/parsers/sns/list_subscriptions_by_topic.rb @@ -0,0 +1,29 @@ +module Fog + module Parsers + module AWS + module SNS + + class ListSubscriptionsByTopic < Fog::Parsers::Base + + def reset + @response = { 'Subscriptions' => [] } + @subscription = {} + end + + def end_element(name) + case name + when "TopicArn", "Protocol", "SubscriptionArn", "Owner", "Endpoint" + @subscription[name] = @value + when "member" + @response['Subscriptions'] << @subscription + @subscription = {} + when 'RequestId', 'NextToken' + @response[name] = @value + end + end + end + + end + end + end +end diff --git a/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb b/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb new file mode 100644 index 000000000..795ce688c --- /dev/null +++ b/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb @@ -0,0 +1,27 @@ +module Fog + module AWS + class SNS + class Real + + require 'fog/aws/parsers/sns/list_subscriptions_by_topic' + + def list_subscriptions_by_topic(options = {}) + request({ + 'Action' => 'ListSubscriptionsByTopic', + :parser => Fog::Parsers::AWS::SNS::ListSubscriptionsByTopic.new + }.merge!(options)) + end + + end + + class Mock + + def list_subscriptions_by_topic + Fog::Mock.not_implemented + end + + end + + end + end +end diff --git a/lib/fog/aws/sns.rb b/lib/fog/aws/sns.rb index 7fca78265..fe7ea6941 100644 --- a/lib/fog/aws/sns.rb +++ b/lib/fog/aws/sns.rb @@ -8,6 +8,7 @@ module Fog request_path 'fog/aws/requests/sns' request :get_topic_attributes request :list_subscriptions + request :list_subscriptions_by_topic request :list_topics class Mock