View Source Ash.Resource.Validation behaviour (ash v2.18.2)
Represents a validation in Ash.
See Ash.Resource.Validation.Builtins
for a list of builtin validations.
To write your own validation, define a module that implements the init/1
callback
to validate options at compile time, and validate/2
callback to do the validation.
Then, in a resource, you can say:
validations do
validate {MyValidation, [foo: :bar]}
end
Summary
Types
Callbacks
@callback atomic(changeset :: Ash.Changeset.t(), opts :: Keyword.t()) :: :ok | {:atomic, involved_fields :: [atom()] | :*, condition_expr :: Ash.Expr.t(), error_expr :: Ash.Expr.t()} | [ {:atomic, involved_fields :: [atom()] | :*, condition_expr :: Ash.Expr.t(), error_expr :: Ash.Expr.t()} ] | :not_atomic | {:error, term()}
@callback validate(changeset :: Ash.Changeset.t(), opts :: Keyword.t()) :: :ok | {:error, term()}