-# Parameters:
-# The parameters listed here are not required in general and were
-# added for use cases related to development environments.
-# disable_keys - disables the requirement for all packages to be signed
-# always_apt_update - rather apt should be updated on every run (intended
-# for development environments where package updates are frequent)
-# purge_sources_list - Accepts true or false. Defaults to false If set to
-# true, Puppet will purge all unmanaged entries from sources.list
-# purge_sources_list_d - Accepts true or false. Defaults to false. If set
-# to true, Puppet will purge all unmanaged entries from sources.list.d
-# update_timeout - Overrides the exec timeout in seconds for apt-get update.
-# If not set defaults to Exec's default (300)
-# update_tries - Number of times that `apt-get update` will be tried. Use this
-# to work around transient DNS and HTTP errors. By default, the command
-# will only be run once.
-#
-# Actions:
-#
-# Requires:
-# puppetlabs/stdlib
-# Sample Usage:
-# class { 'apt': }
+class apt (
+ $confs = {},
+ $update = {},
+ $purge = {},
+ $proxy = {},
+ $sources = {},
+ $keys = {},
+ $ppas = {},
+ $pins = {},
+ $settings = {},
+) inherits ::apt::params {
+
+ $frequency_options = ['always','daily','weekly','reluctantly']
+ validate_hash($update)
+ if $update['frequency'] {
+ validate_re($update['frequency'], $frequency_options)
+ }
+ if $update['timeout'] {
+ unless is_integer($update['timeout']) {
+ fail('timeout value for update must be an integer')
+ }
+ }
+ if $update['tries'] {
+ unless is_integer($update['tries']) {
+ fail('tries value for update must be an integer')
+ }
+ }