GNU cfengine
3.4.4 Feedback classes
Classes may be defined as the result of actions being carried out by
cfagent. For example, if a file gets copied, needs to be edited or if
diskspace falls under a certain threshhold, cfagent can be made to
respond by activating classes at runtime. This allows you to create
dynamically responsive programs which react to the changing environment.
These classes are defined as part of other statements with clauses
of the form
Classes like these should generally be declared at the start of a program
unless the define statements always precede the actions which
use the defined classes, with addinstallable.