-# Copyright 2011 Puppet Labs Inc, unless otherwise noted.
-class apt::backports(
- $release = $lsbdistcodename,
- $location = $apt::params::backports_location
-) inherits apt::params {
+# @param pin
+# 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.
+#
+class apt::backports (
+ Optional[String] $location = undef,
+ Optional[String] $release = undef,
+ Optional[String] $repos = undef,
+ Optional[Variant[String, Hash]] $key = undef,
+ Optional[Variant[Integer, String, Hash]] $pin = 200,
+){
+ if $location {
+ $_location = $location
+ }
+ if $release {
+ $_release = $release
+ }
+ if $repos {
+ $_repos = $repos
+ }
+ if $key {
+ $_key = $key
+ }
+ if (!($facts['lsbdistid'] == 'Debian' or $facts['lsbdistid'] == 'Ubuntu')) {
+ unless $location and $release and $repos and $key {
+ fail(translate('If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key'))
+ }
+ }
+ unless $location {
+ $_location = $::apt::backports['location']
+ }
+ unless $release {
+ $_release = "${facts['lsbdistcodename']}-backports"
+ }
+ unless $repos {
+ $_repos = $::apt::backports['repos']
+ }
+ unless $key {
+ $_key = $::apt::backports['key']
+ }