| Index: modules/fluent/manifests/gem.pp | 
| diff --git a/modules/fluent/manifests/gem.pp b/modules/fluent/manifests/gem.pp | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..a85b07426a8afee50faf569eca6df04c3c738754 | 
| --- /dev/null | 
| +++ b/modules/fluent/manifests/gem.pp | 
| @@ -0,0 +1,56 @@ | 
| +# == Type: fluent::gem | 
| +# | 
| +# Maintain Fluentd (plugin) gems. | 
| +# | 
| +# Type fluentd::gem is a thin layer around a single Puppet package resource | 
| +# definition, combining the available parameters with ones computed internally | 
| +# (aligned with http://docs.fluentd.org/articles/plugin-management#fluent-gem) | 
| +# and determining the proper default package provider (module fluent includes | 
| +# specialized providers using the gem command that ships with Fluentd, see the | 
| +# *.rb files in modules/fluent/lib/puppet/provider/package for details).# | 
| +# | 
| +# === Parameters: | 
| +# | 
| +# [*ensure*] | 
| +#   Translates directly into the package $ensure parameter. | 
| +# | 
| +# [*name*] | 
| +#   Translates directly into the package $name parameter. | 
| +# | 
| +# [*provider*] | 
| +#   Translates directly into the package $provider parameter. | 
| +# | 
| +# === Examples: | 
| +# | 
| +#   fluent::gem {[ | 
| +#     'fluent-plugin-secure-forward', | 
| +#     'fluent-plugin-grep', | 
| +#   ]: | 
| +#     ensure => 'latest', | 
| +#   } | 
| +# | 
| +define fluent::gem ( | 
| +  $ensure = 'present', | 
| +  $provider = getparam(Package['fluent'], 'name') ? { | 
| +    /\btd[_\-]/ => 'td_agent_gem', | 
| +    default => 'fluent_gem', | 
| +  } | 
| +) { | 
| + | 
| +  include fluent | 
| +  include stdlib | 
| + | 
| +  # Returns undef if Service['fluent'] is not defined | 
| +  $notify = getparam(Service['fluent'], 'ensure') ? { | 
| +    /^(running|true)$/ => Service['fluent'], | 
| +    default => [], | 
| +  } | 
| + | 
| +  package {$title: | 
| +    ensure => $ensure, | 
| +    name => $name, | 
| +    notify => $notify, | 
| +    provider => $provider, | 
| +    require => Package['fluent'], | 
| +  } | 
| +} | 
|  |