Forge Home

stdlib

Standard library of resources for Puppet modules.

119,658,392 downloads

3,433 latest version

4.7 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 9.6.0 (latest)
  • 9.5.0
  • 9.4.1
  • 9.4.0
  • 9.3.0
  • 9.2.0
  • 9.1.0
  • 9.0.0
  • 8.6.0
  • 8.5.0
  • 8.4.0
  • 8.3.0
  • 8.2.0
  • 8.1.0
  • 8.0.0
  • 7.1.0
  • 7.0.1
  • 7.0.0
  • 6.6.0
  • 6.5.0
  • 6.4.0
  • 6.3.0
  • 6.2.0
  • 6.1.0
  • 6.0.0
  • 5.2.0
  • 5.1.0
  • 5.0.0
  • 4.25.1
  • 4.25.0
  • 4.24.0
  • 4.23.0
  • 4.22.0
  • 4.21.0
  • 4.20.0
  • 4.19.0
  • 4.18.0
  • 4.17.1
  • 4.17.0
  • 4.16.0
  • 4.15.0
  • 4.14.0
  • 4.13.1
  • 4.13.0
  • 4.12.0
  • 4.11.0
  • 4.10.0
  • 4.9.1
  • 4.9.0
  • 4.8.0
  • 4.7.0
  • 4.6.0
  • 4.5.1
  • 4.5.0
  • 4.4.0
  • 4.3.2
  • 4.3.0
  • 4.2.2
  • 4.2.1
  • 4.2.0
  • 4.1.0
  • 3.2.2
  • 3.2.1
  • 3.2.0
  • 3.1.1
  • 3.1.0
  • 3.0.1
  • 3.0.0
  • 2.6.0
  • 2.5.1
  • 2.5.0
  • 2.4.0
  • 2.3.3
  • 2.3.2
  • 2.3.1
  • 2.3.0
  • 2.2.1
  • 2.2.0
  • 2.1.3
  • 2.0.0
  • 1.1.0
  • 1.0.0
  • 0.1.7
  • 0.1.6
  • 0.1.5
  • 0.1.4
  • 0.1.3
  • 0.1.2
  • 0.1.1
released Apr 3rd 2024
This version is compatible with:
  • Puppet Enterprise 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
  • Puppet >= 7.0.0 < 9.0.0
  • , , , , , , , , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'puppetlabs-stdlib', '9.6.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add puppetlabs-stdlib
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install puppetlabs-stdlib --version 9.6.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

puppetlabs/stdlib — version 9.6.0 Apr 3rd 2024

Reference

Table of Contents

Classes

  • stdlib: This module manages stdlib.
  • stdlib::manage: A simple place to define trivial resources
  • stdlib::stages: This class manages a standard set of run stages for Puppet. It is managed by the stdlib class, and should not be declared independently.

Resource types

  • anchor: A simple resource type intended to be used as an anchor in a composite class.
  • file_line: Ensures that a given line is contained within a file.

