defmodule Plaid.Identity.Match.Item do @moduledoc """ [Plaid Identity Match Item schema.](https://plaid.com/docs/api/products/identity/#identity-match-response-item). """ @behaviour Plaid.Castable @type t :: %__MODULE__{ item_id: String.t(), institution_id: String.t() | nil, webhook: String.t() | nil, error: Plaid.Error.t() | nil, available_products: [String.t()] | nil, billed_products: [String.t()] | nil, products: [String.t()] | nil, consented_products: [String.t()] | nil, consent_expiration_time: String.t() | nil, update_type: String.t() | nil } defstruct [ :item_id, :institution_id, :webhook, :error, :available_products, :billed_products, :products, :consented_products, :consent_expiration_time, :update_type ] @impl true def cast(map) do %__MODULE__{ item_id: map["item_id"], institution_id: map["institution_id"], webhook: map["webhook"], error: Plaid.Castable.cast(Plaid.Error, map["error"]), available_products: map["available_products"], billed_products: map["billed_products"], products: map["products"], consented_products: map["consented_products"], consent_expiration_time: map["consent_expiration_time"], update_type: map["update_type"] } end end