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

support_tags?() click to toggle source
# File lib/geoengineer/resources/aws_sns_topic_subscription.rb, line 29
def support_tags?
  false
end
to_terraform_state() click to toggle source
# 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