Functions

  • any2array: This converts any object to an array containing that object.
  • any2bool: Converts 'anything' to a boolean.
  • assert_private: Sets the current class or definition as private.
  • base64: Base64 encode or decode a string based on the command and the string submitted
  • basename: Strips directory (and optional suffix) from a filename
  • batch_escape: DEPRECATED. Use the namespaced function stdlib::batch_escape instead.
  • bool2num: Converts a boolean to a number.
  • bool2str: Converts a boolean to a string using optionally supplied arguments.
  • clamp: Keeps value within the range [Min, X, Max] by sort based on integer value (parameter order doesn't matter).
  • concat: Appends the contents of multiple arrays into array 1.
  • convert_base: Converts a given integer or base 10 string representing an integer to a specified base, as a string.
  • count: Counts the number of elements in array.
  • deep_merge: Recursively merges two or more hashes together and returns the resulting hash.
  • defined_with_params: Takes a resource reference and an optional hash of attributes.
  • delete: Deletes all instances of a given element from an array, substring from a string, or key from a hash.
  • delete_at: Deletes a determined indexed value from an array.
  • delete_regex: Deletes all instances of a given element that match a regular expression from an array or key from a hash.
  • delete_undef_values: Returns a copy of input hash or array with all undefs deleted.
  • delete_values: Deletes all instances of a given value from a hash.
  • deprecation: Function to print deprecation warnings, Logs a warning once for a given key.
  • difference: This function returns the difference between two arrays.
  • dirname: Returns the dirname of a path.
  • dos2unix: Returns the Unix version of the given string.
  • enclose_ipv6: Takes an array of ip addresses and encloses the ipv6 addresses with square brackets.
  • ensure_packages: DEPRECATED. Use the namespaced function stdlib::ensure_packages instead.
  • ensure_resource: Takes a resource type, title, and a list of attributes that describe a resource.
  • ensure_resources: Takes a resource type, title (only hash), and a list of attributes that describe a resource.
  • fact: Digs into the facts hash using dot-notation
  • fqdn_rand_string: DEPRECATED. Use the namespaced function stdlib::fqdn_rand_string instead.
  • fqdn_rotate: DEPRECATED. Use the namespaced function stdlib::fqdn_rotate instead.
  • fqdn_uuid: Returns a RFC 4122 valid version 5 UUID based on an FQDN string under the DNS namespace
  • get_module_path: Returns the absolute path of the specified module for the current environment.
  • getparam: Returns the value of a resource's parameter.
  • glob: Uses same patterns as Dir#glob.
  • grep: This function searches through an array and returns any elements that match the provided regular expression.
  • has_interface_with: DEPRECATED. Use the namespaced function stdlib::has_interface_with instead.
  • has_interface_with: Returns boolean based on kind and value.
  • has_ip_address: Returns true if the client has the requested IP address on some interface.
  • has_ip_network: Returns true if the client has an IP address within the requested network.
  • intersection: This function returns an array of the intersection of two.
  • is_a: Boolean check to determine whether a variable is of a given data type. This is equivalent to the =~ type checks.
  • join_keys_to_values: This function joins each key of a hash to that key's corresponding value with a separator.
  • load_module_metadata: This function loads the metadata of a given module.
  • loadjson: Load a JSON file containing an array, string, or hash, and return the data in the corresponding native data type.
  • loadyaml: Load a YAML file containing an array, string, or hash, and return the data in the corresponding native data type.
  • member: This function determines if a variable is a member of an array.
  • merge: DEPRECATED. Use the namespaced function stdlib::merge instead.
  • merge: Merges two or more hashes together and returns the resulting hash.
  • num2bool: This function converts a number or a string representation of a number into a true boolean.
  • os_version_gte: DEPRECATED. Use the namespaced function stdlib::os_version_gte instead.
  • parsehocon: DEPRECATED. Use the namespaced function stdlib::parsehocon instead.
  • parsejson: This function accepts JSON as a string and converts it into the correct Puppet structure.
  • parsepson: Deprecated: Starting Puppet 8, we no longer natively support PSON usage. This function should be removed once we stop supporting Puppet 7.

This function accepts PSON, a Puppet variant of JSON, as a string and converts it into the correct Puppet structure

  • parseyaml: This function accepts YAML as a string and converts it into the correct Puppet structure.
  • pick: This function will return the first value in a list of values that is not undefined or an empty string.
  • pick_default: This function will return the first value in a list of values that is not undefined or an empty string.
  • powershell_escape: DEPRECATED. Use the namespaced function stdlib::powershell_escape instead.
  • prefix: This function applies a prefix to all elements in an array or a hash.
  • pry: This function invokes a pry debugging session in the current scope object.
  • pw_hash: Hashes a password using the crypt function. Provides a hash usable on most POSIX systems.
  • range: When given range in the form of (start, stop) it will extrapolate a range as an array.
  • regexpescape: Regexp escape a string or array of strings. Requires either a single string or an array as an input.
  • reject: This function searches through an array and rejects all elements that match the provided regular expression.
  • reverse: Reverses the order of a string or array.
  • seeded_rand: DEPRECATED. Use the namespaced function stdlib::seeded_rand instead.
  • seeded_rand_string: DEPRECATED. Use the namespaced function stdlib::seeded_rand_string instead.
  • shell_escape: DEPRECATED. Use the namespaced function stdlib::shell_escape instead.
  • shell_join: Builds a command line string from the given array of strings. Each array item is escaped for Bourne shell. All items are then joined together
  • shell_split: Splits a string into an array of tokens in the same way the Bourne shell does.
  • shuffle: @summary Randomizes the order of a string or array elements.
  • squeeze: Returns a new string where runs of the same character that occur in this set are replaced by a single character.
  • stdlib::batch_escape: Escapes a string so that it can be safely used in a batch shell command line.
  • stdlib::crc32: Run a CRC32 calculation against a given value.
  • stdlib::deferrable_epp: This function returns either a rendered template or a deferred function to render at runtime. If any of the values in the variables hash are
  • stdlib::end_with: Returns true if str ends with one of the prefixes given. Each of the prefixes should be a String.
  • stdlib::ensure: function to cast ensure parameter to resource specific value
  • stdlib::ensure_packages: Takes a list of packages and only installs them if they don't already exist.
  • stdlib::extname: Returns the Extension (the Portion of Filename in Path starting from the last Period).
  • stdlib::fqdn_rand_string: Generates a random alphanumeric string. Combining the $fqdn fact and an optional seed for repeatable randomness.
  • stdlib::fqdn_rotate: Rotates an array or string a random number of times, combining the fqdn fact and an optional seed for repeatable randomness.
  • stdlib::has_function: Returns whether the Puppet runtime has access to a given function.
  • stdlib::has_interface_with: Returns boolean based on network interfaces present and their attribute values.
  • stdlib::ip_in_range: Returns true if the ipaddress is within the given CIDRs
  • stdlib::merge: Merges two or more hashes together or hashes resulting from iteration, and returns the resulting hash.
  • stdlib::nested_values: Get list of nested values from given hash This function will return list of nested Hash values and returns list of values in form of Array
  • stdlib::os_version_gte: Checks if the OS version is at least a certain version.
  • stdlib::parsehocon: This function accepts HOCON as a string and converts it into the correct Puppet structure
  • stdlib::powershell_escape: Escapes a string so that it can be safely used in a PowerShell command line.
  • stdlib::seeded_rand: Generates a random whole number greater than or equal to 0 and less than max, using the value of seed for repeatable randomness.
  • stdlib::seeded_rand_string: Generates a consistent random string of specific length based on provided seed.
  • stdlib::sha256: Run a SHA256 calculation against a given value.
  • stdlib::shell_escape: Escapes a string so that it can be safely used in a Bourne shell command line.
  • stdlib::sort_by: Sort an Array, Hash or String by mapping values through a given block.
  • stdlib::start_with: Returns true if str starts with one of the prefixes given. Each of the prefixes should be a String.
  • stdlib::str2resource: This converts a string to a puppet resource.
  • stdlib::time: This function is deprecated. It implements the functionality of the original non-namespaced stdlib time function.
  • stdlib::to_json: Convert a data structure and output to JSON
  • stdlib::to_json_pretty: Convert data structure and output to pretty JSON
  • stdlib::to_python: Convert an object into a String containing its Python representation
  • stdlib::to_ruby: Convert an object into a String containing its Ruby representation
  • stdlib::to_toml: Convert a data structure and output to TOML.
  • stdlib::to_yaml: Convert a data structure and output it as YAML
  • stdlib::type_of: Returns the type of the passed value.
  • stdlib::validate_domain_name: Validate that all values passed are syntactically correct domain names. Fail compilation if any value fails this check.
  • stdlib::validate_email_address: Validate that all values passed are valid email addresses. Fail compilation if any value fails this check.
  • stdlib::xml_encode: Encode strings for XML files
  • str2bool: This converts a string to a boolean.
  • str2saltedpbkdf2: Convert a string into a salted SHA512 PBKDF2 password hash like requred for OS X / macOS 10.8+
  • str2saltedsha512: This converts a string to a salted-SHA512 password hash (which is used for OS X versions >= 10.7).
  • suffix: This function applies a suffix to all elements in an array, or to the keys in a hash.
  • swapcase: This function will swap the existing case of a string.
  • time: DEPRECATED. Use the native Puppet fuctionality instead of this function. eg Integer(Timestamp().strftime('%s'))
  • to_bytes: Converts the argument into bytes, for example 4 kB becomes 4096.
  • to_json: DEPRECATED. Use the namespaced function stdlib::to_json instead.
  • to_json_pretty: DEPRECATED. Use the namespaced function stdlib::to_json_pretty instead.
  • to_python: DEPRECATED. Use the namespaced function stdlib::to_python instead.
  • to_ruby: DEPRECATED. Use the namespaced function stdlib::to_ruby instead.
  • to_toml: DEPRECATED. Use the namespaced function stdlib::to_toml instead.
  • to_yaml: DEPRECATED. Use the namespaced function stdlib::to_yaml instead.
  • type_of: DEPRECATED. Use the namespaced function stdlib::type_of instead.
  • union: This function returns a union of two or more arrays.
  • unix2dos: Returns the DOS version of the given string.
  • uriescape: Urlencodes a string or array of strings. Requires either a single string or an array as an input.
  • validate_augeas: Perform validation of a string using an Augeas lens
  • validate_cmd: Perform validation of a string with an external command.
  • validate_domain_name: DEPRECATED. Use the namespaced function stdlib::validate_domain_name instead.
  • validate_email_address: DEPRECATED. Use the namespaced function stdlib::validate_email_address instead.
  • validate_legacy: Deprecated: Validate a value against both the target_type (new).
  • validate_x509_rsa_key_pair: Validates a PEM-formatted X.509 certificate and RSA private key using OpenSSL.
  • values_at: Finds value inside an array based on location.
  • zip: Takes one element from first array and merges corresponding elements from second array.

Data types

Classes

stdlib

Most of stdlib's features are automatically loaded by Puppet, but this class should be declared in order to use the standardized run stages.

Declares all other classes in the stdlib module. Currently, this consists of stdlib::stages and stdlib::manage.

stdlib::manage

Sometimes your systems require a single simple resource. It can feel unnecessary to create a module for a single resource. There are a number of possible patterns to generate trivial resource definitions. This is an attempt to create a single clear method for uncomplicated resources. There is limited support for before, require, notify, and subscribe.

Examples

class { 'stdlib::manage':
  'create_resources'      => {
    'file'                => {
      '/etc/motd.d/hello' => {
        'content'         => 'I say Hi',
        'notify'          => 'Service[sshd]',
      },
      '/etc/motd'         => {
        'ensure'          => 'file',
        'epp'             => {
          'template'      => 'profile/motd.epp',
        }
      },
      '/etc/information'  => {
        'ensure'          => 'file',
        'erb'             => {
          'template'      => 'profile/informaiton.erb',
        }
      }
    },
    'package'             => {
      'example'           => {
        'ensure'          => 'installed',
        'subscribe'       => ['Service[sshd]', 'Exec[something]'],
      }
    }
  }
}
stdlib::manage::create_resources:
  file:
    '/etc/motd.d/hello':
      content: I say Hi
      notify: 'Service[sshd]'
    '/etc/motd':
      ensure: 'file'
      epp:
        template: 'profile/motd.epp'
        context: {}
    '/etc/information':
      ensure: 'file'
      erb:
        template: 'profile/information.erb'
  package:
    example:
      ensure: installed
      subscribe:
        - 'Service[sshd]'
        - 'Exec[something]'

Parameters

The following parameters are available in the stdlib::manage class:

create_resources

Data type: Hash[String, Hash]

A hash of resources to create NOTE: functions, such as template or epp, are not directly evaluated but processed as Puppet code based on epp and erb hash keys.

Default value: {}

stdlib::stages

Declares various run-stages for deploying infrastructure, language runtimes, and application layers.

The high level stages are (in order):

  • setup
  • main
  • runtime
  • setup_infra
  • deploy_infra
  • setup_app
  • deploy_app
  • deploy

Examples

node default {
  include ::stdlib
  class { java: stage => 'runtime' }
}

Resource types

anchor

Note: this has been replaced by core puppet contain() method. Please see https://puppet.com/docs/puppet/latest/lang_containment.html for more information.

In Puppet 2.6, when a class declares another class, the resources in the interior class are not contained by the exterior class. This interacts badly with the pattern of composing complex modules from smaller classes, as it makes it impossible for end users to specify order relationships between the exterior class and other modules.

The anchor type lets you work around this. By sandwiching any interior classes between two no-op resources that are contained by the exterior class, you can ensure that all resources in the module are contained.

class ntp {
  # These classes will have the correct order relationship with each
  # other. However, without anchors, they won't have any order
  # relationship to Class['ntp'].
  class { 'ntp::package': }
  -> class { 'ntp::config': }
  -> class { 'ntp::service': }

  # These two resources "anchor" the composed classes within the ntp
  # class.
  anchor { 'ntp::begin': } -> Class['ntp::package']
  Class['ntp::service']    -> anchor { 'ntp::end': }
}

This allows the end user of the ntp module to establish require and before relationships with Class['ntp']:

class { 'ntp': } -> class { 'mcollective': }
class { 'mcollective': } -> class { 'ntp': }

Parameters

The following parameters are available in the anchor type.

name

namevar

The name of the anchor resource.

file_line

The implementation matches the full line, including whitespace at the beginning and end. If the line is not contained in the given file, Puppet will append the line to the end of the file to ensure the desired state. Multiple resources may be declared to manage multiple lines in the same file.

  • Ensure Example
file_line { 'sudo_rule':
  path => '/etc/sudoers',
  line => '%sudo ALL=(ALL) ALL',
}

file_line { 'sudo_rule_nopw':
  path => '/etc/sudoers',
  line => '%sudonopw ALL=(ALL) NOPASSWD: ALL',
}

In this example, Puppet will ensure both of the specified lines are contained in the file /etc/sudoers.

  • Match Example
file_line { 'bashrc_proxy':
  ensure => present,
  path   => '/etc/bashrc',
  line   => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
  match  => '^export HTTP_PROXY=',
}

In this code example match will look for a line beginning with export followed by HTTP_PROXY and replace it with the value in line.

  • Examples With ensure => absent:

This type has two behaviors when ensure => absent is set.

One possibility is to set match => ... and match_for_absence => true, as in the following example:

file_line { 'bashrc_proxy':
  ensure            => absent,
  path              => '/etc/bashrc',
  match             => '^export HTTP_PROXY=',
  match_for_absence => true,
}

In this code example match will look for a line beginning with export followed by HTTP_PROXY and delete it. If multiple lines match, an error will be raised unless the multiple => true parameter is set.

Note that the line => ... parameter would be accepted BUT IGNORED in the above example.

The second way of using ensure => absent is to specify a line => ..., and no match:

file_line { 'bashrc_proxy':
  ensure => absent,
  path   => '/etc/bashrc',
  line   => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
}

Note: When ensuring lines are absent this way, the default behavior this time is to always remove all lines matching, and this behavior can't be disabled.

  • Encoding example:
file_line { "XScreenSaver":
  ensure   => present,
  path     => '/root/XScreenSaver',
  line     => "*lock: 10:00:00",
  match    => '^*lock:',
  encoding => "iso-8859-1",
}

Files with special characters that are not valid UTF-8 will give the error message "invalid byte sequence in UTF-8". In this case, determine the correct file encoding and specify the correct encoding using the encoding attribute, the value of which needs to be a valid Ruby character encoding.

Autorequires: If Puppet is managing the file that will contain the line being managed, the file_line resource will autorequire that file.

Properties

The following properties are available in the file_line type.

ensure

Valid values: present, absent

Manage the state of this type.

Default value: present

line

The line to be appended to the file or used to replace matches found by the match attribute.

Parameters

The following parameters are available in the file_line type.

after

An optional value used to specify the line after which we will add any new lines. (Existing lines are added in place) This is also takes a regex.

append_on_no_match

Valid values: true, false

If true, append line if match is not found. If false, do not append line if a match is not found

Default value: true

encoding

For files that are not UTF-8 encoded, specify encoding such as iso-8859-1

Default value: UTF-8

match

An optional ruby regular expression to run against existing lines in the file. If a match is found, we replace that line rather than adding a new line. A regex comparison is performed against the line value and if it does not match an exception will be raised.

match_for_absence

Valid values: true, false

An optional value to determine if match should be applied when ensure => absent. If set to true and match is set, the line that matches match will be deleted. If set to false (the default), match is ignored when ensure => absent. When ensure => present, match_for_absence is ignored.

Default value: false

multiple

Valid values: true, false

An optional value to determine if match can change multiple lines. If set to false, an exception will be raised if more than one line matches

name

namevar

An arbitrary name used as the identity of the resource.

path

The file Puppet will ensure contains the line specified by the line parameter.

provider

The specific backend to use for this file_line resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

replace

Valid values: true, false

If true, replace line that matches. If false, do not write line if a match is found

Default value: true

replace_all_matches_not_matching_line

Valid values: true, false

Configures the behavior of replacing all lines in a file which match the match parameter regular expression, regardless of whether the specified line is already present in the file.

Default value: false

Functions

any2array

Type: Ruby 3.x API

Empty argument lists are converted to an empty array. Arrays are left untouched. Hashes are converted to arrays of alternating keys and values.

Note: since Puppet 5.0.0 it is possible to create new data types for almost any datatype using the type system and the built-in Array.new function is used to create a new Array..

$hsh = {'key' => 42, 'another-key' => 100}
notice(Array($hsh))

Would notice [['key', 42], ['another-key', 100]]

The Array data type also has a special mode to "create an array if not already an array"

notice(Array({'key' => 42, 'another-key' => 100}, true))

Would notice [{'key' => 42, 'another-key' => 100}], as the true flag prevents the hash from being transformed into an array.

any2array()

Empty argument lists are converted to an empty array. Arrays are left untouched. Hashes are converted to arrays of alternating keys and values.

Note: since Puppet 5.0.0 it is possible to create new data types for almost any datatype using the type system and the built-in Array.new function is used to create a new Array..

$hsh = {'key' => 42, 'another-key' => 100}
notice(Array($hsh))

Would notice [['key', 42], ['another-key', 100]]

The Array data type also has a special mode to "create an array if not already an array"

notice(Array({'key' => 42, 'another-key' => 100}, true))

Would notice [{'key' => 42, 'another-key' => 100}], as the true flag prevents the hash from being transformed into an array.

Returns: Array The new array containing the given object

any2bool

Type: Ruby 3.x API

In practise it does the following:

  • Strings such as Y,y,1,T,t,TRUE,yes,'true' will return true
  • Strings such as 0,F,f,N,n,FALSE,no,'false' will return false
  • Booleans will just return their original value
  • Number (or a string representation of a number) > 0 will return true, otherwise false
  • undef will return false
  • Anything else will return true

Also see the built-in Boolean.new function.

any2bool()

In practise it does the following:

  • Strings such as Y,y,1,T,t,TRUE,yes,'true' will return true
  • Strings such as 0,F,f,N,n,FALSE,no,'false' will return false
  • Booleans will just return their original value
  • Number (or a string representation of a number) > 0 will return true, otherwise false
  • undef will return false
  • Anything else will return true

Also see the built-in Boolean.new function.

Returns: Boolean The boolean value of the object that was given

assert_private

Type: Ruby 3.x API

Calling the class or definition from outside the current module will fail.

assert_private()

Calling the class or definition from outside the current module will fail.

Returns: Any set the current class or definition as private.

base64

Type: Ruby 3.x API

*Note: Since Puppet 4.8.0, the Binary data type can be used to produce base 64 encoded strings. See the new() function for the Binary and String types for documentation. Also see binary_file() function for reading a file with binary (non UTF-8) content.

Examples

Example usage

Encode and decode a string

  $encodestring = base64('encode', 'thestring')
  $decodestring = base64('decode', 'dGhlc3RyaW5n')

Explicitly define encode/decode method: default, strict, urlsafe

  $method = 'default'
  $encodestring = base64('encode', 'thestring', $method)
  $decodestring = base64('decode', 'dGhlc3RyaW5n', $method)

Encode a string as if it was binary

 $encodestring = String(Binary('thestring', '%s'))

Decode a Binary assuming it is an UTF-8 String

 $decodestring = String(Binary("dGhlc3RyaW5n"), "%s")

base64()

*Note: Since Puppet 4.8.0, the Binary data type can be used to produce base 64 encoded strings. See the new() function for the Binary and String types for documentation. Also see binary_file() function for reading a file with binary (non UTF-8) content.

Returns: String The encoded/decoded

Examples
Example usage

Encode and decode a string

  $encodestring = base64('encode', 'thestring')
  $decodestring = base64('decode', 'dGhlc3RyaW5n')

Explicitly define encode/decode method: default, strict, urlsafe

  $method = 'default'
  $encodestring = base64('encode', 'thestring', $method)
  $decodestring = base64('decode', 'dGhlc3RyaW5n', $method)

Encode a string as if it was binary

 $encodestring = String(Binary('thestring', '%s'))

Decode a Binary assuming it is an UTF-8 String

 $decodestring = String(Binary("dGhlc3RyaW5n"), "%s")

basename

Type: Ruby 3.x API

Strips directory (and optional suffix) from a filename

basename()

The basename function.

Returns: String The stripped filename

batch_escape

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::batch_escape instead.

batch_escape(Any *$args)

The batch_escape function.

Returns: Any

*args

Data type: Any

bool2num

Type: Ruby 3.x API

Converts the values:

false, f, 0, n, and no to 0
true, t, 1, y, and yes to 1

Requires a single boolean or string as an input.

Note: since Puppet 5.0.0 it is possible to create new data types for almost any datatype using the type system and the built-in Numeric.new, Integer.new, and Float.new function are used to convert to numeric values.

notice(Integer(false)) # Notices 0
notice(Float(true))    # Notices 1.0

bool2num()

Converts the values:

false, f, 0, n, and no to 0
true, t, 1, y, and yes to 1

Requires a single boolean or string as an input.

Note: since Puppet 5.0.0 it is possible to create new data types for almost any datatype using the type system and the built-in Numeric.new, Integer.new, and Float.new function are used to convert to numeric values.

notice(Integer(false)) # Notices 0
notice(Float(true))    # Notices 1.0

Returns: Integer The converted value as a number

bool2str

Type: Ruby 3.x API

The optional second and third arguments represent what true and false will be converted to respectively. If only one argument is given, it will be converted from a boolean to a string containing 'true' or 'false'.

Examples of usage

  bool2str(true)                    => 'true'
  bool2str(true, 'yes', 'no')       => 'yes'
  bool2str(false, 't', 'f')         => 'f'

Requires a single boolean as an input.

Note: since Puppet 5.0.0 it is possible to create new data types for almost any datatype using the type system and the built-in String.new function is used to convert to String with many different format options.

  notice(String(false))         # Notices 'false'
  notice(String(true))          # Notices 'true'
  notice(String(false, '%y'))   # Notices 'yes'
  notice(String(true, '%y'))    # Notices 'no'

bool2str()

The optional second and third arguments represent what true and false will be converted to respectively. If only one argument is given, it will be converted from a boolean to a string containing 'true' or 'false'.

Examples of usage

  bool2str(true)                    => 'true'
  bool2str(true, 'yes', 'no')       => 'yes'
  bool2str(false, 't', 'f')         => 'f'

Requires a single boolean as an input.

Note: since Puppet 5.0.0 it is possible to create new data types for almost any datatype using the type system and the built-in String.new function is used to convert to String with many different format options.

  notice(String(false))         # Notices 'false'
  notice(String(true))          # Notices 'true'
  notice(String(false, '%y'))   # Notices 'yes'
  notice(String(true, '%y'))    # Notices 'no'

Returns: Any The converted value to string of the given Boolean

clamp

Type: Ruby 3.x API

Strings are converted and compared numerically. Arrays of values are flattened into a list for further handling.

Note: From Puppet 6.0.0 this can be done with only core Puppet like this: [$minval, $maxval, $value_to_clamp].sort[1]

Examples

Example usage

clamp('24', [575, 187])` returns 187.
clamp(16, 88, 661)` returns 88.
clamp([4, 3, '99'])` returns 4.

clamp()

Strings are converted and compared numerically. Arrays of values are flattened into a list for further handling.

Note: From Puppet 6.0.0 this can be done with only core Puppet like this: [$minval, $maxval, $value_to_clamp].sort[1]

Returns: Array[Integer] The sorted Array

Examples
Example usage

clamp('24', [575, 187])` returns 187.
clamp(16, 88, 661)` returns 88.
clamp([4, 3, '99'])` returns 4.

concat

Type: Ruby 3.x API

Note: Since Puppet 4.0, you can use the +`` operator for concatenation of arrays and merge of hashes, and the <<`` operator for appending:

['1','2','3'] + ['4','5','6'] + ['7','8','9'] returns ['1','2','3','4','5','6','7','8','9'] [1, 2, 3] << 4 returns [1, 2, 3, 4] [1, 2, 3] << [4, 5] returns [1, 2, 3, [4, 5]]

Examples

Example usage

concat(['1','2','3'],'4') returns ['1','2','3','4']
concat(['1','2','3'],'4',['5','6','7']) returns ['1','2','3','4','5','6','7']

concat()

Note: Since Puppet 4.0, you can use the +`` operator for concatenation of arrays and merge of hashes, and the <<`` operator for appending:

['1','2','3'] + ['4','5','6'] + ['7','8','9'] returns ['1','2','3','4','5','6','7','8','9'] [1, 2, 3] << 4 returns [1, 2, 3, 4] [1, 2, 3] << [4, 5] returns [1, 2, 3, [4, 5]]

Returns: Array The single concatenated array

Examples
Example usage

concat(['1','2','3'],'4') returns ['1','2','3','4']
concat(['1','2','3'],'4',['5','6','7']) returns ['1','2','3','4','5','6','7']

convert_base

Type: Ruby 3.x API

convert_base(5, 2)results in:'101' convert_base('254', '16') results in: 'fe'

Note: Since Puppet 4.5.0 this can be done with the built-in String.new function and its many formatting options:

$binary_repr = String(5, '%b') return "101" $hex_repr = String(254, "%x") return "fe" $hex_repr = String(254, "%#x") return "0xfe"

@return [String] The converted value as a S

Examples

Example usage

convert_base()

convert_base(5, 2)results in:'101' convert_base('254', '16') results in: 'fe'

Note: Since Puppet 4.5.0 this can be done with the built-in String.new function and its many formatting options:

$binary_repr = String(5, '%b') return "101" $hex_repr = String(254, "%x") return "fe" $hex_repr = String(254, "%#x") return "0xfe"

@return [String] The converted value as a S

Returns: Any converted value as a string

Examples
Example usage

count

Type: Ruby 3.x API

Takes an array as first argument and an optional second argument. Counts the number of elements in array that is equal to the second argument. If called with only an array, it counts the number of elements that are not nil/undef/empty-string.

Note: equality is tested with a Ruby method and it is therefore subject to what Ruby considers to be equal. For strings this means that equality is case sensitive.

In Puppet core, counting can be done in general by using a combination of the core functions filter() (since Puppet 4.0.0) and length() (since Puppet 5.5.0, before that in stdlib).

Example below shows counting values that are not undef.

notice([42, "hello", undef].filter |$x| { $x =~ NotUndef }.length)

Would notice the value 2.

count()

Takes an array as first argument and an optional second argument. Counts the number of elements in array that is equal to the second argument. If called with only an array, it counts the number of elements that are not nil/undef/empty-string.

Note: equality is tested with a Ruby method and it is therefore subject to what Ruby considers to be equal. For strings this means that equality is case sensitive.

In Puppet core, counting can be done in general by using a combination of the core functions filter() (since Puppet 4.0.0) and length() (since Puppet 5.5.0, before that in stdlib).

Example below shows counting values that are not undef.

notice([42, "hello", undef].filter |$x| { $x =~ NotUndef }.length)

Would notice the value 2.

Returns: Integer The amount of elements counted within the array

deep_merge

Type: Ruby 3.x API

Recursively merges two or more hashes together and returns the resulting hash.

Examples

Example usage

$hash1 = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } }
$hash2 = {'two' => 'dos', 'three' => { 'five' => 5 } }
$merged_hash = deep_merge($hash1, $hash2)

