A computer-implemented method for defining a flexible policy for controlling network traffic of a computing device, the method comprising: receiving information describing one or more network settings that determine how the computing device can send communications over one or more networks; receiving one or more policy elements from a policy administrator that define values for one or more particular network settings; if the policy administrator indicates a destination to which to send messages for the policy, receiving a destination to which to deliver messages for the policy; storing a policy, defined at least in part by any received policy elements and destination, in a data store for deployment and use by the computing device; and deploying the defined policy to one or more computing devices; at the one or more computing devices, receiving a request to transfer data from an application running on a computing device that has at least one network transport over which to send network data to a destination; accessing the deployed policy that specifies conditions for selecting one or more network conditions based on at least one selection criteria comprising determining one or more environmental factors of the computing device and used by the policy, and comparing the determined environmental factors to rules in the policy to select appropriate network conditions that satisfy the policy, wherein the one or more environmental factors comprise the current battery level of the computing device; and completing the requested data transfer using the selected network conditions, wherein the preceding steps are performed by at least one processor, and wherein receiving the destination comprises defining a policy that overrides the destination under some conditions and does not override the destination under other conditions, wherein at least one condition is the battery level of the computing device. receiving information describing one or more network settings that determine how the computing device can send communications over one or more networks; receiving one or more policy elements from a policy administrator that define values for one or more particular network settings; if the policy administrator indicates a destination to which to send messages for the policy, receiving a destination to which to deliver messages for the policy; storing a policy, defined at least in part by any received policy elements and destination, in a data store for deployment and use by the computing device; and deploying the defined policy to one or more computing devices; at the one or more computing devices, receiving a request to transfer data from an application running on a computing device that has at least one network transport over which to send network data to a destination; accessing the deployed policy that specifies conditions for selecting one or more network conditions based on at least one selection criteria comprising determining one or more environmental factors of the computing device and used by the policy, and comparing the determined environmental factors to rules in the policy to select appropriate network conditions that satisfy the policy, wherein the one or more environmental factors comprise the current battery level of the computing device; and completing the requested data transfer using the selected network conditions, wherein the preceding steps are performed by at least one processor, and wherein receiving the destination comprises defining a policy that overrides the destination under some conditions and does not override the destination under other conditions, wherein at least one condition is the battery level of the computing device.