Interface that defines how calling application needs to expose data to upload,
so that client can upload it to multiple stores (or for possible
retries) as necessary.
Methods are typically called in order of:
until non-null response is received; not that most implementations return null
from one or more of methods, to indicate that they are not optimal accessors.