The resulting hash is equivalent to:

$merged_hash = { 'one' => 1, 'two' => 'dos', 'three' => { 'four' => 4, 'five' => 5 } }

When there is a duplicate key that is a hash, they are recursively merged.
When there is a duplicate key that is not a hash, the key in the rightmost hash will "win."

deep_merge()

The deep_merge function.

Returns: Hash The merged

Examples
Example usage

$hash1 = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } }
$hash2 = {'two' => 'dos', 'three' => { 'five' => 5 } }
$merged_hash = deep_merge($hash1, $hash2)

The resulting hash is equivalent to:

$merged_hash = { 'one' => 1, 'two' => 'dos', 'three' => { 'four' => 4, 'five' => 5 } }

When there is a duplicate key that is a hash, they are recursively merged.
When there is a duplicate key that is not a hash, the key in the rightmost hash will "win."

defined_with_params

Type: Ruby 3.x API

Returns true if a resource with the specified attributes has already been added to the catalog, and false otherwise.

user { 'dan':
  ensure => present,
}

if ! defined_with_params(User[dan], {'ensure' => 'present' }) {
  user { 'dan': ensure => present, }
}

defined_with_params()

Returns true if a resource with the specified attributes has already been added to the catalog, and false otherwise.

user { 'dan':
  ensure => present,
}

