aboutsummaryrefslogtreecommitdiff
path: root/apps/dreki/src/store/dreki_store_namespace.erl
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dreki/src/store/dreki_store_namespace.erl')
-rw-r--r--apps/dreki/src/store/dreki_store_namespace.erl14
1 files changed, 14 insertions, 0 deletions
diff --git a/apps/dreki/src/store/dreki_store_namespace.erl b/apps/dreki/src/store/dreki_store_namespace.erl
new file mode 100644
index 0000000..3095ef7
--- /dev/null
+++ b/apps/dreki/src/store/dreki_store_namespace.erl
@@ -0,0 +1,14 @@
+-module(dreki_store_namespace).
+-include("dreki.hrl").
+
+-type t() :: module().
+
+-type item() :: any().
+-type collection() :: [item()].
+-type name() :: binary().
+
+-callback start() -> ok | {error, any()}.
+-callback format_item(item()) -> ok | {ok, item()} | ignore.
+-callback valid_store(name(), Location :: dreki_urn:urn(), StoreName :: binary(), BackendModule :: module()) -> ok | {error, any()}.
+-callback version() -> non_neg_integer().
+-callback schemas() -> #{default := Id :: binary(), Id :: binary() => #{default_version := Vsn :: binary(), Vsn :: binary => Schema :: #{}}}.