#
View Source Ash.Resource.Builder (ash v2.6.31)

Tools for transforming resources in DSL Transformers.

# Link to this section Summary

## Functions

add_action(dsl_state, type, name, opts \\ [])

Builds and adds an action

add_attribute(dsl_state, name, type, opts \\ [])

Builds and adds an attribute to a resource

add_calculation(dsl_state, name, type, calculation, opts \\ [])

Builds and adds a calculation to a resource

add_change(dsl_state, ref, opts \\ [])

Builds and adds a change

add_create_timestamp(dsl_state, name, opts \\ [])

Builds and adds a create_timestamp to a resource

add_identity(dsl_state, name, fields, opts \\ [])

Builds and adds an identity

add_new_action(dsl_state, type, name, opts \\ [])

Builds and adds a new action unless an action with that name already exists

add_new_attribute(dsl_state, name, type, opts \\ [])

Builds and adds an attribute unless an attribute with that name already exists

add_new_calculation(dsl_state, name, type, calculation, opts \\ [])

Builds and adds a calculation unless a calculation with that name already exists

add_new_create_timestamp(dsl_state, name, opts \\ [])

Builds and adds a create_timestamp unless a create_timestamp with that name already exists

add_new_identity(dsl_state, name, fields, opts \\ [])

Builds and adds a new identity unless an identity with that name already exists

add_new_relationship(dsl_state, type, name, destination, opts \\ [])

Builds and adds a new relationship unless a relationship with that name already exists

add_new_update_timestamp(dsl_state, name, opts \\ [])

Builds and adds an update_timestamp unless an update_timestamp with that name already exists

add_preparation(dsl_state, ref, opts \\ [])

Builds and adds a preparation

add_relationship(dsl_state, type, name, destination, opts \\ [])

Builds and adds an action

add_update_timestamp(dsl_state, name, opts \\ [])

Builds and adds an update_timestamp

build_action(type, name, opts \\ [])

Builds an action

build_action_argument(name, type, opts \\ [])

Builds an action argument

build_action_change(change, opts \\ [])

Builds an action change

build_action_metadata(name, type, opts \\ [])

Builds an action metadata

build_attribute(name, type, opts \\ [])

Builds an attribute with the given name, type, and options

build_calculation(name, type, calculation, opts \\ [])

Builds a calculation with the given name, type, and options

build_change(ref, opts \\ [])

Builds a change

build_create_timestamp(name, opts \\ [])

Builds an create_timestamp with the given name, type, and options

build_identity(name, fields, opts \\ [])

Builds an action

build_pagination(opts \\ [])

Builds a pagination object

build_preparation(ref, opts \\ [])

Builds a preparation

build_relationship(type, name, destination, opts \\ [])

Builds a relationship

build_update_timestamp(name, opts \\ [])

Builds an update_timestamp with the given name, type, and options

# Link to this section Functions

Link to this function

# add_action(dsl_state, type, name, opts \\ [])

