diff --git a/lib/fog/aws/parsers/sns/create_topic.rb b/lib/fog/aws/parsers/sns/create_topic.rb new file mode 100644 index 000000000..5b11350e9 --- /dev/null +++ b/lib/fog/aws/parsers/sns/create_topic.rb @@ -0,0 +1,24 @@ +module Fog + module Parsers + module AWS + module SNS + + class CreateTopic < Fog::Parsers::Base + + def reset + @response = {} + end + + def end_element(name) + case name + when 'TopicArn', 'RequestId' + @response[name] = @value + end + end + + end + + end + end + end +end diff --git a/lib/fog/aws/parsers/sns/delete_topic.rb b/lib/fog/aws/parsers/sns/delete_topic.rb new file mode 100644 index 000000000..0a0a27ff3 --- /dev/null +++ b/lib/fog/aws/parsers/sns/delete_topic.rb @@ -0,0 +1,24 @@ +module Fog + module Parsers + module AWS + module SNS + + class DeleteTopic < Fog::Parsers::Base + + def reset + @response = {} + end + + def end_element(name) + case name + when 'RequestId' + @response[name] = @value + end + end + + end + + end + end + end +end diff --git a/lib/fog/aws/requests/sns/create_topic.rb b/lib/fog/aws/requests/sns/create_topic.rb new file mode 100644 index 000000000..ec864acaa --- /dev/null +++ b/lib/fog/aws/requests/sns/create_topic.rb @@ -0,0 +1,26 @@ +module Fog + module AWS + class SNS + class Real + + require 'fog/aws/parsers/sns/create_topic' + + def create_topic(options = {}) + request({ + 'Action' => 'CreateTopic', + :parser => Fog::Parsers::AWS::SNS::CreateTopic.new + }.merge!(options)) + end + + end + + class Mock + + def create_topic(options = {}) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/aws/requests/sns/delete_topic.rb b/lib/fog/aws/requests/sns/delete_topic.rb new file mode 100644 index 000000000..ba9972399 --- /dev/null +++ b/lib/fog/aws/requests/sns/delete_topic.rb @@ -0,0 +1,26 @@ +module Fog + module AWS + class SNS + class Real + + require 'fog/aws/parsers/sns/delete_topic' + + def delete_topic(options = {}) + request({ + 'Action' => 'DeleteTopic', + :parser => Fog::Parsers::AWS::SNS::DeleteTopic.new + }.merge!(options)) + end + + end + + class Mock + + def delete_topic(options = {}) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/aws/sns.rb b/lib/fog/aws/sns.rb index fe7ea6941..56e08bd47 100644 --- a/lib/fog/aws/sns.rb +++ b/lib/fog/aws/sns.rb @@ -6,6 +6,8 @@ module Fog recognizes :host, :path, :port, :scheme, :persistent request_path 'fog/aws/requests/sns' + request :create_topic + request :delete_topic request :get_topic_attributes request :list_subscriptions request :list_subscriptions_by_topic