lithic 0.1.0.pre.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (986) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +168 -0
  3. data/lib/lithic/base_client.rb +457 -0
  4. data/lib/lithic/base_model.rb +1212 -0
  5. data/lib/lithic/base_page.rb +59 -0
  6. data/lib/lithic/client.rb +210 -0
  7. data/lib/lithic/cursor_page.rb +92 -0
  8. data/lib/lithic/errors.rb +183 -0
  9. data/lib/lithic/extern.rb +7 -0
  10. data/lib/lithic/models/account.rb +271 -0
  11. data/lib/lithic/models/account_financial_account_type.rb +19 -0
  12. data/lib/lithic/models/account_holder.rb +801 -0
  13. data/lib/lithic/models/account_holder_create_params.rb +615 -0
  14. data/lib/lithic/models/account_holder_create_response.rb +151 -0
  15. data/lib/lithic/models/account_holder_list_documents_params.rb +18 -0
  16. data/lib/lithic/models/account_holder_list_documents_response.rb +23 -0
  17. data/lib/lithic/models/account_holder_list_params.rb +163 -0
  18. data/lib/lithic/models/account_holder_retrieve_document_params.rb +24 -0
  19. data/lib/lithic/models/account_holder_retrieve_params.rb +18 -0
  20. data/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rb +105 -0
  21. data/lib/lithic/models/account_holder_simulate_enrollment_review_params.rb +101 -0
  22. data/lib/lithic/models/account_holder_simulate_enrollment_review_response.rb +920 -0
  23. data/lib/lithic/models/account_holder_update_params.rb +777 -0
  24. data/lib/lithic/models/account_holder_update_response.rb +1104 -0
  25. data/lib/lithic/models/account_holder_upload_document_params.rb +63 -0
  26. data/lib/lithic/models/account_list_params.rb +77 -0
  27. data/lib/lithic/models/account_retrieve_params.rb +18 -0
  28. data/lib/lithic/models/account_retrieve_spend_limits_params.rb +18 -0
  29. data/lib/lithic/models/account_spend_limits.rb +168 -0
  30. data/lib/lithic/models/account_update_params.rb +182 -0
  31. data/lib/lithic/models/address.rb +64 -0
  32. data/lib/lithic/models/address_update.rb +82 -0
  33. data/lib/lithic/models/aggregate_balance.rb +118 -0
  34. data/lib/lithic/models/aggregate_balance_list_params.rb +45 -0
  35. data/lib/lithic/models/api_status.rb +23 -0
  36. data/lib/lithic/models/auth_rules/auth_rule.rb +141 -0
  37. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +134 -0
  38. data/lib/lithic/models/auth_rules/conditional_attribute.rb +81 -0
  39. data/lib/lithic/models/auth_rules/conditional_block_parameters.rb +21 -0
  40. data/lib/lithic/models/auth_rules/v2/backtest_create_params.rb +44 -0
  41. data/lib/lithic/models/auth_rules/v2/backtest_create_response.rb +28 -0
  42. data/lib/lithic/models/auth_rules/v2/backtest_results.rb +304 -0
  43. data/lib/lithic/models/auth_rules/v2/backtest_retrieve_params.rb +28 -0
  44. data/lib/lithic/models/auth_rules/v2_apply_params.rb +52 -0
  45. data/lib/lithic/models/auth_rules/v2_apply_response.rb +205 -0
  46. data/lib/lithic/models/auth_rules/v2_create_params.rb +120 -0
  47. data/lib/lithic/models/auth_rules/v2_create_response.rb +206 -0
  48. data/lib/lithic/models/auth_rules/v2_delete_params.rb +20 -0
  49. data/lib/lithic/models/auth_rules/v2_draft_params.rb +40 -0
  50. data/lib/lithic/models/auth_rules/v2_draft_response.rb +205 -0
  51. data/lib/lithic/models/auth_rules/v2_list_params.rb +87 -0
  52. data/lib/lithic/models/auth_rules/v2_list_response.rb +205 -0
  53. data/lib/lithic/models/auth_rules/v2_promote_params.rb +20 -0
  54. data/lib/lithic/models/auth_rules/v2_promote_response.rb +206 -0
  55. data/lib/lithic/models/auth_rules/v2_report_params.rb +20 -0
  56. data/lib/lithic/models/auth_rules/v2_report_response.rb +25 -0
  57. data/lib/lithic/models/auth_rules/v2_retrieve_params.rb +20 -0
  58. data/lib/lithic/models/auth_rules/v2_retrieve_response.rb +209 -0
  59. data/lib/lithic/models/auth_rules/v2_update_params.rb +114 -0
  60. data/lib/lithic/models/auth_rules/v2_update_response.rb +206 -0
  61. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +130 -0
  62. data/lib/lithic/models/auth_rules/velocity_limit_params_period_window.rb +28 -0
  63. data/lib/lithic/models/auth_stream_enrollment_retrieve_secret_params.rb +18 -0
  64. data/lib/lithic/models/auth_stream_enrollment_rotate_secret_params.rb +18 -0
  65. data/lib/lithic/models/auth_stream_secret.rb +24 -0
  66. data/lib/lithic/models/balance.rb +118 -0
  67. data/lib/lithic/models/balance_list_params.rb +87 -0
  68. data/lib/lithic/models/book_transfer_create_params.rb +162 -0
  69. data/lib/lithic/models/book_transfer_list_params.rb +205 -0
  70. data/lib/lithic/models/book_transfer_response.rb +267 -0
  71. data/lib/lithic/models/book_transfer_retrieve_params.rb +18 -0
  72. data/lib/lithic/models/book_transfer_reverse_params.rb +29 -0
  73. data/lib/lithic/models/card.rb +512 -0
  74. data/lib/lithic/models/card_convert_physical_params.rb +100 -0
  75. data/lib/lithic/models/card_create_params.rb +371 -0
  76. data/lib/lithic/models/card_embed_params.rb +32 -0
  77. data/lib/lithic/models/card_list_params.rb +128 -0
  78. data/lib/lithic/models/card_program.rb +82 -0
  79. data/lib/lithic/models/card_program_list_params.rb +53 -0
  80. data/lib/lithic/models/card_program_retrieve_params.rb +18 -0
  81. data/lib/lithic/models/card_provision_params.rb +121 -0
  82. data/lib/lithic/models/card_provision_response.rb +23 -0
  83. data/lib/lithic/models/card_reissue_params.rb +104 -0
  84. data/lib/lithic/models/card_renew_params.rb +135 -0
  85. data/lib/lithic/models/card_retrieve_params.rb +18 -0
  86. data/lib/lithic/models/card_retrieve_spend_limits_params.rb +18 -0
  87. data/lib/lithic/models/card_search_by_pan_params.rb +25 -0
  88. data/lib/lithic/models/card_spend_limits.rb +168 -0
  89. data/lib/lithic/models/card_update_params.rb +171 -0
  90. data/lib/lithic/models/cards/aggregate_balance_list_params.rb +42 -0
  91. data/lib/lithic/models/cards/aggregate_balance_list_response.rb +97 -0
  92. data/lib/lithic/models/cards/balance_list_params.rb +44 -0
  93. data/lib/lithic/models/cards/balance_list_response.rb +120 -0
  94. data/lib/lithic/models/cards/financial_transaction_list_params.rb +159 -0
  95. data/lib/lithic/models/cards/financial_transaction_retrieve_params.rb +26 -0
  96. data/lib/lithic/models/carrier.rb +24 -0
  97. data/lib/lithic/models/client_api_status_params.rb +18 -0
  98. data/lib/lithic/models/credit_products/extended_credit.rb +21 -0
  99. data/lib/lithic/models/credit_products/extended_credit_retrieve_params.rb +20 -0
  100. data/lib/lithic/models/credit_products/prime_rate_create_params.rb +34 -0
  101. data/lib/lithic/models/credit_products/prime_rate_retrieve_params.rb +42 -0
  102. data/lib/lithic/models/credit_products/prime_rate_retrieve_response.rb +51 -0
  103. data/lib/lithic/models/digital_card_art.rb +91 -0
  104. data/lib/lithic/models/digital_card_art_list_params.rb +53 -0
  105. data/lib/lithic/models/digital_card_art_retrieve_params.rb +18 -0
  106. data/lib/lithic/models/dispute.rb +340 -0
  107. data/lib/lithic/models/dispute_create_params.rb +97 -0
  108. data/lib/lithic/models/dispute_delete_evidence_params.rb +24 -0
  109. data/lib/lithic/models/dispute_delete_params.rb +18 -0
  110. data/lib/lithic/models/dispute_evidence.rb +106 -0
  111. data/lib/lithic/models/dispute_initiate_evidence_upload_params.rb +29 -0
  112. data/lib/lithic/models/dispute_list_evidences_params.rb +77 -0
  113. data/lib/lithic/models/dispute_list_params.rb +131 -0
  114. data/lib/lithic/models/dispute_retrieve_evidence_params.rb +24 -0
  115. data/lib/lithic/models/dispute_retrieve_params.rb +18 -0
  116. data/lib/lithic/models/dispute_update_params.rb +88 -0
  117. data/lib/lithic/models/document.rb +230 -0
  118. data/lib/lithic/models/event.rb +156 -0
  119. data/lib/lithic/models/event_list_attempts_params.rb +113 -0
  120. data/lib/lithic/models/event_list_params.rb +166 -0
  121. data/lib/lithic/models/event_retrieve_params.rb +18 -0
  122. data/lib/lithic/models/event_subscription.rb +105 -0
  123. data/lib/lithic/models/events/subscription_create_params.rb +117 -0
  124. data/lib/lithic/models/events/subscription_delete_params.rb +20 -0
  125. data/lib/lithic/models/events/subscription_list_attempts_params.rb +115 -0
  126. data/lib/lithic/models/events/subscription_list_params.rb +55 -0
  127. data/lib/lithic/models/events/subscription_recover_params.rb +44 -0
  128. data/lib/lithic/models/events/subscription_replay_missing_params.rb +44 -0
  129. data/lib/lithic/models/events/subscription_retrieve_params.rb +20 -0
  130. data/lib/lithic/models/events/subscription_retrieve_secret_params.rb +20 -0
  131. data/lib/lithic/models/events/subscription_retrieve_secret_response.rb +26 -0
  132. data/lib/lithic/models/events/subscription_rotate_secret_params.rb +20 -0
  133. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +88 -0
  134. data/lib/lithic/models/events/subscription_update_params.rb +117 -0
  135. data/lib/lithic/models/external_bank_account_address.rb +53 -0
  136. data/lib/lithic/models/external_bank_account_create_params.rb +229 -0
  137. data/lib/lithic/models/external_bank_account_create_response.rb +317 -0
  138. data/lib/lithic/models/external_bank_account_list_params.rb +171 -0
  139. data/lib/lithic/models/external_bank_account_list_response.rb +317 -0
  140. data/lib/lithic/models/external_bank_account_retrieve_params.rb +18 -0
  141. data/lib/lithic/models/external_bank_account_retrieve_response.rb +317 -0
  142. data/lib/lithic/models/external_bank_account_retry_micro_deposits_params.rb +28 -0
  143. data/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rb +318 -0
  144. data/lib/lithic/models/external_bank_account_retry_prenote_params.rb +28 -0
  145. data/lib/lithic/models/external_bank_account_retry_prenote_response.rb +286 -0
  146. data/lib/lithic/models/external_bank_account_update_params.rb +144 -0
  147. data/lib/lithic/models/external_bank_account_update_response.rb +317 -0
  148. data/lib/lithic/models/external_bank_accounts/micro_deposit_create_params.rb +26 -0
  149. data/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rb +320 -0
  150. data/lib/lithic/models/external_payment.rb +282 -0
  151. data/lib/lithic/models/external_payment_cancel_params.rb +34 -0
  152. data/lib/lithic/models/external_payment_create_params.rb +143 -0
  153. data/lib/lithic/models/external_payment_list_params.rb +194 -0
  154. data/lib/lithic/models/external_payment_release_params.rb +34 -0
  155. data/lib/lithic/models/external_payment_retrieve_params.rb +18 -0
  156. data/lib/lithic/models/external_payment_reverse_params.rb +34 -0
  157. data/lib/lithic/models/external_payment_settle_params.rb +57 -0
  158. data/lib/lithic/models/financial_account.rb +256 -0
  159. data/lib/lithic/models/financial_account_create_params.rb +82 -0
  160. data/lib/lithic/models/financial_account_list_params.rb +66 -0
  161. data/lib/lithic/models/financial_account_retrieve_params.rb +18 -0
  162. data/lib/lithic/models/financial_account_update_params.rb +28 -0
  163. data/lib/lithic/models/financial_account_update_status_params.rb +66 -0
  164. data/lib/lithic/models/financial_accounts/balance_list_params.rb +44 -0
  165. data/lib/lithic/models/financial_accounts/balance_list_response.rb +120 -0
  166. data/lib/lithic/models/financial_accounts/credit_configuration_retrieve_params.rb +20 -0
  167. data/lib/lithic/models/financial_accounts/credit_configuration_update_params.rb +71 -0
  168. data/lib/lithic/models/financial_accounts/financial_account_credit_config.rb +115 -0
  169. data/lib/lithic/models/financial_accounts/financial_transaction_list_params.rb +162 -0
  170. data/lib/lithic/models/financial_accounts/financial_transaction_retrieve_params.rb +26 -0
  171. data/lib/lithic/models/financial_accounts/loan_tape.rb +900 -0
  172. data/lib/lithic/models/financial_accounts/loan_tape_list_params.rb +79 -0
  173. data/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rb +27 -0
  174. data/lib/lithic/models/financial_accounts/statement.rb +654 -0
  175. data/lib/lithic/models/financial_accounts/statement_list_params.rb +101 -0
  176. data/lib/lithic/models/financial_accounts/statement_retrieve_params.rb +27 -0
  177. data/lib/lithic/models/financial_accounts/statements/line_item_list_params.rb +64 -0
  178. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +245 -0
  179. data/lib/lithic/models/financial_accounts/statements.rb +27 -0
  180. data/lib/lithic/models/financial_transaction.rb +342 -0
  181. data/lib/lithic/models/instance_financial_account_type.rb +23 -0
  182. data/lib/lithic/models/kyb.rb +443 -0
  183. data/lib/lithic/models/kyb_business_entity.rb +138 -0
  184. data/lib/lithic/models/kyc.rb +142 -0
  185. data/lib/lithic/models/kyc_exempt.rb +128 -0
  186. data/lib/lithic/models/management_operation_create_params.rb +163 -0
  187. data/lib/lithic/models/management_operation_list_params.rb +168 -0
  188. data/lib/lithic/models/management_operation_retrieve_params.rb +18 -0
  189. data/lib/lithic/models/management_operation_reverse_params.rb +34 -0
  190. data/lib/lithic/models/management_operation_transaction.rb +287 -0
  191. data/lib/lithic/models/message_attempt.rb +100 -0
  192. data/lib/lithic/models/owner_type.rb +18 -0
  193. data/lib/lithic/models/payment.rb +460 -0
  194. data/lib/lithic/models/payment_create_params.rb +154 -0
  195. data/lib/lithic/models/payment_create_response.rb +24 -0
  196. data/lib/lithic/models/payment_list_params.rb +193 -0
  197. data/lib/lithic/models/payment_retrieve_params.rb +18 -0
  198. data/lib/lithic/models/payment_retry_params.rb +18 -0
  199. data/lib/lithic/models/payment_retry_response.rb +24 -0
  200. data/lib/lithic/models/payment_simulate_action_params.rb +82 -0
  201. data/lib/lithic/models/payment_simulate_action_response.rb +48 -0
  202. data/lib/lithic/models/payment_simulate_receipt_params.rb +71 -0
  203. data/lib/lithic/models/payment_simulate_receipt_response.rb +48 -0
  204. data/lib/lithic/models/payment_simulate_release_params.rb +25 -0
  205. data/lib/lithic/models/payment_simulate_release_response.rb +48 -0
  206. data/lib/lithic/models/payment_simulate_return_params.rb +36 -0
  207. data/lib/lithic/models/payment_simulate_return_response.rb +48 -0
  208. data/lib/lithic/models/reports/settlement/network_total_list_params.rb +180 -0
  209. data/lib/lithic/models/reports/settlement/network_total_list_response.rb +175 -0
  210. data/lib/lithic/models/reports/settlement/network_total_retrieve_params.rb +22 -0
  211. data/lib/lithic/models/reports/settlement/network_total_retrieve_response.rb +175 -0
  212. data/lib/lithic/models/reports/settlement_list_details_params.rb +55 -0
  213. data/lib/lithic/models/reports/settlement_summary_params.rb +20 -0
  214. data/lib/lithic/models/required_document.rb +36 -0
  215. data/lib/lithic/models/responder_endpoint_check_status_params.rb +40 -0
  216. data/lib/lithic/models/responder_endpoint_create_params.rb +55 -0
  217. data/lib/lithic/models/responder_endpoint_create_response.rb +24 -0
  218. data/lib/lithic/models/responder_endpoint_delete_params.rb +40 -0
  219. data/lib/lithic/models/responder_endpoint_status.rb +31 -0
  220. data/lib/lithic/models/settlement_detail.rb +252 -0
  221. data/lib/lithic/models/settlement_report.rb +119 -0
  222. data/lib/lithic/models/settlement_summary_details.rb +133 -0
  223. data/lib/lithic/models/shipping_address.rb +130 -0
  224. data/lib/lithic/models/spend_limit_duration.rb +32 -0
  225. data/lib/lithic/models/three_ds/authentication_retrieve_params.rb +20 -0
  226. data/lib/lithic/models/three_ds/authentication_retrieve_response.rb +1102 -0
  227. data/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rb +35 -0
  228. data/lib/lithic/models/three_ds/authentication_simulate_params.rb +131 -0
  229. data/lib/lithic/models/three_ds/authentication_simulate_response.rb +27 -0
  230. data/lib/lithic/models/three_ds/challenge_response.rb +32 -0
  231. data/lib/lithic/models/three_ds/challenge_result.rb +21 -0
  232. data/lib/lithic/models/three_ds/decisioning_challenge_response_params.rb +20 -0
  233. data/lib/lithic/models/three_ds/decisioning_retrieve_secret_params.rb +20 -0
  234. data/lib/lithic/models/three_ds/decisioning_retrieve_secret_response.rb +26 -0
  235. data/lib/lithic/models/three_ds/decisioning_rotate_secret_params.rb +20 -0
  236. data/lib/lithic/models/tokenization.rb +282 -0
  237. data/lib/lithic/models/tokenization_activate_params.rb +18 -0
  238. data/lib/lithic/models/tokenization_deactivate_params.rb +18 -0
  239. data/lib/lithic/models/tokenization_decisioning_retrieve_secret_params.rb +18 -0
  240. data/lib/lithic/models/tokenization_decisioning_rotate_secret_params.rb +18 -0
  241. data/lib/lithic/models/tokenization_decisioning_rotate_secret_response.rb +24 -0
  242. data/lib/lithic/models/tokenization_list_params.rb +138 -0
  243. data/lib/lithic/models/tokenization_pause_params.rb +18 -0
  244. data/lib/lithic/models/tokenization_resend_activation_code_params.rb +48 -0
  245. data/lib/lithic/models/tokenization_retrieve_params.rb +18 -0
  246. data/lib/lithic/models/tokenization_retrieve_response.rb +23 -0
  247. data/lib/lithic/models/tokenization_secret.rb +24 -0
  248. data/lib/lithic/models/tokenization_simulate_params.rb +138 -0
  249. data/lib/lithic/models/tokenization_simulate_response.rb +23 -0
  250. data/lib/lithic/models/tokenization_unpause_params.rb +18 -0
  251. data/lib/lithic/models/tokenization_update_digital_card_art_params.rb +32 -0
  252. data/lib/lithic/models/tokenization_update_digital_card_art_response.rb +23 -0
  253. data/lib/lithic/models/transaction.rb +1613 -0
  254. data/lib/lithic/models/transaction_expire_authorization_params.rb +18 -0
  255. data/lib/lithic/models/transaction_list_params.rb +168 -0
  256. data/lib/lithic/models/transaction_retrieve_params.rb +18 -0
  257. data/lib/lithic/models/transaction_simulate_authorization_advice_params.rb +33 -0
  258. data/lib/lithic/models/transaction_simulate_authorization_advice_response.rb +35 -0
  259. data/lib/lithic/models/transaction_simulate_authorization_params.rb +188 -0
  260. data/lib/lithic/models/transaction_simulate_authorization_response.rb +36 -0
  261. data/lib/lithic/models/transaction_simulate_clearing_params.rb +44 -0
  262. data/lib/lithic/models/transaction_simulate_clearing_response.rb +24 -0
  263. data/lib/lithic/models/transaction_simulate_credit_authorization_params.rb +65 -0
  264. data/lib/lithic/models/transaction_simulate_credit_authorization_response.rb +35 -0
  265. data/lib/lithic/models/transaction_simulate_return_params.rb +39 -0
  266. data/lib/lithic/models/transaction_simulate_return_response.rb +35 -0
  267. data/lib/lithic/models/transaction_simulate_return_reversal_params.rb +25 -0
  268. data/lib/lithic/models/transaction_simulate_return_reversal_response.rb +24 -0
  269. data/lib/lithic/models/transaction_simulate_void_params.rb +70 -0
  270. data/lib/lithic/models/transaction_simulate_void_response.rb +24 -0
  271. data/lib/lithic/models/transactions/enhanced_commercial_data_retrieve_params.rb +20 -0
  272. data/lib/lithic/models/transactions/enhanced_commercial_data_retrieve_response.rb +21 -0
  273. data/lib/lithic/models/transactions/events/enhanced_commercial_data_retrieve_params.rb +22 -0
  274. data/lib/lithic/models/transactions/events/enhanced_data.rb +543 -0
  275. data/lib/lithic/models/transfer.rb +396 -0
  276. data/lib/lithic/models/transfer_create_params.rb +65 -0
  277. data/lib/lithic/models/verification_method.rb +21 -0
  278. data/lib/lithic/pooled_net_requester.rb +180 -0
  279. data/lib/lithic/request_options.rb +108 -0
  280. data/lib/lithic/resources/account_holders.rb +428 -0
  281. data/lib/lithic/resources/accounts.rb +128 -0
  282. data/lib/lithic/resources/aggregate_balances.rb +34 -0
  283. data/lib/lithic/resources/auth_rules/v2/backtests.rb +106 -0
  284. data/lib/lithic/resources/auth_rules/v2.rb +300 -0
  285. data/lib/lithic/resources/auth_rules.rb +16 -0
  286. data/lib/lithic/resources/auth_stream_enrollment.rb +52 -0
  287. data/lib/lithic/resources/balances.rb +40 -0
  288. data/lib/lithic/resources/book_transfers.rb +137 -0
  289. data/lib/lithic/resources/card_programs.rb +57 -0
  290. data/lib/lithic/resources/cards/aggregate_balances.rb +37 -0
  291. data/lib/lithic/resources/cards/balances.rb +41 -0
  292. data/lib/lithic/resources/cards/financial_transactions.rb +78 -0
  293. data/lib/lithic/resources/cards.rb +556 -0
  294. data/lib/lithic/resources/credit_products/extended_credit.rb +32 -0
  295. data/lib/lithic/resources/credit_products/prime_rates.rb +62 -0
  296. data/lib/lithic/resources/credit_products.rb +20 -0
  297. data/lib/lithic/resources/digital_card_art.rb +60 -0
  298. data/lib/lithic/resources/disputes.rb +253 -0
  299. data/lib/lithic/resources/events/subscriptions.rb +285 -0
  300. data/lib/lithic/resources/events.rb +108 -0
  301. data/lib/lithic/resources/external_bank_accounts/micro_deposits.rb +36 -0
  302. data/lib/lithic/resources/external_bank_accounts.rb +214 -0
  303. data/lib/lithic/resources/external_payments.rb +208 -0
  304. data/lib/lithic/resources/financial_accounts/balances.rb +41 -0
  305. data/lib/lithic/resources/financial_accounts/credit_configuration.rb +60 -0
  306. data/lib/lithic/resources/financial_accounts/financial_transactions.rb +83 -0
  307. data/lib/lithic/resources/financial_accounts/loan_tapes.rb +74 -0
  308. data/lib/lithic/resources/financial_accounts/statements/line_items.rb +56 -0
  309. data/lib/lithic/resources/financial_accounts/statements.rb +80 -0
  310. data/lib/lithic/resources/financial_accounts.rb +152 -0
  311. data/lib/lithic/resources/management_operations.rb +134 -0
  312. data/lib/lithic/resources/payments.rb +226 -0
  313. data/lib/lithic/resources/reports/settlement/network_totals.rb +80 -0
  314. data/lib/lithic/resources/reports/settlement.rb +65 -0
  315. data/lib/lithic/resources/reports.rb +16 -0
  316. data/lib/lithic/resources/responder_endpoints.rb +74 -0
  317. data/lib/lithic/resources/three_ds/authentication.rb +88 -0
  318. data/lib/lithic/resources/three_ds/decisioning.rb +79 -0
  319. data/lib/lithic/resources/three_ds.rb +20 -0
  320. data/lib/lithic/resources/tokenization_decisioning.rb +51 -0
  321. data/lib/lithic/resources/tokenizations.rb +271 -0
  322. data/lib/lithic/resources/transactions/enhanced_commercial_data.rb +33 -0
  323. data/lib/lithic/resources/transactions/events/enhanced_commercial_data.rb +35 -0
  324. data/lib/lithic/resources/transactions/events.rb +19 -0
  325. data/lib/lithic/resources/transactions.rb +343 -0
  326. data/lib/lithic/resources/transfers.rb +45 -0
  327. data/lib/lithic/single_page.rb +86 -0
  328. data/lib/lithic/util.rb +728 -0
  329. data/lib/lithic/version.rb +5 -0
  330. data/lib/lithic.rb +363 -0
  331. data/manifest.yaml +14 -0
  332. data/rbi/lib/lithic/base_client.rbi +196 -0
  333. data/rbi/lib/lithic/base_model.rbi +640 -0
  334. data/rbi/lib/lithic/base_page.rbi +36 -0
  335. data/rbi/lib/lithic/client.rbi +143 -0
  336. data/rbi/lib/lithic/cursor_page.rbi +19 -0
  337. data/rbi/lib/lithic/errors.rbi +144 -0
  338. data/rbi/lib/lithic/extern.rbi +7 -0
  339. data/rbi/lib/lithic/models/account.rbi +273 -0
  340. data/rbi/lib/lithic/models/account_financial_account_type.rbi +20 -0
  341. data/rbi/lib/lithic/models/account_holder.rbi +895 -0
  342. data/rbi/lib/lithic/models/account_holder_create_params.rbi +656 -0
  343. data/rbi/lib/lithic/models/account_holder_create_response.rbi +218 -0
  344. data/rbi/lib/lithic/models/account_holder_list_documents_params.rbi +25 -0
  345. data/rbi/lib/lithic/models/account_holder_list_documents_response.rbi +21 -0
  346. data/rbi/lib/lithic/models/account_holder_list_params.rbi +150 -0
  347. data/rbi/lib/lithic/models/account_holder_retrieve_document_params.rbi +27 -0
  348. data/rbi/lib/lithic/models/account_holder_retrieve_params.rbi +25 -0
  349. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rbi +197 -0
  350. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_params.rbi +191 -0
  351. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_response.rbi +1305 -0
  352. data/rbi/lib/lithic/models/account_holder_update_params.rbi +741 -0
  353. data/rbi/lib/lithic/models/account_holder_update_response.rbi +1523 -0
  354. data/rbi/lib/lithic/models/account_holder_upload_document_params.rbi +115 -0
  355. data/rbi/lib/lithic/models/account_list_params.rbi +79 -0
  356. data/rbi/lib/lithic/models/account_retrieve_params.rbi +25 -0
  357. data/rbi/lib/lithic/models/account_retrieve_spend_limits_params.rbi +25 -0
  358. data/rbi/lib/lithic/models/account_spend_limits.rbi +156 -0
  359. data/rbi/lib/lithic/models/account_update_params.rbi +185 -0
  360. data/rbi/lib/lithic/models/address.rbi +69 -0
  361. data/rbi/lib/lithic/models/address_update.rbi +82 -0
  362. data/rbi/lib/lithic/models/aggregate_balance.rbi +118 -0
  363. data/rbi/lib/lithic/models/aggregate_balance_list_params.rbi +61 -0
  364. data/rbi/lib/lithic/models/api_status.rbi +21 -0
  365. data/rbi/lib/lithic/models/auth_rules/auth_rule.rbi +135 -0
  366. data/rbi/lib/lithic/models/auth_rules/auth_rule_condition.rbi +137 -0
  367. data/rbi/lib/lithic/models/auth_rules/conditional_attribute.rbi +86 -0
  368. data/rbi/lib/lithic/models/auth_rules/conditional_block_parameters.rbi +23 -0
  369. data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_params.rbi +43 -0
  370. data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_response.rbi +26 -0
  371. data/rbi/lib/lithic/models/auth_rules/v2/backtest_results.rbi +367 -0
  372. data/rbi/lib/lithic/models/auth_rules/v2/backtest_retrieve_params.rbi +31 -0
  373. data/rbi/lib/lithic/models/auth_rules/v2_apply_params.rbi +59 -0
  374. data/rbi/lib/lithic/models/auth_rules/v2_apply_response.rbi +269 -0
  375. data/rbi/lib/lithic/models/auth_rules/v2_create_params.rbi +147 -0
  376. data/rbi/lib/lithic/models/auth_rules/v2_create_response.rbi +270 -0
  377. data/rbi/lib/lithic/models/auth_rules/v2_delete_params.rbi +27 -0
  378. data/rbi/lib/lithic/models/auth_rules/v2_draft_params.rbi +72 -0
  379. data/rbi/lib/lithic/models/auth_rules/v2_draft_response.rbi +269 -0
  380. data/rbi/lib/lithic/models/auth_rules/v2_list_params.rbi +86 -0
  381. data/rbi/lib/lithic/models/auth_rules/v2_list_response.rbi +268 -0
  382. data/rbi/lib/lithic/models/auth_rules/v2_promote_params.rbi +27 -0
  383. data/rbi/lib/lithic/models/auth_rules/v2_promote_response.rbi +270 -0
  384. data/rbi/lib/lithic/models/auth_rules/v2_report_params.rbi +27 -0
  385. data/rbi/lib/lithic/models/auth_rules/v2_report_response.rbi +23 -0
  386. data/rbi/lib/lithic/models/auth_rules/v2_retrieve_params.rbi +27 -0
  387. data/rbi/lib/lithic/models/auth_rules/v2_retrieve_response.rbi +271 -0
  388. data/rbi/lib/lithic/models/auth_rules/v2_update_params.rbi +113 -0
  389. data/rbi/lib/lithic/models/auth_rules/v2_update_response.rbi +270 -0
  390. data/rbi/lib/lithic/models/auth_rules/velocity_limit_params.rbi +140 -0
  391. data/rbi/lib/lithic/models/auth_rules/velocity_limit_params_period_window.rbi +30 -0
  392. data/rbi/lib/lithic/models/auth_stream_enrollment_retrieve_secret_params.rbi +25 -0
  393. data/rbi/lib/lithic/models/auth_stream_enrollment_rotate_secret_params.rbi +25 -0
  394. data/rbi/lib/lithic/models/auth_stream_secret.rbi +22 -0
  395. data/rbi/lib/lithic/models/balance.rbi +117 -0
  396. data/rbi/lib/lithic/models/balance_list_params.rbi +90 -0
  397. data/rbi/lib/lithic/models/book_transfer_create_params.rbi +173 -0
  398. data/rbi/lib/lithic/models/book_transfer_list_params.rbi +196 -0
  399. data/rbi/lib/lithic/models/book_transfer_response.rbi +277 -0
  400. data/rbi/lib/lithic/models/book_transfer_retrieve_params.rbi +25 -0
  401. data/rbi/lib/lithic/models/book_transfer_reverse_params.rbi +28 -0
  402. data/rbi/lib/lithic/models/card.rbi +497 -0
  403. data/rbi/lib/lithic/models/card_convert_physical_params.rbi +111 -0
  404. data/rbi/lib/lithic/models/card_create_params.rbi +351 -0
  405. data/rbi/lib/lithic/models/card_embed_params.rbi +33 -0
  406. data/rbi/lib/lithic/models/card_list_params.rbi +124 -0
  407. data/rbi/lib/lithic/models/card_program.rbi +82 -0
  408. data/rbi/lib/lithic/models/card_program_list_params.rbi +59 -0
  409. data/rbi/lib/lithic/models/card_program_retrieve_params.rbi +25 -0
  410. data/rbi/lib/lithic/models/card_provision_params.rbi +120 -0
  411. data/rbi/lib/lithic/models/card_provision_response.rbi +21 -0
  412. data/rbi/lib/lithic/models/card_reissue_params.rbi +111 -0
  413. data/rbi/lib/lithic/models/card_renew_params.rbi +138 -0
  414. data/rbi/lib/lithic/models/card_retrieve_params.rbi +25 -0
  415. data/rbi/lib/lithic/models/card_retrieve_spend_limits_params.rbi +25 -0
  416. data/rbi/lib/lithic/models/card_search_by_pan_params.rbi +25 -0
  417. data/rbi/lib/lithic/models/card_spend_limits.rbi +153 -0
  418. data/rbi/lib/lithic/models/card_update_params.rbi +168 -0
  419. data/rbi/lib/lithic/models/cards/aggregate_balance_list_params.rbi +48 -0
  420. data/rbi/lib/lithic/models/cards/aggregate_balance_list_response.rbi +96 -0
  421. data/rbi/lib/lithic/models/cards/balance_list_params.rbi +52 -0
  422. data/rbi/lib/lithic/models/cards/balance_list_response.rbi +119 -0
  423. data/rbi/lib/lithic/models/cards/financial_transaction_list_params.rbi +164 -0
  424. data/rbi/lib/lithic/models/cards/financial_transaction_retrieve_params.rbi +26 -0
  425. data/rbi/lib/lithic/models/carrier.rbi +22 -0
  426. data/rbi/lib/lithic/models/client_api_status_params.rbi +25 -0
  427. data/rbi/lib/lithic/models/credit_products/extended_credit.rbi +20 -0
  428. data/rbi/lib/lithic/models/credit_products/extended_credit_retrieve_params.rbi +27 -0
  429. data/rbi/lib/lithic/models/credit_products/prime_rate_create_params.rbi +37 -0
  430. data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_params.rbi +49 -0
  431. data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_response.rbi +54 -0
  432. data/rbi/lib/lithic/models/digital_card_art.rbi +85 -0
  433. data/rbi/lib/lithic/models/digital_card_art_list_params.rbi +59 -0
  434. data/rbi/lib/lithic/models/digital_card_art_retrieve_params.rbi +25 -0
  435. data/rbi/lib/lithic/models/dispute.rbi +345 -0
  436. data/rbi/lib/lithic/models/dispute_create_params.rbi +100 -0
  437. data/rbi/lib/lithic/models/dispute_delete_evidence_params.rbi +24 -0
  438. data/rbi/lib/lithic/models/dispute_delete_params.rbi +25 -0
  439. data/rbi/lib/lithic/models/dispute_evidence.rbi +108 -0
  440. data/rbi/lib/lithic/models/dispute_initiate_evidence_upload_params.rbi +28 -0
  441. data/rbi/lib/lithic/models/dispute_list_evidences_params.rbi +79 -0
  442. data/rbi/lib/lithic/models/dispute_list_params.rbi +127 -0
  443. data/rbi/lib/lithic/models/dispute_retrieve_evidence_params.rbi +24 -0
  444. data/rbi/lib/lithic/models/dispute_retrieve_params.rbi +25 -0
  445. data/rbi/lib/lithic/models/dispute_update_params.rbi +100 -0
  446. data/rbi/lib/lithic/models/document.rbi +283 -0
  447. data/rbi/lib/lithic/models/event.rbi +196 -0
  448. data/rbi/lib/lithic/models/event_list_attempts_params.rbi +111 -0
  449. data/rbi/lib/lithic/models/event_list_params.rbi +208 -0
  450. data/rbi/lib/lithic/models/event_retrieve_params.rbi +25 -0
  451. data/rbi/lib/lithic/models/event_subscription.rbi +161 -0
  452. data/rbi/lib/lithic/models/events/subscription_create_params.rbi +254 -0
  453. data/rbi/lib/lithic/models/events/subscription_delete_params.rbi +27 -0
  454. data/rbi/lib/lithic/models/events/subscription_list_attempts_params.rbi +115 -0
  455. data/rbi/lib/lithic/models/events/subscription_list_params.rbi +61 -0
  456. data/rbi/lib/lithic/models/events/subscription_recover_params.rbi +43 -0
  457. data/rbi/lib/lithic/models/events/subscription_replay_missing_params.rbi +43 -0
  458. data/rbi/lib/lithic/models/events/subscription_retrieve_params.rbi +27 -0
  459. data/rbi/lib/lithic/models/events/subscription_retrieve_secret_params.rbi +27 -0
  460. data/rbi/lib/lithic/models/events/subscription_retrieve_secret_response.rbi +24 -0
  461. data/rbi/lib/lithic/models/events/subscription_rotate_secret_params.rbi +27 -0
  462. data/rbi/lib/lithic/models/events/subscription_send_simulated_example_params.rbi +272 -0
  463. data/rbi/lib/lithic/models/events/subscription_update_params.rbi +254 -0
  464. data/rbi/lib/lithic/models/external_bank_account_address.rbi +58 -0
  465. data/rbi/lib/lithic/models/external_bank_account_create_params.rbi +223 -0
  466. data/rbi/lib/lithic/models/external_bank_account_create_response.rbi +327 -0
  467. data/rbi/lib/lithic/models/external_bank_account_list_params.rbi +177 -0
  468. data/rbi/lib/lithic/models/external_bank_account_list_response.rbi +324 -0
  469. data/rbi/lib/lithic/models/external_bank_account_retrieve_params.rbi +25 -0
  470. data/rbi/lib/lithic/models/external_bank_account_retrieve_response.rbi +330 -0
  471. data/rbi/lib/lithic/models/external_bank_account_retry_micro_deposits_params.rbi +30 -0
  472. data/rbi/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rbi +376 -0
  473. data/rbi/lib/lithic/models/external_bank_account_retry_prenote_params.rbi +30 -0
  474. data/rbi/lib/lithic/models/external_bank_account_retry_prenote_response.rbi +287 -0
  475. data/rbi/lib/lithic/models/external_bank_account_update_params.rbi +137 -0
  476. data/rbi/lib/lithic/models/external_bank_account_update_response.rbi +327 -0
  477. data/rbi/lib/lithic/models/external_bank_accounts/micro_deposit_create_params.rbi +29 -0
  478. data/rbi/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rbi +390 -0
  479. data/rbi/lib/lithic/models/external_payment.rbi +308 -0
  480. data/rbi/lib/lithic/models/external_payment_cancel_params.rbi +34 -0
  481. data/rbi/lib/lithic/models/external_payment_create_params.rbi +148 -0
  482. data/rbi/lib/lithic/models/external_payment_list_params.rbi +191 -0
  483. data/rbi/lib/lithic/models/external_payment_release_params.rbi +34 -0
  484. data/rbi/lib/lithic/models/external_payment_retrieve_params.rbi +25 -0
  485. data/rbi/lib/lithic/models/external_payment_reverse_params.rbi +34 -0
  486. data/rbi/lib/lithic/models/external_payment_settle_params.rbi +66 -0
  487. data/rbi/lib/lithic/models/financial_account.rbi +301 -0
  488. data/rbi/lib/lithic/models/financial_account_create_params.rbi +78 -0
  489. data/rbi/lib/lithic/models/financial_account_list_params.rbi +73 -0
  490. data/rbi/lib/lithic/models/financial_account_retrieve_params.rbi +25 -0
  491. data/rbi/lib/lithic/models/financial_account_update_params.rbi +27 -0
  492. data/rbi/lib/lithic/models/financial_account_update_status_params.rbi +95 -0
  493. data/rbi/lib/lithic/models/financial_accounts/balance_list_params.rbi +52 -0
  494. data/rbi/lib/lithic/models/financial_accounts/balance_list_response.rbi +121 -0
  495. data/rbi/lib/lithic/models/financial_accounts/credit_configuration_retrieve_params.rbi +27 -0
  496. data/rbi/lib/lithic/models/financial_accounts/credit_configuration_update_params.rbi +72 -0
  497. data/rbi/lib/lithic/models/financial_accounts/financial_account_credit_config.rbi +171 -0
  498. data/rbi/lib/lithic/models/financial_accounts/financial_transaction_list_params.rbi +197 -0
  499. data/rbi/lib/lithic/models/financial_accounts/financial_transaction_retrieve_params.rbi +29 -0
  500. data/rbi/lib/lithic/models/financial_accounts/loan_tape.rbi +1111 -0
  501. data/rbi/lib/lithic/models/financial_accounts/loan_tape_list_params.rbi +81 -0
  502. data/rbi/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rbi +30 -0
  503. data/rbi/lib/lithic/models/financial_accounts/statement.rbi +852 -0
  504. data/rbi/lib/lithic/models/financial_accounts/statement_list_params.rbi +98 -0
  505. data/rbi/lib/lithic/models/financial_accounts/statement_retrieve_params.rbi +30 -0
  506. data/rbi/lib/lithic/models/financial_accounts/statements/line_item_list_params.rbi +69 -0
  507. data/rbi/lib/lithic/models/financial_accounts/statements/statement_line_items.rbi +573 -0
  508. data/rbi/lib/lithic/models/financial_accounts/statements.rbi +29 -0
  509. data/rbi/lib/lithic/models/financial_transaction.rbi +403 -0
  510. data/rbi/lib/lithic/models/instance_financial_account_type.rbi +26 -0
  511. data/rbi/lib/lithic/models/kyb.rbi +464 -0
  512. data/rbi/lib/lithic/models/kyb_business_entity.rbi +146 -0
  513. data/rbi/lib/lithic/models/kyc.rbi +158 -0
  514. data/rbi/lib/lithic/models/kyc_exempt.rbi +131 -0
  515. data/rbi/lib/lithic/models/management_operation_create_params.rbi +190 -0
  516. data/rbi/lib/lithic/models/management_operation_list_params.rbi +167 -0
  517. data/rbi/lib/lithic/models/management_operation_retrieve_params.rbi +25 -0
  518. data/rbi/lib/lithic/models/management_operation_reverse_params.rbi +34 -0
  519. data/rbi/lib/lithic/models/management_operation_transaction.rbi +330 -0
  520. data/rbi/lib/lithic/models/message_attempt.rbi +92 -0
  521. data/rbi/lib/lithic/models/owner_type.rbi +19 -0
  522. data/rbi/lib/lithic/models/payment.rbi +486 -0
  523. data/rbi/lib/lithic/models/payment_create_params.rbi +166 -0
  524. data/rbi/lib/lithic/models/payment_create_response.rbi +22 -0
  525. data/rbi/lib/lithic/models/payment_list_params.rbi +183 -0
  526. data/rbi/lib/lithic/models/payment_retrieve_params.rbi +25 -0
  527. data/rbi/lib/lithic/models/payment_retry_params.rbi +25 -0
  528. data/rbi/lib/lithic/models/payment_retry_response.rbi +22 -0
  529. data/rbi/lib/lithic/models/payment_simulate_action_params.rbi +113 -0
  530. data/rbi/lib/lithic/models/payment_simulate_action_response.rbi +59 -0
  531. data/rbi/lib/lithic/models/payment_simulate_receipt_params.rbi +81 -0
  532. data/rbi/lib/lithic/models/payment_simulate_receipt_response.rbi +59 -0
  533. data/rbi/lib/lithic/models/payment_simulate_release_params.rbi +25 -0
  534. data/rbi/lib/lithic/models/payment_simulate_release_response.rbi +59 -0
  535. data/rbi/lib/lithic/models/payment_simulate_return_params.rbi +43 -0
  536. data/rbi/lib/lithic/models/payment_simulate_return_response.rbi +59 -0
  537. data/rbi/lib/lithic/models/reports/settlement/network_total_list_params.rbi +176 -0
  538. data/rbi/lib/lithic/models/reports/settlement/network_total_list_response.rbi +196 -0
  539. data/rbi/lib/lithic/models/reports/settlement/network_total_retrieve_params.rbi +29 -0
  540. data/rbi/lib/lithic/models/reports/settlement/network_total_retrieve_response.rbi +205 -0
  541. data/rbi/lib/lithic/models/reports/settlement_list_details_params.rbi +61 -0
  542. data/rbi/lib/lithic/models/reports/settlement_summary_params.rbi +27 -0
  543. data/rbi/lib/lithic/models/required_document.rbi +39 -0
  544. data/rbi/lib/lithic/models/responder_endpoint_check_status_params.rbi +56 -0
  545. data/rbi/lib/lithic/models/responder_endpoint_create_params.rbi +68 -0
  546. data/rbi/lib/lithic/models/responder_endpoint_create_response.rbi +22 -0
  547. data/rbi/lib/lithic/models/responder_endpoint_delete_params.rbi +53 -0
  548. data/rbi/lib/lithic/models/responder_endpoint_status.rbi +26 -0
  549. data/rbi/lib/lithic/models/settlement_detail.rbi +246 -0
  550. data/rbi/lib/lithic/models/settlement_report.rbi +117 -0
  551. data/rbi/lib/lithic/models/settlement_summary_details.rbi +128 -0
  552. data/rbi/lib/lithic/models/shipping_address.rbi +124 -0
  553. data/rbi/lib/lithic/models/spend_limit_duration.rbi +33 -0
  554. data/rbi/lib/lithic/models/three_ds/authentication_retrieve_params.rbi +27 -0
  555. data/rbi/lib/lithic/models/three_ds/authentication_retrieve_response.rbi +1743 -0
  556. data/rbi/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rbi +36 -0
  557. data/rbi/lib/lithic/models/three_ds/authentication_simulate_params.rbi +153 -0
  558. data/rbi/lib/lithic/models/three_ds/authentication_simulate_response.rbi +25 -0
  559. data/rbi/lib/lithic/models/three_ds/challenge_response.rbi +31 -0
  560. data/rbi/lib/lithic/models/three_ds/challenge_result.rbi +22 -0
  561. data/rbi/lib/lithic/models/three_ds/decisioning_challenge_response_params.rbi +27 -0
  562. data/rbi/lib/lithic/models/three_ds/decisioning_retrieve_secret_params.rbi +27 -0
  563. data/rbi/lib/lithic/models/three_ds/decisioning_retrieve_secret_response.rbi +24 -0
  564. data/rbi/lib/lithic/models/three_ds/decisioning_rotate_secret_params.rbi +27 -0
  565. data/rbi/lib/lithic/models/tokenization.rbi +293 -0
  566. data/rbi/lib/lithic/models/tokenization_activate_params.rbi +25 -0
  567. data/rbi/lib/lithic/models/tokenization_deactivate_params.rbi +25 -0
  568. data/rbi/lib/lithic/models/tokenization_decisioning_retrieve_secret_params.rbi +25 -0
  569. data/rbi/lib/lithic/models/tokenization_decisioning_rotate_secret_params.rbi +25 -0
  570. data/rbi/lib/lithic/models/tokenization_decisioning_rotate_secret_response.rbi +22 -0
  571. data/rbi/lib/lithic/models/tokenization_list_params.rbi +135 -0
  572. data/rbi/lib/lithic/models/tokenization_pause_params.rbi +25 -0
  573. data/rbi/lib/lithic/models/tokenization_resend_activation_code_params.rbi +78 -0
  574. data/rbi/lib/lithic/models/tokenization_retrieve_params.rbi +25 -0
  575. data/rbi/lib/lithic/models/tokenization_retrieve_response.rbi +21 -0
  576. data/rbi/lib/lithic/models/tokenization_secret.rbi +22 -0
  577. data/rbi/lib/lithic/models/tokenization_simulate_params.rbi +156 -0
  578. data/rbi/lib/lithic/models/tokenization_simulate_response.rbi +24 -0
  579. data/rbi/lib/lithic/models/tokenization_unpause_params.rbi +25 -0
  580. data/rbi/lib/lithic/models/tokenization_update_digital_card_art_params.rbi +34 -0
  581. data/rbi/lib/lithic/models/tokenization_update_digital_card_art_response.rbi +21 -0
  582. data/rbi/lib/lithic/models/transaction.rbi +2030 -0
  583. data/rbi/lib/lithic/models/transaction_expire_authorization_params.rbi +25 -0
  584. data/rbi/lib/lithic/models/transaction_list_params.rbi +161 -0
  585. data/rbi/lib/lithic/models/transaction_retrieve_params.rbi +25 -0
  586. data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_params.rbi +34 -0
  587. data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_response.rbi +29 -0
  588. data/rbi/lib/lithic/models/transaction_simulate_authorization_params.rbi +194 -0
  589. data/rbi/lib/lithic/models/transaction_simulate_authorization_response.rbi +30 -0
  590. data/rbi/lib/lithic/models/transaction_simulate_clearing_params.rbi +44 -0
  591. data/rbi/lib/lithic/models/transaction_simulate_clearing_response.rbi +22 -0
  592. data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_params.rbi +70 -0
  593. data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_response.rbi +29 -0
  594. data/rbi/lib/lithic/models/transaction_simulate_return_params.rbi +46 -0
  595. data/rbi/lib/lithic/models/transaction_simulate_return_response.rbi +29 -0
  596. data/rbi/lib/lithic/models/transaction_simulate_return_reversal_params.rbi +25 -0
  597. data/rbi/lib/lithic/models/transaction_simulate_return_reversal_response.rbi +22 -0
  598. data/rbi/lib/lithic/models/transaction_simulate_void_params.rbi +81 -0
  599. data/rbi/lib/lithic/models/transaction_simulate_void_response.rbi +22 -0
  600. data/rbi/lib/lithic/models/transactions/enhanced_commercial_data_retrieve_params.rbi +27 -0
  601. data/rbi/lib/lithic/models/transactions/enhanced_commercial_data_retrieve_response.rbi +23 -0
  602. data/rbi/lib/lithic/models/transactions/events/enhanced_commercial_data_retrieve_params.rbi +29 -0
  603. data/rbi/lib/lithic/models/transactions/events/enhanced_data.rbi +1069 -0
  604. data/rbi/lib/lithic/models/transfer.rbi +422 -0
  605. data/rbi/lib/lithic/models/transfer_create_params.rbi +70 -0
  606. data/rbi/lib/lithic/models/verification_method.rbi +22 -0
  607. data/rbi/lib/lithic/pooled_net_requester.rbi +59 -0
  608. data/rbi/lib/lithic/request_options.rbi +63 -0
  609. data/rbi/lib/lithic/resources/account_holders.rbi +437 -0
  610. data/rbi/lib/lithic/resources/accounts.rbi +119 -0
  611. data/rbi/lib/lithic/resources/aggregate_balances.rbi +27 -0
  612. data/rbi/lib/lithic/resources/auth_rules/v2/backtests.rbi +95 -0
  613. data/rbi/lib/lithic/resources/auth_rules/v2.rbi +291 -0
  614. data/rbi/lib/lithic/resources/auth_rules.rbi +14 -0
  615. data/rbi/lib/lithic/resources/auth_stream_enrollment.rbi +32 -0
  616. data/rbi/lib/lithic/resources/balances.rbi +36 -0
  617. data/rbi/lib/lithic/resources/book_transfers.rbi +133 -0
  618. data/rbi/lib/lithic/resources/card_programs.rbi +49 -0
  619. data/rbi/lib/lithic/resources/cards/aggregate_balances.rbi +31 -0
  620. data/rbi/lib/lithic/resources/cards/balances.rbi +35 -0
  621. data/rbi/lib/lithic/resources/cards/financial_transactions.rbi +69 -0
  622. data/rbi/lib/lithic/resources/cards.rbi +532 -0
  623. data/rbi/lib/lithic/resources/credit_products/extended_credit.rbi +28 -0
  624. data/rbi/lib/lithic/resources/credit_products/prime_rates.rbi +55 -0
  625. data/rbi/lib/lithic/resources/credit_products.rbi +17 -0
  626. data/rbi/lib/lithic/resources/digital_card_art.rbi +52 -0
  627. data/rbi/lib/lithic/resources/disputes.rbi +202 -0
  628. data/rbi/lib/lithic/resources/events/subscriptions.rbi +233 -0
  629. data/rbi/lib/lithic/resources/events.rbi +97 -0
  630. data/rbi/lib/lithic/resources/external_bank_accounts/micro_deposits.rbi +25 -0
  631. data/rbi/lib/lithic/resources/external_bank_accounts.rbi +193 -0
  632. data/rbi/lib/lithic/resources/external_payments.rbi +180 -0
  633. data/rbi/lib/lithic/resources/financial_accounts/balances.rbi +36 -0
  634. data/rbi/lib/lithic/resources/financial_accounts/credit_configuration.rbi +53 -0
  635. data/rbi/lib/lithic/resources/financial_accounts/financial_transactions.rbi +71 -0
  636. data/rbi/lib/lithic/resources/financial_accounts/loan_tapes.rbi +65 -0
  637. data/rbi/lib/lithic/resources/financial_accounts/statements/line_items.rbi +45 -0
  638. data/rbi/lib/lithic/resources/financial_accounts/statements.rbi +71 -0
  639. data/rbi/lib/lithic/resources/financial_accounts.rbi +119 -0
  640. data/rbi/lib/lithic/resources/management_operations.rbi +120 -0
  641. data/rbi/lib/lithic/resources/payments.rbi +191 -0
  642. data/rbi/lib/lithic/resources/reports/settlement/network_totals.rbi +85 -0
  643. data/rbi/lib/lithic/resources/reports/settlement.rbi +57 -0
  644. data/rbi/lib/lithic/resources/reports.rbi +14 -0
  645. data/rbi/lib/lithic/resources/responder_endpoints.rbi +59 -0
  646. data/rbi/lib/lithic/resources/three_ds/authentication.rbi +76 -0
  647. data/rbi/lib/lithic/resources/three_ds/decisioning.rbi +55 -0
  648. data/rbi/lib/lithic/resources/three_ds.rbi +17 -0
  649. data/rbi/lib/lithic/resources/tokenization_decisioning.rbi +34 -0
  650. data/rbi/lib/lithic/resources/tokenizations.rbi +250 -0
  651. data/rbi/lib/lithic/resources/transactions/enhanced_commercial_data.rbi +29 -0
  652. data/rbi/lib/lithic/resources/transactions/events/enhanced_commercial_data.rbi +31 -0
  653. data/rbi/lib/lithic/resources/transactions/events.rbi +16 -0
  654. data/rbi/lib/lithic/resources/transactions.rbi +325 -0
  655. data/rbi/lib/lithic/resources/transfers.rbi +43 -0
  656. data/rbi/lib/lithic/single_page.rbi +19 -0
  657. data/rbi/lib/lithic/util.rbi +280 -0
  658. data/rbi/lib/lithic/version.rbi +5 -0
  659. data/sig/lithic/base_client.rbs +106 -0
  660. data/sig/lithic/base_model.rbs +260 -0
  661. data/sig/lithic/base_page.rbs +20 -0
  662. data/sig/lithic/client.rbs +84 -0
  663. data/sig/lithic/cursor_page.rbs +11 -0
  664. data/sig/lithic/errors.rbs +99 -0
  665. data/sig/lithic/extern.rbs +4 -0
  666. data/sig/lithic/models/account.rbs +152 -0
  667. data/sig/lithic/models/account_financial_account_type.rbs +14 -0
  668. data/sig/lithic/models/account_holder.rbs +512 -0
  669. data/sig/lithic/models/account_holder_create_params.rbs +325 -0
  670. data/sig/lithic/models/account_holder_create_response.rbs +126 -0
  671. data/sig/lithic/models/account_holder_list_documents_params.rbs +15 -0
  672. data/sig/lithic/models/account_holder_list_documents_response.rbs +18 -0
  673. data/sig/lithic/models/account_holder_list_params.rbs +85 -0
  674. data/sig/lithic/models/account_holder_retrieve_document_params.rbs +20 -0
  675. data/sig/lithic/models/account_holder_retrieve_params.rbs +14 -0
  676. data/sig/lithic/models/account_holder_simulate_enrollment_document_review_params.rbs +85 -0
  677. data/sig/lithic/models/account_holder_simulate_enrollment_review_params.rbs +95 -0
  678. data/sig/lithic/models/account_holder_simulate_enrollment_review_response.rbs +608 -0
  679. data/sig/lithic/models/account_holder_update_params.rbs +404 -0
  680. data/sig/lithic/models/account_holder_update_response.rbs +716 -0
  681. data/sig/lithic/models/account_holder_upload_document_params.rbs +74 -0
  682. data/sig/lithic/models/account_list_params.rbs +49 -0
  683. data/sig/lithic/models/account_retrieve_params.rbs +14 -0
  684. data/sig/lithic/models/account_retrieve_spend_limits_params.rbs +15 -0
  685. data/sig/lithic/models/account_spend_limits.rbs +108 -0
  686. data/sig/lithic/models/account_update_params.rbs +111 -0
  687. data/sig/lithic/models/address.rbs +40 -0
  688. data/sig/lithic/models/address_update.rbs +50 -0
  689. data/sig/lithic/models/aggregate_balance.rbs +66 -0
  690. data/sig/lithic/models/aggregate_balance_list_params.rbs +39 -0
  691. data/sig/lithic/models/api_status.rbs +15 -0
  692. data/sig/lithic/models/auth_rules/auth_rule.rbs +79 -0
  693. data/sig/lithic/models/auth_rules/auth_rule_condition.rbs +75 -0
  694. data/sig/lithic/models/auth_rules/conditional_attribute.rbs +46 -0
  695. data/sig/lithic/models/auth_rules/conditional_block_parameters.rbs +18 -0
  696. data/sig/lithic/models/auth_rules/v2/backtest_create_params.rbs +31 -0
  697. data/sig/lithic/models/auth_rules/v2/backtest_create_response.rbs +19 -0
  698. data/sig/lithic/models/auth_rules/v2/backtest_results.rbs +198 -0
  699. data/sig/lithic/models/auth_rules/v2/backtest_retrieve_params.rbs +24 -0
  700. data/sig/lithic/models/auth_rules/v2_apply_params.rbs +39 -0
  701. data/sig/lithic/models/auth_rules/v2_apply_response.rbs +138 -0
  702. data/sig/lithic/models/auth_rules/v2_create_params.rbs +80 -0
  703. data/sig/lithic/models/auth_rules/v2_create_response.rbs +138 -0
  704. data/sig/lithic/models/auth_rules/v2_delete_params.rbs +16 -0
  705. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +33 -0
  706. data/sig/lithic/models/auth_rules/v2_draft_response.rbs +138 -0
  707. data/sig/lithic/models/auth_rules/v2_list_params.rbs +51 -0
  708. data/sig/lithic/models/auth_rules/v2_list_response.rbs +138 -0
  709. data/sig/lithic/models/auth_rules/v2_promote_params.rbs +16 -0
  710. data/sig/lithic/models/auth_rules/v2_promote_response.rbs +138 -0
  711. data/sig/lithic/models/auth_rules/v2_report_params.rbs +16 -0
  712. data/sig/lithic/models/auth_rules/v2_report_response.rbs +17 -0
  713. data/sig/lithic/models/auth_rules/v2_retrieve_params.rbs +16 -0
  714. data/sig/lithic/models/auth_rules/v2_retrieve_response.rbs +138 -0
  715. data/sig/lithic/models/auth_rules/v2_update_params.rbs +67 -0
  716. data/sig/lithic/models/auth_rules/v2_update_response.rbs +138 -0
  717. data/sig/lithic/models/auth_rules/velocity_limit_params.rbs +84 -0
  718. data/sig/lithic/models/auth_rules/velocity_limit_params_period_window.rbs +17 -0
  719. data/sig/lithic/models/auth_stream_enrollment_retrieve_secret_params.rbs +15 -0
  720. data/sig/lithic/models/auth_stream_enrollment_rotate_secret_params.rbs +15 -0
  721. data/sig/lithic/models/auth_stream_secret.rbs +15 -0
  722. data/sig/lithic/models/balance.rbs +66 -0
  723. data/sig/lithic/models/balance_list_params.rbs +57 -0
  724. data/sig/lithic/models/book_transfer_create_params.rbs +151 -0
  725. data/sig/lithic/models/book_transfer_list_params.rbs +136 -0
  726. data/sig/lithic/models/book_transfer_response.rbs +173 -0
  727. data/sig/lithic/models/book_transfer_retrieve_params.rbs +14 -0
  728. data/sig/lithic/models/book_transfer_reverse_params.rbs +22 -0
  729. data/sig/lithic/models/card.rbs +242 -0
  730. data/sig/lithic/models/card_convert_physical_params.rbs +64 -0
  731. data/sig/lithic/models/card_create_params.rbs +180 -0
  732. data/sig/lithic/models/card_embed_params.rbs +23 -0
  733. data/sig/lithic/models/card_list_params.rbs +78 -0
  734. data/sig/lithic/models/card_program.rbs +46 -0
  735. data/sig/lithic/models/card_program_list_params.rbs +33 -0
  736. data/sig/lithic/models/card_program_retrieve_params.rbs +14 -0
  737. data/sig/lithic/models/card_provision_params.rbs +69 -0
  738. data/sig/lithic/models/card_provision_response.rbs +15 -0
  739. data/sig/lithic/models/card_reissue_params.rbs +68 -0
  740. data/sig/lithic/models/card_renew_params.rbs +76 -0
  741. data/sig/lithic/models/card_retrieve_params.rbs +14 -0
  742. data/sig/lithic/models/card_retrieve_spend_limits_params.rbs +14 -0
  743. data/sig/lithic/models/card_search_by_pan_params.rbs +20 -0
  744. data/sig/lithic/models/card_spend_limits.rbs +109 -0
  745. data/sig/lithic/models/card_update_params.rbs +89 -0
  746. data/sig/lithic/models/cards/aggregate_balance_list_params.rbs +30 -0
  747. data/sig/lithic/models/cards/aggregate_balance_list_response.rbs +52 -0
  748. data/sig/lithic/models/cards/balance_list_params.rbs +30 -0
  749. data/sig/lithic/models/cards/balance_list_response.rbs +68 -0
  750. data/sig/lithic/models/cards/financial_transaction_list_params.rbs +107 -0
  751. data/sig/lithic/models/cards/financial_transaction_retrieve_params.rbs +22 -0
  752. data/sig/lithic/models/carrier.rbs +15 -0
  753. data/sig/lithic/models/client_api_status_params.rbs +14 -0
  754. data/sig/lithic/models/credit_products/extended_credit.rbs +15 -0
  755. data/sig/lithic/models/credit_products/extended_credit_retrieve_params.rbs +16 -0
  756. data/sig/lithic/models/credit_products/prime_rate_create_params.rbs +25 -0
  757. data/sig/lithic/models/credit_products/prime_rate_retrieve_params.rbs +30 -0
  758. data/sig/lithic/models/credit_products/prime_rate_retrieve_response.rbs +36 -0
  759. data/sig/lithic/models/digital_card_art.rbs +55 -0
  760. data/sig/lithic/models/digital_card_art_list_params.rbs +33 -0
  761. data/sig/lithic/models/digital_card_art_retrieve_params.rbs +14 -0
  762. data/sig/lithic/models/dispute.rbs +195 -0
  763. data/sig/lithic/models/dispute_create_params.rbs +80 -0
  764. data/sig/lithic/models/dispute_delete_evidence_params.rbs +20 -0
  765. data/sig/lithic/models/dispute_delete_params.rbs +14 -0
  766. data/sig/lithic/models/dispute_evidence.rbs +62 -0
  767. data/sig/lithic/models/dispute_initiate_evidence_upload_params.rbs +22 -0
  768. data/sig/lithic/models/dispute_list_evidences_params.rbs +49 -0
  769. data/sig/lithic/models/dispute_list_params.rbs +88 -0
  770. data/sig/lithic/models/dispute_retrieve_evidence_params.rbs +20 -0
  771. data/sig/lithic/models/dispute_retrieve_params.rbs +14 -0
  772. data/sig/lithic/models/dispute_update_params.rbs +82 -0
  773. data/sig/lithic/models/document.rbs +189 -0
  774. data/sig/lithic/models/event.rbs +123 -0
  775. data/sig/lithic/models/event_list_attempts_params.rbs +70 -0
  776. data/sig/lithic/models/event_list_params.rbs +156 -0
  777. data/sig/lithic/models/event_retrieve_params.rbs +14 -0
  778. data/sig/lithic/models/event_subscription.rbs +127 -0
  779. data/sig/lithic/models/events/subscription_create_params.rbs +138 -0
  780. data/sig/lithic/models/events/subscription_delete_params.rbs +16 -0
  781. data/sig/lithic/models/events/subscription_list_attempts_params.rbs +72 -0
  782. data/sig/lithic/models/events/subscription_list_params.rbs +35 -0
  783. data/sig/lithic/models/events/subscription_recover_params.rbs +29 -0
  784. data/sig/lithic/models/events/subscription_replay_missing_params.rbs +29 -0
  785. data/sig/lithic/models/events/subscription_retrieve_params.rbs +16 -0
  786. data/sig/lithic/models/events/subscription_retrieve_secret_params.rbs +17 -0
  787. data/sig/lithic/models/events/subscription_retrieve_secret_response.rbs +17 -0
  788. data/sig/lithic/models/events/subscription_rotate_secret_params.rbs +16 -0
  789. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +122 -0
  790. data/sig/lithic/models/events/subscription_update_params.rbs +138 -0
  791. data/sig/lithic/models/external_bank_account_address.rbs +40 -0
  792. data/sig/lithic/models/external_bank_account_create_params.rbs +130 -0
  793. data/sig/lithic/models/external_bank_account_create_response.rbs +183 -0
  794. data/sig/lithic/models/external_bank_account_list_params.rbs +118 -0
  795. data/sig/lithic/models/external_bank_account_list_response.rbs +183 -0
  796. data/sig/lithic/models/external_bank_account_retrieve_params.rbs +15 -0
  797. data/sig/lithic/models/external_bank_account_retrieve_response.rbs +183 -0
  798. data/sig/lithic/models/external_bank_account_retry_micro_deposits_params.rbs +22 -0
  799. data/sig/lithic/models/external_bank_account_retry_micro_deposits_response.rbs +183 -0
  800. data/sig/lithic/models/external_bank_account_retry_prenote_params.rbs +22 -0
  801. data/sig/lithic/models/external_bank_account_retry_prenote_response.rbs +159 -0
  802. data/sig/lithic/models/external_bank_account_update_params.rbs +90 -0
  803. data/sig/lithic/models/external_bank_account_update_response.rbs +183 -0
  804. data/sig/lithic/models/external_bank_accounts/micro_deposit_create_params.rbs +22 -0
  805. data/sig/lithic/models/external_bank_accounts/micro_deposit_create_response.rbs +185 -0
  806. data/sig/lithic/models/external_payment.rbs +231 -0
  807. data/sig/lithic/models/external_payment_cancel_params.rbs +25 -0
  808. data/sig/lithic/models/external_payment_create_params.rbs +101 -0
  809. data/sig/lithic/models/external_payment_list_params.rbs +124 -0
  810. data/sig/lithic/models/external_payment_release_params.rbs +25 -0
  811. data/sig/lithic/models/external_payment_retrieve_params.rbs +14 -0
  812. data/sig/lithic/models/external_payment_reverse_params.rbs +25 -0
  813. data/sig/lithic/models/external_payment_settle_params.rbs +48 -0
  814. data/sig/lithic/models/financial_account.rbs +179 -0
  815. data/sig/lithic/models/financial_account_create_params.rbs +55 -0
  816. data/sig/lithic/models/financial_account_list_params.rbs +51 -0
  817. data/sig/lithic/models/financial_account_retrieve_params.rbs +14 -0
  818. data/sig/lithic/models/financial_account_update_params.rbs +22 -0
  819. data/sig/lithic/models/financial_account_update_status_params.rbs +57 -0
  820. data/sig/lithic/models/financial_accounts/balance_list_params.rbs +30 -0
  821. data/sig/lithic/models/financial_accounts/balance_list_response.rbs +68 -0
  822. data/sig/lithic/models/financial_accounts/credit_configuration_retrieve_params.rbs +17 -0
  823. data/sig/lithic/models/financial_accounts/credit_configuration_update_params.rbs +45 -0
  824. data/sig/lithic/models/financial_accounts/financial_account_credit_config.rbs +75 -0
  825. data/sig/lithic/models/financial_accounts/financial_transaction_list_params.rbs +109 -0
  826. data/sig/lithic/models/financial_accounts/financial_transaction_retrieve_params.rbs +22 -0
  827. data/sig/lithic/models/financial_accounts/loan_tape.rbs +594 -0
  828. data/sig/lithic/models/financial_accounts/loan_tape_list_params.rbs +51 -0
  829. data/sig/lithic/models/financial_accounts/loan_tape_retrieve_params.rbs +22 -0
  830. data/sig/lithic/models/financial_accounts/statement.rbs +431 -0
  831. data/sig/lithic/models/financial_accounts/statement_list_params.rbs +57 -0
  832. data/sig/lithic/models/financial_accounts/statement_retrieve_params.rbs +22 -0
  833. data/sig/lithic/models/financial_accounts/statements/line_item_list_params.rbs +45 -0
  834. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +259 -0
  835. data/sig/lithic/models/financial_accounts/statements.rbs +24 -0
  836. data/sig/lithic/models/financial_transaction.rbs +291 -0
  837. data/sig/lithic/models/instance_financial_account_type.rbs +24 -0
  838. data/sig/lithic/models/kyb.rbs +231 -0
  839. data/sig/lithic/models/kyb_business_entity.rbs +79 -0
  840. data/sig/lithic/models/kyc.rbs +88 -0
  841. data/sig/lithic/models/kyc_exempt.rbs +75 -0
  842. data/sig/lithic/models/management_operation_create_params.rbs +134 -0
  843. data/sig/lithic/models/management_operation_list_params.rbs +108 -0
  844. data/sig/lithic/models/management_operation_retrieve_params.rbs +15 -0
  845. data/sig/lithic/models/management_operation_reverse_params.rbs +25 -0
  846. data/sig/lithic/models/management_operation_transaction.rbs +230 -0
  847. data/sig/lithic/models/message_attempt.rbs +59 -0
  848. data/sig/lithic/models/owner_type.rbs +14 -0
  849. data/sig/lithic/models/payment.rbs +302 -0
  850. data/sig/lithic/models/payment_create_params.rbs +110 -0
  851. data/sig/lithic/models/payment_create_response.rbs +15 -0
  852. data/sig/lithic/models/payment_list_params.rbs +125 -0
  853. data/sig/lithic/models/payment_retrieve_params.rbs +14 -0
  854. data/sig/lithic/models/payment_retry_params.rbs +14 -0
  855. data/sig/lithic/models/payment_retry_response.rbs +15 -0
  856. data/sig/lithic/models/payment_simulate_action_params.rbs +77 -0
  857. data/sig/lithic/models/payment_simulate_action_response.rbs +37 -0
  858. data/sig/lithic/models/payment_simulate_receipt_params.rbs +52 -0
  859. data/sig/lithic/models/payment_simulate_receipt_response.rbs +37 -0
  860. data/sig/lithic/models/payment_simulate_release_params.rbs +20 -0
  861. data/sig/lithic/models/payment_simulate_release_response.rbs +37 -0
  862. data/sig/lithic/models/payment_simulate_return_params.rbs +26 -0
  863. data/sig/lithic/models/payment_simulate_return_response.rbs +37 -0
  864. data/sig/lithic/models/reports/settlement/network_total_list_params.rbs +104 -0
  865. data/sig/lithic/models/reports/settlement/network_total_list_response.rbs +106 -0
  866. data/sig/lithic/models/reports/settlement/network_total_retrieve_params.rbs +18 -0
  867. data/sig/lithic/models/reports/settlement/network_total_retrieve_response.rbs +106 -0
  868. data/sig/lithic/models/reports/settlement_list_details_params.rbs +35 -0
  869. data/sig/lithic/models/reports/settlement_summary_params.rbs +16 -0
  870. data/sig/lithic/models/required_document.rbs +26 -0
  871. data/sig/lithic/models/responder_endpoint_check_status_params.rbs +34 -0
  872. data/sig/lithic/models/responder_endpoint_create_params.rbs +46 -0
  873. data/sig/lithic/models/responder_endpoint_create_response.rbs +15 -0
  874. data/sig/lithic/models/responder_endpoint_delete_params.rbs +34 -0
  875. data/sig/lithic/models/responder_endpoint_status.rbs +17 -0
  876. data/sig/lithic/models/settlement_detail.rbs +153 -0
  877. data/sig/lithic/models/settlement_report.rbs +58 -0
  878. data/sig/lithic/models/settlement_summary_details.rbs +78 -0
  879. data/sig/lithic/models/shipping_address.rbs +66 -0
  880. data/sig/lithic/models/spend_limit_duration.rbs +16 -0
  881. data/sig/lithic/models/three_ds/authentication_retrieve_params.rbs +16 -0
  882. data/sig/lithic/models/three_ds/authentication_retrieve_response.rbs +715 -0
  883. data/sig/lithic/models/three_ds/authentication_simulate_otp_entry_params.rbs +25 -0
  884. data/sig/lithic/models/three_ds/authentication_simulate_params.rbs +87 -0
  885. data/sig/lithic/models/three_ds/authentication_simulate_response.rbs +17 -0
  886. data/sig/lithic/models/three_ds/challenge_response.rbs +24 -0
  887. data/sig/lithic/models/three_ds/challenge_result.rbs +16 -0
  888. data/sig/lithic/models/three_ds/decisioning_challenge_response_params.rbs +17 -0
  889. data/sig/lithic/models/three_ds/decisioning_retrieve_secret_params.rbs +17 -0
  890. data/sig/lithic/models/three_ds/decisioning_retrieve_secret_response.rbs +17 -0
  891. data/sig/lithic/models/three_ds/decisioning_rotate_secret_params.rbs +16 -0
  892. data/sig/lithic/models/tokenization.rbs +226 -0
  893. data/sig/lithic/models/tokenization_activate_params.rbs +14 -0
  894. data/sig/lithic/models/tokenization_deactivate_params.rbs +14 -0
  895. data/sig/lithic/models/tokenization_decisioning_retrieve_secret_params.rbs +15 -0
  896. data/sig/lithic/models/tokenization_decisioning_rotate_secret_params.rbs +15 -0
  897. data/sig/lithic/models/tokenization_decisioning_rotate_secret_response.rbs +15 -0
  898. data/sig/lithic/models/tokenization_list_params.rbs +81 -0
  899. data/sig/lithic/models/tokenization_pause_params.rbs +14 -0
  900. data/sig/lithic/models/tokenization_resend_activation_code_params.rbs +39 -0
  901. data/sig/lithic/models/tokenization_retrieve_params.rbs +14 -0
  902. data/sig/lithic/models/tokenization_retrieve_response.rbs +15 -0
  903. data/sig/lithic/models/tokenization_secret.rbs +15 -0
  904. data/sig/lithic/models/tokenization_simulate_params.rbs +87 -0
  905. data/sig/lithic/models/tokenization_simulate_response.rbs +18 -0
  906. data/sig/lithic/models/tokenization_unpause_params.rbs +14 -0
  907. data/sig/lithic/models/tokenization_update_digital_card_art_params.rbs +22 -0
  908. data/sig/lithic/models/tokenization_update_digital_card_art_response.rbs +16 -0
  909. data/sig/lithic/models/transaction.rbs +1333 -0
  910. data/sig/lithic/models/transaction_expire_authorization_params.rbs +15 -0
  911. data/sig/lithic/models/transaction_list_params.rbs +102 -0
  912. data/sig/lithic/models/transaction_retrieve_params.rbs +14 -0
  913. data/sig/lithic/models/transaction_simulate_authorization_advice_params.rbs +23 -0
  914. data/sig/lithic/models/transaction_simulate_authorization_advice_response.rbs +20 -0
  915. data/sig/lithic/models/transaction_simulate_authorization_params.rbs +94 -0
  916. data/sig/lithic/models/transaction_simulate_authorization_response.rbs +20 -0
  917. data/sig/lithic/models/transaction_simulate_clearing_params.rbs +25 -0
  918. data/sig/lithic/models/transaction_simulate_clearing_response.rbs +16 -0
  919. data/sig/lithic/models/transaction_simulate_credit_authorization_params.rbs +43 -0
  920. data/sig/lithic/models/transaction_simulate_credit_authorization_response.rbs +20 -0
  921. data/sig/lithic/models/transaction_simulate_return_params.rbs +27 -0
  922. data/sig/lithic/models/transaction_simulate_return_response.rbs +20 -0
  923. data/sig/lithic/models/transaction_simulate_return_reversal_params.rbs +20 -0
  924. data/sig/lithic/models/transaction_simulate_return_reversal_response.rbs +16 -0
  925. data/sig/lithic/models/transaction_simulate_void_params.rbs +48 -0
  926. data/sig/lithic/models/transaction_simulate_void_response.rbs +15 -0
  927. data/sig/lithic/models/transactions/enhanced_commercial_data_retrieve_params.rbs +17 -0
  928. data/sig/lithic/models/transactions/enhanced_commercial_data_retrieve_response.rbs +18 -0
  929. data/sig/lithic/models/transactions/events/enhanced_commercial_data_retrieve_params.rbs +19 -0
  930. data/sig/lithic/models/transactions/events/enhanced_data.rbs +547 -0
  931. data/sig/lithic/models/transfer.rbs +332 -0
  932. data/sig/lithic/models/transfer_create_params.rbs +37 -0
  933. data/sig/lithic/models/verification_method.rbs +18 -0
  934. data/sig/lithic/pooled_net_requester.rbs +37 -0
  935. data/sig/lithic/request_options.rbs +44 -0
  936. data/sig/lithic/resources/account_holders.rbs +103 -0
  937. data/sig/lithic/resources/accounts.rbs +36 -0
  938. data/sig/lithic/resources/aggregate_balances.rbs +12 -0
  939. data/sig/lithic/resources/auth_rules/v2/backtests.rbs +24 -0
  940. data/sig/lithic/resources/auth_rules/v2.rbs +77 -0
  941. data/sig/lithic/resources/auth_rules.rbs +9 -0
  942. data/sig/lithic/resources/auth_stream_enrollment.rbs +13 -0
  943. data/sig/lithic/resources/balances.rbs +15 -0
  944. data/sig/lithic/resources/book_transfers.rbs +45 -0
  945. data/sig/lithic/resources/card_programs.rbs +19 -0
  946. data/sig/lithic/resources/cards/aggregate_balances.rbs +15 -0
  947. data/sig/lithic/resources/cards/balances.rbs +16 -0
  948. data/sig/lithic/resources/cards/financial_transactions.rbs +27 -0
  949. data/sig/lithic/resources/cards.rbs +118 -0
  950. data/sig/lithic/resources/credit_products/extended_credit.rbs +14 -0
  951. data/sig/lithic/resources/credit_products/prime_rates.rbs +23 -0
  952. data/sig/lithic/resources/credit_products.rbs +11 -0
  953. data/sig/lithic/resources/digital_card_art.rbs +19 -0
  954. data/sig/lithic/resources/disputes.rbs +74 -0
  955. data/sig/lithic/resources/events/subscriptions.rbs +84 -0
  956. data/sig/lithic/resources/events.rbs +36 -0
  957. data/sig/lithic/resources/external_bank_accounts/micro_deposits.rbs +15 -0
  958. data/sig/lithic/resources/external_bank_accounts.rbs +75 -0
  959. data/sig/lithic/resources/external_payments.rbs +68 -0
  960. data/sig/lithic/resources/financial_accounts/balances.rbs +16 -0
  961. data/sig/lithic/resources/financial_accounts/credit_configuration.rbs +23 -0
  962. data/sig/lithic/resources/financial_accounts/financial_transactions.rbs +27 -0
  963. data/sig/lithic/resources/financial_accounts/loan_tapes.rbs +25 -0
  964. data/sig/lithic/resources/financial_accounts/statements/line_items.rbs +20 -0
  965. data/sig/lithic/resources/financial_accounts/statements.rbs +28 -0
  966. data/sig/lithic/resources/financial_accounts.rbs +51 -0
  967. data/sig/lithic/resources/management_operations.rbs +46 -0
  968. data/sig/lithic/resources/payments.rbs +73 -0
  969. data/sig/lithic/resources/reports/settlement/network_totals.rbs +31 -0
  970. data/sig/lithic/resources/reports/settlement.rbs +24 -0
  971. data/sig/lithic/resources/reports.rbs +9 -0
  972. data/sig/lithic/resources/responder_endpoints.rbs +23 -0
  973. data/sig/lithic/resources/three_ds/authentication.rbs +28 -0
  974. data/sig/lithic/resources/three_ds/decisioning.rbs +21 -0
  975. data/sig/lithic/resources/three_ds.rbs +11 -0
  976. data/sig/lithic/resources/tokenization_decisioning.rbs +15 -0
  977. data/sig/lithic/resources/tokenizations.rbs +68 -0
  978. data/sig/lithic/resources/transactions/enhanced_commercial_data.rbs +14 -0
  979. data/sig/lithic/resources/transactions/events/enhanced_commercial_data.rbs +16 -0
  980. data/sig/lithic/resources/transactions/events.rbs +11 -0
  981. data/sig/lithic/resources/transactions.rbs +88 -0
  982. data/sig/lithic/resources/transfers.rbs +16 -0
  983. data/sig/lithic/single_page.rbs +11 -0
  984. data/sig/lithic/util.rbs +132 -0
  985. data/sig/lithic/version.rbs +3 -0
  986. metadata +1043 -0