View Source

    @spec add_action(
      Spark.Dsl.Builder.input(),
      type :: Ash.Resource.Actions.action_type(),
      name :: atom(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds an action

Link to this function

# add_attribute(dsl_state, name, type, opts \\ [])

View Source

    @spec add_attribute(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      type :: Ash.Type.t(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds an attribute to a resource

Link to this function

# add_calculation(dsl_state, name, type, calculation, opts \\ [])

View Source

    @spec add_calculation(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      type :: Ash.Type.t(),
      calculation :: module() | {module(), Keyword.t()},
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a calculation to a resource

Link to this function

# add_change(dsl_state, ref, opts \\ [])

View Source

    @spec add_change(
      Spark.Dsl.Builder.input(),
      ref :: module() | {module(), Keyword.t()},
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a change

Link to this function

# add_create_timestamp(dsl_state, name, opts \\ [])

View Source

    @spec add_create_timestamp(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a create_timestamp to a resource

Link to this function

# add_identity(dsl_state, name, fields, opts \\ [])

View Source

    @spec add_identity(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      fields :: atom() | [atom()],
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds an identity

Link to this function

# add_new_action(dsl_state, type, name, opts \\ [])

View Source

    @spec add_new_action(
      Spark.Dsl.Builder.input(),
      type :: Ash.Resource.Actions.action_type(),
      name :: atom(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a new action unless an action with that name already exists

Link to this function

# add_new_attribute(dsl_state, name, type, opts \\ [])

View Source

    @spec add_new_attribute(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      type :: Ash.Type.t(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds an attribute unless an attribute with that name already exists

Link to this function

# add_new_calculation(dsl_state, name, type, calculation, opts \\ [])

View Source

    @spec add_new_calculation(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      type :: Ash.Type.t(),
      calculation :: module() | {module(), Keyword.t()} | Ash.Expr.t(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a calculation unless a calculation with that name already exists

Link to this function

# add_new_create_timestamp(dsl_state, name, opts \\ [])

View Source

    @spec add_new_create_timestamp(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      opts :: Keyword.t()
    ) ::
      Spark.Dsl.Builder.result()

Builds and adds a create_timestamp unless a create_timestamp with that name already exists

Link to this function

# add_new_identity(dsl_state, name, fields, opts \\ [])

View Source

    @spec add_new_identity(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      fields :: atom() | [atom()],
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a new identity unless an identity with that name already exists

Link to this function

# add_new_relationship(dsl_state, type, name, destination, opts \\ [])

View Source

    @spec add_new_relationship(
      Spark.Dsl.Builder.input(),
      type :: Ash.Resource.Relationships.type(),
      name :: atom(),
      destination :: module(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a new relationship unless a relationship with that name already exists

Link to this function

# add_new_update_timestamp(dsl_state, name, opts \\ [])

View Source

    @spec add_new_update_timestamp(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      opts :: Keyword.t()
    ) ::
      Spark.Dsl.Builder.result()

Builds and adds an update_timestamp unless an update_timestamp with that name already exists

Link to this function

# add_preparation(dsl_state, ref, opts \\ [])

View Source

    @spec add_preparation(
      Spark.Dsl.Builder.input(),
      ref :: module() | {module(), Keyword.t()},
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds a preparation

Link to this function

# add_relationship(dsl_state, type, name, destination, opts \\ [])

View Source

    @spec add_relationship(
      Spark.Dsl.Builder.input(),
      type :: Ash.Resource.Relationships.type(),
      name :: atom(),
      destination :: module(),
      opts :: Keyword.t()
    ) :: Spark.Dsl.Builder.result()

Builds and adds an action

Link to this function

# add_update_timestamp(dsl_state, name, opts \\ [])

View Source

    @spec add_update_timestamp(
      Spark.Dsl.Builder.input(),
      name :: atom(),
      opts :: Keyword.t()
    ) ::
      Spark.Dsl.Builder.result()

Builds and adds an update_timestamp

Link to this function

# build_action(type, name, opts \\ [])

View Source

    @spec build_action(
      type :: Ash.Resource.Actions.action_type(),
      name :: atom(),
      opts :: Keyword.t()
    ) :: {:ok, Ash.Resource.Actions.action()} | {:error, term()}

Builds an action

Link to this function

# build_action_argument(name, type, opts \\ [])

View Source

    @spec build_action_argument(name :: atom(), type :: Ash.Type.t(), opts :: Keyword.t()) ::
      {:ok, Ash.Resource.Actions.Argument.t()} | {:error, term()}

Builds an action argument

Link to this function

# build_action_change(change, opts \\ [])

View Source

    @spec build_action_change(change :: Ash.Resource.Change.ref(), opts :: Keyword.t()) ::
      {:ok, Ash.Resource.Change.t()} | {:error, term()}

Builds an action change

Link to this function

# build_action_metadata(name, type, opts \\ [])

View Source

    @spec build_action_metadata(name :: atom(), type :: Ash.Type.t(), opts :: Keyword.t()) ::
      {:ok, Ash.Resource.Actions.Metadata.t()} | {:error, term()}

Builds an action metadata

Link to this function

# build_attribute(name, type, opts \\ [])

View Source

    @spec build_attribute(name :: atom(), type :: Ash.Type.t(), opts :: Keyword.t()) ::
      {:ok, Ash.Resource.Attribute.t()} | {:error, term()}

Builds an attribute with the given name, type, and options

Link to this function

# build_calculation(name, type, calculation, opts \\ [])

View Source

    @spec build_calculation(
      name :: atom(),
      type :: Ash.Type.t(),
      calculation :: module() | {module(), Keyword.t()},
      opts :: Keyword.t()
    ) :: {:ok, Ash.Resource.Calculation.t()} | {:error, term()}

Builds a calculation with the given name, type, and options

Link to this function

# build_change(ref, opts \\ [])

View Source

    @spec build_change(
      ref :: module() | {module(), Keyword.t()},
      opts :: Keyword.t()
    ) :: {:ok, Ash.Resource.Change.t()} | {:error, term()}

Builds a change

Link to this function

# build_create_timestamp(name, opts \\ [])

View Source

    @spec build_create_timestamp(name :: atom(), opts :: Keyword.t()) ::
      {:ok, Ash.Resource.Attribute.t()} | {:error, term()}

Builds an create_timestamp with the given name, type, and options

Link to this function

# build_identity(name, fields, opts \\ [])

View Source

    @spec build_identity(
      name :: atom(),
      fields :: atom() | [atom()],
      opts :: Keyword.t()
    ) :: {:ok, Ash.Resource.Relationships.relationship()} | {:error, term()}

Builds an action

Link to this function

# build_pagination(opts \\ [])

View Source

    @spec build_pagination(pts :: Keyword.t()) ::
      {:ok, Ash.Resource.Actions.Read.Pagination.t()} | {:error, term()}

Builds a pagination object

Link to this function

# build_preparation(ref, opts \\ [])

View Source

    @spec build_preparation(
      ref :: module() | {module(), Keyword.t()},
      opts :: Keyword.t()
    ) :: {:ok, Ash.Resource.Preparation.t()} | {:error, term()}

Builds a preparation

Link to this function

# build_relationship(type, name, destination, opts \\ [])

View Source

    @spec build_relationship(
      type :: Ash.Resource.Relationships.type(),
      name :: atom(),
      destination :: module(),
      opts :: Keyword.t()
    ) :: {:ok, Ash.Resource.Relationships.relationship()} | {:error, term()}

Builds a relationship

Link to this function

# build_update_timestamp(name, opts \\ [])

View Source

    @spec build_update_timestamp(name :: atom(), opts :: Keyword.t()) ::
      {:ok, Ash.Resource.Attribute.t()} | {:error, term()}

Builds an update_timestamp with the given name, type, and options