code: func (az *Cloud) getStorageAccounts(matchingAccountType, matchingAccountKind, resourceGroup, matchingLocation string) ([]accountWithLocation, error) {
  	ctx, cancel := getContextWithCancel()
  	defer cancel()
  	result, err := az.StorageAccountClient.ListByResourceGroup(ctx, resourceGroup)
  	if err != nil {
  		return nil, err
  	}
  	if result.Value == nil {
  		return nil, fmt.Errorf("unexpected error when listing storage accounts from resource group %s", resourceGroup)
  	}
  
  	accounts := []accountWithLocation{}
  	for _, acct := range *result.Value {
  		if acct.Name != nil && acct.Location != nil && acct.Sku != nil {
  			storageType := string((*acct.Sku).Name)
  			if matchingAccountType != "" && !strings.EqualFold(matchingAccountType, storageType) {
  				continue
  			}
  
  			if matchingAccountKind != "" && !strings.EqualFold(matchingAccountKind, string(acct.Kind)) {
  				continue
  			}
  
  			location := *acct.Location
  			if matchingLocation != "" && !strings.EqualFold(matchingLocation, location) {
  				continue
  			}
  			accounts = append(accounts, accountWithLocation{Name: *acct.Name, StorageType: storageType, Location: location})
  		}
  	}
  
  	return accounts, nil
  }
docs: // getStorageAccounts gets name, type, location of all storage accounts in a resource group which matches matchingAccountType, matchingLocation