class GeoEngineer::Resources::AwsKinesisStream

AwsKinesisStream is the aws_kinesis_stream terrform resource,

{www.terraform.io/docs/providers/aws/r/aws_kinesis_stream.html Terraform Docs}

Public Class Methods

_all_streams(provider) click to toggle source
# File lib/geoengineer/resources/aws_kinesis_stream.rb, line 29
def self._all_streams(provider)
  AwsClients.kinesis(provider)
            .list_streams[:stream_names]
            .map { |s| self._stream_description(s) }
end
_fetch_remote_resources(provider) click to toggle source
# File lib/geoengineer/resources/aws_kinesis_stream.rb, line 35
def self._fetch_remote_resources(provider)
  self._all_streams(provider).map do |stream|
    stream.merge({
                   _terraform_id: stream[:stream_arn],
                   _geo_id: stream[:stream_name]
                 })
  end
end
_stream_description(stream_name) click to toggle source
# File lib/geoengineer/resources/aws_kinesis_stream.rb, line 22
def self._stream_description(stream_name)
  AwsClients.kinesis
            .describe_stream({ stream_name: stream_name })
            .stream_description
            .to_h
end

Public Instance Methods

to_terraform_state() click to toggle source
# File lib/geoengineer/resources/aws_kinesis_stream.rb, line 13
def to_terraform_state
  tfstate = super
  tfstate[:primary][:attributes] = {
    'name' => self.name,
    'shard_count' => self.shard_count.to_s
  }
  tfstate
end