-#### apt
-
-* `always_apt_update`: Set to 'true' to update Apt on every run. This setting is intended for development environments where package updates are frequent. Defaults to 'false'.
-* `apt_update_frequency`: Sets the run frequency for `apt-get update`. Defaults to 'reluctantly'. Accepts the following values:
- * 'always': Runs update at every Puppet run.
- * 'daily': Runs update daily; that is, `apt-get update` runs if the value of `apt_update_last_success` is less than current epoch time - 86400. If the exec resource `apt_update` is notified, `apt-get update` runs regardless of this value.
- * 'weekly': Runs update weekly; that is, `apt-get update` runs if the value of `apt_update_last_success` is less than current epoch time - 604800. If the exec resource `apt_update` is notified, `apt-get update` runs regardless of this value.
- * 'reluctantly': Only runs `apt-get update` if the exec resource `apt_update` is notified. This is the default setting.
-* `disable_keys`: Disables the requirement for all packages to be signed.
-* `proxy_host`: Configures a proxy host and stores the configuration in /etc/apt/apt.conf.d/01proxy.
-* `proxy_port`: Configures a proxy port and stores the configuration in /etc/apt/apt.conf.d/01proxy.
-* `purge_sources_list`: If set to 'true', Puppet purges all unmanaged entries from sources.list. Accepts 'true' or 'false'. Defaults to 'false'.
-* `purge_sources_list_d`: If set to 'true', Puppet purges all unmanaged entries from sources.list.d. Accepts 'true' or 'false'. Defaults to 'false'.
-* `update_timeout`: Overrides the exec timeout in seconds for `apt-get update`. Defaults to exec default (300).
-* `update_tries`: Sets how many times to attempt running `apt-get update`. Use this to work around transient DNS and HTTP errors. By default, the command runs only once.
-* `sources`: Passes a hash to create_resource to make new `apt::source` resources.
-* `fancy_progress`: Enables fancy progress bars for apt. Accepts 'true', 'false'. Defaults to 'false'.
-
-####apt::unattended_upgrades
-
-* `origins`: The repositories from which to automatically upgrade included packages.
-* `blacklist`: A list of packages to **not** automatically upgrade.
-* `update`: How often, in days, to run `apt-get update`.
-* `download`: How often, in days, to run `apt-get upgrade --download-only`.
-* `upgrade`: How often, in days, to upgrade packages included in the origins list.
-* `autoclean`: How often, in days, to run `apt-get autoclean`.
-* `randomsleep`: How long, in seconds, to randomly wait before applying upgrades.
+####apt
+
+* `update`: Hash to configure various update settings. Valid keys are:
+ * 'frequency': The run frequency for `apt-get update`. Defaults to 'reluctantly'. Accepts the following values:
+ * 'always': Runs update at every Puppet run.
+ * 'daily': Runs update daily; that is, `apt-get update` runs if the value of `apt\_update\_last\_success` is less than current epoch time - 86400. If the exec resource `apt\_update` is notified, `apt-get update` runs regardless of this value.
+ * 'weekly': Runs update weekly; that is, `apt-get update` runs if the value of `apt\_update\_last\_success` is less than current epoch time - 604800. If the exec resource `apt\_update` is notified, `apt-get update` runs regardless of this value.
+ * 'reluctantly': Only runs `apt-get update` if the exec resource `apt\_update` is notified. This is the default setting.
+ * 'timeout': Overrides the exec timeout in seconds for `apt-get update`. Defaults to exec default (300).
+ * 'tries': Sets how many times to attempt running `apt-get update`. Use this to work around transient DNS and HTTP errors. By default, the command runs only once.
+* `purge`: Hash to configure various purge settings. Valid keys are:
+ * 'sources.list': If set to 'true', Puppet purges all unmanaged entries from sources.list. Accepts `true` or `false`. Defaults to `true`.
+ * 'sources.list.d': If set to 'true', Puppet purges all unmanaged entries from sources.list.d. Accepts `true` or `false`. Defaults to `true`.
+ * 'preferences.list': If set to 'true', Puppet purges all unmanaged entries from preferences.list. Accepts `true` or `false`. Defaults to `true`.
+ * 'preferences.list.d': If set to 'true', Puppet purges all unmanaged entries from preferences.list.d. Accepts `true` or `false`. Defaults to `true`.
+* `proxy`: Hash to configure various proxy settings. Valid keys are:
+ * 'host': Configures a proxy host and stores the configuration in /etc/apt/apt.conf.d/01proxy.
+ * 'port': Configures a proxy port and stores the configuration in /etc/apt/apt.conf.d/01proxy.
+ * 'https': Boolean to configure whether or not to enable https proxies. Defaults to false.
+* `keys`: Passes a hash to `create\_resource` to make new `apt::key` resources.
+* `ppas`: Passes a hash to `create\_resource` to make new `apt::ppa` resources.
+* `settings`: Passes a hash to `create\_resource` to make new `apt::setting` resources.
+* `sources`: Passes a hash to `create\_resource` to make new `apt::source` resources.
+
+####apt::backports
+
+* `location`: The URL of the apt repository. OS-dependent defaults are specifed in `apt::params` for Ubuntu and Debian. Required parameter for other OSes.
+* `release`: The distribution of the apt repository. Defaults to "${lsbdistcodename}-backports" for Ubuntu and Debian. Required parameter for other OSes.
+* `repos`: The component of the apt repository. OS-dependent defaults are speicifed in `apt::params` for Ubuntu and Debian. Required parameter for other OSes.
+* `key`: The key for the backports repository. Can either be a string or a hash. See apt::setting for details on passing key as a hash. OS-dependent defaults are specified in `apt::params` for Ubuntu and Debian. Required parameter for other OSes.
+* `pin`: The pin priority for backports repository. Can either be a number, a string, or a hash that will be passed as parameters to `apt::pin`. Defaults to `200`.
+
+####apt::conf
+
+* `content`: The content of the configuration file.
+* `ensure`: Whether the configuration file should be 'present' or 'absent'. Defaults to 'present'.
+* `priority`: Numeric priority for the configuration file. Defaults to '50'.
+
+####apt::key
+
+* `ensure`: The state we want this key in. Can be 'present' or 'absent'.
+* `id`: Is a GPG key ID or full key fingerprint. This value is validated with a regex enforcing it to only contain valid hexadecimal characters, be precisely 8 or 16 hexadecimal characters long and optionally prefixed with 0x for key IDs, or 40 hexadecimal characters long for key fingerprints.
+* `content`: This parameter can be used to pass in a GPG key as a string in case it cannot be fetched from a remote location and using a file resource is for other reasons inconvenient.
+* `source`: This parameter can be used to pass in the location of a GPG key. This URI can take the form of a `URL` (ftp, http or https) and a `path` (absolute path to a file on the target system).
+* `server`: The keyserver from where to fetch our GPG key. It can either be a domain name or URL. It defaults to 'keyserver.ubuntu.com'.
+* `options`: Additional options to pass on to `apt-key adv --keyserver-options`.
+
+####apt::pin
+
+* `ensure`: The state we want this pin in. Can be 'present' or 'absent'.
+* `explanation`: Add a comment. Defaults to `${caller\_module\_name}: ${name}`.
+* `order`: The order of the file name. Defaults to undef, otherwise must be an integer.
+* `packages`: The list of packages to pin. Defaults to '\*'. Can be an array or string.
+* `priority`: Several versions of a package may be available for installation when the sources.list(5) file contains references to more than one distribution (for example, stable and testing). APT assigns a priority to each version that is available. Subject to dependency constraints, apt-get selects the version with the highest priority for installation.
+* `release`: The Debian release. Defaults to ''. Typical values can be 'stable', 'testing' and 'unstable'.
+* `origin`: Can be used to match a hostname. The following record will assign a high priority to all versions available from the server identified by the hostname. Defaults to ''.
+* `version`: The specific form assigns a priority (a "Pin-Priority") to one or more specified packages with a specified version or version range.
+* `codename`: The distribution (lsbdistcodename) of the apt repository. Defaults to ''.
+* `release\_version`: Names the release version. For example, the packages in the tree might belong to Debian release version 7. Defaults to ''.
+* `component`: Names the licensing component associated with the packages in the directory tree of the Release file. defaults to ''. Typical values can be 'main', 'dependencies' and 'restricted'
+* `originator`: Names the originator of the packages in the directory tree of the Release file. Defaults to ''. Most commonly, this is Debian.
+* `label`: Names the label of the packages in the directory tree of the Release file. Defaults to ''. Most commonly, this is Debian.
+
+**Note**: Parameters release, origin, and version are mutually exclusive.
+
+It is recommended to read the manpage 'apt_preferences(5)'
+
+####apt::ppa
+
+* `ensure`: Whether we are adding or removing the PPA. Can be 'present' or 'absent'. Defaults to 'present'.
+* `release`: The codename for the operating system you're running. Defaults to `$lsbdistcodename`. Required if lsb-release is not installed.
+* `options`: Options to be passed to the `apt-add-repository` command. OS-dependent defaults are set in `apt::params`.
+* `package\_name`: The package that provides the `apt-add-repository` command. OS-dependent defaults are set in `apt::params`.
+* `package\_manage`: Whether or not to manage the package providing `apt-add-repository`. Defaults to true.
+
+####apt::setting
+
+* `priority`: Integer or zero-padded integer setting the file priority. Defaults to 50.
+* `ensure`: Whether to add or remove the file. Valid values are 'present', 'absent', and 'file'. Defaults to `file`.
+* `source`: The source for the file. Exactly one of `content` and `source` must be specified.
+* `content`: The content for the file. Exactly one of `content` and `source` must be specified.
+* `notify\_update`: Boolean for whether or not this `apt::setting` should trigger an `apt-get update`. Defaults to `true`.