Ash Resource for a TMF Service or Resource Relationship
An Ash Resource for a TMF Service or Resource Relationship
Summary
Functions
Derives the instance relationship characteristic list name from the instance type
Derives the instance relationship name from the instance type
Validates that the keys in the provided input are valid for at least one action on the resource.
Same as input/1, except restricts the keys to values accepted by the action provided.
Types
@type t() :: %Diffo.Provider.Relationship{ __lateral_join_source__: term(), __meta__: term(), __metadata__: term(), __order__: term(), aggregates: term(), alias: term(), calculations: term(), characteristics: term(), created_at: term(), id: term(), source: term(), source_id: term(), target: term(), target_href: term(), target_id: term(), target_type: term(), type: term(), updated_at: term() }
Functions
Derives the instance relationship characteristic list name from the instance type
Examples
iex> Diffo.Provider.Relationship.derive_relationship_characteristic_list_name(:service) :serviceRelationshipCharacteristic
iex> Diffo.Provider.Relationship.derive_relationship_characteristic_list_name(:resource) :resourceRelationshipCharacteristic
Derives the instance relationship name from the instance type
Examples
iex> Diffo.Provider.Relationship.derive_relationship_name(:service) :serviceRelationship
iex> Diffo.Provider.Relationship.derive_relationship_name(:resource) :resourceRelationship
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.