As discussed in:
ccin2p3/puppet-patterndb#10 (comment)
Manage the syslog-ng packages in a syslog_ng::package class and the service in syslog_ng::service to add a layer of abstraction and allow to write dependencies in an operating-system-agnostic way:
Class['syslog_ng::package'] -> Foo['bar'] ~> Class['syslog_ng::service']