Modules
Diffo - TMF Service and Resource Management with a difference
Provider API endpoint
Typed characteristic carrying pool bounds and assignment algorithm.
JSON value struct for AssignableCharacteristic.
Ash Typed Struct for Assignable Characteristic Value
Ash Resource for a pool assignment relationship.
Helper to perform Assignment using Diffo.Provider.AssignedToRelationship.
Ash Typed Struct for Assignment
Ash Resource Fragment which is the point of extension for typed TMF Characteristics.
Ash Resource Fragment which is the point of extension for your TMF Service or Resource Instance.
Ash Resource Fragment which is a the point of extension for your TMF Party
Ash Resource Fragment which is the point of extension for your TMF Place.
Ash Resource Fragment which is the shared foundation for TMF Relationship resources.
Ash Resource for a TMF Characteristic
Marker extension identifying a module as a valid characteristic resource.
Ash Resource for a TMF Entity
Ash Resource for a TMF Entity Reference
Ash Resource for a TMF Event
Unified DSL extension for all Diffo provider resource kinds.
DSL entity declaring a role a Party or Place kind plays with respect to Instances
DSL entity declaring a party role on an Instance
DSL entity declaring a role a Party or Place kind plays with respect to Parties
Persists characteristic declarations and bakes characteristics/0
Persists feature declarations and bakes features/0
Persists instance role declarations and bakes instances/0
Persists party declarations/roles and bakes parties/0
Persists place declarations/roles and bakes places/0
Persists pool declarations and bakes pools/0
Normalises specification DSL options, persists them, and bakes specification/0
DSL entity declaring a place role on an Instance
DSL entity declaring a role a Party or Place kind plays with respect to Places
Generates build_before/1 and build_after/2, and injects build arguments into declared create actions
Verifies that actions declared in behaviour do exist as Ash actions of the correct type
Verifies characteristic names are unique and value_type modules exist
Verifies feature names are unique and feature characteristic value_type modules exist
Verifies instance role declarations — no duplicates, instance_type modules must exist and extend BaseInstance
Verifies party declarations and roles — no duplicates, party_type modules must exist and extend BaseParty
Verifies place declarations and roles — no duplicates, place_type modules must exist and extend BasePlace
Verifies pool names are unique
Verifies specification DSL values satisfy the Specification resource constraints
Ash Resource for a TMF ExternalIdentifier
Ash Resource for a TMF Feature
Ash Resource for a TMF Service or Resource Instance
Marker extension — identifies BaseInstance-derived resources. DSL is in Diffo.Provider.Extension.
PartyDeclaration - DSL entity declaring a party role on an Instance
Persists characteristic declarations and bakes characteristics/0
Persists feature declarations and bakes features/0
Persists party declarations and bakes parties/0
Persists place declarations and bakes places/0
Normalises specification DSL options, persists them, and bakes specification/0
PlaceDeclaration - DSL entity declaring a place role on an Instance
Generates build_before/1 and build_after/2, and injects build arguments into declared create actions
Verifies that actions declared in behaviour do exist as Ash actions of the correct type
Verifies that characteristic names are unique and value_type modules exist
Verifies that feature names are unique, feature characteristic names are unique, and value_type modules exist
Verifies party role declarations — no duplicates, party_type modules must exist
Verifies that the specification DSL values satisfy the Specification resource's attribute constraints
Public introspection API for resources extending Diffo.Provider.BaseInstance
Ash Resource for a TMF Note
Ash Resource for a TMF Party
Marker extension — identifies BaseParty-derived resources. DSL is in Diffo.Provider.Extension.
InstanceRole - DSL entity declaring a role this Party kind plays with respect to Instances
PartyRole - DSL entity declaring a role this Party kind plays with respect to other Parties
Persists instance role declarations and bakes instances/0
Persists party role declarations and bakes parties/0
Persists place role declarations and bakes places/0
PlaceRole - DSL entity declaring a role this Party kind plays with respect to Places
Verifies role declarations across instances, parties, and places sections
Ash Resource for a TMF PartyRef
Ash Resource for a TMF Place
Marker extension — identifies BasePlace-derived resources. DSL is in Diffo.Provider.Extension.
InstanceRole - DSL entity declaring a role this Place kind plays with respect to Instances
PartyRole - DSL entity declaring a role this Place kind plays with respect to Parties
Persists instance role declarations and bakes instances/0
Persists party role declarations and bakes parties/0
Persists place role declarations and bakes places/0
PlaceRole - DSL entity declaring a role this Place kind plays with respect to other Places
Verifies role declarations across instances, parties, and places sections
Ash Resource for a TMF Place Reference
Ash Resource for a TMF ProcessStatus
Ash Resource for a TMF Service or Resource Relationship
Ash Resource for a TMF Service or Resource Specification.
Ash type for a typed characteristic value.
Diffo.Type.Dynamic is an Ash.Type.NewType for values whose exact type is not known until
runtime. The :type field holds the Ash.Type.NewType module and :value holds the cast value.
Diffo.Type.Primitive is a discriminated union of primitive types: string, integer, float,
boolean, date, time, datetime, and duration.
Diffo.Type.Value is an Ash.Type.NewType union that holds either a Diffo.Type.Primitive
or a Diffo.Type.Dynamic value.
Diffo.Unwrap is a protocol for extracting the underlying Elixir value from Diffo and Ash
wrapper types. It is defined with @fallback_to_any true, so any value without an explicit
implementation is returned unchanged.
Utility methods
Validate and/or create Uuid
Mix Tasks
Installs Diffo