Class: CloudFormation::Bridge::Resources::SubscribeQueueToTopic
- Defined in:
- lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb
Constant Summary collapse
- ARN =
'Arn'- ENDPOINT =
'Endpoint'- PROTOCOL =
'Protocol'- TOPIC_ARN =
'TopicArn'- QUEUE_NAME =
'QueueName'- REQUIRED_FIELDS =
[ TOPIC_ARN, QUEUE_NAME, ]
Instance Method Summary collapse
- #create(request) ⇒ Object
- #delete(request) ⇒ Object
- #queues ⇒ Object
- #sns ⇒ Object
- #subscriptions ⇒ Object
- #topics ⇒ Object
Methods inherited from Base
Instance Method Details
#create(request) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb', line 23 def create(request) require_fields(request, REQUIRED_FIELDS) queue = queues.named(request.resource_properties[QUEUE_NAME]) topic = topics[request.resource_properties[TOPIC_ARN]] subscription = topic.subscribe(queue) { FIELDS::PHYSICAL_RESOURCE_ID => subscription.arn, FIELDS::DATA => { ARN => subscription.arn, ENDPOINT => subscription.endpoint, PROTOCOL => subscription.protocol, }, } end |
#delete(request) ⇒ Object
41 42 43 44 |
# File 'lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb', line 41 def delete(request) subscription = subscriptions[request.physical_resource_id] subscription.unsubscribe if subscription && subscription.exists? end |
#queues ⇒ Object
58 59 60 |
# File 'lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb', line 58 def queues @queues ||= AWS::SQS.new.queues end |
#sns ⇒ Object
54 55 56 |
# File 'lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb', line 54 def sns @sns ||= AWS::SNS.new end |
#subscriptions ⇒ Object
50 51 52 |
# File 'lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb', line 50 def subscriptions @subscriptions ||= sns.subscriptions end |
#topics ⇒ Object
46 47 48 |
# File 'lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb', line 46 def topics @topics ||= sns.topics end |