Hardware models define the data for a node's hardware. If it's a router or a switch, the type of file transfers it supports, and the name and location of its bootfile (useful for OS upgrades). Hardware can be linked through a template, which will link it to all nodes that use it.
The hardware models can be used to make distinctions. You could have one hardware model for a vendor type. Or you could define multiple models per vendor, each with specific entries to be able to differentiate template syntax on those values and/or make use of the OS upgrade functionality, where you could define different OS version for the same system depending on their function.
A lot of models are already available for you, these can be modified to your needs. If a certain model doesn't exist yet, you may add it yourself.
For each model you define at least, the:
Each vendor_type has a default file transfer method, this can be found along with the supported hardware.
Do note that once you define a hardware model, you cannot rename it or change its vendor type. This is because of all the templates that are already linked to this name. You also cannot delete a hardware model that has been linked to at least one template.