if ! defined_with_params(User[dan], {'ensure' => 'present' }) {
  user { 'dan': ensure => present, }
}

Returns: Boolean returns true or false

delete

Type: Ruby 3.x API

Note: From Puppet 4.0.0 the minus (-) operator deletes values from arrays and keys from a hash {'a'=>1,'b'=>2,'c'=>3} - ['b','c'])

A global delete from a string can be performed with the regsubst function: 'abracadabra'.regsubst(/bra/, '', 'G')

In general, the built-in filter function can filter out entries from arrays and hashes based on keys and/or values.

Examples

Example usage

delete(['a','b','c','b'], 'b')
Would return: ['a','c']

delete({'a'=>1,'b'=>2,'c'=>3}, 'b')
Would return: {'a'=>1,'c'=>3}

delete({'a'=>1,'b'=>2,'c'=>3}, ['b','c'])
Would return: {'a'=>1}

delete('abracadabra', 'bra')
Would return: 'acada'

['a', 'b', 'c', 'b'] - 'b'
Would return: ['a', 'c']

{'a'=>1,'b'=>2,'c'=>3} - ['b','c'])
Would return: {'a' => '1'}

'abracadabra'.regsubst(/bra/, '', 'G')
Would return: 'acada'

delete()

Note: From Puppet 4.0.0 the minus (-) operator deletes values from arrays and keys from a hash {'a'=>1,'b'=>2,'c'=>3} - ['b','c'])

A global delete from a string can be performed with the regsubst function: 'abracadabra'.regsubst(/bra/, '', 'G')

In general, the built-in filter function can filter out entries from arrays and hashes based on keys and/or values.

Returns: String The filtered String, if one was given.

Examples
Example usage

delete(['a','b','c','b'], 'b')
Would return: ['a','c']

delete({'a'=>1,'b'=>2,'c'=>3}, 'b')
Would return: {'a'=>1,'c'=>3}

delete({'a'=>1,'b'=>2,'c'=>3}, ['b','c'])
Would return: {'a'=>1}

delete('abracadabra', 'bra')
Would return: 'acada'

['a', 'b', 'c', 'b'] - 'b'
Would return: ['a', 'c']

{'a'=>1,'b'=>2,'c'=>3} - ['b','c'])
Would return: {'a' => '1'}

'abracadabra'.regsubst(/bra/, '', 'G')
Would return: 'acada'

delete_at

Type: Ruby 3.x API

For example delete_at(['a','b','c'], 1)

Would return: ['a','c']

Note: Since Puppet 4 this can be done in general with the built-in filter function:

['a', 'b', 'c'].filter |$pos, $val | { $pos != 1 }

Or if a delete is wanted from the beginning or end of the array, by using the slice operator [ ]:

$array[0, -1] # the same as all the values
$array[2, -1] # all but the first 2 elements
$array[0, -3] # all but the last 2 elements
$array[1, -2] # all but the first and last element

delete_at()

For example delete_at(['a','b','c'], 1)

Would return: ['a','c']

Note: Since Puppet 4 this can be done in general with the built-in filter function:

['a', 'b', 'c'].filter |$pos, $val | { $pos != 1 }

Or if a delete is wanted from the beginning or end of the array, by using the slice operator [ ]:

$array[0, -1] # the same as all the values
$array[2, -1] # all but the first 2 elements
$array[0, -3] # all but the last 2 elements
$array[1, -2] # all but the first and last element

Returns: Array The given array, now missing the tar

delete_regex

Type: Ruby 3.x API

Multiple regular expressions are assumed to be matched as an OR.

Note: Since Puppet 4 this can be done in general with the built-in filter function: ["aaa", "aba", "aca"].filter |$val| { $val !~ /b/ } Would return: ['aaa', 'aca']

Examples

Example usage

delete_regex(['a','b','c','b'], 'b')
Would return: ['a','c']

delete_regex(['a','b','c','b'], ['b', 'c'])
Would return: ['a']

delete_regex({'a'=>1,'b'=>2,'c'=>3}, 'b')
Would return: {'a'=>1,'c'=>3}

delete_regex({'a'=>1,'b'=>2,'c'=>3}, '^a$')
Would return: {'b'=>2,'c'=>3}

delete_regex()

Multiple regular expressions are assumed to be matched as an OR.

Note: Since Puppet 4 this can be done in general with the built-in filter function: ["aaa", "aba", "aca"].filter |$val| { $val !~ /b/ } Would return: ['aaa', 'aca']

Returns: Array The given array now missing all targeted values.

Examples
Example usage

delete_regex(['a','b','c','b'], 'b')
Would return: ['a','c']

delete_regex(['a','b','c','b'], ['b', 'c'])
Would return: ['a']

delete_regex({'a'=>1,'b'=>2,'c'=>3}, 'b')
Would return: {'a'=>1,'c'=>3}

delete_regex({'a'=>1,'b'=>2,'c'=>3}, '^a$')
Would return: {'b'=>2,'c'=>3}

delete_undef_values

Type: Ruby 3.x API

