func getResourceGroupClient()

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
}