aboutsummaryrefslogtreecommitdiff
path: root/apps/dreki/src/dreki.hrl
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dreki/src/dreki.hrl')
-rw-r--r--apps/dreki/src/dreki.hrl36
1 files changed, 36 insertions, 0 deletions
diff --git a/apps/dreki/src/dreki.hrl b/apps/dreki/src/dreki.hrl
new file mode 100644
index 0000000..f1a8815
--- /dev/null
+++ b/apps/dreki/src/dreki.hrl
@@ -0,0 +1,36 @@
+-type dreki_id() :: binary().
+-type dreki_urn() :: binary().
+-type dreki_uri() :: dreki_urn() | binary().
+-type dreki_domain() :: binary().
+-type dreki_infrastructure_domain() :: dreki_domain().
+
+-type dreki_kind() :: task | node | region.
+-type dreki_stores() :: tasks | nodes | regions.
+
+-type dreki_expanded_uri_resource() :: dreki_xuri_resource() | dreki_xuri_store() | dreki_xuri_resolve().
+-type dreki_xuri_resource() :: #{resource := #{id := dreki_id(), kind := dreki_stores(), store := dreki_id()}}.
+-type dreki_xuri_store() :: #{store := #{id := dreki_id(), kind := dreki_stores()}}.
+-type dreki_xuri_resolve() :: #{resolve := #{id := dreki_id(), kind := dreki_stores()}}.
+
+-type dreki_expanded_uri() :: #{
+ uri := dreki_uri(),
+ domain := dreki_infrastructure_domain(),
+ kind := dreki_kind(),
+ path := dreki_uri(),
+ resource := dreki_expanded_uri_resource()
+}.
+
+-type dreki_task_handler() :: dreki_task_v1.
+-record(dreki_task, {
+ id :: dreki_id(),
+ uri :: dreki_uri(),
+ handler=dreki_task_v1 :: dreki_task_handler(),
+ description :: undefined | binary(),
+ roles=[] :: [binary()],
+ tags=[] :: [binary()],
+ params=#{} :: #{},
+ persisted=false :: boolean(),
+ dirty=false :: boolean()
+}).
+-type dreki_task() :: #dreki_task{}.
+