Add the prosody module
[mirror/dsa-puppet.git] / 3rdparty / modules / prosody / manifests / init.pp
diff --git a/3rdparty/modules/prosody/manifests/init.pp b/3rdparty/modules/prosody/manifests/init.pp
new file mode 100644 (file)
index 0000000..7591e96
--- /dev/null
@@ -0,0 +1,58 @@
+# == 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)
+}