# == Class: prosody class prosody( Array[String] $admins, Boolean $allow_registration, Prosody::Authentication $authentication, Boolean $c2s_require_encryption, Array[String] $community_modules, Hash $components, Hash $custom_options, Boolean $daemonize, Stdlib::Absolutepath $error_log, String $group, Stdlib::Absolutepath $info_log, Array[Stdlib::IP::Address] $interfaces, Prosody::Loglevel $log_level, Array[String] $log_sinks, Hash[Optional[Prosody::Loglevel], Data] $log_advanced, Array[String] $modules, Array[String] $modules_base, Array[String] $modules_disabled, Prosody::Packageensure $package_ensure, String $package_name, Stdlib::Absolutepath $pidfile, Array[Stdlib::Fqdn] $s2s_insecure_domains, Boolean $s2s_require_encryption, Boolean $s2s_secure_auth, Array[Stdlib::Fqdn] $s2s_secure_domains, String $ssl_ciphers, String $ssl_curve, Boolean $ssl_custom_config, String $ssl_dhparam, Array[String] $ssl_options, Prosody::Storage $storage, Boolean $use_libevent, String $user, Hash $virtualhost_defaults, Hash $virtualhosts, Optional[Hash] $sql = undef, Optional[Stdlib::Absolutepath] $ssl_cert = undef, Optional[Stdlib::Absolutepath] $ssl_key = undef, Optional[String] $ssl_protocol = undef, ) { if ($community_modules != []) { class { '::prosody::community_modules': require => Class['::prosody::package'], before => Class['::prosody::config'], } } anchor { 'prosody::begin': } -> class { '::prosody::package': } -> class { '::prosody::config': } -> class { '::prosody::service': } -> anchor { '::prosody::end': } # create virtualhost resources via hiera create_resources('prosody::virtualhost', $virtualhosts, $virtualhost_defaults) }