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