Ash Resource for a TMF Party
The out-of-the-box TMF Party resource. Uses BaseParty as a fragment and adds
JSON serialisation with TMF @type / @referredType key mapping and outstanding
validation covering the core TMF Party fields.
Use Diffo.Provider.Party directly via the Diffo.Provider domain when working with
generic TMF parties (e.g. party refs on instances). For domain-specific parties with
richer identity — such as an RSP or a Customer — extend BaseParty directly in your
own domain and define a build action that sets type or referred_type appropriately.
See Diffo.Provider.BaseParty for full usage documentation.
An Ash Resource for a TMF Party
Summary
Types
@type t() :: %Diffo.Provider.Party{ __lateral_join_source__: term(), __meta__: term(), __metadata__: term(), __order__: term(), aggregates: term(), calculations: term(), created_at: term(), external_identifiers: term(), href: term(), id: term(), name: term(), notes: term(), party_refs: term(), referred_type: term(), type: term(), updated_at: term() }
Functions
Validates that the keys in the provided input are valid for at least one action on the resource.
Raises a KeyError error at compile time if not. This exists because generally a struct should only ever
be created by Ash as a result of a successful action. You should not be creating records manually in code,
e.g %MyResource{value: 1, value: 2}. Generally that is fine, but often with embedded resources it is nice
to be able to validate the keys that are being provided, e.g
Resource
|> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
|> Ash.create()
Same as input/1, except restricts the keys to values accepted by the action provided.