The flow sub-object echoed back on a LatticeStripe.BillingPortal.Session.
Polymorphic on type: one of "subscription_cancel", "subscription_update",
"subscription_update_confirm", "payment_method_update". Only the branch
matching type is populated; the others are nil. Unknown flow types added
by future Stripe API versions land in :extra unchanged — existing branches
continue to work and consumers read the new type from flow.extra["<new>"]
until LatticeStripe promotes it to a first-class sub-struct.
Summary
Types
@type t() :: %LatticeStripe.BillingPortal.Session.FlowData{ after_completion: LatticeStripe.BillingPortal.Session.FlowData.AfterCompletion.t() | nil, extra: map(), subscription_cancel: LatticeStripe.BillingPortal.Session.FlowData.SubscriptionCancel.t() | nil, subscription_update: LatticeStripe.BillingPortal.Session.FlowData.SubscriptionUpdate.t() | nil, subscription_update_confirm: LatticeStripe.BillingPortal.Session.FlowData.SubscriptionUpdateConfirm.t() | nil, type: String.t() | nil }