Crosswake.Companions.Chimeway.Contracts (crosswake v0.1.2)

View Source

Provider-neutral Chimeway token evidence and binding contracts.

Token evidence is diagnostic/provider evidence only. Backend-owned token bindings decide lifecycle state; neither evidence nor provider feedback grants auth, session, route, notification-open, or delivery authority.

Summary

Functions

app_identity_postures()

@spec app_identity_postures() :: [atom()]

binding_event_types()

@spec binding_event_types() :: [atom()]

binding_reasons()

@spec binding_reasons() :: [atom()]

binding_result_statuses()

@spec binding_result_statuses() :: [atom()]

binding_states()

@spec binding_states() :: [atom()]

environments()

@spec environments() :: [atom()]

forbidden_public_token_keys()

@spec forbidden_public_token_keys() :: [atom()]

lifecycle_mapping()

@spec lifecycle_mapping() :: map()

new_binding_event(attrs)

@spec new_binding_event(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.BindingEvent.t()}
  | {:error, keyword()}

new_binding_event!(attrs)

@spec new_binding_event!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.BindingEvent.t()

new_binding_result(attrs)

@spec new_binding_result(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.BindingResult.t()}
  | {:error, keyword()}

new_binding_result!(attrs)

@spec new_binding_result!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.BindingResult.t()

new_notification_open_evidence(attrs)

@spec new_notification_open_evidence(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.NotificationOpenEvidence.t()}
  | {:error, keyword()}

new_notification_open_evidence!(attrs)

@spec new_notification_open_evidence!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.NotificationOpenEvidence.t()

new_open_resolution(attrs)

@spec new_open_resolution(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.OpenResolution.t()}
  | {:error, keyword()}

new_open_resolution!(attrs)

@spec new_open_resolution!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.OpenResolution.t()

new_provider_feedback(attrs)

@spec new_provider_feedback(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.ProviderFeedback.t()}
  | {:error, keyword()}

new_provider_feedback!(attrs)

@spec new_provider_feedback!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.ProviderFeedback.t()

new_token_binding(attrs)

@spec new_token_binding(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.TokenBinding.t()}
  | {:error, keyword()}

new_token_binding!(attrs)

@spec new_token_binding!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.TokenBinding.t()

new_token_evidence(attrs)

@spec new_token_evidence(map() | keyword()) ::
  {:ok, Crosswake.Companions.Chimeway.Contracts.TokenEvidence.t()}
  | {:error, keyword()}

new_token_evidence!(attrs)

@spec new_token_evidence!(map() | keyword()) ::
  Crosswake.Companions.Chimeway.Contracts.TokenEvidence.t()

notification_statuses()

@spec notification_statuses() :: [atom()]

platforms()

@spec platforms() :: [atom()]

provider_feedback_events()

@spec provider_feedback_events() :: [atom()]

provider_handoff_event()

@spec provider_handoff_event() :: :delivery_accepted

providers()

@spec providers() :: [atom()]

to_map(struct)

@spec to_map(struct()) :: map()

validate_binding_event(event)

@spec validate_binding_event(Crosswake.Companions.Chimeway.Contracts.BindingEvent.t()) ::
  :ok | {:error, keyword()}

validate_binding_result(result)

@spec validate_binding_result(
  Crosswake.Companions.Chimeway.Contracts.BindingResult.t()
) ::
  :ok | {:error, keyword()}

validate_notification_open_evidence(evidence)

@spec validate_notification_open_evidence(
  Crosswake.Companions.Chimeway.Contracts.NotificationOpenEvidence.t()
) :: :ok | {:error, keyword()}

validate_open_resolution(resolution)

@spec validate_open_resolution(
  Crosswake.Companions.Chimeway.Contracts.OpenResolution.t()
) ::
  :ok | {:error, keyword()}

validate_provider_feedback(feedback)

@spec validate_provider_feedback(
  Crosswake.Companions.Chimeway.Contracts.ProviderFeedback.t()
) ::
  :ok | {:error, keyword()}

validate_token_binding(binding)

@spec validate_token_binding(Crosswake.Companions.Chimeway.Contracts.TokenBinding.t()) ::
  :ok | {:error, keyword()}

validate_token_evidence(evidence)

@spec validate_token_evidence(
  Crosswake.Companions.Chimeway.Contracts.TokenEvidence.t()
) ::
  :ok | {:error, keyword()}