1. A computer-implemented method for provisioning a hosted computing environment according to user-specified input, comprising: causing a graphical interface to be generated on a computing device; receiving, via the graphical user interface, one or more requirements relating to running a service in a hosted computing environment; converting the received requirements into corresponding entries populating a provisioning template having a plurality of entries; if, as a result of the converting, all entries of the provisioning template have been populated, providing the provisioning template to a provisioning program to provision the hosted computing environment for the service; and if one or more entries of the provisioning template remain unpopulated after the converting, then: automatically determining additional requirements for provisioning the hosted computing environment based on a rule and the received requirements; and populating additional entries based on the determined additional requirements to complete the provisioning template, wherein the template specifies hardware or a virtual machine environment configured to meet the requirements.