Add the prosody module
[mirror/dsa-puppet.git] / 3rdparty / modules / prosody / manifests / init.pp
1 # == Class: prosody
2 class prosody(
3   Array[String]                           $admins,
4   Boolean                                 $allow_registration,
5   Prosody::Authentication                 $authentication,
6   Boolean                                 $c2s_require_encryption,
7   Array[String]                           $community_modules,
8   Hash                                    $components,
9   Hash                                    $custom_options,
10   Boolean                                 $daemonize,
11   Stdlib::Absolutepath                    $error_log,
12   String                                  $group,
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,
22   String                                  $package_name,
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,
28   String                                  $ssl_ciphers,
29   String                                  $ssl_curve,
30   Boolean                                 $ssl_custom_config,
31   String                                  $ssl_dhparam,
32   Array[String]                           $ssl_options,
33   Prosody::Storage                        $storage,
34   Boolean                                 $use_libevent,
35   String                                  $user,
36   Hash                                    $virtualhost_defaults,
37   Hash                                    $virtualhosts,
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,
42 ) {
43   if ($community_modules != []) {
44     class { '::prosody::community_modules':
45       require => Class['::prosody::package'],
46       before  => Class['::prosody::config'],
47     }
48   }
49
50   anchor { 'prosody::begin': }
51   -> class { '::prosody::package': }
52   -> class { '::prosody::config': }
53   -> class { '::prosody::service': }
54   -> anchor { '::prosody::end': }
55
56   # create virtualhost resources via hiera
57   create_resources('prosody::virtualhost', $virtualhosts, $virtualhost_defaults)
58 }