in internal/flavors/assetinventory/strategy.go [50:78]
func (s *strategy) NewAssetInventory(ctx context.Context, client beat.Client) (inventory.AssetInventory, error) {
var fetchers []inventory.AssetFetcher
var err error
switch s.cfg.AssetInventoryProvider {
case config.ProviderAWS:
switch s.cfg.CloudConfig.Aws.AccountType {
case config.SingleAccount, config.OrganizationAccount:
fetchers, err = s.initAwsFetchers(ctx)
default:
err = fmt.Errorf("unsupported account_type: %q", s.cfg.CloudConfig.Aws.AccountType)
}
case config.ProviderAzure:
fetchers, err = s.initAzureFetchers(ctx)
case config.ProviderGCP:
fetchers, err = s.initGcpFetchers(ctx)
case "":
err = errors.New("missing config.v1.asset_inventory_provider setting")
default:
err = fmt.Errorf("unsupported Asset Inventory provider %q", s.cfg.AssetInventoryProvider)
}
if err != nil {
return inventory.AssetInventory{}, err
}
s.logger.Infof("Creating %s AssetInventory", strings.ToUpper(s.cfg.AssetInventoryProvider))
now := func() time.Time { return time.Now() } //nolint:gocritic
return inventory.NewAssetInventory(s.logger, fetchers, client, now, s.cfg.Period), nil
}