#
View Source Ash.Resource.Change behaviour (ash v2.6.31)

The behaviour for an action-specific resource change.

`init/1` is defined automatically by `use Ash.Resource.Change`, but can be implemented if you want to validate/transform any options passed to the module.

The main function is `change/3`. It takes the changeset, any options that were provided when this change was configured on a resource, and the context, which currently only has the actor.

# Link to this section Summary

## Types

context()
ref()
t()

## Callbacks

change(t, t, context)
init(t)

# Link to this section Types

Link to this type

# context()

View Source

    @type context() :: %{
      optional(:actor) => Ash.Resource.record(),
      optional(any()) => any()
    }

Link to this type

# ref()

View Source

    @type ref() :: {module(), Keyword.t()} | module()

Link to this type

# t()

View Source

    @type t() :: %Ash.Resource.Change{
      change: term(),
      description: term(),
      on: term(),
      only_when_valid?: term(),
      where: term()
    }

# Link to this section Callbacks

Link to this callback

# change(t, t, context)

View Source

    @callback change(Ash.Changeset.t(), Keyword.t(), context()) :: Ash.Changeset.t()

Link to this callback

# init(t)

View Source

    @callback init(Keyword.t()) :: {:ok, Keyword.t()} | {:error, term()}