Harden apt-mark defined type
[puppet-modules/puppetlabs-apt.git] / REFERENCE.md
index 13f5f9ae5e9442e380e8f3055e97fba677743d6d..561cb5b464f0c1faeb1efa6eceef6c5f1e0cef24 100644 (file)
@@ -20,7 +20,7 @@
 
 * [`apt::conf`](#aptconf): Specifies a custom Apt configuration file.
 * [`apt::key`](#aptkey): Manages the GPG keys that Apt uses to authenticate packages.
-* [`apt::mark`](#aptmark): defined typeapt::mark
+* [`apt::mark`](#aptmark): Manages apt-mark settings
 * [`apt::pin`](#aptpin): Manages Apt pins. Does not trigger an apt-get update run.
 * [`apt::ppa`](#aptppa): Manages PPA repositories using `add-apt-repository`. Not supported on Debian.
 * [`apt::setting`](#aptsetting): Manages Apt configuration files.
@@ -41,6 +41,7 @@ be manipulated through the `apt-key` command.
 
 * [`Apt::Auth_conf_entry`](#aptauth_conf_entry): Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
 * [`Apt::Proxy`](#aptproxy): Configures Apt to connect to a proxy server.
+* [`Apt::Proxy_Per_Host`](#aptproxy_per_host): Adds per-host overrides to the system default APT proxy configuration
 
 ### Tasks
 
@@ -48,7 +49,7 @@ be manipulated through the `apt-key` command.
 
 ## Classes
 
-### `apt`
+### <a name="apt"></a>`apt`
 
 Main class, includes all other classes.
 
@@ -58,9 +59,42 @@ Main class, includes all other classes.
 
 #### Parameters
 
-The following parameters are available in the `apt` class.
-
-##### `provider`
+The following parameters are available in the `apt` class:
+
+* [`provider`](#provider)
+* [`keyserver`](#keyserver)
+* [`key_options`](#key_options)
+* [`ppa_options`](#ppa_options)
+* [`ppa_package`](#ppa_package)
+* [`backports`](#backports)
+* [`confs`](#confs)
+* [`update`](#update)
+* [`purge`](#purge)
+* [`proxy`](#proxy)
+* [`sources`](#sources)
+* [`keys`](#keys)
+* [`ppas`](#ppas)
+* [`pins`](#pins)
+* [`settings`](#settings)
+* [`manage_auth_conf`](#manage_auth_conf)
+* [`auth_conf_entries`](#auth_conf_entries)
+* [`auth_conf_owner`](#auth_conf_owner)
+* [`root`](#root)
+* [`sources_list`](#sources_list)
+* [`sources_list_d`](#sources_list_d)
+* [`conf_d`](#conf_d)
+* [`preferences`](#preferences)
+* [`preferences_d`](#preferences_d)
+* [`config_files`](#config_files)
+* [`sources_list_force`](#sources_list_force)
+* [`update_defaults`](#update_defaults)
+* [`purge_defaults`](#purge_defaults)
+* [`proxy_defaults`](#proxy_defaults)
+* [`include_defaults`](#include_defaults)
+* [`apt_conf_d`](#apt_conf_d)
+* [`source_key_defaults`](#source_key_defaults)
+
+##### <a name="provider"></a>`provider`
 
 Data type: `String`
 
@@ -68,7 +102,7 @@ Specifies the provider that should be used by apt::update.
 
 Default value: `$apt::params::provider`
 
-##### `keyserver`
+##### <a name="keyserver"></a>`keyserver`
 
 Data type: `String`
 
@@ -77,7 +111,7 @@ hkp://).
 
 Default value: `$apt::params::keyserver`
 
-##### `key_options`
+##### <a name="key_options"></a>`key_options`
 
 Data type: `Optional[String]`
 
@@ -85,7 +119,7 @@ Specifies the default options for apt::key resources.
 
 Default value: `$apt::params::key_options`
 
-##### `ppa_options`
+##### <a name="ppa_options"></a>`ppa_options`
 
 Data type: `Optional[String]`
 
@@ -93,7 +127,7 @@ Supplies options to be passed to the `add-apt-repository` command.
 
 Default value: `$apt::params::ppa_options`
 
-##### `ppa_package`
+##### <a name="ppa_package"></a>`ppa_package`
 
 Data type: `Optional[String]`
 
@@ -101,7 +135,7 @@ Names the package that provides the `apt-add-repository` command.
 
 Default value: `$apt::params::ppa_package`
 
-##### `backports`
+##### <a name="backports"></a>`backports`
 
 Data type: `Optional[Hash]`
 
@@ -115,7 +149,7 @@ Options:
 
 Default value: `$apt::params::backports`
 
-##### `confs`
+##### <a name="confs"></a>`confs`
 
 Data type: `Hash`
 
@@ -123,7 +157,7 @@ Creates new `apt::conf` resources. Valid options: a hash to be passed to the cre
 
 Default value: `$apt::params::confs`
 
-##### `update`
+##### <a name="update"></a>`update`
 
 Data type: `Hash`
 
@@ -141,7 +175,7 @@ Valid options: 'always' (at every Puppet run); 'daily' (if the value of `apt_upd
 
 Default value: `$apt::params::update`
 
-##### `purge`
+##### <a name="purge"></a>`purge`
 
 Data type: `Hash`
 
@@ -156,7 +190,7 @@ Options:
 
 Default value: `$apt::params::purge`
 
-##### `proxy`
+##### <a name="proxy"></a>`proxy`
 
 Data type: `Apt::Proxy`
 
@@ -164,7 +198,7 @@ Configures Apt to connect to a proxy server. Valid options: a hash matching the
 
 Default value: `$apt::params::proxy`
 
-##### `sources`
+##### <a name="sources"></a>`sources`
 
 Data type: `Hash`
 
@@ -172,7 +206,7 @@ Creates new `apt::source` resources. Valid options: a hash to be passed to the c
 
 Default value: `$apt::params::sources`
 
-##### `keys`
+##### <a name="keys"></a>`keys`
 
 Data type: `Hash`
 
@@ -180,7 +214,7 @@ Creates new `apt::key` resources. Valid options: a hash to be passed to the crea
 
 Default value: `$apt::params::keys`
 
-##### `ppas`
+##### <a name="ppas"></a>`ppas`
 
 Data type: `Hash`
 
@@ -188,7 +222,7 @@ Creates new `apt::ppa` resources. Valid options: a hash to be passed to the crea
 
 Default value: `$apt::params::ppas`
 
-##### `pins`
+##### <a name="pins"></a>`pins`
 
 Data type: `Hash`
 
@@ -196,7 +230,7 @@ Creates new `apt::pin` resources. Valid options: a hash to be passed to the crea
 
 Default value: `$apt::params::pins`
 
-##### `settings`
+##### <a name="settings"></a>`settings`
 
 Data type: `Hash`
 
@@ -204,7 +238,7 @@ Creates new `apt::setting` resources. Valid options: a hash to be passed to the
 
 Default value: `$apt::params::settings`
 
-##### `manage_auth_conf`
+##### <a name="manage_auth_conf"></a>`manage_auth_conf`
 
 Data type: `Boolean`
 
@@ -213,7 +247,7 @@ the auth_conf_entries parameter. When false, the file will be ignored (note that
 
 Default value: `$apt::params::manage_auth_conf`
 
-##### `auth_conf_entries`
+##### <a name="auth_conf_entries"></a>`auth_conf_entries`
 
 Data type: `Array[Apt::Auth_conf_entry]`
 
@@ -224,7 +258,7 @@ password and no others. Specifying manage_auth_conf and not specifying this para
 
 Default value: `$apt::params::auth_conf_entries`
 
-##### `auth_conf_owner`
+##### <a name="auth_conf_owner"></a>`auth_conf_owner`
 
 Data type: `String`
 
@@ -232,7 +266,7 @@ The owner of the file /etc/apt/auth.conf. Default: '_apt' or 'root' on old relea
 
 Default value: `$apt::params::auth_conf_owner`
 
-##### `root`
+##### <a name="root"></a>`root`
 
 Data type: `String`
 
@@ -240,7 +274,7 @@ Specifies root directory of Apt executable.
 
 Default value: `$apt::params::root`
 
-##### `sources_list`
+##### <a name="sources_list"></a>`sources_list`
 
 Data type: `String`
 
@@ -248,7 +282,7 @@ Specifies the path of the sources_list file to use.
 
 Default value: `$apt::params::sources_list`
 
-##### `sources_list_d`
+##### <a name="sources_list_d"></a>`sources_list_d`
 
 Data type: `String`
 
@@ -256,7 +290,7 @@ Specifies the path of the sources_list.d file to use.
 
 Default value: `$apt::params::sources_list_d`
 
-##### `conf_d`
+##### <a name="conf_d"></a>`conf_d`
 
 Data type: `String`
 
@@ -264,7 +298,7 @@ Specifies the path of the conf.d file to use.
 
 Default value: `$apt::params::conf_d`
 
-##### `preferences`
+##### <a name="preferences"></a>`preferences`
 
 Data type: `String`
 
@@ -272,7 +306,7 @@ Specifies the path of the preferences file to use.
 
 Default value: `$apt::params::preferences`
 
-##### `preferences_d`
+##### <a name="preferences_d"></a>`preferences_d`
 
 Data type: `String`
 
@@ -280,7 +314,7 @@ Specifies the path of the preferences.d file to use.
 
 Default value: `$apt::params::preferences_d`
 
-##### `config_files`
+##### <a name="config_files"></a>`config_files`
 
 Data type: `Hash`
 
@@ -288,7 +322,7 @@ A hash made up of the various configuration files used by Apt.
 
 Default value: `$apt::params::config_files`
 
-##### `sources_list_force`
+##### <a name="sources_list_force"></a>`sources_list_force`
 
 Data type: `Boolean`
 
@@ -296,7 +330,7 @@ Specifies whether to perform force purge or delete. Default false.
 
 Default value: `$apt::params::sources_list_force`
 
-##### `update_defaults`
+##### <a name="update_defaults"></a>`update_defaults`
 
 Data type: `Hash`
 
@@ -304,7 +338,7 @@ Data type: `Hash`
 
 Default value: `$apt::params::update_defaults`
 
-##### `purge_defaults`
+##### <a name="purge_defaults"></a>`purge_defaults`
 
 Data type: `Hash`
 
@@ -312,7 +346,7 @@ Data type: `Hash`
 
 Default value: `$apt::params::purge_defaults`
 
-##### `proxy_defaults`
+##### <a name="proxy_defaults"></a>`proxy_defaults`
 
 Data type: `Hash`
 
@@ -320,7 +354,7 @@ Data type: `Hash`
 
 Default value: `$apt::params::proxy_defaults`
 
-##### `include_defaults`
+##### <a name="include_defaults"></a>`include_defaults`
 
 Data type: `Hash`
 
@@ -328,7 +362,7 @@ Data type: `Hash`
 
 Default value: `$apt::params::include_defaults`
 
-##### `apt_conf_d`
+##### <a name="apt_conf_d"></a>`apt_conf_d`
 
 Data type: `String`
 
@@ -336,15 +370,20 @@ Data type: `String`
 
 Default value: `$apt::params::apt_conf_d`
 
-##### `source_key_defaults`
+##### <a name="source_key_defaults"></a>`source_key_defaults`
 
 Data type: `Hash`
 
 
 
-Default value: `$apt::params::source_key_defaults`
+Default value: `{
+    'server'  => $keyserver,
+    'options' => undef,
+    'content' => undef,
+    'source'  => undef,
+  }`
 
-### `apt::backports`
+### <a name="aptbackports"></a>`apt::backports`
 
 Manages backports.
 
@@ -359,16 +398,23 @@ class { 'apt::backports':
   repos    => 'main universe multiverse restricted',
   key      => {
     id     => '630239CC130E1A7FD81A27B140976EAF437D05B5',
-    server => 'hkps.pool.sks-keyservers.net',
+    server => 'keyserver.ubuntu.com',
   },
 }
 ```
 
 #### Parameters
 
-The following parameters are available in the `apt::backports` class.
+The following parameters are available in the `apt::backports` class:
+
+* [`location`](#location)
+* [`release`](#release)
+* [`repos`](#repos)
+* [`key`](#key)
+* [`pin`](#pin)
+* [`include`](#include)
 
-##### `location`
+##### <a name="location"></a>`location`
 
 Data type: `Optional[String]`
 
@@ -381,17 +427,17 @@ Ubuntu varies:
 
 Default value: ``undef``
 
-##### `release`
+##### <a name="release"></a>`release`
 
 Data type: `Optional[String]`
 
 Specifies a distribution of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file.
-Default: on Debian and Ubuntu, `${facts['os']['distro']['codename']}-backports`. We recommend keeping this default, except on other operating
+Default: on Debian and Ubuntu, `${fact('os.distro.codename')}-backports`. We recommend keeping this default, except on other operating
 systems.
 
 Default value: ``undef``
 
-##### `repos`
+##### <a name="repos"></a>`repos`
 
 Data type: `Optional[String]`
 
@@ -404,7 +450,7 @@ Default value for Debian and Ubuntu varies:
 
 Default value: ``undef``
 
-##### `key`
+##### <a name="key"></a>`key`
 
 Data type: `Optional[Variant[String, Hash]]`
 
@@ -418,7 +464,7 @@ for Debian and Ubuntu varies:
 
 Default value: ``undef``
 
-##### `pin`
+##### <a name="pin"></a>`pin`
 
 Data type: `Optional[Variant[Integer, String, Hash]]`
 
@@ -427,7 +473,7 @@ type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corre
 
 Default value: `200`
 
-##### `include`
+##### <a name="include"></a>`include`
 
 Data type: `Optional[Variant[Hash]]`
 
@@ -437,15 +483,20 @@ Default value: `{}`
 
 ## Defined types
 
-### `apt::conf`
+### <a name="aptconf"></a>`apt::conf`
 
 Specifies a custom Apt configuration file.
 
 #### Parameters
 
-The following parameters are available in the `apt::conf` defined type.
+The following parameters are available in the `apt::conf` defined type:
 
-##### `content`
+* [`content`](#content)
+* [`ensure`](#ensure)
+* [`priority`](#priority)
+* [`notify_update`](#notify_update)
+
+##### <a name="content"></a>`content`
 
 Data type: `Optional[String]`
 
@@ -453,7 +504,7 @@ Required unless `ensure` is set to 'absent'. Directly supplies content for the c
 
 Default value: ``undef``
 
-##### `ensure`
+##### <a name="ensure"></a>`ensure`
 
 Data type: `Enum['present', 'absent']`
 
@@ -461,7 +512,7 @@ Specifies whether the configuration file should exist. Valid options: 'present'
 
 Default value: `present`
 
-##### `priority`
+##### <a name="priority"></a>`priority`
 
 Data type: `Variant[String, Integer]`
 
@@ -470,7 +521,7 @@ Valid options: a string containing an integer or an integer.
 
 Default value: `50`
 
-##### `notify_update`
+##### <a name="notify_update"></a>`notify_update`
 
 Data type: `Optional[Boolean]`
 
@@ -478,7 +529,7 @@ Specifies whether to trigger an `apt-get update` run.
 
 Default value: ``undef``
 
-### `apt::key`
+### <a name="aptkey"></a>`apt::key`
 
 Manages the GPG keys that Apt uses to authenticate packages.
 
@@ -491,16 +542,24 @@ Manages the GPG keys that Apt uses to authenticate packages.
 ```puppet
 apt::key { 'puppetlabs':
   id      => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
-  server  => 'hkps.pool.sks-keyservers.net',
+  server  => 'keyserver.ubuntu.com',
   options => 'http-proxy="http://proxyuser:proxypass@example.org:3128"',
 }
 ```
 
 #### Parameters
 
-The following parameters are available in the `apt::key` defined type.
+The following parameters are available in the `apt::key` defined type:
+
+* [`id`](#id)
+* [`ensure`](#ensure)
+* [`content`](#content)
+* [`source`](#source)
+* [`server`](#server)
+* [`weak_ssl`](#weak_ssl)
+* [`options`](#options)
 
-##### `id`
+##### <a name="id"></a>`id`
 
 Data type: `Pattern[/\A(0x)?[0-9a-fA-F]{8}\Z/, /\A(0x)?[0-9a-fA-F]{16}\Z/, /\A(0x)?[0-9a-fA-F]{40}\Z/]`
 
@@ -509,7 +568,7 @@ characters, optionally prefixed with "0x") or a full key fingerprint (40 hexadec
 
 Default value: `$title`
 
-##### `ensure`
+##### <a name="ensure"></a>`ensure`
 
 Data type: `Enum['present', 'absent', 'refreshed']`
 
@@ -518,7 +577,7 @@ update when they have expired (assuming a new key exists on the key server).
 
 Default value: `present`
 
-##### `content`
+##### <a name="content"></a>`content`
 
 Data type: `Optional[String]`
 
@@ -526,7 +585,7 @@ Supplies the entire GPG key. Useful in case the key can't be fetched from a remo
 
 Default value: ``undef``
 
-##### `source`
+##### <a name="source"></a>`source`
 
 Data type: `Optional[Pattern[/\Ahttps?:\/\//, /\Aftp:\/\//, /\A\/\w+/]]`
 
@@ -535,7 +594,7 @@ an absolute path.
 
 Default value: ``undef``
 
-##### `server`
+##### <a name="server"></a>`server`
 
 Data type: `Pattern[/\A((hkp|hkps|http|https):\/\/)?([a-z\d])([a-z\d-]{0,61}\.)+[a-z\d]+(:\d{2,5})?(\/[a-zA-Z\d\-_.]+)*\/?$/]`
 
@@ -544,7 +603,7 @@ hkp:// or hkps://). The hkps:// protocol is currently only supported on Ubuntu 1
 
 Default value: `$::apt::keyserver`
 
-##### `weak_ssl`
+##### <a name="weak_ssl"></a>`weak_ssl`
 
 Data type: `Boolean`
 
@@ -552,7 +611,7 @@ Specifies whether strict SSL verification on a https URL should be disabled. Val
 
 Default value: ``false``
 
-##### `options`
+##### <a name="options"></a>`options`
 
 Data type: `Optional[String]`
 
@@ -560,23 +619,25 @@ Passes additional options to `apt-key adv --keyserver-options`.
 
 Default value: `$::apt::key_options`
 
-### `apt::mark`
+### <a name="aptmark"></a>`apt::mark`
 
-defined typeapt::mark
+Manages apt-mark settings
 
 #### Parameters
 
-The following parameters are available in the `apt::mark` defined type.
+The following parameters are available in the `apt::mark` defined type:
 
-##### `setting`
+* [`setting`](#setting)
+
+##### <a name="setting"></a>`setting`
 
 Data type: `Enum['auto','manual','hold','unhold']`
 
 auto, manual, hold, unhold
 specifies the behavior of apt in case of no more dependencies installed
-https://manpages.debian.org/sretch/apt/apt-mark.8.en.html
+https://manpages.debian.org/stable/apt/apt-mark.8.en.html
 
-### `apt::pin`
+### <a name="aptpin"></a>`apt::pin`
 
 Manages Apt pins. Does not trigger an apt-get update run.
 
@@ -586,9 +647,23 @@ Manages Apt pins. Does not trigger an apt-get update run.
 
 #### Parameters
 
-The following parameters are available in the `apt::pin` defined type.
+The following parameters are available in the `apt::pin` defined type:
+
+* [`ensure`](#ensure)
+* [`explanation`](#explanation)
+* [`order`](#order)
+* [`packages`](#packages)
+* [`priority`](#priority)
+* [`release`](#release)
+* [`release_version`](#release_version)
+* [`component`](#component)
+* [`originator`](#originator)
+* [`label`](#label)
+* [`origin`](#origin)
+* [`version`](#version)
+* [`codename`](#codename)
 
-##### `ensure`
+##### <a name="ensure"></a>`ensure`
 
 Data type: `Optional[Enum['file', 'present', 'absent']]`
 
@@ -596,7 +671,7 @@ Specifies whether the pin should exist. Valid options: 'file', 'present', and 'a
 
 Default value: `present`
 
-##### `explanation`
+##### <a name="explanation"></a>`explanation`
 
 Data type: `Optional[String]`
 
@@ -604,7 +679,7 @@ Supplies a comment to explain the pin. Default: "${caller_module_name}: ${name}"
 
 Default value: ``undef``
 
-##### `order`
+##### <a name="order"></a>`order`
 
 Data type: `Variant[Integer]`
 
@@ -612,7 +687,7 @@ Determines the order in which Apt processes the pin file. Files with lower order
 
 Default value: `50`
 
-##### `packages`
+##### <a name="packages"></a>`packages`
 
 Data type: `Variant[String, Array]`
 
@@ -620,7 +695,7 @@ Specifies which package(s) to pin.
 
 Default value: `'*'`
 
-##### `priority`
+##### <a name="priority"></a>`priority`
 
 Data type: `Variant[Numeric, String]`
 
@@ -629,7 +704,7 @@ priority number (subject to dependency constraints). Valid options: an integer.
 
 Default value: `0`
 
-##### `release`
+##### <a name="release"></a>`release`
 
 Data type: `Optional[String]`
 
@@ -637,7 +712,7 @@ Tells APT to prefer packages that support the specified release. Typical values
 
 Default value: `''`
 
-##### `release_version`
+##### <a name="release_version"></a>`release_version`
 
 Data type: `Optional[String]`
 
@@ -645,7 +720,7 @@ Tells APT to prefer packages that support the specified operating system release
 
 Default value: `''`
 
-##### `component`
+##### <a name="component"></a>`component`
 
 Data type: `Optional[String]`
 
@@ -653,7 +728,7 @@ Names the licensing component associated with the packages in the directory tree
 
 Default value: `''`
 
-##### `originator`
+##### <a name="originator"></a>`originator`
 
 Data type: `Optional[String]`
 
@@ -661,7 +736,7 @@ Names the originator of the packages in the directory tree of the Release file.
 
 Default value: `''`
 
-##### `label`
+##### <a name="label"></a>`label`
 
 Data type: `Optional[String]`
 
@@ -669,7 +744,7 @@ Names the label of the packages in the directory tree of the Release file.
 
 Default value: `''`
 
-##### `origin`
+##### <a name="origin"></a>`origin`
 
 Data type: `Optional[String]`
 
@@ -677,7 +752,7 @@ Data type: `Optional[String]`
 
 Default value: `''`
 
-##### `version`
+##### <a name="version"></a>`version`
 
 Data type: `Optional[String]`
 
@@ -685,7 +760,7 @@ Data type: `Optional[String]`
 
 Default value: `''`
 
-##### `codename`
+##### <a name="codename"></a>`codename`
 
 Data type: `Optional[String]`
 
@@ -693,7 +768,7 @@ Data type: `Optional[String]`
 
 Default value: `''`
 
-### `apt::ppa`
+### <a name="aptppa"></a>`apt::ppa`
 
 Manages PPA repositories using `add-apt-repository`. Not supported on Debian.
 
@@ -707,9 +782,16 @@ apt::ppa{ 'ppa:openstack-ppa/bleeding-edge': }
 
 #### Parameters
 
-The following parameters are available in the `apt::ppa` defined type.
+The following parameters are available in the `apt::ppa` defined type:
 
-##### `ensure`
+* [`ensure`](#ensure)
+* [`options`](#options)
+* [`release`](#release)
+* [`dist`](#dist)
+* [`package_name`](#package_name)
+* [`package_manage`](#package_manage)
+
+##### <a name="ensure"></a>`ensure`
 
 Data type: `String`
 
@@ -717,7 +799,7 @@ Specifies whether the PPA should exist. Valid options: 'present' and 'absent'.
 
 Default value: `'present'`
 
-##### `options`
+##### <a name="options"></a>`options`
 
 Data type: `Optional[String]`
 
@@ -725,16 +807,16 @@ Supplies options to be passed to the `add-apt-repository` command. Default: '-y'
 
 Default value: `$::apt::ppa_options`
 
-##### `release`
+##### <a name="release"></a>`release`
 
 Data type: `Optional[String]`
 
 Specifies the operating system of your node. Valid options: a string containing a valid LSB distribution codename.
 Optional if `puppet facts show os.distro.codename` returns your correct distribution release codename.
 
-Default value: `$facts['os']['distro']['codename']`
+Default value: `fact('os.distro.codename')`
 
-##### `dist`
+##### <a name="dist"></a>`dist`
 
 Data type: `Optional[String]`
 
@@ -743,7 +825,7 @@ Optional if `puppet facts show os.name` returns your correct distribution name.
 
 Default value: `$facts['os']['name']`
 
-##### `package_name`
+##### <a name="package_name"></a>`package_name`
 
 Data type: `Optional[String]`
 
@@ -751,7 +833,7 @@ Names the package that provides the `apt-add-repository` command. Default: 'soft
 
 Default value: `$::apt::ppa_package`
 
-##### `package_manage`
+##### <a name="package_manage"></a>`package_manage`
 
 Data type: `Boolean`
 
@@ -759,7 +841,7 @@ Specifies whether Puppet should manage the package that provides `apt-add-reposi
 
 Default value: ``false``
 
-### `apt::setting`
+### <a name="aptsetting"></a>`apt::setting`
 
 Manages Apt configuration files.
 
@@ -769,9 +851,15 @@ Manages Apt configuration files.
 
 #### Parameters
 
-The following parameters are available in the `apt::setting` defined type.
+The following parameters are available in the `apt::setting` defined type:
+
+* [`priority`](#priority)
+* [`ensure`](#ensure)
+* [`source`](#source)
+* [`content`](#content)
+* [`notify_update`](#notify_update)
 
-##### `priority`
+##### <a name="priority"></a>`priority`
 
 Data type: `Variant[String, Integer, Array]`
 
@@ -779,7 +867,7 @@ Determines the order in which Apt processes the configuration file. Files with h
 
 Default value: `50`
 
-##### `ensure`
+##### <a name="ensure"></a>`ensure`
 
 Data type: `Optional[Enum['file', 'present', 'absent']]`
 
@@ -787,7 +875,7 @@ Specifies whether the file should exist. Valid options: 'present', 'absent', and
 
 Default value: `file`
 
-##### `source`
+##### <a name="source"></a>`source`
 
 Data type: `Optional[String]`
 
@@ -796,7 +884,7 @@ with `content`. Valid options: see link above for Puppet's native file type sour
 
 Default value: ``undef``
 
-##### `content`
+##### <a name="content"></a>`content`
 
 Data type: `Optional[String]`
 
@@ -805,7 +893,7 @@ options: see link above for Puppet's native file type content attribute.
 
 Default value: ``undef``
 
-##### `notify_update`
+##### <a name="notify_update"></a>`notify_update`
 
 Data type: `Boolean`
 
@@ -813,7 +901,7 @@ Specifies whether to trigger an `apt-get update` run.
 
 Default value: ``true``
 
-### `apt::source`
+### <a name="aptsource"></a>`apt::source`
 
 Manages the Apt sources in /etc/apt/sources.list.d/.
 
@@ -827,16 +915,31 @@ apt::source { 'puppetlabs':
   repos    => 'main',
   key      => {
     id     => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
-    server => 'hkps.pool.sks-keyservers.net',
+    server => 'keyserver.ubuntu.com',
   },
 }
 ```
 
 #### Parameters
 
-The following parameters are available in the `apt::source` defined type.
-
-##### `location`
+The following parameters are available in the `apt::source` defined type:
+
+* [`location`](#location)
+* [`comment`](#comment)
+* [`ensure`](#ensure)
+* [`release`](#release)
+* [`repos`](#repos)
+* [`include`](#include)
+* [`key`](#key)
+* [`keyring`](#keyring)
+* [`pin`](#pin)
+* [`architecture`](#architecture)
+* [`allow_unsigned`](#allow_unsigned)
+* [`notify_update`](#notify_update)
+* [`allow_insecure`](#allow_insecure)
+* [`check_valid_until`](#check_valid_until)
+
+##### <a name="location"></a>`location`
 
 Data type: `Optional[String]`
 
@@ -844,7 +947,7 @@ Required, unless ensure is set to 'absent'. Specifies an Apt repository. Valid o
 
 Default value: ``undef``
 
-##### `comment`
+##### <a name="comment"></a>`comment`
 
 Data type: `String`
 
@@ -852,7 +955,7 @@ Supplies a comment for adding to the Apt source file.
 
 Default value: `$name`
 
-##### `ensure`
+##### <a name="ensure"></a>`ensure`
 
 Data type: `String`
 
@@ -860,7 +963,7 @@ Specifies whether the Apt source file should exist. Valid options: 'present' and
 
 Default value: `present`
 
-##### `release`
+##### <a name="release"></a>`release`
 
 Data type: `Optional[String]`
 
@@ -868,7 +971,7 @@ Specifies a distribution of the Apt repository.
 
 Default value: ``undef``
 
-##### `repos`
+##### <a name="repos"></a>`repos`
 
 Data type: `String`
 
@@ -876,7 +979,7 @@ Specifies a component of the Apt repository.
 
 Default value: `'main'`
 
-##### `include`
+##### <a name="include"></a>`include`
 
 Data type: `Optional[Variant[Hash]]`
 
@@ -889,17 +992,26 @@ Options:
 
 Default value: `{}`
 
-##### `key`
+##### <a name="key"></a>`key`
 
 Data type: `Optional[Variant[String, Hash]]`
 
 Creates a declaration of the apt::key defined type. Valid options: a string to be passed to the `id` parameter of the `apt::key`
-defined type, or a hash of `parameter => value` pairs to be passed to `apt::key`'s `id`, `server`, `content`, `source`, and/or
-`options` parameters.
+defined type, or a hash of `parameter => value` pairs to be passed to `apt::key`'s `id`, `server`, `content`, `source`, `weak_ssl`,
+and/or `options` parameters.
 
 Default value: ``undef``
 
-##### `pin`
+##### <a name="keyring"></a>`keyring`
+
+Data type: `Optional[Stdlib::AbsolutePath]`
+
+Absolute path to a file containing the PGP keyring used to sign this repository. Value is used to set signed-by on the source entry.
+See https://wiki.debian.org/DebianRepository/UseThirdParty for details.
+
+Default value: ``undef``
+
+##### <a name="pin"></a>`pin`
 
 Data type: `Optional[Variant[Hash, Numeric, String]]`
 
@@ -908,7 +1020,7 @@ Creates a declaration of the apt::pin defined type. Valid options: a number or s
 
 Default value: ``undef``
 
-##### `architecture`
+##### <a name="architecture"></a>`architecture`
 
 Data type: `Optional[String]`
 
@@ -918,7 +1030,7 @@ defined in the Apt::Architectures option).
 
 Default value: ``undef``
 
-##### `allow_unsigned`
+##### <a name="allow_unsigned"></a>`allow_unsigned`
 
 Data type: `Boolean`
 
@@ -926,7 +1038,7 @@ Specifies whether to authenticate packages from this release, even if the Releas
 
 Default value: ``false``
 
-##### `notify_update`
+##### <a name="notify_update"></a>`notify_update`
 
 Data type: `Boolean`
 
@@ -934,11 +1046,27 @@ Specifies whether to trigger an `apt-get update` run.
 
 Default value: ``true``
 
+##### <a name="allow_insecure"></a>`allow_insecure`
+
+Data type: `Boolean`
+
+Specifies whether to allow downloads from insecure repositories.
+
+Default value: ``false``
+
+##### <a name="check_valid_until"></a>`check_valid_until`
+
+Data type: `Boolean`
+
+Specifies whether to check if the package release date is valid. Defaults to `True`.
+
+Default value: ``true``
+
 ## Resource types
 
 ## Data types
 
-### `Apt::Auth_conf_entry`
+### <a name="aptauth_conf_entry"></a>`Apt::Auth_conf_entry`
 
 Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
 
@@ -946,68 +1074,133 @@ Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
   * https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html
   * for more information
 
-Alias of `Struct[{
+Alias of
+
+```puppet
+Struct[{
     machine => String[1],
     login => String,
     password => String
-  }]`
+  }]
+```
 
 #### Parameters
 
-The following parameters are available in the `Apt::Auth_conf_entry` data type.
+The following parameters are available in the `Apt::Auth_conf_entry` data type:
+
+* [`machine`](#machine)
+* [`login`](#login)
+* [`password`](#password)
 
-##### `machine`
+##### <a name="machine"></a>`machine`
 
 Hostname of machine to connect to.
 
-##### `login`
+##### <a name="login"></a>`login`
 
 Specifies the username to connect with.
 
-##### `password`
+##### <a name="password"></a>`password`
 
 Specifies the password to connect with.
 
-### `Apt::Proxy`
+### <a name="aptproxy"></a>`Apt::Proxy`
 
 Configures Apt to connect to a proxy server.
 
-Alias of `Struct[{
+Alias of
+
+```puppet
+Struct[{
     ensure     => Optional[Enum['file', 'present', 'absent']],
     host       => Optional[String],
     port       => Optional[Integer[0, 65535]],
     https      => Optional[Boolean],
     https_acng => Optional[Boolean],
     direct     => Optional[Boolean],
-  }]`
+    perhost    => Optional[Array[Apt::Proxy_Per_Host]],
+  }]
+```
 
 #### Parameters
 
-The following parameters are available in the `Apt::Proxy` data type.
+The following parameters are available in the `Apt::Proxy` data type:
+
+* [`ensure`](#ensure)
+* [`host`](#host)
+* [`port`](#port)
+* [`https`](#https)
+* [`direct`](#direct)
 
-##### `ensure`
+##### <a name="ensure"></a>`ensure`
 
 Specifies whether the proxy should exist. Valid options: 'file', 'present', and 'absent'. Prefer 'file' over 'present'.
 
-##### `host`
+##### <a name="host"></a>`host`
 
 Specifies a proxy host to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: a string containing a hostname.
 
-##### `port`
+##### <a name="port"></a>`port`
 
 Specifies a proxy port to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: an integer containing a port number.
 
-##### `https`
+##### <a name="https"></a>`https`
 
 Specifies whether to enable https proxies.
 
-##### `direct`
+##### <a name="direct"></a>`direct`
 
 Specifies whether or not to use a `DIRECT` https proxy if http proxy is used but https is not.
 
+### <a name="aptproxy_per_host"></a>`Apt::Proxy_Per_Host`
+
+Adds per-host overrides to the system default APT proxy configuration
+
+Alias of
+
+```puppet
+Struct[{
+    scope      => String,
+    host       => Optional[String],
+    port       => Optional[Integer[1, 65535]],
+    https      => Optional[Boolean],
+    direct     => Optional[Boolean],
+  }]
+```
+
+#### Parameters
+
+The following parameters are available in the `Apt::Proxy_Per_Host` data type:
+
+* [`scope`](#scope)
+* [`host`](#host)
+* [`port`](#port)
+* [`https`](#https)
+* [`direct`](#direct)
+
+##### <a name="scope"></a>`scope`
+
+Specifies the scope of the override.  Valid options: a string containing a hostname.
+
+##### <a name="host"></a>`host`
+
+Specifies a proxy host to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: a string containing a hostname.
+
+##### <a name="port"></a>`port`
+
+Specifies a proxy port to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: an integer containing a port number.
+
+##### <a name="https"></a>`https`
+
+Specifies whether to enable https for this override.
+
+##### <a name="direct"></a>`direct`
+
+Specifies whether or not to use a `DIRECT` target to bypass the system default proxy.
+
 ## Tasks
 
-### `init`
+### <a name="init"></a>`init`
 
 Allows you to perform apt functions