Support changing allowed udf choices

This is just the backend on the udf def class