public static IConfigurationBuilder AddEtcd(
            this IConfigurationBuilder configurationBuilder,
            IEtcdClient client,
            Action <EtcdOptions>?configureOptions = null)
        {
            var options = new EtcdOptions();

            configureOptions?.Invoke(options);

            return(configurationBuilder.Add(new EtcdConfigurationSource(options, client)));
        }
 public EtcdConfigurationProvider(EtcdOptions options, IEtcdClient client)
 {
     this.options = options;
     this.client  = client;
     if (options.Refreshers.Any())
     {
         // Register refreshers
         foreach (var refresher in options.Refreshers)
         {
             refresherRegistrations.Add(ChangeToken.OnChange(
                                            () => refresher.ProduceChangeToken(client),
                                            () => Data.Clear()));
         }
     }
 }