View Source Ash.ActionInput (ash v3.3.0)

Input for a custom action

Summary

Functions

Adds an error to the input errors list, and marks the input as valid?: false

Fetches the value of an argument provided to the input or :error.

Creates a new input for a generic action

Gets the value of an argument provided to the input.

Set an argument value

Deep merges the provided map into the input context that can be used later

Types

@type t() :: %Ash.ActionInput{
  action: Ash.Resource.Actions.Action.t() | nil,
  arguments: map(),
  context: map(),
  domain: Ash.Domain.t(),
  errors: term(),
  invalid_keys: MapSet.t(),
  params: map(),
  resource: Ash.Resource.t(),
  tenant: term(),
  valid?: boolean()
}

Functions

Link to this function

add_error(input, errors, path \\ [])

View Source

Adds an error to the input errors list, and marks the input as valid?: false

Link to this function

fetch_argument(input, argument)

View Source
@spec fetch_argument(t(), atom() | String.t()) :: {:ok, term()} | :error

Fetches the value of an argument provided to the input or :error.

Link to this function

for_action(resource_or_input, action, params, opts \\ [])

View Source
@spec for_action(
  resource_or_input :: Ash.Resource.t() | t(),
  action :: atom(),
  params :: map(),
  opts :: Keyword.t()
) :: t()

Creates a new input for a generic action

Link to this function

get_argument(input, argument)

View Source
@spec get_argument(t(), atom() | String.t()) :: term()

Gets the value of an argument provided to the input.

Link to this function

new(resource, domain \\ nil)

View Source
Link to this function

set_argument(input, argument, value)

View Source
@spec set_argument(input :: t(), name :: atom(), value :: term()) :: t()

Set an argument value

@spec set_context(t(), map() | nil) :: t()

Deep merges the provided map into the input context that can be used later

Do not use the private key in your custom context, as that is reserved for internal use.

Link to this function

set_tenant(input, tenant)

View Source
@spec set_tenant(t(), Ash.ToTenant.t()) :: t()