...
If you're coming from a programming background, classes usually mean OOP. In cfengine, think of them as booleans or flags you define.
Inside an agent "bundle" you can use any of the following "promise types"
- vars
- classes
- outputs
- interfaces
- files
- packages
- environments
- methods
- processes
- services
- commands
- storage
- databases
- reports
They are "executed" in this order. This is very important. Normally the order is exactly what you want, but sometimes it is not. For example you may want a promise in the "commands" section to execute before a promise in "files" section. When this is true, the most straightforward way to to break your bundle into two separate bundles and then change the order in the "inputs" order. Unfortunately your variables are now spread across the two bundles.