+ If you declare your apt class with `purge_sources_list`, `purge_sources_list_d`, `purge_preferences` and `purge_preferences_d` set to 'true', Puppet will unapologetically purge any existing content it finds that wasn't declared with Puppet.
+
+* `apt::backports`: This class adds the necessary components to get backports for Ubuntu and Debian. The release name defaults to `$lsbdistcodename`. Setting this manually can cause undefined and potentially serious behavior.
+
+ By default, this class drops a pin-file for backports, pinning it to a priority of 200. This is lower than the normal Debian archive, which gets a priority of 500 to ensure that packages with `ensure => latest` don't get magically upgraded from backports without your explicit permission.
+
+ If you raise the priority through the `pin_priority` parameter to 500---identical to the rest of the Debian mirrors---normal policy goes into effect, and Apt installs or upgrades to the newest version. This means that if a package is available from backports, it and its dependencies are pulled in from backports unless you explicitly set the `ensure` attribute of the `package` resource to `installed`/`present` or a specific version.
+
+* `apt::params`: Sets defaults for the apt module parameters.
+
+* `apt::release`: Sets the default Apt release. This class is particularly useful when using repositories that are unstable in Ubuntu, such as Debian.
+
+ ```
+ class { 'apt::release':
+ release_id => 'precise',
+ }
+ ```
+
+* `apt::unattended_upgrades`: This class manages the unattended-upgrades package and related configuration files for Ubuntu and Debian systems. You can configure the class to automatically upgrade all new package releases or just security releases.
+
+ ```
+ class { 'apt::unattended_upgrades':
+ origins => $::apt::params::origins,
+ blacklist => [],
+ update => '1',
+ download => '1',
+ upgrade => '1',
+ autoclean => '7',
+ }
+ ```
+
+* `apt::update`: Runs `apt-get update`, updating the list of available packages and their versions without installing or upgrading any packages. The update runs on the first Puppet run after you include the class, then whenever `notify => Exec['apt_update']` occurs; i.e., whenever config files get updated or other relevant changes occur. If you set the `always_apt_update` parameter to 'true', the update runs on every Puppet run.
+
+### Types
+
+* `apt_key`
+
+ A native Puppet type and provider for managing GPG keys for Apt is provided by this module.
+
+ ```
+ apt_key { 'puppetlabs':
+ ensure => 'present',
+ id => '1054B7A24BD6EC30',
+ }
+ ```
+
+ You can additionally set the following attributes:
+
+ * `source`: HTTP, HTTPS or FTP location of a GPG key or path to a file on the target host.
+ * `content`: Instead of pointing to a file, pass the key in as a string.
+ * `server`: The GPG key server to use. It defaults to *keyserver.ubuntu.com*.
+ * `keyserver_options`: Additional options to pass to `--keyserver`.
+
+ Because apt_key is a native type, you can use it and query for it with MCollective.
+
+### Defined Types
+
+* `apt::builddep`: Installs the build dependencies of a specified package.
+
+ `apt::builddep { 'glusterfs-server': }`
+
+* `apt::conf`: Specifies a custom configuration file. The priority defaults to 50, but you can set the priority parameter to load the file earlier or later. The content parameter passes specified content, if any, into the file resource.
+
+* `apt::hold`: Holds a specific version of a package. You can hold a package to a full version or a partial version.
+
+ To set a package's ensure attribute to 'latest' but get the version specified by `apt::hold`:
+
+ ```
+ apt::hold { 'vim':
+ version => '2:7.3.547-7',
+ }
+ ```
+
+ Alternatively, if you want to hold your package at a partial version, you can use a wildcard. For example, you can hold Vim at version 7.3.*:
+
+
+ ```
+ apt::hold { 'vim':
+ version => '2:7.3.*',
+ }
+ ```
+
+* `apt::force`: Forces a package to be installed from a specific release. This is particularly useful when using repositories that are unstable in Ubuntu, such as Debian.
+
+ ```
+ apt::force { 'glusterfs-server':
+ release => 'unstable',
+ version => '3.0.3',
+ cfg_files => 'unchanged',
+ cfg_missing => true,
+ require => Apt::Source['debian_unstable'],
+ }
+ ```
+
+ Valid values for `cfg_files` are:
+ * 'new': Overwrites all existing configuration files with newer ones.
+ * 'old': Forces usage of all old files.
+ * 'unchanged: Updates only unchanged config files.
+ * 'none': Provides backward-compatibility with existing Puppet manifests.
+
+ Valid values for `cfg_missing` are 'true', 'false'. Setting this to 'false' provides backward compatibility; setting it to 'true' checks for and installs missing configuration files for the selected package.
+
+* `apt::key`: Adds a key to the list of keys used by Apt to authenticate packages. This type uses the aforementioned `apt_key` native type. As such, it no longer requires the `wget` command on which the old implementation depended.
+
+ ```
+ apt::key { 'puppetlabs':
+ key => '1054B7A24BD6EC30',
+ key_server => 'pgp.mit.edu',
+ }