moving a lot of validation for cluster create requests from

solve time to request time, as well as adding additional checks
for required provider fields.
does it make sense to incapsulate this in LeaseDuration?