require 'hiera_puppet' module Puppet::Parser::Functions newfunction( :hiera, :type => :rvalue, :arity => -2, :doc => < ["Edith Franklin", "Ginny Hamilton"], # regular => ["Iris Jackson", "Kelly Lambert"]} ~~~ You can optionally generate the default value with a [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that takes one parameter. **Example**: Using `hiera` with a lambda ~~~ puppet # Assuming the same Hiera data as the previous example: $users = hiera('users') | $key | { "Key \'${key}\' not found" } # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"], # regular => ["Iris Jackson", "Kelly Lambert"]} # If hiera couldn't match its key, it would return the lambda result, # "Key 'users' not found". ~~~ The returned value's data type depends on the types of the results. In the example above, Hiera matches the 'users' key and returns it as a hash. See [the documentation](https://docs.puppetlabs.com/hiera/latest/puppet.html#hiera-lookup-functions) for more information about Hiera lookup functions. - Since 4.0.0 DOC ) do |*args| function_fail(["hiera() has been converted to 4x API"]) end end