lib/vault/engine/kv/v1.ex

defmodule Vault.Engine.KVV1 do
  @moduledoc """
  Get and Put secrets using the v1 KV Secrets engine.

  See: [Vault Docs](https://www.vaultproject.io/api/secret/kv/kv-v1.html) for details.
  """

  @behaviour Vault.Engine.Adapter

  @doc """
  Gets a value from vault.
  """
  @impl true
  defdelegate read(vault, path, options \\ []), to: Vault.Engine.Generic

  @doc """
  Puts a value in vault.
  """
  @impl true
  defdelegate write(vault, path, value, options \\ []), to: Vault.Engine.Generic

  @doc """
  Lists secrets at a path
  """
  @impl true
  defdelegate list(vault, path, options \\ []), to: Vault.Engine.Generic

  @doc """
  Deletes secrets at a path
  """
  @impl true
  defdelegate delete(vault, path, options \\ []), to: Vault.Engine.Generic
end