CUPS: Hold and release jobs using IPP Hold-New-Job or cupsdisable --hold and cupsenable --release

Hello everyone !
am working on a project where I am using CUPS as a printer server. I want to hold all new printer jobs, check the cartridge levels of my printer and one by one release jobs for printing. I want to enable the hold-new-jobs attribute on a specific printer in CUPS . After this, I have to find out how to get all jobs that are on-hold and release one (by job ID, or so using FIFO) For completeness: If cartridges are below a threshold, the jobs are held until cartridges are reset and a button is pressed. (The implementation can be done also through cupsdisable --hold and cupsenable --release )

There is no example of IPPRequests for pycups. Note that I am searching for a solution using pycups in Python or <cups/cups.h> in C (if there are other librairies that can be used please mention then)