# ash_versioned v0.1.0 - Table of Contents > Versioned resources for Ash. Implements SCD type 2 versioned-with-latest resources. ## GUIDES - [Home](readme.md) - [Roadmap](roadmap.md) - [Contributing](CONTRIBUTING.md) - [Code of Conduct](CODE_OF_CONDUCT.md) - [CHANGELOG](CHANGELOG.md) - [Licence](LICENCE.md) - [Apache License, version 2.0](APACHE-2.0.md) - [Developer Certificate of Origin](dco.md) - Tutorials - [Getting started with AshVersioned](getting-started-with-ash-versioned.md) - Topics - [The versioning model](basics.md) - [Options](options.md) - DSLs - [AshVersioned.Resource](dsl-ashversioned-resource.md) ## Modules - [AshVersioned.ActorValue](AshVersioned.ActorValue.md): Resolves the provided actor using the actor configuration. - [AshVersioned.Changes.ActorAttribution](AshVersioned.Changes.ActorAttribution.md): Ensures that actor attribution is applied to the changeset extracted from `context.actor`. See `AshVersioned.ActorValue`, `AshVersioned.Resource.BelongsToActor`, `AshVersioned.Resource.ReferenceActor` for more details. - [AshVersioned.Changes.RejectUpsert](AshVersioned.Changes.RejectUpsert.md): Rejects any create call that has `upsert?: true` at runtime (see `AshVersioned.Transformers.WireActions`). - [AshVersioned.IdentityScoping](AshVersioned.IdentityScoping.md): Determines whether an `Ash.Resource.Identity` is usable on an `AshVersioned.Resource`. All user-defined identities on a versioned resource must conform to exactly one of these constraints - [AshVersioned.Preparations.FilterLatest](AshVersioned.Preparations.FilterLatest.md): Scopes read actions to include `latest_attribute == true`, and if `archive` is declared on the resource, `archived == false`. - [AshVersioned.ReferenceActorValue](AshVersioned.ReferenceActorValue.md): The default `transform` function for a `reference_actor` field. - [AshVersioned.Resource](AshVersioned.Resource.md): Configures a resource for versioning. The source table gets a stable resource identifier, a version number, and a flag marking a row as the latest version, and mutations append new rows instead of updating in place. - [AshVersioned.Resource.Archive](AshVersioned.Resource.Archive.md): Represents the `archive` entity declared inside the `versioning` DSL section of `AshVersioned.Resource`. - [AshVersioned.Resource.BelongsToActor](AshVersioned.Resource.BelongsToActor.md): Represents a `belongs_to_actor` declared inside the `versioning` DSL section of `AshVersioned.Resource`. - [AshVersioned.Resource.Identity](AshVersioned.Resource.Identity.md): Represents the `identity` entity declared inside the `versioning` DSL section of `AshVersioned.Resource`. - [AshVersioned.Resource.Info](AshVersioned.Resource.Info.md): Introspection helpers for the `AshVersioned.Resource` extension. - [AshVersioned.Resource.Latest](AshVersioned.Resource.Latest.md): Represents the `latest` entity declared inside the `versioning` DSL section of `AshVersioned.Resource`. - [AshVersioned.Resource.ManualIncrement](AshVersioned.Resource.ManualIncrement.md): Implements the core atomic primitive for `AshVersioned.Resource`s: mark the current latest row as stale and insert a new version in a single transaction. This works for all update actions and, if the resource has `archive` set, destroy actions. - [AshVersioned.Resource.ReferenceActor](AshVersioned.Resource.ReferenceActor.md): Represents a `reference_actor` field declared inside the `versioning` DSL section of `AshVersioned.Resource`. - [AshVersioned.Resource.Version](AshVersioned.Resource.Version.md): Represents the `version` entity declared inside the `versioning` DSL section of `AshVersioned.Resource`. - [AshVersioned.Transformers.AddFields](AshVersioned.Transformers.AddFields.md): Resolves the `AshVersioned.Resource` entities for `identity`, `version`, `latest`, and (optionally) `archived`. For the required versioning attributes, defaults are provided if not declared. These are used to configure the resource for versioning, defining the attributes and default read scopes. - [AshVersioned.Transformers.WireActions](AshVersioned.Transformers.WireActions.md): Wires up the actions and overrides that make versioning work. - [AshVersioned.Verifiers.VerifyActionsRegistered](AshVersioned.Verifiers.VerifyActionsRegistered.md): Ensures that every action named in `exclude_update_actions` is a defined update action on the resource, and that every action named in `exclude_read_actions` is a defined read action. - [AshVersioned.Verifiers.VerifyCreateActionPresent](AshVersioned.Verifiers.VerifyCreateActionPresent.md): An `AshVersioned.Resource` resource must declare at least one `create` action. - [AshVersioned.Verifiers.VerifyIdentityScoping](AshVersioned.Verifiers.VerifyIdentityScoping.md): Every `identity` on an `AshVersioned.Resource` resource must pass `AshVersioned.IdentityScoping.safe?/4`. - [AshVersioned.Verifiers.VerifyNoArchivalConflict](AshVersioned.Verifiers.VerifyNoArchivalConflict.md): `AshArchival.Resource` and `AshVersioned.Resource` cannot be combined. - [AshVersioned.Verifiers.VerifyNoCustomManual](AshVersioned.Verifiers.VerifyNoCustomManual.md): AshVersioned does not support resource-supplied `manual` update or destroy action implementations. - [AshVersioned.Verifiers.VerifyNotDeletable](AshVersioned.Verifiers.VerifyNotDeletable.md): An `AshVersioned.Resource` is not deletable. Resources can be declared with `archive`, which turns destroy actions to soft deletions supported by AshVersioned. - [AshVersioned.Verifiers.VerifyPrimaryKey](AshVersioned.Verifiers.VerifyPrimaryKey.md): An `AshVersioned.Resource` must declare a generated surrogate primary key. AshVersioned does not support natural or composite primary keys. - [AshVersioned.Verifiers.VerifyVersioningAttributes](AshVersioned.Verifiers.VerifyVersioningAttributes.md): Verifies every attribute AshVersioned relies on, whether generated or adopted.