view modules/apt/REFERENCE.md @ 465:f6304a8e2adc

Try to fix last day of month HTTP LogWatch LogWatch runs for yesterday's data. And we rotate and zip web logs on the 1st of the month. So on the 1st, when generating the summary for the last day of the month, we need to look at a gzipped file, not the current or old-unzipped file.
author IBBoard <dev@ibboard.co.uk>
date Sun, 25 Feb 2024 09:56:16 +0000
parents 3fce34f642f1
children adf6fe9bbc17
line wrap: on
line source

# Reference

<!-- DO NOT EDIT: This document was generated by Puppet Strings -->

## Table of Contents

### Classes

#### Public Classes

* [`apt`](#apt): Main class, includes all other classes.
* [`apt::backports`](#aptbackports): Manages backports.

#### Private Classes

* `apt::params`: Provides defaults for the Apt module parameters.
* `apt::update`: Updates the list of available packages using apt-get update.

### Defined types

* [`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): 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.
* [`apt::source`](#aptsource): Manages the Apt sources in /etc/apt/sources.list.d/.

### Resource types

#### Public Resource types


#### Private Resource types

* `apt_key`: This type provides Puppet with the capabilities to manage GPG keys needed
by apt to perform package validation. Apt has it's own GPG keyring that can
be manipulated through the `apt-key` command.

### Data types

* [`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

* [`init`](#init): Allows you to perform apt functions

## Classes

### <a name="apt"></a>`apt`

Main class, includes all other classes.

* **See also**
  * https://docs.puppetlabs.com/references/latest/function.html#createresources
    * for the create resource function

#### Parameters

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`

Specifies the provider that should be used by apt::update.

Default value: `$apt::params::provider`

##### <a name="keyserver"></a>`keyserver`

Data type: `String`

Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://, or
hkp://).

Default value: `$apt::params::keyserver`

##### <a name="key_options"></a>`key_options`

Data type: `Optional[String]`

Specifies the default options for apt::key resources.

Default value: `$apt::params::key_options`

##### <a name="ppa_options"></a>`ppa_options`

Data type: `Optional[String]`

Supplies options to be passed to the `add-apt-repository` command.

Default value: `$apt::params::ppa_options`

##### <a name="ppa_package"></a>`ppa_package`

Data type: `Optional[String]`

Names the package that provides the `apt-add-repository` command.

Default value: `$apt::params::ppa_package`

##### <a name="backports"></a>`backports`

Data type: `Optional[Hash]`

Specifies some of the default parameters used by apt::backports. Valid options: a hash made up from the following keys:

Options:

* **:location** `String`: See apt::backports for documentation.
* **:repos** `String`: See apt::backports for documentation.
* **:key** `String`: See apt::backports for documentation.

Default value: `$apt::params::backports`

##### <a name="confs"></a>`confs`

Data type: `Hash`

Creates new `apt::conf` resources. Valid options: a hash to be passed to the create_resources function linked above.

Default value: `$apt::params::confs`

##### <a name="update"></a>`update`

Data type: `Hash`

Configures various update settings. Valid options: a hash made up from the following keys:

Options:

* **:frequency** `String`: Specifies how often to run `apt-get update`. If the exec resource `apt_update` is notified, `apt-get update` runs regardless of this value.
Valid options: 'always' (at every Puppet run); 'daily' (if the value of `apt_update_last_success` is less than current epoch time minus 86400);
'weekly' (if the value of `apt_update_last_success` is less than current epoch time minus 604800); and 'reluctantly' (only if the exec resource
`apt_update` is notified). Default: 'reluctantly'.
* **:loglevel** `Integer`: Specifies the log level of logs outputted to the console. Default: undef.
* **:timeout** `Integer`: Specifies how long to wait for the update to complete before canceling it. Valid options: an integer, in seconds. Default: undef.
* **:tries** `Integer`: Specifies how many times to retry the update after receiving a DNS or HTTP error. Default: undef.

Default value: `$apt::params::update`

##### <a name="purge"></a>`purge`

Data type: `Hash`

Specifies whether to purge any existing settings that aren't managed by Puppet. Valid options: a hash made up from the following keys:

Options:

* **:sources.list** `Boolean`: Specifies whether to purge any unmanaged entries from sources.list. Default false.
* **:sources.list.d** `Boolean`: Specifies whether to purge any unmanaged entries from sources.list.d. Default false.
* **:preferences** `Boolean`: Specifies whether to purge any unmanaged entries from preferences. Default false.
* **:preferences.d.** `Boolean`: Specifies whether to purge any unmanaged entries from preferences.d. Default false.

Default value: `$apt::params::purge`

##### <a name="proxy"></a>`proxy`

Data type: `Apt::Proxy`

Configures Apt to connect to a proxy server. Valid options: a hash matching the locally defined type apt::proxy.

Default value: `$apt::params::proxy`

##### <a name="sources"></a>`sources`

Data type: `Hash`

Creates new `apt::source` resources. Valid options: a hash to be passed to the create_resources function linked above.

Default value: `$apt::params::sources`

##### <a name="keys"></a>`keys`

Data type: `Hash`

Creates new `apt::key` resources. Valid options: a hash to be passed to the create_resources function linked above.

Default value: `$apt::params::keys`

##### <a name="ppas"></a>`ppas`

Data type: `Hash`

Creates new `apt::ppa` resources. Valid options: a hash to be passed to the create_resources function linked above.

Default value: `$apt::params::ppas`

##### <a name="pins"></a>`pins`

Data type: `Hash`

Creates new `apt::pin` resources. Valid options: a hash to be passed to the create_resources function linked above.

Default value: `$apt::params::pins`

##### <a name="settings"></a>`settings`

Data type: `Hash`

Creates new `apt::setting` resources. Valid options: a hash to be passed to the create_resources function linked above.

Default value: `$apt::params::settings`

##### <a name="manage_auth_conf"></a>`manage_auth_conf`

Data type: `Boolean`

Specifies whether to manage the /etc/apt/auth.conf file. When true, the file will be overwritten with the entries specified in
the auth_conf_entries parameter. When false, the file will be ignored (note that this does not set the file to absent.

Default value: `$apt::params::manage_auth_conf`

##### <a name="auth_conf_entries"></a>`auth_conf_entries`

Data type: `Array[Apt::Auth_conf_entry]`

An optional array of login configuration settings (hashes) that are recorded in the file /etc/apt/auth.conf. This file has a netrc-like
format (similar to what curl uses) and contains the login configuration for APT sources and proxies that require authentication. See
https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html for details. If specified each hash must contain the keys machine, login and
password and no others. Specifying manage_auth_conf and not specifying this parameter will set /etc/apt/auth.conf to absent.

Default value: `$apt::params::auth_conf_entries`

##### <a name="auth_conf_owner"></a>`auth_conf_owner`

Data type: `String`

The owner of the file /etc/apt/auth.conf. Default: '_apt' or 'root' on old releases.

Default value: `$apt::params::auth_conf_owner`

##### <a name="root"></a>`root`

Data type: `String`

Specifies root directory of Apt executable.

Default value: `$apt::params::root`

##### <a name="sources_list"></a>`sources_list`

Data type: `String`

Specifies the path of the sources_list file to use.

Default value: `$apt::params::sources_list`

##### <a name="sources_list_d"></a>`sources_list_d`

Data type: `String`

Specifies the path of the sources_list.d file to use.

Default value: `$apt::params::sources_list_d`

##### <a name="conf_d"></a>`conf_d`

Data type: `String`

Specifies the path of the conf.d file to use.

Default value: `$apt::params::conf_d`

##### <a name="preferences"></a>`preferences`

Data type: `String`

Specifies the path of the preferences file to use.

Default value: `$apt::params::preferences`

##### <a name="preferences_d"></a>`preferences_d`

Data type: `String`

Specifies the path of the preferences.d file to use.

Default value: `$apt::params::preferences_d`

##### <a name="config_files"></a>`config_files`

Data type: `Hash`

A hash made up of the various configuration files used by Apt.

Default value: `$apt::params::config_files`

##### <a name="sources_list_force"></a>`sources_list_force`

Data type: `Boolean`

Specifies whether to perform force purge or delete. Default false.

Default value: `$apt::params::sources_list_force`

##### <a name="update_defaults"></a>`update_defaults`

Data type: `Hash`



Default value: `$apt::params::update_defaults`

##### <a name="purge_defaults"></a>`purge_defaults`

Data type: `Hash`



Default value: `$apt::params::purge_defaults`

##### <a name="proxy_defaults"></a>`proxy_defaults`

Data type: `Hash`



Default value: `$apt::params::proxy_defaults`

##### <a name="include_defaults"></a>`include_defaults`

Data type: `Hash`



Default value: `$apt::params::include_defaults`

##### <a name="apt_conf_d"></a>`apt_conf_d`

Data type: `String`



Default value: `$apt::params::apt_conf_d`

##### <a name="source_key_defaults"></a>`source_key_defaults`

Data type: `Hash`



Default value: `{
    'server'  => $keyserver,
    'options' => undef,
    'content' => undef,
    'source'  => undef,
  }`

### <a name="aptbackports"></a>`apt::backports`

Manages backports.

#### Examples

##### Set up a backport source for Linux Mint qiana

```puppet
class { 'apt::backports':
  location => 'http://us.archive.ubuntu.com/ubuntu',
  release  => 'trusty-backports',
  repos    => 'main universe multiverse restricted',
  key      => {
    id     => '630239CC130E1A7FD81A27B140976EAF437D05B5',
    server => 'keyserver.ubuntu.com',
  },
}
```

#### Parameters

The following parameters are available in the `apt::backports` class:

* [`location`](#location)
* [`release`](#release)
* [`repos`](#repos)
* [`key`](#key)
* [`pin`](#pin)
* [`include`](#include)

##### <a name="location"></a>`location`

Data type: `Optional[String]`

Specifies an Apt repository containing the backports to manage. Valid options: a string containing a URL. Default value for Debian and
Ubuntu varies:

- Debian: 'http://deb.debian.org/debian'

- Ubuntu: 'http://archive.ubuntu.com/ubuntu'

Default value: ``undef``

##### <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
systems.

Default value: ``undef``

##### <a name="repos"></a>`repos`

Data type: `Optional[String]`

Specifies a component of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file.
Default value for Debian and Ubuntu varies:

- Debian: 'main contrib non-free'

- Ubuntu: 'main universe multiverse restricted'

Default value: ``undef``

##### <a name="key"></a>`key`

Data type: `Optional[Variant[String, Hash]]`

Specifies a key to authenticate the backports. 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. Default value
for Debian and Ubuntu varies:

- Debian: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553'

- Ubuntu: '630239CC130E1A7FD81A27B140976EAF437D05B5'

Default value: ``undef``

##### <a name="pin"></a>`pin`

Data type: `Optional[Variant[Integer, String, Hash]]`

Specifies a pin priority for the backports. Valid options: a number or string to be passed to the `id` parameter of the `apt::pin` defined
type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters.

Default value: `200`

##### <a name="include"></a>`include`

Data type: `Optional[Variant[Hash]]`

Specifies whether to include 'deb' or 'src', or both.

Default value: `{}`

## Defined types

### <a name="aptconf"></a>`apt::conf`

Specifies a custom Apt configuration file.

#### Parameters

The following parameters are available in the `apt::conf` defined type:

* [`content`](#content)
* [`ensure`](#ensure)
* [`priority`](#priority)
* [`notify_update`](#notify_update)

##### <a name="content"></a>`content`

Data type: `Optional[String]`

Required unless `ensure` is set to 'absent'. Directly supplies content for the configuration file.

Default value: ``undef``

##### <a name="ensure"></a>`ensure`

Data type: `Enum['present', 'absent']`

Specifies whether the configuration file should exist. Valid options: 'present' and 'absent'.

Default value: `present`

##### <a name="priority"></a>`priority`

Data type: `Variant[String, Integer]`

Determines the order in which Apt processes the configuration file. Files with lower priority numbers are loaded first.
Valid options: a string containing an integer or an integer.

Default value: `50`

##### <a name="notify_update"></a>`notify_update`

Data type: `Optional[Boolean]`

Specifies whether to trigger an `apt-get update` run.

Default value: ``undef``

### <a name="aptkey"></a>`apt::key`

Manages the GPG keys that Apt uses to authenticate packages.

* **Note** The apt::key defined type makes use of the apt_key type, but includes extra functionality to help prevent duplicate keys.

#### Examples

##### Declare Apt key for apt.puppetlabs.com source

```puppet
apt::key { 'puppetlabs':
  id      => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
  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:

* [`id`](#id)
* [`ensure`](#ensure)
* [`content`](#content)
* [`source`](#source)
* [`server`](#server)
* [`weak_ssl`](#weak_ssl)
* [`options`](#options)

##### <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/]`

Specifies a GPG key to authenticate Apt package signatures. Valid options: a string containing a key ID (8 or 16 hexadecimal
characters, optionally prefixed with "0x") or a full key fingerprint (40 hexadecimal characters).

Default value: `$title`

##### <a name="ensure"></a>`ensure`

Data type: `Enum['present', 'absent', 'refreshed']`

Specifies whether the key should exist. Valid options: 'present', 'absent' or 'refreshed'. Using 'refreshed' will make keys auto
update when they have expired (assuming a new key exists on the key server).

Default value: `present`

##### <a name="content"></a>`content`

Data type: `Optional[String]`

Supplies the entire GPG key. Useful in case the key can't be fetched from a remote location and using a file resource is inconvenient.

Default value: ``undef``

##### <a name="source"></a>`source`

Data type: `Optional[Pattern[/\Ahttps?:\/\//, /\Aftp:\/\//, /\A\/\w+/]]`

Specifies the location of an existing GPG key file to copy. Valid options: a string containing a URL (ftp://, http://, or https://) or
an absolute path.

Default value: ``undef``

##### <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\-_.]+)*\/?$/]`

Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://,
hkp:// or hkps://). The hkps:// protocol is currently only supported on Ubuntu 18.04.

Default value: `$::apt::keyserver`

##### <a name="weak_ssl"></a>`weak_ssl`

Data type: `Boolean`

Specifies whether strict SSL verification on a https URL should be disabled. Valid options: true or false.

Default value: ``false``

##### <a name="options"></a>`options`

Data type: `Optional[String]`

Passes additional options to `apt-key adv --keyserver-options`.

Default value: `$::apt::key_options`

### <a name="aptmark"></a>`apt::mark`

Manages apt-mark settings

#### Parameters

The following parameters are available in the `apt::mark` defined type:

* [`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/stable/apt/apt-mark.8.en.html

### <a name="aptpin"></a>`apt::pin`

Manages Apt pins. Does not trigger an apt-get update run.

* **See also**
  * http://linux.die.net/man/5/apt_preferences
    * for context on these parameters

#### Parameters

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)

##### <a name="ensure"></a>`ensure`

Data type: `Optional[Enum['file', 'present', 'absent']]`

Specifies whether the pin should exist. Valid options: 'file', 'present', and 'absent'.

Default value: `present`

##### <a name="explanation"></a>`explanation`

Data type: `Optional[String]`

Supplies a comment to explain the pin. Default: "${caller_module_name}: ${name}".

Default value: ``undef``

##### <a name="order"></a>`order`

Data type: `Variant[Integer]`

Determines the order in which Apt processes the pin file. Files with lower order numbers are loaded first.

Default value: `50`

##### <a name="packages"></a>`packages`

Data type: `Variant[String, Array]`

Specifies which package(s) to pin.

Default value: `'*'`

##### <a name="priority"></a>`priority`

Data type: `Variant[Numeric, String]`

Sets the priority of the package. If multiple versions of a given package are available, `apt-get` installs the one with the highest
priority number (subject to dependency constraints). Valid options: an integer.

Default value: `0`

##### <a name="release"></a>`release`

Data type: `Optional[String]`

Tells APT to prefer packages that support the specified release. Typical values include 'stable', 'testing', and 'unstable'.

Default value: `''`

##### <a name="release_version"></a>`release_version`

Data type: `Optional[String]`

Tells APT to prefer packages that support the specified operating system release version (such as Debian release version 7).

Default value: `''`

##### <a name="component"></a>`component`

Data type: `Optional[String]`

Names the licensing component associated with the packages in the directory tree of the Release file.

Default value: `''`

##### <a name="originator"></a>`originator`

Data type: `Optional[String]`

Names the originator of the packages in the directory tree of the Release file.

Default value: `''`

##### <a name="label"></a>`label`

Data type: `Optional[String]`

Names the label of the packages in the directory tree of the Release file.

Default value: `''`

##### <a name="origin"></a>`origin`

Data type: `Optional[String]`



Default value: `''`

##### <a name="version"></a>`version`

Data type: `Optional[String]`



Default value: `''`

##### <a name="codename"></a>`codename`

Data type: `Optional[String]`



Default value: `''`

### <a name="aptppa"></a>`apt::ppa`

Manages PPA repositories using `add-apt-repository`. Not supported on Debian.

#### Examples

##### Example declaration of an Apt PPA

```puppet
apt::ppa{ 'ppa:openstack-ppa/bleeding-edge': }
```

#### Parameters

The following parameters are available in the `apt::ppa` defined type:

* [`ensure`](#ensure)
* [`options`](#options)
* [`release`](#release)
* [`dist`](#dist)
* [`package_name`](#package_name)
* [`package_manage`](#package_manage)

##### <a name="ensure"></a>`ensure`

Data type: `String`

Specifies whether the PPA should exist. Valid options: 'present' and 'absent'.

Default value: `'present'`

##### <a name="options"></a>`options`

Data type: `Optional[String]`

Supplies options to be passed to the `add-apt-repository` command. Default: '-y'.

Default value: `$::apt::ppa_options`

##### <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']`

##### <a name="dist"></a>`dist`

Data type: `Optional[String]`

Specifies the distribution of your node. Valid options: a string containing a valid distribution codename.
Optional if `puppet facts show os.name` returns your correct distribution name.

Default value: `$facts['os']['name']`

##### <a name="package_name"></a>`package_name`

Data type: `Optional[String]`

Names the package that provides the `apt-add-repository` command. Default: 'software-properties-common'.

Default value: `$::apt::ppa_package`

##### <a name="package_manage"></a>`package_manage`

Data type: `Boolean`

Specifies whether Puppet should manage the package that provides `apt-add-repository`.

Default value: ``false``

### <a name="aptsetting"></a>`apt::setting`

Manages Apt configuration files.

* **See also**
  * https://docs.puppetlabs.com/references/latest/type.html#file-attributes
    * for more information on source and content parameters

#### Parameters

The following parameters are available in the `apt::setting` defined type:

* [`priority`](#priority)
* [`ensure`](#ensure)
* [`source`](#source)
* [`content`](#content)
* [`notify_update`](#notify_update)

##### <a name="priority"></a>`priority`

Data type: `Variant[String, Integer, Array]`

Determines the order in which Apt processes the configuration file. Files with higher priority numbers are loaded first.

Default value: `50`

##### <a name="ensure"></a>`ensure`

Data type: `Optional[Enum['file', 'present', 'absent']]`

Specifies whether the file should exist. Valid options: 'present', 'absent', and 'file'.

Default value: `file`

##### <a name="source"></a>`source`

Data type: `Optional[String]`

Required, unless `content` is set. Specifies a source file to supply the content of the configuration file. Cannot be used in combination
with `content`. Valid options: see link above for Puppet's native file type source attribute.

Default value: ``undef``

##### <a name="content"></a>`content`

Data type: `Optional[String]`

Required, unless `source` is set. Directly supplies content for the configuration file. Cannot be used in combination with `source`. Valid
options: see link above for Puppet's native file type content attribute.

Default value: ``undef``

##### <a name="notify_update"></a>`notify_update`

Data type: `Boolean`

Specifies whether to trigger an `apt-get update` run.

Default value: ``true``

### <a name="aptsource"></a>`apt::source`

Manages the Apt sources in /etc/apt/sources.list.d/.

#### Examples

##### Install the puppetlabs apt source

```puppet
apt::source { 'puppetlabs':
  location => 'http://apt.puppetlabs.com',
  repos    => 'main',
  key      => {
    id     => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
    server => 'keyserver.ubuntu.com',
  },
}
```

#### Parameters

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)

##### <a name="location"></a>`location`

Data type: `Optional[String]`

Required, unless ensure is set to 'absent'. Specifies an Apt repository. Valid options: a string containing a repository URL.

Default value: ``undef``

##### <a name="comment"></a>`comment`

Data type: `String`

Supplies a comment for adding to the Apt source file.

Default value: `$name`

##### <a name="ensure"></a>`ensure`

Data type: `String`

Specifies whether the Apt source file should exist. Valid options: 'present' and 'absent'.

Default value: `present`

##### <a name="release"></a>`release`

Data type: `Optional[String]`

Specifies a distribution of the Apt repository.

Default value: ``undef``

##### <a name="repos"></a>`repos`

Data type: `String`

Specifies a component of the Apt repository.

Default value: `'main'`

##### <a name="include"></a>`include`

Data type: `Optional[Variant[Hash]]`

Configures include options. Valid options: a hash of available keys.

Options:

* **:deb** `Boolean`: Specifies whether to request the distribution's compiled binaries. Default true.
* **:src** `Boolean`: Specifies whether to request the distribution's uncompiled source code. Default false.

Default value: `{}`

##### <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`, `weak_ssl`,
and/or `options` parameters.

Default value: ``undef``

##### <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]]`

Creates a declaration of the apt::pin defined type. Valid options: a number or string to be passed to the `id` parameter of the
`apt::pin` defined type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters.

Default value: ``undef``

##### <a name="architecture"></a>`architecture`

Data type: `Optional[String]`

Tells Apt to only download information for specified architectures. Valid options: a string containing one or more architecture names,
separated by commas (e.g., 'i386' or 'i386,alpha,powerpc'). Default: undef (if unspecified, Apt downloads information for all architectures
defined in the Apt::Architectures option).

Default value: ``undef``

##### <a name="allow_unsigned"></a>`allow_unsigned`

Data type: `Boolean`

Specifies whether to authenticate packages from this release, even if the Release file is not signed or the signature can't be checked.

Default value: ``false``

##### <a name="notify_update"></a>`notify_update`

Data type: `Boolean`

Specifies whether to trigger an `apt-get update` run.

Default value: ``true``

## Resource types

## Data types

### <a name="aptauth_conf_entry"></a>`Apt::Auth_conf_entry`

Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.

* **See also**
  * https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html
  * for more information

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:

* [`machine`](#machine)
* [`login`](#login)
* [`password`](#password)

##### <a name="machine"></a>`machine`

Hostname of machine to connect to.

##### <a name="login"></a>`login`

Specifies the username to connect with.

##### <a name="password"></a>`password`

Specifies the password to connect with.

### <a name="aptproxy"></a>`Apt::Proxy`

Configures Apt to connect to a proxy server.

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:

* [`ensure`](#ensure)
* [`host`](#host)
* [`port`](#port)
* [`https`](#https)
* [`direct`](#direct)

##### <a name="ensure"></a>`ensure`

Specifies whether the proxy should exist. Valid options: 'file', 'present', and 'absent'. Prefer 'file' over 'present'.

##### <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 proxies.

##### <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

### <a name="init"></a>`init`

Allows you to perform apt functions

**Supports noop?** false

#### Parameters

##### `action`

Data type: `Enum[update, upgrade, dist-upgrade, autoremove]`

Action to perform