diff --git a/.puppet-lint.rc b/.puppet-lint.rc
index 764bae24ed..6d61fb07e3 100644
--- a/.puppet-lint.rc
+++ b/.puppet-lint.rc
@@ -1,4 +1,2 @@
--relative
---no-parameter_types-check
---no-parameter_documentation-check
--no-anchor_resource-check
diff --git a/.sync.yml b/.sync.yml
index afd2b90909..0ec6e5c8dd 100644
--- a/.sync.yml
+++ b/.sync.yml
@@ -37,6 +37,4 @@ Rakefile:
changelog_since_tag: "3.2.0"
Rakefile:
extra_disabled_lint_checks:
- - parameter_types
- - parameter_documentation
- anchor_resource
diff --git a/Rakefile b/Rakefile
index ff4f906f72..a959c34a12 100644
--- a/Rakefile
+++ b/Rakefile
@@ -42,8 +42,6 @@ def changelog_future_release
end
PuppetLint.configuration.send('disable_relative')
-PuppetLint.configuration.send('disable_parameter_types')
-PuppetLint.configuration.send('disable_parameter_documentation')
PuppetLint.configuration.send('disable_anchor_resource')
diff --git a/manifests/balancer.pp b/manifests/balancer.pp
index 6740a73c27..b67e10b0d7 100644
--- a/manifests/balancer.pp
+++ b/manifests/balancer.pp
@@ -43,10 +43,10 @@
# apache::balancer { 'puppet00': }
#
define apache::balancer (
- $proxy_set = {},
- $collect_exported = true,
- $target = undef,
- $options = [],
+ Hash $proxy_set = {},
+ Boolean $collect_exported = true,
+ Optional[String] $target = undef,
+ Array $options = [],
) {
include apache::mod::proxy_balancer
diff --git a/manifests/balancermember.pp b/manifests/balancermember.pp
index 8a1af44302..29126ee043 100644
--- a/manifests/balancermember.pp
+++ b/manifests/balancermember.pp
@@ -27,7 +27,7 @@
# @param url
# The url used to contact the balancer member server.
#
-# @param options
+# @param options
# Specifies an array of [options](https://httpd.apache.org/docs/current/mod/mod_proxy.html#balancermember)
# after the URL, and accepts any key-value pairs available to `ProxyPass`.
#
@@ -39,9 +39,9 @@
# }
#
define apache::balancermember (
- $balancer_cluster,
- $url = "http://${$facts['networking']['fqdn']}/",
- $options = [],
+ String $balancer_cluster,
+ String $url = "http://${$facts['networking']['fqdn']}/",
+ Array $options = [],
) {
concat::fragment { "BalancerMember ${name}":
target => "apache_balancer_${balancer_cluster}",
diff --git a/manifests/custom_config.pp b/manifests/custom_config.pp
index 52b94b4891..6a348b128a 100644
--- a/manifests/custom_config.pp
+++ b/manifests/custom_config.pp
@@ -50,16 +50,16 @@
#
define apache::custom_config (
Enum['absent', 'present'] $ensure = 'present',
- $confdir = $apache::confd_dir,
- $content = undef,
- $priority = '25',
- $source = undef,
- $verify_command = $apache::params::verify_command,
+ String $confdir = $apache::confd_dir,
+ Optional[String] $content = undef,
+ Variant[String,Boolean] $priority = '25',
+ Optional[String] $source = undef,
+ String $verify_command = $apache::params::verify_command,
Boolean $verify_config = true,
- $filename = undef,
- $owner = undef,
- $group = undef,
- $file_mode = undef,
+ Optional[String] $filename = undef,
+ Optional[String] $owner = undef,
+ Optional[String] $group = undef,
+ Optional[String] $file_mode = undef,
Boolean $show_diff = true,
) {
if $content and $source {
diff --git a/manifests/default_confd_files.pp b/manifests/default_confd_files.pp
index 5a7c7f786f..a92c53a26e 100644
--- a/manifests/default_confd_files.pp
+++ b/manifests/default_confd_files.pp
@@ -3,7 +3,7 @@
#
# @api private
class apache::default_confd_files (
- $all = true,
+ Boolean $all = true,
) {
# The rest of the conf.d/* files only get loaded if we want them
if $all {
diff --git a/manifests/default_mods.pp b/manifests/default_mods.pp
index 55eed95750..083f1bccd3 100644
--- a/manifests/default_mods.pp
+++ b/manifests/default_mods.pp
@@ -3,10 +3,10 @@
#
# @api private
class apache::default_mods (
- $all = true,
- $mods = undef,
- $apache_version = $apache::apache_version,
- $use_systemd = $apache::use_systemd,
+ Boolean $all = true,
+ Optional[Variant[Array[String],String]] $mods = undef,
+ String $apache_version = $apache::apache_version,
+ Boolean $use_systemd = $apache::use_systemd,
) {
# These are modules required to run the default configuration.
# They are not configurable at this time, so we just include
diff --git a/manifests/default_mods/load.pp b/manifests/default_mods/load.pp
index fc44ebcb31..2203f8279f 100644
--- a/manifests/default_mods/load.pp
+++ b/manifests/default_mods/load.pp
@@ -2,7 +2,7 @@
# Helper used by `apache::default_mods`
#
# @api private
-define apache::default_mods::load ($module = $title) {
+define apache::default_mods::load (String $module = $title) {
if defined("apache::mod::${module}") {
include "::apache::mod::${module}"
} else {
diff --git a/manifests/fastcgi/server.pp b/manifests/fastcgi/server.pp
index 2e372b1a14..3e6af87af2 100644
--- a/manifests/fastcgi/server.pp
+++ b/manifests/fastcgi/server.pp
@@ -28,14 +28,17 @@
# @param file_type
# Sets the MIME `content-type` of the file to be processed by the FastCGI server.
#
+# @param pass_header
+# Sets a header for the server
+#
define apache::fastcgi::server (
- $host = '127.0.0.1:9000',
- $timeout = 15,
- $flush = false,
- $faux_path = "/var/www/${name}.fcgi",
- $fcgi_alias = "/${name}.fcgi",
- $file_type = 'application/x-httpd-php',
- $pass_header = undef,
+ String $host = '127.0.0.1:9000',
+ Integer $timeout = 15,
+ Boolean $flush = false,
+ String $faux_path = "/var/www/${name}.fcgi",
+ String $fcgi_alias = "/${name}.fcgi",
+ String $file_type = 'application/x-httpd-php',
+ Optional[String] $pass_header = undef,
) {
include apache::mod::fastcgi
diff --git a/manifests/init.pp b/manifests/init.pp
index 1043129eb5..1d9af55a8f 100755
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -461,92 +461,92 @@
# Specifies any idditional Internet media (mime) types that you wish to be configured.
#
class apache (
- $apache_name = $apache::params::apache_name,
- $service_name = $apache::params::service_name,
- $default_mods = true,
+ String $apache_name = $apache::params::apache_name,
+ String $service_name = $apache::params::service_name,
+ Variant[Array,Boolean] $default_mods = true,
Boolean $default_vhost = true,
- $default_charset = undef,
+ Optional[String] $default_charset = undef,
Boolean $default_confd_files = true,
Boolean $default_ssl_vhost = false,
- $default_ssl_cert = $apache::params::default_ssl_cert,
- $default_ssl_key = $apache::params::default_ssl_key,
- $default_ssl_chain = undef,
- $default_ssl_ca = undef,
- $default_ssl_crl_path = undef,
- $default_ssl_crl = undef,
- $default_ssl_crl_check = undef,
+ String $default_ssl_cert = $apache::params::default_ssl_cert,
+ String $default_ssl_key = $apache::params::default_ssl_key,
+ Optional[String] $default_ssl_chain = undef,
+ Optional[String] $default_ssl_ca = undef,
+ Optional[String] $default_ssl_crl_path = undef,
+ Optional[String] $default_ssl_crl = undef,
+ Optional[String] $default_ssl_crl_check = undef,
Boolean $default_ssl_reload_on_change = false,
- $default_type = 'none',
- $dev_packages = $apache::params::dev_packages,
- $ip = undef,
+ String $default_type = 'none',
+ Optional[Variant[Array,String]] $dev_packages = $apache::params::dev_packages,
+ Optional[String] $ip = undef,
Boolean $service_enable = true,
Boolean $service_manage = true,
- $service_ensure = 'running',
- $service_restart = undef,
- $purge_configs = true,
- $purge_vhost_dir = undef,
- $purge_vdir = false,
- $serveradmin = 'root@localhost',
+ Variant[Boolean,String] $service_ensure = 'running',
+ Optional[String] $service_restart = undef,
+ Boolean $purge_configs = true,
+ Optional[Boolean] $purge_vhost_dir = undef,
+ Boolean $purge_vdir = false,
+ String $serveradmin = 'root@localhost',
Enum['On', 'Off', 'on', 'off'] $sendfile = 'On',
- $ldap_verify_server_cert = undef,
- $ldap_trusted_mode = undef,
- $error_documents = false,
- $timeout = '60',
- $httpd_dir = $apache::params::httpd_dir,
- $server_root = $apache::params::server_root,
- $conf_dir = $apache::params::conf_dir,
- $confd_dir = $apache::params::confd_dir,
+ Optional[Enum['On', 'Off', 'on', 'off']] $ldap_verify_server_cert = undef,
+ Optional[String] $ldap_trusted_mode = undef,
+ Boolean $error_documents = false,
+ String $timeout = '60',
+ String $httpd_dir = $apache::params::httpd_dir,
+ String $server_root = $apache::params::server_root,
+ String $conf_dir = $apache::params::conf_dir,
+ String $confd_dir = $apache::params::confd_dir,
Enum['Off', 'On', 'Double', 'off', 'on', 'double'] $hostname_lookups = $apache::params::hostname_lookups,
- $conf_enabled = $apache::params::conf_enabled,
- $vhost_dir = $apache::params::vhost_dir,
- $vhost_enable_dir = $apache::params::vhost_enable_dir,
- $mod_libs = $apache::params::mod_libs,
- $mod_packages = $apache::params::mod_packages,
- $vhost_include_pattern = $apache::params::vhost_include_pattern,
- $mod_dir = $apache::params::mod_dir,
- $mod_enable_dir = $apache::params::mod_enable_dir,
- $mpm_module = $apache::params::mpm_module,
- $lib_path = $apache::params::lib_path,
- $conf_template = $apache::params::conf_template,
- $servername = $apache::params::servername,
- $pidfile = $apache::params::pidfile,
+ Optional[String] $conf_enabled = $apache::params::conf_enabled,
+ String $vhost_dir = $apache::params::vhost_dir,
+ Optional[String] $vhost_enable_dir = $apache::params::vhost_enable_dir,
+ Hash $mod_libs = $apache::params::mod_libs,
+ Hash $mod_packages = $apache::params::mod_packages,
+ String $vhost_include_pattern = $apache::params::vhost_include_pattern,
+ String $mod_dir = $apache::params::mod_dir,
+ Optional[String] $mod_enable_dir = $apache::params::mod_enable_dir,
+ Variant[Boolean,String] $mpm_module = $apache::params::mpm_module,
+ String $lib_path = $apache::params::lib_path,
+ String $conf_template = $apache::params::conf_template,
+ Optional[String] $servername = $apache::params::servername,
+ String $pidfile = $apache::params::pidfile,
Optional[Stdlib::Absolutepath] $rewrite_lock = undef,
Boolean $manage_user = true,
Boolean $manage_group = true,
- $user = $apache::params::user,
- $group = $apache::params::group,
- $http_protocol_options = $apache::params::http_protocol_options,
- $supplementary_groups = [],
- $keepalive = $apache::params::keepalive,
- $keepalive_timeout = $apache::params::keepalive_timeout,
- $max_keepalive_requests = $apache::params::max_keepalive_requests,
- $limitreqfieldsize = '8190',
- $limitreqfields = '100',
- $logroot = $apache::params::logroot,
- $logroot_mode = $apache::params::logroot_mode,
+ String $user = $apache::params::user,
+ String $group = $apache::params::group,
+ Optional[String] $http_protocol_options = $apache::params::http_protocol_options,
+ Array $supplementary_groups = [],
+ String $keepalive = $apache::params::keepalive,
+ Variant[Integer,String] $keepalive_timeout = $apache::params::keepalive_timeout,
+ Variant[Integer,String] $max_keepalive_requests = $apache::params::max_keepalive_requests,
+ String $limitreqfieldsize = '8190',
+ String $limitreqfields = '100',
+ String $logroot = $apache::params::logroot,
+ Optional[String] $logroot_mode = $apache::params::logroot_mode,
Apache::LogLevel $log_level = $apache::params::log_level,
- $log_formats = {},
- $ssl_file = undef,
- $ports_file = $apache::params::ports_file,
- $docroot = $apache::params::docroot,
- $apache_version = $apache::version::default,
- $server_tokens = 'Prod',
- $server_signature = 'On',
- $trace_enable = 'On',
+ Hash $log_formats = {},
+ Optional[String] $ssl_file = undef,
+ String $ports_file = $apache::params::ports_file,
+ String $docroot = $apache::params::docroot,
+ String $apache_version = $apache::version::default,
+ String $server_tokens = 'Prod',
+ String $server_signature = 'On',
+ String $trace_enable = 'On',
Optional[Enum['on', 'off', 'nodecode']] $allow_encoded_slashes = undef,
- $file_e_tag = undef,
+ Optional[String] $file_e_tag = undef,
Optional[Enum['On', 'on', 'Off', 'off', 'DNS', 'dns']]
- $use_canonical_name = undef,
- $package_ensure = 'installed',
- Boolean $use_optional_includes = $apache::params::use_optional_includes,
- $use_systemd = $apache::params::use_systemd,
- $mime_types_additional = $apache::params::mime_types_additional,
- $file_mode = $apache::params::file_mode,
- $root_directory_options = $apache::params::root_directory_options,
- Boolean $root_directory_secured = false,
- $error_log = $apache::params::error_log,
- $scriptalias = $apache::params::scriptalias,
- $access_log_file = $apache::params::access_log_file,
+ $use_canonical_name = undef,
+ String $package_ensure = 'installed',
+ Boolean $use_optional_includes = $apache::params::use_optional_includes,
+ Boolean $use_systemd = $apache::params::use_systemd,
+ Hash $mime_types_additional = $apache::params::mime_types_additional,
+ String $file_mode = $apache::params::file_mode,
+ Array $root_directory_options = $apache::params::root_directory_options,
+ Boolean $root_directory_secured = false,
+ String $error_log = $apache::params::error_log,
+ String $scriptalias = $apache::params::scriptalias,
+ String $access_log_file = $apache::params::access_log_file,
Array[Enum['h2', 'h2c', 'http/1.1']] $protocols = [],
Optional[Boolean] $protocols_honor_order = undef,
) inherits apache::params {
diff --git a/manifests/mod.pp b/manifests/mod.pp
index c748d2f819..8118a55d54 100644
--- a/manifests/mod.pp
+++ b/manifests/mod.pp
@@ -33,14 +33,14 @@
# Specifies a path to the module. Do not manually set this parameter without a special reason.
#
define apache::mod (
- $package = undef,
- $package_ensure = 'present',
- $lib = undef,
- $lib_path = $apache::lib_path,
- $id = undef,
- $path = undef,
- $loadfile_name = undef,
- $loadfiles = undef,
+ Optional[String] $package = undef,
+ String $package_ensure = 'present',
+ Optional[String] $lib = undef,
+ String $lib_path = $apache::lib_path,
+ Optional[String] $id = undef,
+ Optional[String] $path = undef,
+ Optional[String] $loadfile_name = undef,
+ Optional[Array] $loadfiles = undef,
) {
if ! defined(Class['apache']) {
fail('You must include the apache base class before using any apache defined resources')
diff --git a/manifests/mod/alias.pp b/manifests/mod/alias.pp
index c187e7661c..5271e8f2f8 100644
--- a/manifests/mod/alias.pp
+++ b/manifests/mod/alias.pp
@@ -14,18 +14,19 @@
# - FreeBSD: /usr/local/www/apache24/icons
# - Gentoo: /var/www/icons
# - Red Hat: /var/www/icons, except on Apache 2.4, where it's /usr/share/httpd/icons
+# Set to 'false' to disable the alias
#
-# @param icons_path
+# @param icons_prefix
# Change the alias for /icons/.
#
# @see https://httpd.apache.org/docs/current/mod/mod_alias.html for additional documentation.
#
class apache::mod::alias (
- $apache_version = undef,
- $icons_options = 'Indexes MultiViews',
+ Optional[String] $apache_version = undef,
+ String $icons_options = 'Indexes MultiViews',
# set icons_path to false to disable the alias
- $icons_path = $apache::params::alias_icons_path,
- $icons_prefix = $apache::params::icons_prefix
+ String $icons_path = $apache::params::alias_icons_path,
+ String $icons_prefix = $apache::params::icons_prefix
) inherits apache::params {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/auth_cas.pp b/manifests/mod/auth_cas.pp
index 5d130662ed..a85b9d3763 100644
--- a/manifests/mod/auth_cas.pp
+++ b/manifests/mod/auth_cas.pp
@@ -25,8 +25,11 @@
# Whether to validate the presented certificate. This has been deprecated and
# removed from Version 1.1-RC1 onward.
#
-# @param cas_validatedepth
+# @param cas_validate_depth
# The maximum depth for chained certificate validation.
+#
+# @param cas_certificate_path
+# The path leading to the certificate
#
# @param cas_proxy_validate_url
# The URL to use when performing a proxy validation.
@@ -84,28 +87,28 @@
class apache::mod::auth_cas (
String $cas_login_url,
String $cas_validate_url,
- String $cas_cookie_path = $apache::params::cas_cookie_path,
- $cas_cookie_path_mode = '0750',
- $cas_version = 2,
- $cas_debug = 'Off',
- $cas_validate_server = undef,
- $cas_validate_depth = undef,
- $cas_certificate_path = undef,
- $cas_proxy_validate_url = undef,
- $cas_root_proxied_as = undef,
- $cas_cookie_entropy = undef,
- $cas_timeout = undef,
- $cas_idle_timeout = undef,
- $cas_cache_clean_interval = undef,
- $cas_cookie_domain = undef,
- $cas_cookie_http_only = undef,
- $cas_authoritative = undef,
- $cas_validate_saml = undef,
- $cas_sso_enabled = undef,
- $cas_attribute_prefix = undef,
- $cas_attribute_delimiter = undef,
- $cas_scrub_request_headers = undef,
- $suppress_warning = false,
+ String $cas_cookie_path = $apache::params::cas_cookie_path,
+ String $cas_cookie_path_mode = '0750',
+ Integer $cas_version = 2,
+ String $cas_debug = 'Off',
+ Optional[String] $cas_validate_server = undef,
+ Optional[String] $cas_validate_depth = undef,
+ Optional[String] $cas_certificate_path = undef,
+ Optional[String] $cas_proxy_validate_url = undef,
+ Optional[String] $cas_root_proxied_as = undef,
+ Optional[String] $cas_cookie_entropy = undef,
+ Optional[String] $cas_timeout = undef,
+ Optional[String] $cas_idle_timeout = undef,
+ Optional[String] $cas_cache_clean_interval = undef,
+ Optional[String] $cas_cookie_domain = undef,
+ Optional[String] $cas_cookie_http_only = undef,
+ Optional[String] $cas_authoritative = undef,
+ Optional[String] $cas_validate_saml = undef,
+ Optional[String] $cas_sso_enabled = undef,
+ Optional[String] $cas_attribute_prefix = undef,
+ Optional[String] $cas_attribute_delimiter = undef,
+ Optional[String] $cas_scrub_request_headers = undef,
+ Boolean $suppress_warning = false,
) inherits apache::params {
if $facts['os']['family'] == 'RedHat' and ! $suppress_warning {
warning('RedHat distributions do not have Apache mod_auth_cas in their default package repositories.')
diff --git a/manifests/mod/auth_mellon.pp b/manifests/mod/auth_mellon.pp
index 43a5614306..d98a4ea3eb 100644
--- a/manifests/mod/auth_mellon.pp
+++ b/manifests/mod/auth_mellon.pp
@@ -25,13 +25,13 @@
# @see https://github.com/Uninett/mod_auth_mellon for additional documentation.
#
class apache::mod::auth_mellon (
- $mellon_cache_size = $apache::params::mellon_cache_size,
- $mellon_lock_file = $apache::params::mellon_lock_file,
- $mellon_post_directory = $apache::params::mellon_post_directory,
- $mellon_cache_entry_size = undef,
- $mellon_post_ttl = undef,
- $mellon_post_size = undef,
- $mellon_post_count = undef
+ Optional[Variant[String,Integer]] $mellon_cache_size = $apache::params::mellon_cache_size,
+ Optional[String] $mellon_lock_file = $apache::params::mellon_lock_file,
+ Optional[String] $mellon_post_directory = $apache::params::mellon_post_directory,
+ Optional[String] $mellon_cache_entry_size = undef,
+ Optional[String] $mellon_post_ttl = undef,
+ Optional[String] $mellon_post_size = undef,
+ Optional[String] $mellon_post_count = undef
) inherits apache::params {
include apache
::apache::mod { 'auth_mellon': }
diff --git a/manifests/mod/authn_core.pp b/manifests/mod/authn_core.pp
index f145982e2d..6bbfc4aea1 100644
--- a/manifests/mod/authn_core.pp
+++ b/manifests/mod/authn_core.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_authn_core.html for additional documentation.
#
class apache::mod::authn_core (
- $apache_version = $apache::apache_version
+ Optional[String] $apache_version = $apache::apache_version
) {
if versioncmp($apache_version, '2.4') >= 0 {
::apache::mod { 'authn_core': }
diff --git a/manifests/mod/authn_dbd.pp b/manifests/mod/authn_dbd.pp
index e1f78960e7..77c091fe73 100644
--- a/manifests/mod/authn_dbd.pp
+++ b/manifests/mod/authn_dbd.pp
@@ -28,14 +28,14 @@
# @see https://httpd.apache.org/docs/current/mod/mod_authn_dbd.html for additional documentation.
#
class apache::mod::authn_dbd (
- $authn_dbd_params,
- $authn_dbd_dbdriver = 'mysql',
- $authn_dbd_query = undef,
- $authn_dbd_min = '4',
- $authn_dbd_max = '20',
- $authn_dbd_keep = '8',
- $authn_dbd_exptime = '300',
- $authn_dbd_alias = undef,
+ Optional[String] $authn_dbd_params,
+ String $authn_dbd_dbdriver = 'mysql',
+ Optional[String] $authn_dbd_query = undef,
+ String $authn_dbd_min = '4',
+ String $authn_dbd_max = '20',
+ String $authn_dbd_keep = '8',
+ String $authn_dbd_exptime = '300',
+ Optional[String] $authn_dbd_alias = undef,
) inherits apache::params {
include apache
include apache::mod::dbd
diff --git a/manifests/mod/authnz_ldap.pp b/manifests/mod/authnz_ldap.pp
index 3f194d7363..4c00ceb917 100644
--- a/manifests/mod/authnz_ldap.pp
+++ b/manifests/mod/authnz_ldap.pp
@@ -10,8 +10,8 @@
# @see https://httpd.apache.org/docs/current/mod/mod_authnz_ldap.html for additional documentation.
# @note Unsupported platforms: RedHat: 6, 8; CentOS: 6, 8; OracleLinux: 6, 8; Ubuntu: all; Debian: all; SLES: all
class apache::mod::authnz_ldap (
- Boolean $verify_server_cert = true,
- $package_name = undef,
+ Boolean $verify_server_cert = true,
+ Optional[String] $package_name = undef,
) {
include apache
include 'apache::mod::ldap'
diff --git a/manifests/mod/authz_default.pp b/manifests/mod/authz_default.pp
index 540d086ab0..ba886c2587 100644
--- a/manifests/mod/authz_default.pp
+++ b/manifests/mod/authz_default.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_authz_default.html for additional documentation.
#
class apache::mod::authz_default (
- $apache_version = $apache::apache_version
+ Optional[String] $apache_version = $apache::apache_version
) {
if versioncmp($apache_version, '2.4') >= 0 {
warning('apache::mod::authz_default has been removed in Apache 2.4')
diff --git a/manifests/mod/autoindex.pp b/manifests/mod/autoindex.pp
index aa05bd2703..8bc521e22b 100644
--- a/manifests/mod/autoindex.pp
+++ b/manifests/mod/autoindex.pp
@@ -1,10 +1,13 @@
# @summary
# Installs `mod_autoindex`
#
+# @param icons_prefix
+# Change the alias for /icons/.
+#
# @see https://httpd.apache.org/docs/current/mod/mod_autoindex.html for additional documentation.
#
class apache::mod::autoindex (
- $icons_prefix = $apache::params::icons_prefix
+ String $icons_prefix = $apache::params::icons_prefix
) inherits apache::params {
include apache
::apache::mod { 'autoindex': }
diff --git a/manifests/mod/cluster.pp b/manifests/mod/cluster.pp
index 9b827f7630..2cc920b9a1 100644
--- a/manifests/mod/cluster.pp
+++ b/manifests/mod/cluster.pp
@@ -49,17 +49,17 @@
# @see https://modcluster.io/ for additional documentation.
#
class apache::mod::cluster (
- $allowed_network,
- $balancer_name,
- $ip,
- $version,
- $enable_mcpm_receive = true,
- $port = '6666',
- $keep_alive_timeout = 60,
- $manager_allowed_network = '127.0.0.1',
- $max_keep_alive_requests = 0,
- $server_advertise = true,
- $advertise_frequency = undef,
+ String $allowed_network,
+ String $balancer_name,
+ String $ip,
+ String $version,
+ Boolean $enable_mcpm_receive = true,
+ String $port = '6666',
+ Integer $keep_alive_timeout = 60,
+ String $manager_allowed_network = '127.0.0.1',
+ Integer $max_keep_alive_requests = 0,
+ Boolean $server_advertise = true,
+ Optional[String] $advertise_frequency = undef,
) {
include apache
diff --git a/manifests/mod/data.pp b/manifests/mod/data.pp
index 43bc2d0c90..3dd63ea9fd 100644
--- a/manifests/mod/data.pp
+++ b/manifests/mod/data.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_data.html for additional documentation.
#
class apache::mod::data (
- $apache_version = undef,
+ Optional[String] $apache_version = undef,
) {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/dav_svn.pp b/manifests/mod/dav_svn.pp
index 539e7b4ecb..ae9d4b0a54 100644
--- a/manifests/mod/dav_svn.pp
+++ b/manifests/mod/dav_svn.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_dav_svn.html for additional documentation.
#
class apache::mod::dav_svn (
- $authz_svn_enabled = false,
+ Boolean $authz_svn_enabled = false,
) {
Class['apache::mod::dav'] -> Class['apache::mod::dav_svn']
include apache
diff --git a/manifests/mod/dbd.pp b/manifests/mod/dbd.pp
index cdc9cdf6f4..5e9492f35b 100644
--- a/manifests/mod/dbd.pp
+++ b/manifests/mod/dbd.pp
@@ -1,9 +1,6 @@
# @summary
# Installs `mod_dbd`.
#
-# @param apache_version
-# Used to verify that the Apache version you have requested is compatible with the module.
-#
# @see https://httpd.apache.org/docs/current/mod/mod_dbd.html for additional documentation.
#
class apache::mod::dbd {
diff --git a/manifests/mod/deflate.pp b/manifests/mod/deflate.pp
index 777c2f8886..0d0180050c 100644
--- a/manifests/mod/deflate.pp
+++ b/manifests/mod/deflate.pp
@@ -10,14 +10,14 @@
# @see https://httpd.apache.org/docs/current/mod/mod_deflate.html for additional documentation.
#
class apache::mod::deflate (
- $types = [
+ Array[String] $types = [
'text/html text/plain text/xml',
'text/css',
'application/x-javascript application/javascript application/ecmascript',
'application/rss+xml',
'application/json',
],
- $notes = {
+ Hash $notes = {
'Input' => 'instream',
'Output' => 'outstream',
'Ratio' => 'ratio',
diff --git a/manifests/mod/dir.pp b/manifests/mod/dir.pp
index 86f97a0706..23d97c1b39 100644
--- a/manifests/mod/dir.pp
+++ b/manifests/mod/dir.pp
@@ -1,8 +1,7 @@
# @summary
# Installs and configures `mod_dir`.
#
-# @param types
-# Specifies the text-based content types to compress.
+# @param dir
#
# @param indexes
# Provides a string for the DirectoryIndex directive
@@ -14,8 +13,15 @@
# @see https://httpd.apache.org/docs/current/mod/mod_dir.html for additional documentation.
#
class apache::mod::dir (
- $dir = 'public_html',
- Array[String] $indexes = ['index.html','index.html.var','index.cgi','index.pl','index.php','index.xhtml'],
+ String $dir = 'public_html',
+ Array[String] $indexes = [
+ 'index.html',
+ 'index.html.var',
+ 'index.cgi',
+ 'index.pl',
+ 'index.php',
+ 'index.xhtml',
+ ],
) {
include apache
::apache::mod { 'dir': }
diff --git a/manifests/mod/disk_cache.pp b/manifests/mod/disk_cache.pp
index 7851825bbc..044de457d1 100644
--- a/manifests/mod/disk_cache.pp
+++ b/manifests/mod/disk_cache.pp
@@ -23,9 +23,9 @@
# @see https://httpd.apache.org/docs/2.2/mod/mod_disk_cache.html for additional documentation.
#
class apache::mod::disk_cache (
- $cache_root = undef,
- $cache_ignore_headers = undef,
- Boolean $default_cache_enable = true,
+ Optional[String] $cache_root = undef,
+ Optional[String] $cache_ignore_headers = undef,
+ Boolean $default_cache_enable = true,
) {
include apache
if $cache_root {
diff --git a/manifests/mod/event.pp b/manifests/mod/event.pp
index 4d48914486..fc624b5f10 100644
--- a/manifests/mod/event.pp
+++ b/manifests/mod/event.pp
@@ -47,18 +47,18 @@
# @see https://httpd.apache.org/docs/current/mod/event.html for additional documentation.
# @note Unsupported platforms: SLES: all
class apache::mod::event (
- $startservers = '2',
- $maxclients = '150',
- $maxrequestworkers = undef,
- $minsparethreads = '25',
- $maxsparethreads = '75',
- $threadsperchild = '25',
- $maxrequestsperchild = '0',
- $maxconnectionsperchild = undef,
- $serverlimit = '25',
- $apache_version = undef,
- $threadlimit = '64',
- $listenbacklog = '511',
+ Variant[String,Boolean] $startservers = '2',
+ Variant[String,Boolean] $maxclients = '150',
+ Optional[Variant[String,Boolean]] $maxrequestworkers = undef,
+ Variant[String,Boolean] $minsparethreads = '25',
+ Variant[String,Boolean] $maxsparethreads = '75',
+ Variant[String,Boolean] $threadsperchild = '25',
+ Variant[String,Boolean] $maxrequestsperchild = '0',
+ Optional[Variant[String,Boolean]] $maxconnectionsperchild = undef,
+ Variant[String,Boolean] $serverlimit = '25',
+ Optional[String] $apache_version = undef,
+ Variant[String,Boolean] $threadlimit = '64',
+ Variant[String,Boolean] $listenbacklog = '511',
) {
include apache
diff --git a/manifests/mod/expires.pp b/manifests/mod/expires.pp
index 7a5bfddea2..33bd11053f 100644
--- a/manifests/mod/expires.pp
+++ b/manifests/mod/expires.pp
@@ -15,9 +15,9 @@
# @see https://httpd.apache.org/docs/current/mod/mod_expires.html for additional documentation.
#
class apache::mod::expires (
- $expires_active = true,
- $expires_default = undef,
- $expires_by_type = undef,
+ Boolean $expires_active = true,
+ Optional[String] $expires_default = undef,
+ Optional[Array[Hash]] $expires_by_type = undef,
) {
include apache
::apache::mod { 'expires': }
diff --git a/manifests/mod/fcgid.pp b/manifests/mod/fcgid.pp
index 3cfd051eba..ffec705a41 100644
--- a/manifests/mod/fcgid.pp
+++ b/manifests/mod/fcgid.pp
@@ -1,14 +1,14 @@
# @summary
# Installs and configures `mod_fcgid`.
#
-# @param expires_active
-# Enables generation of Expires headers.
-#
-# @param expires_default
-# Default algorithm for calculating expiration time.
-#
-# @param expires_by_type
-# Value of the Expires header configured by MIME type.
+# @param options
+# A hash used to parameterize the availible options:
+# expires_active
+# Enables generation of Expires headers.
+# expires_default
+# Default algorithm for calculating expiration time.
+# expires_by_type
+# Value of the Expires header configured by MIME type.
#
# @example The class does not individually parameterize all available options. Instead, configure mod_fcgid using the options hash.
# class { 'apache::mod::fcgid':
@@ -36,7 +36,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_fcgid.html for additional documentation.
#
class apache::mod::fcgid (
- $options = {},
+ Hash $options = {},
) {
include apache
if ($facts['os']['family'] == 'RedHat' and versioncmp($facts['os']['release']['major'], '7') >= 0) or $facts['os']['family'] == 'FreeBSD' {
diff --git a/manifests/mod/geoip.pp b/manifests/mod/geoip.pp
index b77ea05c6c..cacf29af23 100644
--- a/manifests/mod/geoip.pp
+++ b/manifests/mod/geoip.pp
@@ -19,7 +19,7 @@
# @param scan_proxy_headers
# Enables the GeoIPScanProxyHeaders option.
#
-# @param scan_proxy_headers_field
+# @param scan_proxy_header_field
# Specifies the header mod_geoip uses to determine the client's IP address.
#
# @param use_last_xforwarededfor_ip
@@ -28,14 +28,14 @@
# @see https://dev.maxmind.com/geoip/legacy/mod_geoip2 for additional documentation.
#
class apache::mod::geoip (
- $enable = false,
- $db_file = '/usr/share/GeoIP/GeoIP.dat',
- $flag = 'Standard',
- $output = 'All',
- $enable_utf8 = undef,
- $scan_proxy_headers = undef,
- $scan_proxy_header_field = undef,
- $use_last_xforwarededfor_ip = undef,
+ Boolean $enable = false,
+ String $db_file = '/usr/share/GeoIP/GeoIP.dat',
+ String $flag = 'Standard',
+ String $output = 'All',
+ Optional[String] $enable_utf8 = undef,
+ Optional[String] $scan_proxy_headers = undef,
+ Optional[String] $scan_proxy_header_field = undef,
+ Optional[String] $use_last_xforwarededfor_ip = undef,
) {
include apache
::apache::mod { 'geoip': }
diff --git a/manifests/mod/headers.pp b/manifests/mod/headers.pp
index a86dbf76a5..8f7b466915 100644
--- a/manifests/mod/headers.pp
+++ b/manifests/mod/headers.pp
@@ -1,9 +1,6 @@
# @summary
# Installs and configures `mod_headers`.
#
-# @param apache_version
-# Version of Apache to install module on.
-#
# @see https://httpd.apache.org/docs/current/mod/mod_headers.html for additional documentation.
#
class apache::mod::headers {
diff --git a/manifests/mod/http2.pp b/manifests/mod/http2.pp
index 0637aee4dd..c5d6549419 100644
--- a/manifests/mod/http2.pp
+++ b/manifests/mod/http2.pp
@@ -31,7 +31,7 @@
# @param h2_push_diary_size
# Sets maximum number of HTTP/2 server pushes that are remembered per HTTP/2 connection.
#
-# @param h2_priority
+# @param h2_push_priority
# Require HTTP/2 connections to be "modern TLS" only
#
# @param h2_push_resource
diff --git a/manifests/mod/info.pp b/manifests/mod/info.pp
index 68afb56e23..487f764276 100644
--- a/manifests/mod/info.pp
+++ b/manifests/mod/info.pp
@@ -17,10 +17,10 @@
# @see https://httpd.apache.org/docs/current/mod/mod_info.html for additional documentation.
#
class apache::mod::info (
- $allow_from = ['127.0.0.1','::1'],
- $apache_version = undef,
- $restrict_access = true,
- $info_path = '/server-info',
+ Array[String] $allow_from = ['127.0.0.1','::1'],
+ Optional[String] $apache_version = undef,
+ Boolean $restrict_access = true,
+ String $info_path = '/server-info',
) {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/itk.pp b/manifests/mod/itk.pp
index 3250270cba..16dbdce51f 100644
--- a/manifests/mod/itk.pp
+++ b/manifests/mod/itk.pp
@@ -30,14 +30,14 @@
# @see http://mpm-itk.sesse.net for additional documentation.
# @note Unsupported platforms: CentOS: 8; RedHat: 8; SLES: all
class apache::mod::itk (
- $startservers = '8',
- $minspareservers = '5',
- $maxspareservers = '20',
- $serverlimit = '256',
- $maxclients = '256',
- $maxrequestsperchild = '4000',
- $enablecapabilities = undef,
- $apache_version = undef,
+ String $startservers = '8',
+ String $minspareservers = '5',
+ String $maxspareservers = '20',
+ String $serverlimit = '256',
+ String $maxclients = '256',
+ String $maxrequestsperchild = '4000',
+ Optional[Variant[Boolean,String]] $enablecapabilities = undef,
+ Optional[String] $apache_version = undef,
) {
include apache
diff --git a/manifests/mod/jk.pp b/manifests/mod/jk.pp
index e26f6c70dc..8f9a596dc1 100644
--- a/manifests/mod/jk.pp
+++ b/manifests/mod/jk.pp
@@ -128,6 +128,34 @@
# If this directive is set to On in some virtual server, the session IDs ;jsessionid=... will be removed for URLs which are not
# forwarded but instead are handled by the local server.
#
+# @param location_list
+# Global locations for mod_jk are defined in array location_list.
+# Each array item is a hash with quoted* property name as key and value as value itself.
+# You can define a comment in a special 'comment' key
+#
+# Example:
+#
+# # Configures jkstatus
+# JkMount status
+# Order deny,allow
+# Deny from all
+# Allow from 127.0.0.1
+#
+#
+# Is defined as:
+# location_list = [
+# {
+# 'Location' => '/jkstatus/',
+# 'Comment' => 'Configures jkstatus',
+# 'JkMount' => 'status',
+# 'Order' => 'deny,allow',
+# 'Deny from' => 'all',
+# 'Allow from' => '127.0.0.1',
+# },
+# ]
+# * Keys must be quoted to allow arbitrary case and/or multi-word keys
+# (BTW, note the case of 'Location' and 'Comment' keys)
+#
# @param workers_file_content
# Each directive has the format worker..=. This maps as a hash of hashes, where the outer hash specifies
# workers, and each inner hash specifies each worker properties and values. Plus, there are two global directives, 'worker.list' and
@@ -243,56 +271,56 @@
#
class apache::mod::jk (
# Binding to mod_jk
- Optional[String] $ip = undef,
- Integer $port = 80,
- Boolean $add_listen = true,
+ Optional[String] $ip = undef,
+ Integer $port = 80,
+ Boolean $add_listen = true,
# Conf file content
- $workers_file = undef,
- $worker_property = {},
- $logroot = undef,
- $shm_file = 'jk-runtime-status',
- $shm_size = undef,
- $mount_file = undef,
- $mount_file_reload = undef,
- $mount = {},
- $un_mount = {},
- $auto_alias = undef,
- $mount_copy = undef,
- $worker_indicator = undef,
- $watchdog_interval = undef,
- $log_file = 'mod_jk.log',
- $log_level = undef,
- $log_stamp_format = undef,
- $request_log_format = undef,
- $extract_ssl = undef,
- $https_indicator = undef,
- $sslprotocol_indicator = undef,
- $certs_indicator = undef,
- $cipher_indicator = undef,
- $certchain_prefix = undef,
- $session_indicator = undef,
- $keysize_indicator = undef,
- $local_name_indicator = undef,
- $ignore_cl_indicator = undef,
- $local_addr_indicator = undef,
- $local_port_indicator = undef,
- $remote_host_indicator = undef,
- $remote_addr_indicator = undef,
- $remote_port_indicator = undef,
- $remote_user_indicator = undef,
- $auth_type_indicator = undef,
- $options = [],
- $env_var = {},
- $strip_session = undef,
+ Optional[String] $workers_file = undef,
+ Hash $worker_property = {},
+ Optional[String] $logroot = undef,
+ String $shm_file = 'jk-runtime-status',
+ Optional[String] $shm_size = undef,
+ Optional[String] $mount_file = undef,
+ Optional[String] $mount_file_reload = undef,
+ Hash $mount = {},
+ Hash $un_mount = {},
+ Optional[String] $auto_alias = undef,
+ Optional[String] $mount_copy = undef,
+ Optional[String] $worker_indicator = undef,
+ Optional[Integer] $watchdog_interval = undef,
+ String $log_file = 'mod_jk.log',
+ Optional[String] $log_level = undef,
+ Optional[String] $log_stamp_format = undef,
+ Optional[String] $request_log_format = undef,
+ Optional[String] $extract_ssl = undef,
+ Optional[String] $https_indicator = undef,
+ Optional[String] $sslprotocol_indicator = undef,
+ Optional[String] $certs_indicator = undef,
+ Optional[String] $cipher_indicator = undef,
+ Optional[String] $certchain_prefix = undef,
+ Optional[String] $session_indicator = undef,
+ Optional[String] $keysize_indicator = undef,
+ Optional[String] $local_name_indicator = undef,
+ Optional[String] $ignore_cl_indicator = undef,
+ Optional[String] $local_addr_indicator = undef,
+ Optional[String] $local_port_indicator = undef,
+ Optional[String] $remote_host_indicator = undef,
+ Optional[String] $remote_addr_indicator = undef,
+ Optional[String] $remote_port_indicator = undef,
+ Optional[String] $remote_user_indicator = undef,
+ Optional[String] $auth_type_indicator = undef,
+ Array $options = [],
+ Hash $env_var = {},
+ Optional[String] $strip_session = undef,
# Location list
# See comments in template mod/jk.conf.erb
- $location_list = [],
+ Array $location_list = [],
# Workers file content
# See comments in template mod/jk/workers.properties.erb
- $workers_file_content = {},
+ Hash $workers_file_content = {},
# Mount file content
# See comments in template mod/jk/uriworkermap.properties.erb
- $mount_file_content = {},
+ Hash $mount_file_content = {},
) {
# Provides important variables
include apache
diff --git a/manifests/mod/ldap.pp b/manifests/mod/ldap.pp
index fab41a7d09..9fc2dabac0 100644
--- a/manifests/mod/ldap.pp
+++ b/manifests/mod/ldap.pp
@@ -49,16 +49,16 @@
# @see https://httpd.apache.org/docs/current/mod/mod_ldap.html for additional documentation.
# @note Unsupported platforms: CentOS: 8; RedHat: 8
class apache::mod::ldap (
- $apache_version = undef,
- $package_name = undef,
- $ldap_trusted_global_cert_file = undef,
+ Optional[String] $apache_version = undef,
+ Optional[String] $package_name = undef,
+ Optional[String] $ldap_trusted_global_cert_file = undef,
String $ldap_trusted_global_cert_type = 'CA_BASE64',
- $ldap_shared_cache_size = undef,
- $ldap_cache_entries = undef,
- $ldap_cache_ttl = undef,
- $ldap_opcache_entries = undef,
- $ldap_opcache_ttl = undef,
- $ldap_trusted_mode = undef,
+ Optional[String] $ldap_shared_cache_size = undef,
+ Optional[String] $ldap_cache_entries = undef,
+ Optional[String] $ldap_cache_ttl = undef,
+ Optional[String] $ldap_opcache_entries = undef,
+ Optional[String] $ldap_opcache_ttl = undef,
+ Optional[String] $ldap_trusted_mode = undef,
String $ldap_path = '/ldap-status',
) {
include apache
diff --git a/manifests/mod/mime.pp b/manifests/mod/mime.pp
index 58957795a6..f21d295735 100644
--- a/manifests/mod/mime.pp
+++ b/manifests/mod/mime.pp
@@ -13,9 +13,9 @@
# @see https://httpd.apache.org/docs/current/mod/mod_mime.html for additional documentation.
#
class apache::mod::mime (
- $mime_support_package = $apache::params::mime_support_package,
- $mime_types_config = $apache::params::mime_types_config,
- $mime_types_additional = undef,
+ String $mime_support_package = $apache::params::mime_support_package,
+ String $mime_types_config = $apache::params::mime_types_config,
+ Optional[Hash] $mime_types_additional = undef,
) inherits apache::params {
include apache
$_mime_types_additional = pick($mime_types_additional, $apache::mime_types_additional)
diff --git a/manifests/mod/mime_magic.pp b/manifests/mod/mime_magic.pp
index 99a1ec4bb1..c8bc4f6abd 100644
--- a/manifests/mod/mime_magic.pp
+++ b/manifests/mod/mime_magic.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_mime_magic.html for additional documentation.
#
class apache::mod::mime_magic (
- $magic_file = undef,
+ Optional[String] $magic_file = undef,
) {
include apache
$_magic_file = pick($magic_file, "${apache::conf_dir}/magic")
diff --git a/manifests/mod/nss.pp b/manifests/mod/nss.pp
index 4c986ff81b..c7660cd262 100644
--- a/manifests/mod/nss.pp
+++ b/manifests/mod/nss.pp
@@ -4,7 +4,7 @@
# @param transfer_log
# Path to `access.log`.
#
-# @param error_Log
+# @param error_log
# Path to `error.log`
#
# @param passwd_file
@@ -16,10 +16,10 @@
# @see https://pagure.io/mod_nss for additional documentation.
#
class apache::mod::nss (
- $transfer_log = "${apache::params::logroot}/access.log",
- $error_log = "${apache::params::logroot}/error.log",
- $passwd_file = undef,
- $port = 8443,
+ String $transfer_log = "${apache::params::logroot}/access.log",
+ String $error_log = "${apache::params::logroot}/error.log",
+ Optional[String] $passwd_file = undef,
+ Integer $port = 8443,
) {
include apache
include apache::mod::mime
diff --git a/manifests/mod/pagespeed.pp b/manifests/mod/pagespeed.pp
index 54181545ae..f0fa0cf3b9 100644
--- a/manifests/mod/pagespeed.pp
+++ b/manifests/mod/pagespeed.pp
@@ -1,54 +1,197 @@
# @summary
-# Installs and configures `mod_pagespeed`.
+# Installs and manages mod_pagespeed, which is a Google module that rewrites web pages to reduce latency and bandwidth.
+#
+# This module does *not* manage the software repositories needed to automatically install the
+# mod-pagespeed-stable package. The module does however require that the package be installed,
+# or be installable using the system's default package provider. You should ensure that this
+# pre-requisite is met or declaring `apache::mod::pagespeed` will cause the puppet run to fail.
#
-# @todo
-# Add docs
+# @param inherit_vhost_config
+# Whether or not to inherit the vhost config
+#
+# @param filter_xhtml
+# Whether to filter by xhtml
+#
+# @param cache_path
+# Where to cache any files
+#
+# @param log_dir
+# The log directory
+#
+# @param memcache_servers
+#
+# @param rewrite_level
+# The inbuilt filter level to be used.
+# Can be `PassThrough`, `CoreFilters` or `OptimizeForBandwidth`.
+#
+# @param disable_filters
+# An array of filters that you wish to disable
+#
+# @param enable_filters
+# An array of filters that you wish to enable
+#
+# @param forbid_filters
+# An array of filters that you wish to forbid
+#
+# @param rewrite_deadline_per_flush_ms
+# How long to wait after attempting to rewrite an uncache/expired resource.
+#
+# @param additional_domains
+# Any additional domains that PageSpeed should optimize resources from.
+#
+# @param file_cache_size_kb
+# The maximum size of the cache
+#
+# @param file_cache_clean_interval_ms
+# The interval between which the cache is cleaned
+#
+# @param lru_cache_per_process
+# The amount of memory dedcated to each process
+#
+# @param lru_cache_byte_limit
+# How large a cache entry the cache will accept
+#
+# @param css_flatten_max_bytes
+# The maximum size in bytes of the flattened CSS
+#
+# @param css_inline_max_bytes
+# The maximum size in bytes of any image that will be inlined into CSS
+#
+# @param css_image_inline_max_bytes
+# The maximum size in bytes of any image that will be inlined into an HTML file
+#
+# @param image_inline_max_bytes
+# The maximum size in bytes of any inlined CSS file
+#
+# @param js_inline_max_bytes
+# The maximum size in bytes of any inlined JavaScript file
+#
+# @param css_outline_min_bytes
+# The minimum size in bytes for a CSS file to qualify as an outline
+#
+# @param js_outline_min_bytes
+# The minimum size in bytes for a JavaScript file to qualify as an outline
+#
+# @param inode_limit
+# The file cache inode limit
+#
+# @param image_max_rewrites_at_once
+# The maximum number of images to optimize concurrently
+#
+# @param num_rewrite_threads
+# The amount of threads to use for rewrite at one time
+# These threads are used for short, latency-sensitive work.
+#
+# @param num_expensive_rewrite_threads
+# The amount of threads to use for rewrite at one time
+# These threads are used for full optimization.
+#
+# @param collect_statistics
+# Whether to collect cross-process statistics
+#
+# @param statistics_logging
+# Whether graphs should be drawn from collected statistics
+#
+# @param allow_view_stats
+# What sources should be allowed to view the resultant graph
+#
+# @param allow_pagespeed_console
+# What sources to draw the graphs from
+#
+# @param allow_pagespeed_message
+#
+# @param message_buffer_size
+# The amount of bytes to allocate as a buffer to hold recent log messages
+#
+# @param additional_configuration
+# Any additional configuration no included as it's own option
+#
+# @param apache_version
+#
+# @param package_ensure
+#
+# @example
+# class { 'apache::mod::pagespeed':
+# inherit_vhost_config => 'on',
+# filter_xhtml => false,
+# cache_path => '/var/cache/mod_pagespeed/',
+# log_dir => '/var/log/pagespeed',
+# memache_servers => [],
+# rewrite_level => 'CoreFilters',
+# disable_filters => [],
+# enable_filters => [],
+# forbid_filters => [],
+# rewrite_deadline_per_flush_ms => 10,
+# additional_domains => undef,
+# file_cache_size_kb => 102400,
+# file_cache_clean_interval_ms => 3600000,
+# lru_cache_per_process => 1024,
+# lru_cache_byte_limit => 16384,
+# css_flatten_max_bytes => 2048,
+# css_inline_max_bytes => 2048,
+# css_image_inline_max_bytes => 2048,
+# image_inline_max_bytes => 2048,
+# js_inline_max_bytes => 2048,
+# css_outline_min_bytes => 3000,
+# js_outline_min_bytes => 3000,
+# inode_limit => 500000,
+# image_max_rewrites_at_once => 8,
+# num_rewrite_threads => 4,
+# num_expensive_rewrite_threads => 4,
+# collect_statistics => 'on',
+# statistics_logging => 'on',
+# allow_view_stats => [],
+# allow_pagespeed_console => [],
+# allow_pagespeed_message => [],
+# message_buffer_size => 100000,
+# additional_configuration => { }
+# }
#
# @note
# Verify that your system is compatible with the latest Google Pagespeed requirements.
#
-# Although this apache module requires the mod-pagespeed-stable package, Puppet does not manage the software repositories required to
-# automatically install the package. If you declare this class when the package is either not installed or not available to your
-# package manager, your Puppet run will fail.
+# Although this apache module requires the mod-pagespeed-stable package, Puppet does not manage the software repositories required to
+# automatically install the package. If you declare this class when the package is either not installed or not available to your
+# package manager, your Puppet run will fail.
#
# @see https://developers.google.com/speed/pagespeed/module/ for additional documentation.
#
class apache::mod::pagespeed (
- $inherit_vhost_config = 'on',
- $filter_xhtml = false,
- $cache_path = '/var/cache/mod_pagespeed/',
- $log_dir = '/var/log/pagespeed',
- $memcache_servers = [],
- $rewrite_level = 'CoreFilters',
- $disable_filters = [],
- $enable_filters = [],
- $forbid_filters = [],
- $rewrite_deadline_per_flush_ms = 10,
- $additional_domains = undef,
- $file_cache_size_kb = 102400,
- $file_cache_clean_interval_ms = 3600000,
- $lru_cache_per_process = 1024,
- $lru_cache_byte_limit = 16384,
- $css_flatten_max_bytes = 2048,
- $css_inline_max_bytes = 2048,
- $css_image_inline_max_bytes = 2048,
- $image_inline_max_bytes = 2048,
- $js_inline_max_bytes = 2048,
- $css_outline_min_bytes = 3000,
- $js_outline_min_bytes = 3000,
- $inode_limit = 500000,
- $image_max_rewrites_at_once = 8,
- $num_rewrite_threads = 4,
- $num_expensive_rewrite_threads = 4,
- $collect_statistics = 'on',
- $statistics_logging = 'on',
- $allow_view_stats = [],
- $allow_pagespeed_console = [],
- $allow_pagespeed_message = [],
- $message_buffer_size = 100000,
- $additional_configuration = {},
- $apache_version = undef,
- $package_ensure = undef,
+ String $inherit_vhost_config = 'on',
+ Boolean $filter_xhtml = false,
+ String $cache_path = '/var/cache/mod_pagespeed/',
+ String $log_dir = '/var/log/pagespeed',
+ Array $memcache_servers = [],
+ String $rewrite_level = 'CoreFilters',
+ Array $disable_filters = [],
+ Array $enable_filters = [],
+ Array $forbid_filters = [],
+ Integer $rewrite_deadline_per_flush_ms = 10,
+ Optional[String] $additional_domains = undef,
+ Integer$file_cache_size_kb = 102400,
+ Integer$file_cache_clean_interval_ms = 3600000,
+ Integer$lru_cache_per_process = 1024,
+ Integer$lru_cache_byte_limit = 16384,
+ Integer$css_flatten_max_bytes = 2048,
+ Integer$css_inline_max_bytes = 2048,
+ Integer$css_image_inline_max_bytes = 2048,
+ Integer$image_inline_max_bytes = 2048,
+ Integer$js_inline_max_bytes = 2048,
+ Integer$css_outline_min_bytes = 3000,
+ Integer$js_outline_min_bytes = 3000,
+ Integer$inode_limit = 500000,
+ Integer$image_max_rewrites_at_once = 8,
+ Integer$num_rewrite_threads = 4,
+ Integer$num_expensive_rewrite_threads = 4,
+ String $collect_statistics = 'on',
+ String $statistics_logging = 'on',
+ Array $allow_view_stats = [],
+ Array $allow_pagespeed_console = [],
+ Array $allow_pagespeed_message = [],
+ Integer $message_buffer_size = 100000,
+ Variant[Array,Hash] $additional_configuration = {},
+ Optional[String] $apache_version = undef,
+ Optional[String] $package_ensure = undef,
) {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/passenger.pp b/manifests/mod/passenger.pp
index 8821e3c7d2..9892ac9573 100644
--- a/manifests/mod/passenger.pp
+++ b/manifests/mod/passenger.pp
@@ -26,6 +26,9 @@
# @param passenger_allow_encoded_slashes
# Toggle whether URLs with encoded slashes (%2f) can be used (by default Apache does not support this).
#
+# @param passenger_anonymous_telemetry_proxy
+# Set an intermediate proxy for the Passenger anonymous telemetry reporting.
+#
# @param passenger_app_env
# This option sets, for the current application, the value of the following environment variables:
# - RAILS_ENV
@@ -80,6 +83,12 @@
# @param passenger_default_user
# Allows you to specify the user that applications must run as, if user switching fails or is disabled.
#
+# @param passenger_disable_anonymous_telemetry
+# Whether or not to disable the Passenger anonymous telemetry reporting.
+#
+# @param passenger_disable_log_prefix
+# Whether to stop Passenger from prefixing logs when they are written to a log file.
+#
# @param passenger_disable_security_update_check
# Allows disabling the Passenger security update check, a daily check with https://securitycheck.phusionpassenger.com for important
# security updates that might be available.
@@ -207,6 +216,9 @@
# @param passenger_socket_backlog
# This option can be raised if Apache manages to overflow the backlog queue.
#
+# @param passenger_spawn_dir
+# The directory in which Passenger will record progress during startup
+#
# @param passenger_spawn_method
# Controls whether Passenger spawns applications directly, or using a prefork copy-on-write mechanism.
#
@@ -225,6 +237,9 @@
# @param passenger_sticky_sessions_cookie_name
# Sets the name of the sticky sessions cookie.
#
+# @param passenger_sticky_sessions_cookie_attributes
+# Sets the attributes of the sticky sessions cookie.
+#
# @param passenger_thread_count
# Specifies the number of threads that Passenger should spawn per Ruby application process.
#
@@ -307,101 +322,101 @@
# @see https://www.phusionpassenger.com/docs/references/config_reference/apache/ for additional documentation.
#
class apache::mod::passenger (
- $manage_repo = true,
- $mod_id = undef,
- $mod_lib = undef,
- $mod_lib_path = undef,
- $mod_package = undef,
- $mod_package_ensure = undef,
- $mod_path = undef,
- $passenger_allow_encoded_slashes = undef,
+ Boolean $manage_repo = true,
+ Optional[String] $mod_id = undef,
+ Optional[String] $mod_lib = undef,
+ Optional[String] $mod_lib_path = undef,
+ Optional[String] $mod_package = undef,
+ Optional[String] $mod_package_ensure = undef,
+ Optional[String] $mod_path = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_allow_encoded_slashes = undef,
Optional[String] $passenger_anonymous_telemetry_proxy = undef,
- $passenger_app_env = undef,
- $passenger_app_group_name = undef,
- $passenger_app_root = undef,
- $passenger_app_type = undef,
- $passenger_base_uri = undef,
- $passenger_buffer_response = undef,
- $passenger_buffer_upload = undef,
- $passenger_concurrency_model = undef,
- $passenger_conf_file = $apache::params::passenger_conf_file,
- $passenger_conf_package_file = $apache::params::passenger_conf_package_file,
- $passenger_data_buffer_dir = undef,
- $passenger_debug_log_file = undef,
- $passenger_debugger = undef,
- $passenger_default_group = undef,
- $passenger_default_ruby = $apache::params::passenger_default_ruby,
- $passenger_default_user = undef,
+ Optional[String] $passenger_app_env = undef,
+ Optional[String] $passenger_app_group_name = undef,
+ Optional[String] $passenger_app_root = undef,
+ Optional[String] $passenger_app_type = undef,
+ Optional[String] $passenger_base_uri = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_buffer_response = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_buffer_upload = undef,
+ Optional[String] $passenger_concurrency_model = undef,
+ String $passenger_conf_file = $apache::params::passenger_conf_file,
+ Optional[String] $passenger_conf_package_file = $apache::params::passenger_conf_package_file,
+ Optional[String] $passenger_data_buffer_dir = undef,
+ Optional[String] $passenger_debug_log_file = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_debugger = undef,
+ Optional[String] $passenger_default_group = undef,
+ Optional[String] $passenger_default_ruby = $apache::params::passenger_default_ruby,
+ Optional[String] $passenger_default_user = undef,
Optional[Boolean] $passenger_disable_anonymous_telemetry = undef,
- Optional[Boolean] $passenger_disable_log_prefix = undef,
- $passenger_disable_security_update_check = undef,
- $passenger_enabled = undef,
- $passenger_error_override = undef,
- $passenger_file_descriptor_log_file = undef,
- $passenger_fly_with = undef,
- $passenger_force_max_concurrent_requests_per_process = undef,
- $passenger_friendly_error_pages = undef,
- $passenger_group = undef,
- $passenger_high_performance = undef,
- $passenger_installed_version = undef,
- $passenger_instance_registry_dir = undef,
- $passenger_load_shell_envvars = undef,
+ Optional[Boolean] $passenger_disable_log_prefix = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_disable_security_update_check = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_enabled = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_error_override = undef,
+ Optional[String] $passenger_file_descriptor_log_file = undef,
+ Optional[String] $passenger_fly_with = undef,
+ Optional[Variant[Integer,String]] $passenger_force_max_concurrent_requests_per_process = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_friendly_error_pages = undef,
+ Optional[String] $passenger_group = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_high_performance = undef,
+ Optional[String] $passenger_installed_version = undef,
+ Optional[String] $passenger_instance_registry_dir = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_load_shell_envvars = undef,
Optional[Boolean] $passenger_preload_bundler = undef,
Optional[Stdlib::Absolutepath] $passenger_log_file = undef,
- $passenger_log_level = undef,
- $passenger_lve_min_uid = undef,
- $passenger_max_instances = undef,
- $passenger_max_instances_per_app = undef,
- $passenger_max_pool_size = undef,
- $passenger_max_preloader_idle_time = undef,
- $passenger_max_request_queue_size = undef,
- $passenger_max_request_time = undef,
- $passenger_max_requests = undef,
- $passenger_memory_limit = undef,
- $passenger_meteor_app_settings = undef,
- $passenger_min_instances = undef,
- $passenger_nodejs = undef,
- $passenger_pool_idle_time = undef,
+ Optional[Variant[Integer,String]] $passenger_log_level = undef,
+ Optional[Variant[Integer,String]] $passenger_lve_min_uid = undef,
+ Optional[Variant[Integer,String]] $passenger_max_instances = undef,
+ Optional[Variant[Integer,String]] $passenger_max_instances_per_app = undef,
+ Optional[Variant[Integer,String]] $passenger_max_pool_size = undef,
+ Optional[Variant[Integer,String]] $passenger_max_preloader_idle_time = undef,
+ Optional[Variant[Integer,String]] $passenger_max_request_queue_size = undef,
+ Optional[Variant[Integer,String]] $passenger_max_request_time = undef,
+ Optional[Variant[Integer,String]] $passenger_max_requests = undef,
+ Optional[Variant[Integer,String]] $passenger_memory_limit = undef,
+ Optional[String] $passenger_meteor_app_settings = undef,
+ Optional[Variant[Integer,String]] $passenger_min_instances = undef,
+ Optional[String] $passenger_nodejs = undef,
+ Optional[Variant[Integer,String]] $passenger_pool_idle_time = undef,
Optional[Variant[String,Array[String]]] $passenger_pre_start = undef,
- $passenger_python = undef,
- $passenger_resist_deployment_errors = undef,
- $passenger_resolve_symlinks_in_document_root = undef,
- $passenger_response_buffer_high_watermark = undef,
- $passenger_restart_dir = undef,
- $passenger_rolling_restarts = undef,
- $passenger_root = $apache::params::passenger_root,
- $passenger_ruby = $apache::params::passenger_ruby,
- $passenger_security_update_check_proxy = undef,
- $passenger_show_version_in_header = undef,
- $passenger_socket_backlog = undef,
+ Optional[String] $passenger_python = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_resist_deployment_errors = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_resolve_symlinks_in_document_root = undef,
+ Optional[Variant[Integer,String]] $passenger_response_buffer_high_watermark = undef,
+ Optional[String] $passenger_restart_dir = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_rolling_restarts = undef,
+ Optional[String] $passenger_root = $apache::params::passenger_root,
+ Optional[String] $passenger_ruby = $apache::params::passenger_ruby,
+ Optional[String] $passenger_security_update_check_proxy = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_show_version_in_header = undef,
+ Optional[Variant[Integer,String]] $passenger_socket_backlog = undef,
Optional[String] $passenger_spawn_dir = undef,
Optional[Enum['smart', 'direct', 'smart-lv2', 'conservative']] $passenger_spawn_method = undef,
- $passenger_start_timeout = undef,
- $passenger_startup_file = undef,
- $passenger_stat_throttle_rate = undef,
- $passenger_sticky_sessions = undef,
- $passenger_sticky_sessions_cookie_name = undef,
+ Optional[Variant[Integer,String]] $passenger_start_timeout = undef,
+ Optional[String] $passenger_startup_file = undef,
+ Optional[Variant[Integer,String]] $passenger_stat_throttle_rate = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_sticky_sessions = undef,
+ Optional[String] $passenger_sticky_sessions_cookie_name = undef,
Optional[String] $passenger_sticky_sessions_cookie_attributes = undef,
- $passenger_thread_count = undef,
- $passenger_use_global_queue = undef,
- $passenger_user = undef,
- $passenger_user_switching = undef,
- $rack_auto_detect = undef,
- $rack_autodetect = undef,
- $rack_base_uri = undef,
- $rack_env = undef,
- $rails_allow_mod_rewrite = undef,
- $rails_app_spawner_idle_time = undef,
- $rails_auto_detect = undef,
- $rails_autodetect = undef,
- $rails_base_uri = undef,
- $rails_default_user = undef,
- $rails_env = undef,
- $rails_framework_spawner_idle_time = undef,
- $rails_ruby = undef,
- $rails_spawn_method = undef,
- $rails_user_switching = undef,
- $wsgi_auto_detect = undef,
+ Optional[Variant[Integer,String]] $passenger_thread_count = undef,
+ Optional[String] $passenger_use_global_queue = undef,
+ Optional[String] $passenger_user = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $passenger_user_switching = undef,
+ Optional[String] $rack_auto_detect = undef,
+ Optional[String] $rack_autodetect = undef,
+ Optional[String] $rack_base_uri = undef,
+ Optional[String] $rack_env = undef,
+ Optional[String] $rails_allow_mod_rewrite = undef,
+ Optional[String] $rails_app_spawner_idle_time = undef,
+ Optional[String] $rails_auto_detect = undef,
+ Optional[String] $rails_autodetect = undef,
+ Optional[String] $rails_base_uri = undef,
+ Optional[String] $rails_default_user = undef,
+ Optional[String] $rails_env = undef,
+ Optional[String] $rails_framework_spawner_idle_time = undef,
+ Optional[String] $rails_ruby = undef,
+ Optional[String] $rails_spawn_method = undef,
+ Optional[String] $rails_user_switching = undef,
+ Optional[String] $wsgi_auto_detect = undef,
) inherits apache::params {
include apache
if $passenger_installed_version {
diff --git a/manifests/mod/peruser.pp b/manifests/mod/peruser.pp
index 3c649c7fed..22e9d0f627 100644
--- a/manifests/mod/peruser.pp
+++ b/manifests/mod/peruser.pp
@@ -1,17 +1,35 @@
# @summary
# Installs `mod_peruser`.
#
-# @todo
-# Add docs
+# @param minspareprocessors
+#
+# @param minprocessors
+# The minimum amount of processors
+#
+# @param maxprocessors
+# The maximum amount of processors
+#
+# @param maxclients
+# The maximum amount of clients
+#
+# @param maxrequestsperchild
+# The maximum amount of requests per child
+#
+# @param idletimeout
+#
+# @param expiretimeout
+#
+# @param keepalive
+#
class apache::mod::peruser (
- $minspareprocessors = '2',
- $minprocessors = '2',
- $maxprocessors = '10',
- $maxclients = '150',
- $maxrequestsperchild = '1000',
- $idletimeout = '120',
- $expiretimeout = '120',
- $keepalive = 'Off',
+ Variant[Integer,String] $minspareprocessors = '2',
+ Variant[Integer,String] $minprocessors = '2',
+ Variant[Integer,String] $maxprocessors = '10',
+ Variant[Integer,String] $maxclients = '150',
+ Variant[Integer,String] $maxrequestsperchild = '1000',
+ Variant[Integer,String] $idletimeout = '120',
+ Variant[Integer,String] $expiretimeout = '120',
+ String $keepalive = 'Off',
) {
include apache
case $facts['os']['family'] {
diff --git a/manifests/mod/php.pp b/manifests/mod/php.pp
index 4b5baac049..cb12eab092 100644
--- a/manifests/mod/php.pp
+++ b/manifests/mod/php.pp
@@ -1,19 +1,41 @@
# @summary
# Installs `mod_php`.
-#
-# @todo
-# Add docs
+#
+# @param package_name
+# The package name
+#
+# @param package_ensure
+# Whether the package is `present` or `absent`
+#
+# @param path
+#
+# @param extensions
+#
+# @param content
+#
+# @param template
+#
+# @param source
+#
+# @param root_group
+# UNIX group of the root user
+#
+# @param php_version
+# The php version
+#
+# @param libphp_prefix
+#
class apache::mod::php (
- $package_name = undef,
- $package_ensure = 'present',
- $path = undef,
- Array $extensions = ['.php'],
- $content = undef,
- $template = 'apache/mod/php.conf.erb',
- $source = undef,
- $root_group = $apache::params::root_group,
- $php_version = $apache::params::php_version,
- $libphp_prefix = 'libphp'
+ Optional[String] $package_name = undef,
+ String $package_ensure = 'present',
+ Optional[String] $path = undef,
+ Array $extensions = ['.php'],
+ Optional[String] $content = undef,
+ String $template = 'apache/mod/php.conf.erb',
+ Optional[String] $source = undef,
+ Optional[String] $root_group = $apache::params::root_group,
+ Optional[String] $php_version = $apache::params::php_version,
+ String $libphp_prefix = 'libphp'
) inherits apache::params {
include apache
if (versioncmp($php_version, '8') < 0) {
diff --git a/manifests/mod/prefork.pp b/manifests/mod/prefork.pp
index 197f7513b0..0b8557d866 100644
--- a/manifests/mod/prefork.pp
+++ b/manifests/mod/prefork.pp
@@ -34,16 +34,16 @@
# @see https://httpd.apache.org/docs/current/mod/prefork.html for additional documentation.
#
class apache::mod::prefork (
- $startservers = '8',
- $minspareservers = '5',
- $maxspareservers = '20',
- $serverlimit = '256',
- $maxclients = '256',
- $maxrequestworkers = undef,
- $maxrequestsperchild = '4000',
- $maxconnectionsperchild = undef,
- $apache_version = undef,
- $listenbacklog = '511'
+ Variant[Integer,String] $startservers = '8',
+ Variant[Integer,String] $minspareservers = '5',
+ Variant[Integer,String] $maxspareservers = '20',
+ Variant[Integer,String] $serverlimit = '256',
+ Variant[Integer,String] $maxclients = '256',
+ Optional[Variant[Integer,String]] $maxrequestworkers = undef,
+ Variant[Integer,String] $maxrequestsperchild = '4000',
+ Optional[Variant[Integer,String]] $maxconnectionsperchild = undef,
+ Optional[String] $apache_version = undef,
+ String $listenbacklog = '511'
) {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/proxy.pp b/manifests/mod/proxy.pp
index 2a9eb71495..642577ce93 100644
--- a/manifests/mod/proxy.pp
+++ b/manifests/mod/proxy.pp
@@ -25,13 +25,13 @@
# @see https://httpd.apache.org/docs/current/mod/mod_proxy.html for additional documentation.
#
class apache::mod::proxy (
- $proxy_requests = 'Off',
- $allow_from = undef,
- $apache_version = undef,
- $package_name = undef,
- $proxy_via = 'On',
- $proxy_timeout = undef,
- $proxy_iobuffersize = undef,
+ String $proxy_requests = 'Off',
+ Optional[String] $allow_from = undef,
+ Optional[String] $apache_version = undef,
+ Optional[String] $package_name = undef,
+ String $proxy_via = 'On',
+ Optional[String] $proxy_timeout = undef,
+ Optional[String] $proxy_iobuffersize = undef,
) {
include apache
$_proxy_timeout = $apache::timeout
diff --git a/manifests/mod/proxy_balancer.pp b/manifests/mod/proxy_balancer.pp
index 4778689c1d..74f35ba46e 100644
--- a/manifests/mod/proxy_balancer.pp
+++ b/manifests/mod/proxy_balancer.pp
@@ -4,7 +4,7 @@
# @param manager
# Toggle whether to enable balancer manager support.
#
-# @param maanger_path
+# @param manager_path
# Server relative path to balancer manager.
#
# @param allow_from
@@ -19,7 +19,7 @@
Boolean $manager = false,
Stdlib::Absolutepath $manager_path = '/balancer-manager',
Array $allow_from = ['127.0.0.1','::1'],
- $apache_version = $apache::apache_version,
+ Optional[String] $apache_version = $apache::apache_version,
) {
include apache::mod::proxy
include apache::mod::proxy_http
diff --git a/manifests/mod/reqtimeout.pp b/manifests/mod/reqtimeout.pp
index a971e045dd..fc64cfbfc8 100644
--- a/manifests/mod/reqtimeout.pp
+++ b/manifests/mod/reqtimeout.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_reqtimeout.html for additional documentation.
#
class apache::mod::reqtimeout (
- $timeouts = ['header=20-40,minrate=500', 'body=10,minrate=500']
+ Variant[Array[String],String] $timeouts = ['header=20-40,minrate=500', 'body=10,minrate=500']
) {
include apache
::apache::mod { 'reqtimeout': }
diff --git a/manifests/mod/rpaf.pp b/manifests/mod/rpaf.pp
index 7e4bab23e9..7fa97b132b 100644
--- a/manifests/mod/rpaf.pp
+++ b/manifests/mod/rpaf.pp
@@ -16,10 +16,10 @@
# @see https://github.com/gnif/mod_rpaf for additional documentation.
#
class apache::mod::rpaf (
- $sethostname = true,
- $proxy_ips = ['127.0.0.1'],
- $header = 'X-Forwarded-For',
- $template = 'apache/mod/rpaf.conf.erb'
+ Variant[Boolean,String] $sethostname = true,
+ Array[String] $proxy_ips = ['127.0.0.1'],
+ String $header = 'X-Forwarded-For',
+ String $template = 'apache/mod/rpaf.conf.erb'
) {
include apache
::apache::mod { 'rpaf': }
diff --git a/manifests/mod/security.pp b/manifests/mod/security.pp
index a4461cf8a2..8fbd7abdfc 100644
--- a/manifests/mod/security.pp
+++ b/manifests/mod/security.pp
@@ -12,7 +12,11 @@
#
# @param activated_rules
# An array of rules from the modsec_crs_path or absolute to activate via symlinks.
+#
+# @param custom_rules
#
+# @param custom_rules_set
+#
# @param modsec_dir
# Defines the path where Puppet installs the modsec configuration and activated rules links.
#
@@ -90,36 +94,36 @@
# @see https://github.com/SpiderLabs/ModSecurity/wiki for additional documentation.
#
class apache::mod::security (
- $logroot = $apache::params::logroot,
- $version = $apache::params::modsec_version,
- $crs_package = $apache::params::modsec_crs_package,
- $activated_rules = $apache::params::modsec_default_rules,
- $custom_rules = $apache::params::modsec_custom_rules,
- $custom_rules_set = $apache::params::modsec_custom_rules_set,
- $modsec_dir = $apache::params::modsec_dir,
- $modsec_secruleengine = $apache::params::modsec_secruleengine,
- $audit_log_relevant_status = '^(?:5|4(?!04))',
- $audit_log_parts = $apache::params::modsec_audit_log_parts,
- $audit_log_type = $apache::params::modsec_audit_log_type,
- $audit_log_storage_dir = undef,
- $secpcrematchlimit = $apache::params::secpcrematchlimit,
- $secpcrematchlimitrecursion = $apache::params::secpcrematchlimitrecursion,
- $allowed_methods = 'GET HEAD POST OPTIONS',
- $content_types = 'application/x-www-form-urlencoded|multipart/form-data|text/xml|application/xml|application/x-amf',
- $restricted_extensions = '.asa/ .asax/ .ascx/ .axd/ .backup/ .bak/ .bat/ .cdx/ .cer/ .cfg/ .cmd/ .com/ .config/ .conf/ .cs/ .csproj/ .csr/ .dat/ .db/ .dbf/ .dll/ .dos/ .htr/ .htw/ .ida/ .idc/ .idq/ .inc/ .ini/ .key/ .licx/ .lnk/ .log/ .mdb/ .old/ .pass/ .pdb/ .pol/ .printer/ .pwd/ .resources/ .resx/ .sql/ .sys/ .vb/ .vbs/ .vbproj/ .vsdisco/ .webinfo/ .xsd/ .xsx/',
- $restricted_headers = '/Proxy-Connection/ /Lock-Token/ /Content-Range/ /Translate/ /via/ /if/',
- $secdefaultaction = 'deny',
- $inbound_anomaly_threshold = '5',
- $outbound_anomaly_threshold = '4',
- $critical_anomaly_score = '5',
- $error_anomaly_score = '4',
- $warning_anomaly_score = '3',
- $notice_anomaly_score = '2',
- $secrequestmaxnumargs = '255',
- $secrequestbodylimit = '13107200',
- $secrequestbodynofileslimit = '131072',
- $secrequestbodyinmemorylimit = '131072',
- $manage_security_crs = true,
+ String $logroot = $apache::params::logroot,
+ Integer $version = $apache::params::modsec_version,
+ Optional[String] $crs_package = $apache::params::modsec_crs_package,
+ Array[String] $activated_rules = $apache::params::modsec_default_rules,
+ Boolean $custom_rules = $apache::params::modsec_custom_rules,
+ Optional[Array[String]] $custom_rules_set = $apache::params::modsec_custom_rules_set,
+ String $modsec_dir = $apache::params::modsec_dir,
+ String $modsec_secruleengine = $apache::params::modsec_secruleengine,
+ String $audit_log_relevant_status = '^(?:5|4(?!04))',
+ String $audit_log_parts = $apache::params::modsec_audit_log_parts,
+ String $audit_log_type = $apache::params::modsec_audit_log_type,
+ Optional[String] $audit_log_storage_dir = undef,
+ Integer $secpcrematchlimit = $apache::params::secpcrematchlimit,
+ Integer $secpcrematchlimitrecursion = $apache::params::secpcrematchlimitrecursion,
+ String $allowed_methods = 'GET HEAD POST OPTIONS',
+ String $content_types = 'application/x-www-form-urlencoded|multipart/form-data|text/xml|application/xml|application/x-amf',
+ String $restricted_extensions = '.asa/ .asax/ .ascx/ .axd/ .backup/ .bak/ .bat/ .cdx/ .cer/ .cfg/ .cmd/ .com/ .config/ .conf/ .cs/ .csproj/ .csr/ .dat/ .db/ .dbf/ .dll/ .dos/ .htr/ .htw/ .ida/ .idc/ .idq/ .inc/ .ini/ .key/ .licx/ .lnk/ .log/ .mdb/ .old/ .pass/ .pdb/ .pol/ .printer/ .pwd/ .resources/ .resx/ .sql/ .sys/ .vb/ .vbs/ .vbproj/ .vsdisco/ .webinfo/ .xsd/ .xsx/',
+ String $restricted_headers = '/Proxy-Connection/ /Lock-Token/ /Content-Range/ /Translate/ /via/ /if/',
+ String $secdefaultaction = 'deny',
+ String $inbound_anomaly_threshold = '5',
+ String $outbound_anomaly_threshold = '4',
+ String $critical_anomaly_score = '5',
+ String $error_anomaly_score = '4',
+ String $warning_anomaly_score = '3',
+ String $notice_anomaly_score = '2',
+ String $secrequestmaxnumargs = '255',
+ String $secrequestbodylimit = '13107200',
+ String $secrequestbodynofileslimit = '131072',
+ String $secrequestbodyinmemorylimit = '131072',
+ Boolean $manage_security_crs = true,
) inherits apache::params {
include apache
diff --git a/manifests/mod/shib.pp b/manifests/mod/shib.pp
index 09a5d2ead5..ea94344a87 100644
--- a/manifests/mod/shib.pp
+++ b/manifests/mod/shib.pp
@@ -24,10 +24,10 @@
# @see https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig for additional documentation.
# @note Unsupported platforms: RedHat: all; CentOS: all; Scientific: all; SLES: all; Debian: 7, 8; Ubuntu: all; OracleLinux: all
class apache::mod::shib (
- $suppress_warning = false,
- $mod_full_path = undef,
- $package_name = undef,
- $mod_lib = undef,
+ Boolean $suppress_warning = false,
+ Optional[String] $mod_full_path = undef,
+ Optional[String] $package_name = undef,
+ Optional[String] $mod_lib = undef,
) {
include apache
if $facts['os']['family'] == 'RedHat' and ! $suppress_warning {
diff --git a/manifests/mod/ssl.pp b/manifests/mod/ssl.pp
index 7eaed198cb..27d8bac601 100644
--- a/manifests/mod/ssl.pp
+++ b/manifests/mod/ssl.pp
@@ -4,6 +4,9 @@
# @param ssl_compression
# Enable compression on the SSL level.
#
+# @param ssl_sessiontickets
+# Enable or disable use of TLS session tickets
+#
# @param ssl_cryptodevice
# Enable use of a cryptographic hardware accelerator.
#
@@ -52,6 +55,10 @@
# @param ssl_stapling
# Enable stapling of OCSP responses in the TLS handshake.
#
+# @param stapling_cache
+# Configures the cache used to store OCSP responses which get included in
+# the TLS handshake if SSLUseStapling is enabled.
+#
# @param ssl_stapling_return_errors
# Pass stapling related OCSP errors on to client.
#
@@ -82,27 +89,27 @@
class apache::mod::ssl (
Boolean $ssl_compression = false,
Optional[Boolean] $ssl_sessiontickets = undef,
- $ssl_cryptodevice = 'builtin',
- $ssl_options = ['StdEnvVars'],
- $ssl_openssl_conf_cmd = undef,
+ String $ssl_cryptodevice = 'builtin',
+ Array[String] $ssl_options = ['StdEnvVars'],
+ Optional[String] $ssl_openssl_conf_cmd = undef,
Optional[String] $ssl_cert = undef,
Optional[String] $ssl_key = undef,
- $ssl_ca = undef,
- $ssl_cipher = 'HIGH:MEDIUM:!aNULL:!MD5:!RC4:!3DES',
+ Optional[String] $ssl_ca = undef,
+ String $ssl_cipher = 'HIGH:MEDIUM:!aNULL:!MD5:!RC4:!3DES',
Variant[Boolean, Enum['on', 'off']] $ssl_honorcipherorder = true,
- $ssl_protocol = $apache::params::ssl_protocol,
+ Array[String] $ssl_protocol = $apache::params::ssl_protocol,
Array $ssl_proxy_protocol = [],
- $ssl_pass_phrase_dialog = 'builtin',
- $ssl_random_seed_bytes = '512',
+ String $ssl_pass_phrase_dialog = 'builtin',
+ Variant[Integer,String] $ssl_random_seed_bytes = '512',
String $ssl_sessioncache = $apache::params::ssl_sessioncache,
- $ssl_sessioncachetimeout = '300',
+ Variant[Integer,String] $ssl_sessioncachetimeout = '300',
Boolean $ssl_stapling = false,
Optional[String] $stapling_cache = undef,
Optional[Boolean] $ssl_stapling_return_errors = undef,
- $ssl_mutex = undef,
+ Optional[String] $ssl_mutex = undef,
Boolean $ssl_reload_on_change = false,
- $apache_version = undef,
- $package_name = undef,
+ Optional[String] $apache_version = undef,
+ Optional[String] $package_name = undef,
) inherits apache::params {
include apache
include apache::mod::mime
diff --git a/manifests/mod/status.pp b/manifests/mod/status.pp
index f6d41449df..4cd4c144a4 100644
--- a/manifests/mod/status.pp
+++ b/manifests/mod/status.pp
@@ -42,8 +42,8 @@
Optional[Array] $allow_from = undef,
Optional[Variant[String, Array, Hash]] $requires = undef,
Enum['On', 'Off', 'on', 'off'] $extended_status = 'On',
- $apache_version = undef,
- $status_path = '/server-status',
+ Optional[String] $apache_version = undef,
+ String $status_path = '/server-status',
) inherits apache::params {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/userdir.pp b/manifests/mod/userdir.pp
index 67d7717dda..c26c33c200 100644
--- a/manifests/mod/userdir.pp
+++ b/manifests/mod/userdir.pp
@@ -34,16 +34,16 @@
# @see https://httpd.apache.org/docs/current/mod/mod_userdir.html for additional documentation.
#
class apache::mod::userdir (
- $home = undef,
- $dir = undef,
- Optional[String[1]] $userdir = undef,
- $disable_root = true,
- $apache_version = undef,
- $path = '/home/*/public_html',
- $overrides = ['FileInfo', 'AuthConfig', 'Limit', 'Indexes'],
- $options = ['MultiViews', 'Indexes', 'SymLinksIfOwnerMatch', 'IncludesNoExec'],
- $unmanaged_path = false,
- $custom_fragment = undef,
+ Optional[String] $home = undef,
+ Optional[String] $dir = undef,
+ Optional[String[1]] $userdir = undef,
+ Boolean $disable_root = true,
+ Optional[String] $apache_version = undef,
+ String $path = '/home/*/public_html',
+ Array[String] $overrides = ['FileInfo', 'AuthConfig', 'Limit', 'Indexes'],
+ Array[String] $options = ['MultiViews', 'Indexes', 'SymLinksIfOwnerMatch', 'IncludesNoExec'],
+ Boolean $unmanaged_path = false,
+ Optional[String] $custom_fragment = undef,
) {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/version.pp b/manifests/mod/version.pp
index 2f87185131..212ef4a7bd 100644
--- a/manifests/mod/version.pp
+++ b/manifests/mod/version.pp
@@ -7,7 +7,7 @@
# @see https://httpd.apache.org/docs/current/mod/mod_version.html for additional documentation.
#
class apache::mod::version (
- $apache_version = $apache::apache_version
+ Optional[String] $apache_version = $apache::apache_version
) {
if ($facts['os']['family'] == 'debian' and versioncmp($apache_version, '2.4') >= 0) {
warning("${module_name}: module version_module is built-in and can't be loaded")
diff --git a/manifests/mod/worker.pp b/manifests/mod/worker.pp
index 258220a232..898c184d15 100644
--- a/manifests/mod/worker.pp
+++ b/manifests/mod/worker.pp
@@ -43,16 +43,16 @@
# @see https://httpd.apache.org/docs/current/mod/worker.html for additional documentation.
#
class apache::mod::worker (
- $startservers = '2',
- $maxclients = '150',
- $minsparethreads = '25',
- $maxsparethreads = '75',
- $threadsperchild = '25',
- $maxrequestsperchild = '0',
- $serverlimit = '25',
- $threadlimit = '64',
- $listenbacklog = '511',
- $apache_version = undef,
+ Variant[Integer,String] $startservers = '2',
+ Variant[Integer,String] $maxclients = '150',
+ Variant[Integer,String] $minsparethreads = '25',
+ Variant[Integer,String] $maxsparethreads = '75',
+ Variant[Integer,String] $threadsperchild = '25',
+ Variant[Integer,String] $maxrequestsperchild = '0',
+ Variant[Integer,String] $serverlimit = '25',
+ Variant[Integer,String] $threadlimit = '64',
+ Variant[Integer,String] $listenbacklog = '511',
+ Optional[String] $apache_version = undef,
) {
include apache
$_apache_version = pick($apache_version, $apache::apache_version)
diff --git a/manifests/mod/wsgi.pp b/manifests/mod/wsgi.pp
index cf3253db9d..d582702273 100644
--- a/manifests/mod/wsgi.pp
+++ b/manifests/mod/wsgi.pp
@@ -28,14 +28,14 @@
# @see https://github.com/GrahamDumpleton/mod_wsgi for additional documentation.
# @note Unsupported platforms: SLES: all; RedHat: all; CentOS: all; OracleLinux: all; Scientific: all
class apache::mod::wsgi (
- $wsgi_restrict_embedded = undef,
- $wsgi_socket_prefix = $apache::params::wsgi_socket_prefix,
- $wsgi_python_path = undef,
- $wsgi_python_home = undef,
- $wsgi_python_optimize = undef,
- $wsgi_application_group = undef,
- $package_name = undef,
- $mod_path = undef,
+ Optional[String] $wsgi_restrict_embedded = undef,
+ Optional[String] $wsgi_socket_prefix = $apache::params::wsgi_socket_prefix,
+ Optional[String] $wsgi_python_path = undef,
+ Optional[String] $wsgi_python_home = undef,
+ Optional[Variant[Integer,String]] $wsgi_python_optimize = undef,
+ Optional[String] $wsgi_application_group = undef,
+ Optional[String] $package_name = undef,
+ Optional[String] $mod_path = undef,
) inherits apache::params {
include apache
if ($package_name != undef and $mod_path == undef) or ($package_name == undef and $mod_path != undef) {
diff --git a/manifests/mpm.pp b/manifests/mpm.pp
index 854d86027a..8d76fa796a 100644
--- a/manifests/mpm.pp
+++ b/manifests/mpm.pp
@@ -2,8 +2,8 @@
#
# @api private
define apache::mpm (
- $lib_path = $apache::lib_path,
- $apache_version = $apache::apache_version,
+ String $lib_path = $apache::lib_path,
+ Optional[String] $apache_version = $apache::apache_version,
) {
if ! defined(Class['apache']) {
fail('You must include the apache base class before using any apache defined resources')
diff --git a/manifests/package.pp b/manifests/package.pp
index bc779097eb..06b8bc77bf 100644
--- a/manifests/package.pp
+++ b/manifests/package.pp
@@ -3,8 +3,8 @@
#
# @api private
class apache::package (
- $ensure = 'present',
- $mpm_module = $apache::params::mpm_module,
+ String $ensure = 'present',
+ String $mpm_module = $apache::params::mpm_module,
) inherits apache::params {
# The base class must be included first because it is used by parameter defaults
if ! defined(Class['apache']) {
diff --git a/manifests/peruser/multiplexer.pp b/manifests/peruser/multiplexer.pp
index 5001090c4c..b8b271e306 100644
--- a/manifests/peruser/multiplexer.pp
+++ b/manifests/peruser/multiplexer.pp
@@ -5,9 +5,9 @@
#
# @api private
define apache::peruser::multiplexer (
- $user = $apache::user,
- $group = $apache::group,
- $file = undef,
+ String $user = $apache::user,
+ String $group = $apache::group,
+ Optional[String] $file = undef,
) {
if ! $file {
$filename = "${name}.conf"
diff --git a/manifests/peruser/processor.pp b/manifests/peruser/processor.pp
index 57c26fa9f8..9be3d6109a 100644
--- a/manifests/peruser/processor.pp
+++ b/manifests/peruser/processor.pp
@@ -3,9 +3,9 @@
#
# @api private
define apache::peruser::processor (
- $user,
- $group,
- $file = undef,
+ String $user,
+ String $group,
+ Optional[String] $file = undef,
) {
if ! $file {
$filename = "${name}.conf"
diff --git a/manifests/service.pp b/manifests/service.pp
index 7366e5fd31..6e5ce53d9f 100644
--- a/manifests/service.pp
+++ b/manifests/service.pp
@@ -3,11 +3,11 @@
#
# @api private
class apache::service (
- $service_name = $apache::params::service_name,
- Boolean $service_enable = true,
- $service_ensure = 'running',
- Boolean $service_manage = true,
- $service_restart = undef
+ String $service_name = $apache::params::service_name,
+ Boolean $service_enable = true,
+ Variant[Boolean,String] $service_ensure = 'running',
+ Boolean $service_manage = true,
+ Optional[String] $service_restart = undef
) {
# The base class must be included first because parameter defaults depend on it
if ! defined(Class['apache::params']) {
diff --git a/manifests/vhost.pp b/manifests/vhost.pp
index a732e02700..8654831f65 100644
--- a/manifests/vhost.pp
+++ b/manifests/vhost.pp
@@ -70,11 +70,6 @@
# Specifies whether Apache uses the `IncludeOptional` directive instead of `Include` for
# `additional_includes` in Apache 2.4 or newer.
#
-# @param additional_includes
-# Specifies paths to additional static, virtual host-specific Apache configuration files.
-# You can use this parameter to implement a unique, custom configuration not supported by
-# this module.
-#
# @param aliases
# Passes a list of [hashes][hash] to the virtual host to create `Alias`, `AliasMatch`,
# `ScriptAlias` or `ScriptAliasMatch` directives as per the `mod_alias` documentation.
@@ -168,10 +163,6 @@
# ]
# ```
#
-# @param custom_fragment
-# Passes a string of custom configuration directives to place at the end of the virtual
-# host configuration.
-#
# @param default_vhost
# Sets a given `apache::vhost` defined type as the default to serve requests that do not
# match any other `apache::vhost` defined types.
@@ -357,10 +348,6 @@
# directive which sets the size of the window that is used for flow control from
# client to server and limits the amount of data the server has to buffer.
#
-# @param headers
-# Adds lines to replace, merge, or remove response headers. See
-# [Apache's mod_headers documentation](https://httpd.apache.org/docs/current/mod/mod_headers.html#header) for more information.
-#
# @param ip
# Sets the IP address the virtual host listens on. By default, uses Apache's default behavior
# of listening on all IPs.
@@ -597,7 +584,7 @@
# This directive controls whether Apache should override error pages for proxied content.
#
# @param options
-# Sets the `Options` for the specified virtual host. For example:
+# Sets the [`Options`](https://httpd.apache.org/docs/current/mod/core.html#options) for the specified virtual host. For example:
# ``` puppet
# apache::vhost { 'site.name.fdqn':
# ...
@@ -1415,31 +1402,6 @@
# }
# ```
#
-# @param error_documents
-# An array of hashes used to override the [ErrorDocument](https://httpd.apache.org/docs/current/mod/core.html#errordocument)
-# settings for the directory.
-# ``` puppet
-# apache::vhost { 'sample.example.net':
-# directories => [
-# { path => '/srv/www',
-# error_documents => [
-# { 'error_code' => '503',
-# 'document' => '/service-unavail',
-# },
-# ],
-# },
-# ],
-# }
-# ```
-#
-# @param h2_copy_files
-# Sets the [H2CopyFiles](https://httpd.apache.org/docs/current/mod/mod_http2.html#h2copyfiles) directive.
-# Note that you must declare `class {'apache::mod::http2': }` before using this directive.
-#
-# @param h2_push_resource
-# Sets the [H2PushResource](https://httpd.apache.org/docs/current/mod/mod_http2.html#h2pushresource) directive.
-# Note that you must declare `class {'apache::mod::http2': }` before using this directive.
-#
# @param headers
# Adds lines for [Header](https://httpd.apache.org/docs/current/mod/mod_headers.html#header) directives.
# ``` puppet
@@ -1451,20 +1413,6 @@
# },
# }
# ```
-#
-# @param options
-# Lists the [Options](https://httpd.apache.org/docs/current/mod/core.html#options) for the
-# given Directory block.
-# ``` puppet
-# apache::vhost { 'sample.example.net':
-# docroot => '/path/to/directory',
-# directories => [
-# { path => '/path/to/directory',
-# options => ['Indexes','FollowSymLinks','MultiViews'],
-# },
-# ],
-# }
-# ```
#
# @param shib_compat_valid_user
# Default is Off, matching the behavior prior to this command's existence. Addresses a conflict
@@ -1665,25 +1613,6 @@
# directive, which specifies whether the remote server certificate is checked for expiration
# or not.
#
-# @param ssl_options
-# Sets the [SSLOptions](https://httpd.apache.org/docs/current/mod/mod_ssl.html#ssloptions)
-# directive, which configures various SSL engine run-time options. This is the global
-# setting for the given virtual host and can be a string or an array.
-# A string:
-# ``` puppet
-# apache::vhost { 'sample.example.net':
-# ...
-# ssl_options => '+ExportCertData',
-# }
-# ```
-# An array:
-# ``` puppet
-# apache::vhost { 'sample.example.net':
-# ...
-# ssl_options => ['+StrictRequire', '+ExportCertData'],
-# }
-# ```
-#
# @param ssl_openssl_conf_cmd
# Sets the [SSLOpenSSLConfCmd](https://httpd.apache.org/docs/current/mod/mod_ssl.html#sslopensslconfcmd)
# directive, which provides direct configuration of OpenSSL parameters.
@@ -1754,98 +1683,105 @@
# client request exceeds that limit, the server will return an error response
# instead of servicing the request.
#
-# @param $use_servername_for_filenames
+# @param use_servername_for_filenames
# When set to true, default log / config file names will be derived from the sanitized
# value of the $servername parameter.
# When set to false (default), the existing behaviour of using the $name parameter
# will remain.
#
-# @param $use_port_for_filenames
+# @param use_port_for_filenames
# When set to true and use_servername_for_filenames is also set to true, default log /
# config file names will be derived from the sanitized value of both the $servername and
# $port parameters.
# When set to false (default), the port is not included in the file names and may lead to
# duplicate declarations if two virtual hosts use the same domain.
#
-# @param $mdomain
+# @param mdomain
# All the names in the list are managed as one Managed Domain (MD). mod_md will request
# one single certificate that is valid for all these names.
+#
+# @param proxy_requests
+# Whether to accept proxy requests
+#
+# @param userdir
+# Instances of apache::mod::userdir
+#
define apache::vhost (
Variant[Boolean,String] $docroot,
- $manage_docroot = true,
- $virtual_docroot = false,
- $virtual_use_default_docroot = false,
- $port = undef,
- $ip = undef,
- Boolean $ip_based = false,
- $add_listen = true,
- $docroot_owner = 'root',
- $docroot_group = $apache::params::root_group,
- $docroot_mode = undef,
- Array[Enum['h2', 'h2c', 'http/1.1']] $protocols = [],
- Optional[Boolean] $protocols_honor_order = undef,
- $serveradmin = undef,
- Boolean $ssl = false,
- $ssl_cert = $apache::default_ssl_cert,
- $ssl_key = $apache::default_ssl_key,
- $ssl_chain = $apache::default_ssl_chain,
- $ssl_ca = $apache::default_ssl_ca,
- $ssl_crl_path = $apache::default_ssl_crl_path,
- $ssl_crl = $apache::default_ssl_crl,
- $ssl_crl_check = $apache::default_ssl_crl_check,
- $ssl_certs_dir = $apache::params::ssl_certs_dir,
- Boolean $ssl_reload_on_change = $apache::default_ssl_reload_on_change,
- $ssl_protocol = undef,
- $ssl_cipher = undef,
- Variant[Boolean, Enum['on', 'On', 'off', 'Off'], Undef] $ssl_honorcipherorder = undef,
- Optional[Enum['none', 'optional', 'require', 'optional_no_ca']] $ssl_verify_client = undef,
- $ssl_verify_depth = undef,
- Optional[Enum['none', 'optional', 'require', 'optional_no_ca']] $ssl_proxy_verify = undef,
- Optional[Integer[0]] $ssl_proxy_verify_depth = undef,
- $ssl_proxy_ca_cert = undef,
- Optional[Enum['on', 'off']] $ssl_proxy_check_peer_cn = undef,
- Optional[Enum['on', 'off']] $ssl_proxy_check_peer_name = undef,
- Optional[Enum['on', 'off']] $ssl_proxy_check_peer_expire = undef,
- $ssl_proxy_machine_cert = undef,
- $ssl_proxy_machine_cert_chain = undef,
- $ssl_proxy_cipher_suite = undef,
- $ssl_proxy_protocol = undef,
- $ssl_options = undef,
- $ssl_openssl_conf_cmd = undef,
- Boolean $ssl_proxyengine = false,
- Optional[Boolean] $ssl_stapling = undef,
- $ssl_stapling_timeout = undef,
- $ssl_stapling_return_errors = undef,
- Optional[String] $ssl_user_name = undef,
- $priority = undef,
- Boolean $default_vhost = false,
- $servername = $name,
- $serveraliases = [],
- $options = ['Indexes','FollowSymLinks','MultiViews'],
- $override = ['None'],
- $directoryindex = '',
- $vhost_name = '*',
- $logroot = $apache::logroot,
- Enum['directory', 'absent'] $logroot_ensure = 'directory',
- $logroot_mode = undef,
- $logroot_owner = undef,
- $logroot_group = undef,
- Optional[Apache::LogLevel] $log_level = undef,
- Boolean $access_log = true,
- $access_log_file = false,
- $access_log_pipe = false,
- $access_log_syslog = false,
- $access_log_format = false,
- $access_log_env_var = false,
- Optional[Array] $access_logs = undef,
- Boolean $use_servername_for_filenames = false,
- Boolean $use_port_for_filenames = false,
- $aliases = undef,
- Optional[Variant[Hash, Array[Variant[Array,Hash]]]] $directories = undef,
- Boolean $error_log = true,
- $error_log_file = undef,
- $error_log_pipe = undef,
- $error_log_syslog = undef,
+ Boolean $manage_docroot = true,
+ Variant[Boolean,String] $virtual_docroot = false,
+ Boolean $virtual_use_default_docroot = false,
+ Optional[Variant[Array[Integer],Array[String],Integer,String]] $port = undef,
+ Optional[Variant[Array[String],String]] $ip = undef,
+ Boolean $ip_based = false,
+ Boolean $add_listen = true,
+ String $docroot_owner = 'root',
+ String $docroot_group = $apache::params::root_group,
+ Optional[Variant[Integer,String]] $docroot_mode = undef,
+ Array[Enum['h2', 'h2c', 'http/1.1']] $protocols = [],
+ Optional[Boolean] $protocols_honor_order = undef,
+ Optional[String] $serveradmin = undef,
+ Boolean $ssl = false,
+ Optional[String] $ssl_cert = $apache::default_ssl_cert,
+ Optional[String] $ssl_key = $apache::default_ssl_key,
+ Optional[String] $ssl_chain = $apache::default_ssl_chain,
+ Optional[String] $ssl_ca = $apache::default_ssl_ca,
+ Optional[String] $ssl_crl_path = $apache::default_ssl_crl_path,
+ Optional[String] $ssl_crl = $apache::default_ssl_crl,
+ Optional[String] $ssl_crl_check = $apache::default_ssl_crl_check,
+ Optional[String] $ssl_certs_dir = $apache::params::ssl_certs_dir,
+ Boolean $ssl_reload_on_change = $apache::default_ssl_reload_on_change,
+ Optional[Variant[Array[String],String]] $ssl_protocol = undef,
+ Optional[Variant[Array[String],String]] $ssl_cipher = undef,
+ Variant[Boolean, Enum['on', 'On', 'off', 'Off'], Undef] $ssl_honorcipherorder = undef,
+ Optional[Enum['none', 'optional', 'require', 'optional_no_ca']] $ssl_verify_client = undef,
+ Optional[Variant[Integer,String]] $ssl_verify_depth = undef,
+ Optional[Enum['none', 'optional', 'require', 'optional_no_ca']] $ssl_proxy_verify = undef,
+ Optional[Integer[0]] $ssl_proxy_verify_depth = undef,
+ Optional[String] $ssl_proxy_ca_cert = undef,
+ Optional[Enum['on', 'off']] $ssl_proxy_check_peer_cn = undef,
+ Optional[Enum['on', 'off']] $ssl_proxy_check_peer_name = undef,
+ Optional[Enum['on', 'off']] $ssl_proxy_check_peer_expire = undef,
+ Optional[String] $ssl_proxy_machine_cert = undef,
+ Optional[String] $ssl_proxy_machine_cert_chain = undef,
+ Optional[String] $ssl_proxy_cipher_suite = undef,
+ Optional[String] $ssl_proxy_protocol = undef,
+ Optional[Variant[Array[String],String]] $ssl_options = undef,
+ Optional[String] $ssl_openssl_conf_cmd = undef,
+ Boolean $ssl_proxyengine = false,
+ Optional[Boolean] $ssl_stapling = undef,
+ Optional[Variant[Integer,String]] $ssl_stapling_timeout = undef,
+ Optional[Enum['on', 'off']] $ssl_stapling_return_errors = undef,
+ Optional[String] $ssl_user_name = undef,
+ Optional[Variant[Integer,String,Boolean]] $priority = undef,
+ Boolean $default_vhost = false,
+ Optional[String] $servername = $name,
+ Variant[Array[String],String] $serveraliases = [],
+ Array[String] $options = ['Indexes','FollowSymLinks','MultiViews'],
+ Array[String] $override = ['None'],
+ Optional[String] $directoryindex = undef,
+ String $vhost_name = '*',
+ String $logroot = $apache::logroot,
+ Enum['directory', 'absent'] $logroot_ensure = 'directory',
+ Optional[String] $logroot_mode = undef,
+ Optional[String] $logroot_owner = undef,
+ Optional[String] $logroot_group = undef,
+ Optional[Apache::LogLevel] $log_level = undef,
+ Boolean $access_log = true,
+ Variant[Boolean,String] $access_log_file = false,
+ Variant[Boolean,String] $access_log_pipe = false,
+ Variant[Boolean,String] $access_log_syslog = false,
+ Variant[Boolean,String] $access_log_format = false,
+ Variant[Boolean,String] $access_log_env_var = false,
+ Optional[Array] $access_logs = undef,
+ Boolean $use_servername_for_filenames = false,
+ Boolean $use_port_for_filenames = false,
+ Optional[Variant[Array[Hash],Hash,String]] $aliases = undef,
+ Optional[Variant[Hash, Array[Variant[Array,Hash]]]] $directories = undef,
+ Boolean $error_log = true,
+ Optional[String] $error_log_file = undef,
+ Optional[String] $error_log_pipe = undef,
+ Optional[Variant[String,Boolean]] $error_log_syslog = undef,
Optional[
Array[
Variant[
@@ -1853,179 +1789,179 @@
Hash[String, Enum['connection', 'request']]
]
]
- ] $error_log_format = undef,
+ ] $error_log_format = undef,
Optional[Pattern[/^((Strict|Unsafe)?\s*(\b(Registered|Lenient)Methods)?\s*(\b(Allow0\.9|Require1\.0))?)$/]] $http_protocol_options = undef,
- $modsec_audit_log = undef,
- $modsec_audit_log_file = undef,
- $modsec_audit_log_pipe = undef,
- $error_documents = [],
- Optional[Variant[Stdlib::Absolutepath, Enum['disabled']]] $fallbackresource = undef,
- $scriptalias = undef,
- $scriptaliases = [],
- Optional[Integer] $limitreqfieldsize = undef,
- Optional[Integer] $limitreqfields = undef,
- Optional[Integer] $limitreqline = undef,
- Optional[Integer] $limitreqbody = undef,
- $proxy_dest = undef,
- $proxy_dest_match = undef,
- $proxy_dest_reverse_match = undef,
- $proxy_pass = undef,
- $proxy_pass_match = undef,
- Boolean $proxy_requests = false,
- $suphp_addhandler = $apache::params::suphp_addhandler,
- Enum['on', 'off'] $suphp_engine = $apache::params::suphp_engine,
- $suphp_configpath = $apache::params::suphp_configpath,
- $php_flags = {},
- $php_values = {},
- $php_admin_flags = {},
- $php_admin_values = {},
- $no_proxy_uris = [],
- $no_proxy_uris_match = [],
- $proxy_preserve_host = false,
- $proxy_add_headers = undef,
- $proxy_error_override = false,
- $redirect_source = '/',
- $redirect_dest = undef,
- $redirect_status = undef,
- $redirectmatch_status = undef,
- $redirectmatch_regexp = undef,
- $redirectmatch_dest = undef,
- $headers = undef,
- $request_headers = undef,
- $filters = undef,
- Optional[Array] $rewrites = undef,
- $rewrite_base = undef,
- $rewrite_rule = undef,
- $rewrite_cond = undef,
- $rewrite_inherit = false,
- $setenv = [],
- $setenvif = [],
- $setenvifnocase = [],
- $block = [],
- Enum['absent', 'present'] $ensure = 'present',
- $wsgi_application_group = undef,
- Optional[Variant[String,Hash]] $wsgi_daemon_process = undef,
- Optional[Hash] $wsgi_daemon_process_options = undef,
- $wsgi_import_script = undef,
- Optional[Hash] $wsgi_import_script_options = undef,
- $wsgi_process_group = undef,
- Optional[Hash] $wsgi_script_aliases_match = undef,
- Optional[Hash] $wsgi_script_aliases = undef,
- Optional[Enum['on', 'off', 'On', 'Off']] $wsgi_pass_authorization = undef,
- $wsgi_chunked_request = undef,
- Optional[String] $custom_fragment = undef,
- Optional[Hash] $itk = undef,
- $action = undef,
- $fastcgi_server = undef,
- $fastcgi_socket = undef,
- $fastcgi_dir = undef,
- $fastcgi_idle_timeout = undef,
- $additional_includes = [],
- $use_optional_includes = $apache::use_optional_includes,
- $apache_version = $apache::apache_version,
- Optional[Enum['on', 'off', 'nodecode']] $allow_encoded_slashes = undef,
- Optional[Pattern[/^[\w-]+ [\w-]+$/]] $suexec_user_group = undef,
-
- Optional[Boolean] $h2_copy_files = undef,
- Optional[Boolean] $h2_direct = undef,
- Optional[Boolean] $h2_early_hints = undef,
- Optional[Integer] $h2_max_session_streams = undef,
- Optional[Boolean] $h2_modern_tls_only = undef,
- Optional[Boolean] $h2_push = undef,
- Optional[Integer] $h2_push_diary_size = undef,
- Array[String] $h2_push_priority = [],
- Array[String] $h2_push_resource = [],
- Optional[Boolean] $h2_serialize_headers = undef,
- Optional[Integer] $h2_stream_max_mem_size = undef,
- Optional[Integer] $h2_tls_cool_down_secs = undef,
- Optional[Integer] $h2_tls_warm_up_size = undef,
- Optional[Boolean] $h2_upgrade = undef,
- Optional[Integer] $h2_window_size = undef,
-
- Optional[Boolean] $passenger_enabled = undef,
- Optional[String] $passenger_base_uri = undef,
- Optional[Stdlib::Absolutepath] $passenger_ruby = undef,
- Optional[Stdlib::Absolutepath] $passenger_python = undef,
- Optional[Stdlib::Absolutepath] $passenger_nodejs = undef,
- Optional[String] $passenger_meteor_app_settings = undef,
- Optional[String] $passenger_app_env = undef,
- Optional[Stdlib::Absolutepath] $passenger_app_root = undef,
- Optional[String] $passenger_app_group_name = undef,
- Optional[String] $passenger_app_start_command = undef,
- Optional[Enum['meteor', 'node', 'rack', 'wsgi']] $passenger_app_type = undef,
- Optional[String] $passenger_startup_file = undef,
- Optional[String] $passenger_restart_dir = undef,
- Optional[Enum['direct', 'smart']] $passenger_spawn_method = undef,
- Optional[Boolean] $passenger_load_shell_envvars = undef,
- Optional[Boolean] $passenger_preload_bundler = undef,
- Optional[Boolean] $passenger_rolling_restarts = undef,
- Optional[Boolean] $passenger_resist_deployment_errors = undef,
- Optional[String] $passenger_user = undef,
- Optional[String] $passenger_group = undef,
- Optional[Boolean] $passenger_friendly_error_pages = undef,
- Optional[Integer] $passenger_min_instances = undef,
- Optional[Integer] $passenger_max_instances = undef,
- Optional[Integer] $passenger_max_preloader_idle_time = undef,
- Optional[Integer] $passenger_force_max_concurrent_requests_per_process = undef,
- Optional[Integer] $passenger_start_timeout = undef,
- Optional[Enum['process', 'thread']] $passenger_concurrency_model = undef,
- Optional[Integer] $passenger_thread_count = undef,
- Optional[Integer] $passenger_max_requests = undef,
- Optional[Integer] $passenger_max_request_time = undef,
- Optional[Integer] $passenger_memory_limit = undef,
- Optional[Integer] $passenger_stat_throttle_rate = undef,
- Optional[Variant[String,Array[String]]] $passenger_pre_start = undef,
- Optional[Boolean] $passenger_high_performance = undef,
- Optional[Boolean] $passenger_buffer_upload = undef,
- Optional[Boolean] $passenger_buffer_response = undef,
- Optional[Boolean] $passenger_error_override = undef,
- Optional[Integer] $passenger_max_request_queue_size = undef,
- Optional[Integer] $passenger_max_request_queue_time = undef,
- Optional[Boolean] $passenger_sticky_sessions = undef,
- Optional[String] $passenger_sticky_sessions_cookie_name = undef,
- Optional[String] $passenger_sticky_sessions_cookie_attributes = undef,
- Optional[Boolean] $passenger_allow_encoded_slashes = undef,
- Optional[String] $passenger_app_log_file = undef,
- Optional[Boolean] $passenger_debugger = undef,
- Optional[Integer] $passenger_lve_min_uid = undef,
- $add_default_charset = undef,
- $modsec_disable_vhost = undef,
- Optional[Variant[Hash, Array]] $modsec_disable_ids = undef,
- $modsec_disable_ips = undef,
- Optional[Variant[Hash, Array]] $modsec_disable_msgs = undef,
- Optional[Variant[Hash, Array]] $modsec_disable_tags = undef,
- $modsec_body_limit = undef,
- $jk_mounts = undef,
- Boolean $auth_kerb = false,
- $krb_method_negotiate = 'on',
- $krb_method_k5passwd = 'on',
- $krb_authoritative = 'on',
- $krb_auth_realms = [],
- $krb_5keytab = undef,
- $krb_local_user_mapping = undef,
- $krb_verify_kdc = 'on',
- $krb_servicename = 'HTTP',
- $krb_save_credentials = 'off',
- Optional[Enum['on', 'off']] $keepalive = undef,
- $keepalive_timeout = undef,
- $max_keepalive_requests = undef,
- $cas_attribute_prefix = undef,
- $cas_attribute_delimiter = undef,
- $cas_root_proxied_as = undef,
- $cas_scrub_request_headers = undef,
- $cas_sso_enabled = undef,
- $cas_login_url = undef,
- $cas_validate_url = undef,
- $cas_validate_saml = undef,
- $cas_cookie_path = undef,
- Optional[String] $shib_compat_valid_user = undef,
- Optional[Enum['On', 'on', 'Off', 'off', 'DNS', 'dns']] $use_canonical_name = undef,
- Optional[Variant[String,Array[String]]] $comment = undef,
- Hash $define = {},
- Boolean $auth_oidc = false,
- Optional[Apache::OIDCSettings] $oidc_settings = undef,
- Optional[Variant[Boolean,String]] $mdomain = undef,
- Optional[Variant[String[1],Array[String[1]]]] $userdir = undef,
+ Optional[Variant[String,Boolean]] $modsec_audit_log = undef,
+ Optional[String] $modsec_audit_log_file = undef,
+ Optional[String] $modsec_audit_log_pipe = undef,
+ Variant[Array[Hash],String] $error_documents = [],
+ Optional[Variant[Stdlib::Absolutepath, Enum['disabled']]] $fallbackresource = undef,
+ Optional[String] $scriptalias = undef,
+ Array[Hash] $scriptaliases = [],
+ Optional[Integer] $limitreqfieldsize = undef,
+ Optional[Integer] $limitreqfields = undef,
+ Optional[Integer] $limitreqline = undef,
+ Optional[Integer] $limitreqbody = undef,
+ Optional[String] $proxy_dest = undef,
+ Optional[String] $proxy_dest_match = undef,
+ Optional[String] $proxy_dest_reverse_match = undef,
+ Optional[Variant[Array[Hash],Hash]] $proxy_pass = undef,
+ Optional[Variant[Array[Hash],Hash]] $proxy_pass_match = undef,
+ Boolean $proxy_requests = false,
+ String $suphp_addhandler = $apache::params::suphp_addhandler,
+ Enum['on', 'off'] $suphp_engine = $apache::params::suphp_engine,
+ Optional[String] $suphp_configpath = $apache::params::suphp_configpath,
+ Hash $php_flags = {},
+ Hash $php_values = {},
+ Variant[Array[String],Hash] $php_admin_flags = {},
+ Variant[Array[String],Hash] $php_admin_values = {},
+ Variant[Array[String],String] $no_proxy_uris = [],
+ Variant[Array[String],String] $no_proxy_uris_match = [],
+ Boolean $proxy_preserve_host = false,
+ Optional[Variant[String,Boolean]] $proxy_add_headers = undef,
+ Boolean $proxy_error_override = false,
+ Variant[String,Array[String]] $redirect_source = '/',
+ Optional[Variant[Array[String],String]] $redirect_dest = undef,
+ Optional[Variant[Array[String],String]] $redirect_status = undef,
+ Optional[Variant[Array[String],String]] $redirectmatch_status = undef,
+ Optional[Variant[Array[String],String]] $redirectmatch_regexp = undef,
+ Optional[Variant[Array[String],String]] $redirectmatch_dest = undef,
+ Optional[String] $headers = undef,
+ Optional[Array[String]] $request_headers = undef,
+ Optional[Array[String]] $filters = undef,
+ Optional[Array] $rewrites = undef,
+ Optional[String] $rewrite_base = undef,
+ Optional[Variant[Array[String],String]] $rewrite_rule = undef,
+ Optional[Variant[Array[String],String]] $rewrite_cond = undef,
+ Boolean $rewrite_inherit = false,
+ Variant[Array[String],String] $setenv = [],
+ Variant[Array[String],String] $setenvif = [],
+ Variant[Array[String],String] $setenvifnocase = [],
+ Variant[Array[String],String] $block = [],
+ Enum['absent', 'present'] $ensure = 'present',
+ Optional[String] $wsgi_application_group = undef,
+ Optional[Variant[String,Hash]] $wsgi_daemon_process = undef,
+ Optional[Hash] $wsgi_daemon_process_options = undef,
+ Optional[String] $wsgi_import_script = undef,
+ Optional[Hash] $wsgi_import_script_options = undef,
+ Optional[String] $wsgi_process_group = undef,
+ Optional[Hash] $wsgi_script_aliases_match = undef,
+ Optional[Hash] $wsgi_script_aliases = undef,
+ Optional[Enum['on', 'off', 'On', 'Off']] $wsgi_pass_authorization = undef,
+ Optional[Enum['On', 'Off']] $wsgi_chunked_request = undef,
+ Optional[String] $custom_fragment = undef,
+ Optional[Hash] $itk = undef,
+ Optional[String] $action = undef,
+ Optional[String] $fastcgi_server = undef,
+ Optional[String] $fastcgi_socket = undef,
+ Optional[String] $fastcgi_dir = undef,
+ Optional[Variant[Integer,String]] $fastcgi_idle_timeout = undef,
+ Variant[Array[String],String] $additional_includes = [],
+ Boolean $use_optional_includes = $apache::use_optional_includes,
+ Optional[String] $apache_version = $apache::apache_version,
+ Optional[Enum['on', 'off', 'nodecode']] $allow_encoded_slashes = undef,
+ Optional[Pattern[/^[\w-]+ [\w-]+$/]] $suexec_user_group = undef,
+
+ Optional[Boolean] $h2_copy_files = undef,
+ Optional[Boolean] $h2_direct = undef,
+ Optional[Boolean] $h2_early_hints = undef,
+ Optional[Integer] $h2_max_session_streams = undef,
+ Optional[Boolean] $h2_modern_tls_only = undef,
+ Optional[Boolean] $h2_push = undef,
+ Optional[Integer] $h2_push_diary_size = undef,
+ Array[String] $h2_push_priority = [],
+ Array[String] $h2_push_resource = [],
+ Optional[Boolean] $h2_serialize_headers = undef,
+ Optional[Integer] $h2_stream_max_mem_size = undef,
+ Optional[Integer] $h2_tls_cool_down_secs = undef,
+ Optional[Integer] $h2_tls_warm_up_size = undef,
+ Optional[Boolean] $h2_upgrade = undef,
+ Optional[Integer] $h2_window_size = undef,
+
+ Optional[Boolean] $passenger_enabled = undef,
+ Optional[String] $passenger_base_uri = undef,
+ Optional[Stdlib::Absolutepath] $passenger_ruby = undef,
+ Optional[Stdlib::Absolutepath] $passenger_python = undef,
+ Optional[Stdlib::Absolutepath] $passenger_nodejs = undef,
+ Optional[String] $passenger_meteor_app_settings = undef,
+ Optional[String] $passenger_app_env = undef,
+ Optional[Stdlib::Absolutepath] $passenger_app_root = undef,
+ Optional[String] $passenger_app_group_name = undef,
+ Optional[String] $passenger_app_start_command = undef,
+ Optional[Enum['meteor', 'node', 'rack', 'wsgi']] $passenger_app_type = undef,
+ Optional[String] $passenger_startup_file = undef,
+ Optional[String] $passenger_restart_dir = undef,
+ Optional[Enum['direct', 'smart']] $passenger_spawn_method = undef,
+ Optional[Boolean] $passenger_load_shell_envvars = undef,
+ Optional[Boolean] $passenger_preload_bundler = undef,
+ Optional[Boolean] $passenger_rolling_restarts = undef,
+ Optional[Boolean] $passenger_resist_deployment_errors = undef,
+ Optional[String] $passenger_user = undef,
+ Optional[String] $passenger_group = undef,
+ Optional[Boolean] $passenger_friendly_error_pages = undef,
+ Optional[Integer] $passenger_min_instances = undef,
+ Optional[Integer] $passenger_max_instances = undef,
+ Optional[Integer] $passenger_max_preloader_idle_time = undef,
+ Optional[Integer] $passenger_force_max_concurrent_requests_per_process = undef,
+ Optional[Integer] $passenger_start_timeout = undef,
+ Optional[Enum['process', 'thread']] $passenger_concurrency_model = undef,
+ Optional[Integer] $passenger_thread_count = undef,
+ Optional[Integer] $passenger_max_requests = undef,
+ Optional[Integer] $passenger_max_request_time = undef,
+ Optional[Integer] $passenger_memory_limit = undef,
+ Optional[Integer] $passenger_stat_throttle_rate = undef,
+ Optional[Variant[String,Array[String]]] $passenger_pre_start = undef,
+ Optional[Boolean] $passenger_high_performance = undef,
+ Optional[Boolean] $passenger_buffer_upload = undef,
+ Optional[Boolean] $passenger_buffer_response = undef,
+ Optional[Boolean] $passenger_error_override = undef,
+ Optional[Integer] $passenger_max_request_queue_size = undef,
+ Optional[Integer] $passenger_max_request_queue_time = undef,
+ Optional[Boolean] $passenger_sticky_sessions = undef,
+ Optional[String] $passenger_sticky_sessions_cookie_name = undef,
+ Optional[String] $passenger_sticky_sessions_cookie_attributes = undef,
+ Optional[Boolean] $passenger_allow_encoded_slashes = undef,
+ Optional[String] $passenger_app_log_file = undef,
+ Optional[Boolean] $passenger_debugger = undef,
+ Optional[Integer] $passenger_lve_min_uid = undef,
+ Optional[String] $add_default_charset = undef,
+ Boolean $modsec_disable_vhost = false,
+ Optional[Variant[Hash, Array]] $modsec_disable_ids = undef,
+ Optional[Array[String]] $modsec_disable_ips = undef,
+ Optional[Variant[Hash, Array]] $modsec_disable_msgs = undef,
+ Optional[Variant[Hash, Array]] $modsec_disable_tags = undef,
+ Optional[String] $modsec_body_limit = undef,
+ Optional[Array[Hash]] $jk_mounts = undef,
+ Boolean $auth_kerb = false,
+ Enum['on', 'off'] $krb_method_negotiate = 'on',
+ Enum['on', 'off'] $krb_method_k5passwd = 'on',
+ Enum['on', 'off'] $krb_authoritative = 'on',
+ Array[String] $krb_auth_realms = [],
+ Optional[String] $krb_5keytab = undef,
+ Optional[Enum['on', 'off']] $krb_local_user_mapping = undef,
+ Enum['on', 'off'] $krb_verify_kdc = 'on',
+ String $krb_servicename = 'HTTP',
+ Enum['on', 'off'] $krb_save_credentials = 'off',
+ Optional[Enum['on', 'off']] $keepalive = undef,
+ Optional[Variant[Integer,String]] $keepalive_timeout = undef,
+ Optional[Variant[Integer,String]] $max_keepalive_requests = undef,
+ Optional[String] $cas_attribute_prefix = undef,
+ Optional[String] $cas_attribute_delimiter = undef,
+ Optional[String] $cas_root_proxied_as = undef,
+ Boolean $cas_scrub_request_headers = false,
+ Boolean $cas_sso_enabled = false,
+ Optional[String] $cas_login_url = undef,
+ Optional[String] $cas_validate_url = undef,
+ Boolean $cas_validate_saml = false,
+ Optional[String] $cas_cookie_path = undef,
+ Optional[String] $shib_compat_valid_user = undef,
+ Optional[Enum['On', 'on', 'Off', 'off', 'DNS', 'dns']] $use_canonical_name = undef,
+ Optional[Variant[String,Array[String]]] $comment = undef,
+ Hash $define = {},
+ Boolean $auth_oidc = false,
+ Optional[Apache::OIDCSettings] $oidc_settings = undef,
+ Optional[Variant[Boolean,String]] $mdomain = undef,
+ Optional[Variant[String[1],Array[String[1]]]] $userdir = undef,
) {
# The base class must be included first because it is used by parameter defaults
if ! defined(Class['apache']) {
diff --git a/manifests/vhost/custom.pp b/manifests/vhost/custom.pp
index 966f7bba54..3e6d261b08 100644
--- a/manifests/vhost/custom.pp
+++ b/manifests/vhost/custom.pp
@@ -16,10 +16,10 @@
# Specifies whether to validate the configuration file before notifying the Apache service.
#
define apache::vhost::custom (
- $content,
- $ensure = 'present',
- Variant[Integer,String,Boolean] $priority = '25',
- $verify_config = true,
+ String $content,
+ String $ensure = 'present',
+ Variant[Integer,String] $priority = '25',
+ Boolean $verify_config = true,
) {
include apache
diff --git a/manifests/vhost/fragment.pp b/manifests/vhost/fragment.pp
index 459839de0a..fa5ea36ab1 100644
--- a/manifests/vhost/fragment.pp
+++ b/manifests/vhost/fragment.pp
@@ -14,6 +14,9 @@
# @param order
# The order to insert the fragment at
#
+# @param port
+# The port to use
+#
# @example With a vhost without priority
# include apache
# apache::vhost { 'myvhost':
@@ -55,10 +58,10 @@
#
define apache::vhost::fragment (
String[1] $vhost,
- Optional[Integer[0]] $port = undef,
+ Optional[Integer[0]] $port = undef,
Optional[Variant[Integer,String,Boolean]] $priority = undef,
- Optional[String] $content = undef,
- Integer[0] $order = 900,
+ Optional[String] $content = undef,
+ Integer[0] $order = 900,
) {
# This copies the logic from apache::vhost
if $priority {
diff --git a/manifests/vhosts.pp b/manifests/vhosts.pp
index 6d0fcf27f2..a212a5c31a 100644
--- a/manifests/vhosts.pp
+++ b/manifests/vhosts.pp
@@ -19,7 +19,7 @@
# `apache::vhost` defined type's parameters.
#
class apache::vhosts (
- $vhosts = {},
+ Hash $vhosts = {},
) {
include apache
create_resources('apache::vhost', $vhosts)