(MAINT) pdk update
[puppet-modules/puppetlabs-apt.git] / REFERENCE.md
1 # Reference
2
3 <!-- DO NOT EDIT: This document was generated by Puppet Strings -->
4
5 ## Table of Contents
6
7 ### Classes
8
9 #### Public Classes
10
11 * [`apt`](#apt): Main class, includes all other classes.
12 * [`apt::backports`](#aptbackports): Manages backports.
13
14 #### Private Classes
15
16 * `apt::params`: Provides defaults for the Apt module parameters.
17 * `apt::update`: Updates the list of available packages using apt-get update.
18
19 ### Defined types
20
21 * [`apt::conf`](#aptconf): Specifies a custom Apt configuration file.
22 * [`apt::key`](#aptkey): Manages the GPG keys that Apt uses to authenticate packages.
23 * [`apt::mark`](#aptmark): defined typeapt::mark
24 * [`apt::pin`](#aptpin): Manages Apt pins. Does not trigger an apt-get update run.
25 * [`apt::ppa`](#aptppa): Manages PPA repositories using `add-apt-repository`. Not supported on Debian.
26 * [`apt::setting`](#aptsetting): Manages Apt configuration files.
27 * [`apt::source`](#aptsource): Manages the Apt sources in /etc/apt/sources.list.d/.
28
29 ### Resource types
30
31 #### Public Resource types
32
33
34 #### Private Resource types
35
36 * `apt_key`: This type provides Puppet with the capabilities to manage GPG keys needed
37 by apt to perform package validation. Apt has it's own GPG keyring that can
38 be manipulated through the `apt-key` command.
39
40 ### Data types
41
42 * [`Apt::Auth_conf_entry`](#aptauth_conf_entry): Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
43 * [`Apt::Proxy`](#aptproxy): Configures Apt to connect to a proxy server.
44
45 ### Tasks
46
47 * [`init`](#init): Allows you to perform apt functions
48
49 ## Classes
50
51 ### <a name="apt"></a>`apt`
52
53 Main class, includes all other classes.
54
55 * **See also**
56   * https://docs.puppetlabs.com/references/latest/function.html#createresources
57     * for the create resource function
58
59 #### Parameters
60
61 The following parameters are available in the `apt` class:
62
63 * [`provider`](#provider)
64 * [`keyserver`](#keyserver)
65 * [`key_options`](#key_options)
66 * [`ppa_options`](#ppa_options)
67 * [`ppa_package`](#ppa_package)
68 * [`backports`](#backports)
69 * [`confs`](#confs)
70 * [`update`](#update)
71 * [`purge`](#purge)
72 * [`proxy`](#proxy)
73 * [`sources`](#sources)
74 * [`keys`](#keys)
75 * [`ppas`](#ppas)
76 * [`pins`](#pins)
77 * [`settings`](#settings)
78 * [`manage_auth_conf`](#manage_auth_conf)
79 * [`auth_conf_entries`](#auth_conf_entries)
80 * [`auth_conf_owner`](#auth_conf_owner)
81 * [`root`](#root)
82 * [`sources_list`](#sources_list)
83 * [`sources_list_d`](#sources_list_d)
84 * [`conf_d`](#conf_d)
85 * [`preferences`](#preferences)
86 * [`preferences_d`](#preferences_d)
87 * [`config_files`](#config_files)
88 * [`sources_list_force`](#sources_list_force)
89 * [`update_defaults`](#update_defaults)
90 * [`purge_defaults`](#purge_defaults)
91 * [`proxy_defaults`](#proxy_defaults)
92 * [`include_defaults`](#include_defaults)
93 * [`apt_conf_d`](#apt_conf_d)
94 * [`source_key_defaults`](#source_key_defaults)
95
96 ##### <a name="provider"></a>`provider`
97
98 Data type: `String`
99
100 Specifies the provider that should be used by apt::update.
101
102 Default value: `$apt::params::provider`
103
104 ##### <a name="keyserver"></a>`keyserver`
105
106 Data type: `String`
107
108 Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://, or
109 hkp://).
110
111 Default value: `$apt::params::keyserver`
112
113 ##### <a name="key_options"></a>`key_options`
114
115 Data type: `Optional[String]`
116
117 Specifies the default options for apt::key resources.
118
119 Default value: `$apt::params::key_options`
120
121 ##### <a name="ppa_options"></a>`ppa_options`
122
123 Data type: `Optional[String]`
124
125 Supplies options to be passed to the `add-apt-repository` command.
126
127 Default value: `$apt::params::ppa_options`
128
129 ##### <a name="ppa_package"></a>`ppa_package`
130
131 Data type: `Optional[String]`
132
133 Names the package that provides the `apt-add-repository` command.
134
135 Default value: `$apt::params::ppa_package`
136
137 ##### <a name="backports"></a>`backports`
138
139 Data type: `Optional[Hash]`
140
141 Specifies some of the default parameters used by apt::backports. Valid options: a hash made up from the following keys:
142
143 Options:
144
145 * **:location** `String`: See apt::backports for documentation.
146 * **:repos** `String`: See apt::backports for documentation.
147 * **:key** `String`: See apt::backports for documentation.
148
149 Default value: `$apt::params::backports`
150
151 ##### <a name="confs"></a>`confs`
152
153 Data type: `Hash`
154
155 Creates new `apt::conf` resources. Valid options: a hash to be passed to the create_resources function linked above.
156
157 Default value: `$apt::params::confs`
158
159 ##### <a name="update"></a>`update`
160
161 Data type: `Hash`
162
163 Configures various update settings. Valid options: a hash made up from the following keys:
164
165 Options:
166
167 * **: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.
168 Valid options: 'always' (at every Puppet run); 'daily' (if the value of `apt_update_last_success` is less than current epoch time minus 86400);
169 'weekly' (if the value of `apt_update_last_success` is less than current epoch time minus 604800); and 'reluctantly' (only if the exec resource
170 `apt_update` is notified). Default: 'reluctantly'.
171 * **:loglevel** `Integer`: Specifies the log level of logs outputted to the console. Default: undef.
172 * **:timeout** `Integer`: Specifies how long to wait for the update to complete before canceling it. Valid options: an integer, in seconds. Default: undef.
173 * **:tries** `Integer`: Specifies how many times to retry the update after receiving a DNS or HTTP error. Default: undef.
174
175 Default value: `$apt::params::update`
176
177 ##### <a name="purge"></a>`purge`
178
179 Data type: `Hash`
180
181 Specifies whether to purge any existing settings that aren't managed by Puppet. Valid options: a hash made up from the following keys:
182
183 Options:
184
185 * **:sources.list** `Boolean`: Specifies whether to purge any unmanaged entries from sources.list. Default false.
186 * **:sources.list.d** `Boolean`: Specifies whether to purge any unmanaged entries from sources.list.d. Default false.
187 * **:preferences** `Boolean`: Specifies whether to purge any unmanaged entries from preferences. Default false.
188 * **:preferences.d.** `Boolean`: Specifies whether to purge any unmanaged entries from preferences.d. Default false.
189
190 Default value: `$apt::params::purge`
191
192 ##### <a name="proxy"></a>`proxy`
193
194 Data type: `Apt::Proxy`
195
196 Configures Apt to connect to a proxy server. Valid options: a hash matching the locally defined type apt::proxy.
197
198 Default value: `$apt::params::proxy`
199
200 ##### <a name="sources"></a>`sources`
201
202 Data type: `Hash`
203
204 Creates new `apt::source` resources. Valid options: a hash to be passed to the create_resources function linked above.
205
206 Default value: `$apt::params::sources`
207
208 ##### <a name="keys"></a>`keys`
209
210 Data type: `Hash`
211
212 Creates new `apt::key` resources. Valid options: a hash to be passed to the create_resources function linked above.
213
214 Default value: `$apt::params::keys`
215
216 ##### <a name="ppas"></a>`ppas`
217
218 Data type: `Hash`
219
220 Creates new `apt::ppa` resources. Valid options: a hash to be passed to the create_resources function linked above.
221
222 Default value: `$apt::params::ppas`
223
224 ##### <a name="pins"></a>`pins`
225
226 Data type: `Hash`
227
228 Creates new `apt::pin` resources. Valid options: a hash to be passed to the create_resources function linked above.
229
230 Default value: `$apt::params::pins`
231
232 ##### <a name="settings"></a>`settings`
233
234 Data type: `Hash`
235
236 Creates new `apt::setting` resources. Valid options: a hash to be passed to the create_resources function linked above.
237
238 Default value: `$apt::params::settings`
239
240 ##### <a name="manage_auth_conf"></a>`manage_auth_conf`
241
242 Data type: `Boolean`
243
244 Specifies whether to manage the /etc/apt/auth.conf file. When true, the file will be overwritten with the entries specified in
245 the auth_conf_entries parameter. When false, the file will be ignored (note that this does not set the file to absent.
246
247 Default value: `$apt::params::manage_auth_conf`
248
249 ##### <a name="auth_conf_entries"></a>`auth_conf_entries`
250
251 Data type: `Array[Apt::Auth_conf_entry]`
252
253 An optional array of login configuration settings (hashes) that are recorded in the file /etc/apt/auth.conf. This file has a netrc-like
254 format (similar to what curl uses) and contains the login configuration for APT sources and proxies that require authentication. See
255 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
256 password and no others. Specifying manage_auth_conf and not specifying this parameter will set /etc/apt/auth.conf to absent.
257
258 Default value: `$apt::params::auth_conf_entries`
259
260 ##### <a name="auth_conf_owner"></a>`auth_conf_owner`
261
262 Data type: `String`
263
264 The owner of the file /etc/apt/auth.conf. Default: '_apt' or 'root' on old releases.
265
266 Default value: `$apt::params::auth_conf_owner`
267
268 ##### <a name="root"></a>`root`
269
270 Data type: `String`
271
272 Specifies root directory of Apt executable.
273
274 Default value: `$apt::params::root`
275
276 ##### <a name="sources_list"></a>`sources_list`
277
278 Data type: `String`
279
280 Specifies the path of the sources_list file to use.
281
282 Default value: `$apt::params::sources_list`
283
284 ##### <a name="sources_list_d"></a>`sources_list_d`
285
286 Data type: `String`
287
288 Specifies the path of the sources_list.d file to use.
289
290 Default value: `$apt::params::sources_list_d`
291
292 ##### <a name="conf_d"></a>`conf_d`
293
294 Data type: `String`
295
296 Specifies the path of the conf.d file to use.
297
298 Default value: `$apt::params::conf_d`
299
300 ##### <a name="preferences"></a>`preferences`
301
302 Data type: `String`
303
304 Specifies the path of the preferences file to use.
305
306 Default value: `$apt::params::preferences`
307
308 ##### <a name="preferences_d"></a>`preferences_d`
309
310 Data type: `String`
311
312 Specifies the path of the preferences.d file to use.
313
314 Default value: `$apt::params::preferences_d`
315
316 ##### <a name="config_files"></a>`config_files`
317
318 Data type: `Hash`
319
320 A hash made up of the various configuration files used by Apt.
321
322 Default value: `$apt::params::config_files`
323
324 ##### <a name="sources_list_force"></a>`sources_list_force`
325
326 Data type: `Boolean`
327
328 Specifies whether to perform force purge or delete. Default false.
329
330 Default value: `$apt::params::sources_list_force`
331
332 ##### <a name="update_defaults"></a>`update_defaults`
333
334 Data type: `Hash`
335
336
337
338 Default value: `$apt::params::update_defaults`
339
340 ##### <a name="purge_defaults"></a>`purge_defaults`
341
342 Data type: `Hash`
343
344
345
346 Default value: `$apt::params::purge_defaults`
347
348 ##### <a name="proxy_defaults"></a>`proxy_defaults`
349
350 Data type: `Hash`
351
352
353
354 Default value: `$apt::params::proxy_defaults`
355
356 ##### <a name="include_defaults"></a>`include_defaults`
357
358 Data type: `Hash`
359
360
361
362 Default value: `$apt::params::include_defaults`
363
364 ##### <a name="apt_conf_d"></a>`apt_conf_d`
365
366 Data type: `String`
367
368
369
370 Default value: `$apt::params::apt_conf_d`
371
372 ##### <a name="source_key_defaults"></a>`source_key_defaults`
373
374 Data type: `Hash`
375
376
377
378 Default value: `$apt::params::source_key_defaults`
379
380 ### <a name="aptbackports"></a>`apt::backports`
381
382 Manages backports.
383
384 #### Examples
385
386 ##### Set up a backport source for Linux Mint qiana
387
388 ```puppet
389 class { 'apt::backports':
390   location => 'http://us.archive.ubuntu.com/ubuntu',
391   release  => 'trusty-backports',
392   repos    => 'main universe multiverse restricted',
393   key      => {
394     id     => '630239CC130E1A7FD81A27B140976EAF437D05B5',
395     server => 'hkps.pool.sks-keyservers.net',
396   },
397 }
398 ```
399
400 #### Parameters
401
402 The following parameters are available in the `apt::backports` class:
403
404 * [`location`](#location)
405 * [`release`](#release)
406 * [`repos`](#repos)
407 * [`key`](#key)
408 * [`pin`](#pin)
409 * [`include`](#include)
410
411 ##### <a name="location"></a>`location`
412
413 Data type: `Optional[String]`
414
415 Specifies an Apt repository containing the backports to manage. Valid options: a string containing a URL. Default value for Debian and
416 Ubuntu varies:
417
418 - Debian: 'http://deb.debian.org/debian'
419
420 - Ubuntu: 'http://archive.ubuntu.com/ubuntu'
421
422 Default value: ``undef``
423
424 ##### <a name="release"></a>`release`
425
426 Data type: `Optional[String]`
427
428 Specifies a distribution of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file.
429 Default: on Debian and Ubuntu, `${facts['os']['distro']['codename']}-backports`. We recommend keeping this default, except on other operating
430 systems.
431
432 Default value: ``undef``
433
434 ##### <a name="repos"></a>`repos`
435
436 Data type: `Optional[String]`
437
438 Specifies a component of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file.
439 Default value for Debian and Ubuntu varies:
440
441 - Debian: 'main contrib non-free'
442
443 - Ubuntu: 'main universe multiverse restricted'
444
445 Default value: ``undef``
446
447 ##### <a name="key"></a>`key`
448
449 Data type: `Optional[Variant[String, Hash]]`
450
451 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
452 hash of parameter => value pairs to be passed to apt::key's id, server, content, source, and/or options parameters. Default value
453 for Debian and Ubuntu varies:
454
455 - Debian: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553'
456
457 - Ubuntu: '630239CC130E1A7FD81A27B140976EAF437D05B5'
458
459 Default value: ``undef``
460
461 ##### <a name="pin"></a>`pin`
462
463 Data type: `Optional[Variant[Integer, String, Hash]]`
464
465 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
466 type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters.
467
468 Default value: `200`
469
470 ##### <a name="include"></a>`include`
471
472 Data type: `Optional[Variant[Hash]]`
473
474 Specifies whether to include 'deb' or 'src', or both.
475
476 Default value: `{}`
477
478 ## Defined types
479
480 ### <a name="aptconf"></a>`apt::conf`
481
482 Specifies a custom Apt configuration file.
483
484 #### Parameters
485
486 The following parameters are available in the `apt::conf` defined type:
487
488 * [`content`](#content)
489 * [`ensure`](#ensure)
490 * [`priority`](#priority)
491 * [`notify_update`](#notify_update)
492
493 ##### <a name="content"></a>`content`
494
495 Data type: `Optional[String]`
496
497 Required unless `ensure` is set to 'absent'. Directly supplies content for the configuration file.
498
499 Default value: ``undef``
500
501 ##### <a name="ensure"></a>`ensure`
502
503 Data type: `Enum['present', 'absent']`
504
505 Specifies whether the configuration file should exist. Valid options: 'present' and 'absent'.
506
507 Default value: `present`
508
509 ##### <a name="priority"></a>`priority`
510
511 Data type: `Variant[String, Integer]`
512
513 Determines the order in which Apt processes the configuration file. Files with lower priority numbers are loaded first.
514 Valid options: a string containing an integer or an integer.
515
516 Default value: `50`
517
518 ##### <a name="notify_update"></a>`notify_update`
519
520 Data type: `Optional[Boolean]`
521
522 Specifies whether to trigger an `apt-get update` run.
523
524 Default value: ``undef``
525
526 ### <a name="aptkey"></a>`apt::key`
527
528 Manages the GPG keys that Apt uses to authenticate packages.
529
530 * **Note** The apt::key defined type makes use of the apt_key type, but includes extra functionality to help prevent duplicate keys.
531
532 #### Examples
533
534 ##### Declare Apt key for apt.puppetlabs.com source
535
536 ```puppet
537 apt::key { 'puppetlabs':
538   id      => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
539   server  => 'hkps.pool.sks-keyservers.net',
540   options => 'http-proxy="http://proxyuser:proxypass@example.org:3128"',
541 }
542 ```
543
544 #### Parameters
545
546 The following parameters are available in the `apt::key` defined type:
547
548 * [`id`](#id)
549 * [`ensure`](#ensure)
550 * [`content`](#content)
551 * [`source`](#source)
552 * [`server`](#server)
553 * [`weak_ssl`](#weak_ssl)
554 * [`options`](#options)
555
556 ##### <a name="id"></a>`id`
557
558 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/]`
559
560 Specifies a GPG key to authenticate Apt package signatures. Valid options: a string containing a key ID (8 or 16 hexadecimal
561 characters, optionally prefixed with "0x") or a full key fingerprint (40 hexadecimal characters).
562
563 Default value: `$title`
564
565 ##### <a name="ensure"></a>`ensure`
566
567 Data type: `Enum['present', 'absent', 'refreshed']`
568
569 Specifies whether the key should exist. Valid options: 'present', 'absent' or 'refreshed'. Using 'refreshed' will make keys auto
570 update when they have expired (assuming a new key exists on the key server).
571
572 Default value: `present`
573
574 ##### <a name="content"></a>`content`
575
576 Data type: `Optional[String]`
577
578 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.
579
580 Default value: ``undef``
581
582 ##### <a name="source"></a>`source`
583
584 Data type: `Optional[Pattern[/\Ahttps?:\/\//, /\Aftp:\/\//, /\A\/\w+/]]`
585
586 Specifies the location of an existing GPG key file to copy. Valid options: a string containing a URL (ftp://, http://, or https://) or
587 an absolute path.
588
589 Default value: ``undef``
590
591 ##### <a name="server"></a>`server`
592
593 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\-_.]+)*\/?$/]`
594
595 Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://,
596 hkp:// or hkps://). The hkps:// protocol is currently only supported on Ubuntu 18.04.
597
598 Default value: `$::apt::keyserver`
599
600 ##### <a name="weak_ssl"></a>`weak_ssl`
601
602 Data type: `Boolean`
603
604 Specifies whether strict SSL verification on a https URL should be disabled. Valid options: true or false.
605
606 Default value: ``false``
607
608 ##### <a name="options"></a>`options`
609
610 Data type: `Optional[String]`
611
612 Passes additional options to `apt-key adv --keyserver-options`.
613
614 Default value: `$::apt::key_options`
615
616 ### <a name="aptmark"></a>`apt::mark`
617
618 defined typeapt::mark
619
620 #### Parameters
621
622 The following parameters are available in the `apt::mark` defined type:
623
624 * [`setting`](#setting)
625
626 ##### <a name="setting"></a>`setting`
627
628 Data type: `Enum['auto','manual','hold','unhold']`
629
630 auto, manual, hold, unhold
631 specifies the behavior of apt in case of no more dependencies installed
632 https://manpages.debian.org/sretch/apt/apt-mark.8.en.html
633
634 ### <a name="aptpin"></a>`apt::pin`
635
636 Manages Apt pins. Does not trigger an apt-get update run.
637
638 * **See also**
639   * http://linux.die.net/man/5/apt_preferences
640     * for context on these parameters
641
642 #### Parameters
643
644 The following parameters are available in the `apt::pin` defined type:
645
646 * [`ensure`](#ensure)
647 * [`explanation`](#explanation)
648 * [`order`](#order)
649 * [`packages`](#packages)
650 * [`priority`](#priority)
651 * [`release`](#release)
652 * [`release_version`](#release_version)
653 * [`component`](#component)
654 * [`originator`](#originator)
655 * [`label`](#label)
656 * [`origin`](#origin)
657 * [`version`](#version)
658 * [`codename`](#codename)
659
660 ##### <a name="ensure"></a>`ensure`
661
662 Data type: `Optional[Enum['file', 'present', 'absent']]`
663
664 Specifies whether the pin should exist. Valid options: 'file', 'present', and 'absent'.
665
666 Default value: `present`
667
668 ##### <a name="explanation"></a>`explanation`
669
670 Data type: `Optional[String]`
671
672 Supplies a comment to explain the pin. Default: "${caller_module_name}: ${name}".
673
674 Default value: ``undef``
675
676 ##### <a name="order"></a>`order`
677
678 Data type: `Variant[Integer]`
679
680 Determines the order in which Apt processes the pin file. Files with lower order numbers are loaded first.
681
682 Default value: `50`
683
684 ##### <a name="packages"></a>`packages`
685
686 Data type: `Variant[String, Array]`
687
688 Specifies which package(s) to pin.
689
690 Default value: `'*'`
691
692 ##### <a name="priority"></a>`priority`
693
694 Data type: `Variant[Numeric, String]`
695
696 Sets the priority of the package. If multiple versions of a given package are available, `apt-get` installs the one with the highest
697 priority number (subject to dependency constraints). Valid options: an integer.
698
699 Default value: `0`
700
701 ##### <a name="release"></a>`release`
702
703 Data type: `Optional[String]`
704
705 Tells APT to prefer packages that support the specified release. Typical values include 'stable', 'testing', and 'unstable'.
706
707 Default value: `''`
708
709 ##### <a name="release_version"></a>`release_version`
710
711 Data type: `Optional[String]`
712
713 Tells APT to prefer packages that support the specified operating system release version (such as Debian release version 7).
714
715 Default value: `''`
716
717 ##### <a name="component"></a>`component`
718
719 Data type: `Optional[String]`
720
721 Names the licensing component associated with the packages in the directory tree of the Release file.
722
723 Default value: `''`
724
725 ##### <a name="originator"></a>`originator`
726
727 Data type: `Optional[String]`
728
729 Names the originator of the packages in the directory tree of the Release file.
730
731 Default value: `''`
732
733 ##### <a name="label"></a>`label`
734
735 Data type: `Optional[String]`
736
737 Names the label of the packages in the directory tree of the Release file.
738
739 Default value: `''`
740
741 ##### <a name="origin"></a>`origin`
742
743 Data type: `Optional[String]`
744
745
746
747 Default value: `''`
748
749 ##### <a name="version"></a>`version`
750
751 Data type: `Optional[String]`
752
753
754
755 Default value: `''`
756
757 ##### <a name="codename"></a>`codename`
758
759 Data type: `Optional[String]`
760
761
762
763 Default value: `''`
764
765 ### <a name="aptppa"></a>`apt::ppa`
766
767 Manages PPA repositories using `add-apt-repository`. Not supported on Debian.
768
769 #### Examples
770
771 ##### Example declaration of an Apt PPA
772
773 ```puppet
774 apt::ppa{ 'ppa:openstack-ppa/bleeding-edge': }
775 ```
776
777 #### Parameters
778
779 The following parameters are available in the `apt::ppa` defined type:
780
781 * [`ensure`](#ensure)
782 * [`options`](#options)
783 * [`release`](#release)
784 * [`dist`](#dist)
785 * [`package_name`](#package_name)
786 * [`package_manage`](#package_manage)
787
788 ##### <a name="ensure"></a>`ensure`
789
790 Data type: `String`
791
792 Specifies whether the PPA should exist. Valid options: 'present' and 'absent'.
793
794 Default value: `'present'`
795
796 ##### <a name="options"></a>`options`
797
798 Data type: `Optional[String]`
799
800 Supplies options to be passed to the `add-apt-repository` command. Default: '-y'.
801
802 Default value: `$::apt::ppa_options`
803
804 ##### <a name="release"></a>`release`
805
806 Data type: `Optional[String]`
807
808 Specifies the operating system of your node. Valid options: a string containing a valid LSB distribution codename.
809 Optional if `puppet facts show os.distro.codename` returns your correct distribution release codename.
810
811 Default value: `$facts['os']['distro']['codename']`
812
813 ##### <a name="dist"></a>`dist`
814
815 Data type: `Optional[String]`
816
817 Specifies the distribution of your node. Valid options: a string containing a valid distribution codename.
818 Optional if `puppet facts show os.name` returns your correct distribution name.
819
820 Default value: `$facts['os']['name']`
821
822 ##### <a name="package_name"></a>`package_name`
823
824 Data type: `Optional[String]`
825
826 Names the package that provides the `apt-add-repository` command. Default: 'software-properties-common'.
827
828 Default value: `$::apt::ppa_package`
829
830 ##### <a name="package_manage"></a>`package_manage`
831
832 Data type: `Boolean`
833
834 Specifies whether Puppet should manage the package that provides `apt-add-repository`.
835
836 Default value: ``false``
837
838 ### <a name="aptsetting"></a>`apt::setting`
839
840 Manages Apt configuration files.
841
842 * **See also**
843   * https://docs.puppetlabs.com/references/latest/type.html#file-attributes
844     * for more information on source and content parameters
845
846 #### Parameters
847
848 The following parameters are available in the `apt::setting` defined type:
849
850 * [`priority`](#priority)
851 * [`ensure`](#ensure)
852 * [`source`](#source)
853 * [`content`](#content)
854 * [`notify_update`](#notify_update)
855
856 ##### <a name="priority"></a>`priority`
857
858 Data type: `Variant[String, Integer, Array]`
859
860 Determines the order in which Apt processes the configuration file. Files with higher priority numbers are loaded first.
861
862 Default value: `50`
863
864 ##### <a name="ensure"></a>`ensure`
865
866 Data type: `Optional[Enum['file', 'present', 'absent']]`
867
868 Specifies whether the file should exist. Valid options: 'present', 'absent', and 'file'.
869
870 Default value: `file`
871
872 ##### <a name="source"></a>`source`
873
874 Data type: `Optional[String]`
875
876 Required, unless `content` is set. Specifies a source file to supply the content of the configuration file. Cannot be used in combination
877 with `content`. Valid options: see link above for Puppet's native file type source attribute.
878
879 Default value: ``undef``
880
881 ##### <a name="content"></a>`content`
882
883 Data type: `Optional[String]`
884
885 Required, unless `source` is set. Directly supplies content for the configuration file. Cannot be used in combination with `source`. Valid
886 options: see link above for Puppet's native file type content attribute.
887
888 Default value: ``undef``
889
890 ##### <a name="notify_update"></a>`notify_update`
891
892 Data type: `Boolean`
893
894 Specifies whether to trigger an `apt-get update` run.
895
896 Default value: ``true``
897
898 ### <a name="aptsource"></a>`apt::source`
899
900 Manages the Apt sources in /etc/apt/sources.list.d/.
901
902 #### Examples
903
904 ##### Install the puppetlabs apt source
905
906 ```puppet
907 apt::source { 'puppetlabs':
908   location => 'http://apt.puppetlabs.com',
909   repos    => 'main',
910   key      => {
911     id     => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
912     server => 'hkps.pool.sks-keyservers.net',
913   },
914 }
915 ```
916
917 #### Parameters
918
919 The following parameters are available in the `apt::source` defined type:
920
921 * [`location`](#location)
922 * [`comment`](#comment)
923 * [`ensure`](#ensure)
924 * [`release`](#release)
925 * [`repos`](#repos)
926 * [`include`](#include)
927 * [`key`](#key)
928 * [`pin`](#pin)
929 * [`architecture`](#architecture)
930 * [`allow_unsigned`](#allow_unsigned)
931 * [`notify_update`](#notify_update)
932
933 ##### <a name="location"></a>`location`
934
935 Data type: `Optional[String]`
936
937 Required, unless ensure is set to 'absent'. Specifies an Apt repository. Valid options: a string containing a repository URL.
938
939 Default value: ``undef``
940
941 ##### <a name="comment"></a>`comment`
942
943 Data type: `String`
944
945 Supplies a comment for adding to the Apt source file.
946
947 Default value: `$name`
948
949 ##### <a name="ensure"></a>`ensure`
950
951 Data type: `String`
952
953 Specifies whether the Apt source file should exist. Valid options: 'present' and 'absent'.
954
955 Default value: `present`
956
957 ##### <a name="release"></a>`release`
958
959 Data type: `Optional[String]`
960
961 Specifies a distribution of the Apt repository.
962
963 Default value: ``undef``
964
965 ##### <a name="repos"></a>`repos`
966
967 Data type: `String`
968
969 Specifies a component of the Apt repository.
970
971 Default value: `'main'`
972
973 ##### <a name="include"></a>`include`
974
975 Data type: `Optional[Variant[Hash]]`
976
977 Configures include options. Valid options: a hash of available keys.
978
979 Options:
980
981 * **:deb** `Boolean`: Specifies whether to request the distribution's compiled binaries. Default true.
982 * **:src** `Boolean`: Specifies whether to request the distribution's uncompiled source code. Default false.
983
984 Default value: `{}`
985
986 ##### <a name="key"></a>`key`
987
988 Data type: `Optional[Variant[String, Hash]]`
989
990 Creates a declaration of the apt::key defined type. Valid options: a string to be passed to the `id` parameter of the `apt::key`
991 defined type, or a hash of `parameter => value` pairs to be passed to `apt::key`'s `id`, `server`, `content`, `source`, and/or
992 `options` parameters.
993
994 Default value: ``undef``
995
996 ##### <a name="pin"></a>`pin`
997
998 Data type: `Optional[Variant[Hash, Numeric, String]]`
999
1000 Creates a declaration of the apt::pin defined type. Valid options: a number or string to be passed to the `id` parameter of the
1001 `apt::pin` defined type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters.
1002
1003 Default value: ``undef``
1004
1005 ##### <a name="architecture"></a>`architecture`
1006
1007 Data type: `Optional[String]`
1008
1009 Tells Apt to only download information for specified architectures. Valid options: a string containing one or more architecture names,
1010 separated by commas (e.g., 'i386' or 'i386,alpha,powerpc'). Default: undef (if unspecified, Apt downloads information for all architectures
1011 defined in the Apt::Architectures option).
1012
1013 Default value: ``undef``
1014
1015 ##### <a name="allow_unsigned"></a>`allow_unsigned`
1016
1017 Data type: `Boolean`
1018
1019 Specifies whether to authenticate packages from this release, even if the Release file is not signed or the signature can't be checked.
1020
1021 Default value: ``false``
1022
1023 ##### <a name="notify_update"></a>`notify_update`
1024
1025 Data type: `Boolean`
1026
1027 Specifies whether to trigger an `apt-get update` run.
1028
1029 Default value: ``true``
1030
1031 ## Resource types
1032
1033 ## Data types
1034
1035 ### <a name="aptauth_conf_entry"></a>`Apt::Auth_conf_entry`
1036
1037 Login configuration settings that are recorded in the file `/etc/apt/auth.conf`.
1038
1039 * **See also**
1040   * https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html
1041   * for more information
1042
1043 Alias of
1044
1045 ```puppet
1046 Struct[{
1047     machine => String[1],
1048     login => String,
1049     password => String
1050   }]
1051 ```
1052
1053 #### Parameters
1054
1055 The following parameters are available in the `Apt::Auth_conf_entry` data type:
1056
1057 * [`machine`](#machine)
1058 * [`login`](#login)
1059 * [`password`](#password)
1060
1061 ##### <a name="machine"></a>`machine`
1062
1063 Hostname of machine to connect to.
1064
1065 ##### <a name="login"></a>`login`
1066
1067 Specifies the username to connect with.
1068
1069 ##### <a name="password"></a>`password`
1070
1071 Specifies the password to connect with.
1072
1073 ### <a name="aptproxy"></a>`Apt::Proxy`
1074
1075 Configures Apt to connect to a proxy server.
1076
1077 Alias of
1078
1079 ```puppet
1080 Struct[{
1081     ensure     => Optional[Enum['file', 'present', 'absent']],
1082     host       => Optional[String],
1083     port       => Optional[Integer[0, 65535]],
1084     https      => Optional[Boolean],
1085     https_acng => Optional[Boolean],
1086     direct     => Optional[Boolean],
1087   }]
1088 ```
1089
1090 #### Parameters
1091
1092 The following parameters are available in the `Apt::Proxy` data type:
1093
1094 * [`ensure`](#ensure)
1095 * [`host`](#host)
1096 * [`port`](#port)
1097 * [`https`](#https)
1098 * [`direct`](#direct)
1099
1100 ##### <a name="ensure"></a>`ensure`
1101
1102 Specifies whether the proxy should exist. Valid options: 'file', 'present', and 'absent'. Prefer 'file' over 'present'.
1103
1104 ##### <a name="host"></a>`host`
1105
1106 Specifies a proxy host to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: a string containing a hostname.
1107
1108 ##### <a name="port"></a>`port`
1109
1110 Specifies a proxy port to be stored in `/etc/apt/apt.conf.d/01proxy`. Valid options: an integer containing a port number.
1111
1112 ##### <a name="https"></a>`https`
1113
1114 Specifies whether to enable https proxies.
1115
1116 ##### <a name="direct"></a>`direct`
1117
1118 Specifies whether or not to use a `DIRECT` https proxy if http proxy is used but https is not.
1119
1120 ## Tasks
1121
1122 ### <a name="init"></a>`init`
1123
1124 Allows you to perform apt functions
1125
1126 **Supports noop?** false
1127
1128 #### Parameters
1129
1130 ##### `action`
1131
1132 Data type: `Enum[update, upgrade, dist-upgrade, autoremove]`
1133
1134 Action to perform 
1135