Are datastore and provider_name required? Plus I would like to see it pass either the provider object, or the provider key, the "name" is a little too high lever detail. Or am I wrong?