4 Boolean $allow_registration,
5 Prosody::Authentication $authentication,
6 Boolean $c2s_require_encryption,
7 Array[String] $community_modules,
11 Stdlib::Absolutepath $error_log,
13 Stdlib::Absolutepath $info_log,
14 Array[Stdlib::IP::Address] $interfaces,
15 Prosody::Loglevel $log_level,
16 Array[String] $log_sinks,
17 Hash[Optional[Prosody::Loglevel], Data] $log_advanced,
18 Array[String] $modules,
19 Array[String] $modules_base,
20 Array[String] $modules_disabled,
21 Prosody::Packageensure $package_ensure,
23 Stdlib::Absolutepath $pidfile,
24 Array[Stdlib::Fqdn] $s2s_insecure_domains,
25 Boolean $s2s_require_encryption,
26 Boolean $s2s_secure_auth,
27 Array[Stdlib::Fqdn] $s2s_secure_domains,
30 Boolean $ssl_custom_config,
32 Array[String] $ssl_options,
33 Prosody::Storage $storage,
34 Boolean $use_libevent,
36 Hash $virtualhost_defaults,
38 Optional[Hash] $sql = undef,
39 Optional[Stdlib::Absolutepath] $ssl_cert = undef,
40 Optional[Stdlib::Absolutepath] $ssl_key = undef,
41 Optional[String] $ssl_protocol = undef,
43 if ($community_modules != []) {
44 class { '::prosody::community_modules':
45 require => Class['::prosody::package'],
46 before => Class['::prosody::config'],
50 anchor { 'prosody::begin': }
51 -> class { '::prosody::package': }
52 -> class { '::prosody::config': }
53 -> class { '::prosody::service': }
54 -> anchor { '::prosody::end': }
56 # create virtualhost resources via hiera
57 create_resources('prosody::virtualhost', $virtualhosts, $virtualhost_defaults)