View Source Ash.Resource (ash v3.4.44)

A resource is a static definition of an entity in your system.

Resource DSL documentation

Options

  • :simple_notifiers (list of module that adopts Ash.Notifier) - Notifiers with no DSL.

  • :validate_domain_inclusion? (boolean/0) - Whether or not to validate that this resource is included in a domain. The default value is true.

  • :domain (module that adopts Ash.Domain) - The domain to use when interacting with this resource. Also sets defaults for various options that ask for a domain.

  • :embed_nil_values? (boolean/0) - Whether or not to include keys with nil values in an embedded representation. Has no effect unless resource is an embedded resource. The default value is true.

  • :extensions (list of module that adopts Spark.Dsl.Extension) - A list of DSL extensions to add to the Spark.Dsl

  • :data_layer (module that adopts Ash.DataLayer) - data_layer extensions to add to the Spark.Dsl The default value is Ash.DataLayer.Simple.

  • :authorizers (one or a list of module that adopts Ash.Authorizer) - authorizers extensions to add to the Spark.Dsl The default value is [].

  • :notifiers (one or a list of module that adopts Ash.Notifier) - notifiers extensions to add to the Spark.Dsl The default value is [].

  • :otp_app (atom/0) - The otp_app to use for any application configurable options

  • :fragments (list of module/0) - Fragments to include in the Spark.Dsl. See the fragments guide for more.

Summary

Functions

Returns true if the load or path to load has been loaded

Sets a loaded key or path to a key back to its original unloaded stated

Sets a list of loaded key or paths to a key back to their original unloaded stated

Types

record()

@type record() :: struct()

t()

@type t() :: module()

Functions

get_metadata(record, key_or_path)

@spec get_metadata(record(), atom() | [atom()]) :: term()

loaded?(data, path, opts \\ [])

@spec loaded?(
  nil | [record()] | record() | Ash.Page.page(),
  atom() | Ash.Query.Calculation.t() | Ash.Query.Aggregate.t() | [atom()],
  opts :: Keyword.t()
) :: boolean()

Returns true if the load or path to load has been loaded

Options

  • lists: set to :any to have this return true if any record in a list that appears has the value loaded. Default is :all.
  • unknown: set to true to have unknown paths (like nil values or non-resources) return true. Defaults to false
  • strict?: set to true to return false if a calculation with arguments is being checked

put_metadata(record, key, term)

@spec put_metadata(record(), atom(), term()) :: record()

selected?(record, field)

@spec selected?(record(), atom()) :: boolean()

set_metadata(record, map)

@spec set_metadata(record(), map()) :: record()

unload(page, path)

@spec unload(
  nil | [record()] | record() | Ash.Page.page(),
  atom() | [atom()]
) :: nil | [record()] | record() | Ash.Page.page()

Sets a loaded key or path to a key back to its original unloaded stated

unload_many(data, paths)

@spec unload_many(
  nil | [record()] | record() | Ash.Page.page(),
  [atom()] | [[atom()]]
) :: nil | [record()] | record() | Ash.Page.page()

Sets a list of loaded key or paths to a key back to their original unloaded stated