in main.go [202:242]
func getResourceGroupClient(o options) (*armresources.ResourceGroupsClient, error) {
options := arm.ClientOptions{
ClientOptions: azcore.ClientOptions{
Cloud: cloud.AzurePublic,
},
}
possibleTokens := []azcore.TokenCredential{}
if o.identity {
micOptions := azidentity.ManagedIdentityCredentialOptions{
ID: azidentity.ClientID(o.clientID),
}
miCred, err := azidentity.NewManagedIdentityCredential(&micOptions)
if err != nil {
return nil, err
}
possibleTokens = append(possibleTokens, miCred)
} else if o.clientSecret != "" {
spCred, err := azidentity.NewClientSecretCredential(o.tenantID, o.clientID, o.clientSecret, nil)
if err != nil {
return nil, err
}
possibleTokens = append(possibleTokens, spCred)
} else if o.cli {
cliCred, err := azidentity.NewAzureCLICredential(nil)
if err != nil {
return nil, err
}
possibleTokens = append(possibleTokens, cliCred)
} else {
log.Println("unknown login option. login may not succeed")
}
chain, err := azidentity.NewChainedTokenCredential(possibleTokens, nil)
if err != nil {
return nil, err
}
resourceGroupClient, err := armresources.NewResourceGroupsClient(o.subscriptionID, chain, &options)
if err != nil {
return nil, err
}
return resourceGroupClient, nil
}