code: func (p *Provider) BuildConfiguration() (*config.Configuration, error) {
  	ctx := log.With(context.Background(), log.Str(log.ProviderName, providerName))
  
  	if len(p.Directory) > 0 {
  		return p.loadFileConfigFromDirectory(ctx, p.Directory, nil)
  	}
  
  	if len(p.Filename) > 0 {
  		return p.loadFileConfig(p.Filename, true)
  	}
  
  	if len(p.TraefikFile) > 0 {
  		return p.loadFileConfig(p.TraefikFile, false)
  	}
  
  	return nil, errors.New("error using file configuration backend, no filename defined")
  }
docs: // BuildConfiguration loads configuration either from file or a directory specified by 'Filename'/'Directory'
  // and returns a 'Configuration' object