class Awry::Ssm

Public Instance Methods

client() click to toggle source
# File lib/awry/ssm.rb, line 6
def client
  @_client ||= Aws::SSM::Client.new
end
delete(name) click to toggle source
# File lib/awry/ssm.rb, line 47
def delete(name)
  if yes?("Really delete parameter #{name}?", :yellow)
    client.delete_parameter(name: name)
  end
rescue Aws::SSM::Errors::ParameterNotFound => e
  error(e.message)
end
get(name) click to toggle source
# File lib/awry/ssm.rb, line 22
def get(name)
  puts client.get_parameter(name: name, with_decryption: options[:decrypt]).parameter.value
rescue Aws::SSM::Errors::ParameterNotFound => e
  error(e.message)
end
ls(prefix = '/') click to toggle source
# File lib/awry/ssm.rb, line 12
def ls(prefix = '/')
  filters = [ { key: :Name, option: :BeginsWith, values: [ prefix.sub(/^(\w)/, '/\1') ] } ]
  client.describe_parameters(parameter_filters: filters).each do |response|
    response.parameters.each { |p| puts p.name }
    sleep 0.1               # this api will throttle easily
  end
end
put(name, value) click to toggle source
# File lib/awry/ssm.rb, line 33
def put(name, value)
  client.put_parameter(
    name:        name,
    value:       value,
    description: options[:description],
    type:        options[:type],
    key_id:      options[:key_id],
    overwrite:   options[:overwrite],
  )
rescue Aws::SSM::Errors::ParameterAlreadyExists => e
  error(e.message)
end