# ash 3.12.0

ash documentation index for Large Language Models.

## Modules

- [Ash](Ash.md): The primary interface to call actions and interact with resources.
- [Ash.ActionInput](Ash.ActionInput.md): Input for a custom action
- [Ash.Changeset](Ash.Changeset.md): Changesets are used to create and update data in Ash.
- [Ash.Query](Ash.Query.md): A data structure for reading data from a resource.
- [Ash.CodeInterface](Ash.CodeInterface.md): Used to define the functions of a code interface for a resource.
- [Ash.Domain](Ash.Domain.md): A domain allows you to interact with your resources, and holds domain-wide configuration.
- [Ash.Notifier](Ash.Notifier.md): A notifier is an extension that receives various events
- [Ash.Notifier.Notification](Ash.Notifier.Notification.md): Represents a notification that will be handled by a resource's notifiers
- [Ash.Resource.Calculation](Ash.Resource.Calculation.md): The behaviour for defining a module calculation, and the struct for storing a defined calculation.
- [Ash.Resource.Calculation.Builtins](Ash.Resource.Calculation.Builtins.md): Built in calculations that are automatically imported in the calculations section
- [Ash.Resource.ManualCreate](Ash.Resource.ManualCreate.md): A module to implement manual create actions.
- [Ash.Resource.ManualDestroy](Ash.Resource.ManualDestroy.md): A module to implement manual destroy actions.
- [Ash.Resource.ManualRead](Ash.Resource.ManualRead.md): A module to implement manual read actions.
- [Ash.Resource.ManualRelationship](Ash.Resource.ManualRelationship.md): A module to implement manual relationships.
- [Ash.Resource.ManualUpdate](Ash.Resource.ManualUpdate.md): A module to implement manual update actions.
- [Ash.Query.Aggregate](Ash.Query.Aggregate.md): Represents an aggregated association value
- [Ash.Query.Calculation](Ash.Query.Calculation.md): Represents a calculated attribute requested on a query
- [Ash.Resource.Preparation](Ash.Resource.Preparation.md): The behaviour for an action-specific query preparation.
- [Ash.Resource.Preparation.Builtins](Ash.Resource.Preparation.Builtins.md): Builtin query preparations
- [Ash.Resource.Change](Ash.Resource.Change.md): The behaviour for an action-specific resource change.
- [Ash.Resource.Change.Builtins](Ash.Resource.Change.Builtins.md): Built in changes that are available to all resources
- [Ash.Resource.Validation](Ash.Resource.Validation.md): Represents a validation in Ash.
- [Ash.Resource.Validation.Builtins](Ash.Resource.Validation.Builtins.md): Built in validations that are available to all resources
- [Ash.Authorizer](Ash.Authorizer.md): The interface for an ash authorizer
- [Ash.Policy.Check](Ash.Policy.Check.md): A behaviour for declaring checks, which can be used to easily construct authorization rules.
- [Ash.Policy.FilterCheck](Ash.Policy.FilterCheck.md): A type of check that is represented by a filter statement
- [Ash.Policy.SimpleCheck](Ash.Policy.SimpleCheck.md): A type of check that operates only on request context, never on the data
- [Ash.Policy.Check.Builtins](Ash.Policy.Check.Builtins.md): The global authorization checks built into ash
- [Ash.DataLayer.Ets](Ash.DataLayer.Ets.md): An ETS (Erlang Term Storage) backed Ash Datalayer, for testing and lightweight usage.
- [Ash.DataLayer.Mnesia](Ash.DataLayer.Mnesia.md): An Mnesia backed Ash Datalayer.
- [Ash.DataLayer.Simple](Ash.DataLayer.Simple.md): A data layer that returns structs.
- [Ash.Notifier.PubSub](Ash.Notifier.PubSub.md): A builtin notifier to help you publish events over any kind of pub-sub tooling.
- [Ash.Policy.Authorizer](Ash.Policy.Authorizer.md): An authorization extension for ash resources.
- [Ash.Reactor](Ash.Reactor.md): Ash.Reactor is a Reactor extension which provides steps for working with Ash resources and actions.
- [Ash.Resource](Ash.Resource.md): A resource is a static definition of an entity in your system.
- [Ash.DataLayer.Ets.Info](Ash.DataLayer.Ets.Info.md): Introspection helpers for the Ets data layer
- [Ash.DataLayer.Mnesia.Info](Ash.DataLayer.Mnesia.Info.md): Introspection helpers for Ash.DataLayer.Mnesia
- [Ash.Domain.Info](Ash.Domain.Info.md): Introspection tools for Ash.Domain
- [Ash.Notifier.PubSub.Info](Ash.Notifier.PubSub.Info.md): Introspection helpers for Ash.Notifier.PubSub
- [Ash.Policy.Info](Ash.Policy.Info.md): An authorization extension for ash resources.
- [Ash.Resource.Info](Ash.Resource.Info.md): Introspection for resources
- [Ash.TypedStruct.Info](Ash.TypedStruct.Info.md): Introspection for typed structs
- [Ash.Domain.Info.Diagram](Ash.Domain.Info.Diagram.md): Generate Mermaid diagrams from a specified domain.
- [Ash.Domain.Info.Livebook](Ash.Domain.Info.Livebook.md): Generate a Livebook from a specified domain.
- [Ash.Policy.Chart.Mermaid](Ash.Policy.Chart.Mermaid.md): Generates policy mermaid charts
- [Ash.Generator](Ash.Generator.md): Tools for generating input to Ash resource actions and for generating seed data.
- [Ash.Seed](Ash.Seed.md): Helpers for seeding data, useful for quickly creating lots of data either for database seeding or testing.
- [Ash.Test](Ash.Test.md): Testing helpers for Ash.
- [Ash.Policy.Check.AccessingFrom](Ash.Policy.Check.AccessingFrom.md): This check is true when the current action is being run &quot;through&quot; a relationship.
- [Ash.Policy.Check.Action](Ash.Policy.Check.Action.md): This check is true when the action name matches the provided action name.
- [Ash.Policy.Check.ActionType](Ash.Policy.Check.ActionType.md): This check is true when the action type matches the provided type
- [Ash.Policy.Check.ActorAbsent](Ash.Policy.Check.ActorAbsent.md): This check is true when the actor is nil, and false when the actor is specified.
- [Ash.Policy.Check.ActorAttributeEquals](Ash.Policy.Check.ActorAttributeEquals.md): This check is true when the value of the specified attribute of the actor equals the specified value.
- [Ash.Policy.Check.ActorPresent](Ash.Policy.Check.ActorPresent.md): This check is true when there is an actor specified, and false when the actor is nil.
- [Ash.Policy.Check.ChangingAttributes](Ash.Policy.Check.ChangingAttributes.md): This check is true when attribute changes correspond to the provided options.
- [Ash.Policy.Check.ChangingRelationships](Ash.Policy.Check.ChangingRelationships.md): This check is true when the specified relationship is changing
- [Ash.Policy.Check.ContextEquals](Ash.Policy.Check.ContextEquals.md): This check is true when the value of the specified key or path in the changeset or query context equals the specified value.
- [Ash.Policy.Check.Expression](Ash.Policy.Check.Expression.md): The check module used for exprs in policies
- [Ash.Policy.Check.FilteringOn](Ash.Policy.Check.FilteringOn.md): This check is true when the field provided is being referenced anywhere in a filter statement.
- [Ash.Policy.Check.Loading](Ash.Policy.Check.Loading.md): This check is true when the field or relationship, or path to field, is being loaded and false when it is not.
- [Ash.Policy.Check.Matches](Ash.Policy.Check.Matches.md): This check is true when the specified function returns true
- [Ash.Policy.Check.RelatesToActorVia](Ash.Policy.Check.RelatesToActorVia.md): This check passes if the data relates to the actor via the specified relationship or path of relationships.
- [Ash.Policy.Check.RelatingToActor](Ash.Policy.Check.RelatingToActor.md): This check is true when the specified relationship is being changed to the current actor.
- [Ash.Policy.Check.Resource](Ash.Policy.Check.Resource.md): This check is true when the resource matches the provided resource name or names.
- [Ash.Policy.Check.Selecting](Ash.Policy.Check.Selecting.md): This check is true when the field is being selected and false when it is not.
- [Ash.Policy.Check.Static](Ash.Policy.Check.Static.md): This check is always the result provided
- [Ash.Resource.Change.CascadeDestroy](Ash.Resource.Change.CascadeDestroy.md): Cascade a resource's destroy action to a related resource's destroy action.
- [Ash.Resource.Change.CascadeUpdate](Ash.Resource.Change.CascadeUpdate.md): Cascade a resource's update action to a related resource's update action.
- [Ash.Resource.Change.Context](Ash.Resource.Change.Context.md): The context for a change.
- [Ash.Resource.Change.GetAndLock](Ash.Resource.Change.GetAndLock.md): Refetches the record being updated or destroyed, and locks it with the given type.
- [Ash.Resource.Change.GetAndLockForUpdate](Ash.Resource.Change.GetAndLockForUpdate.md): Refetches the record being updated or destroyed, and locks it for update.
- [Ash.Resource.Change.Increment](Ash.Resource.Change.Increment.md): Increments an attribute's value by the amount specified, which defaults to 1.
- [Ash.Resource.Change.OptimisticLock](Ash.Resource.Change.OptimisticLock.md): Apply an &quot;optimistic lock&quot; on a record being updated or destroyed.
- [Ash.Resource.Validation.ActionIs](Ash.Resource.Validation.ActionIs.md): Validates that the action is the specified action.
- [Ash.Resource.Validation.Context](Ash.Resource.Validation.Context.md): Context for a validation.
- [Ash.Tracer](Ash.Tracer.md): A behaviour for implementing tracing for an Ash application.
- [Ash.Tracer.Simple](Ash.Tracer.Simple.md): A simple tracer that can send traces to the current process or call a module with the trace.
- [Ash.Tracer.Simple.Span](Ash.Tracer.Simple.Span.md): A span produced by Ash.Tracer.Simple
- [Ash.BulkResult](Ash.BulkResult.md): The return value for bulk actions.
- [Ash.Changeset.ManagedRelationshipHelpers](Ash.Changeset.ManagedRelationshipHelpers.md): Tools for introspecting managed relationships.
- [Ash.CiString](Ash.CiString.md): Represents a case insensitive string
- [Ash.Expr](Ash.Expr.md): Tools to build Ash expressions
- [Ash.Filter](Ash.Filter.md): The representation of a filter in Ash.
- [Ash.Filter.Runtime](Ash.Filter.Runtime.md): Tools to checks a record to see if it matches a filter statement, or to evaluate expressions against records.
- [Ash.Filter.Simple](Ash.Filter.Simple.md): Represents a simplified filter, with a simple list of predicates
- [Ash.Filter.Simple.Not](Ash.Filter.Simple.Not.md): A negated predicate
- [Ash.ForbiddenField](Ash.ForbiddenField.md): Represents a field that was hidden due to authorization rules.
- [Ash.Mix.Tasks.Helpers](Ash.Mix.Tasks.Helpers.md): Helpers for Ash Mix tasks.
- [Ash.NotLoaded](Ash.NotLoaded.md): Used when a field hasn't been loaded or selected.
- [Ash.OptionsHelpers](Ash.OptionsHelpers.md): Helpers for working with nimble options
- [Ash.Page](Ash.Page.md): Types for Ash pages
- [Ash.Page.Keyset](Ash.Page.Keyset.md): A page of results from keyset based pagination.
- [Ash.Page.Offset](Ash.Page.Offset.md): A page of results from offset based pagination.
- [Ash.PlugHelpers](Ash.PlugHelpers.md): Helpers for working with the Plug connection.
- [Ash.ProcessHelpers](Ash.ProcessHelpers.md): Helpers for working with processes and Ash actions.
- [Ash.Resource.Builder](Ash.Resource.Builder.md): Tools for transforming resources in DSL Transformers.
- [Ash.SatSolver](Ash.SatSolver.md): No documentation available
- [Ash.Sort](Ash.Sort.md): Utilities and types for sorting.
- [Ash.UUID](Ash.UUID.md): Helpers for working with UUIDs
- [Ash.UUIDv7](Ash.UUIDv7.md): Helpers for working with UUIDs version 7.
- [Ash.Union](Ash.Union.md): A wrapper for values that are sourced from Ash.Type.Union.
- [Ash.Vector](Ash.Vector.md): A vector struct for Ash.
- [Ash.Type](Ash.Type.md): The Ash.Type behaviour is used to define a value type in Ash.
- [Ash.Type.Atom](Ash.Type.Atom.md): Stores an atom as a string in the database
- [Ash.Type.Binary](Ash.Type.Binary.md): Represents a binary.
- [Ash.Type.Boolean](Ash.Type.Boolean.md): Represents a boolean.
- [Ash.Type.CiString](Ash.Type.CiString.md): Stores a case insensitive string in the database
- [Ash.Type.Comparable](Ash.Type.Comparable.md): Helpers for working with Comparable
- [Ash.Type.CompositeTypeHelpers](Ash.Type.CompositeTypeHelpers.md): Shared utilities for composite type validation and error handling.
- [Ash.Type.Date](Ash.Type.Date.md): Represents a date in the database
- [Ash.Type.DateTime](Ash.Type.DateTime.md): Represents a datetime, with configurable precision and timezone.
- [Ash.Type.Decimal](Ash.Type.Decimal.md): Represents a decimal.
- [Ash.Type.Duration](Ash.Type.Duration.md): Represents a Duration
- [Ash.Type.DurationName](Ash.Type.DurationName.md): An interval of time, primarily meant to be used in expression functions
- [Ash.Type.Enum](Ash.Type.Enum.md): A type for abstracting enums into a single type.
- [Ash.Type.File](Ash.Type.File.md): A type that represents a file on the filesystem.
- [Ash.Type.File.Implementation](Ash.Type.File.Implementation.md): Behaviour for file implementations that are compatible with Ash.Type.File.
- [Ash.Type.File.Source](Ash.Type.File.Source.md): Protocol for allowing the casting of something into an Ash.Type.File.
- [Ash.Type.Float](Ash.Type.Float.md): Represents a float (floating point number)
- [Ash.Type.Function](Ash.Type.Function.md): Represents a function.
- [Ash.Type.Integer](Ash.Type.Integer.md): Represents a simple integer
- [Ash.Type.Keyword](Ash.Type.Keyword.md): Represents a keyword list, stored as a :map in the database.
- [Ash.Type.Map](Ash.Type.Map.md): Represents a map stored in the database.
- [Ash.Type.Module](Ash.Type.Module.md): Stores a module as a string in the database.
- [Ash.Type.NaiveDatetime](Ash.Type.NaiveDatetime.md): Represents a Naive datetime
- [Ash.Type.NewType](Ash.Type.NewType.md): Allows defining a new type that is the combination of an existing type and custom constraints
- [Ash.Type.String](Ash.Type.String.md): Stores a string in the database.
- [Ash.Type.Struct](Ash.Type.Struct.md): Represents a struct.
- [Ash.Type.Term](Ash.Type.Term.md): Represents a raw elixir term in the database
- [Ash.Type.Time](Ash.Type.Time.md): Represents a time in the database, with a 'second' precision
- [Ash.Type.TimeUsec](Ash.Type.TimeUsec.md): Represents a time with microsecond precision.
- [Ash.Type.Tuple](Ash.Type.Tuple.md): Represents a tuple stored in the data layer as a map.
- [Ash.Type.UUID](Ash.Type.UUID.md): Represents a UUID.
- [Ash.Type.UUIDv7](Ash.Type.UUIDv7.md): Represents a UUID.
- [Ash.Type.Union](Ash.Type.Union.md): A union between multiple types, distinguished with a tag or by attempting to validate.
- [Ash.Type.UrlEncodedBinary](Ash.Type.UrlEncodedBinary.md): Represents a binary that attempts to decode input strings as a url encoded base64 string.
- [Ash.Type.UtcDatetime](Ash.Type.UtcDatetime.md): Represents a utc datetime, with 'second' precision. A wrapper around :datetime for backwards compatibility.
- [Ash.Type.UtcDatetimeUsec](Ash.Type.UtcDatetimeUsec.md): Represents a utc datetime with microsecond precision. A wrapper around :datetime for backwards compatibility.
- [Ash.Type.Vector](Ash.Type.Vector.md): Represents a vector.
- [Ash.Error](Ash.Error.md): Tools and utilities used by Ash to manage and conform errors
- [Ash.Error.Action.InvalidArgument](Ash.Error.Action.InvalidArgument.md): Used when an invalid value is provided for an action argument
- [Ash.Error.Changes.ActionRequiresActor](Ash.Error.Changes.ActionRequiresActor.md): Used when an actor is referenced in a filter template, but no actor exists
- [Ash.Error.Changes.InvalidArgument](Ash.Error.Changes.InvalidArgument.md): Used when an invalid value is provided for an action argument
- [Ash.Error.Changes.InvalidAttribute](Ash.Error.Changes.InvalidAttribute.md): Used when an invalid value is provided for an attribute change
- [Ash.Error.Changes.InvalidChanges](Ash.Error.Changes.InvalidChanges.md): Used when a change is provided that covers multiple attributes/relationships
- [Ash.Error.Changes.InvalidRelationship](Ash.Error.Changes.InvalidRelationship.md): Used when an invalid value is provided for a relationship change
- [Ash.Error.Changes.NoSuchAttribute](Ash.Error.Changes.NoSuchAttribute.md): Used when a change is provided for an attribute that does not exist
- [Ash.Error.Changes.NoSuchRelationship](Ash.Error.Changes.NoSuchRelationship.md): Used when a change is provided for an relationship that does not exist
- [Ash.Error.Changes.Required](Ash.Error.Changes.Required.md): Used when an attribute or relationship is required
- [Ash.Error.Changes.StaleRecord](Ash.Error.Changes.StaleRecord.md): Used when a stale record is attempted to be updated or deleted
- [Ash.Error.Exception](Ash.Error.Exception.md): Tooling for creating an Ash exception
- [Ash.Error.Forbidden](Ash.Error.Forbidden.md): Used when authorization for an action fails
- [Ash.Error.Forbidden.CannotFilterCreates](Ash.Error.Forbidden.CannotFilterCreates.md): Used when a create action would be filtered
- [Ash.Error.Forbidden.DomainRequiresActor](Ash.Error.Forbidden.DomainRequiresActor.md): Used when a domain that has require_actor? true is provided no actor
- [Ash.Error.Forbidden.DomainRequiresAuthorization](Ash.Error.Forbidden.DomainRequiresAuthorization.md): Used when a domain that has authorize :always is provided authorize?: false
- [Ash.Error.Forbidden.ForbiddenField](Ash.Error.Forbidden.ForbiddenField.md): Raised in cases where access to a specific field was prevented
- [Ash.Error.Forbidden.InitialDataRequired](Ash.Error.Forbidden.InitialDataRequired.md): Used when initial data was not supplied when it was required
- [Ash.Error.Forbidden.MustPassStrictCheck](Ash.Error.Forbidden.MustPassStrictCheck.md): Used when unreachable code/conditions are reached in the framework
- [Ash.Error.Forbidden.Placeholder](Ash.Error.Forbidden.Placeholder.md): A placeholder exception that the user should never see
- [Ash.Error.Forbidden.Policy](Ash.Error.Forbidden.Policy.md): Raised when policy authorization for an action fails
- [Ash.Error.Framework](Ash.Error.Framework.md): Used when an unknown/generic framework error occurs
- [Ash.Error.Framework.AssumptionFailed](Ash.Error.Framework.AssumptionFailed.md): Used when unreachable code/conditions are reached in the framework
- [Ash.Error.Framework.CanNotBeAtomic](Ash.Error.Framework.CanNotBeAtomic.md): Used when a change that is only atomic cannot be done atomically
- [Ash.Error.Framework.FlagAssertionFailed](Ash.Error.Framework.FlagAssertionFailed.md): Used when unreachable code/conditions are reached in the framework
- [Ash.Error.Framework.InvalidReturnType](Ash.Error.Framework.InvalidReturnType.md): Used when a callback returns an invalid type
- [Ash.Error.Framework.MustBeAtomic](Ash.Error.Framework.MustBeAtomic.md): Used when an action that must be atomic cannot be done atomically
- [Ash.Error.Framework.PendingCodegen](Ash.Error.Framework.PendingCodegen.md): Used when an extension has pending code generation and the --check flag is provided
- [Ash.Error.Framework.SynchronousEngineStuck](Ash.Error.Framework.SynchronousEngineStuck.md): Used when the sycnrhonous engine cannot proceed
- [Ash.Error.Framework.UnsupportedSubject](Ash.Error.Framework.UnsupportedSubject.md): Used when a subject is provided to a validation or preparation that it does not support
- [Ash.Error.Invalid](Ash.Error.Invalid.md): The top level invalid error
- [Ash.Error.Invalid.ActionRequiresPagination](Ash.Error.Invalid.ActionRequiresPagination.md): Used when page option is passed but pagination is not enabled.
- [Ash.Error.Invalid.AtomicsNotSupported](Ash.Error.Invalid.AtomicsNotSupported.md): Used when atomics for the given action type are not not supported by the data layer, but one is used.
- [Ash.Error.Invalid.InvalidActionType](Ash.Error.Invalid.InvalidActionType.md): Used when a callback returns an invalid type
- [Ash.Error.Invalid.InvalidCustomInput](Ash.Error.Invalid.InvalidCustomInput.md): Used when an invalid value is provided for a code interface custom input
- [Ash.Error.Invalid.InvalidPrimaryKey](Ash.Error.Invalid.InvalidPrimaryKey.md): Used when an invalid primary key is given to Ash.get/2
- [Ash.Error.Invalid.LimitRequired](Ash.Error.Invalid.LimitRequired.md): Used when no limit is provided, pagination is required, and no default page size is configured
- [Ash.Error.Invalid.MultipleResults](Ash.Error.Invalid.MultipleResults.md): Used when multiple results are returned in a case where only one result was expected
- [Ash.Error.Invalid.NoIdentityFound](Ash.Error.Invalid.NoIdentityFound.md): Used when an identity name is used that does not reference identity on the resource
- [Ash.Error.Invalid.NoMatchingBulkStrategy](Ash.Error.Invalid.NoMatchingBulkStrategy.md): Used when an identity name is used that does not reference identity on the resource
- [Ash.Error.Invalid.NoPrimaryAction](Ash.Error.Invalid.NoPrimaryAction.md): Used when an action name is provided that doesn't exist
- [Ash.Error.Invalid.NoSuchAction](Ash.Error.Invalid.NoSuchAction.md): Used when an action name is provided that doesn't exist
- [Ash.Error.Invalid.NoSuchInput](Ash.Error.Invalid.NoSuchInput.md): Used when an input is provided to an action or calculation that is not accepted
- [Ash.Error.Invalid.NoSuchResource](Ash.Error.Invalid.NoSuchResource.md): Used when a resource or alias is provided that doesn't exist
- [Ash.Error.Invalid.NonCountableAction](Ash.Error.Invalid.NonCountableAction.md): Used when page[:count] option is passed but the action's pagination is not countable.
- [Ash.Error.Invalid.NonStreamableAction](Ash.Error.Invalid.NonStreamableAction.md): Used when Ash.stream is used with an action that does not support keyset pagination
- [Ash.Error.Invalid.PaginationRequired](Ash.Error.Invalid.PaginationRequired.md): Used when page: false is provided but pagination is required
- [Ash.Error.Invalid.ResourceNotAllowed](Ash.Error.Invalid.ResourceNotAllowed.md): Used when a resource or alias is provided that cannot be used with the given domain
- [Ash.Error.Invalid.TenantRequired](Ash.Error.Invalid.TenantRequired.md): Used when a tenant is not specified
- [Ash.Error.Invalid.Timeout](Ash.Error.Invalid.Timeout.md): Used when a request to a domain times out.
- [Ash.Error.Invalid.TimeoutNotSupported](Ash.Error.Invalid.TimeoutNotSupported.md): Used when timeouts are not supported by the data layer, but one is set
- [Ash.Error.Invalid.Unavailable](Ash.Error.Invalid.Unavailable.md): Used when a given resource is unavailable.
- [Ash.Error.Load.InvalidQuery](Ash.Error.Load.InvalidQuery.md): Used when an invalid query is provided in a load
- [Ash.Error.Load.NoSuchRelationship](Ash.Error.Load.NoSuchRelationship.md): Used when attempting to load a relationship that does not exist
- [Ash.Error.Page.InvalidKeyset](Ash.Error.Page.InvalidKeyset.md): Used when a value is provided for a keyset that cannot be Base64 decoded.
- [Ash.Error.Query.AggregatesNotSupported](Ash.Error.Query.AggregatesNotSupported.md): Used when the data_layer does not support aggregates, or filtering/sorting them
- [Ash.Error.Query.CalculationRequiresPrimaryKey](Ash.Error.Query.CalculationRequiresPrimaryKey.md): Used when a calculation requires a primary key but was not supplied with one
- [Ash.Error.Query.CalculationsNotSupported](Ash.Error.Query.CalculationsNotSupported.md): Used when the data_layer does not support calculations, or filtering/sorting them
- [Ash.Error.Query.InvalidArgument](Ash.Error.Query.InvalidArgument.md): Used when an invalid value is provided for an action argument
- [Ash.Error.Query.InvalidCalculationArgument](Ash.Error.Query.InvalidCalculationArgument.md): Used when an invalid value is provided for a calculation argument
- [Ash.Error.Query.InvalidExpression](Ash.Error.Query.InvalidExpression.md): Used when an invalid expression is used in a filter
- [Ash.Error.Query.InvalidFilterReference](Ash.Error.Query.InvalidFilterReference.md): Used when an invalid reference is used in a filter
- [Ash.Error.Query.InvalidFilterValue](Ash.Error.Query.InvalidFilterValue.md): Used when an invalid value is provided for a filter
- [Ash.Error.Query.InvalidLimit](Ash.Error.Query.InvalidLimit.md): Used when an invalid limit is provided
- [Ash.Error.Query.InvalidLoad](Ash.Error.Query.InvalidLoad.md): Used when an invalid load is provided
- [Ash.Error.Query.InvalidOffset](Ash.Error.Query.InvalidOffset.md): Used when an invalid offset is provided
- [Ash.Error.Query.InvalidPage](Ash.Error.Query.InvalidPage.md): Used when an invalid page option is provided
- [Ash.Error.Query.InvalidQuery](Ash.Error.Query.InvalidQuery.md): A generic error that can be used to add an error to a query for a specific field
- [Ash.Error.Query.InvalidSortOrder](Ash.Error.Query.InvalidSortOrder.md): Used when an invalid sort order is provided
- [Ash.Error.Query.LockNotSupported](Ash.Error.Query.LockNotSupported.md): Used when the data_layer does not support a given lock type
- [Ash.Error.Query.NoComplexSortsWithKeysetPagination](Ash.Error.Query.NoComplexSortsWithKeysetPagination.md): Due to the filter-based implementation of keyset pagination, it cannot be used with sorts on calculations.
- [Ash.Error.Query.NoReadAction](Ash.Error.Query.NoReadAction.md): Used when a resource would be read but has no read action
- [Ash.Error.Query.NoSuchAttribute](Ash.Error.Query.NoSuchAttribute.md): Used when an attribute that doesn't exist is used in a query
- [Ash.Error.Query.NoSuchField](Ash.Error.Query.NoSuchField.md): Used when a field(attribute, calculation, aggregate or relationship) that doesn't exist is used in a query
- [Ash.Error.Query.NoSuchFilterPredicate](Ash.Error.Query.NoSuchFilterPredicate.md): Used when a filter predicate that does not exist is referenced
- [Ash.Error.Query.NoSuchFunction](Ash.Error.Query.NoSuchFunction.md): Used when an function that doesn't exist is used in a query
- [Ash.Error.Query.NoSuchOperator](Ash.Error.Query.NoSuchOperator.md): Used when an operator that doesn't exist is used in a query
- [Ash.Error.Query.NoSuchRelationship](Ash.Error.Query.NoSuchRelationship.md): Used when an relationship that doesn't exist is used in a query
- [Ash.Error.Query.NotFound](Ash.Error.Query.NotFound.md): Used when an entity that not exist is referenced
- [Ash.Error.Query.ReadActionRequired](Ash.Error.Query.ReadActionRequired.md): Used when a relationship is filtered and the destination does not have a default read action
- [Ash.Error.Query.ReadActionRequiresActor](Ash.Error.Query.ReadActionRequiresActor.md): Used when an actor is referenced in a filter template, but no actor exists
- [Ash.Error.Query.Required](Ash.Error.Query.Required.md): Used when a filter or argument is required in a query
- [Ash.Error.Query.UnsortableField](Ash.Error.Query.UnsortableField.md): Used when attempting to sort on a field that cannot be used for sorting
- [Ash.Error.Query.UnsupportedPredicate](Ash.Error.Query.UnsupportedPredicate.md): Used when the data_layer does not support a provided predicate
- [Ash.Error.SimpleDataLayer.NoDataProvided](Ash.Error.SimpleDataLayer.NoDataProvided.md): Used when no data was provided to the simple data layer
- [Ash.Error.Stacktrace](Ash.Error.Stacktrace.md): A placeholder for a stacktrace so that we can avoid printing it everywhere
- [Ash.Error.Unknown](Ash.Error.Unknown.md): The top level unknown error container
- [Ash.Error.Unknown.UnknownError](Ash.Error.Unknown.UnknownError.md): Used when an unknown error occurs
- [Ash.DataLayer.Verifiers.RequirePreCheckWith](Ash.DataLayer.Verifiers.RequirePreCheckWith.md): Ensures that all identities have a pre_check_with configured, or raises.
- [Ash.Notifier.PubSub.Verifiers.VerifyActionNames](Ash.Notifier.PubSub.Verifiers.VerifyActionNames.md): Verifies action names in configured publications
- [Ash.Domain.Verifiers.EnsureNoEmbeds](Ash.Domain.Verifiers.EnsureNoEmbeds.md): Ensures that all resources for a given domain are not embeds.
- [Ash.Domain.Verifiers.ValidateArgumentsToCodeInterface](Ash.Domain.Verifiers.ValidateArgumentsToCodeInterface.md): Validate the arguments defined in the code interface and reject arguments that are not action attributes/arguments
- [Ash.Domain.Verifiers.ValidateRelatedResourceInclusion](Ash.Domain.Verifiers.ValidateRelatedResourceInclusion.md): Ensures that all related resources are included in a domain.
- [Ash.Policy.Authorizer.Transformers.AddMissingFieldPolicies](Ash.Policy.Authorizer.Transformers.AddMissingFieldPolicies.md): Adds field policies for any missing fields
- [Ash.Policy.Authorizer.Transformers.CacheFieldPolicies](Ash.Policy.Authorizer.Transformers.CacheFieldPolicies.md): Cache field policies for each field
- [Ash.Resource.Transformers.AttributesByName](Ash.Resource.Transformers.AttributesByName.md): Persists attribute_names and attributes_by_name.
- [Ash.Resource.Transformers.BelongsToAttribute](Ash.Resource.Transformers.BelongsToAttribute.md): Creates the attribute for belongs_to relationships that have define_attribute?: true
- [Ash.Resource.Transformers.CacheActionInputs](Ash.Resource.Transformers.CacheActionInputs.md): Stores the set of valid input keys for each action
- [Ash.Resource.Transformers.CacheCalculations](Ash.Resource.Transformers.CacheCalculations.md): Persists commonly used calculation information.
- [Ash.Resource.Transformers.CachePrimaryKey](Ash.Resource.Transformers.CachePrimaryKey.md): Validates and caches the primary key of a resource
- [Ash.Resource.Transformers.CacheRelationships](Ash.Resource.Transformers.CacheRelationships.md): Persists commonly used relationship information.
- [Ash.Resource.Transformers.CacheUniqueKeys](Ash.Resource.Transformers.CacheUniqueKeys.md): Stores the set of unique keys for a resource
- [Ash.Resource.Transformers.CreateJoinRelationship](Ash.Resource.Transformers.CreateJoinRelationship.md): Creates an automatically named has_many relationship for each many_to_many.
- [Ash.Resource.Transformers.DefaultAccept](Ash.Resource.Transformers.DefaultAccept.md): Sets the default accept for each action
- [Ash.Resource.Transformers.GetByReadActions](Ash.Resource.Transformers.GetByReadActions.md): Transform any read actions which contain a get_by option.
- [Ash.Resource.Transformers.HasDestinationField](Ash.Resource.Transformers.HasDestinationField.md): Guesses the destination_attribute for has many and has one relationships unless provided
- [Ash.Resource.Transformers.ManyToManyDestinationAttributeOnJoinResource](Ash.Resource.Transformers.ManyToManyDestinationAttributeOnJoinResource.md): Guesses the destination_attribute_on_join_resource for many to many relationships unless provided.
- [Ash.Resource.Transformers.ManyToManySourceAttributeOnJoinResource](Ash.Resource.Transformers.ManyToManySourceAttributeOnJoinResource.md): Guesses the source_attribute_on_join_resource for many to many relationships unless provided.
- [Ash.Resource.Transformers.RequireUniqueActionNames](Ash.Resource.Transformers.RequireUniqueActionNames.md): Ensures that all actions have unique names.
- [Ash.Resource.Transformers.RequireUniqueFieldNames](Ash.Resource.Transformers.RequireUniqueFieldNames.md): Confirms that a resource does not have multiple fields(attributes, calculations, aggregates, and relationships) with the same name.
- [Ash.Resource.Transformers.SetPrimaryActions](Ash.Resource.Transformers.SetPrimaryActions.md): Validates the primary action configuration
- [Ash.Resource.Transformers.SetRelationshipSource](Ash.Resource.Transformers.SetRelationshipSource.md): Sets the source key on relationships to be the resource they were defined on
- [Ash.Resource.Transformers.ValidationsAndChangesForType](Ash.Resource.Transformers.ValidationsAndChangesForType.md): Persists global changes/validations and what type they go on.
- [Ash.Resource.Verifiers.EnsureAggregateFieldIsAttributeOrCalculation](Ash.Resource.Verifiers.EnsureAggregateFieldIsAttributeOrCalculation.md): Ensures that the field at the end of the path is an attribute or calculation.
- [Ash.Resource.Verifiers.NoReservedFieldNames](Ash.Resource.Verifiers.NoReservedFieldNames.md): Confirms that a resource does not use reserved names for field names.
- [Ash.Resource.Verifiers.ValidateAccept](Ash.Resource.Verifiers.ValidateAccept.md): Validates that accept and reject lists only contain valid attributes
- [Ash.Resource.Verifiers.ValidateActionTypesSupported](Ash.Resource.Verifiers.ValidateActionTypesSupported.md): Confirms that all action types declared on a resource are supported by its data layer
- [Ash.Resource.Verifiers.ValidateAggregatesSupported](Ash.Resource.Verifiers.ValidateAggregatesSupported.md): Confirms that all aggregates are supported by the data layer
- [Ash.Resource.Verifiers.ValidateArgumentsToCodeInterface](Ash.Resource.Verifiers.ValidateArgumentsToCodeInterface.md): Validate the arguments defined in the code interface and reject arguments that are not action attributes/arguments
- [Ash.Resource.Verifiers.ValidateAtomicValidationDefaultTargetAttribute](Ash.Resource.Verifiers.ValidateAtomicValidationDefaultTargetAttribute.md): Ensures that the atomic_validation_default_target_attribute option references an existing attribute.
- [Ash.Resource.Verifiers.ValidateEagerIdentities](Ash.Resource.Verifiers.ValidateEagerIdentities.md): Confirms that eager identities are not declared on a resource with no primary read.
- [Ash.Resource.Verifiers.ValidateManagedRelationshipOpts](Ash.Resource.Verifiers.ValidateManagedRelationshipOpts.md): Confirms that all action types declared on a resource are supported by its data layer
- [Ash.Resource.Verifiers.ValidateMultitenancy](Ash.Resource.Verifiers.ValidateMultitenancy.md): Ensures that the multitenancy configuration is valid for the given resource
- [Ash.Resource.Verifiers.ValidatePrimaryKey](Ash.Resource.Verifiers.ValidatePrimaryKey.md): Validates and caches the primary key of a resource
- [Ash.Resource.Verifiers.ValidateRelationshipAttributes](Ash.Resource.Verifiers.ValidateRelationshipAttributes.md): Validates that all relationships point to valid fields
- [Ash.Resource.Verifiers.ValidateRelationshipAttributesMatch](Ash.Resource.Verifiers.ValidateRelationshipAttributesMatch.md): Shows a warning on potentially incompatible relationship attributes.
- [Ash.Resource.Verifiers.VerifyActionsAtomic](Ash.Resource.Verifiers.VerifyActionsAtomic.md): Raises an error on update or destroy actions with require_atomic? set to true when it is known at compile time that they will not be atomic.
- [Ash.Resource.Verifiers.VerifyCalculations](Ash.Resource.Verifiers.VerifyCalculations.md): Validates calculation configurations.
- [Ash.Resource.Verifiers.VerifyFilterExpressions](Ash.Resource.Verifiers.VerifyFilterExpressions.md): Raises an error if a filter expression references an undefined argument.
- [Ash.Resource.Verifiers.VerifyGenericActionReactorInputs](Ash.Resource.Verifiers.VerifyGenericActionReactorInputs.md): Returns an error if a generic action calls a Reactor module without specifying an argument for all expected inputs.
- [Ash.Resource.Verifiers.VerifyIdentityFields](Ash.Resource.Verifiers.VerifyIdentityFields.md): Raises an error on potentially incompatible identity attributes.
- [Ash.Resource.Verifiers.VerifyPrimaryKeyPresent](Ash.Resource.Verifiers.VerifyPrimaryKeyPresent.md): Raises an error when a required primary key is missing
- [Ash.Resource.Verifiers.VerifyPrimaryReadActionHasNoArguments](Ash.Resource.Verifiers.VerifyPrimaryReadActionHasNoArguments.md): Verifies that primary read actions do not have any arguments
- [Ash.Resource.Verifiers.VerifyReservedCalculationArguments](Ash.Resource.Verifiers.VerifyReservedCalculationArguments.md): Verifies that standard context keys are not used as calculation arguments
- [Ash.Resource.Verifiers.VerifySelectedByDefault](Ash.Resource.Verifiers.VerifySelectedByDefault.md): Raises an error when a required primary key is missing
- [Ash.Filter.Predicate](Ash.Filter.Predicate.md): Represents a predicate which can be simplified and/or compared with other predicates
- [Ash.Query.BooleanExpression](Ash.Query.BooleanExpression.md): Represents a boolean expression
- [Ash.Query.Call](Ash.Query.Call.md): Represents a function call/AST node in an Ash query expression
- [Ash.Query.Exists](Ash.Query.Exists.md): Determines if a given related entity exists.
- [Ash.Query.Function](Ash.Query.Function.md): A function is a predicate with an arguments list.
- [Ash.Query.Not](Ash.Query.Not.md): Represents the negation of the contained expression
- [Ash.Query.Operator](Ash.Query.Operator.md): An operator is a predicate with a left and a right
- [Ash.Query.Parent](Ash.Query.Parent.md): Used to access values from the &quot;source&quot; of a given expression.
- [Ash.Query.Ref](Ash.Query.Ref.md): Represents a relation/attribute reference
- [Ash.Query.Function.Ago](Ash.Query.Function.Ago.md): Subtracts the given interval or Duration from the current time in UTC.
- [Ash.Query.Function.At](Ash.Query.Function.At.md): Gets an element in the list by index
- [Ash.Query.Function.CompositeType](Ash.Query.Function.CompositeType.md): Constructs a composite type in a way that is natively understood by the data layer
- [Ash.Query.Function.Contains](Ash.Query.Function.Contains.md): Returns true if the first string contains the second.
- [Ash.Query.Function.CountNils](Ash.Query.Function.CountNils.md): Returns the count of nil.
- [Ash.Query.Function.DateAdd](Ash.Query.Function.DateAdd.md): Adds the given interval or Duration to the current time in UTC Adds the given interval or Duration to the current time in UTC
- [Ash.Query.Function.DateTimeAdd](Ash.Query.Function.DateTimeAdd.md): Adds the given interval or Duration to the current time in UTC
- [Ash.Query.Function.Error](Ash.Query.Function.Error.md): If the predicate is truthy, the provided exception is raised with the provided values.
- [Ash.Query.Function.Fragment](Ash.Query.Function.Fragment.md): Adds the given interval from the current time in UTC.
- [Ash.Query.Function.FromNow](Ash.Query.Function.FromNow.md): Adds the given interval or Duration from the current time in UTC.
- [Ash.Query.Function.GetPath](Ash.Query.Function.GetPath.md): Gets the value at the provided path in the value, which must be a map or embed.
- [Ash.Query.Function.Has](Ash.Query.Function.Has.md): Returns true if the second argument is found in the first
- [Ash.Query.Function.If](Ash.Query.Function.If.md): If predicate is truthy, then the second argument is returned, otherwise the third.
- [Ash.Query.Function.Intersects](Ash.Query.Function.Intersects.md): Returns true if the two arguments intersect.
- [Ash.Query.Function.IsDistinctFrom](Ash.Query.Function.IsDistinctFrom.md): is_distinct_from(left, right)
- [Ash.Query.Function.IsNil](Ash.Query.Function.IsNil.md): true if the provided field is nil
- [Ash.Query.Function.IsNotDistinctFrom](Ash.Query.Function.IsNotDistinctFrom.md): is_not_distinct_from(left, right)
- [Ash.Query.Function.Lazy](Ash.Query.Function.Lazy.md): Runs the provided MFA and returns the result as a known value.
- [Ash.Query.Function.Length](Ash.Query.Function.Length.md): Returns the length of a list attribute defined by the composite type {:array, Type}.
- [Ash.Query.Function.Minus](Ash.Query.Function.Minus.md): Negates the value
- [Ash.Query.Function.Now](Ash.Query.Function.Now.md): Returns the current datetime
- [Ash.Query.Function.Rem](Ash.Query.Function.Rem.md): Rounds a float, decimal or integer to the given number of points
- [Ash.Query.Function.Round](Ash.Query.Function.Round.md): Rounds a float, decimal or integer to the given number of points
- [Ash.Query.Function.StartOfDay](Ash.Query.Function.StartOfDay.md): Converts a date or datetime into the start of day
- [Ash.Query.Function.StringDowncase](Ash.Query.Function.StringDowncase.md): Downcase a string
- [Ash.Query.Function.StringJoin](Ash.Query.Function.StringJoin.md): Joins a list of values.
- [Ash.Query.Function.StringLength](Ash.Query.Function.StringLength.md): Trims whitespace from a string
- [Ash.Query.Function.StringPosition](Ash.Query.Function.StringPosition.md): Returns the zero-based position of a substring within a string, nil if the string does not contain the substring.
- [Ash.Query.Function.StringSplit](Ash.Query.Function.StringSplit.md): Split a string into a list of strings
- [Ash.Query.Function.StringTrim](Ash.Query.Function.StringTrim.md): Trims whitespace from a string
- [Ash.Query.Function.Today](Ash.Query.Function.Today.md): Returns the current date.
- [Ash.Query.Function.Type](Ash.Query.Function.Type.md): Casts the value to a given type. Can also be used to provide type hints to data layers, where appropriate.
- [Ash.Query.Operator.Eq](Ash.Query.Operator.Eq.md): left == right
- [Ash.Query.Operator.GreaterThan](Ash.Query.Operator.GreaterThan.md): left &gt; right
- [Ash.Query.Operator.GreaterThanOrEqual](Ash.Query.Operator.GreaterThanOrEqual.md): left &gt;= right
- [Ash.Query.Operator.Has](Ash.Query.Operator.Has.md): left has 1
- [Ash.Query.Operator.In](Ash.Query.Operator.In.md): left in [1, 2, 3]
- [Ash.Query.Operator.IsNil](Ash.Query.Operator.IsNil.md): left is_nil true/false
- [Ash.Query.Operator.LessThan](Ash.Query.Operator.LessThan.md): left &lt; right
- [Ash.Query.Operator.LessThanOrEqual](Ash.Query.Operator.LessThanOrEqual.md): left &lt;= right
- [Ash.Query.Operator.NotEq](Ash.Query.Operator.NotEq.md): left != right
- [Ash.Query.Operator.Overlaps](Ash.Query.Operator.Overlaps.md): left overlaps [1, 2, 3]
- [Ash.Notifier.PubSub.Publication](Ash.Notifier.PubSub.Publication.md): Represents a configured publication from the pubsub notifier on an Ash.Resource
- [Ash.Policy.FieldPolicy](Ash.Policy.FieldPolicy.md): Represents a field policy in an Ash.Resource
- [Ash.Policy.Policy](Ash.Policy.Policy.md): Represents a policy on an Ash.Resource
- [Ash.Resource.Actions](Ash.Resource.Actions.md): Types for Ash actions
- [Ash.Resource.Actions.Action](Ash.Resource.Actions.Action.md): Represents a custom action on a resource.
- [Ash.Resource.Actions.Argument](Ash.Resource.Actions.Argument.md): Represents an argument to an action
- [Ash.Resource.Actions.Create](Ash.Resource.Actions.Create.md): Represents a create action on a resource.
- [Ash.Resource.Actions.Destroy](Ash.Resource.Actions.Destroy.md): Represents a destroy action on a resource.
- [Ash.Resource.Actions.Implementation](Ash.Resource.Actions.Implementation.md): An implementation of a generic action.
- [Ash.Resource.Actions.Implementation.Context](Ash.Resource.Actions.Implementation.Context.md): The context passed into generic action functions
- [Ash.Resource.Actions.Metadata](Ash.Resource.Actions.Metadata.md): Represents metadata from an action
- [Ash.Resource.Actions.Read](Ash.Resource.Actions.Read.md): Represents a read action on a resource.
- [Ash.Resource.Actions.Read.Pagination](Ash.Resource.Actions.Read.Pagination.md): Represents the pagination configuration of a read action
- [Ash.Resource.Actions.Update](Ash.Resource.Actions.Update.md): Represents a update action on a resource.
- [Ash.Resource.Aggregate](Ash.Resource.Aggregate.md): Represents a named aggregate on the resource that can be loaded
- [Ash.Resource.Aggregate.CustomAggregate](Ash.Resource.Aggregate.CustomAggregate.md): The root behavior for a custom aggregate.
- [Ash.Resource.Aggregate.JoinFilter](Ash.Resource.Aggregate.JoinFilter.md): Represents a join filter on a resource aggregate
- [Ash.Resource.Attribute](Ash.Resource.Attribute.md): Represents an attribute on a resource
- [Ash.Resource.Calculation.Argument](Ash.Resource.Calculation.Argument.md): An argument to a calculation
- [Ash.Resource.Calculation.Context](Ash.Resource.Calculation.Context.md): The context and arguments of a calculation
- [Ash.Resource.Calculation.LoadAttribute](Ash.Resource.Calculation.LoadAttribute.md): Loads an attribute as a calculation.
- [Ash.Resource.Calculation.LoadRelationship](Ash.Resource.Calculation.LoadRelationship.md): Loads a relationship as a calculation.
- [Ash.Resource.CalculationInterface](Ash.Resource.CalculationInterface.md): Represents a function that evaluates a calculation in a resource's code interface
- [Ash.Resource.Identity](Ash.Resource.Identity.md): Represents a unique constraint on a resource
- [Ash.Resource.Interface](Ash.Resource.Interface.md): Represents a function in a resource's code interface
- [Ash.Resource.Interface.CustomInput](Ash.Resource.Interface.CustomInput.md): Represents a custom input to a code interface
- [Ash.Resource.Interface.CustomInput.Transform](Ash.Resource.Interface.CustomInput.Transform.md): Represents a transformation applied to a custom input
- [Ash.Resource.Relationships](Ash.Resource.Relationships.md): Types Ash relationships
- [Ash.Resource.Relationships.BelongsTo](Ash.Resource.Relationships.BelongsTo.md): Represents a belongs_to relationship on a resource
- [Ash.Resource.Relationships.HasMany](Ash.Resource.Relationships.HasMany.md): Represents a has_many relationship on a resource
- [Ash.Resource.Relationships.HasOne](Ash.Resource.Relationships.HasOne.md): Represents a has_one relationship on a resource
- [Ash.Resource.Relationships.ManyToMany](Ash.Resource.Relationships.ManyToMany.md): Represents a many_to_many relationship on a resource
- [Ash.Actions.BulkManualActionHelpers](Ash.Actions.BulkManualActionHelpers.md): Helper functions used for handling manual actions when used in bulk operations.
- [Ash.Actions.Read.AsyncLimiter](Ash.Actions.Read.AsyncLimiter.md): A utility for limiting the number of concurrent async operations
- [Ash.Can](Ash.Can.md): Contains the Ash.can function logic.
- [Ash.Changeset.OriginalDataNotAvailable](Ash.Changeset.OriginalDataNotAvailable.md): A value placed in changeset.data to indicate that the original data is not available
- [Ash.Context](Ash.Context.md): Functions for working with the context provided to various callbacks in Ash.
- [Ash.CustomExpression](Ash.CustomExpression.md): A module for defining custom functions that can be called in Ash expressions.
- [Ash.DataLayer](Ash.DataLayer.md): The behaviour for backing resource actions with persistence layers.
- [Ash.Domain.Dsl.ResourceReference](Ash.Domain.Dsl.ResourceReference.md): A resource reference in a domain
- [Ash.Domain.Igniter](Ash.Domain.Igniter.md): Codemods for working with Ash.Domain modules
- [Ash.Extension](Ash.Extension.md): A behavior of additional callbacks that extensions can implement, specific to Ash.
- [Ash.Igniter](Ash.Igniter.md): Codemods and utilities for working with Ash &amp; Igniter
- [Ash.Info](Ash.Info.md): General introspection helpers for Ash applications.
- [Ash.Policy.PolicyGroup](Ash.Policy.PolicyGroup.md): Represents a policy group on an Ash.Resource
- [Ash.Query.Combination](Ash.Query.Combination.md): Represents one combination in a combination of queries.
- [Ash.Query.UpsertConflict](Ash.Query.UpsertConflict.md): Returns the conflicting new information.
- [Ash.Reactor.ActionStep](Ash.Reactor.ActionStep.md): The Reactor step which is used to execute generic actions.
- [Ash.Reactor.AshStep](Ash.Reactor.AshStep.md): A reactor step which runs a step-module or an anonymous function, and enqueues any returned notifications before returning.
- [Ash.Reactor.BulkCreateStep](Ash.Reactor.BulkCreateStep.md): The Reactor step which is used to execute create actions in bulk.
- [Ash.Reactor.BulkUpdateStep](Ash.Reactor.BulkUpdateStep.md): The Reactor step which is used to execute update actions in bulk.
- [Ash.Reactor.ChangeStep](Ash.Reactor.ChangeStep.md): The Reactor step which is used to execute change steps.
- [Ash.Reactor.CreateStep](Ash.Reactor.CreateStep.md): The Reactor step which is used to execute create actions.
- [Ash.Reactor.DestroyStep](Ash.Reactor.DestroyStep.md): The Reactor step which is used to execute update actions.
- [Ash.Reactor.Dsl.Action](Ash.Reactor.Dsl.Action.md): The action entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.ActionLoad](Ash.Reactor.Dsl.ActionLoad.md): Add a load statement to an action.
- [Ash.Reactor.Dsl.ActionTransformer](Ash.Reactor.Dsl.ActionTransformer.md): Responsible for transforming actions.
- [Ash.Reactor.Dsl.Actor](Ash.Reactor.Dsl.Actor.md): Specify the actor used to execute an action.
- [Ash.Reactor.Dsl.AshStep](Ash.Reactor.Dsl.AshStep.md): The ash_step DSL module.
- [Ash.Reactor.Dsl.BulkCreate](Ash.Reactor.Dsl.BulkCreate.md): The bulk_create entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.BulkUpdate](Ash.Reactor.Dsl.BulkUpdate.md): The bulk_update entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Change](Ash.Reactor.Dsl.Change.md): The change entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Context](Ash.Reactor.Dsl.Context.md): Specify context to merge into an action's context.
- [Ash.Reactor.Dsl.Create](Ash.Reactor.Dsl.Create.md): The create entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Destroy](Ash.Reactor.Dsl.Destroy.md): The destroy entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Inputs](Ash.Reactor.Dsl.Inputs.md): The inputs entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Load](Ash.Reactor.Dsl.Load.md): The load step entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.MiddlewareTransformer](Ash.Reactor.Dsl.MiddlewareTransformer.md): Ensures that the required middlewares are added to the Reactor.
- [Ash.Reactor.Dsl.Read](Ash.Reactor.Dsl.Read.md): The read entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.ReadOne](Ash.Reactor.Dsl.ReadOne.md): The read_one entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Tenant](Ash.Reactor.Dsl.Tenant.md): Specify the tenant used to execute an action.
- [Ash.Reactor.Dsl.Transaction](Ash.Reactor.Dsl.Transaction.md): The transaction entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.Dsl.Update](Ash.Reactor.Dsl.Update.md): The update entity for the Ash.Reactor reactor extension.
- [Ash.Reactor.LoadStep](Ash.Reactor.LoadStep.md): The Reactor step which is used to execute load steps.
- [Ash.Reactor.MergeInputsStep](Ash.Reactor.MergeInputsStep.md): A custom step which merges any number of inputs results into a single map.
- [Ash.Reactor.Notifications](Ash.Reactor.Notifications.md): Reactor middleware used to collect and emit notifications upon successful completion of the Reactor.
- [Ash.Reactor.ReadOneStep](Ash.Reactor.ReadOneStep.md): The Reactor step which is used to execute get actions.
- [Ash.Reactor.ReadStep](Ash.Reactor.ReadStep.md): The Reactor step which is used to execute read actions.
- [Ash.Reactor.Tracer](Ash.Reactor.Tracer.md): Reactor middleware which threads Ash's tracing information through to new processes spawned by Reactor.
- [Ash.Reactor.TransactionStep](Ash.Reactor.TransactionStep.md): The Reactor step which is used to wrap other steps in an Ash data layer transaction.
- [Ash.Reactor.UpdateStep](Ash.Reactor.UpdateStep.md): The Reactor step which is used to execute update actions.
- [Ash.Resource.Dsl.Filter](Ash.Resource.Dsl.Filter.md): Introspection target for a filter for read actions and relationships
- [Ash.Resource.Igniter](Ash.Resource.Igniter.md): Codemods for working with Ash.Resource modules
- [Ash.Resource.ManualCreate.BulkContext](Ash.Resource.ManualCreate.BulkContext.md): The context passed into manual bulk_create action functions
- [Ash.Resource.ManualCreate.Context](Ash.Resource.ManualCreate.Context.md): The context passed into manual create action functions
- [Ash.Resource.ManualDestroy.BulkContext](Ash.Resource.ManualDestroy.BulkContext.md): The context passed into manual bulk_update action functions
- [Ash.Resource.ManualDestroy.Context](Ash.Resource.ManualDestroy.Context.md): The context passed into manual update action functions
- [Ash.Resource.ManualRelationship.Context](Ash.Resource.ManualRelationship.Context.md): The context passed into manual relationship functions
- [Ash.Resource.ManualUpdate.BulkContext](Ash.Resource.ManualUpdate.BulkContext.md): The context passed into manual update action functions
- [Ash.Resource.ManualUpdate.Context](Ash.Resource.ManualUpdate.Context.md): The context passed into manual update action functions
- [Ash.Resource.Preparation.Context](Ash.Resource.Preparation.Context.md): The context for a preparation.
- [Ash.Scope](Ash.Scope.md): Determines how the actor, tenant and context are extracted from a data structure.
- [Ash.Scope.ToOpts](Ash.Scope.ToOpts.md): No documentation available
- [Ash.Subject](Ash.Subject.md): Provides a consistent API for common operations across Ash.Changeset, Ash.Query, and Ash.ActionInput. It allows you to write generic code that works w...
- [Ash.ToTenant](Ash.ToTenant.md): Converts a value to a tenant.
- [Ash.TypedStruct](Ash.TypedStruct.md): A DSL for defining typed structs with field validation and constraints.
- [Ash.TypedStruct.Field](Ash.TypedStruct.Field.md): Represents a field on a typed struct
- [Comp](Comp.md): Provides utilities to implement and work with Comparable types
- [Comparable](Comparable.md): Protocol which describes ordering relation for pair of types
- [Comparable.Type.Any.To.Any](Comparable.Type.Any.To.Any.md): No documentation available
- [Comparable.Type.Ash.CiString.To.Ash.CiString](Comparable.Type.Ash.CiString.To.Ash.CiString.md): No documentation available
- [Comparable.Type.Ash.CiString.To.BitString](Comparable.Type.Ash.CiString.To.BitString.md): No documentation available
- [Comparable.Type.Atom.To.BitString](Comparable.Type.Atom.To.BitString.md): No documentation available
- [Comparable.Type.BitString.To.Ash.CiString](Comparable.Type.BitString.To.Ash.CiString.md): No documentation available
- [Comparable.Type.BitString.To.Atom](Comparable.Type.BitString.To.Atom.md): No documentation available
- [Comparable.Type.BitString.To.Decimal](Comparable.Type.BitString.To.Decimal.md): No documentation available
- [Comparable.Type.Date.To.Date](Comparable.Type.Date.To.Date.md): No documentation available
- [Comparable.Type.DateTime.To.DateTime](Comparable.Type.DateTime.To.DateTime.md): No documentation available
- [Comparable.Type.Decimal.To.BitString](Comparable.Type.Decimal.To.BitString.md): No documentation available
- [Comparable.Type.Decimal.To.Decimal](Comparable.Type.Decimal.To.Decimal.md): No documentation available
- [Comparable.Type.Decimal.To.Float](Comparable.Type.Decimal.To.Float.md): No documentation available
- [Comparable.Type.Decimal.To.Integer](Comparable.Type.Decimal.To.Integer.md): No documentation available
- [Comparable.Type.Float.To.Decimal](Comparable.Type.Float.To.Decimal.md): No documentation available
- [Comparable.Type.Integer.To.Decimal](Comparable.Type.Integer.To.Decimal.md): No documentation available
- [Comparable.Type.List.To.List](Comparable.Type.List.To.List.md): No documentation available
- [Comparable.Type.Map.To.Map](Comparable.Type.Map.To.Map.md): No documentation available
- [Comparable.Type.NaiveDateTime.To.NaiveDateTime](Comparable.Type.NaiveDateTime.To.NaiveDateTime.md): No documentation available
- [Comparable.Type.Time.To.Time](Comparable.Type.Time.To.Time.md): No documentation available
- [Comparable.Type.Tuple.To.Tuple](Comparable.Type.Tuple.To.Tuple.md): No documentation available

