# Reference



## Table of Contents

### Resource types

* [`yumrepo`](#yumrepo): The client-side description of a yum repository.

## Resource types

### `yumrepo`

Repository configurations are found by parsing `/etc/yum.conf` and the files
indicated by the `reposdir` option in that file (see `yum.conf(5)` for
details).

Most parameters are identical to the ones documented
in the `yum.conf(5)` man page.

Continuation lines that yum supports (for the `baseurl`, for example)
are not supported. This type does not attempt to read or verify the
existence of files listed in the `include` attribute."

#### Properties

The following properties are available in the `yumrepo` type.

##### `assumeyes`

Valid values: `YUM_BOOLEAN`, `absent`

Determines if yum prompts for confirmation of critical actions.

##### `bandwidth`

Valid values: `%r{^\d+[kMG]?$}`, `absent`

Use to specify the maximum available network bandwidth
in bytes/second. Used with the `throttle` option. If `throttle`
is a percentage and `bandwidth` is `0` then bandwidth throttling
will be disabled. If `throttle` is expressed as a data rate then
this option is ignored.\n

##### `baseurl`

Valid values: `%r{.*}`, `absent`

The URL for this repository.

##### `cost`

Valid values: `%r{^\d+$}`, `absent`

Cost of this repository.

##### `deltarpm_metadata_percentage`

Valid values: `%r{^\d+$}`, `absent`

Percentage value that determines when to download deltarpm metadata.
When the deltarpm metadata is larger than this percentage value of the
package, deltarpm metadata is not downloaded.

##### `deltarpm_percentage`

Valid values: `%r{^\d+$}`, `absent`

Percentage value that determines when to use deltas for this repository.
When the delta is larger than this percentage value of the package, the
delta is not used.

##### `descr`

Valid values: `%r{.*}`, `absent`

A human-readable description of the repository.
This corresponds to the name parameter in `yum.conf(5)`.

##### `enabled`

Valid values: `YUM_BOOLEAN`, `absent`

Whether this repository is enabled.

##### `enablegroups`

Valid values: `YUM_BOOLEAN`, `absent`

Whether yum will allow the use of package groups for this
repository.

##### `ensure`

Valid values: `present`, `absent`

The basic property that the resource should be in.

Default value: `present`

##### `exclude`

Valid values: `%r{.*}`, `absent`

The string of package names or shell globs separated by spaces to exclude.
Packages that match the package name given or shell globs will never be
considered in updates or installs for this repo.

##### `failovermethod`

Valid values: `%r{^roundrobin|priority$}`, `absent`

The failover method for this repository; should be either
`roundrobin` or `priority`.

##### `gpgcakey`

Valid values: `%r{.*}`, `absent`

The URL for the GPG CA key for this repository.

##### `gpgcheck`

Valid values: `YUM_BOOLEAN`, `absent`

Whether to check the GPG signature on packages installed
from this repository.

##### `gpgkey`

Valid values: `%r{.*}`, `absent`

The URL for the GPG key with which packages from this
repository are signed.

##### `http_caching`

Valid values: `%r{^(packages|all|none)$}`, `absent`

What to cache from this repository.

##### `include`

Valid values: `%r{.*}`, `absent`

The URL of a remote file containing additional yum configuration
settings. Puppet does not check for this file's existence or validity.

##### `includepkgs`

Valid values: `%r{.*}`, `absent`

The string of package names or shell globs separated by spaces to
include. If this is set, only packages matching one of the package
names or shell globs will be considered for update or install
from this repository.

##### `keepalive`

Valid values: `YUM_BOOLEAN`, `absent`

Whether HTTP/1.1 keepalive should be used with this repository.

##### `metadata_expire`

Valid values: `%r{^([0-9]+[dhm]?|never)$}`, `absent`

Number of seconds after which the metadata will expire.

##### `metalink`

Valid values: `%r{.*}`, `absent`

Metalink for mirrors.

##### `minrate`

Valid values: `%r{^\d+$}`, `absent`

Sets the low speed threshold in bytes per second.
If the server is sending data slower than this for at least
`timeout` seconds, Yum aborts the connection. The default is
`1000`.

##### `mirrorlist`

Valid values: `%r{.*}`, `absent`

The URL that holds the list of mirrors for this repository.

##### `mirrorlist_expire`

Valid values: `%r{^[0-9]+$}`, `absent`

Time (in seconds) after which the mirrorlist locally cached
will expire.\n

##### `module_hotfixes`

Valid values: `YUM_BOOLEAN`, `absent`

Whether packages from this repo can be installed into modules.

##### `password`

Valid values: `%r{.*}`, `absent`

Password to use with the username for basic authentication.

##### `payload_gpgcheck`

Valid values: `YUM_BOOLEAN`, `absent`

Whether to check the GPG signature of the packages payload.

##### `priority`

Valid values: `%r{^-?\d+$}`, `absent`

Priority of this repository. Can be any integer value
(including negative). Requires that the `priorities` plugin
is installed and enabled.

##### `protect`

Valid values: `YUM_BOOLEAN`, `absent`

Enable or disable protection for this repository. Requires
that the `protectbase` plugin is installed and enabled.

##### `proxy`

Valid values: `%r{.*}`, `absent`

URL of a proxy server that Yum should use when accessing this repository.
This attribute can also be set to '_none_' (or '' for EL >= 8 only),
which will make Yum bypass any global proxy settings when accessing this repository.

##### `proxy_password`

Valid values: `%r{.*}`, `absent`

Password for this proxy.

##### `proxy_username`

Valid values: `%r{.*}`, `absent`

Username for this proxy.

##### `repo_gpgcheck`

Valid values: `YUM_BOOLEAN`, `absent`

Whether to check the GPG signature on repodata.

##### `retries`

Valid values: `%r{^[0-9]+$}`, `absent`

Set the number of times any attempt to retrieve a file should
 retry before returning an error. Setting this to `0` makes yum
try forever.\n

##### `s3_enabled`

Valid values: `YUM_BOOLEAN`, `absent`

Access the repository via S3.

##### `skip_if_unavailable`

Valid values: `YUM_BOOLEAN`, `absent`

Should yum skip this repository if unable to reach it.

##### `sslcacert`

Valid values: `%r{.*}`, `absent`

Path to the directory containing the databases of the
certificate authorities yum should use to verify SSL certificates.

##### `sslclientcert`

Valid values: `%r{.*}`, `absent`

Path  to the SSL client certificate yum should use to connect
to repositories/remote sites.

##### `sslclientkey`

Valid values: `%r{.*}`, `absent`

Path to the SSL client key yum should use to connect
to repositories/remote sites.

##### `sslverify`

Valid values: `YUM_BOOLEAN`, `absent`

Should yum verify SSL certificates/hosts at all.

##### `throttle`

Valid values: `%r{^\d+[kMG%]?$}`, `absent`

Enable bandwidth throttling for downloads. This option
can be expressed as a absolute data rate in bytes/sec or a
percentage `60%`. An SI prefix (k, M or G) may be appended
to the data rate values.\n

##### `timeout`

Valid values: `%r{^\d+$}`, `absent`

Number of seconds to wait for a connection before timing
out.

##### `username`

Valid values: `%r{.*}`, `absent`

Username to use for basic authentication to a repo or really any url.

#### Parameters

The following parameters are available in the `yumrepo` type.

* [`name`](#-yumrepo--name)
* [`provider`](#-yumrepo--provider)
* [`target`](#-yumrepo--target)

##### `name`

namevar

The name of the repository.  This corresponds to the
`repositoryid` parameter in `yum.conf(5)`.

##### `provider`

The specific backend to use for this `yumrepo` resource. You will seldom need to specify this --- Puppet will usually
discover the appropriate provider for your platform.

##### `target`

The filepath of the local repository file, can be either relative or absolute. If a valid filepath is not specified, the
target is created as a new section in `yum.conf(5)`

Default value: `absent`

