Possible to construct a Niagara or Cascade system in C++

So for a project/tool that I’m working on I would like to be able to construct a new Niagara system via C++ or some other scripting language. Basically I want to automate a portion of building a Niagara system (or cascade if I can’t do it with Niagara) for the user and so I need a way to create and edit that uasset.

Does anyone know how I would go about doing this, or some places I can look into it?