## Mix Tasks

- [mix ash](Mix.Tasks.Ash.md): Prints Ash tasks and their information.
- [mix ash.codegen](Mix.Tasks.Ash.Codegen.md): Runs all codegen tasks for any extension on any resource/domain in your application.
- [mix ash.extend](Mix.Tasks.Ash.Extend.md): Adds an extension or extensions to the domain/resource
- [mix ash.gen.base_resource](Mix.Tasks.Ash.Gen.BaseResource.md): Generates a base resource
- [mix ash.gen.change](Mix.Tasks.Ash.Gen.Change.md): Generates a custom change
- [mix ash.gen.custom_expression](Mix.Tasks.Ash.Gen.CustomExpression.md): Generates a custom expression
- [mix ash.gen.domain](Mix.Tasks.Ash.Gen.Domain.md): Generates an Ash.Domain
- [mix ash.gen.enum](Mix.Tasks.Ash.Gen.Enum.md): Generates an Ash.Type.Enum
- [mix ash.gen.preparation](Mix.Tasks.Ash.Gen.Preparation.md): Generates a custom preparation
- [mix ash.gen.resource](Mix.Tasks.Ash.Gen.Resource.md): Generate and configure an Ash.Resource.
- [mix ash.gen.validation](Mix.Tasks.Ash.Gen.Validation.md): Generates a custom validation
- [mix ash.generate_livebook](Mix.Tasks.Ash.GenerateLivebook.md): Generates a Livebook for each Ash domain.
- [mix ash.generate_policy_charts](Mix.Tasks.Ash.GeneratePolicyCharts.md): Generates a Mermaid Flow Chart for a given resource's policies.
- [mix ash.generate_resource_diagrams](Mix.Tasks.Ash.GenerateResourceDiagrams.md): Generates a Mermaid Resource Diagram for each Ash domain.
- [mix ash.install](Mix.Tasks.Ash.Install.md): Installs Ash into a project. Should be called with mix igniter.install ash
- [mix ash.migrate](Mix.Tasks.Ash.Migrate.md): Runs all migration tasks for any extension on any resource/domain in your application.
- [mix ash.patch.extend](Mix.Tasks.Ash.Patch.Extend.md): Adds an extension or extensions to the domain/resource. Use ash.extend instead.
- [mix ash.reset](Mix.Tasks.Ash.Reset.md): Runs all tear down tasks for any extension on any resource/domain in your application, followed by setup tasks.
- [mix ash.rollback](Mix.Tasks.Ash.Rollback.md): Runs all rollback tasks for any extension on any resource/domain in your application.
- [mix ash.setup](Mix.Tasks.Ash.Setup.md): Runs all setup tasks for any extension on any resource/domain in your application.
- [mix ash.tear_down](Mix.Tasks.Ash.TearDown.md): Runs all tear down tasks for any extension on any resource/domain in your application.