lib/vault/engine/adapter.ex

defmodule Vault.Engine.Adapter do
  @moduledoc """
  Adapter specificication for Vault Secret Engines
  """

  @type vault :: Vault.t()
  @type path :: String.t()
  @type value :: term
  @type token :: String.t()
  @type options :: list()

  @type data :: term
  @type errors :: list()

  @type response :: {:ok, data} | {:error, errors}

  @callback read(vault, path, options) :: response

  @callback write(vault, path, value, options) :: response

  @callback list(vault, path, options) :: response

  @callback delete(vault, path, options) :: response
end