This PR adds service account impersonation. It uses a generic Box<dyn ServiceAccount> to get the source token and then uses that token to refresh the impersonated account from the service_account_impersonation_url.
Tested with GOOGLE_APPLICATION_CREDENTIALS and ~/.config/gcloud/application_default_credentials.json and verified the new tagged enum is used in both cases
Tested with service account key, user creds, and an impersonated service account and verified that I can make API calls
This PR adds service account impersonation. It uses a generic
Box<dyn ServiceAccount>
to get the source token and then uses that token to refresh the impersonated account from theservice_account_impersonation_url
.