"This change pins the puppetlabs-puppet_agent module to v4.12.1. Previosuly the fixut...
[puppet-modules/puppetlabs-apt.git] / manifests / conf.pp
index 3c4cb1975cb3551a1a642f2155111e0932a118e2..0aec66dd63f69f5bb68195e4f9f6120c0c6332ae 100644 (file)
@@ -1,18 +1,35 @@
+# @summary Specifies a custom Apt configuration file.
+#
+# @param content
+#   Required unless `ensure` is set to 'absent'. Directly supplies content for the configuration file.
+#
+# @param ensure
+#    Specifies whether the configuration file should exist. Valid options: 'present' and 'absent'. 
+#
+# @param priority
+#   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.
+#
+# @param notify_update
+#   Specifies whether to trigger an `apt-get update` run.
+#
 define apt::conf (
-  $content,
-  $ensure   = present,
-  $priority = '50'
+  Optional[String] $content          = undef,
+  Enum['present', 'absent'] $ensure  = present,
+  Variant[String, Integer] $priority = 50,
+  Optional[Boolean] $notify_update   = undef,
 ) {
+  unless $ensure == 'absent' {
+    unless $content {
+      fail('Need to pass in content parameter')
+    }
+  }
 
-  include apt::params
-
-  $apt_conf_d = $apt::params::apt_conf_d
-
-  file { "${apt_conf_d}/${priority}${name}":
-    ensure  => $ensure,
-    content => $content,
-    owner   => root,
-    group   => root,
-    mode    => '0644',
+  $confheadertmp = epp('apt/_conf_header.epp')
+  apt::setting { "conf-${name}":
+    ensure        => $ensure,
+    priority      => $priority,
+    content       => "${confheadertmp}${content}",
+    notify_update => $notify_update,
   }
 }