lithic 0.1.0.pre.alpha.16 → 0.1.0.pre.alpha.18

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 (452) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +7 -7
  4. data/lib/lithic/file_part.rb +55 -0
  5. data/lib/lithic/internal/cursor_page.rb +1 -1
  6. data/lib/lithic/internal/single_page.rb +1 -1
  7. data/lib/lithic/internal/transport/base_client.rb +7 -7
  8. data/lib/lithic/internal/transport/pooled_net_requester.rb +1 -1
  9. data/lib/lithic/internal/type/array_of.rb +2 -0
  10. data/lib/lithic/internal/type/base_model.rb +1 -1
  11. data/lib/lithic/internal/type/base_page.rb +1 -1
  12. data/lib/lithic/internal/type/converter.rb +1 -1
  13. data/lib/lithic/internal/type/{io_like.rb → file_input.rb} +8 -4
  14. data/lib/lithic/internal/type/hash_of.rb +2 -0
  15. data/lib/lithic/internal/util.rb +69 -61
  16. data/lib/lithic/models/account.rb +50 -19
  17. data/lib/lithic/models/account_holder.rb +139 -59
  18. data/lib/lithic/models/account_holder_create_params.rb +144 -52
  19. data/lib/lithic/models/account_holder_create_response.rb +18 -7
  20. data/lib/lithic/models/account_holder_list_params.rb +33 -11
  21. data/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rb +13 -4
  22. data/lib/lithic/models/account_holder_simulate_enrollment_review_params.rb +10 -3
  23. data/lib/lithic/models/account_holder_simulate_enrollment_review_response.rb +169 -60
  24. data/lib/lithic/models/account_holder_update_params.rb +147 -53
  25. data/lib/lithic/models/account_holder_update_response.rb +202 -74
  26. data/lib/lithic/models/account_holder_upload_document_params.rb +4 -2
  27. data/lib/lithic/models/account_list_params.rb +17 -5
  28. data/lib/lithic/models/account_spend_limits.rb +27 -9
  29. data/lib/lithic/models/account_update_params.rb +17 -5
  30. data/lib/lithic/models/address.rb +17 -6
  31. data/lib/lithic/models/address_update.rb +17 -6
  32. data/lib/lithic/models/aggregate_balance.rb +26 -10
  33. data/lib/lithic/models/aggregate_balance_list_params.rb +2 -1
  34. data/lib/lithic/models/auth_rules/auth_rule.rb +24 -9
  35. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +8 -3
  36. data/lib/lithic/models/auth_rules/v2/backtest_create_params.rb +4 -2
  37. data/lib/lithic/models/auth_rules/v2/backtest_create_response.rb +1 -1
  38. data/lib/lithic/models/auth_rules/v2/backtest_results.rb +46 -18
  39. data/lib/lithic/models/auth_rules/v2_apply_params.rb +8 -4
  40. data/lib/lithic/models/auth_rules/v2_apply_response.rb +31 -12
  41. data/lib/lithic/models/auth_rules/v2_create_params.rb +14 -7
  42. data/lib/lithic/models/auth_rules/v2_create_response.rb +31 -12
  43. data/lib/lithic/models/auth_rules/v2_draft_params.rb +2 -1
  44. data/lib/lithic/models/auth_rules/v2_draft_response.rb +31 -12
  45. data/lib/lithic/models/auth_rules/v2_list_params.rb +15 -5
  46. data/lib/lithic/models/auth_rules/v2_list_response.rb +31 -12
  47. data/lib/lithic/models/auth_rules/v2_promote_response.rb +31 -12
  48. data/lib/lithic/models/auth_rules/v2_retrieve_response.rb +32 -12
  49. data/lib/lithic/models/auth_rules/v2_update_params.rb +15 -6
  50. data/lib/lithic/models/auth_rules/v2_update_response.rb +31 -12
  51. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +27 -7
  52. data/lib/lithic/models/auth_stream_secret.rb +1 -1
  53. data/lib/lithic/models/balance.rb +26 -10
  54. data/lib/lithic/models/balance_list_params.rb +12 -4
  55. data/lib/lithic/models/book_transfer_create_params.rb +23 -8
  56. data/lib/lithic/models/book_transfer_list_params.rb +28 -9
  57. data/lib/lithic/models/book_transfer_response.rb +54 -20
  58. data/lib/lithic/models/book_transfer_reverse_params.rb +2 -1
  59. data/lib/lithic/models/card.rb +33 -0
  60. data/lib/lithic/models/card_convert_physical_params.rb +12 -4
  61. data/lib/lithic/models/card_create_params.rb +45 -15
  62. data/lib/lithic/models/card_embed_params.rb +4 -2
  63. data/lib/lithic/models/card_list_params.rb +21 -7
  64. data/lib/lithic/models/card_program.rb +17 -7
  65. data/lib/lithic/models/card_program_list_params.rb +11 -3
  66. data/lib/lithic/models/card_provision_params.rb +20 -6
  67. data/lib/lithic/models/card_reissue_params.rb +12 -4
  68. data/lib/lithic/models/card_renew_params.rb +18 -6
  69. data/lib/lithic/models/card_search_by_pan_params.rb +2 -1
  70. data/lib/lithic/models/card_spend_limits.rb +27 -9
  71. data/lib/lithic/models/card_update_params.rb +21 -7
  72. data/lib/lithic/models/cards/aggregate_balance_list_params.rb +4 -2
  73. data/lib/lithic/models/cards/aggregate_balance_list_response.rb +24 -9
  74. data/lib/lithic/models/cards/balance_list_params.rb +7 -2
  75. data/lib/lithic/models/cards/balance_list_response.rb +26 -10
  76. data/lib/lithic/models/cards/financial_transaction_list_params.rb +21 -7
  77. data/lib/lithic/models/carrier.rb +1 -1
  78. data/lib/lithic/models/credit_products/prime_rate_create_params.rb +4 -2
  79. data/lib/lithic/models/credit_products/prime_rate_retrieve_params.rb +4 -2
  80. data/lib/lithic/models/credit_products/prime_rate_retrieve_response.rb +6 -4
  81. data/lib/lithic/models/digital_card_art.rb +13 -7
  82. data/lib/lithic/models/digital_card_art_list_params.rb +11 -3
  83. data/lib/lithic/models/dispute.rb +40 -18
  84. data/lib/lithic/models/dispute_create_params.rb +10 -5
  85. data/lib/lithic/models/dispute_evidence.rb +17 -7
  86. data/lib/lithic/models/dispute_initiate_evidence_upload_params.rb +2 -1
  87. data/lib/lithic/models/dispute_list_evidences_params.rb +17 -5
  88. data/lib/lithic/models/dispute_list_params.rb +21 -7
  89. data/lib/lithic/models/dispute_update_params.rb +8 -4
  90. data/lib/lithic/models/document.rb +31 -14
  91. data/lib/lithic/models/event.rb +9 -3
  92. data/lib/lithic/models/event_list_attempts_params.rb +18 -5
  93. data/lib/lithic/models/event_list_params.rb +21 -7
  94. data/lib/lithic/models/event_subscription.rb +7 -3
  95. data/lib/lithic/models/events/subscription_create_params.rb +12 -4
  96. data/lib/lithic/models/events/subscription_list_attempts_params.rb +18 -5
  97. data/lib/lithic/models/events/subscription_list_params.rb +11 -3
  98. data/lib/lithic/models/events/subscription_recover_params.rb +9 -2
  99. data/lib/lithic/models/events/subscription_replay_missing_params.rb +9 -2
  100. data/lib/lithic/models/events/subscription_retrieve_secret_response.rb +1 -1
  101. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +2 -1
  102. data/lib/lithic/models/events/subscription_update_params.rb +12 -4
  103. data/lib/lithic/models/external_bank_account_create_params.rb +40 -16
  104. data/lib/lithic/models/external_bank_account_create_response.rb +53 -22
  105. data/lib/lithic/models/external_bank_account_list_params.rb +17 -3
  106. data/lib/lithic/models/external_bank_account_list_response.rb +53 -22
  107. data/lib/lithic/models/external_bank_account_retrieve_response.rb +53 -22
  108. data/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rb +54 -22
  109. data/lib/lithic/models/external_bank_account_retry_prenote_response.rb +53 -22
  110. data/lib/lithic/models/external_bank_account_update_params.rb +21 -8
  111. data/lib/lithic/models/external_bank_account_update_response.rb +53 -22
  112. data/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rb +54 -22
  113. data/lib/lithic/models/external_payment_list_params.rb +27 -9
  114. data/lib/lithic/models/financial_account.rb +25 -8
  115. data/lib/lithic/models/financial_account_list_params.rb +6 -3
  116. data/lib/lithic/models/financial_account_update_status_params.rb +4 -2
  117. data/lib/lithic/models/financial_accounts/balance_list_params.rb +7 -2
  118. data/lib/lithic/models/financial_accounts/balance_list_response.rb +26 -10
  119. data/lib/lithic/models/financial_accounts/credit_configuration_update_params.rb +6 -2
  120. data/lib/lithic/models/financial_accounts/financial_account_credit_config.rb +12 -5
  121. data/lib/lithic/models/financial_accounts/financial_transaction_list_params.rb +22 -7
  122. data/lib/lithic/models/financial_accounts/loan_tape.rb +119 -47
  123. data/lib/lithic/models/financial_accounts/loan_tape_list_params.rb +17 -5
  124. data/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rb +2 -1
  125. data/lib/lithic/models/financial_accounts/statement.rb +97 -40
  126. data/lib/lithic/models/financial_accounts/statement_list_params.rb +19 -6
  127. data/lib/lithic/models/financial_accounts/statement_retrieve_params.rb +2 -1
  128. data/lib/lithic/models/financial_accounts/statements/line_item_list_params.rb +14 -4
  129. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +25 -9
  130. data/lib/lithic/models/financial_transaction.rb +42 -15
  131. data/lib/lithic/models/kyb.rb +101 -36
  132. data/lib/lithic/models/kyb_business_entity.rb +35 -12
  133. data/lib/lithic/models/kyc.rb +34 -12
  134. data/lib/lithic/models/kyc_exempt.rb +23 -9
  135. data/lib/lithic/models/management_operation_list_params.rb +25 -8
  136. data/lib/lithic/models/message_attempt.rb +17 -7
  137. data/lib/lithic/models/{card_list_response.rb → non_pci_card.rb} +96 -51
  138. data/lib/lithic/models/payment.rb +52 -18
  139. data/lib/lithic/models/payment_create_params.rb +14 -1
  140. data/lib/lithic/models/payment_create_response.rb +1 -1
  141. data/lib/lithic/models/payment_list_params.rb +23 -5
  142. data/lib/lithic/models/payment_retry_response.rb +1 -1
  143. data/lib/lithic/models/payment_simulate_action_params.rb +6 -3
  144. data/lib/lithic/models/payment_simulate_action_response.rb +5 -3
  145. data/lib/lithic/models/payment_simulate_receipt_params.rb +14 -5
  146. data/lib/lithic/models/payment_simulate_receipt_response.rb +5 -3
  147. data/lib/lithic/models/payment_simulate_release_params.rb +2 -1
  148. data/lib/lithic/models/payment_simulate_release_response.rb +5 -3
  149. data/lib/lithic/models/payment_simulate_return_params.rb +4 -2
  150. data/lib/lithic/models/payment_simulate_return_response.rb +5 -3
  151. data/lib/lithic/models/reports/settlement/network_total_list_params.rb +30 -11
  152. data/lib/lithic/models/reports/settlement/network_total_list_response.rb +39 -14
  153. data/lib/lithic/models/reports/settlement/network_total_retrieve_response.rb +39 -14
  154. data/lib/lithic/models/reports/settlement_list_details_params.rb +11 -3
  155. data/lib/lithic/models/required_document.rb +10 -3
  156. data/lib/lithic/models/responder_endpoint_check_status_params.rb +2 -1
  157. data/lib/lithic/models/responder_endpoint_create_params.rb +4 -2
  158. data/lib/lithic/models/responder_endpoint_create_response.rb +1 -1
  159. data/lib/lithic/models/responder_endpoint_delete_params.rb +2 -1
  160. data/lib/lithic/models/responder_endpoint_status.rb +3 -2
  161. data/lib/lithic/models/settlement_detail.rb +50 -21
  162. data/lib/lithic/models/settlement_report.rb +29 -10
  163. data/lib/lithic/models/settlement_summary_details.rb +21 -8
  164. data/lib/lithic/models/shipping_address.rb +31 -11
  165. data/lib/lithic/models/three_ds/authentication_retrieve_response.rb +215 -71
  166. data/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rb +9 -2
  167. data/lib/lithic/models/three_ds/authentication_simulate_params.rb +28 -8
  168. data/lib/lithic/models/three_ds/authentication_simulate_response.rb +5 -1
  169. data/lib/lithic/models/three_ds/challenge_response.rb +7 -2
  170. data/lib/lithic/models/three_ds/decisioning_retrieve_secret_response.rb +1 -1
  171. data/lib/lithic/models/tokenization.rb +37 -17
  172. data/lib/lithic/models/tokenization_decisioning_rotate_secret_response.rb +1 -1
  173. data/lib/lithic/models/tokenization_list_params.rb +22 -8
  174. data/lib/lithic/models/tokenization_resend_activation_code_params.rb +6 -1
  175. data/lib/lithic/models/tokenization_secret.rb +1 -1
  176. data/lib/lithic/models/tokenization_simulate_params.rb +22 -8
  177. data/lib/lithic/models/tokenization_update_digital_card_art_params.rb +6 -1
  178. data/lib/lithic/models/transaction.rb +248 -89
  179. data/lib/lithic/models/transaction_list_params.rb +26 -9
  180. data/lib/lithic/models/transaction_simulate_authorization_advice_params.rb +8 -2
  181. data/lib/lithic/models/transaction_simulate_authorization_advice_response.rb +3 -2
  182. data/lib/lithic/models/transaction_simulate_authorization_params.rb +27 -10
  183. data/lib/lithic/models/transaction_simulate_authorization_response.rb +7 -2
  184. data/lib/lithic/models/transaction_simulate_clearing_params.rb +8 -2
  185. data/lib/lithic/models/transaction_simulate_clearing_response.rb +1 -1
  186. data/lib/lithic/models/transaction_simulate_credit_authorization_params.rb +15 -5
  187. data/lib/lithic/models/transaction_simulate_credit_authorization_response.rb +3 -2
  188. data/lib/lithic/models/transaction_simulate_return_params.rb +6 -3
  189. data/lib/lithic/models/transaction_simulate_return_response.rb +3 -2
  190. data/lib/lithic/models/transaction_simulate_return_reversal_params.rb +2 -1
  191. data/lib/lithic/models/transaction_simulate_return_reversal_response.rb +1 -1
  192. data/lib/lithic/models/transaction_simulate_void_params.rb +10 -3
  193. data/lib/lithic/models/transaction_simulate_void_response.rb +1 -1
  194. data/lib/lithic/models/transactions/events/enhanced_data.rb +52 -24
  195. data/lib/lithic/models/transfer.rb +46 -17
  196. data/lib/lithic/models/transfer_create_params.rb +17 -5
  197. data/lib/lithic/resources/account_holders.rb +166 -60
  198. data/lib/lithic/resources/accounts.rb +40 -13
  199. data/lib/lithic/resources/aggregate_balances.rb +2 -1
  200. data/lib/lithic/resources/auth_rules/v2/backtests.rb +10 -5
  201. data/lib/lithic/resources/auth_rules/v2.rb +68 -30
  202. data/lib/lithic/resources/balances.rb +12 -4
  203. data/lib/lithic/resources/book_transfers.rb +57 -20
  204. data/lib/lithic/resources/card_programs.rb +13 -4
  205. data/lib/lithic/resources/cards/aggregate_balances.rb +4 -2
  206. data/lib/lithic/resources/cards/balances.rb +8 -2
  207. data/lib/lithic/resources/cards/financial_transactions.rb +25 -8
  208. data/lib/lithic/resources/cards.rb +177 -69
  209. data/lib/lithic/resources/credit_products/extended_credit.rb +2 -1
  210. data/lib/lithic/resources/credit_products/prime_rates.rb +12 -6
  211. data/lib/lithic/resources/digital_card_art.rb +17 -4
  212. data/lib/lithic/resources/disputes.rb +61 -22
  213. data/lib/lithic/resources/events/subscriptions.rb +78 -21
  214. data/lib/lithic/resources/events.rb +40 -12
  215. data/lib/lithic/resources/external_bank_accounts.rb +79 -27
  216. data/lib/lithic/resources/external_payments.rb +46 -14
  217. data/lib/lithic/resources/financial_accounts/balances.rb +9 -3
  218. data/lib/lithic/resources/financial_accounts/credit_configuration.rb +10 -4
  219. data/lib/lithic/resources/financial_accounts/financial_transactions.rb +28 -10
  220. data/lib/lithic/resources/financial_accounts/loan_tapes.rb +23 -8
  221. data/lib/lithic/resources/financial_accounts/statements/line_items.rb +16 -5
  222. data/lib/lithic/resources/financial_accounts/statements.rb +25 -9
  223. data/lib/lithic/resources/financial_accounts.rb +22 -11
  224. data/lib/lithic/resources/management_operations.rb +31 -10
  225. data/lib/lithic/resources/payments.rb +64 -17
  226. data/lib/lithic/resources/reports/settlement/network_totals.rb +32 -12
  227. data/lib/lithic/resources/reports/settlement.rb +15 -5
  228. data/lib/lithic/resources/responder_endpoints.rb +8 -4
  229. data/lib/lithic/resources/three_ds/authentication.rb +21 -5
  230. data/lib/lithic/resources/three_ds/decisioning.rb +8 -2
  231. data/lib/lithic/resources/tokenizations.rb +70 -25
  232. data/lib/lithic/resources/transactions/enhanced_commercial_data.rb +2 -1
  233. data/lib/lithic/resources/transactions/events/enhanced_commercial_data.rb +2 -1
  234. data/lib/lithic/resources/transactions.rb +106 -37
  235. data/lib/lithic/resources/transfers.rb +17 -5
  236. data/lib/lithic/version.rb +1 -1
  237. data/lib/lithic.rb +4 -9
  238. data/rbi/lib/lithic/file_part.rbi +34 -0
  239. data/rbi/lib/lithic/internal/transport/base_client.rbi +17 -3
  240. data/rbi/lib/lithic/internal/type/{io_like.rbi → file_input.rbi} +6 -2
  241. data/rbi/lib/lithic/internal/util.rbi +24 -19
  242. data/rbi/lib/lithic/models/account.rbi +62 -6
  243. data/rbi/lib/lithic/models/account_holder.rbi +139 -8
  244. data/rbi/lib/lithic/models/account_holder_create_params.rbi +131 -6
  245. data/rbi/lib/lithic/models/account_holder_create_response.rbi +14 -3
  246. data/rbi/lib/lithic/models/account_holder_list_params.rbi +19 -0
  247. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rbi +5 -0
  248. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_params.rbi +10 -2
  249. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_response.rbi +172 -17
  250. data/rbi/lib/lithic/models/account_holder_update_params.rbi +99 -0
  251. data/rbi/lib/lithic/models/account_holder_update_response.rbi +176 -19
  252. data/rbi/lib/lithic/models/account_holder_upload_document_params.rbi +7 -2
  253. data/rbi/lib/lithic/models/account_list_params.rbi +10 -3
  254. data/rbi/lib/lithic/models/account_spend_limits.rbi +30 -6
  255. data/rbi/lib/lithic/models/account_update_params.rbi +16 -0
  256. data/rbi/lib/lithic/models/address.rbi +19 -2
  257. data/rbi/lib/lithic/models/address_update.rbi +17 -2
  258. data/rbi/lib/lithic/models/aggregate_balance.rbi +14 -0
  259. data/rbi/lib/lithic/models/aggregate_balance_list_params.rbi +5 -2
  260. data/rbi/lib/lithic/models/auth_rules/auth_rule.rbi +15 -0
  261. data/rbi/lib/lithic/models/auth_rules/auth_rule_condition.rbi +54 -2
  262. data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_params.rbi +7 -2
  263. data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_response.rbi +4 -2
  264. data/rbi/lib/lithic/models/auth_rules/v2/backtest_results.rbi +60 -12
  265. data/rbi/lib/lithic/models/auth_rules/v2_apply_params.rbi +5 -3
  266. data/rbi/lib/lithic/models/auth_rules/v2_apply_response.rbi +22 -4
  267. data/rbi/lib/lithic/models/auth_rules/v2_create_params.rbi +7 -0
  268. data/rbi/lib/lithic/models/auth_rules/v2_create_response.rbi +22 -4
  269. data/rbi/lib/lithic/models/auth_rules/v2_draft_params.rbi +5 -2
  270. data/rbi/lib/lithic/models/auth_rules/v2_draft_response.rbi +22 -4
  271. data/rbi/lib/lithic/models/auth_rules/v2_list_params.rbi +7 -0
  272. data/rbi/lib/lithic/models/auth_rules/v2_list_response.rbi +22 -4
  273. data/rbi/lib/lithic/models/auth_rules/v2_promote_response.rbi +22 -4
  274. data/rbi/lib/lithic/models/auth_rules/v2_retrieve_response.rbi +22 -4
  275. data/rbi/lib/lithic/models/auth_rules/v2_update_params.rbi +10 -0
  276. data/rbi/lib/lithic/models/auth_rules/v2_update_response.rbi +22 -4
  277. data/rbi/lib/lithic/models/auth_rules/velocity_limit_params.rbi +33 -5
  278. data/rbi/lib/lithic/models/auth_stream_secret.rbi +4 -2
  279. data/rbi/lib/lithic/models/balance.rbi +14 -0
  280. data/rbi/lib/lithic/models/balance_list_params.rbi +5 -0
  281. data/rbi/lib/lithic/models/book_transfer_create_params.rbi +12 -0
  282. data/rbi/lib/lithic/models/book_transfer_list_params.rbi +14 -0
  283. data/rbi/lib/lithic/models/book_transfer_response.rbi +41 -2
  284. data/rbi/lib/lithic/models/book_transfer_reverse_params.rbi +5 -2
  285. data/rbi/lib/lithic/models/card.rbi +36 -0
  286. data/rbi/lib/lithic/models/card_convert_physical_params.rbi +18 -3
  287. data/rbi/lib/lithic/models/card_create_params.rbi +84 -0
  288. data/rbi/lib/lithic/models/card_embed_params.rbi +7 -2
  289. data/rbi/lib/lithic/models/card_list_params.rbi +11 -0
  290. data/rbi/lib/lithic/models/card_program.rbi +8 -0
  291. data/rbi/lib/lithic/models/card_program_list_params.rbi +11 -2
  292. data/rbi/lib/lithic/models/card_provision_params.rbi +17 -0
  293. data/rbi/lib/lithic/models/card_reissue_params.rbi +18 -3
  294. data/rbi/lib/lithic/models/card_renew_params.rbi +21 -0
  295. data/rbi/lib/lithic/models/card_search_by_pan_params.rbi +5 -2
  296. data/rbi/lib/lithic/models/card_spend_limits.rbi +30 -6
  297. data/rbi/lib/lithic/models/card_update_params.rbi +35 -0
  298. data/rbi/lib/lithic/models/cards/aggregate_balance_list_params.rbi +7 -2
  299. data/rbi/lib/lithic/models/cards/aggregate_balance_list_response.rbi +13 -0
  300. data/rbi/lib/lithic/models/cards/balance_list_params.rbi +9 -2
  301. data/rbi/lib/lithic/models/cards/balance_list_response.rbi +14 -0
  302. data/rbi/lib/lithic/models/cards/financial_transaction_list_params.rbi +11 -0
  303. data/rbi/lib/lithic/models/carrier.rbi +4 -2
  304. data/rbi/lib/lithic/models/credit_products/prime_rate_create_params.rbi +7 -2
  305. data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_params.rbi +7 -2
  306. data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_response.rbi +12 -4
  307. data/rbi/lib/lithic/models/digital_card_art.rbi +8 -3
  308. data/rbi/lib/lithic/models/digital_card_art_list_params.rbi +11 -2
  309. data/rbi/lib/lithic/models/dispute.rbi +66 -0
  310. data/rbi/lib/lithic/models/dispute_create_params.rbi +6 -3
  311. data/rbi/lib/lithic/models/dispute_evidence.rbi +15 -3
  312. data/rbi/lib/lithic/models/dispute_initiate_evidence_upload_params.rbi +5 -2
  313. data/rbi/lib/lithic/models/dispute_list_evidences_params.rbi +10 -3
  314. data/rbi/lib/lithic/models/dispute_list_params.rbi +11 -0
  315. data/rbi/lib/lithic/models/dispute_update_params.rbi +5 -3
  316. data/rbi/lib/lithic/models/document.rbi +27 -3
  317. data/rbi/lib/lithic/models/event.rbi +39 -2
  318. data/rbi/lib/lithic/models/event_list_attempts_params.rbi +9 -0
  319. data/rbi/lib/lithic/models/event_list_params.rbi +11 -0
  320. data/rbi/lib/lithic/models/event_subscription.rbi +10 -2
  321. data/rbi/lib/lithic/models/events/subscription_create_params.rbi +12 -2
  322. data/rbi/lib/lithic/models/events/subscription_list_attempts_params.rbi +9 -0
  323. data/rbi/lib/lithic/models/events/subscription_list_params.rbi +11 -2
  324. data/rbi/lib/lithic/models/events/subscription_recover_params.rbi +9 -2
  325. data/rbi/lib/lithic/models/events/subscription_replay_missing_params.rbi +9 -2
  326. data/rbi/lib/lithic/models/events/subscription_retrieve_secret_response.rbi +4 -2
  327. data/rbi/lib/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -2
  328. data/rbi/lib/lithic/models/events/subscription_update_params.rbi +12 -2
  329. data/rbi/lib/lithic/models/external_bank_account_create_params.rbi +20 -0
  330. data/rbi/lib/lithic/models/external_bank_account_create_response.rbi +33 -0
  331. data/rbi/lib/lithic/models/external_bank_account_list_params.rbi +5 -0
  332. data/rbi/lib/lithic/models/external_bank_account_list_response.rbi +33 -0
  333. data/rbi/lib/lithic/models/external_bank_account_retrieve_response.rbi +33 -0
  334. data/rbi/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rbi +33 -0
  335. data/rbi/lib/lithic/models/external_bank_account_retry_prenote_response.rbi +33 -0
  336. data/rbi/lib/lithic/models/external_bank_account_update_params.rbi +9 -0
  337. data/rbi/lib/lithic/models/external_bank_account_update_response.rbi +33 -0
  338. data/rbi/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rbi +33 -0
  339. data/rbi/lib/lithic/models/external_payment_list_params.rbi +14 -0
  340. data/rbi/lib/lithic/models/financial_account.rbi +8 -0
  341. data/rbi/lib/lithic/models/financial_account_list_params.rbi +9 -2
  342. data/rbi/lib/lithic/models/financial_account_update_status_params.rbi +7 -2
  343. data/rbi/lib/lithic/models/financial_accounts/balance_list_params.rbi +9 -2
  344. data/rbi/lib/lithic/models/financial_accounts/balance_list_response.rbi +14 -0
  345. data/rbi/lib/lithic/models/financial_accounts/credit_configuration_update_params.rbi +2 -0
  346. data/rbi/lib/lithic/models/financial_accounts/financial_account_credit_config.rbi +5 -0
  347. data/rbi/lib/lithic/models/financial_accounts/financial_transaction_list_params.rbi +11 -0
  348. data/rbi/lib/lithic/models/financial_accounts/loan_tape.rbi +94 -13
  349. data/rbi/lib/lithic/models/financial_accounts/loan_tape_list_params.rbi +10 -3
  350. data/rbi/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rbi +5 -2
  351. data/rbi/lib/lithic/models/financial_accounts/statement.rbi +72 -10
  352. data/rbi/lib/lithic/models/financial_accounts/statement_list_params.rbi +10 -0
  353. data/rbi/lib/lithic/models/financial_accounts/statement_retrieve_params.rbi +5 -2
  354. data/rbi/lib/lithic/models/financial_accounts/statements/line_item_list_params.rbi +7 -3
  355. data/rbi/lib/lithic/models/financial_accounts/statements/statement_line_items.rbi +10 -0
  356. data/rbi/lib/lithic/models/financial_transaction.rbi +44 -2
  357. data/rbi/lib/lithic/models/kyb.rbi +94 -4
  358. data/rbi/lib/lithic/models/kyb_business_entity.rbi +28 -2
  359. data/rbi/lib/lithic/models/kyc.rbi +40 -4
  360. data/rbi/lib/lithic/models/kyc_exempt.rbi +13 -0
  361. data/rbi/lib/lithic/models/management_operation_list_params.rbi +13 -0
  362. data/rbi/lib/lithic/models/message_attempt.rbi +10 -3
  363. data/rbi/lib/lithic/models/{card_list_response.rbi → non_pci_card.rbi} +137 -62
  364. data/rbi/lib/lithic/models/payment.rbi +57 -2
  365. data/rbi/lib/lithic/models/payment_create_params.rbi +2 -0
  366. data/rbi/lib/lithic/models/payment_create_response.rbi +4 -2
  367. data/rbi/lib/lithic/models/payment_list_params.rbi +9 -0
  368. data/rbi/lib/lithic/models/payment_retry_response.rbi +4 -2
  369. data/rbi/lib/lithic/models/payment_simulate_action_params.rbi +9 -2
  370. data/rbi/lib/lithic/models/payment_simulate_action_response.rbi +8 -2
  371. data/rbi/lib/lithic/models/payment_simulate_receipt_params.rbi +13 -3
  372. data/rbi/lib/lithic/models/payment_simulate_receipt_response.rbi +8 -2
  373. data/rbi/lib/lithic/models/payment_simulate_release_params.rbi +5 -2
  374. data/rbi/lib/lithic/models/payment_simulate_release_response.rbi +8 -2
  375. data/rbi/lib/lithic/models/payment_simulate_return_params.rbi +7 -2
  376. data/rbi/lib/lithic/models/payment_simulate_return_response.rbi +8 -2
  377. data/rbi/lib/lithic/models/reports/settlement/network_total_list_params.rbi +16 -0
  378. data/rbi/lib/lithic/models/reports/settlement/network_total_list_response.rbi +26 -2
  379. data/rbi/lib/lithic/models/reports/settlement/network_total_retrieve_response.rbi +26 -2
  380. data/rbi/lib/lithic/models/reports/settlement_list_details_params.rbi +11 -2
  381. data/rbi/lib/lithic/models/required_document.rbi +10 -2
  382. data/rbi/lib/lithic/models/responder_endpoint_check_status_params.rbi +5 -2
  383. data/rbi/lib/lithic/models/responder_endpoint_create_params.rbi +7 -2
  384. data/rbi/lib/lithic/models/responder_endpoint_create_response.rbi +4 -2
  385. data/rbi/lib/lithic/models/responder_endpoint_delete_params.rbi +5 -2
  386. data/rbi/lib/lithic/models/responder_endpoint_status.rbi +6 -2
  387. data/rbi/lib/lithic/models/settlement_detail.rbi +26 -0
  388. data/rbi/lib/lithic/models/settlement_report.rbi +25 -0
  389. data/rbi/lib/lithic/models/settlement_summary_details.rbi +11 -0
  390. data/rbi/lib/lithic/models/shipping_address.rbi +20 -0
  391. data/rbi/lib/lithic/models/three_ds/authentication_retrieve_response.rbi +165 -19
  392. data/rbi/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rbi +8 -2
  393. data/rbi/lib/lithic/models/three_ds/authentication_simulate_params.rbi +31 -6
  394. data/rbi/lib/lithic/models/three_ds/authentication_simulate_response.rbi +5 -2
  395. data/rbi/lib/lithic/models/three_ds/challenge_response.rbi +9 -2
  396. data/rbi/lib/lithic/models/three_ds/decisioning_retrieve_secret_response.rbi +4 -2
  397. data/rbi/lib/lithic/models/tokenization.rbi +27 -2
  398. data/rbi/lib/lithic/models/tokenization_decisioning_rotate_secret_response.rbi +4 -2
  399. data/rbi/lib/lithic/models/tokenization_list_params.rbi +11 -0
  400. data/rbi/lib/lithic/models/tokenization_resend_activation_code_params.rbi +7 -2
  401. data/rbi/lib/lithic/models/tokenization_secret.rbi +4 -2
  402. data/rbi/lib/lithic/models/tokenization_simulate_params.rbi +11 -0
  403. data/rbi/lib/lithic/models/tokenization_update_digital_card_art_params.rbi +8 -2
  404. data/rbi/lib/lithic/models/transaction.rbi +246 -35
  405. data/rbi/lib/lithic/models/transaction_list_params.rbi +14 -0
  406. data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_params.rbi +8 -2
  407. data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_response.rbi +6 -2
  408. data/rbi/lib/lithic/models/transaction_simulate_authorization_params.rbi +35 -0
  409. data/rbi/lib/lithic/models/transaction_simulate_authorization_response.rbi +7 -2
  410. data/rbi/lib/lithic/models/transaction_simulate_clearing_params.rbi +15 -2
  411. data/rbi/lib/lithic/models/transaction_simulate_clearing_response.rbi +4 -2
  412. data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_params.rbi +17 -2
  413. data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_response.rbi +6 -2
  414. data/rbi/lib/lithic/models/transaction_simulate_return_params.rbi +9 -2
  415. data/rbi/lib/lithic/models/transaction_simulate_return_response.rbi +6 -2
  416. data/rbi/lib/lithic/models/transaction_simulate_return_reversal_params.rbi +5 -2
  417. data/rbi/lib/lithic/models/transaction_simulate_return_reversal_response.rbi +4 -2
  418. data/rbi/lib/lithic/models/transaction_simulate_void_params.rbi +14 -2
  419. data/rbi/lib/lithic/models/transaction_simulate_void_response.rbi +4 -2
  420. data/rbi/lib/lithic/models/transactions/events/enhanced_data.rbi +57 -16
  421. data/rbi/lib/lithic/models/transfer.rbi +41 -2
  422. data/rbi/lib/lithic/models/transfer_create_params.rbi +17 -2
  423. data/rbi/lib/lithic/resources/cards.rbi +8 -8
  424. data/sig/lithic/file_part.rbs +21 -0
  425. data/sig/lithic/internal/transport/base_client.rbs +9 -3
  426. data/sig/lithic/internal/type/{io_like.rbs → file_input.rbs} +1 -1
  427. data/sig/lithic/internal/util.rbs +14 -12
  428. data/sig/lithic/models/card.rbs +19 -0
  429. data/sig/lithic/models/{card_list_response.rbs → non_pci_card.rbs} +31 -31
  430. data/sig/lithic/resources/cards.rbs +8 -8
  431. metadata +14 -29
  432. data/lib/lithic/models/card_convert_physical_response.rb +0 -393
  433. data/lib/lithic/models/card_create_response.rb +0 -392
  434. data/lib/lithic/models/card_reissue_response.rb +0 -392
  435. data/lib/lithic/models/card_renew_response.rb +0 -392
  436. data/lib/lithic/models/card_retrieve_response.rb +0 -392
  437. data/lib/lithic/models/card_search_by_pan_response.rb +0 -392
  438. data/lib/lithic/models/card_update_response.rb +0 -392
  439. data/rbi/lib/lithic/models/card_convert_physical_response.rbi +0 -467
  440. data/rbi/lib/lithic/models/card_create_response.rbi +0 -458
  441. data/rbi/lib/lithic/models/card_reissue_response.rbi +0 -458
  442. data/rbi/lib/lithic/models/card_renew_response.rbi +0 -457
  443. data/rbi/lib/lithic/models/card_retrieve_response.rbi +0 -459
  444. data/rbi/lib/lithic/models/card_search_by_pan_response.rbi +0 -461
  445. data/rbi/lib/lithic/models/card_update_response.rbi +0 -458
  446. data/sig/lithic/models/card_convert_physical_response.rbs +0 -257
  447. data/sig/lithic/models/card_create_response.rbs +0 -257
  448. data/sig/lithic/models/card_reissue_response.rbs +0 -257
  449. data/sig/lithic/models/card_renew_response.rbs +0 -257
  450. data/sig/lithic/models/card_retrieve_response.rbs +0 -257
  451. data/sig/lithic/models/card_search_by_pan_response.rbs +0 -257
  452. data/sig/lithic/models/card_update_response.rbs +0 -257
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7bf1f6b2ae2b269fcbe2e915e81c0729bb7d166f035b27dde8e72d6713733841
4
- data.tar.gz: 0c0adcbd79d3f29d0092cd87f2c77e4136219d952544c634c5340014b9ea75bb
3
+ metadata.gz: 7b38f118b6ba402692ea2f86ae2526f63ec13f22ec3d856e6036ed2f74a1d073
4
+ data.tar.gz: babb1bcd368f16906742018e8e972ed0647fc0962320e4b2e00933758ed8b64b
5
5
  SHA512:
6
- metadata.gz: 9454d14be6e4f884e28b5767cdc99bb8eb90a95890e8f69cc9c328c371edaf7acae6a496fe2ae213adf40e85dc702f5e48f63f1258b2a6153e3e03fef5aa0ed1
7
- data.tar.gz: e115e05933d7b77fe91f4705937c27edf9d03fcff923abbbb78a638d5be00a474c8937a327a00d5cb493beeb21b82ed79ebf1ec117ee9ee38f33391b99aea6f3
6
+ metadata.gz: eac7c88422fc4c6e25357d72939de0b59ed35743127711747e835baaa2a3bab1c5986f137b8697d7ea3ddf4ca221c043b3ed288e2f7959eb422ec4f538aa0746
7
+ data.tar.gz: 0dbff29079985fa4ef50cd4ea6e8027466430004c67961bbeef38d653169c1b70d68866d8c84ccb3fdb0a963e024f64d023c77568e084cc3ff4ec688cdc61166
data/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.18 (2025-04-25)
4
+
5
+ Full Changelog: [v0.1.0-alpha.17...v0.1.0-alpha.18](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.17...v0.1.0-alpha.18)
6
+
7
+ ### Features
8
+
9
+ * support specifying content-type with FilePart class ([0cf245e](https://github.com/lithic-com/lithic-ruby/commit/0cf245eaa7321b8ae3ee08a9c585403cf654f9ca))
10
+ * support webmock for testing ([56900e6](https://github.com/lithic-com/lithic-ruby/commit/56900e694ecd63ff000e880f2cd6add9e5548e86))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * ensure gem release is unaffected by renaming ([84a2f71](https://github.com/lithic-com/lithic-ruby/commit/84a2f7191fa58067637c050575de5552aec2cf09))
16
+
17
+
18
+ ### Chores
19
+
20
+ * broadly detect json family of content-type headers ([2b4f4bc](https://github.com/lithic-com/lithic-ruby/commit/2b4f4bca7f025906e369ed32f4cd71e357cd79a8))
21
+ * **ci:** add timeout thresholds for CI jobs ([2f4319b](https://github.com/lithic-com/lithic-ruby/commit/2f4319b37459d2899350a1d05aec39a8134ac3e1))
22
+ * **ci:** only use depot for staging repos ([99e9f7d](https://github.com/lithic-com/lithic-ruby/commit/99e9f7d78c04ab805321dabe41d5431717fc5eb4))
23
+ * **ci:** run on more branches and use depot runners ([84743d4](https://github.com/lithic-com/lithic-ruby/commit/84743d4c86aeeadc23ef0cb025f77944e9822a4e))
24
+ * consistently use string in examples, even for enums ([c35c6f4](https://github.com/lithic-com/lithic-ruby/commit/c35c6f45e00d6eed30d43f8b4335c6761f3fe2f5))
25
+ * **internal:** improve response envelope unwrap functionality ([d2c37aa](https://github.com/lithic-com/lithic-ruby/commit/d2c37aa27246c9379a2400020047cd1c7761f03d))
26
+ * **internal:** minor type annotation improvements ([964cec1](https://github.com/lithic-com/lithic-ruby/commit/964cec1b7eb9904a6f643dcbcaaff3ae64276032))
27
+ * show truncated parameter docs in yard ([3d5f4b7](https://github.com/lithic-com/lithic-ruby/commit/3d5f4b7b7fc6d780cb19fe3cddac32306de1aaf2))
28
+
29
+ ## 0.1.0-alpha.17 (2025-04-21)
30
+
31
+ Full Changelog: [v0.1.0-alpha.16...v0.1.0-alpha.17](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.16...v0.1.0-alpha.17)
32
+
33
+ ### Bug Fixes
34
+
35
+ * **internals:** fix Card schema definition ([1a3d18b](https://github.com/lithic-com/lithic-ruby/commit/1a3d18be7e1817fad98013b032defbaa5663b354))
36
+
3
37
  ## 0.1.0-alpha.16 (2025-04-21)
4
38
 
5
39
  Full Changelog: [v0.1.0-alpha.15...v0.1.0-alpha.16](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.15...v0.1.0-alpha.16)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "lithic", "~> 0.1.0.pre.alpha.16"
18
+ gem "lithic", "~> 0.1.0.pre.alpha.18"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -31,7 +31,7 @@ lithic = Lithic::Client.new(
31
31
  environment: "sandbox" # defaults to "production"
32
32
  )
33
33
 
34
- card = lithic.cards.create(type: :SINGLE_USE)
34
+ card = lithic.cards.create(type: "SINGLE_USE")
35
35
 
36
36
  puts(card.token)
37
37
  ```
@@ -43,7 +43,7 @@ This library is written with [Sorbet type definitions](https://sorbet.org/docs/r
43
43
  When using sorbet, it is recommended to use model classes as below. This provides stronger type checking and tooling integration.
44
44
 
45
45
  ```ruby
46
- lithic.cards.create(type: :SINGLE_USE)
46
+ lithic.cards.create(type: "SINGLE_USE")
47
47
  ```
48
48
 
49
49
  ### Pagination
@@ -71,7 +71,7 @@ When the library is unable to connect to the API, or if the API returns a non-su
71
71
 
72
72
  ```ruby
73
73
  begin
74
- card = lithic.cards.create(type: :an_incorrect_type)
74
+ card = lithic.cards.create(type: "an_incorrect_type")
75
75
  rescue Lithic::Errors::APIError => e
76
76
  puts(e.status) # 400
77
77
  end
@@ -139,11 +139,11 @@ In all places where a `BaseModel` type is specified, vanilla Ruby `Hash` can als
139
139
 
140
140
  ```ruby
141
141
  # This has tooling readability, for auto-completion, static analysis, and goto definition with supported language services
142
- params = Lithic::Models::CardCreateParams.new(type: :SINGLE_USE)
142
+ params = Lithic::Models::CardCreateParams.new(type: "SINGLE_USE")
143
143
 
144
144
  # This also works
145
145
  params = {
146
- type: :SINGLE_USE
146
+ type: "SINGLE_USE"
147
147
  }
148
148
  ```
149
149
 
@@ -203,7 +203,7 @@ end
203
203
  It is possible to pass a compatible model / parameter class to a method that expects keyword arguments by using the `**` splat operator.
204
204
 
205
205
  ```ruby
206
- params = Lithic::Models::CardCreateParams.new(type: :SINGLE_USE)
206
+ params = Lithic::Models::CardCreateParams.new(type: "SINGLE_USE")
207
207
  lithic.cards.create(**params)
208
208
  ```
209
209
 
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ class FilePart
5
+ # @return [Pathname, StringIO, IO, String]
6
+ attr_reader :content
7
+
8
+ # @return [String, nil]
9
+ attr_reader :content_type
10
+
11
+ # @return [String, nil]
12
+ attr_reader :filename
13
+
14
+ # @api private
15
+ #
16
+ # @return [String]
17
+ private def read
18
+ case contents
19
+ in Pathname
20
+ contents.read(binmode: true)
21
+ in StringIO
22
+ contents.string
23
+ in IO
24
+ contents.read
25
+ in String
26
+ contents
27
+ end
28
+ end
29
+
30
+ # @param a [Object]
31
+ #
32
+ # @return [String]
33
+ def to_json(*a) = read.to_json(*a)
34
+
35
+ # @param a [Object]
36
+ #
37
+ # @return [String]
38
+ def to_yaml(*a) = read.to_yaml(*a)
39
+
40
+ # @param content [Pathname, StringIO, IO, String]
41
+ # @param filename [String, nil]
42
+ # @param content_type [String, nil]
43
+ def initialize(content, filename: nil, content_type: nil)
44
+ @content = content
45
+ @filename =
46
+ case content
47
+ in Pathname
48
+ filename.nil? ? content.basename.to_path : File.basename(filename)
49
+ else
50
+ filename.nil? ? nil : File.basename(filename)
51
+ end
52
+ @content_type = content_type
53
+ end
54
+ end
55
+ end
@@ -28,7 +28,7 @@ module Lithic
28
28
  end
29
29
 
30
30
  # @raise [Lithic::HTTP::Error]
31
- # @return [Lithic::Internal::CursorPage]
31
+ # @return [self]
32
32
  def next_page
33
33
  unless next_page?
34
34
  message = "No more pages available. Please check #next_page? before calling ##{__method__}"
@@ -28,7 +28,7 @@ module Lithic
28
28
  end
29
29
 
30
30
  # @raise [Lithic::HTTP::Error]
31
- # @return [Lithic::Internal::SinglePage]
31
+ # @return [self]
32
32
  def next_page
33
33
  RuntimeError.new("No more pages available.")
34
34
  end
@@ -153,7 +153,7 @@ module Lithic
153
153
 
154
154
  # @api private
155
155
  # @return [Lithic::Internal::Transport::PooledNetRequester]
156
- attr_accessor :requester
156
+ attr_reader :requester
157
157
 
158
158
  # @api private
159
159
  #
@@ -214,11 +214,11 @@ module Lithic
214
214
  #
215
215
  # @option req [Object, nil] :body
216
216
  #
217
- # @option req [Symbol, nil] :unwrap
217
+ # @option req [Symbol, Integer, Array<Symbol, Integer>, Proc, nil] :unwrap
218
218
  #
219
- # @option req [Class, nil] :page
219
+ # @option req [Class<Lithic::Internal::Type::BasePage>, nil] :page
220
220
  #
221
- # @option req [Class, nil] :stream
221
+ # @option req [Class<Lithic::Internal::Type::BaseStream>, nil] :stream
222
222
  #
223
223
  # @option req [Lithic::Internal::Type::Converter, Class, nil] :model
224
224
  #
@@ -415,11 +415,11 @@ module Lithic
415
415
  #
416
416
  # @param body [Object, nil]
417
417
  #
418
- # @param unwrap [Symbol, nil]
418
+ # @param unwrap [Symbol, Integer, Array<Symbol, Integer>, Proc, nil]
419
419
  #
420
- # @param page [Class, nil]
420
+ # @param page [Class<Lithic::Internal::Type::BasePage>, nil]
421
421
  #
422
- # @param stream [Class, nil]
422
+ # @param stream [Class<Lithic::Internal::Type::BaseStream>, nil]
423
423
  #
424
424
  # @param model [Lithic::Internal::Type::Converter, Class, nil]
425
425
  #
@@ -176,7 +176,7 @@ module Lithic
176
176
  conn.finish if !eof && conn&.started?
177
177
  closing&.call
178
178
  end
179
- [Integer(response.code), response, (response.body = body)]
179
+ [Integer(response.code), response, body]
180
180
  end
181
181
 
182
182
  # @api private
@@ -28,6 +28,8 @@ module Lithic
28
28
  # @option spec [Proc] :union
29
29
  #
30
30
  # @option spec [Boolean] :"nil?"
31
+ #
32
+ # @return [Lithic::Internal::Type::ArrayOf]
31
33
  def self.[](...) = new(...)
32
34
 
33
35
  # @api public
@@ -389,7 +389,7 @@ module Lithic
389
389
 
390
390
  # Create a new instance of a model.
391
391
  #
392
- # @param data [Hash{Symbol=>Object}, Lithic::Internal::Type::BaseModel]
392
+ # @param data [Hash{Symbol=>Object}, self]
393
393
  def initialize(data = {})
394
394
  case Lithic::Internal::Util.coerce_hash(data)
395
395
  in Hash => coerced
@@ -19,7 +19,7 @@ module Lithic
19
19
  # @api public
20
20
  #
21
21
  # @raise [Lithic::Errors::APIError]
22
- # @return [Lithic::Internal::Type::BasePage]
22
+ # @return [self]
23
23
  def next_page = (raise NotImplementedError)
24
24
 
25
25
  # @api public
@@ -43,7 +43,7 @@ module Lithic
43
43
  value.string
44
44
  in Pathname | IO
45
45
  state[:can_retry] = false if value.is_a?(IO)
46
- Lithic::Internal::Util::SerializationAdapter.new(value)
46
+ Lithic::FilePart.new(value)
47
47
  else
48
48
  value
49
49
  end
@@ -7,8 +7,12 @@ module Lithic
7
7
  #
8
8
  # @abstract
9
9
  #
10
- # Either `Pathname` or `StringIO`.
11
- class IOLike
10
+ # Either `Pathname` or `StringIO`, or `IO`, or
11
+ # `Lithic::Internal::Type::FileInput`.
12
+ #
13
+ # Note: when `IO` is used, all retries are disabled, since many IO` streams are
14
+ # not rewindable.
15
+ class FileInput
12
16
  extend Lithic::Internal::Type::Converter
13
17
 
14
18
  private_class_method :new
@@ -20,7 +24,7 @@ module Lithic
20
24
  # @return [Boolean]
21
25
  def self.===(other)
22
26
  case other
23
- in StringIO | Pathname | IO
27
+ in Pathname | StringIO | IO | String | Lithic::FilePart
24
28
  true
25
29
  else
26
30
  false
@@ -32,7 +36,7 @@ module Lithic
32
36
  # @param other [Object]
33
37
  #
34
38
  # @return [Boolean]
35
- def self.==(other) = other.is_a?(Class) && other <= Lithic::Internal::Type::IOLike
39
+ def self.==(other) = other.is_a?(Class) && other <= Lithic::Internal::Type::FileInput
36
40
 
37
41
  class << self
38
42
  # @api private
@@ -28,6 +28,8 @@ module Lithic
28
28
  # @option spec [Proc] :union
29
29
  #
30
30
  # @option spec [Boolean] :"nil?"
31
+ #
32
+ # @return [Lithic::Internal::Type::HashOf]
31
33
  def self.[](...) = new(...)
32
34
 
33
35
  # @api public
@@ -175,18 +175,17 @@ module Lithic
175
175
  # @api private
176
176
  #
177
177
  # @param data [Hash{Symbol=>Object}, Array<Object>, Object]
178
- # @param pick [Symbol, Integer, Array<Symbol, Integer>, nil]
179
- # @param sentinel [Object, nil]
178
+ # @param pick [Symbol, Integer, Array<Symbol, Integer>, Proc, nil]
180
179
  # @param blk [Proc, nil]
181
180
  #
182
181
  # @return [Object, nil]
183
- def dig(data, pick, sentinel = nil, &blk)
184
- case [data, pick, blk]
185
- in [_, nil, nil]
182
+ def dig(data, pick, &blk)
183
+ case [data, pick]
184
+ in [_, nil]
186
185
  data
187
- in [Hash, Symbol, _] | [Array, Integer, _]
188
- blk.nil? ? data.fetch(pick, sentinel) : data.fetch(pick, &blk)
189
- in [Hash | Array, Array, _]
186
+ in [Hash, Symbol] | [Array, Integer]
187
+ data.fetch(pick) { blk&.call }
188
+ in [Hash | Array, Array]
190
189
  pick.reduce(data) do |acc, key|
191
190
  case acc
192
191
  in Hash if acc.key?(key)
@@ -194,11 +193,13 @@ module Lithic
194
193
  in Array if key.is_a?(Integer) && key < acc.length
195
194
  acc[key]
196
195
  else
197
- return blk.nil? ? sentinel : blk.call
196
+ return blk&.call
198
197
  end
199
198
  end
200
- in _
201
- blk.nil? ? sentinel : blk.call
199
+ in [_, Proc]
200
+ pick.call(data)
201
+ else
202
+ blk&.call
202
203
  end
203
204
  end
204
205
  end
@@ -348,27 +349,6 @@ module Lithic
348
349
  end
349
350
  end
350
351
 
351
- # @api private
352
- class SerializationAdapter
353
- # @return [Pathname, IO]
354
- attr_reader :inner
355
-
356
- # @param a [Object]
357
- #
358
- # @return [String]
359
- def to_json(*a) = (inner.is_a?(IO) ? inner.read : inner.read(binmode: true)).to_json(*a)
360
-
361
- # @param a [Object]
362
- #
363
- # @return [String]
364
- def to_yaml(*a) = (inner.is_a?(IO) ? inner.read : inner.read(binmode: true)).to_yaml(*a)
365
-
366
- # @api private
367
- #
368
- # @param inner [Pathname, IO]
369
- def initialize(inner) = @inner = inner
370
- end
371
-
372
352
  # @api private
373
353
  #
374
354
  # An adapter that satisfies the IO interface required by `::IO.copy_stream`
@@ -471,46 +451,44 @@ module Lithic
471
451
  end
472
452
  end
473
453
 
454
+ # @type [Regexp]
455
+ JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
456
+ # @type [Regexp]
457
+ JSONL_CONTENT = %r{^application/(?:x-)?jsonl}
458
+
474
459
  class << self
475
460
  # @api private
476
461
  #
477
462
  # @param y [Enumerator::Yielder]
478
- # @param boundary [String]
479
- # @param key [Symbol, String]
480
463
  # @param val [Object]
481
464
  # @param closing [Array<Proc>]
482
- private def write_multipart_chunk(y, boundary:, key:, val:, closing:)
483
- val = val.inner if val.is_a?(Lithic::Internal::Util::SerializationAdapter)
465
+ # @param content_type [String, nil]
466
+ private def write_multipart_content(y, val:, closing:, content_type: nil)
467
+ content_type ||= "application/octet-stream"
484
468
 
485
- y << "--#{boundary}\r\n"
486
- y << "Content-Disposition: form-data"
487
- unless key.nil?
488
- name = ERB::Util.url_encode(key.to_s)
489
- y << "; name=\"#{name}\""
490
- end
491
- case val
492
- in Pathname | IO
493
- filename = ERB::Util.url_encode(File.basename(val.to_path))
494
- y << "; filename=\"#{filename}\""
495
- else
496
- end
497
- y << "\r\n"
498
469
  case val
470
+ in Lithic::FilePart
471
+ return write_multipart_content(
472
+ y,
473
+ val: val.content,
474
+ closing: closing,
475
+ content_type: val.content_type
476
+ )
499
477
  in Pathname
500
- y << "Content-Type: application/octet-stream\r\n\r\n"
478
+ y << "Content-Type: #{content_type}\r\n\r\n"
501
479
  io = val.open(binmode: true)
502
480
  closing << io.method(:close)
503
481
  IO.copy_stream(io, y)
504
482
  in IO
505
- y << "Content-Type: application/octet-stream\r\n\r\n"
483
+ y << "Content-Type: #{content_type}\r\n\r\n"
506
484
  IO.copy_stream(val, y)
507
485
  in StringIO
508
- y << "Content-Type: application/octet-stream\r\n\r\n"
486
+ y << "Content-Type: #{content_type}\r\n\r\n"
509
487
  y << val.string
510
488
  in String
511
- y << "Content-Type: application/octet-stream\r\n\r\n"
489
+ y << "Content-Type: #{content_type}\r\n\r\n"
512
490
  y << val.to_s
513
- in _ if primitive?(val)
491
+ in -> { primitive?(_1) }
514
492
  y << "Content-Type: text/plain\r\n\r\n"
515
493
  y << val.to_s
516
494
  else
@@ -520,6 +498,36 @@ module Lithic
520
498
  y << "\r\n"
521
499
  end
522
500
 
501
+ # @api private
502
+ #
503
+ # @param y [Enumerator::Yielder]
504
+ # @param boundary [String]
505
+ # @param key [Symbol, String]
506
+ # @param val [Object]
507
+ # @param closing [Array<Proc>]
508
+ private def write_multipart_chunk(y, boundary:, key:, val:, closing:)
509
+ y << "--#{boundary}\r\n"
510
+ y << "Content-Disposition: form-data"
511
+
512
+ unless key.nil?
513
+ name = ERB::Util.url_encode(key.to_s)
514
+ y << "; name=\"#{name}\""
515
+ end
516
+
517
+ case val
518
+ in Lithic::FilePart unless val.filename.nil?
519
+ filename = ERB::Util.url_encode(val.filename)
520
+ y << "; filename=\"#{filename}\""
521
+ in Pathname | IO
522
+ filename = ERB::Util.url_encode(File.basename(val.to_path))
523
+ y << "; filename=\"#{filename}\""
524
+ else
525
+ end
526
+ y << "\r\n"
527
+
528
+ write_multipart_content(y, val: val, closing: closing)
529
+ end
530
+
523
531
  # @api private
524
532
  #
525
533
  # @param body [Object]
@@ -560,14 +568,12 @@ module Lithic
560
568
  # @return [Object]
561
569
  def encode_content(headers, body)
562
570
  content_type = headers["content-type"]
563
- body = body.inner if body.is_a?(Lithic::Internal::Util::SerializationAdapter)
564
-
565
571
  case [content_type, body]
566
- in [%r{^application/(?:vnd\.api\+)?json}, Hash | Array | -> { primitive?(_1) }]
572
+ in [Lithic::Internal::Util::JSON_CONTENT, Hash | Array | -> { primitive?(_1) }]
567
573
  [headers, JSON.fast_generate(body)]
568
- in [%r{^application/(?:x-)?jsonl}, Enumerable] unless body.is_a?(StringIO) || body.is_a?(IO)
574
+ in [Lithic::Internal::Util::JSONL_CONTENT, Enumerable] unless body.is_a?(Lithic::Internal::Type::FileInput)
569
575
  [headers, body.lazy.map { JSON.fast_generate(_1) }]
570
- in [%r{^multipart/form-data}, Hash | Pathname | StringIO | IO]
576
+ in [%r{^multipart/form-data}, Hash | Lithic::Internal::Type::FileInput]
571
577
  boundary, strio = encode_multipart_streaming(body)
572
578
  headers = {**headers, "content-type" => "#{content_type}; boundary=#{boundary}"}
573
579
  [headers, strio]
@@ -575,6 +581,8 @@ module Lithic
575
581
  [headers, body.to_s]
576
582
  in [_, StringIO]
577
583
  [headers, body.string]
584
+ in [_, Lithic::FilePart]
585
+ [headers, body.content]
578
586
  else
579
587
  [headers, body]
580
588
  end
@@ -611,7 +619,7 @@ module Lithic
611
619
  # @return [Object]
612
620
  def decode_content(headers, stream:, suppress_error: false)
613
621
  case (content_type = headers["content-type"])
614
- in %r{^application/(?:vnd\.api\+)?json}
622
+ in Lithic::Internal::Util::JSON_CONTENT
615
623
  json = stream.to_a.join
616
624
  begin
617
625
  JSON.parse(json, symbolize_names: true)
@@ -619,7 +627,7 @@ module Lithic
619
627
  raise e unless suppress_error
620
628
  json
621
629
  end
622
- in %r{^application/(?:x-)?jsonl}
630
+ in Lithic::Internal::Util::JSONL_CONTENT
623
631
  lines = decode_lines(stream)
624
632
  chain_fused(lines) do |y|
625
633
  lines.each { y << JSON.parse(_1, symbolize_names: true) }
@@ -73,13 +73,25 @@ module Lithic
73
73
  optional :verification_address, -> { Lithic::Models::Account::VerificationAddress }
74
74
 
75
75
  # @!method initialize(token:, created:, spend_limit:, state:, account_holder: nil, auth_rule_tokens: nil, cardholder_currency: nil, verification_address: nil)
76
- # @param token [String]
77
- # @param created [Time, nil]
78
- # @param spend_limit [Lithic::Models::Account::SpendLimit]
79
- # @param state [Symbol, Lithic::Models::Account::State]
76
+ # Some parameter documentations has been truncated, see {Lithic::Models::Account}
77
+ # for more details.
78
+ #
79
+ # @param token [String] Globally unique identifier for the account. This is the same as the account_toke
80
+ # ...
81
+ #
82
+ # @param created [Time, nil] Timestamp of when the account was created.
83
+ #
84
+ # @param spend_limit [Lithic::Models::Account::SpendLimit] Spend limit information for the user containing the daily, monthly, and lifetime
85
+ # ...
86
+ #
87
+ # @param state [Symbol, Lithic::Models::Account::State] Account state: ...
88
+ #
80
89
  # @param account_holder [Lithic::Models::Account::AccountHolder]
81
- # @param auth_rule_tokens [Array<String>]
82
- # @param cardholder_currency [String]
90
+ #
91
+ # @param auth_rule_tokens [Array<String>] List of identifiers for the Auth Rule(s) that are applied on the account. ...
92
+ #
93
+ # @param cardholder_currency [String] 3-character alphabetic ISO 4217 code for the currency of the cardholder.
94
+ #
83
95
  # @param verification_address [Lithic::Models::Account::VerificationAddress]
84
96
 
85
97
  # @see Lithic::Models::Account#spend_limit
@@ -109,9 +121,11 @@ module Lithic
109
121
  # time limit (rolling). A lifetime limit of 0 indicates that the lifetime limit
110
122
  # feature is disabled.
111
123
  #
112
- # @param daily [Integer]
113
- # @param lifetime [Integer]
114
- # @param monthly [Integer]
124
+ # @param daily [Integer] Daily spend limit (in cents).
125
+ #
126
+ # @param lifetime [Integer] Total spend limit over account lifetime (in cents).
127
+ #
128
+ # @param monthly [Integer] Monthly spend limit (in cents).
115
129
  end
116
130
 
117
131
  # Account state:
@@ -167,10 +181,17 @@ module Lithic
167
181
  required :phone_number, String
168
182
 
169
183
  # @!method initialize(token:, business_account_token:, email:, phone_number:)
170
- # @param token [String]
171
- # @param business_account_token [String]
172
- # @param email [String]
173
- # @param phone_number [String]
184
+ # Some parameter documentations has been truncated, see
185
+ # {Lithic::Models::Account::AccountHolder} for more details.
186
+ #
187
+ # @param token [String] Globally unique identifier for the account holder.
188
+ #
189
+ # @param business_account_token [String] Only applicable for customers using the KYC-Exempt workflow to enroll authorized
190
+ # ...
191
+ #
192
+ # @param email [String] Email address.
193
+ #
194
+ # @param phone_number [String] Phone number of the individual.
174
195
  end
175
196
 
176
197
  # @deprecated
@@ -217,12 +238,22 @@ module Lithic
217
238
  optional :address2, String
218
239
 
219
240
  # @!method initialize(address1:, city:, country:, postal_code:, state:, address2: nil)
220
- # @param address1 [String]
221
- # @param city [String]
222
- # @param country [String]
223
- # @param postal_code [String]
224
- # @param state [String]
225
- # @param address2 [String]
241
+ # Some parameter documentations has been truncated, see
242
+ # {Lithic::Models::Account::VerificationAddress} for more details.
243
+ #
244
+ # @param address1 [String] Valid deliverable address (no PO boxes).
245
+ #
246
+ # @param city [String] City name.
247
+ #
248
+ # @param country [String] Country name. Only USA is currently supported.
249
+ #
250
+ # @param postal_code [String] Valid postal code. Only USA postal codes (ZIP codes) are currently supported, en
251
+ # ...
252
+ #
253
+ # @param state [String] Valid state code. Only USA state codes are currently supported, entered in upper
254
+ # ...
255
+ #
256
+ # @param address2 [String] Unit or apartment number (if applicable).
226
257
  end
227
258
  end
228
259
  end