Note: Since Puppet 4.0.0 the equivalent can be performed with the built-in filter function: $array.filter |$val| { $val =~ NotUndef } $hash.filter |$key, $val| { $val =~ NotUndef }

Examples

Example usage

$hash = delete_undef_values({a=>'A', b=>'', c=>undef, d => false})
Would return: {a => 'A', b => '', d => false}

While:
$array = delete_undef_values(['A','',undef,false])
Would return: ['A','',false]

delete_undef_values()

Note: Since Puppet 4.0.0 the equivalent can be performed with the built-in filter function: $array.filter |$val| { $val =~ NotUndef } $hash.filter |$key, $val| { $val =~ NotUndef }

Returns: Array The given array now issing of undefined values.

Examples
Example usage

$hash = delete_undef_values({a=>'A', b=>'', c=>undef, d => false})
Would return: {a => 'A', b => '', d => false}

While:
$array = delete_undef_values(['A','',undef,false])
Would return: ['A','',false]

delete_values

Type: Ruby 3.x API

Note: Since Puppet 4.0.0 the equivalent can be performed with the built-in filter function: $array.filter |$val| { $val != 'B' } $hash.filter |$key, $val| { $val != 'B' }

Examples

Example usage

delete_values({'a'=>'A','b'=>'B','c'=>'C','B'=>'D'}, 'B')
Would return: {'a'=>'A','c'=>'C','B'=>'D'}

delete_values()

Note: Since Puppet 4.0.0 the equivalent can be performed with the built-in filter function: $array.filter |$val| { $val != 'B' } $hash.filter |$key, $val| { $val != 'B' }

Returns: Hash The given hash now missing all instances of the targeted value

Examples
Example usage

delete_values({'a'=>'A','b'=>'B','c'=>'C','B'=>'D'}, 'B')
Would return: {'a'=>'A','c'=>'C','B'=>'D'}

deprecation

Type: Ruby 4.x API

Function to print deprecation warnings, Logs a warning once for a given key.

deprecation(String $key, String $message, Optional[Boolean] $use_strict_setting)

The deprecation function.

Returns: Any

key

Data type: String

The uniqueness key. This function logs once for any given key.

message

Data type: String

Is the message text including any positional information that is formatted by the user/caller of the function.

use_strict_setting

Data type: Optional[Boolean]

When true, (the default), the function is affected by the puppet setting 'strict', which can be set to :error (outputs as an error message), :off (no message / error is displayed) and :warning (default, outputs a warning).

difference

Type: Ruby 3.x API

The returned array is a copy of the original array, removing any items that also appear in the second array.

Note: Since Puppet 4 the minus (-) operator in the Puppet language does the same thing: ['a', 'b', 'c'] - ['b', 'c', 'd'] Would return: ['a']

Examples

Example usage

difference(["a","b","c"],["b","c","d"])
Would return: `["a"]`

difference()

The returned array is a copy of the original array, removing any items that also appear in the second array.

Note: Since Puppet 4 the minus (-) operator in the Puppet language does the same thing: ['a', 'b', 'c'] - ['b', 'c', 'd'] Would return: ['a']

Returns: Array The difference between the two given arrays

Examples
Example usage

difference(["a","b","c"],["b","c","d"])
Would return: `["a"]`

dirname

Type: Ruby 3.x API

Returns the dirname of a path.

dirname()

The dirname function.

Returns: String the given path's dirname

dos2unix

Type: Ruby 3.x API

Takes a single string argument.

dos2unix()

Takes a single string argument.

Returns: Any The retrieved version

enclose_ipv6

Type: Ruby 3.x API

Takes an array of ip addresses and encloses the ipv6 addresses with square brackets.

enclose_ipv6()

The enclose_ipv6 function.

Returns: Any encloses the ipv6 addresses with square brackets.

ensure_packages

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::ensure_packages instead.

ensure_packages(Any *$args)

The ensure_packages function.

Returns: Any

*args

Data type: Any

ensure_resource

Type: Ruby 3.x API

user { 'dan': ensure => present, }

Examples

Example usage

Creates the resource if it does not already exist:

  ensure_resource('user', 'dan', {'ensure' => 'present' })

If the resource already exists but does not match the specified parameters,
this function will attempt to recreate the resource leading to a duplicate
resource definition error.

An array of resources can also be passed in and each will be created with
the type and parameters specified if it doesn't already exist.

  ensure_resource('user', ['dan','alex'], {'ensure' => 'present'})

ensure_resource()

user { 'dan': ensure => present, }

Returns: Any created or recreated the passed resource with the passed type and attributes

Examples
Example usage

Creates the resource if it does not already exist:

  ensure_resource('user', 'dan', {'ensure' => 'present' })

If the resource already exists but does not match the specified parameters,
this function will attempt to recreate the resource leading to a duplicate
resource definition error.

An array of resources can also be passed in and each will be created with
the type and parameters specified if it doesn't already exist.

  ensure_resource('user', ['dan','alex'], {'ensure' => 'present'})

ensure_resources

Type: Ruby 3.x API

An hash of resources should be passed in and each will be created with the type and parameters specified if it doesn't already exist.

ensure_resources('user', {'dan' => { gid => 'mygroup', uid => '600' }, 'alex' => { gid => 'mygroup' }}, {'ensure' => 'present'})

From Hiera Backend:

userlist: dan: gid: 'mygroup' uid: '600' alex: gid: 'mygroup'

Call: ensure_resources('user', hiera_hash('userlist'), {'ensure' => 'present'})

Examples

Example usage

user { 'dan':
  gid => 'mygroup',
  ensure => present,
}

ensure_resources()

An hash of resources should be passed in and each will be created with the type and parameters specified if it doesn't already exist.

ensure_resources('user', {'dan' => { gid => 'mygroup', uid => '600' }, 'alex' => { gid => 'mygroup' }}, {'ensure' => 'present'})

From Hiera Backend:

userlist: dan: gid: 'mygroup' uid: '600' alex: gid: 'mygroup'

Call: ensure_resources('user', hiera_hash('userlist'), {'ensure' => 'present'})

Returns: Any created resources with the passed type and attributes

Examples
Example usage

user { 'dan':
  gid => 'mygroup',
  ensure => present,
}

fact

Type: Ruby 4.x API

Supports the use of dot-notation for referring to structured facts. If a fact requested does not exist, returns Undef.

Examples

Example usage:
fact('osfamily')
fact('os.architecture')
Array indexing:
fact('mountpoints."/dev".options.1')
Fact containing a "." in the name:
fact('vmware."VRA.version"')

fact(String $fact_name)

Supports the use of dot-notation for referring to structured facts. If a fact requested does not exist, returns Undef.

Returns: Any All information retrieved on the given fact_name

Examples
Example usage:
fact('osfamily')
fact('os.architecture')
Array indexing:
fact('mountpoints."/dev".options.1')
Fact containing a "." in the name:
fact('vmware."VRA.version"')
fact_name

Data type: String

The name of the fact to check

fqdn_rand_string

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::fqdn_rand_string instead.

fqdn_rand_string(Any *$args)

The fqdn_rand_string function.

Returns: Any

*args

Data type: Any

fqdn_rotate

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::fqdn_rotate instead.

fqdn_rotate(Any *$args)

The fqdn_rotate function.

Returns: Any

*args

Data type: Any

fqdn_uuid

Type: Ruby 3.x API

Returns a RFC 4122 valid version 5 UUID based on an FQDN string under the DNS namespace

Examples

Example Usage:
fqdn_uuid('puppetlabs.com') # Returns '9c70320f-6815-5fc5-ab0f-debe68bf764c'
fqdn_uuid('google.com') # Returns '64ee70a4-8cc1-5d25-abf2-dea6c79a

fqdn_uuid()

The fqdn_uuid function.

Returns: Any Returns a RFC 4122 valid version 5 UUID

Examples
Example Usage:
fqdn_uuid('puppetlabs.com') # Returns '9c70320f-6815-5fc5-ab0f-debe68bf764c'
fqdn_uuid('google.com') # Returns '64ee70a4-8cc1-5d25-abf2-dea6c79a

get_module_path

Type: Ruby 3.x API

Note: that since Puppet 5.4.0 the built-in module_directory function in Puppet does the same thing and will return the path to the first found module if given multiple values or an array.

Examples

Example Usage:
$module_path = get_module_path('stdlib')

get_module_path()

Note: that since Puppet 5.4.0 the built-in module_directory function in Puppet does the same thing and will return the path to the first found module if given multiple values or an array.

Returns: Any Returns the absolute path of the specified module for the current environment.

Examples
Example Usage:
$module_path = get_module_path('stdlib')

getparam

Type: Ruby 3.x API

Takes a resource reference and name of the parameter and returns value of resource's parameter. Note that user defined resource types are evaluated lazily.

Would notice: 'the value we are getting in this example'

Note that since Puppet 4.0.0 it is possible to get a parameter value by using its data type and the [ ] operator. The example below is equivalent to a call to getparam(): `Example_resource['example_resource_instance']['param']

Examples

Example Usage:

# define a resource type with a parameter
define example_resource($param) {
}

# declare an instance of that type
example_resource { "example_resource_instance":
    param => "'the value we are getting in this example''"
}

# Because of order of evaluation, a second definition is needed
# that will be evaluated after the first resource has been declared
#
define example_get_param {
  # This will notice the value of the parameter
  notice(getparam(Example_resource["example_resource_instance"], "param"))
}

# Declare an instance of the second resource type - this will call notice
example_get_param { 'show_notify': }

getparam()

Takes a resource reference and name of the parameter and returns value of resource's parameter. Note that user defined resource types are evaluated lazily.

Would notice: 'the value we are getting in this example'

Note that since Puppet 4.0.0 it is possible to get a parameter value by using its data type and the [ ] operator. The example below is equivalent to a call to getparam(): `Example_resource['example_resource_instance']['param']

