class SsmEnv::Fetcher

Attributes

client[R]
ssm_params[RW]

Public Class Methods

new(client: ) click to toggle source
# File lib/ssm_env/fetcher.rb, line 8
def initialize(client: )
  @client = client
end

Public Instance Methods

fetch(params: ) click to toggle source
# File lib/ssm_env/fetcher.rb, line 12
def fetch(params: )
  batch_size, self.ssm_params = 10, {}

  params.each_slice(batch_size) do |params_slice|
    response = self.client.get_parameters(names: params_slice, with_decryption: true)
    # Transforms to { :name => { value: value, type: type } }
    response_params = Hash[response.parameters.map { |item| [item.name.to_sym, {value: item.value, type: item.type}] }]
    response_params.each do |name, attributes|
      self.ssm_params[name] ||= {}
      self.ssm_params[name][:value] = attributes[:value]
      self.ssm_params[name][:type] = attributes[:type]
    end
  end
  self.ssm_params
end