public IVaultKeyValueEngine CreateEngine(VaultConfigurationSource source)
        {
            var clientSettings = source.AsVaultClientSettings();
            var client         = new VaultClient(clientSettings);

            switch (source.Engine.Version)
            {
            case VaultKeyValueEngineVersion.V1:
                return(new VaultKeyValueEngineV1(client, source));

            case VaultKeyValueEngineVersion.V2:
                return(new VaultKeyValueEngineV2(client, source));

            default:
                throw new ArgumentOutOfRangeException(nameof(VaultKeyValueEngineVersion));
            }
        }
 public VaultKeyValueEngineV1(VaultClient client, VaultConfigurationSource source) : base(client, source)
 {
 }
 protected VaultKeyValueEngine(VaultClient client, VaultConfigurationSource source)
 {
     Client = client;
     Source = source;
     Name   = source.Engine.Name;
 }