Returns: Any value of a resource's parameter.

Examples
Example Usage:

# define a resource type with a parameter
define example_resource($param) {
}

# declare an instance of that type
example_resource { "example_resource_instance":
    param => "'the value we are getting in this example''"
}

# Because of order of evaluation, a second definition is needed
# that will be evaluated after the first resource has been declared
#
define example_get_param {
  # This will notice the value of the parameter
  notice(getparam(Example_resource["example_resource_instance"], "param"))
}

# Declare an instance of the second resource type - this will call notice
example_get_param { 'show_notify': }

glob

Type: Ruby 3.x API

Uses same patterns as Dir#glob.

Examples

Example Usage:
$confs = glob(['/etc/**/*.conf', '/opt/**/*.conf'])

glob()

The glob function.

Returns: Any Returns an Array of file entries of a directory or an Array of directories.

Examples
Example Usage:
$confs = glob(['/etc/**/*.conf', '/opt/**/*.conf'])

grep

Type: Ruby 3.x API

Note: that since Puppet 4.0.0, the built-in filter function does the "same" - as any logic can be used to filter, as opposed to just regular expressions: ['aaa', 'bbb', 'ccc', 'aaaddd']. filter |$x| { $x =~ 'aaa' }

Examples

Example Usage:
grep(['aaa','bbb','ccc','aaaddd'], 'aaa') # Returns ['aaa','aaaddd']

grep()

Note: that since Puppet 4.0.0, the built-in filter function does the "same" - as any logic can be used to filter, as opposed to just regular expressions: ['aaa', 'bbb', 'ccc', 'aaaddd']. filter |$x| { $x =~ 'aaa' }

Returns: Any array of elements that match the provided regular expression.

Examples
Example Usage:
grep(['aaa','bbb','ccc','aaaddd'], 'aaa') # Returns ['aaa','aaaddd']

has_interface_with

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::has_interface_with instead.

has_interface_with(Any *$args)

The has_interface_with function.

Returns: Any

*args

Data type: Any

has_interface_with

Type: Ruby 3.x API

Valid kinds are macaddress, netmask, ipaddress and network.

Examples

Usage
has_interface_with("macaddress", "x:x:x:x:x:x") # Returns `false`
has_interface_with("ipaddress", "127.0.0.1") # Returns `true`
If no "kind" is given, then the presence of the interface is checked:
has_interface_with("lo") # Returns `true`

has_interface_with()

Valid kinds are macaddress, netmask, ipaddress and network.

Returns: Any boolean values true or false

Examples
Usage
has_interface_with("macaddress", "x:x:x:x:x:x") # Returns `false`
has_interface_with("ipaddress", "127.0.0.1") # Returns `true`
If no "kind" is given, then the presence of the interface is checked:
has_interface_with("lo") # Returns `true`

has_ip_address

Type: Ruby 3.x API

This function iterates through the 'interfaces' fact and checks the 'ipaddress_IFACE' facts, performing a simple string comparison.

has_ip_address()

This function iterates through the 'interfaces' fact and checks the 'ipaddress_IFACE' facts, performing a simple string comparison.

Returns: Boolean true or false

has_ip_network

Type: Ruby 3.x API

This function iterates through the 'interfaces' fact and checks the 'network_IFACE' facts, performing a simple string comparision.

has_ip_network()

This function iterates through the 'interfaces' fact and checks the 'network_IFACE' facts, performing a simple string comparision.

Returns: Any Boolean value, true if the client has an IP address within the requested network.

intersection

Type: Ruby 3.x API

This function returns an array of the intersection of two.

Examples

Example Usage:
intersection(["a","b","c"],["b","c","d"])  # returns ["b","c"]
intersection(["a","b","c"],[1,2,3,4])      # returns [] (true, when evaluated as a Boolean)

intersection()

The intersection function.

Returns: Any an array of the intersection of two.

Examples
Example Usage:
intersection(["a","b","c"],["b","c","d"])  # returns ["b","c"]
intersection(["a","b","c"],[1,2,3,4])      # returns [] (true, when evaluated as a Boolean)

is_a

Type: Ruby 4.x API

See the documentation for "The Puppet Type System" for more information about types. See the assert_type() function for flexible ways to assert the type of a value.

Examples

Example Usage:
# check a data type
  foo = 3
  $bar = [1,2,3]
  $baz = 'A string!'

  if $foo.is_a(Integer) {
    notify  { 'foo!': }
  }
  if $bar.is_a(Array) {
    notify { 'bar!': }
  }
  if $baz.is_a(String) {
    notify { 'baz!': }
  }

is_a(Any $value, Type $type)

See the documentation for "The Puppet Type System" for more information about types. See the assert_type() function for flexible ways to assert the type of a value.

Returns: Boolean Return's true or false.

Examples
Example Usage:
# check a data type
  foo = 3
  $bar = [1,2,3]
  $baz = 'A string!'

  if $foo.is_a(Integer) {
    notify  { 'foo!': }
  }
  if $bar.is_a(Array) {
    notify { 'bar!': }
  }
  if $baz.is_a(String) {
    notify { 'baz!': }
  }
value

Data type: Any

The value to be checked

type

Data type: Type

The expected type

join_keys_to_values

Type: Ruby 3.x API

Keys are cast to strings. If values are arrays, multiple keys are added for each element. The return value is an array in which each element is one joined key/value pair.

Note: Since Puppet 5.0.0 - for more detailed control over the formatting (including indentations and line breaks, delimiters around arrays and hash entries, between key/values in hash entries, and individual formatting of values in the array) - see the new function for String and its formatting options for Array and Hash.

Examples

Example Usage:
join_keys_to_values({'a'=>1,'b'=>2}, " is ") # Results in: ["a is 1","b is 2"]
join_keys_to_values({'a'=>1,'b'=>[2,3]}, " is ") # Results in: ["a is 1","b is 2","b is 3"]

join_keys_to_values()

Keys are cast to strings. If values are arrays, multiple keys are added for each element. The return value is an array in which each element is one joined key/value pair.

Note: Since Puppet 5.0.0 - for more detailed control over the formatting (including indentations and line breaks, delimiters around arrays and hash entries, between key/values in hash entries, and individual formatting of values in the array) - see the new function for String and its formatting options for Array and Hash.

Returns: Hash The joined hash

Examples
Example Usage:
join_keys_to_values({'a'=>1,'b'=>2}, " is ") # Results in: ["a is 1","b is 2"]
join_keys_to_values({'a'=>1,'b'=>[2,3]}, " is ") # Results in: ["a is 1","b is 2","b is 3"]

load_module_metadata

Type: Ruby 3.x API

This function loads the metadata of a given module.

Examples

Example Usage:
$metadata = load_module_metadata('archive')
notify { $metadata['author']: }

load_module_metadata()

The load_module_metadata function.

Returns: Any The modules metadata

Examples
Example Usage:
$metadata = load_module_metadata('archive')
notify { $metadata['author']: }

loadjson

Type: Ruby 3.x API

The first parameter can be a file path or a URL. The second parameter is the default value. It will be returned if the file was not found or could not be parsed.

Examples

