diff options
Diffstat (limited to 'apps/dreki/src/dreki.hrl')
-rw-r--r-- | apps/dreki/src/dreki.hrl | 36 |
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{}. + |