Search documentation of ash

# View Source Ash.Resource (ash v3.4.30)

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

## Types

record()
t()

## Functions

get_metadata(record, key_or_path)
loaded?(data, path, opts \\ [])

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

put_metadata(record, key, term)
selected?(record, field)
set_metadata(record, map)
unload(page, path)

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

unload_many(data, paths)

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

# Types

Link to this type

# record()

View Source

    @type record() :: struct()

Link to this type

# t()

View Source

    @type t() :: module()

# Functions

Link to this function

# get_metadata(record, key_or_path)

View Source

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

Link to this function

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

View Source

    @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

Link to this function

# put_metadata(record, key, term)

View Source

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

Link to this function

# selected?(record, field)

View Source

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

Link to this function

# set_metadata(record, map)

View Source

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

Link to this function

# unload(page, path)

View Source

    @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

Link to this function

# unload_many(data, paths)

View Source

    @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