#
# @summary Class to install [% name %].
#
# @param ensure
#   Ensure parameter to ensure that [% name %] is either <code>present</code> or
#   <code>absent</code>.
# @param package
#   Name of the package that provides [% name %]. If <code>false</code>,
#   no package installation will be attempted.
# @param service
#   Name of the service that provides [% name %]. If <code>false</code>,
#   no service setup will be attempted.
#
class [% name %] (
    Enum[present, absent] $ensure  = 'present',
    Variant[String, Boolean] $package = $[% name %]::params::package,
    Variant[String, Boolean] $service = $[% name %]::params::service,
) inherits ::[% name %]::params {
    class {
        '::[% name %]::install':
            ensure  => $ensure,
            package => $package,
        ;
    } -> class {
        '::[% name %]::config':
            ensure  => $ensure,
        ;
    } ~> class {
        '::[% name %]::service':
            ensure  => $ensure,
            service => $service,
        ;
    }
}