Example Usage:
$myhash = loadjson('/etc/puppet/data/myhash.json')
$myhash = loadjson('https://example.local/my_hash.json')
$myhash = loadjson('https://username:password@example.local/my_hash.json')
$myhash = loadjson('no-file.json', {'default' => 'val

loadjson()

The first parameter can be a file path or a URL. The second parameter is the default value. It will be returned if the file was not found or could not be parsed.

Returns: Array|String|Hash The data stored in the JSON file, the type depending on the type of data that was stored.

Examples
Example Usage:
$myhash = loadjson('/etc/puppet/data/myhash.json')
$myhash = loadjson('https://example.local/my_hash.json')
$myhash = loadjson('https://username:password@example.local/my_hash.json')
$myhash = loadjson('no-file.json', {'default' => 'val

loadyaml

Type: Ruby 3.x API

The first parameter can be a file path or a URL. The second parameter is the default value. It will be returned if the file was not found or could not be parsed.

Examples

Example Usage:
$myhash = loadyaml('/etc/puppet/data/myhash.yaml')
$myhash = loadyaml('https://example.local/my_hash.yaml')
$myhash = loadyaml('https://username:password@example.local/my_hash.yaml')
$myhash = loadyaml('no-file.yaml', {'default' => 'val

loadyaml()

The first parameter can be a file path or a URL. The second parameter is the default value. It will be returned if the file was not found or could not be parsed.

Returns: Array|String|Hash The data stored in the YAML file, the type depending on the type of data that was stored.

Examples
Example Usage:
$myhash = loadyaml('/etc/puppet/data/myhash.yaml')
$myhash = loadyaml('https://example.local/my_hash.yaml')
$myhash = loadyaml('https://username:password@example.local/my_hash.yaml')
$myhash = loadyaml('no-file.yaml', {'default' => 'val

member

Type: Ruby 3.x API

The variable can be a string, fixnum, or array.

Note: This function does not support nested arrays. If the first argument contains nested arrays, it will not recurse through them.

Note: Since Puppet 4.0.0 the same can be performed in the Puppet language. For single values the operator in can be used: 'a' in ['a', 'b'] # true For arrays by using operator - to compute a diff: ['d', 'b'] - ['a', 'b', 'c'] == [] # false because 'd' is not subtracted ['a', 'b'] - ['a', 'b', 'c'] == [] # true because both 'a' and 'b' are subtracted

Note that since Puppet 5.2.0, the general form to test the content of an array or hash is to use the built-in any and all functions.

Examples

Usage
member(['a','b'], 'b') # Returns: true
member(['a', 'b', 'c'], ['a', 'b']) # Returns: true
member(['a','b'], 'c') # Returns: false
member(['a', 'b', 'c'], ['d', 'b']) # Returns: false

member()

The variable can be a string, fixnum, or array.

Note: This function does not support nested arrays. If the first argument contains nested arrays, it will not recurse through them.

Note: Since Puppet 4.0.0 the same can be performed in the Puppet language. For single values the operator in can be used: 'a' in ['a', 'b'] # true For arrays by using operator - to compute a diff: ['d', 'b'] - ['a', 'b', 'c'] == [] # false because 'd' is not subtracted ['a', 'b'] - ['a', 'b', 'c'] == [] # true because both 'a' and 'b' are subtracted

Note that since Puppet 5.2.0, the general form to test the content of an array or hash is to use the built-in any and all functions.

Returns: Any Returns whether the given value was a member of the array

Examples
Usage
member(['a','b'], 'b') # Returns: true
member(['a', 'b', 'c'], ['a', 'b']) # Returns: true
member(['a','b'], 'c') # Returns: false
member(['a', 'b', 'c'], ['d', 'b']) # Returns: false

merge

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::merge instead.

merge(Any *$args, Optional[Variant[Callable[2,2], Callable[3,3]]] &$block)

The merge function.

Returns: Any

*args

Data type: Any

&block

Data type: Optional[Variant[Callable[2,2], Callable[3,3]]]

merge

Type: Ruby 3.x API

When there is a duplicate key, the key in the rightmost hash will "win."

Note that since Puppet 4.0.0 the same merge can be achieved with the + operator. `$merged_hash = $hash1 + $h

Examples

Usage
$hash1 = {'one' => 1, 'two', => 2}
$hash2 = {'two' => 'dos', 'three', => 'tres'}
$merged_hash = merge($hash1, $hash2) # $merged_hash =  {'one' => 1, 'two' => 'dos', 'three' => 'tres'}

merge()

When there is a duplicate key, the key in the rightmost hash will "win."

Note that since Puppet 4.0.0 the same merge can be achieved with the + operator. `$merged_hash = $hash1 + $h

Returns: Hash The merged hash

Examples
Usage
$hash1 = {'one' => 1, 'two', => 2}
$hash2 = {'two' => 'dos', 'three', => 'tres'}
$merged_hash = merge($hash1, $hash2) # $merged_hash =  {'one' => 1, 'two' => 'dos', 'three' => 'tres'}

num2bool

Type: Ruby 3.x API

Note: that since Puppet 5.0.0 the same can be achieved with the Puppet Type System. See the new() function in Puppet for the many available type conversions.

num2bool()

Note: that since Puppet 5.0.0 the same can be achieved with the Puppet Type System. See the new() function in Puppet for the many available type conversions.

Returns: Boolean Boolean(0) # false for any zero or negative number Boolean(1) # true for any positive number

os_version_gte

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::os_version_gte instead.

os_version_gte(Any *$args)

The os_version_gte function.

Returns: Any

*args

Data type: Any

parsehocon

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::parsehocon instead.

parsehocon(Any *$args)

The parsehocon function.

Returns: Any

*args

Data type: Any

parsejson

Type: Ruby 3.x API

Note: The optional second argument can be used to pass a default value that will be returned if the parsing of the JSON string failed or if the JSON parse evaluated to nil.

parsejson()

Note: The optional second argument can be used to pass a default value that will be returned if the parsing of the JSON string failed or if the JSON parse evaluated to nil.

Returns: Any convert JSON into Puppet structure

parsepson

Type: Ruby 4.x API

For more information on PSON please see the following link: https://puppet.com/docs/puppet/7/http_api/pson.html

Examples

How to parse pson
$data = parsepson('{"a":"1","b":"2"}')

parsepson(String[1] $pson_string, Optional[Any] $default)

For more information on PSON please see the following link: https://puppet.com/docs/puppet/7/http_api/pson.html

Returns: Data

Examples
How to parse pson
$data = parsepson('{"a":"1","b":"2"}')
pson_string

Data type: String[1]

A valid PSON string

default

Data type: Optional[Any]

An optional default to return if parsing the pson_string fails

parseyaml

Type: Ruby 3.x API

Note: The optional second argument can be used to pass a default value that will be returned if the parsing of YAML string have failed.

parseyaml()

Note: The optional second argument can be used to pass a default value that will be returned if the parsing of YAML string have failed.

Returns: Any converted YAML into Puppet structure

pick

Type: Ruby 3.x API

This function is similar to a coalesce function in SQL.

Typically, this function is used to check for a value in the Puppet Dashboard/Enterprise Console, and failover to a default value like the following:

$real_jenkins_version = pick($::jenkins_version, '1.449')

Note: The value of $real_jenkins_version will first look for a top-scope variable called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ Enterprise Console are brought into Puppet as top-scope variables), and, failing that, will use a default value of 1.449.

pick()

This function is similar to a coalesce function in SQL.

Typically, this function is used to check for a value in the Puppet Dashboard/Enterprise Console, and failover to a default value like the following:

$real_jenkins_version = pick($::jenkins_version, '1.449')

Note: The value of $real_jenkins_version will first look for a top-scope variable called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ Enterprise Console are brought into Puppet as top-scope variables), and, failing that, will use a default value of 1.449.

Returns: Any the first value in a list of values that is not undefined or an empty string.

pick_default

Type: Ruby 3.x API

Typically, this function is used to check for a value in the Puppet Dashboard/Enterprise Console, and failover to a default value like the following:

$real_jenkins_version = pick_default($::jenkins_version, '1.449')

Note: The value of $real_jenkins_version will first look for a top-scope variable called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ Enterprise Console are brought into Puppet as top-scope variables), and, failing that, will use a default value of 1.449.

Contrary to the pick() function, the pick_default does not fail if all arguments are empty. This allows pick_default to use an empty value as default.

pick_default()

Typically, this function is used to check for a value in the Puppet Dashboard/Enterprise Console, and failover to a default value like the following:

$real_jenkins_version = pick_default($::jenkins_version, '1.449')

Note: The value of $real_jenkins_version will first look for a top-scope variable called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ Enterprise Console are brought into Puppet as top-scope variables), and, failing that, will use a default value of 1.449.

Contrary to the pick() function, the pick_default does not fail if all arguments are empty. This allows pick_default to use an empty value as default.

Returns: Any This function is similar to a coalesce function in SQL in that it will return the first value in a list of values that is not undefined or an empty string If no value is found, it will return the last argument.

powershell_escape

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::powershell_escape instead.

powershell_escape(Any *$args)

The powershell_escape function.

Returns: Any

*args

Data type: Any

prefix

Type: Ruby 3.x API

Note: since Puppet 4.0.0 the general way to modify values is in array is by using the map function in Puppet. This example does the same as the example above: ['a', 'b', 'c'].map |$x| { "p${x}" }

Examples

Usage

prefix(['a','b','c'], 'p')
Will return: ['pa','pb','pc']

prefix()

Note: since Puppet 4.0.0 the general way to modify values is in array is by using the map function in Puppet. This example does the same as the example above: ['a', 'b', 'c'].map |$x| { "p${x}" }

Returns: Hash or [Array] The passed values now contains the passed prefix

Examples
Usage

prefix(['a','b','c'], 'p')
Will return: ['pa','pb','pc']

pry

Type: Ruby 3.x API

This is useful for debugging manifest code at specific points during a compilation.

Examples

Usage

`pry()`

pry()

This is useful for debugging manifest code at specific points during a compilation.

Returns: Any debugging information

Examples
Usage

`pry()`

pw_hash

Type: Ruby 3.x API

The first argument to this function is the password to hash. If it is undef or an empty string, this function returns undef.

The second argument to this function is which hash algorithm to use. It will be converted into the appropriate crypt(3) hash specifier. Valid hash types are:

Hash type Prefix Note
MD5 1
SHA-256 5
SHA-512 6 Recommended
bcrypt 2b
bcrypt-a 2a bug compatible
bcrypt-x 2x bug compatible
bcrypt-y 2y historic alias for 2b

The third argument to this function is the salt to use. For bcrypt-type hashes, the first two characters of the salt represent a strength parameter, with a value between 4 and 31 inclusive.

Note:: this uses the Puppet Server's implementation of crypt(3). If your environment contains several different operating systems, ensure that they are compatible before using this function.

pw_hash()

The first argument to this function is the password to hash. If it is undef or an empty string, this function returns undef.

The second argument to this function is which hash algorithm to use. It will be converted into the appropriate crypt(3) hash specifier. Valid hash types are:

Hash type Prefix Note
MD5 1
SHA-256 5
SHA-512 6 Recommended
bcrypt 2b
bcrypt-a 2a bug compatible
bcrypt-x 2x bug compatible
bcrypt-y 2y historic alias for 2b

The third argument to this function is the salt to use. For bcrypt-type hashes, the first two characters of the salt represent a strength parameter, with a value between 4 and 31 inclusive.

Note:: this uses the Puppet Server's implementation of crypt(3). If your environment contains several different operating systems, ensure that they are compatible before using this function.

Returns: String Provides a crypt hash usable on most POSIX systems.

range

Type: Ruby 3.x API

NB Be explicit in including trailing zeros. Otherwise the underlying ruby function will fail.

Note: Passing a third argument will cause the generated range to step by that interval, e.g.

The Puppet Language support Integer and Float ranges by using the type system. Those are suitable for iterating a given number of times.

Integer[0, 9].each |$x| { notice($x) } # notices 0, 1, 2, ... 9

Examples

Usage
range("0", "9")
Will return: [0,1,2,3,4,5,6,7,8,9]

range("00", "09")
Will return: [0,1,2,3,4,5,6,7,8,9]
(Zero padded strings are converted to integers automatically)

range("a", "c")
Will return: ["a","b","c"]

range("host01", "host10")
Will return: ["host01", "host02", ..., "host09", "host10"]

range("0", "9", "2")
Will return: [0,2,4,6,8]

range()

NB Be explicit in including trailing zeros. Otherwise the underlying ruby function will fail.

Note: Passing a third argument will cause the generated range to step by that interval, e.g.

The Puppet Language support Integer and Float ranges by using the type system. Those are suitable for iterating a given number of times.

Integer[0, 9].each |$x| { notice($x) } # notices 0, 1, 2, ... 9

Returns: Any the range is extrapolated as an array

Examples
Usage
range("0", "9")
Will return: [0,1,2,3,4,5,6,7,8,9]

range("00", "09")
Will return: [0,1,2,3,4,5,6,7,8,9]
(Zero padded strings are converted to integers automatically)

range("a", "c")
Will return: ["a","b","c"]

range("host01", "host10")
Will return: ["host01", "host02", ..., "host09", "host10"]

range("0", "9", "2")
Will return: [0,2,4,6,8]

regexpescape

Type: Ruby 3.x API

Regexp escape a string or array of strings. Requires either a single string or an array as an input.

regexpescape()

The regexpescape function.

Returns: String A string of characters with metacharacters converted to their escaped form.

reject

Type: Ruby 3.x API

Note: Since Puppet 4.0.0 the same is in general done with the filter function. Here is the equivalence of the reject() function: ['aaa','bbb','ccc','aaaddd'].filter |$x| { $x !~ /a

Examples

Usage

reject(['aaa','bbb','ccc','aaaddd'], 'aaa')

Would return: ['bbb','ccc']

reject()

Note: Since Puppet 4.0.0 the same is in general done with the filter function. Here is the equivalence of the reject() function: ['aaa','bbb','ccc','aaaddd'].filter |$x| { $x !~ /a

Returns: Any an array containing all the elements which doesn'' match the provided regular expression

Examples
Usage

reject(['aaa','bbb','ccc','aaaddd'], 'aaa')

Would return: ['bbb','ccc']

reverse

Type: Ruby 3.x API

Note: that the same can be done with the reverse_each() function in Puppet.

reverse()

Note: that the same can be done with the reverse_each() function in Puppet.

Returns: Any reversed string or array

seeded_rand

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::seeded_rand instead.

seeded_rand(Any *$args)

The seeded_rand function.

Returns: Any

*args

Data type: Any

seeded_rand_string

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::seeded_rand_string instead.

seeded_rand_string(Any *$args)

The seeded_rand_string function.

Returns: Any

*args

Data type: Any

shell_escape

Type: Ruby 4.x API

DEPRECATED. Use the namespaced function stdlib::shell_escape instead.

shell_escape(Any *$args)

The shell_escape function.

Returns: Any

*args

Data type: Any

shell_join

Type: Ruby 3.x API

Builds a command line string from the given array of strings. Each array item is escaped for Bourne shell. All items are then joined together, with a single space in between. This function behaves the same as ruby's Shellwords.shelljoin() function

shell_join()

Builds a command line string from the given array of strings. Each array item is escaped for Bourne shell. All items are then joined together, with a single space in between. This function behaves the same as ruby's Shellwords.shelljoin() function

Returns: Any a command line string

shell_split

Type: Ruby 3.x API

This function behaves the same as ruby's Shellwords.shellsplit() function

shell_split()

This function behaves the same as ruby's Shellwords.shellsplit() function

Returns: Any array of tokens

shuffle

Type: Ruby 3.x API

@summary Randomizes the order of a string or array elements.

shuffle()

@summary Randomizes the order of a string or array elements.

Returns: Any randomized string or array

squeeze

Type: Ruby 3.x API

Returns a new string where runs of the same character that occur in this set are replaced by a single character.

squeeze()

The squeeze function.

Returns: Any a new string where runs of the same character that occur in this set are replaced by a single character.

stdlib::batch_escape

Type: Ruby 4.x API

  • Note:* that the resulting string should be used unquoted and is not intended for use in double quotes nor in single quotes.

stdlib::batch_escape(Any $string)

  • Note:* that the resulting string should be used unquoted and is not intended for use in double quotes nor in single quotes.

Returns: Any An escaped string that can be safely used in a batch command line.

string

Data type: Any

The string to escape

stdlib::crc32

Type: Ruby 4.x API

Run a CRC32 calculation against a given value.

Examples

Check a simple string value
stdlib::crc32('my string') == '18fbd270'
Check a Sensitive datatype
stdlib::crc32(sensitive('my string')) == '18fbd270'
Check a number
stdlib::crc32(100.0) == 'a3fd429a'
stdlib::crc32(100.00000) == 'a3fd429a'

stdlib::crc32(Variant[ScalarData, Sensitive[ScalarData], Binary, Sensitive[Binary]] $my_data)

Run a CRC32 calculation against a given value.

Returns: String String

Examples
Check a simple string value
stdlib::crc32('my string') == '18fbd270'
Check a Sensitive datatype
stdlib::crc32(sensitive('my string')) == '18fbd270'
Check a number
stdlib::crc32(100.0) == 'a3fd429a'
stdlib::crc32(100.00000) == 'a3fd429a'
my_data

Data type: Variant[ScalarData, Sensitive[ScalarData], Binary, Sensitive[Binary]]

The ScalarData to evaluate

stdlib::deferrable_epp

Type: Puppet Language

This function returns either a rendered template or a deferred function to render at runtime. If any of the values in the variables hash are deferred, then the template will be deferred.

Note: this function requires all parameters to be explicitly passed in. It cannot expect to use facts, class variables, and other variables in scope. This is because when deferred, we have to explicitly pass the entire scope to the client.

stdlib::deferrable_epp(String $template, Hash $variables)

This function returns either a rendered template or a deferred function to render at runtime. If any of the values in the variables hash are deferred, then the template will be deferred.

Note: this function requires all parameters to be explicitly passed in. It cannot expect to use facts, class variables, and other variables in scope. This is because when deferred, we have to explicitly pass the entire scope to the client.

Returns: Variant[String, Sensitive[String], Deferred]

template

Data type: String

variables

Data type: Hash

stdlib::end_with

Type: Ruby 4.x API

Returns true if str ends with one of the prefixes given. Each of the prefixes should be a String.

Examples

'foobar'.stdlib::end_with('bar') => true
'foobar'.stdlib::end_with('foo') => false
'foobar'.stdlib::end_with(['foo', 'baz']) => false

stdlib::end_with(String $test_string, Variant[String[1],Array[String[1], 1]] $suffixes)

The stdlib::end_with function.

Returns: Boolean True or False

Examples
'foobar'.stdlib::end_with('bar') => true
'foobar'.stdlib::end_with('foo') => false
'foobar'.stdlib::end_with(['foo', 'baz']) => false
test_string

Data type: String

The string to check

suffixes

Data type: Variant[String[1],Array[String[1], 1]]

The suffixes to check

stdlib::ensure

Type: Puppet Language

function to cast ensure parameter to resource specific value

stdlib::ensure(Variant[Boolean, Enum['present', 'absent']] $ensure, Optional[Enum['directory', 'link', 'mounted', 'service', 'file', 'package']] $resource = undef)

The stdlib::ensure function.

Returns: String

ensure

Data type: Variant[Boolean, Enum['present', 'absent']]

resource

Data type: Optional[Enum['directory', 'link', 'mounted', 'service', 'file', 'package']]

stdlib::ensure_packages

Type: Ruby 4.x API

It optionally takes a hash as a second parameter that will be passed as the third argument to the ensure_resource() function.

stdlib::ensure_packages(Variant[String[1], Array[String[1]]] $packages, Optional[Hash] $default_attributes)

The stdlib::ensure_packages function.

Returns: Undef Returns nothing.

packages

Data type: Variant[String[1], Array[String[1]]]

The packages to ensure are installed.

default_attributes

Data type: Optional[Hash]

Default attributes to be passed to the ensure_resource() function

stdlib::ensure_packages(Hash[String[1], Any] $packages, Optional[Hash] $default_attributes)

The stdlib::ensure_packages function.

Returns: Undef Returns nothing.

packages

Data type: Hash[String[1], Any]

The packages to ensure are installed. The keys are packages and values are the attributes specific to that package.

default_attributes

Data type: Optional[Hash]

Default attributes. Package specific attributes from the packages parameter will take precedence.

stdlib::extname

Type: Ruby 4.x API

If Path is a Dotfile, or starts with a Period, then the starting Dot is not dealt with the Start of the Extension.

An empty String will also be returned, when the Period is the last Character in Path.

Examples

Determining the Extension of a Filename
stdlib::extname('test.rb')       => '.rb'
stdlib::extname('a/b/d/test.rb') => '.rb'
stdlib::extname('test')          => ''
stdlib::extname('.profile')      => ''

stdlib::extname(String $filename)

If Path is a Dotfile, or starts with a Period, then the starting Dot is not dealt with the Start of the Extension.

An empty String will also be returned, when the Period is the last Character in Path.

Returns: String The Extension starting from the last Period

Examples
Determining the Extension of a Filename
stdlib::extname('test.rb')       => '.rb'
stdlib::extname('a/b/d/test.rb') => '.rb'
stdlib::extname('test')          => ''
stdlib::extname('.profile')      => ''
filename

Data type: String

The Filename

stdlib::fqdn_rand_string

Type: Ruby 4.x API

Optionally, you can specify a character set for the function (defaults to alphanumeric).

Examples

Example Usage:
stdlib::fqdn_rand_string(10)
stdlib::fqdn_rand_string(10, 'ABCDEF!@$%^')
stdlib::fqdn_rand_string(10, undef, 'custom seed')

stdlib::fqdn_rand_string(Integer[1] $length, Optional[Optional[String]] $charset, Optional[Any] *$seed)