I've built some yaml-based templates and python-based loading tools that populate everything from the VRF to the prefix pools and descriptions etc... in a pretty complex setup. It's quite flexible, though you will spend some time inthe docs to get it all working the way you want. NIPAP is all developed in python so it's easy to sift through the code if you need.