The process in 1.1.1 would probably be:
1) Find the last volume by name (Prefix) in a vfiler - That certified one would give you the last volume used in that sequence.
2) Find an aggregate with available capacity in the array that vfiler is in - Should be easy to achieve as well with a certified finder
3) Define a new volume in that array, aggregate and vfiler. Use "nextNamePadded(last_vol.name)" for that volume name
3.1) If no volume was found in that vfiler - Just use all of the above but put your fixed name (The one with 001 suffix) there.
Note that the defines that you will do for 3 and 3.1 would match in name and all other info BUT the name attribute.
Hope that helps in direction,