@@ -0,0 +1,1212 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ # @api private
5
+ module Converter
6
+ # rubocop:disable Lint/UnusedMethodArgument
7
+
8
+ # @api private
9
+ #
10
+ # @param value [Object]
11
+ #
12
+ # @return [Object]
13
+ def coerce(value) = value
14
+
15
+ # @api private
16
+ #
17
+ # @param value [Object]
18
+ #
19
+ # @return [Object]
20
+ def dump(value) = value
21
+
22
+ # @api private
23
+ #
24
+ # @param value [Object]
25
+ #
26
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
27
+ def try_strict_coerce(value) = (raise NotImplementedError)
28
+
29
+ # rubocop:enable Lint/UnusedMethodArgument
30
+
31
+ class << self
32
+ # @api private
33
+ #
34
+ # @param spec [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class] .
35
+ #
36
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
37
+ #
38
+ # @option spec [Proc] :enum
39
+ #
40
+ # @option spec [Proc] :union
41
+ #
42
+ # @option spec [Boolean] :"nil?"
43
+ #
44
+ # @return [Proc]
45
+ def type_info(spec)
46
+ case spec
47
+ in Hash
48
+ type_info(spec.slice(:const, :enum, :union).first&.last)
49
+ in Proc
50
+ spec
51
+ in Lithic::Converter | Module | Symbol
52
+ -> { spec }
53
+ in true | false
54
+ -> { Lithic::BooleanModel }
55
+ in NilClass | Integer | Float
56
+ -> { spec.class }
57
+ end
58
+ end
59
+
60
+ # @api private
61
+ #
62
+ # Based on `target`, transform `value` into `target`, to the extent possible:
63
+ #
64
+ # 1. if the given `value` conforms to `target` already, return the given `value`
65
+ # 2. if it's possible and safe to convert the given `value` to `target`, then the
66
+ # converted value
67
+ # 3. otherwise, the given `value` unaltered
68
+ #
69
+ # @param target [Lithic::Converter, Class]
70
+ # @param value [Object]
71
+ #
72
+ # @return [Object]
73
+ def coerce(target, value)
74
+ case target
75
+ in Lithic::Converter
76
+ target.coerce(value)
77
+ in Symbol
78
+ case value
79
+ in Symbol | String if (val = value.to_sym) == target
80
+ val
81
+ else
82
+ value
83
+ end
84
+ in Module
85
+ case target
86
+ in -> { _1 <= NilClass }
87
+ nil
88
+ in -> { _1 <= Integer }
89
+ value.is_a?(Numeric) ? Integer(value) : value
90
+ in -> { _1 <= Float }
91
+ value.is_a?(Numeric) ? Float(value) : value
92
+ in -> { _1 <= Symbol }
93
+ value.is_a?(String) ? value.to_sym : value
94
+ in -> { _1 <= String }
95
+ value.is_a?(Symbol) ? value.to_s : value
96
+ in -> { _1 <= Date || _1 <= Time }
97
+ value.is_a?(String) ? target.parse(value) : value
98
+ in -> { _1 <= IO }
99
+ value.is_a?(String) ? StringIO.new(value) : value
100
+ else
101
+ value
102
+ end
103
+ end
104
+ end
105
+
106
+ # @api private
107
+ #
108
+ # @param target [Lithic::Converter, Class]
109
+ # @param value [Object]
110
+ #
111
+ # @return [Object]
112
+ def dump(target, value)
113
+ case target
114
+ in Lithic::Converter
115
+ target.dump(value)
116
+ else
117
+ value
118
+ end
119
+ end
120
+
121
+ # @api private
122
+ #
123
+ # The underlying algorithm for computing maximal compatibility is subject to
124
+ # future improvements.
125
+ #
126
+ # Similar to `#.coerce`, used to determine the best union variant to decode into.
127
+ #
128
+ # 1. determine if strict-ish coercion is possible
129
+ # 2. return either result of successful coercion or if loose coercion is possible
130
+ # 3. return a score for recursively tallied count for fields that can be coerced
131
+ #
132
+ # @param target [Lithic::Converter, Class]
133
+ # @param value [Object]
134
+ #
135
+ # @return [Object]
136
+ def try_strict_coerce(target, value)
137
+ case target
138
+ in Lithic::Converter
139
+ target.try_strict_coerce(value)
140
+ in Symbol
141
+ case value
142
+ in Symbol | String if (val = value.to_sym) == target
143
+ [true, val, 1]
144
+ else
145
+ [false, false, 0]
146
+ end
147
+ in Module
148
+ case [target, value]
149
+ in [-> { _1 <= NilClass }, _]
150
+ [true, nil, value.nil? ? 1 : 0]
151
+ in [-> { _1 <= Integer }, Numeric]
152
+ [true, Integer(value), 1]
153
+ in [-> { _1 <= Float }, Numeric]
154
+ [true, Float(value), 1]
155
+ in [-> { _1 <= Symbol }, String]
156
+ [true, value.to_sym, 1]
157
+ in [-> { _1 <= String }, Symbol]
158
+ [true, value.to_s, 1]
159
+ in [-> { _1 <= Date || _1 <= Time }, String]
160
+ Kernel.then do
161
+ [true, target.parse(value), 1]
162
+ rescue ArgumentError
163
+ [false, false, 0]
164
+ end
165
+ in [_, ^target]
166
+ [true, value, 1]
167
+ else
168
+ [false, false, 0]
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
174
+
175
+ # @api private
176
+ #
177
+ # @abstract
178
+ #
179
+ # When we don't know what to expect for the value.
180
+ class Unknown
181
+ extend Lithic::Converter
182
+
183
+ # rubocop:disable Lint/UnusedMethodArgument
184
+
185
+ # @param other [Object]
186
+ #
187
+ # @return [Boolean]
188
+ def self.===(other) = true
189
+
190
+ # @param other [Object]
191
+ #
192
+ # @return [Boolean]
193
+ def self.==(other) = other.is_a?(Class) && other <= Lithic::Unknown
194
+
195
+ class << self
196
+ # @!parse
197
+ # # @api private
198
+ # #
199
+ # # @param value [Object]
200
+ # #
201
+ # # @return [Object]
202
+ # def coerce(value) = super
203
+
204
+ # @!parse
205
+ # # @api private
206
+ # #
207
+ # # @param value [Object]
208
+ # #
209
+ # # @return [Object]
210
+ # def dump(value) = super
211
+
212
+ # @api private
213
+ #
214
+ # @param value [Object]
215
+ #
216
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
217
+ def try_strict_coerce(value)
218
+ # prevent unknown variant from being chosen during the first coercion pass
219
+ [false, true, 0]
220
+ end
221
+ end
222
+
223
+ # rubocop:enable Lint/UnusedMethodArgument
224
+ end
225
+
226
+ # @api private
227
+ #
228
+ # @abstract
229
+ #
230
+ # Ruby has no Boolean class; this is something for models to refer to.
231
+ class BooleanModel
232
+ extend Lithic::Converter
233
+
234
+ # @param other [Object]
235
+ #
236
+ # @return [Boolean]
237
+ def self.===(other) = other == true || other == false
238
+
239
+ # @param other [Object]
240
+ #
241
+ # @return [Boolean]
242
+ def self.==(other) = other.is_a?(Class) && other <= Lithic::BooleanModel
243
+
244
+ class << self
245
+ # @!parse
246
+ # # @api private
247
+ # #
248
+ # # @param value [Boolean, Object]
249
+ # #
250
+ # # @return [Boolean, Object]
251
+ # def coerce(value) = super
252
+
253
+ # @!parse
254
+ # # @api private
255
+ # #
256
+ # # @param value [Boolean, Object]
257
+ # #
258
+ # # @return [Boolean, Object]
259
+ # def dump(value) = super
260
+
261
+ # @api private
262
+ #
263
+ # @param value [Object]
264
+ #
265
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
266
+ def try_strict_coerce(value)
267
+ case value
268
+ in true | false
269
+ [true, value, 1]
270
+ else
271
+ [false, false, 0]
272
+ end
273
+ end
274
+ end
275
+ end
276
+
277
+ # @api private
278
+ #
279
+ # A value from among a specified list of options. OpenAPI enum values map to Ruby
280
+ # values in the SDK as follows:
281
+ #
282
+ # 1. boolean => true | false
283
+ # 2. integer => Integer
284
+ # 3. float => Float
285
+ # 4. string => Symbol
286
+ #
287
+ # We can therefore convert string values to Symbols, but can't convert other
288
+ # values safely.
289
+ #
290
+ # @example
291
+ # # `account_financial_account_type` is a `Lithic::Models::AccountFinancialAccountType`
292
+ # case account_financial_account_type
293
+ # when Lithic::Models::AccountFinancialAccountType::ISSUING
294
+ # # ...
295
+ # when Lithic::Models::AccountFinancialAccountType::OPERATING
296
+ # # ...
297
+ # else
298
+ # puts(account_financial_account_type)
299
+ # end
300
+ #
301
+ # @example
302
+ # case account_financial_account_type
303
+ # in :ISSUING
304
+ # # ...
305
+ # in :OPERATING
306
+ # # ...
307
+ # else
308
+ # puts(account_financial_account_type)
309
+ # end
310
+ module Enum
311
+ include Lithic::Converter
312
+
313
+ # All of the valid Symbol values for this enum.
314
+ #
315
+ # @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
316
+ def values = (@values ||= constants.map { const_get(_1) })
317
+
318
+ # @api private
319
+ #
320
+ # Guard against thread safety issues by instantiating `@values`.
321
+ private def finalize! = values
322
+
323
+ # @param other [Object]
324
+ #
325
+ # @return [Boolean]
326
+ def ===(other) = values.include?(other)
327
+
328
+ # @param other [Object]
329
+ #
330
+ # @return [Boolean]
331
+ def ==(other)
332
+ other.is_a?(Module) && other.singleton_class.ancestors.include?(Lithic::Enum) && other.values.to_set == values.to_set
333
+ end
334
+
335
+ # @api private
336
+ #
337
+ # @param value [String, Symbol, Object]
338
+ #
339
+ # @return [Symbol, Object]
340
+ def coerce(value)
341
+ case value
342
+ in Symbol | String if values.include?(val = value.to_sym)
343
+ val
344
+ else
345
+ value
346
+ end
347
+ end
348
+
349
+ # @!parse
350
+ # # @api private
351
+ # #
352
+ # # @param value [Symbol, Object]
353
+ # #
354
+ # # @return [Symbol, Object]
355
+ # def dump(value) = super
356
+
357
+ # @api private
358
+ #
359
+ # @param value [Object]
360
+ #
361
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
362
+ def try_strict_coerce(value)
363
+ return [true, value, 1] if values.include?(value)
364
+
365
+ case value
366
+ in Symbol | String if values.include?(val = value.to_sym)
367
+ [true, val, 1]
368
+ else
369
+ case [value, values.first]
370
+ in [true | false, true | false] | [Integer, Integer] | [Symbol | String, Symbol]
371
+ [false, true, 0]
372
+ else
373
+ [false, false, 0]
374
+ end
375
+ end
376
+ end
377
+ end
378
+
379
+ # @api private
380
+ #
381
+ # @example
382
+ # # `account_holder_update_response` is a `Lithic::Models::AccountHolderUpdateResponse`
383
+ # case account_holder_update_response
384
+ # when Lithic::Models::AccountHolderUpdateResponse::KYBKYCPatchResponse
385
+ # puts(account_holder_update_response.token)
386
+ # when Lithic::Models::AccountHolderUpdateResponse::PatchResponse
387
+ # puts(account_holder_update_response.address)
388
+ # else
389
+ # puts(account_holder_update_response)
390
+ # end
391
+ module Union
392
+ include Lithic::Converter
393
+
394
+ # @api private
395
+ #
396
+ # All of the specified variant info for this union.
397
+ #
398
+ # @return [Array<Array(Symbol, Proc)>]
399
+ private def known_variants = (@known_variants ||= [])
400
+
401
+ # @api private
402
+ #
403
+ # @return [Array<Array(Symbol, Object)>]
404
+ protected def derefed_variants
405
+ @known_variants.map { |key, variant_fn| [key, variant_fn.call] }
406
+ end
407
+
408
+ # All of the specified variants for this union.
409
+ #
410
+ # @return [Array<Object>]
411
+ def variants
412
+ derefed_variants.map(&:last)
413
+ end
414
+
415
+ # @api private
416
+ #
417
+ # @param property [Symbol]
418
+ private def discriminator(property)
419
+ case property
420
+ in Symbol
421
+ @discriminator = property
422
+ end
423
+ end
424
+
425
+ # @api private
426
+ #
427
+ # @param key [Symbol, Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
428
+ #
429
+ # @param spec [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class] .
430
+ #
431
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
432
+ #
433
+ # @option spec [Proc] :enum
434
+ #
435
+ # @option spec [Proc] :union
436
+ #
437
+ # @option spec [Boolean] :"nil?"
438
+ private def variant(key, spec = nil)
439
+ variant_info =
440
+ case key
441
+ in Symbol
442
+ [key, Lithic::Converter.type_info(spec)]
443
+ in Proc | Lithic::Converter | Module | Hash
444
+ [nil, Lithic::Converter.type_info(key)]
445
+ end
446
+
447
+ known_variants << variant_info
448
+ end
449
+
450
+ # @api private
451
+ #
452
+ # @param value [Object]
453
+ #
454
+ # @return [Lithic::Converter, Class, nil]
455
+ private def resolve_variant(value)
456
+ case [@discriminator, value]
457
+ in [_, Lithic::BaseModel]
458
+ value.class
459
+ in [Symbol, Hash]
460
+ key =
461
+ if value.key?(@discriminator)
462
+ value.fetch(@discriminator)
463
+ elsif value.key?((discriminator = @discriminator.to_s))
464
+ value.fetch(discriminator)
465
+ end
466
+
467
+ key = key.to_sym if key.is_a?(String)
468
+ _, resolved = known_variants.find { |k,| k == key }
469
+ resolved.nil? ? Lithic::Unknown : resolved.call
470
+ else
471
+ nil
472
+ end
473
+ end
474
+
475
+ # rubocop:disable Style/HashEachMethods
476
+ # rubocop:disable Style/CaseEquality
477
+
478
+ # @param other [Object]
479
+ #
480
+ # @return [Boolean]
481
+ def ===(other)
482
+ known_variants.any? do |_, variant_fn|
483
+ variant_fn.call === other
484
+ end
485
+ end
486
+
487
+ # @param other [Object]
488
+ #
489
+ # @return [Boolean]
490
+ def ==(other)
491
+ other.is_a?(Module) && other.singleton_class.ancestors.include?(Lithic::Union) && other.derefed_variants == derefed_variants
492
+ end
493
+
494
+ # @api private
495
+ #
496
+ # @param value [Object]
497
+ #
498
+ # @return [Object]
499
+ def coerce(value)
500
+ if (variant = resolve_variant(value))
501
+ return Lithic::Converter.coerce(variant, value)
502
+ end
503
+
504
+ matches = []
505
+
506
+ known_variants.each do |_, variant_fn|
507
+ variant = variant_fn.call
508
+
509
+ case Lithic::Converter.try_strict_coerce(variant, value)
510
+ in [true, coerced, _]
511
+ return coerced
512
+ in [false, true, score]
513
+ matches << [score, variant]
514
+ in [false, false, _]
515
+ nil
516
+ end
517
+ end
518
+
519
+ _, variant = matches.sort! { _2.first <=> _1.first }.find { |score,| !score.zero? }
520
+ variant.nil? ? value : Lithic::Converter.coerce(variant, value)
521
+ end
522
+
523
+ # @api private
524
+ #
525
+ # @param value [Object]
526
+ #
527
+ # @return [Object]
528
+ def dump(value)
529
+ if (variant = resolve_variant(value))
530
+ return Lithic::Converter.dump(variant, value)
531
+ end
532
+
533
+ known_variants.each do |_, variant_fn|
534
+ variant = variant_fn.call
535
+ if variant === value
536
+ return Lithic::Converter.dump(variant, value)
537
+ end
538
+ end
539
+ value
540
+ end
541
+
542
+ # @api private
543
+ #
544
+ # @param value [Object]
545
+ #
546
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
547
+ def try_strict_coerce(value)
548
+ # TODO(ruby) this will result in super linear decoding behaviour for nested unions
549
+ # follow up with a decoding context that captures current strictness levels
550
+ if (variant = resolve_variant(value))
551
+ return Converter.try_strict_coerce(variant, value)
552
+ end
553
+
554
+ coercible = false
555
+ max_score = 0
556
+
557
+ known_variants.each do |_, variant_fn|
558
+ variant = variant_fn.call
559
+
560
+ case Lithic::Converter.try_strict_coerce(variant, value)
561
+ in [true, coerced, score]
562
+ return [true, coerced, score]
563
+ in [false, true, score]
564
+ coercible = true
565
+ max_score = [max_score, score].max
566
+ in [false, false, _]
567
+ nil
568
+ end
569
+ end
570
+
571
+ [false, coercible, max_score]
572
+ end
573
+
574
+ # rubocop:enable Style/CaseEquality
575
+ # rubocop:enable Style/HashEachMethods
576
+ end
577
+
578
+ # @api private
579
+ #
580
+ # @abstract
581
+ #
582
+ # Array of items of a given type.
583
+ class ArrayOf
584
+ include Lithic::Converter
585
+
586
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
587
+ #
588
+ # @param spec [Hash{Symbol=>Object}] .
589
+ #
590
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
591
+ #
592
+ # @option spec [Proc] :enum
593
+ #
594
+ # @option spec [Proc] :union
595
+ #
596
+ # @option spec [Boolean] :"nil?"
597
+ def self.[](type_info, spec = {}) = new(type_info, spec)
598
+
599
+ # @param other [Object]
600
+ #
601
+ # @return [Boolean]
602
+ def ===(other)
603
+ type = item_type
604
+ case other
605
+ in Array
606
+ # rubocop:disable Style/CaseEquality
607
+ other.all? { type === _1 }
608
+ # rubocop:enable Style/CaseEquality
609
+ else
610
+ false
611
+ end
612
+ end
613
+
614
+ # @param other [Object]
615
+ #
616
+ # @return [Boolean]
617
+ def ==(other) = other.is_a?(Lithic::ArrayOf) && other.item_type == item_type
618
+
619
+ # @api private
620
+ #
621
+ # @param value [Enumerable, Object]
622
+ #
623
+ # @return [Array<Object>, Object]
624
+ def coerce(value)
625
+ type = item_type
626
+ case value
627
+ in Enumerable unless value.is_a?(Hash)
628
+ value.map { Lithic::Converter.coerce(type, _1) }
629
+ else
630
+ value
631
+ end
632
+ end
633
+
634
+ # @api private
635
+ #
636
+ # @param value [Enumerable, Object]
637
+ #
638
+ # @return [Array<Object>, Object]
639
+ def dump(value)
640
+ type = item_type
641
+ case value
642
+ in Enumerable unless value.is_a?(Hash)
643
+ value.map { Lithic::Converter.dump(type, _1) }.to_a
644
+ else
645
+ value
646
+ end
647
+ end
648
+
649
+ # @api private
650
+ #
651
+ # @param value [Object]
652
+ #
653
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
654
+ def try_strict_coerce(value)
655
+ case value
656
+ in Array
657
+ type = item_type
658
+ great_success = true
659
+ tally = 0
660
+
661
+ mapped =
662
+ value.map do |item|
663
+ case Lithic::Converter.try_strict_coerce(type, item)
664
+ in [true, coerced, score]
665
+ tally += score
666
+ coerced
667
+ in [false, true, score]
668
+ great_success = false
669
+ tally += score
670
+ item
671
+ in [false, false, _]
672
+ great_success &&= item.nil?
673
+ item
674
+ end
675
+ end
676
+
677
+ if great_success
678
+ [true, mapped, tally]
679
+ else
680
+ [false, true, tally]
681
+ end
682
+ else
683
+ [false, false, 0]
684
+ end
685
+ end
686
+
687
+ # @api private
688
+ #
689
+ # @return [Lithic::Converter, Class]
690
+ protected def item_type = @item_type_fn.call
691
+
692
+ # @api private
693
+ #
694
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
695
+ #
696
+ # @param spec [Hash{Symbol=>Object}] .
697
+ #
698
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
699
+ #
700
+ # @option spec [Proc] :enum
701
+ #
702
+ # @option spec [Proc] :union
703
+ #
704
+ # @option spec [Boolean] :"nil?"
705
+ def initialize(type_info, spec = {})
706
+ @item_type_fn = Lithic::Converter.type_info(type_info || spec)
707
+ end
708
+ end
709
+
710
+ # @api private
711
+ #
712
+ # @abstract
713
+ #
714
+ # Hash of items of a given type.
715
+ class HashOf
716
+ include Lithic::Converter
717
+
718
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
719
+ #
720
+ # @param spec [Hash{Symbol=>Object}] .
721
+ #
722
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
723
+ #
724
+ # @option spec [Proc] :enum
725
+ #
726
+ # @option spec [Proc] :union
727
+ #
728
+ # @option spec [Boolean] :"nil?"
729
+ def self.[](type_info, spec = {}) = new(type_info, spec)
730
+
731
+ # @param other [Object]
732
+ #
733
+ # @return [Boolean]
734
+ def ===(other)
735
+ type = item_type
736
+ case other
737
+ in Hash
738
+ other.all? do |key, val|
739
+ case [key, val]
740
+ in [Symbol | String, ^type]
741
+ true
742
+ else
743
+ false
744
+ end
745
+ end
746
+ else
747
+ false
748
+ end
749
+ end
750
+
751
+ # @param other [Object]
752
+ #
753
+ # @return [Boolean]
754
+ def ==(other) = other.is_a?(Lithic::HashOf) && other.item_type == item_type
755
+
756
+ # @api private
757
+ #
758
+ # @param value [Hash{Object=>Object}, Object]
759
+ #
760
+ # @return [Hash{Symbol=>Object}, Object]
761
+ def coerce(value)
762
+ type = item_type
763
+ case value
764
+ in Hash
765
+ value.to_h do |key, val|
766
+ coerced = Lithic::Converter.coerce(type, val)
767
+ [key.is_a?(String) ? key.to_sym : key, coerced]
768
+ end
769
+ else
770
+ value
771
+ end
772
+ end
773
+
774
+ # @api private
775
+ #
776
+ # @param value [Hash{Object=>Object}, Object]
777
+ #
778
+ # @return [Hash{Symbol=>Object}, Object]
779
+ def dump(value)
780
+ type = item_type
781
+ case value
782
+ in Hash
783
+ value.transform_values do |val|
784
+ Lithic::Converter.dump(type, val)
785
+ end
786
+ else
787
+ value
788
+ end
789
+ end
790
+
791
+ # @api private
792
+ #
793
+ # @param value [Object]
794
+ #
795
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
796
+ def try_strict_coerce(value)
797
+ case value
798
+ in Hash
799
+ type = item_type
800
+ great_success = true
801
+ tally = 0
802
+
803
+ mapped =
804
+ value.transform_values do |val|
805
+ case Lithic::Converter.try_strict_coerce(type, val)
806
+ in [true, coerced, score]
807
+ tally += score
808
+ coerced
809
+ in [false, true, score]
810
+ great_success = false
811
+ tally += score
812
+ val
813
+ in [false, false, _]
814
+ great_success &&= val.nil?
815
+ val
816
+ end
817
+ end
818
+
819
+ if great_success
820
+ [true, mapped, tally]
821
+ else
822
+ [false, true, tally]
823
+ end
824
+ else
825
+ [false, false, 0]
826
+ end
827
+ end
828
+
829
+ # @api private
830
+ #
831
+ # @return [Lithic::Converter, Class]
832
+ protected def item_type = @item_type_fn.call
833
+
834
+ # @api private
835
+ #
836
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
837
+ #
838
+ # @param spec [Hash{Symbol=>Object}] .
839
+ #
840
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
841
+ #
842
+ # @option spec [Proc] :enum
843
+ #
844
+ # @option spec [Proc] :union
845
+ #
846
+ # @option spec [Boolean] :"nil?"
847
+ def initialize(type_info, spec = {})
848
+ @item_type_fn = Lithic::Converter.type_info(type_info || spec)
849
+ end
850
+ end
851
+
852
+ # @abstract
853
+ #
854
+ # @example
855
+ # # `address` is a `Lithic::Models::Address`
856
+ # address => {
857
+ # address1: address1,
858
+ # city: city,
859
+ # country: country
860
+ # }
861
+ class BaseModel
862
+ extend Lithic::Converter
863
+
864
+ class << self
865
+ # @api private
866
+ #
867
+ # Assumes superclass fields are totally defined before fields are accessed /
868
+ # defined on subclasses.
869
+ #
870
+ # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
871
+ def known_fields
872
+ @known_fields ||= (self < Lithic::BaseModel ? superclass.known_fields.dup : {})
873
+ end
874
+
875
+ # @api private
876
+ #
877
+ # @return [Hash{Symbol=>Symbol}]
878
+ def reverse_map
879
+ @reverse_map ||= (self < Lithic::BaseModel ? superclass.reverse_map.dup : {})
880
+ end
881
+
882
+ # @api private
883
+ #
884
+ # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
885
+ def fields
886
+ known_fields.transform_values do |field|
887
+ {**field.except(:type_fn), type: field.fetch(:type_fn).call}
888
+ end
889
+ end
890
+
891
+ # @api private
892
+ #
893
+ # @return [Hash{Symbol=>Proc}]
894
+ def defaults = (@defaults ||= {})
895
+
896
+ # @api private
897
+ #
898
+ # @param name_sym [Symbol]
899
+ #
900
+ # @param required [Boolean]
901
+ #
902
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
903
+ #
904
+ # @param spec [Hash{Symbol=>Object}] .
905
+ #
906
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
907
+ #
908
+ # @option spec [Proc] :enum
909
+ #
910
+ # @option spec [Proc] :union
911
+ #
912
+ # @option spec [Boolean] :"nil?"
913
+ private def add_field(name_sym, required:, type_info:, spec:)
914
+ type_fn, info =
915
+ case type_info
916
+ in Proc | Module | Lithic::Converter
917
+ [Lithic::Converter.type_info({**spec, union: type_info}), spec]
918
+ in Hash
919
+ [Lithic::Converter.type_info(type_info), type_info]
920
+ end
921
+
922
+ fallback = info[:const]
923
+ defaults[name_sym] = fallback if required && !info[:nil?] && info.key?(:const)
924
+
925
+ key = info[:api_name]&.tap { reverse_map[_1] = name_sym } || name_sym
926
+ setter = "#{name_sym}="
927
+
928
+ if known_fields.key?(name_sym)
929
+ [name_sym, setter].each { undef_method(_1) }
930
+ end
931
+
932
+ known_fields[name_sym] = {mode: @mode, key: key, required: required, type_fn: type_fn}
933
+
934
+ define_method(setter) do |val|
935
+ @data[key] = val
936
+ end
937
+
938
+ define_method(name_sym) do
939
+ field_type = type_fn.call
940
+ value = @data.fetch(key) { self.class.defaults[key] }
941
+ Lithic::Converter.coerce(field_type, value)
942
+ rescue StandardError
943
+ name = self.class.name.split("::").last
944
+ raise Lithic::ConversionError.new(
945
+ "Failed to parse #{name}.#{name_sym} as #{field_type.inspect}. " \
946
+ "To get the unparsed API response, use #{name}[:#{key}]."
947
+ )
948
+ end
949
+ end
950
+
951
+ # @api private
952
+ #
953
+ # @param name_sym [Symbol]
954
+ #
955
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
956
+ #
957
+ # @param spec [Hash{Symbol=>Object}] .
958
+ #
959
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
960
+ #
961
+ # @option spec [Proc] :enum
962
+ #
963
+ # @option spec [Proc] :union
964
+ #
965
+ # @option spec [Boolean] :"nil?"
966
+ def required(name_sym, type_info, spec = {})
967
+ add_field(name_sym, required: true, type_info: type_info, spec: spec)
968
+ end
969
+
970
+ # @api private
971
+ #
972
+ # @param name_sym [Symbol]
973
+ #
974
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Converter, Class]
975
+ #
976
+ # @param spec [Hash{Symbol=>Object}] .
977
+ #
978
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
979
+ #
980
+ # @option spec [Proc] :enum
981
+ #
982
+ # @option spec [Proc] :union
983
+ #
984
+ # @option spec [Boolean] :"nil?"
985
+ def optional(name_sym, type_info, spec = {})
986
+ add_field(name_sym, required: false, type_info: type_info, spec: spec)
987
+ end
988
+
989
+ # @api private
990
+ #
991
+ # `request_only` attributes not excluded from `.#coerce` when receiving responses
992
+ # even if well behaved servers should not send them
993
+ #
994
+ # @param blk [Proc]
995
+ private def request_only(&blk)
996
+ @mode = :dump
997
+ blk.call
998
+ ensure
999
+ @mode = nil
1000
+ end
1001
+
1002
+ # @api private
1003
+ #
1004
+ # `response_only` attributes are omitted from `.#dump` when making requests
1005
+ #
1006
+ # @param blk [Proc]
1007
+ private def response_only(&blk)
1008
+ @mode = :coerce
1009
+ blk.call
1010
+ ensure
1011
+ @mode = nil
1012
+ end
1013
+ end
1014
+
1015
+ # @param other [Object]
1016
+ #
1017
+ # @return [Boolean]
1018
+ def ==(other)
1019
+ case other
1020
+ in Lithic::BaseModel
1021
+ self.class.fields == other.class.fields && @data == other.to_h
1022
+ else
1023
+ false
1024
+ end
1025
+ end
1026
+
1027
+ class << self
1028
+ # @api private
1029
+ #
1030
+ # @param value [Lithic::BaseModel, Hash{Object=>Object}, Object]
1031
+ #
1032
+ # @return [Lithic::BaseModel, Object]
1033
+ def coerce(value)
1034
+ case Lithic::Util.coerce_hash(value)
1035
+ in Hash => coerced
1036
+ new(coerced)
1037
+ else
1038
+ value
1039
+ end
1040
+ end
1041
+
1042
+ # @api private
1043
+ #
1044
+ # @param value [Lithic::BaseModel, Object]
1045
+ #
1046
+ # @return [Hash{Object=>Object}, Object]
1047
+ def dump(value)
1048
+ unless (coerced = Lithic::Util.coerce_hash(value)).is_a?(Hash)
1049
+ return value
1050
+ end
1051
+
1052
+ values = coerced.filter_map do |key, val|
1053
+ name = key.to_sym
1054
+ case (field = known_fields[name])
1055
+ in nil
1056
+ [name, val]
1057
+ else
1058
+ mode, type_fn, api_name = field.fetch_values(:mode, :type_fn, :key)
1059
+ case mode
1060
+ in :coerce
1061
+ next
1062
+ else
1063
+ target = type_fn.call
1064
+ [api_name, Lithic::Converter.dump(target, val)]
1065
+ end
1066
+ end
1067
+ end.to_h
1068
+
1069
+ defaults.each do |key, val|
1070
+ next if values.key?(key)
1071
+
1072
+ values[key] = val
1073
+ end
1074
+
1075
+ values
1076
+ end
1077
+
1078
+ # @api private
1079
+ #
1080
+ # @param value [Object]
1081
+ #
1082
+ # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
1083
+ def try_strict_coerce(value)
1084
+ case value
1085
+ in Hash | Lithic::BaseModel
1086
+ value = value.to_h
1087
+ else
1088
+ return [false, false, 0]
1089
+ end
1090
+
1091
+ keys = value.keys.to_set
1092
+ great_success = true
1093
+ tally = 0
1094
+ acc = {}
1095
+
1096
+ known_fields.each_value do |field|
1097
+ mode, required, type_fn, api_name = field.fetch_values(:mode, :required, :type_fn, :key)
1098
+ keys.delete(api_name)
1099
+
1100
+ case [required && mode != :dump, value.key?(api_name)]
1101
+ in [_, true]
1102
+ target = type_fn.call
1103
+ item = value.fetch(api_name)
1104
+ case Lithic::Converter.try_strict_coerce(target, item)
1105
+ in [true, coerced, score]
1106
+ tally += score
1107
+ acc[api_name] = coerced
1108
+ in [false, true, score]
1109
+ great_success = false
1110
+ tally += score
1111
+ acc[api_name] = item
1112
+ in [false, false, _]
1113
+ great_success &&= item.nil?
1114
+ end
1115
+ in [true, false]
1116
+ great_success = false
1117
+ in [false, false]
1118
+ nil
1119
+ end
1120
+ end
1121
+
1122
+ keys.each do |key|
1123
+ acc[key] = value.fetch(key)
1124
+ end
1125
+
1126
+ great_success ? [true, new(acc), tally] : [false, true, tally]
1127
+ end
1128
+ end
1129
+
1130
+ # Returns the raw value associated with the given key, if found. Otherwise, nil is
1131
+ # returned.
1132
+ #
1133
+ # It is valid to lookup keys that are not in the API spec, for example to access
1134
+ # undocumented features. This method does not parse response data into
1135
+ # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
1136
+ #
1137
+ # @param key [Symbol]
1138
+ #
1139
+ # @return [Object, nil]
1140
+ def [](key)
1141
+ unless key.instance_of?(Symbol)
1142
+ raise ArgumentError.new("Expected symbol key for lookup, got #{key.inspect}")
1143
+ end
1144
+
1145
+ @data[key]
1146
+ end
1147
+
1148
+ # Returns a Hash of the data underlying this object. O(1)
1149
+ #
1150
+ # Keys are Symbols and values are the raw values from the response. The return
1151
+ # value indicates which values were ever set on the object. i.e. there will be a
1152
+ # key in this hash if they ever were, even if the set value was nil.
1153
+ #
1154
+ # This method is not recursive. The returned value is shared by the object, so it
1155
+ # should not be mutated.
1156
+ #
1157
+ # @return [Hash{Symbol=>Object}]
1158
+ def to_h = @data
1159
+
1160
+ alias_method :to_hash, :to_h
1161
+
1162
+ # @param keys [Array<Symbol>, nil]
1163
+ #
1164
+ # @return [Hash{Symbol=>Object}]
1165
+ def deconstruct_keys(keys)
1166
+ (keys || self.class.known_fields.keys).filter_map do |k|
1167
+ unless self.class.known_fields.key?(k)
1168
+ next
1169
+ end
1170
+
1171
+ [k, method(k).call]
1172
+ end
1173
+ .to_h
1174
+ end
1175
+
1176
+ # Create a new instance of a model.
1177
+ #
1178
+ # @param data [Hash{Symbol=>Object}, Lithic::BaseModel]
1179
+ def initialize(data = {})
1180
+ case Lithic::Util.coerce_hash(data)
1181
+ in Hash => coerced
1182
+ @data = coerced.to_h do |key, value|
1183
+ name = key.to_sym
1184
+ mapped = self.class.reverse_map.fetch(name, name)
1185
+ type = self.class.fields[mapped]&.fetch(:type)
1186
+ stored =
1187
+ case [type, value]
1188
+ in [Module, Hash] if type <= Lithic::BaseModel
1189
+ type.new(value)
1190
+ in [Lithic::ArrayOf, Array] | [Lithic::HashOf, Hash]
1191
+ type.coerce(value)
1192
+ else
1193
+ value
1194
+ end
1195
+ [name, stored]
1196
+ end
1197
+ else
1198
+ raise ArgumentError.new("Expected a #{Hash} or #{Lithic::BaseModel}, got #{data.inspect}")
1199
+ end
1200
+ end
1201
+
1202
+ # @return [String]
1203
+ def to_s = @data.to_s
1204
+
1205
+ # @return [String]
1206
+ def inspect
1207
+ "#<#{self.class.name}:0x#{object_id.to_s(16)} #{deconstruct_keys(nil).map do |k, v|
1208
+ "#{k}=#{v.inspect}"
1209
+ end.join(' ')}>"
1210
+ end
1211
+ end
1212
+ end