@@ -79,12 +79,13 @@ func dataSourceGoogleServiceAccountIdTokenRead(d *schema.ResourceData, meta inte
7979 return fmt .Errorf ("error calling getCredentials(): %v" , err )
8080 }
8181
82- // If the source credential is not a service account key, use the API to generate the idToken
83- if creds .JSON == nil {
82+ targetServiceAccount := d .Get ("target_service_account" ).(string )
83+ // If a target service account is provided, use the API to generate the idToken
84+ if targetServiceAccount != "" {
8485 // Use
8586 // https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/generateIdToken
8687 service := config .NewIamCredentialsClient (userAgent )
87- name := fmt .Sprintf ("projects/-/serviceAccounts/%s" , d . Get ( "target_service_account" ).( string ) )
88+ name := fmt .Sprintf ("projects/-/serviceAccounts/%s" , targetServiceAccount )
8889 tokenRequest := & iamcredentials.GenerateIdTokenRequest {
8990 Audience : targetAudience ,
9091 IncludeEmail : d .Get ("include_email" ).(bool ),
@@ -95,7 +96,7 @@ func dataSourceGoogleServiceAccountIdTokenRead(d *schema.ResourceData, meta inte
9596 return fmt .Errorf ("error calling iamcredentials.GenerateIdToken: %v" , err )
9697 }
9798
98- d .SetId (d . Get ( "target_service_account" ).( string ) )
99+ d .SetId (targetServiceAccount )
99100 if err := d .Set ("id_token" , at .Token ); err != nil {
100101 return fmt .Errorf ("Error setting id_token: %s" , err )
101102 }
0 commit comments