Update 3rdparty rabbitmq module
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / REFERENCE.md
diff --git a/3rdparty/modules/rabbitmq/REFERENCE.md b/3rdparty/modules/rabbitmq/REFERENCE.md
new file mode 100644 (file)
index 0000000..7afb665
--- /dev/null
@@ -0,0 +1,1968 @@
+# Reference
+<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
+
+## Table of Contents
+
+**Classes**
+
+* [`rabbitmq`](#rabbitmq): A module to manage RabbitMQ
+* [`rabbitmq::config`](#rabbitmqconfig): Class: rabbitmq::config Sets all the configuration values for RabbitMQ and creates the directories for config and ssl.
+* [`rabbitmq::install`](#rabbitmqinstall): Class rabbitmq::install Ensures that rabbitmq-server exists
+* [`rabbitmq::install::rabbitmqadmin`](#rabbitmqinstallrabbitmqadmin): 
+* [`rabbitmq::management`](#rabbitmqmanagement): 
+* [`rabbitmq::params`](#rabbitmqparams): OS Specific parameters and other settings
+* [`rabbitmq::repo::apt`](#rabbitmqrepoapt): requires   puppetlabs-apt   puppetlabs-stdlib
+* [`rabbitmq::repo::rhel`](#rabbitmqreporhel): Class: rabbitmq::repo::rhel Makes sure that the Packagecloud repo is installed
+* [`rabbitmq::server`](#rabbitmqserver): Class: rabbitmq::server  This module manages the installation and config of the rabbitmq server   it has only been tested on certain version 
+* [`rabbitmq::service`](#rabbitmqservice): Class: rabbitmq::service    This class manages the rabbitmq server service itself.  Parameters:  Actions:  Requires:  Sample Usage:
+
+**Resource types**
+
+* [`rabbitmq_binding`](#rabbitmq_binding): Native type for managing rabbitmq bindings  rabbitmq_binding { 'binding 1':   ensure           => present,   source           => 'myexchange'
+* [`rabbitmq_erlang_cookie`](#rabbitmq_erlang_cookie): Type to manage the rabbitmq erlang cookie securely  This is essentially a private type used by the rabbitmq::config class to manage the erlan
+* [`rabbitmq_exchange`](#rabbitmq_exchange): Native type for managing rabbitmq exchanges
+* [`rabbitmq_parameter`](#rabbitmq_parameter): Type for managing rabbitmq parameters
+* [`rabbitmq_plugin`](#rabbitmq_plugin): manages rabbitmq plugins
+* [`rabbitmq_policy`](#rabbitmq_policy): Type for managing rabbitmq policies
+* [`rabbitmq_queue`](#rabbitmq_queue): Native type for managing rabbitmq queue
+* [`rabbitmq_user`](#rabbitmq_user): Native type for managing rabbitmq users
+* [`rabbitmq_user_permissions`](#rabbitmq_user_permissions): Type for managing rabbitmq user permissions
+* [`rabbitmq_vhost`](#rabbitmq_vhost): Native type for managing rabbitmq vhosts
+
+## Classes
+
+### rabbitmq
+
+rabbitmq
+
+ @param $loopback_users. default defined in param.pp. This option configures a list of users to allow access via the loopback interfaces
+
+#### Examples
+
+##### Basic usage
+
+```puppet
+include rabbitmq
+```
+
+##### rabbitmq class
+
+```puppet
+class { 'rabbitmq':
+  service_manage    => false,
+  port              => '5672',
+  delete_guest_user => true,
+}
+```
+
+##### Offline installation from local mirror:
+
+```puppet
+
+class { 'rabbitmq':
+  key_content     => template('openstack/rabbit.pub.key'),
+  package_gpg_key => '/tmp/rabbit.pub.key',
+}
+```
+
+##### Use external package key source for any (apt/rpm) package provider:
+
+```puppet
+class { 'rabbitmq':
+  package_gpg_key => 'http://www.some_site.some_domain/some_key.pub.key',
+}
+```
+
+##### To use RabbitMQ Environment Variables, use the parameters `environment_variables` e.g.:
+
+```puppet
+
+class { 'rabbitmq':
+  port                  => '5672',
+  environment_variables => {
+    'NODENAME'    => 'node01',
+    'SERVICENAME' => 'RabbitMQ'
+  }
+}
+```
+
+##### Change RabbitMQ Config Variables in rabbitmq.config:
+
+```puppet
+
+class { 'rabbitmq':
+  port             => '5672',
+  config_variables => {
+    'hipe_compile' => true,
+    'frame_max'    => 131072,
+    'log_levels'   => "[{connection, info}]"
+  }
+}
+```
+
+##### Change Erlang Kernel Config Variables in rabbitmq.config
+
+```puppet
+class { 'rabbitmq':
+  port                    => '5672',
+  config_kernel_variables => {
+    'inet_dist_listen_min' => 9100,
+    'inet_dist_listen_max' => 9105,
+  }
+}
+```
+
+##### Change Management Plugin Config Variables in rabbitmq.config
+
+```puppet
+class { 'rabbitmq':
+  config_management_variables => {
+    'rates_mode' => 'basic',
+  }
+}
+```
+
+##### Change Additional Config Variables in rabbitmq.config
+
+```puppet
+class { 'rabbitmq':
+  config_additional_variables => {
+    'autocluster' => '[{consul_service, "rabbit"},{cluster_name, "rabbit"}]',
+    'foo'         => '[{bar, "baz"}]'
+  }
+}
+This will result in the following config appended to the config file:
+{autocluster, [{consul_service, "rabbit"},{cluster_name, "rabbit"}]},
+ {foo, [{bar, "baz"}]}
+(This is required for the [autocluster plugin](https://github.com/aweber/rabbitmq-autocluster)
+```
+
+##### Use RabbitMQ clustering facilities
+
+```puppet
+class { 'rabbitmq':
+  config_cluster           => true,
+  cluster_nodes            => ['rabbit1', 'rabbit2'],
+  cluster_node_type        => 'ram',
+  erlang_cookie            => 'A_SECRET_COOKIE_STRING',
+  wipe_db_on_cookie_change => true,
+}
+```
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq` class.
+
+##### `admin_enable`
+
+Data type: `Boolean`
+
+If enabled sets up the management interface/plugin for RabbitMQ.
+
+Default value: $rabbitmq::params::admin_enable
+
+##### `auth_backends`
+
+Data type: `Optional[Array]`
+
+An array specifying authorization/authentication backend to use. Single quotes should be placed around array entries, ex. ['{foo, baz}', 'baz'] Defaults to [rabbit_auth_backend_internal], and if using LDAP defaults to [rabbit_auth_backend_internal, rabbit_auth_backend_ldap].
+
+Default value: `undef`
+
+##### `cluster_node_type`
+
+Data type: `Enum['ram', 'disk', 'disc']`
+
+Choose between disc and ram nodes.
+
+Default value: $rabbitmq::params::cluster_node_type
+
+##### `cluster_nodes`
+
+Data type: `Array`
+
+An array of nodes for clustering.
+
+Default value: $rabbitmq::params::cluster_nodes
+
+##### `cluster_partition_handling`
+
+Data type: `String`
+
+Value to set for `cluster_partition_handling` RabbitMQ configuration variable.
+
+Default value: $rabbitmq::params::cluster_partition_handling
+
+##### `collect_statistics_interval`
+
+Data type: `Optional[Integer]`
+
+Set the collect_statistics_interval in rabbitmq.config
+
+Default value: `undef`
+
+##### `config`
+
+Data type: `String`
+
+The file to use as the rabbitmq.config template.
+
+Default value: $rabbitmq::params::config
+
+##### `config_additional_variables`
+
+Data type: `Hash`
+
+Additional config variables in rabbitmq.config
+
+Default value: $rabbitmq::params::config_additional_variables
+
+##### `config_cluster`
+
+Data type: `Boolean`
+
+Enable or disable clustering support.
+
+Default value: $rabbitmq::params::config_cluster
+
+##### `config_kernel_variables`
+
+Data type: `Hash`
+
+Hash of Erlang kernel configuration variables to set (see [Variables Configurable in rabbitmq.config](#variables-configurable-in-rabbitmq.config)).
+
+Default value: $rabbitmq::params::config_kernel_variables
+
+##### `config_path`
+
+Data type: `Stdlib::Absolutepath`
+
+The path to write the RabbitMQ configuration file to.
+
+Default value: $rabbitmq::params::config_path
+
+##### `config_management_variables`
+
+Data type: `Hash`
+
+Hash of configuration variables for the [Management Plugin](https://www.rabbitmq.com/management.html).
+
+Default value: $rabbitmq::params::config_management_variables
+
+##### `config_stomp`
+
+Data type: `Boolean`
+
+Enable or disable stomp.
+
+Default value: $rabbitmq::params::config_stomp
+
+##### `config_shovel`
+
+Data type: `Boolean`
+
+Enable or disable shovel.
+
+Default value: $rabbitmq::params::config_shovel
+
+##### `config_shovel_statics`
+
+Data type: `Hash`
+
+Hash of static shovel configurations
+
+Default value: $rabbitmq::params::config_shovel_statics
+
+##### `config_variables`
+
+Data type: `Hash`
+
+To set config variables in rabbitmq.config
+
+Default value: $rabbitmq::params::config_variables
+
+##### `default_user`
+
+Data type: `String`
+
+Username to set for the `default_user` in rabbitmq.config.
+
+Default value: $rabbitmq::params::default_user
+
+##### `default_pass`
+
+Data type: `String`
+
+Password to set for the `default_user` in rabbitmq.config.
+
+Default value: $rabbitmq::params::default_pass
+
+##### `delete_guest_user`
+
+Data type: `Boolean`
+
+Controls whether default guest user is deleted.
+
+Default value: $rabbitmq::params::delete_guest_user
+
+##### `env_config`
+
+Data type: `String`
+
+The template file to use for rabbitmq_env.config.
+
+Default value: $rabbitmq::params::env_config
+
+##### `env_config_path`
+
+Data type: `Stdlib::Absolutepath`
+
+The path to write the rabbitmq_env.config file to.
+
+Default value: $rabbitmq::params::env_config_path
+
+##### `environment_variables`
+
+Data type: `Hash`
+
+RabbitMQ Environment Variables in rabbitmq_env.config
+
+Default value: $rabbitmq::params::environment_variables
+
+##### `erlang_cookie`
+
+Data type: `Optional[String]`
+
+The erlang cookie to use for clustering - must be the same between all nodes. This value has no default and must be
+set explicitly if using clustering. If you run Pacemaker and you don't want to use RabbitMQ buildin cluster, you can set config_cluster
+to 'False' and set 'erlang_cookie'.
+
+Default value: `undef`
+
+##### `file_limit`
+
+Data type: `Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]]`
+
+Set rabbitmq file ulimit. Defaults to 16384. Only available on systems with `$::osfamily == 'Debian'` or
+`$::osfamily == 'RedHat'`.
+
+Default value: $rabbitmq::params::file_limit
+
+##### `heartbeat`
+
+Data type: `Optional[Integer]`
+
+Set the heartbeat timeout interval, default is unset which uses the builtin server defaults of 60 seconds. Setting this
+
+Default value: `undef`
+
+##### `inetrc_config`
+
+Data type: `String`
+
+Template to use for the inetrc config
+
+Default value: $rabbitmq::params::inetrc_config
+
+##### `inetrc_config_path`
+
+Data type: `Stdlib::Absolutepath`
+
+Path of the file to push the inetrc config to.
+
+Default value: $rabbitmq::params::inetrc_config_path
+
+##### `ipv6`
+
+Data type: `Boolean`
+
+Whether to listen on ipv6
+
+Default value: $rabbitmq::params::ipv6
+
+##### `interface`
+
+Data type: `Optional[String]`
+
+Interface to bind to (sets tcp_listeners parameter). By default, bind to all interfaces
+to `0` will disable heartbeats.
+
+Default value: `undef`
+
+##### `key_content`
+
+Data type: `Optional[String]`
+
+Uses content method for Debian OS family. Should be a template for apt::source class. Overrides `package_gpg_key`
+behavior, if enabled. Undefined by default.
+
+Default value: `undef`
+
+##### `ldap_auth`
+
+Data type: `Boolean`
+
+Set to true to enable LDAP auth.
+
+Default value: $rabbitmq::params::ldap_auth
+
+##### `ldap_server`
+
+Data type: `String`
+
+LDAP server to use for auth.
+
+Default value: $rabbitmq::params::ldap_server
+
+##### `ldap_user_dn_pattern`
+
+Data type: `Optional[String]`
+
+User DN pattern for LDAP auth.
+
+Default value: $rabbitmq::params::ldap_user_dn_pattern
+
+##### `ldap_other_bind`
+
+Data type: `String`
+
+How to bind to the LDAP server. Defaults to 'anon'.
+
+Default value: $rabbitmq::params::ldap_other_bind
+
+##### `ldap_config_variables`
+
+Data type: `Hash`
+
+Hash of other LDAP config variables.
+
+Default value: $rabbitmq::params::ldap_config_variables
+
+##### `ldap_use_ssl`
+
+Data type: `Boolean`
+
+Set to true to use SSL for the LDAP server.
+
+Default value: $rabbitmq::params::ldap_use_ssl
+
+##### `ldap_port`
+
+Data type: `Integer[1, 65535]`
+
+Numeric port for LDAP server.
+
+Default value: $rabbitmq::params::ldap_port
+
+##### `ldap_log`
+
+Data type: `Boolean`
+
+Set to true to log LDAP auth.
+
+Default value: $rabbitmq::params::ldap_log
+
+##### `manage_python`
+
+Data type: `Boolean`
+
+If enabled, on platforms that don't provide a Python 2 package by default, ensure that the python package is
+installed (for rabbitmqadmin). This will only apply if `admin_enable` and `service_manage` are set.
+
+Default value: $rabbitmq::params::manage_python
+
+##### `management_hostname`
+
+Data type: `Optional[String]`
+
+The hostname for the RabbitMQ management interface.
+
+Default value: `undef`
+
+##### `management_port`
+
+Data type: `Integer[1, 65535]`
+
+The port for the RabbitMQ management interface.
+
+Default value: $rabbitmq::params::management_port
+
+##### `management_ip_address`
+
+Data type: `Optional[String]`
+
+Allows you to set the IP for management interface to bind to separately. Set to 127.0.0.1 to bind to
+localhost only, or 0.0.0.0 to bind to all interfaces.
+
+Default value: `undef`
+
+##### `management_ssl`
+
+Data type: `Boolean`
+
+Enable/Disable SSL for the management port. Has an effect only if ssl => true.
+
+Default value: $rabbitmq::params::management_ssl
+
+##### `node_ip_address`
+
+Data type: `Optional[String]`
+
+Allows you to set the IP for RabbitMQ service to bind to. Set to 127.0.0.1 to bind to localhost only, or 0.0.0.0
+to bind to all interfaces.
+
+Default value: `undef`
+
+##### `package_apt_pin`
+
+Data type: `Optional[Variant[Numeric, String]]`
+
+Whether to pin the package to a particular source
+
+Default value: `undef`
+
+##### `package_ensure`
+
+Data type: `String`
+
+Determines the ensure state of the package.  Set to installed by default, but could be changed to latest.
+
+Default value: $rabbitmq::params::package_ensure
+
+##### `package_gpg_key`
+
+Data type: `Optional[String]`
+
+RPM package GPG key to import. Uses source method. Should be a URL for Debian/RedHat OS family, or a file name for
+RedHat OS family. Set to https://packagecloud.io/gpg.key by default. Note, that `key_content`, if specified, would override this
+parameter for Debian OS family.
+
+Default value: $rabbitmq::params::package_gpg_key
+
+##### `package_name`
+
+Data type: `Variant[String, Array]`
+
+Name(s) of the package(s) to install
+
+Default value: $rabbitmq::params::package_name
+
+##### `port`
+
+Data type: `Integer`
+
+The RabbitMQ port.
+
+Default value: $rabbitmq::params::port
+
+##### `repos_ensure`
+
+Data type: `Boolean`
+
+Ensure that a repo with the official (and newer) RabbitMQ package is configured, along with its signing key.
+Defaults to false (use system packages). This does not ensure that soft dependencies (like EPEL on RHEL systems) are present.
+
+Default value: $rabbitmq::params::repos_ensure
+
+##### `service_ensure`
+
+Data type: `Enum['running', 'stopped']`
+
+The state of the service.
+
+Default value: $rabbitmq::params::service_ensure
+
+##### `service_manage`
+
+Data type: `Boolean`
+
+Determines if the service is managed.
+
+Default value: $rabbitmq::params::service_manage
+
+##### `service_name`
+
+Data type: `String`
+
+The name of the service to manage.
+
+Default value: $rabbitmq::params::service_name
+
+##### `ssl`
+
+Data type: `Boolean`
+
+Configures the service for using SSL.
+port => UNSET
+
+Default value: $rabbitmq::params::ssl
+
+##### `ssl_cacert`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+CA cert path to use for SSL.
+
+Default value: `undef`
+
+##### `ssl_cert`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+Cert to use for SSL.
+
+Default value: `undef`
+
+##### `ssl_cert_password`
+
+Data type: `Optional[String]`
+
+Password used when generating CSR.
+
+Default value: `undef`
+
+##### `ssl_depth`
+
+Data type: `Optional[Integer]`
+
+SSL verification depth.
+
+Default value: `undef`
+
+##### `ssl_dhfile`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+Use this dhparam file [example: generate with `openssl dhparam -out /etc/rabbitmq/ssl/dhparam.pem 2048`
+
+Default value: `undef`
+
+##### `ssl_erl_dist`
+
+Data type: `Boolean`
+
+Whether to use the erlang package's SSL (relies on the ssl_erl_path fact)
+
+Default value: $rabbitmq::params::ssl_erl_dist
+
+##### `ssl_honor_cipher_order`
+
+Data type: `Boolean`
+
+Force use of server cipher order
+
+Default value: $rabbitmq::params::ssl_honor_cipher_order
+
+##### `ssl_interface`
+
+Data type: `Optional[String]`
+
+Interface for SSL listener to bind to
+
+Default value: `undef`
+
+##### `ssl_key`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+Key to use for SSL.
+
+Default value: `undef`
+
+##### `ssl_only`
+
+Data type: `Boolean`
+
+Configures the service to only use SSL.  No cleartext TCP listeners will be created. Requires that ssl => true and
+
+Default value: $rabbitmq::params::ssl_only
+
+##### `ssl_management_port`
+
+Data type: `Integer[1, 65535]`
+
+SSL management port.
+
+Default value: $rabbitmq::params::ssl_management_port
+
+##### `ssl_port`
+
+Data type: `Integer[1, 65535]`
+
+SSL port for RabbitMQ
+
+Default value: $rabbitmq::params::ssl_port
+
+##### `ssl_reuse_sessions`
+
+Data type: `Boolean`
+
+Reuse ssl sessions
+
+Default value: $rabbitmq::params::ssl_reuse_sessions
+
+##### `ssl_secure_renegotiate`
+
+Data type: `Boolean`
+
+Use ssl secure renegotiate
+
+Default value: $rabbitmq::params::ssl_secure_renegotiate
+
+##### `ssl_stomp_port`
+
+Data type: `Integer[1, 65535]`
+
+SSL stomp port.
+
+Default value: $rabbitmq::params::ssl_stomp_port
+
+##### `ssl_verify`
+
+Data type: `Enum['verify_none','verify_peer']`
+
+rabbitmq.config SSL verify setting.
+
+Default value: $rabbitmq::params::ssl_verify
+
+##### `ssl_fail_if_no_peer_cert`
+
+Data type: `Boolean`
+
+rabbitmq.config `fail_if_no_peer_cert` setting.
+
+Default value: $rabbitmq::params::ssl_fail_if_no_peer_cert
+
+##### `ssl_management_verify`
+
+Data type: `Enum['verify_none','verify_peer']`
+
+rabbitmq.config SSL verify setting for rabbitmq_management.
+
+Default value: $rabbitmq::params::ssl_management_verify
+
+##### `ssl_manaagement_fail_if_no_peer_cert`
+
+rabbitmq.config `fail_if_no_peer_cert` setting for rabbitmq_management.
+
+##### `ssl_versions`
+
+Data type: `Optional[Array]`
+
+Choose which SSL versions to enable. Example: `['tlsv1.2', 'tlsv1.1']` Note that it is recommended to disable `sslv3
+and `tlsv1` to prevent against POODLE and BEAST attacks. Please see the [RabbitMQ SSL](https://www.rabbitmq.com/ssl.html) documentation
+for more information.
+
+Default value: `undef`
+
+##### `ssl_ciphers`
+
+Data type: `Array`
+
+Support only a given list of SSL ciphers. Example: `['dhe_rsa,aes_256_cbc,sha','dhe_dss,aes_256_cbc,sha',
+'ecdhe_rsa,aes_256_cbc,sha']`. Supported ciphers in your install can be listed with: rabbitmqctl eval 'ssl:cipher_suites().'
+Functionality can be tested with cipherscan or similar tool: https://github.com/jvehent/cipherscan.git
+
+Default value: $rabbitmq::params::ssl_ciphers
+
+##### `stomp_port`
+
+Data type: `Integer[1, 65535]`
+
+The port to use for Stomp.
+
+Default value: $rabbitmq::params::stomp_port
+
+##### `stomp_ssl_only`
+
+Data type: `Boolean`
+
+Configures STOMP to only use SSL.  No cleartext STOMP TCP listeners will be created. Requires setting
+ssl_stomp_port also.
+
+Default value: $rabbitmq::params::stomp_ssl_only
+
+##### `stomp_ensure`
+
+Data type: `Boolean`
+
+Enable to install the stomp plugin.
+
+Default value: $rabbitmq::params::stomp_ensure
+
+##### `tcp_backlog`
+
+Data type: `Integer`
+
+The size of the backlog on TCP connections.
+
+Default value: $rabbitmq::params::tcp_backlog
+
+##### `tcp_keepalive`
+
+Data type: `Boolean`
+
+Enable TCP connection keepalive for RabbitMQ service.
+
+Default value: $rabbitmq::params::tcp_keepalive
+
+##### `tcp_recbuf`
+
+Data type: `Optional[Integer]`
+
+Corresponds to recbuf in RabbitMQ `tcp_listen_options`
+
+Default value: `undef`
+
+##### `tcp_sndbuf`
+
+Data type: `Optional[Integer]`
+
+Integer, corresponds to sndbuf in RabbitMQ `tcp_listen_options`
+
+Default value: `undef`
+
+##### `wipe_db_on_cookie_change`
+
+Data type: `Boolean`
+
+Boolean to determine if we should DESTROY AND DELETE the RabbitMQ database.
+
+Default value: $rabbitmq::params::wipe_db_on_cookie_change
+
+##### `rabbitmq_user`
+
+Data type: `String`
+
+OS dependent, default defined in param.pp. The system user the rabbitmq daemon runs as.
+
+Default value: $rabbitmq::params::rabbitmq_user
+
+##### `rabbitmq_group`
+
+Data type: `String`
+
+OS dependent, default defined in param.pp. The system group the rabbitmq daemon runs as.
+
+Default value: $rabbitmq::params::rabbitmq_group
+
+##### `rabbitmq_home`
+
+Data type: `Stdlib::Absolutepath`
+
+OS dependent. default defined in param.pp. The home directory of the rabbitmq deamon.
+
+Default value: $rabbitmq::params::rabbitmq_home
+
+##### `$rabbitmqadmin_package`
+
+OS dependent. default defined in param.pp. If undef: install rabbitmqadmin via archive, otherwise via package
+
+##### `$archive_options.`
+
+default defined in param.pp.  Extra options to Archive resource to download rabbitmqadmin file
+
+##### `config_ranch`
+
+Data type: `Boolean`
+
+
+
+Default value: $rabbitmq::params::config_ranch
+
+##### `package_source`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `package_provider`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `ssl_management_fail_if_no_peer_cert`
+
+Data type: `Boolean`
+
+
+
+Default value: $rabbitmq::params::ssl_management_fail_if_no_peer_cert
+
+##### `rabbitmqadmin_package`
+
+Data type: `Optional[String]`
+
+
+
+Default value: $rabbitmq::params::rabbitmqadmin_package
+
+##### `archive_options`
+
+Data type: `Array`
+
+
+
+Default value: $rabbitmq::params::archive_options
+
+##### `loopback_users`
+
+Data type: `Array`
+
+
+
+Default value: $rabbitmq::params::loopback_users
+
+### rabbitmq::config
+
+Class: rabbitmq::config
+Sets all the configuration values for RabbitMQ and creates the directories for
+config and ssl.
+
+### rabbitmq::install
+
+Class rabbitmq::install
+Ensures that rabbitmq-server exists
+
+### rabbitmq::install::rabbitmqadmin
+
+The rabbitmq::install::rabbitmqadmin class.
+
+### rabbitmq::management
+
+The rabbitmq::management class.
+
+### rabbitmq::params
+
+rabbitmq::params
+
+### rabbitmq::repo::apt
+
+requires
+  puppetlabs-apt
+  puppetlabs-stdlib
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq::repo::apt` class.
+
+##### `location`
+
+Data type: `String`
+
+
+
+Default value: 'https://packagecloud.io/rabbitmq/rabbitmq-server'
+
+##### `repos`
+
+Data type: `String`
+
+
+
+Default value: 'main'
+
+##### `include_src`
+
+Data type: `Boolean`
+
+
+
+Default value: `false`
+
+##### `key`
+
+Data type: `String`
+
+
+
+Default value: '418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB'
+
+##### `key_source`
+
+Data type: `String`
+
+
+
+Default value: $rabbitmq::package_gpg_key
+
+##### `key_content`
+
+Data type: `Optional[String]`
+
+
+
+Default value: $rabbitmq::key_content
+
+##### `architecture`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+### rabbitmq::repo::rhel
+
+Class: rabbitmq::repo::rhel
+Makes sure that the Packagecloud repo is installed
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq::repo::rhel` class.
+
+##### `location`
+
+Data type: `Any`
+
+
+
+Default value: "https://packagecloud.io/rabbitmq/rabbitmq-server/el/${facts['os'][release][major]}/\$basearch"
+
+##### `key_source`
+
+Data type: `String`
+
+
+
+Default value: $rabbitmq::package_gpg_key
+
+### rabbitmq::server
+
+Class: rabbitmq::server
+
+This module manages the installation and config of the rabbitmq server
+  it has only been tested on certain version of debian-ish systems
+Parameters:
+ [*port*] - port where rabbitmq server is hosted
+ [*delete_guest_user*] - rather or not to delete the default user
+ [*version*] - deprecated -- does nothing
+ [*package_name*] - name of rabbitmq package
+ [*service_name*] - name of rabbitmq service
+ [*service_ensure*] - desired ensure state for service
+ [*stomp_port*] - port stomp should be listening on
+ [*node_ip_address*] - ip address for rabbitmq to bind to
+ [*config*] - contents of config file
+ [*env_config*] - contents of env-config file
+ [*config_cluster*] - whether to configure a RabbitMQ cluster
+ [*cluster_nodes*] - which nodes to cluster with (including the current one)
+ [*cluster_node_type*] - Type of cluster node (disc/disk or ram)
+ [*erlang_cookie*] - erlang cookie, must be the same for all nodes in a cluster
+ [*wipe_db_on_cookie_change*] - whether to wipe the RabbitMQ data if the specified
+   erlang_cookie differs from the current one. This is a sad parameter: actually,
+   if the cookie indeed differs, then wiping the database is the *only* thing you
+   can do. You're only required to set this parameter to true as a sign that you
+   realise this.
+Requires:
+ stdlib
+Sample Usage:
+
+This module is used as backward compability layer for modules
+which require rabbitmq::server instead of rabbitmq class.
+It's still common uasge in many modules.
+
+
+[Remember: No empty lines between comments and class definition]
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq::server` class.
+
+##### `port`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::port
+
+##### `delete_guest_user`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::delete_guest_user
+
+##### `package_name`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::package_name
+
+##### `service_name`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::service_name
+
+##### `service_ensure`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::service_ensure
+
+##### `service_manage`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::service_manage
+
+##### `config_stomp`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::config_stomp
+
+##### `stomp_port`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::stomp_port
+
+##### `config_cluster`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::config_cluster
+
+##### `cluster_nodes`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::cluster_nodes
+
+##### `cluster_node_type`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::cluster_node_type
+
+##### `node_ip_address`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::node_ip_address
+
+##### `config`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::config
+
+##### `env_config`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::env_config
+
+##### `erlang_cookie`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::erlang_cookie
+
+##### `wipe_db_on_cookie_change`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::params::wipe_db_on_cookie_change
+
+### rabbitmq::service
+
+Class: rabbitmq::service
+
+  This class manages the rabbitmq server service itself.
+
+Parameters:
+
+Actions:
+
+Requires:
+
+Sample Usage:
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq::service` class.
+
+##### `service_ensure`
+
+Data type: `Enum['running', 'stopped']`
+
+
+
+Default value: $rabbitmq::service_ensure
+
+##### `service_manage`
+
+Data type: `Boolean`
+
+
+
+Default value: $rabbitmq::service_manage
+
+##### `service_name`
+
+Data type: `Any`
+
+
+
+Default value: $rabbitmq::service_name
+
+## Resource types
+
+### rabbitmq_binding
+
+Native type for managing rabbitmq bindings
+
+rabbitmq_binding { 'binding 1':
+  ensure           => present,
+  source           => 'myexchange',
+  destination      => 'myqueue',
+  vhost            => 'myvhost',
+  user             => 'dan',
+  password         => 'bar',
+  destination_type => 'queue',
+  routing_key      => 'key1',
+  arguments        => {},
+}
+
+rabbitmq_binding { 'binding 2':
+  ensure           => present,
+  source           => 'myexchange',
+  destination      => 'myqueue',
+  vhost            => 'myvhost',
+  user             => 'dan',
+  password         => 'bar',
+  destination_type => 'queue',
+  routing_key      => 'key2',
+  arguments        => {},
+}
+
+#### Examples
+
+##### Create a rabbitmq_binding
+
+```puppet
+rabbitmq_binding { 'myexchange@myqueue@myvhost':
+  user             => 'dan',
+  password         => 'bar',
+  destination_type => 'queue',
+  routing_key      => '#',
+  arguments        => {},
+  ensure           => present,
+}
+```
+
+##### Create bindings with same source / destination / vhost but different routing key using individual parameters
+
+```puppet
+
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_binding` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+##### `source`
+
+Valid values: %r{^\S+$}
+
+namevar
+
+source of binding
+
+##### `destination`
+
+Valid values: %r{^\S+$}
+
+namevar
+
+destination of binding
+
+##### `vhost`
+
+Valid values: %r{^\S+$}
+
+namevar
+
+vhost
+
+Default value: /
+
+##### `routing_key`
+
+Valid values: %r{^\S*$}
+
+namevar
+
+binding routing_key
+
+##### `destination_type`
+
+Valid values: %r{queue|exchange}
+
+binding destination_type
+
+Default value: queue
+
+##### `arguments`
+
+binding arguments
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_binding` type.
+
+##### `name`
+
+namevar
+
+resource name, either source@destination@vhost or arbitrary name with params
+
+##### `user`
+
+Valid values: %r{^\S+$}
+
+The user to use to connect to rabbitmq
+
+Default value: guest
+
+##### `password`
+
+Valid values: %r{\S+}
+
+The password to use to connect to rabbitmq
+
+Default value: guest
+
+### rabbitmq_erlang_cookie
+
+Type to manage the rabbitmq erlang cookie securely
+
+This is essentially a private type used by the rabbitmq::config class
+to manage the erlang cookie. It replaces the rabbitmq_erlang_cookie fact
+from earlier versions of this module. It manages the content of the cookie
+usually located at "${rabbitmq_home}/.erlang.cookie", which includes
+stopping the rabbitmq service and wiping out the database at
+"${rabbitmq_home}/mnesia" if the user agrees to it. We don't recommend using
+this type directly.
+
+#### Properties
+
+The following properties are available in the `rabbitmq_erlang_cookie` type.
+
+##### `content`
+
+Valid values: %r{^\S+$}
+
+Content of cookie
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_erlang_cookie` type.
+
+##### `path`
+
+
+
+##### `force`
+
+Valid values: `true`, `false`
+
+
+
+Default value: `false`
+
+##### `rabbitmq_user`
+
+
+
+Default value: rabbitmq
+
+##### `rabbitmq_group`
+
+
+
+Default value: rabbitmq
+
+##### `rabbitmq_home`
+
+
+
+Default value: /var/lib/rabbitmq
+
+##### `service_name`
+
+Valid values: %r{^\S+$}
+
+
+
+### rabbitmq_exchange
+
+Native type for managing rabbitmq exchanges
+
+#### Examples
+
+##### Create a rabbitmq_exchange
+
+```puppet
+rabbitmq_exchange { 'myexchange@myvhost':
+  user        => 'dan',
+  password    => 'bar',
+  type        => 'topic',
+  ensure      => present,
+  internal    => false,
+  auto_delete => false,
+  durable     => true,
+  arguments   => {
+    hash-header => 'message-distribution-hash'
+  }
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_exchange` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_exchange` type.
+
+##### `name`
+
+Valid values: %r{^\S*@\S+$}
+
+namevar
+
+Name of exchange
+
+##### `type`
+
+Valid values: %r{^\S+$}
+
+Exchange type to be set *on creation*
+
+##### `durable`
+
+Valid values: %r{^\S+$}
+
+Exchange durability to be set *on creation*
+
+Default value: `false`
+
+##### `auto_delete`
+
+Valid values: %r{^\S+$}
+
+Exchange auto delete option to be set *on creation*
+
+Default value: `false`
+
+##### `internal`
+
+Valid values: %r{^\S+$}
+
+Exchange internal option to be set *on creation*
+
+Default value: `false`
+
+##### `arguments`
+
+Exchange arguments example: {"hash-header": "message-distribution-hash"}
+
+##### `user`
+
+Valid values: %r{^\S+$}
+
+The user to use to connect to rabbitmq
+
+Default value: guest
+
+##### `password`
+
+Valid values: %r{\S+}
+
+The password to use to connect to rabbitmq
+
+Default value: guest
+
+### rabbitmq_parameter
+
+Type for managing rabbitmq parameters
+
+#### Examples
+
+##### Create some rabbitmq_parameter resources
+
+```puppet
+rabbitmq_parameter { 'documentumShovel@/':
+  component_name => '',
+  value          => {
+      'src-uri'    => 'amqp://',
+      'src-queue'  => 'my-queue',
+      'dest-uri'   => 'amqp://remote-server',
+      'dest-queue' => 'another-queue',
+  },
+}
+rabbitmq_parameter { 'documentumFed@/':
+  component_name => 'federation-upstream',
+  value          => {
+      'uri'     => 'amqp://myserver',
+      'expires' => '360000',
+  },
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_parameter` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+##### `component_name`
+
+The component_name to use when setting parameter, eg: shovel or federation
+
+##### `value`
+
+A hash of values to use with the component name you are setting
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_parameter` type.
+
+##### `name`
+
+Valid values: %r{^\S+@\S+$}
+
+namevar
+
+combination of name@vhost to set parameter for
+
+### rabbitmq_plugin
+
+manages rabbitmq plugins
+
+#### Examples
+
+##### query all currently enabled plugins
+
+```puppet
+$ puppet resource rabbitmq_plugin
+```
+
+##### Ensure a rabbitmq_plugin resource
+
+```puppet
+rabbitmq_plugin {'rabbitmq_stomp':
+  ensure => present,
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_plugin` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_plugin` type.
+
+##### `name`
+
+Valid values: %r{^\S+$}
+
+namevar
+
+The name of the plugin to enable
+
+##### `umask`
+
+Sets the octal umask to be used while creating this resource
+
+Default value: 0022
+
+### rabbitmq_policy
+
+Type for managing rabbitmq policies
+
+#### Examples
+
+##### Create a rabbitmq_policy
+
+```puppet
+rabbitmq_policy { 'ha-all@myvhost':
+  pattern    => '.*',
+  priority   => 0,
+  applyto    => 'all',
+  definition => {
+    'ha-mode'      => 'all',
+    'ha-sync-mode' => 'automatic',
+  },
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_policy` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+##### `pattern`
+
+policy pattern
+
+##### `applyto`
+
+Valid values: all, exchanges, queues
+
+policy apply to
+
+Default value: all
+
+##### `definition`
+
+policy definition
+
+##### `priority`
+
+Valid values: %r{^\d+$}
+
+policy priority
+
+Default value: 0
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_policy` type.
+
+##### `name`
+
+Valid values: %r{^\S+@\S+$}
+
+namevar
+
+combination of policy@vhost to create policy for
+
+### rabbitmq_queue
+
+Native type for managing rabbitmq queue
+
+#### Examples
+
+##### Create a rabbitmq_queue
+
+```puppet
+rabbitmq_queue { 'myqueue@myvhost':
+  ensure      => present,
+  user        => 'dan',
+  password    => 'bar',
+  durable     => true,
+  auto_delete => false,
+  arguments   => {
+    x-message-ttl          => 123,
+    x-dead-letter-exchange => 'other'
+  },
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_queue` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_queue` type.
+
+##### `name`
+
+Valid values: %r{^\S*@\S+$}
+
+namevar
+
+Name of queue
+
+##### `durable`
+
+Valid values: %r{true|false}
+
+Queue is durable
+
+Default value: `true`
+
+##### `auto_delete`
+
+Valid values: %r{true|false}
+
+Queue will be auto deleted
+
+Default value: `false`
+
+##### `arguments`
+
+Queue arguments example: {x-message-ttl => 60, x-expires => 10}
+
+##### `user`
+
+Valid values: %r{^\S+$}
+
+The user to use to connect to rabbitmq
+
+Default value: guest
+
+##### `password`
+
+Valid values: %r{\S+}
+
+The password to use to connect to rabbitmq
+
+Default value: guest
+
+### rabbitmq_user
+
+Native type for managing rabbitmq users
+
+#### Examples
+
+##### query all current users
+
+```puppet
+$ puppet resource rabbitmq_user
+```
+
+##### Configure a user, dan
+
+```puppet
+rabbitmq_user { 'dan':
+  admin    => true,
+  password => 'bar',
+}
+```
+
+##### Optional parameter tags will set further rabbitmq tags like monitoring, policymaker, etc.
+
+```puppet
+To set the administrator tag use admin-flag.
+rabbitmq_user { 'dan':
+  admin    => true,
+  password => 'bar',
+  tags     => ['monitoring', 'tag1'],
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_user` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+##### `password`
+
+User password to be set *on creation* and validated each run
+
+##### `admin`
+
+Valid values: %r{true|false}
+
+whether or not user should be an admin
+
+Default value: false
+
+##### `tags`
+
+additional tags for the user
+
+Default value: []
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_user` type.
+
+##### `name`
+
+Valid values: %r{^\S+$}
+
+namevar
+
+Name of user
+
+### rabbitmq_user_permissions
+
+Type for managing rabbitmq user permissions
+
+#### Examples
+
+##### Define some rabbitmq_user_permissions
+
+```puppet
+rabbitmq_user_permissions { 'dan@myvhost':
+  configure_permission => '.*',
+  read_permission      => '.*',
+  write_permission     => '.*',
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_user_permissions` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+##### `configure_permission`
+
+regexp representing configuration permissions
+
+##### `read_permission`
+
+regexp representing read permissions
+
+##### `write_permission`
+
+regexp representing write permissions
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_user_permissions` type.
+
+##### `name`
+
+Valid values: %r{^\S+@\S+$}
+
+namevar
+
+combination of user@vhost to grant privileges to
+
+### rabbitmq_vhost
+
+Native type for managing rabbitmq vhosts
+
+#### Examples
+
+##### query all current vhosts
+
+```puppet
+$ puppet resource rabbitmq_vhost`
+```
+
+##### Create a rabbitmq_vhost
+
+```puppet
+rabbitmq_vhost { 'myvhost':
+  ensure => present,
+}
+```
+
+#### Properties
+
+The following properties are available in the `rabbitmq_vhost` type.
+
+##### `ensure`
+
+Valid values: present, absent
+
+The basic property that the resource should be in.
+
+Default value: present
+
+#### Parameters
+
+The following parameters are available in the `rabbitmq_vhost` type.
+
+##### `name`
+
+Valid values: %r{^\S+$}
+
+namevar
+
+The name of the vhost to add
+