class GeoEngineer::Resources::AwsSnsTopicSubscription
AwsSnsSubscription is the sns_topic_subscription
terrform resource,
{www.terraform.io/docs/providers/aws/r/sns_topic_subscription.html Terraform Docs}
Public Class Methods
_fetch_remote_resources(provider)
click to toggle source
# File lib/geoengineer/resources/aws_sns_topic_subscription.rb, line 33 def self._fetch_remote_resources(provider) _get_all_subscriptions(provider).map do |subscription| { _terraform_id: subscription[:subscription_arn], _geo_id: "#{subscription[:topic_arn]}::" \ "#{subscription[:protocol]}::" \ "#{subscription[:endpoint]}" } end end
_get_all_subscriptions(provider)
click to toggle source
# File lib/geoengineer/resources/aws_sns_topic_subscription.rb, line 44 def self._get_all_subscriptions(provider) subs_page = AwsClients.sns(provider).list_subscriptions subs = subs_page.subscriptions.map(&:to_h) while subs_page.next_token subs_page = AwsClients.sns(provider).list_subscriptions({ next_token: subs_page.next_token }) subs.concat subs_page.subscriptions.map(&:to_h) end subs end
Public Instance Methods
to_terraform_state()
click to toggle source
Calls superclass method
GeoEngineer::Resource#to_terraform_state
# File lib/geoengineer/resources/aws_sns_topic_subscription.rb, line 16 def to_terraform_state tfstate = super tfstate[:primary][:attributes] = { 'topic_arn' => topic_arn, 'endpoint' => endpoint, 'protocol' => protocol, 'confirmation_timeout_in_minutes' => "1", 'endpoint_auto_confirms' => "false", 'raw_message_delivery' => "false" } tfstate end