I've recently tried libvirt api to manage virtual machine.
The point of my work is to modify the topology of a virtual machine and test performances (add numa nodes, change number of cpu per numa, nvm devices, cxl, etc)
As far as  understand, when using virt-manager, qemu arguments stored in xml files can only be like the one that page:

But maybe I misundertood?

For example, when I directly run qemu with arguments, I can add an arguments like this:
qemu  [...] -object memory-backend-ram,size=4G,id=ram0
                 -object memory-backend-ram,size=2G,id=ram1
                 -numa node,nodeid=0,memdev=ram0,cpus=0-3
                 -numa node,nodeid=1,memdev=ram1,cpus=4-7

To have 2 numa nodes with 4 cpus each.
Is there an equivalent of -objet, -numa, -device; qemu arguments when using libvirt? Or arguments are restricted to the one described on wiki page?

Thanks for you help,
Have a good day,
Pierre Clouzet