Provision VM and have API to allot VMs


I want to provision VMs on my hyper-V servers using Chef. Install 3rd party via chef.
Also i need to expose an API that will return random free VMS from the pool. VM allotted to one request should not be available for other requests. Have another API that returns the VM back to the pool. API Will take OS type and 3rd party list as input and provide VMs that satisfy the given criteria.

Step1: i want pool of 100 VMS pre-created ( both windows and unix)
Step2: Have API to allocate VMs.

Is this possible with chef , any guidance is greatly appreciated.