# ash_events v0.7.0 - API Reference

## Modules

- [AshEvents.AdvisoryLockKeyGenerator](AshEvents.AdvisoryLockKeyGenerator.md):   Behaviour for generating advisory lock keys when inserting events for a given Ash-changeset.
  Must return a signed 64-bit integer, or two signed 32-bit integers in a list.

- [AshEvents.AdvisoryLockKeyGenerator.Default](AshEvents.AdvisoryLockKeyGenerator.Default.md): Default implementation of the `AshEvents.AdvisoryLockKeyGenerator` behaviour.
Handles the attribute-strategy for multitenancy, if the tenant value used is an
integer or uuid. For other scenarios, users must implemeent a custom implementation
and declare it in their event-log resource configuration.

- [AshEvents.ClearRecordsForReplay](AshEvents.ClearRecordsForReplay.md): Behaviour for clearing records from the event log.

- [AshEvents.CreateActionWrapper](AshEvents.CreateActionWrapper.md): Wrapper for create actions that enables event tracking.

- [AshEvents.DestroyActionWrapper](AshEvents.DestroyActionWrapper.md): Wrapper for destroy actions that enables event tracking.
- [AshEvents.EventLog](AshEvents.EventLog.md): Extension to use on the Ash.Resource that will persist events.

- [AshEvents.EventLog.Actions.Replay](AshEvents.EventLog.Actions.Replay.md): Action module used by the event log resource to replay events.

- [AshEvents.EventLog.Info](AshEvents.EventLog.Info.md): Introspection helpers for `AshEvents.EventLog`
- [AshEvents.EventLog.PersistActorPrimaryKey](AshEvents.EventLog.PersistActorPrimaryKey.md):   Adds a field (not relationship) on the event log resource that will be used to persist the actor primary key.

- [AshEvents.EventLog.Verifiers.VerifyActorResources](AshEvents.EventLog.Verifiers.VerifyActorResources.md): Verifies that persist_actor_primary_key entries reference valid Ash resources.
- [AshEvents.EventLog.Verifiers.VerifyAdvisoryLockConfig](AshEvents.EventLog.Verifiers.VerifyAdvisoryLockConfig.md): Verifies that advisory lock configuration is valid.
- [AshEvents.EventLog.Verifiers.VerifyClearRecordsForReplay](AshEvents.EventLog.Verifiers.VerifyClearRecordsForReplay.md): Verifies that the clear_records_for_replay configuration is valid.
- [AshEvents.EventLog.Verifiers.VerifyCloakVault](AshEvents.EventLog.Verifiers.VerifyCloakVault.md): Verifies that cloak_vault configuration is valid.
- [AshEvents.EventLog.Verifiers.VerifyPersistActorPrimaryKey](AshEvents.EventLog.Verifiers.VerifyPersistActorPrimaryKey.md): Verifies that when multiple persist_actor_primary_key options are defined,
they all have allow_nil? set to true.
- [AshEvents.EventLog.Verifiers.VerifyPublicAttributes](AshEvents.EventLog.Verifiers.VerifyPublicAttributes.md): Verifies that public_fields configuration contains valid attribute names.
- [AshEvents.EventLog.Verifiers.VerifyRecordIdType](AshEvents.EventLog.Verifiers.VerifyRecordIdType.md): Verifies that record_id_type configuration is valid.
- [AshEvents.EventLog.Verifiers.VerifyReplayOverrides](AshEvents.EventLog.Verifiers.VerifyReplayOverrides.md): Verifies that replay_overrides configuration is valid.
- [AshEvents.Events](AshEvents.Events.md): Defines the events section for a resource.

- [AshEvents.Events.ActionWrapperHelpers](AshEvents.Events.ActionWrapperHelpers.md): Helper functions used by the action wrappers.

- [AshEvents.Events.Changes.ApplyChangedAttributes](AshEvents.Events.Changes.ApplyChangedAttributes.md): A change that runs LAST during replay to apply changed_attributes.
- [AshEvents.Events.Changes.ApplyReplayPrimaryKey](AshEvents.Events.Changes.ApplyReplayPrimaryKey.md): A change that runs FIRST during replay to set the primary key.
- [AshEvents.Events.Info](AshEvents.Events.Info.md):   @moduledoc "Introspection helpers for `AshEvents.Events`"

- [AshEvents.Events.ReplayValidationWrapper](AshEvents.Events.ReplayValidationWrapper.md): Specialized wrapper for validations that preserves custom messages during event tracking.
- [AshEvents.Events.Validations.Never](AshEvents.Events.Validations.Never.md): A validation that always fails. Used as a `where` condition to create
non-executing changes that exist only for introspection by other libraries
(e.g., AshPhoenix nested form detection).

- [AshEvents.Events.Verifiers.VerifyActions](AshEvents.Events.Verifiers.VerifyActions.md): Verifies that action-related configuration is valid.
- [AshEvents.Events.Verifiers.VerifyEventLog](AshEvents.Events.Verifiers.VerifyEventLog.md): Verifies that the event_log configuration is valid.
- [AshEvents.Events.Verifiers.VerifyReplayNonInputAttributeChanges](AshEvents.Events.Verifiers.VerifyReplayNonInputAttributeChanges.md): Verifies that replay_non_input_attribute_changes configuration is valid.
- [AshEvents.Events.Verifiers.VerifyTimestamps](AshEvents.Events.Verifiers.VerifyTimestamps.md): Verifies that timestamp configuration is valid.
- [AshEvents.UpdateActionWrapper](AshEvents.UpdateActionWrapper.md): Wrapper for update actions that enables event tracking.

## Mix Tasks

- [mix ash_events.install](Mix.Tasks.AshEvents.Install.md): Installs AshEvents into a project. Should be called with `mix igniter.install ash_events`

