lithic 0.1.0.pre.alpha.1 → 0.1.0.pre.alpha.2

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 (554) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -8
  3. data/lib/lithic/client.rb +1 -1
  4. data/lib/lithic/cursor_page.rb +3 -3
  5. data/lib/lithic/models/account_holder_create_params.rb +1 -1
  6. data/lib/lithic/models/account_holder_list_documents_params.rb +1 -1
  7. data/lib/lithic/models/account_holder_list_params.rb +1 -1
  8. data/lib/lithic/models/account_holder_retrieve_document_params.rb +1 -1
  9. data/lib/lithic/models/account_holder_retrieve_params.rb +1 -1
  10. data/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rb +1 -1
  11. data/lib/lithic/models/account_holder_simulate_enrollment_review_params.rb +1 -1
  12. data/lib/lithic/models/account_holder_update_params.rb +1 -1
  13. data/lib/lithic/models/account_holder_upload_document_params.rb +1 -1
  14. data/lib/lithic/models/account_list_params.rb +1 -1
  15. data/lib/lithic/models/account_retrieve_params.rb +1 -1
  16. data/lib/lithic/models/account_retrieve_spend_limits_params.rb +1 -1
  17. data/lib/lithic/models/account_update_params.rb +1 -1
  18. data/lib/lithic/models/aggregate_balance_list_params.rb +1 -1
  19. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +3 -3
  20. data/lib/lithic/models/auth_rules/v2/backtest_create_params.rb +1 -1
  21. data/lib/lithic/models/auth_rules/v2/backtest_retrieve_params.rb +1 -1
  22. data/lib/lithic/models/auth_rules/v2_apply_params.rb +1 -1
  23. data/lib/lithic/models/auth_rules/v2_create_params.rb +1 -1
  24. data/lib/lithic/models/auth_rules/v2_delete_params.rb +1 -1
  25. data/lib/lithic/models/auth_rules/v2_draft_params.rb +1 -1
  26. data/lib/lithic/models/auth_rules/v2_list_params.rb +1 -1
  27. data/lib/lithic/models/auth_rules/v2_promote_params.rb +1 -1
  28. data/lib/lithic/models/auth_rules/v2_report_params.rb +1 -1
  29. data/lib/lithic/models/auth_rules/v2_retrieve_params.rb +1 -1
  30. data/lib/lithic/models/auth_rules/v2_update_params.rb +1 -1
  31. data/lib/lithic/models/auth_stream_enrollment_retrieve_secret_params.rb +1 -1
  32. data/lib/lithic/models/auth_stream_enrollment_rotate_secret_params.rb +1 -1
  33. data/lib/lithic/models/balance_list_params.rb +1 -1
  34. data/lib/lithic/models/book_transfer_create_params.rb +1 -1
  35. data/lib/lithic/models/book_transfer_list_params.rb +1 -1
  36. data/lib/lithic/models/book_transfer_retrieve_params.rb +1 -1
  37. data/lib/lithic/models/book_transfer_reverse_params.rb +1 -1
  38. data/lib/lithic/models/card_convert_physical_params.rb +1 -1
  39. data/lib/lithic/models/card_create_params.rb +1 -1
  40. data/lib/lithic/models/card_embed_params.rb +1 -1
  41. data/lib/lithic/models/card_list_params.rb +1 -1
  42. data/lib/lithic/models/card_program_list_params.rb +1 -1
  43. data/lib/lithic/models/card_program_retrieve_params.rb +1 -1
  44. data/lib/lithic/models/card_provision_params.rb +1 -1
  45. data/lib/lithic/models/card_reissue_params.rb +1 -1
  46. data/lib/lithic/models/card_renew_params.rb +1 -1
  47. data/lib/lithic/models/card_retrieve_params.rb +1 -1
  48. data/lib/lithic/models/card_retrieve_spend_limits_params.rb +1 -1
  49. data/lib/lithic/models/card_search_by_pan_params.rb +1 -1
  50. data/lib/lithic/models/card_update_params.rb +1 -1
  51. data/lib/lithic/models/cards/aggregate_balance_list_params.rb +1 -1
  52. data/lib/lithic/models/cards/balance_list_params.rb +1 -1
  53. data/lib/lithic/models/cards/financial_transaction_list_params.rb +1 -1
  54. data/lib/lithic/models/cards/financial_transaction_retrieve_params.rb +1 -1
  55. data/lib/lithic/models/client_api_status_params.rb +1 -1
  56. data/lib/lithic/models/credit_products/extended_credit_retrieve_params.rb +1 -1
  57. data/lib/lithic/models/credit_products/prime_rate_create_params.rb +1 -1
  58. data/lib/lithic/models/credit_products/prime_rate_retrieve_params.rb +1 -1
  59. data/lib/lithic/models/digital_card_art_list_params.rb +1 -1
  60. data/lib/lithic/models/digital_card_art_retrieve_params.rb +1 -1
  61. data/lib/lithic/models/dispute_create_params.rb +1 -1
  62. data/lib/lithic/models/dispute_delete_evidence_params.rb +1 -1
  63. data/lib/lithic/models/dispute_delete_params.rb +1 -1
  64. data/lib/lithic/models/dispute_initiate_evidence_upload_params.rb +1 -1
  65. data/lib/lithic/models/dispute_list_evidences_params.rb +1 -1
  66. data/lib/lithic/models/dispute_list_params.rb +1 -1
  67. data/lib/lithic/models/dispute_retrieve_evidence_params.rb +1 -1
  68. data/lib/lithic/models/dispute_retrieve_params.rb +1 -1
  69. data/lib/lithic/models/dispute_update_params.rb +1 -1
  70. data/lib/lithic/models/event_list_attempts_params.rb +1 -1
  71. data/lib/lithic/models/event_list_params.rb +1 -1
  72. data/lib/lithic/models/event_retrieve_params.rb +1 -1
  73. data/lib/lithic/models/events/subscription_create_params.rb +1 -1
  74. data/lib/lithic/models/events/subscription_delete_params.rb +1 -1
  75. data/lib/lithic/models/events/subscription_list_attempts_params.rb +1 -1
  76. data/lib/lithic/models/events/subscription_list_params.rb +1 -1
  77. data/lib/lithic/models/events/subscription_recover_params.rb +1 -1
  78. data/lib/lithic/models/events/subscription_replay_missing_params.rb +1 -1
  79. data/lib/lithic/models/events/subscription_retrieve_params.rb +1 -1
  80. data/lib/lithic/models/events/subscription_retrieve_secret_params.rb +1 -1
  81. data/lib/lithic/models/events/subscription_rotate_secret_params.rb +1 -1
  82. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -1
  83. data/lib/lithic/models/events/subscription_update_params.rb +1 -1
  84. data/lib/lithic/models/external_bank_account_create_params.rb +1 -1
  85. data/lib/lithic/models/external_bank_account_list_params.rb +1 -1
  86. data/lib/lithic/models/external_bank_account_retrieve_params.rb +1 -1
  87. data/lib/lithic/models/external_bank_account_retry_micro_deposits_params.rb +1 -1
  88. data/lib/lithic/models/external_bank_account_retry_prenote_params.rb +1 -1
  89. data/lib/lithic/models/external_bank_account_update_params.rb +1 -1
  90. data/lib/lithic/models/external_bank_accounts/micro_deposit_create_params.rb +1 -1
  91. data/lib/lithic/models/external_payment_cancel_params.rb +1 -1
  92. data/lib/lithic/models/external_payment_create_params.rb +1 -1
  93. data/lib/lithic/models/external_payment_list_params.rb +1 -1
  94. data/lib/lithic/models/external_payment_release_params.rb +1 -1
  95. data/lib/lithic/models/external_payment_retrieve_params.rb +1 -1
  96. data/lib/lithic/models/external_payment_reverse_params.rb +1 -1
  97. data/lib/lithic/models/external_payment_settle_params.rb +1 -1
  98. data/lib/lithic/models/financial_account_create_params.rb +1 -1
  99. data/lib/lithic/models/financial_account_list_params.rb +1 -1
  100. data/lib/lithic/models/financial_account_retrieve_params.rb +1 -1
  101. data/lib/lithic/models/financial_account_update_params.rb +1 -1
  102. data/lib/lithic/models/financial_account_update_status_params.rb +1 -1
  103. data/lib/lithic/models/financial_accounts/balance_list_params.rb +1 -1
  104. data/lib/lithic/models/financial_accounts/credit_configuration_retrieve_params.rb +1 -1
  105. data/lib/lithic/models/financial_accounts/credit_configuration_update_params.rb +1 -1
  106. data/lib/lithic/models/financial_accounts/financial_transaction_list_params.rb +1 -1
  107. data/lib/lithic/models/financial_accounts/financial_transaction_retrieve_params.rb +1 -1
  108. data/lib/lithic/models/financial_accounts/loan_tape_list_params.rb +1 -1
  109. data/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rb +1 -1
  110. data/lib/lithic/models/financial_accounts/statement_list_params.rb +1 -1
  111. data/lib/lithic/models/financial_accounts/statement_retrieve_params.rb +1 -1
  112. data/lib/lithic/models/financial_accounts/statements/line_item_list_params.rb +1 -1
  113. data/lib/lithic/models/management_operation_create_params.rb +1 -1
  114. data/lib/lithic/models/management_operation_list_params.rb +1 -1
  115. data/lib/lithic/models/management_operation_retrieve_params.rb +1 -1
  116. data/lib/lithic/models/management_operation_reverse_params.rb +1 -1
  117. data/lib/lithic/models/payment_create_params.rb +1 -1
  118. data/lib/lithic/models/payment_list_params.rb +1 -1
  119. data/lib/lithic/models/payment_retrieve_params.rb +1 -1
  120. data/lib/lithic/models/payment_retry_params.rb +1 -1
  121. data/lib/lithic/models/payment_simulate_action_params.rb +1 -1
  122. data/lib/lithic/models/payment_simulate_receipt_params.rb +1 -1
  123. data/lib/lithic/models/payment_simulate_release_params.rb +1 -1
  124. data/lib/lithic/models/payment_simulate_return_params.rb +1 -1
  125. data/lib/lithic/models/reports/settlement/network_total_list_params.rb +1 -1
  126. data/lib/lithic/models/reports/settlement/network_total_retrieve_params.rb +1 -1
  127. data/lib/lithic/models/reports/settlement_list_details_params.rb +1 -1
  128. data/lib/lithic/models/reports/settlement_summary_params.rb +1 -1
  129. data/lib/lithic/models/responder_endpoint_check_status_params.rb +1 -1
  130. data/lib/lithic/models/responder_endpoint_create_params.rb +1 -1
  131. data/lib/lithic/models/responder_endpoint_delete_params.rb +1 -1
  132. data/lib/lithic/models/three_ds/authentication_retrieve_params.rb +1 -1
  133. data/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rb +1 -1
  134. data/lib/lithic/models/three_ds/authentication_simulate_params.rb +1 -1
  135. data/lib/lithic/models/three_ds/decisioning_challenge_response_params.rb +1 -1
  136. data/lib/lithic/models/three_ds/decisioning_retrieve_secret_params.rb +1 -1
  137. data/lib/lithic/models/three_ds/decisioning_rotate_secret_params.rb +1 -1
  138. data/lib/lithic/models/tokenization_activate_params.rb +1 -1
  139. data/lib/lithic/models/tokenization_deactivate_params.rb +1 -1
  140. data/lib/lithic/models/tokenization_decisioning_retrieve_secret_params.rb +1 -1
  141. data/lib/lithic/models/tokenization_decisioning_rotate_secret_params.rb +1 -1
  142. data/lib/lithic/models/tokenization_list_params.rb +1 -1
  143. data/lib/lithic/models/tokenization_pause_params.rb +1 -1
  144. data/lib/lithic/models/tokenization_resend_activation_code_params.rb +1 -1
  145. data/lib/lithic/models/tokenization_retrieve_params.rb +1 -1
  146. data/lib/lithic/models/tokenization_simulate_params.rb +1 -1
  147. data/lib/lithic/models/tokenization_unpause_params.rb +1 -1
  148. data/lib/lithic/models/tokenization_update_digital_card_art_params.rb +1 -1
  149. data/lib/lithic/models/transaction_expire_authorization_params.rb +1 -1
  150. data/lib/lithic/models/transaction_list_params.rb +1 -1
  151. data/lib/lithic/models/transaction_retrieve_params.rb +1 -1
  152. data/lib/lithic/models/transaction_simulate_authorization_advice_params.rb +1 -1
  153. data/lib/lithic/models/transaction_simulate_authorization_params.rb +1 -1
  154. data/lib/lithic/models/transaction_simulate_clearing_params.rb +1 -1
  155. data/lib/lithic/models/transaction_simulate_credit_authorization_params.rb +1 -1
  156. data/lib/lithic/models/transaction_simulate_return_params.rb +1 -1
  157. data/lib/lithic/models/transaction_simulate_return_reversal_params.rb +1 -1
  158. data/lib/lithic/models/transaction_simulate_void_params.rb +1 -1
  159. data/lib/lithic/models/transactions/enhanced_commercial_data_retrieve_params.rb +1 -1
  160. data/lib/lithic/models/transactions/events/enhanced_commercial_data_retrieve_params.rb +1 -1
  161. data/lib/lithic/models/transfer_create_params.rb +1 -1
  162. data/lib/lithic/request_options.rb +0 -33
  163. data/lib/lithic/single_page.rb +3 -3
  164. data/lib/lithic/transport/base_client.rb +459 -0
  165. data/lib/lithic/transport/pooled_net_requester.rb +182 -0
  166. data/lib/lithic/type/array_of.rb +112 -0
  167. data/lib/lithic/type/base_model.rb +357 -0
  168. data/lib/lithic/type/base_page.rb +61 -0
  169. data/lib/lithic/type/boolean_model.rb +52 -0
  170. data/lib/lithic/type/converter.rb +217 -0
  171. data/lib/lithic/type/enum.rb +101 -0
  172. data/lib/lithic/type/hash_of.rb +132 -0
  173. data/lib/lithic/type/request_parameters.rb +38 -0
  174. data/lib/lithic/type/union.rb +196 -0
  175. data/lib/lithic/type/unknown.rb +56 -0
  176. data/lib/lithic/type.rb +23 -0
  177. data/lib/lithic/util.rb +3 -5
  178. data/lib/lithic/version.rb +1 -1
  179. data/lib/lithic.rb +29 -20
  180. data/manifest.yaml +1 -0
  181. data/rbi/lib/lithic/client.rbi +1 -1
  182. data/rbi/lib/lithic/cursor_page.rbi +1 -1
  183. data/rbi/lib/lithic/models/account_holder_create_params.rbi +1 -1
  184. data/rbi/lib/lithic/models/account_holder_create_response.rbi +9 -1
  185. data/rbi/lib/lithic/models/account_holder_list_documents_params.rbi +1 -1
  186. data/rbi/lib/lithic/models/account_holder_list_params.rbi +1 -1
  187. data/rbi/lib/lithic/models/account_holder_retrieve_document_params.rbi +1 -1
  188. data/rbi/lib/lithic/models/account_holder_retrieve_params.rbi +1 -1
  189. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rbi +1 -1
  190. data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_params.rbi +1 -1
  191. data/rbi/lib/lithic/models/account_holder_update_params.rbi +1 -1
  192. data/rbi/lib/lithic/models/account_holder_upload_document_params.rbi +1 -1
  193. data/rbi/lib/lithic/models/account_list_params.rbi +9 -2
  194. data/rbi/lib/lithic/models/account_retrieve_params.rbi +1 -1
  195. data/rbi/lib/lithic/models/account_retrieve_spend_limits_params.rbi +1 -1
  196. data/rbi/lib/lithic/models/account_update_params.rbi +1 -1
  197. data/rbi/lib/lithic/models/aggregate_balance_list_params.rbi +1 -1
  198. data/rbi/lib/lithic/models/auth_rules/auth_rule_condition.rbi +2 -2
  199. data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_params.rbi +1 -1
  200. data/rbi/lib/lithic/models/auth_rules/v2/backtest_retrieve_params.rbi +1 -1
  201. data/rbi/lib/lithic/models/auth_rules/v2_apply_params.rbi +8 -2
  202. data/rbi/lib/lithic/models/auth_rules/v2_create_params.rbi +1 -1
  203. data/rbi/lib/lithic/models/auth_rules/v2_delete_params.rbi +1 -1
  204. data/rbi/lib/lithic/models/auth_rules/v2_draft_params.rbi +1 -1
  205. data/rbi/lib/lithic/models/auth_rules/v2_list_params.rbi +1 -1
  206. data/rbi/lib/lithic/models/auth_rules/v2_promote_params.rbi +1 -1
  207. data/rbi/lib/lithic/models/auth_rules/v2_report_params.rbi +1 -1
  208. data/rbi/lib/lithic/models/auth_rules/v2_retrieve_params.rbi +1 -1
  209. data/rbi/lib/lithic/models/auth_rules/v2_update_params.rbi +1 -1
  210. data/rbi/lib/lithic/models/auth_stream_enrollment_retrieve_secret_params.rbi +1 -1
  211. data/rbi/lib/lithic/models/auth_stream_enrollment_rotate_secret_params.rbi +1 -1
  212. data/rbi/lib/lithic/models/balance_list_params.rbi +1 -1
  213. data/rbi/lib/lithic/models/book_transfer_create_params.rbi +1 -1
  214. data/rbi/lib/lithic/models/book_transfer_list_params.rbi +1 -1
  215. data/rbi/lib/lithic/models/book_transfer_retrieve_params.rbi +1 -1
  216. data/rbi/lib/lithic/models/book_transfer_reverse_params.rbi +1 -1
  217. data/rbi/lib/lithic/models/card_convert_physical_params.rbi +8 -2
  218. data/rbi/lib/lithic/models/card_create_params.rbi +1 -1
  219. data/rbi/lib/lithic/models/card_embed_params.rbi +1 -1
  220. data/rbi/lib/lithic/models/card_list_params.rbi +1 -1
  221. data/rbi/lib/lithic/models/card_program_list_params.rbi +1 -1
  222. data/rbi/lib/lithic/models/card_program_retrieve_params.rbi +1 -1
  223. data/rbi/lib/lithic/models/card_provision_params.rbi +1 -1
  224. data/rbi/lib/lithic/models/card_reissue_params.rbi +8 -2
  225. data/rbi/lib/lithic/models/card_renew_params.rbi +1 -1
  226. data/rbi/lib/lithic/models/card_retrieve_params.rbi +1 -1
  227. data/rbi/lib/lithic/models/card_retrieve_spend_limits_params.rbi +1 -1
  228. data/rbi/lib/lithic/models/card_search_by_pan_params.rbi +1 -1
  229. data/rbi/lib/lithic/models/card_update_params.rbi +1 -1
  230. data/rbi/lib/lithic/models/cards/aggregate_balance_list_params.rbi +1 -1
  231. data/rbi/lib/lithic/models/cards/balance_list_params.rbi +1 -1
  232. data/rbi/lib/lithic/models/cards/financial_transaction_list_params.rbi +1 -1
  233. data/rbi/lib/lithic/models/cards/financial_transaction_retrieve_params.rbi +1 -1
  234. data/rbi/lib/lithic/models/client_api_status_params.rbi +1 -1
  235. data/rbi/lib/lithic/models/credit_products/extended_credit_retrieve_params.rbi +1 -1
  236. data/rbi/lib/lithic/models/credit_products/prime_rate_create_params.rbi +1 -1
  237. data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_params.rbi +1 -1
  238. data/rbi/lib/lithic/models/digital_card_art.rbi +9 -1
  239. data/rbi/lib/lithic/models/digital_card_art_list_params.rbi +1 -1
  240. data/rbi/lib/lithic/models/digital_card_art_retrieve_params.rbi +1 -1
  241. data/rbi/lib/lithic/models/dispute_create_params.rbi +9 -2
  242. data/rbi/lib/lithic/models/dispute_delete_evidence_params.rbi +1 -1
  243. data/rbi/lib/lithic/models/dispute_delete_params.rbi +1 -1
  244. data/rbi/lib/lithic/models/dispute_evidence.rbi +9 -1
  245. data/rbi/lib/lithic/models/dispute_initiate_evidence_upload_params.rbi +1 -1
  246. data/rbi/lib/lithic/models/dispute_list_evidences_params.rbi +9 -2
  247. data/rbi/lib/lithic/models/dispute_list_params.rbi +1 -1
  248. data/rbi/lib/lithic/models/dispute_retrieve_evidence_params.rbi +1 -1
  249. data/rbi/lib/lithic/models/dispute_retrieve_params.rbi +1 -1
  250. data/rbi/lib/lithic/models/dispute_update_params.rbi +8 -2
  251. data/rbi/lib/lithic/models/event_list_attempts_params.rbi +1 -1
  252. data/rbi/lib/lithic/models/event_list_params.rbi +1 -1
  253. data/rbi/lib/lithic/models/event_retrieve_params.rbi +1 -1
  254. data/rbi/lib/lithic/models/events/subscription_create_params.rbi +1 -1
  255. data/rbi/lib/lithic/models/events/subscription_delete_params.rbi +1 -1
  256. data/rbi/lib/lithic/models/events/subscription_list_attempts_params.rbi +1 -1
  257. data/rbi/lib/lithic/models/events/subscription_list_params.rbi +1 -1
  258. data/rbi/lib/lithic/models/events/subscription_recover_params.rbi +1 -1
  259. data/rbi/lib/lithic/models/events/subscription_replay_missing_params.rbi +1 -1
  260. data/rbi/lib/lithic/models/events/subscription_retrieve_params.rbi +1 -1
  261. data/rbi/lib/lithic/models/events/subscription_retrieve_secret_params.rbi +1 -1
  262. data/rbi/lib/lithic/models/events/subscription_rotate_secret_params.rbi +1 -1
  263. data/rbi/lib/lithic/models/events/subscription_send_simulated_example_params.rbi +1 -1
  264. data/rbi/lib/lithic/models/events/subscription_update_params.rbi +1 -1
  265. data/rbi/lib/lithic/models/external_bank_account_create_params.rbi +1 -1
  266. data/rbi/lib/lithic/models/external_bank_account_list_params.rbi +1 -1
  267. data/rbi/lib/lithic/models/external_bank_account_retrieve_params.rbi +1 -1
  268. data/rbi/lib/lithic/models/external_bank_account_retry_micro_deposits_params.rbi +1 -1
  269. data/rbi/lib/lithic/models/external_bank_account_retry_prenote_params.rbi +1 -1
  270. data/rbi/lib/lithic/models/external_bank_account_update_params.rbi +1 -1
  271. data/rbi/lib/lithic/models/external_bank_accounts/micro_deposit_create_params.rbi +1 -1
  272. data/rbi/lib/lithic/models/external_payment_cancel_params.rbi +1 -1
  273. data/rbi/lib/lithic/models/external_payment_create_params.rbi +1 -1
  274. data/rbi/lib/lithic/models/external_payment_list_params.rbi +1 -1
  275. data/rbi/lib/lithic/models/external_payment_release_params.rbi +1 -1
  276. data/rbi/lib/lithic/models/external_payment_retrieve_params.rbi +1 -1
  277. data/rbi/lib/lithic/models/external_payment_reverse_params.rbi +1 -1
  278. data/rbi/lib/lithic/models/external_payment_settle_params.rbi +1 -1
  279. data/rbi/lib/lithic/models/financial_account_create_params.rbi +9 -2
  280. data/rbi/lib/lithic/models/financial_account_list_params.rbi +1 -1
  281. data/rbi/lib/lithic/models/financial_account_retrieve_params.rbi +1 -1
  282. data/rbi/lib/lithic/models/financial_account_update_params.rbi +1 -1
  283. data/rbi/lib/lithic/models/financial_account_update_status_params.rbi +1 -1
  284. data/rbi/lib/lithic/models/financial_accounts/balance_list_params.rbi +1 -1
  285. data/rbi/lib/lithic/models/financial_accounts/credit_configuration_retrieve_params.rbi +1 -1
  286. data/rbi/lib/lithic/models/financial_accounts/credit_configuration_update_params.rbi +1 -1
  287. data/rbi/lib/lithic/models/financial_accounts/financial_transaction_list_params.rbi +1 -1
  288. data/rbi/lib/lithic/models/financial_accounts/financial_transaction_retrieve_params.rbi +1 -1
  289. data/rbi/lib/lithic/models/financial_accounts/loan_tape_list_params.rbi +9 -2
  290. data/rbi/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rbi +1 -1
  291. data/rbi/lib/lithic/models/financial_accounts/statement_list_params.rbi +1 -1
  292. data/rbi/lib/lithic/models/financial_accounts/statement_retrieve_params.rbi +1 -1
  293. data/rbi/lib/lithic/models/financial_accounts/statements/line_item_list_params.rbi +8 -2
  294. data/rbi/lib/lithic/models/management_operation_create_params.rbi +1 -1
  295. data/rbi/lib/lithic/models/management_operation_list_params.rbi +1 -1
  296. data/rbi/lib/lithic/models/management_operation_retrieve_params.rbi +1 -1
  297. data/rbi/lib/lithic/models/management_operation_reverse_params.rbi +1 -1
  298. data/rbi/lib/lithic/models/management_operation_transaction.rbi +11 -1
  299. data/rbi/lib/lithic/models/message_attempt.rbi +10 -1
  300. data/rbi/lib/lithic/models/payment.rbi +8 -1
  301. data/rbi/lib/lithic/models/payment_create_params.rbi +1 -1
  302. data/rbi/lib/lithic/models/payment_list_params.rbi +1 -1
  303. data/rbi/lib/lithic/models/payment_retrieve_params.rbi +1 -1
  304. data/rbi/lib/lithic/models/payment_retry_params.rbi +1 -1
  305. data/rbi/lib/lithic/models/payment_simulate_action_params.rbi +1 -1
  306. data/rbi/lib/lithic/models/payment_simulate_receipt_params.rbi +1 -1
  307. data/rbi/lib/lithic/models/payment_simulate_release_params.rbi +1 -1
  308. data/rbi/lib/lithic/models/payment_simulate_return_params.rbi +1 -1
  309. data/rbi/lib/lithic/models/reports/settlement/network_total_list_params.rbi +1 -1
  310. data/rbi/lib/lithic/models/reports/settlement/network_total_retrieve_params.rbi +1 -1
  311. data/rbi/lib/lithic/models/reports/settlement_list_details_params.rbi +1 -1
  312. data/rbi/lib/lithic/models/reports/settlement_summary_params.rbi +1 -1
  313. data/rbi/lib/lithic/models/responder_endpoint_check_status_params.rbi +1 -1
  314. data/rbi/lib/lithic/models/responder_endpoint_create_params.rbi +1 -1
  315. data/rbi/lib/lithic/models/responder_endpoint_delete_params.rbi +1 -1
  316. data/rbi/lib/lithic/models/three_ds/authentication_retrieve_params.rbi +1 -1
  317. data/rbi/lib/lithic/models/three_ds/authentication_retrieve_response.rbi +24 -3
  318. data/rbi/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rbi +1 -1
  319. data/rbi/lib/lithic/models/three_ds/authentication_simulate_params.rbi +1 -1
  320. data/rbi/lib/lithic/models/three_ds/decisioning_challenge_response_params.rbi +1 -1
  321. data/rbi/lib/lithic/models/three_ds/decisioning_retrieve_secret_params.rbi +1 -1
  322. data/rbi/lib/lithic/models/three_ds/decisioning_rotate_secret_params.rbi +1 -1
  323. data/rbi/lib/lithic/models/tokenization_activate_params.rbi +1 -1
  324. data/rbi/lib/lithic/models/tokenization_deactivate_params.rbi +1 -1
  325. data/rbi/lib/lithic/models/tokenization_decisioning_retrieve_secret_params.rbi +1 -1
  326. data/rbi/lib/lithic/models/tokenization_decisioning_rotate_secret_params.rbi +1 -1
  327. data/rbi/lib/lithic/models/tokenization_list_params.rbi +1 -1
  328. data/rbi/lib/lithic/models/tokenization_pause_params.rbi +1 -1
  329. data/rbi/lib/lithic/models/tokenization_resend_activation_code_params.rbi +1 -1
  330. data/rbi/lib/lithic/models/tokenization_retrieve_params.rbi +1 -1
  331. data/rbi/lib/lithic/models/tokenization_simulate_params.rbi +1 -1
  332. data/rbi/lib/lithic/models/tokenization_unpause_params.rbi +1 -1
  333. data/rbi/lib/lithic/models/tokenization_update_digital_card_art_params.rbi +1 -1
  334. data/rbi/lib/lithic/models/transaction_expire_authorization_params.rbi +1 -1
  335. data/rbi/lib/lithic/models/transaction_list_params.rbi +1 -1
  336. data/rbi/lib/lithic/models/transaction_retrieve_params.rbi +1 -1
  337. data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_params.rbi +1 -1
  338. data/rbi/lib/lithic/models/transaction_simulate_authorization_params.rbi +1 -1
  339. data/rbi/lib/lithic/models/transaction_simulate_clearing_params.rbi +1 -1
  340. data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_params.rbi +1 -1
  341. data/rbi/lib/lithic/models/transaction_simulate_return_params.rbi +1 -1
  342. data/rbi/lib/lithic/models/transaction_simulate_return_reversal_params.rbi +1 -1
  343. data/rbi/lib/lithic/models/transaction_simulate_void_params.rbi +1 -1
  344. data/rbi/lib/lithic/models/transactions/enhanced_commercial_data_retrieve_params.rbi +1 -1
  345. data/rbi/lib/lithic/models/transactions/events/enhanced_commercial_data_retrieve_params.rbi +1 -1
  346. data/rbi/lib/lithic/models/transactions/events/enhanced_data.rbi +15 -2
  347. data/rbi/lib/lithic/models/transfer_create_params.rbi +1 -1
  348. data/rbi/lib/lithic/request_options.rbi +0 -15
  349. data/rbi/lib/lithic/single_page.rbi +1 -1
  350. data/rbi/lib/lithic/transport/base_client.rbi +204 -0
  351. data/rbi/lib/lithic/transport/pooled_net_requester.rbi +64 -0
  352. data/rbi/lib/lithic/type/array_of.rbi +82 -0
  353. data/rbi/lib/lithic/type/base_model.rbi +189 -0
  354. data/rbi/lib/lithic/type/base_page.rbi +38 -0
  355. data/rbi/lib/lithic/type/boolean_model.rbi +41 -0
  356. data/rbi/lib/lithic/type/converter.rbi +99 -0
  357. data/rbi/lib/lithic/type/enum.rbi +58 -0
  358. data/rbi/lib/lithic/type/hash_of.rbi +86 -0
  359. data/rbi/lib/lithic/type/request_parameters.rbi +20 -0
  360. data/rbi/lib/lithic/type/union.rbi +66 -0
  361. data/rbi/lib/lithic/type/unknown.rbi +37 -0
  362. data/rbi/lib/lithic/type.rbi +23 -0
  363. data/rbi/lib/lithic/version.rbi +1 -1
  364. data/sig/lithic/client.rbs +1 -1
  365. data/sig/lithic/cursor_page.rbs +1 -1
  366. data/sig/lithic/models/account_holder_create_params.rbs +1 -1
  367. data/sig/lithic/models/account_holder_list_documents_params.rbs +1 -1
  368. data/sig/lithic/models/account_holder_list_params.rbs +1 -1
  369. data/sig/lithic/models/account_holder_retrieve_document_params.rbs +1 -1
  370. data/sig/lithic/models/account_holder_retrieve_params.rbs +1 -1
  371. data/sig/lithic/models/account_holder_simulate_enrollment_document_review_params.rbs +1 -1
  372. data/sig/lithic/models/account_holder_simulate_enrollment_review_params.rbs +1 -1
  373. data/sig/lithic/models/account_holder_update_params.rbs +1 -1
  374. data/sig/lithic/models/account_holder_upload_document_params.rbs +1 -1
  375. data/sig/lithic/models/account_list_params.rbs +1 -1
  376. data/sig/lithic/models/account_retrieve_params.rbs +1 -1
  377. data/sig/lithic/models/account_retrieve_spend_limits_params.rbs +1 -1
  378. data/sig/lithic/models/account_update_params.rbs +1 -1
  379. data/sig/lithic/models/aggregate_balance_list_params.rbs +1 -1
  380. data/sig/lithic/models/auth_rules/auth_rule_condition.rbs +2 -2
  381. data/sig/lithic/models/auth_rules/v2/backtest_create_params.rbs +1 -1
  382. data/sig/lithic/models/auth_rules/v2/backtest_retrieve_params.rbs +1 -1
  383. data/sig/lithic/models/auth_rules/v2_apply_params.rbs +1 -1
  384. data/sig/lithic/models/auth_rules/v2_create_params.rbs +1 -1
  385. data/sig/lithic/models/auth_rules/v2_delete_params.rbs +1 -1
  386. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +1 -1
  387. data/sig/lithic/models/auth_rules/v2_list_params.rbs +1 -1
  388. data/sig/lithic/models/auth_rules/v2_promote_params.rbs +1 -1
  389. data/sig/lithic/models/auth_rules/v2_report_params.rbs +1 -1
  390. data/sig/lithic/models/auth_rules/v2_retrieve_params.rbs +1 -1
  391. data/sig/lithic/models/auth_rules/v2_update_params.rbs +1 -1
  392. data/sig/lithic/models/auth_stream_enrollment_retrieve_secret_params.rbs +1 -1
  393. data/sig/lithic/models/auth_stream_enrollment_rotate_secret_params.rbs +1 -1
  394. data/sig/lithic/models/balance_list_params.rbs +1 -1
  395. data/sig/lithic/models/book_transfer_create_params.rbs +1 -1
  396. data/sig/lithic/models/book_transfer_list_params.rbs +1 -1
  397. data/sig/lithic/models/book_transfer_retrieve_params.rbs +1 -1
  398. data/sig/lithic/models/book_transfer_reverse_params.rbs +1 -1
  399. data/sig/lithic/models/card_convert_physical_params.rbs +1 -1
  400. data/sig/lithic/models/card_create_params.rbs +1 -1
  401. data/sig/lithic/models/card_embed_params.rbs +1 -1
  402. data/sig/lithic/models/card_list_params.rbs +1 -1
  403. data/sig/lithic/models/card_program_list_params.rbs +1 -1
  404. data/sig/lithic/models/card_program_retrieve_params.rbs +1 -1
  405. data/sig/lithic/models/card_provision_params.rbs +1 -1
  406. data/sig/lithic/models/card_reissue_params.rbs +1 -1
  407. data/sig/lithic/models/card_renew_params.rbs +1 -1
  408. data/sig/lithic/models/card_retrieve_params.rbs +1 -1
  409. data/sig/lithic/models/card_retrieve_spend_limits_params.rbs +1 -1
  410. data/sig/lithic/models/card_search_by_pan_params.rbs +1 -1
  411. data/sig/lithic/models/card_update_params.rbs +1 -1
  412. data/sig/lithic/models/cards/aggregate_balance_list_params.rbs +1 -1
  413. data/sig/lithic/models/cards/balance_list_params.rbs +1 -1
  414. data/sig/lithic/models/cards/financial_transaction_list_params.rbs +1 -1
  415. data/sig/lithic/models/cards/financial_transaction_retrieve_params.rbs +1 -1
  416. data/sig/lithic/models/client_api_status_params.rbs +1 -1
  417. data/sig/lithic/models/credit_products/extended_credit_retrieve_params.rbs +1 -1
  418. data/sig/lithic/models/credit_products/prime_rate_create_params.rbs +1 -1
  419. data/sig/lithic/models/credit_products/prime_rate_retrieve_params.rbs +1 -1
  420. data/sig/lithic/models/digital_card_art_list_params.rbs +1 -1
  421. data/sig/lithic/models/digital_card_art_retrieve_params.rbs +1 -1
  422. data/sig/lithic/models/dispute_create_params.rbs +1 -1
  423. data/sig/lithic/models/dispute_delete_evidence_params.rbs +1 -1
  424. data/sig/lithic/models/dispute_delete_params.rbs +1 -1
  425. data/sig/lithic/models/dispute_initiate_evidence_upload_params.rbs +1 -1
  426. data/sig/lithic/models/dispute_list_evidences_params.rbs +1 -1
  427. data/sig/lithic/models/dispute_list_params.rbs +1 -1
  428. data/sig/lithic/models/dispute_retrieve_evidence_params.rbs +1 -1
  429. data/sig/lithic/models/dispute_retrieve_params.rbs +1 -1
  430. data/sig/lithic/models/dispute_update_params.rbs +1 -1
  431. data/sig/lithic/models/event_list_attempts_params.rbs +1 -1
  432. data/sig/lithic/models/event_list_params.rbs +1 -1
  433. data/sig/lithic/models/event_retrieve_params.rbs +1 -1
  434. data/sig/lithic/models/events/subscription_create_params.rbs +1 -1
  435. data/sig/lithic/models/events/subscription_delete_params.rbs +1 -1
  436. data/sig/lithic/models/events/subscription_list_attempts_params.rbs +1 -1
  437. data/sig/lithic/models/events/subscription_list_params.rbs +1 -1
  438. data/sig/lithic/models/events/subscription_recover_params.rbs +1 -1
  439. data/sig/lithic/models/events/subscription_replay_missing_params.rbs +1 -1
  440. data/sig/lithic/models/events/subscription_retrieve_params.rbs +1 -1
  441. data/sig/lithic/models/events/subscription_retrieve_secret_params.rbs +1 -1
  442. data/sig/lithic/models/events/subscription_rotate_secret_params.rbs +1 -1
  443. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +1 -1
  444. data/sig/lithic/models/events/subscription_update_params.rbs +1 -1
  445. data/sig/lithic/models/external_bank_account_create_params.rbs +1 -1
  446. data/sig/lithic/models/external_bank_account_list_params.rbs +1 -1
  447. data/sig/lithic/models/external_bank_account_retrieve_params.rbs +1 -1
  448. data/sig/lithic/models/external_bank_account_retry_micro_deposits_params.rbs +1 -1
  449. data/sig/lithic/models/external_bank_account_retry_prenote_params.rbs +1 -1
  450. data/sig/lithic/models/external_bank_account_update_params.rbs +1 -1
  451. data/sig/lithic/models/external_bank_accounts/micro_deposit_create_params.rbs +1 -1
  452. data/sig/lithic/models/external_payment_cancel_params.rbs +1 -1
  453. data/sig/lithic/models/external_payment_create_params.rbs +1 -1
  454. data/sig/lithic/models/external_payment_list_params.rbs +1 -1
  455. data/sig/lithic/models/external_payment_release_params.rbs +1 -1
  456. data/sig/lithic/models/external_payment_retrieve_params.rbs +1 -1
  457. data/sig/lithic/models/external_payment_reverse_params.rbs +1 -1
  458. data/sig/lithic/models/external_payment_settle_params.rbs +1 -1
  459. data/sig/lithic/models/financial_account_create_params.rbs +1 -1
  460. data/sig/lithic/models/financial_account_list_params.rbs +1 -1
  461. data/sig/lithic/models/financial_account_retrieve_params.rbs +1 -1
  462. data/sig/lithic/models/financial_account_update_params.rbs +1 -1
  463. data/sig/lithic/models/financial_account_update_status_params.rbs +1 -1
  464. data/sig/lithic/models/financial_accounts/balance_list_params.rbs +1 -1
  465. data/sig/lithic/models/financial_accounts/credit_configuration_retrieve_params.rbs +1 -1
  466. data/sig/lithic/models/financial_accounts/credit_configuration_update_params.rbs +1 -1
  467. data/sig/lithic/models/financial_accounts/financial_transaction_list_params.rbs +1 -1
  468. data/sig/lithic/models/financial_accounts/financial_transaction_retrieve_params.rbs +1 -1
  469. data/sig/lithic/models/financial_accounts/loan_tape_list_params.rbs +1 -1
  470. data/sig/lithic/models/financial_accounts/loan_tape_retrieve_params.rbs +1 -1
  471. data/sig/lithic/models/financial_accounts/statement_list_params.rbs +1 -1
  472. data/sig/lithic/models/financial_accounts/statement_retrieve_params.rbs +1 -1
  473. data/sig/lithic/models/financial_accounts/statements/line_item_list_params.rbs +1 -1
  474. data/sig/lithic/models/management_operation_create_params.rbs +1 -1
  475. data/sig/lithic/models/management_operation_list_params.rbs +1 -1
  476. data/sig/lithic/models/management_operation_retrieve_params.rbs +1 -1
  477. data/sig/lithic/models/management_operation_reverse_params.rbs +1 -1
  478. data/sig/lithic/models/payment_create_params.rbs +1 -1
  479. data/sig/lithic/models/payment_list_params.rbs +1 -1
  480. data/sig/lithic/models/payment_retrieve_params.rbs +1 -1
  481. data/sig/lithic/models/payment_retry_params.rbs +1 -1
  482. data/sig/lithic/models/payment_simulate_action_params.rbs +1 -1
  483. data/sig/lithic/models/payment_simulate_receipt_params.rbs +1 -1
  484. data/sig/lithic/models/payment_simulate_release_params.rbs +1 -1
  485. data/sig/lithic/models/payment_simulate_return_params.rbs +1 -1
  486. data/sig/lithic/models/reports/settlement/network_total_list_params.rbs +1 -1
  487. data/sig/lithic/models/reports/settlement/network_total_retrieve_params.rbs +1 -1
  488. data/sig/lithic/models/reports/settlement_list_details_params.rbs +1 -1
  489. data/sig/lithic/models/reports/settlement_summary_params.rbs +1 -1
  490. data/sig/lithic/models/responder_endpoint_check_status_params.rbs +1 -1
  491. data/sig/lithic/models/responder_endpoint_create_params.rbs +1 -1
  492. data/sig/lithic/models/responder_endpoint_delete_params.rbs +1 -1
  493. data/sig/lithic/models/three_ds/authentication_retrieve_params.rbs +1 -1
  494. data/sig/lithic/models/three_ds/authentication_simulate_otp_entry_params.rbs +1 -1
  495. data/sig/lithic/models/three_ds/authentication_simulate_params.rbs +1 -1
  496. data/sig/lithic/models/three_ds/decisioning_challenge_response_params.rbs +1 -1
  497. data/sig/lithic/models/three_ds/decisioning_retrieve_secret_params.rbs +1 -1
  498. data/sig/lithic/models/three_ds/decisioning_rotate_secret_params.rbs +1 -1
  499. data/sig/lithic/models/tokenization_activate_params.rbs +1 -1
  500. data/sig/lithic/models/tokenization_deactivate_params.rbs +1 -1
  501. data/sig/lithic/models/tokenization_decisioning_retrieve_secret_params.rbs +1 -1
  502. data/sig/lithic/models/tokenization_decisioning_rotate_secret_params.rbs +1 -1
  503. data/sig/lithic/models/tokenization_list_params.rbs +1 -1
  504. data/sig/lithic/models/tokenization_pause_params.rbs +1 -1
  505. data/sig/lithic/models/tokenization_resend_activation_code_params.rbs +1 -1
  506. data/sig/lithic/models/tokenization_retrieve_params.rbs +1 -1
  507. data/sig/lithic/models/tokenization_simulate_params.rbs +1 -1
  508. data/sig/lithic/models/tokenization_unpause_params.rbs +1 -1
  509. data/sig/lithic/models/tokenization_update_digital_card_art_params.rbs +1 -1
  510. data/sig/lithic/models/transaction_expire_authorization_params.rbs +1 -1
  511. data/sig/lithic/models/transaction_list_params.rbs +1 -1
  512. data/sig/lithic/models/transaction_retrieve_params.rbs +1 -1
  513. data/sig/lithic/models/transaction_simulate_authorization_advice_params.rbs +1 -1
  514. data/sig/lithic/models/transaction_simulate_authorization_params.rbs +1 -1
  515. data/sig/lithic/models/transaction_simulate_clearing_params.rbs +1 -1
  516. data/sig/lithic/models/transaction_simulate_credit_authorization_params.rbs +1 -1
  517. data/sig/lithic/models/transaction_simulate_return_params.rbs +1 -1
  518. data/sig/lithic/models/transaction_simulate_return_reversal_params.rbs +1 -1
  519. data/sig/lithic/models/transaction_simulate_void_params.rbs +1 -1
  520. data/sig/lithic/models/transactions/enhanced_commercial_data_retrieve_params.rbs +1 -1
  521. data/sig/lithic/models/transactions/events/enhanced_commercial_data_retrieve_params.rbs +1 -1
  522. data/sig/lithic/models/transfer_create_params.rbs +1 -1
  523. data/sig/lithic/request_options.rbs +0 -10
  524. data/sig/lithic/single_page.rbs +1 -1
  525. data/sig/lithic/transport/base_client.rbs +110 -0
  526. data/sig/lithic/transport/pooled_net_requester.rbs +39 -0
  527. data/sig/lithic/type/array_of.rbs +36 -0
  528. data/sig/lithic/type/base_model.rbs +73 -0
  529. data/sig/lithic/type/base_page.rbs +22 -0
  530. data/sig/lithic/type/boolean_model.rbs +18 -0
  531. data/sig/lithic/type/converter.rbs +36 -0
  532. data/sig/lithic/type/enum.rbs +22 -0
  533. data/sig/lithic/type/hash_of.rbs +36 -0
  534. data/sig/lithic/type/request_parameters.rbs +13 -0
  535. data/sig/lithic/type/union.rbs +37 -0
  536. data/sig/lithic/type/unknown.rbs +15 -0
  537. data/sig/lithic/type.rbs +22 -0
  538. data/sig/lithic/version.rbs +1 -1
  539. metadata +41 -17
  540. data/lib/lithic/base_client.rb +0 -457
  541. data/lib/lithic/base_model.rb +0 -1212
  542. data/lib/lithic/base_page.rb +0 -59
  543. data/lib/lithic/extern.rb +0 -7
  544. data/lib/lithic/pooled_net_requester.rb +0 -180
  545. data/rbi/lib/lithic/base_client.rbi +0 -196
  546. data/rbi/lib/lithic/base_model.rbi +0 -640
  547. data/rbi/lib/lithic/base_page.rbi +0 -36
  548. data/rbi/lib/lithic/extern.rbi +0 -7
  549. data/rbi/lib/lithic/pooled_net_requester.rbi +0 -59
  550. data/sig/lithic/base_client.rbs +0 -106
  551. data/sig/lithic/base_model.rbs +0 -260
  552. data/sig/lithic/base_page.rbs +0 -20
  553. data/sig/lithic/extern.rbs +0 -4
  554. data/sig/lithic/pooled_net_requester.rbs +0 -37
@@ -0,0 +1,217 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Type
5
+ # rubocop:disable Metrics/ModuleLength
6
+ # @api private
7
+ module Converter
8
+ # rubocop:disable Lint/UnusedMethodArgument
9
+
10
+ # @api private
11
+ #
12
+ # @param value [Object]
13
+ #
14
+ # @param state [Hash{Symbol=>Object}] .
15
+ #
16
+ # @option state [Boolean, :strong] :strictness
17
+ #
18
+ # @option state [Hash{Symbol=>Object}] :exactness
19
+ #
20
+ # @option state [Integer] :branched
21
+ #
22
+ # @return [Object]
23
+ def coerce(value, state:) = (raise NotImplementedError)
24
+
25
+ # @api private
26
+ #
27
+ # @param value [Object]
28
+ #
29
+ # @return [Object]
30
+ def dump(value)
31
+ case value
32
+ in Array
33
+ value.map { Lithic::Unknown.dump(_1) }
34
+ in Hash
35
+ value.transform_values { Lithic::Unknown.dump(_1) }
36
+ in Lithic::BaseModel
37
+ value.class.dump(value)
38
+ else
39
+ value
40
+ end
41
+ end
42
+
43
+ # rubocop:enable Lint/UnusedMethodArgument
44
+
45
+ class << self
46
+ # @api private
47
+ #
48
+ # @param spec [Hash{Symbol=>Object}, Proc, Lithic::Type::Converter, Class] .
49
+ #
50
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
51
+ #
52
+ # @option spec [Proc] :enum
53
+ #
54
+ # @option spec [Proc] :union
55
+ #
56
+ # @option spec [Boolean] :"nil?"
57
+ #
58
+ # @return [Proc]
59
+ def type_info(spec)
60
+ case spec
61
+ in Proc
62
+ spec
63
+ in Hash
64
+ type_info(spec.slice(:const, :enum, :union).first&.last)
65
+ in true | false
66
+ -> { Lithic::BooleanModel }
67
+ in Lithic::Type::Converter | Class | Symbol
68
+ -> { spec }
69
+ in NilClass | Integer | Float
70
+ -> { spec.class }
71
+ end
72
+ end
73
+
74
+ # @api private
75
+ #
76
+ # Based on `target`, transform `value` into `target`, to the extent possible:
77
+ #
78
+ # 1. if the given `value` conforms to `target` already, return the given `value`
79
+ # 2. if it's possible and safe to convert the given `value` to `target`, then the
80
+ # converted value
81
+ # 3. otherwise, the given `value` unaltered
82
+ #
83
+ # The coercion process is subject to improvement between minor release versions.
84
+ # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
85
+ #
86
+ # @param target [Lithic::Type::Converter, Class]
87
+ #
88
+ # @param value [Object]
89
+ #
90
+ # @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`, or `:strong`. This informs the
91
+ # coercion strategy when we have to decide between multiple possible conversion
92
+ # targets:
93
+ #
94
+ # - `true`: the conversion must be exact, with minimum coercion.
95
+ # - `false`: the conversion can be approximate, with some coercion.
96
+ # - `:strong`: the conversion must be exact, with no coercion, and raise an error
97
+ # if not possible.
98
+ #
99
+ # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
100
+ # any given conversion attempt, the exactness will be updated based on how closely
101
+ # the value recursively matches the target type:
102
+ #
103
+ # - `yes`: the value can be converted to the target type with minimum coercion.
104
+ # - `maybe`: the value can be converted to the target type with some reasonable
105
+ # coercion.
106
+ # - `no`: the value cannot be converted to the target type.
107
+ #
108
+ # See implementation below for more details.
109
+ #
110
+ # @option state [Boolean, :strong] :strictness
111
+ #
112
+ # @option state [Hash{Symbol=>Object}] :exactness
113
+ #
114
+ # @option state [Integer] :branched
115
+ #
116
+ # @return [Object]
117
+ def coerce(
118
+ target,
119
+ value,
120
+ state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
121
+ )
122
+ # rubocop:disable Lint/SuppressedException
123
+ # rubocop:disable Metrics/BlockNesting
124
+ strictness, exactness = state.fetch_values(:strictness, :exactness)
125
+
126
+ case target
127
+ in Lithic::Type::Converter
128
+ return target.coerce(value, state: state)
129
+ in Class
130
+ if value.is_a?(target)
131
+ exactness[:yes] += 1
132
+ return value
133
+ end
134
+
135
+ case target
136
+ in -> { _1 <= NilClass }
137
+ exactness[value.nil? ? :yes : :maybe] += 1
138
+ return nil
139
+ in -> { _1 <= Integer }
140
+ if value.is_a?(Integer)
141
+ exactness[:yes] += 1
142
+ return value
143
+ elsif strictness == :strong
144
+ message = "no implicit conversion of #{value.class} into #{target.inspect}"
145
+ raise TypeError.new(message)
146
+ else
147
+ Kernel.then do
148
+ return Integer(value).tap { exactness[:maybe] += 1 }
149
+ rescue ArgumentError, TypeError
150
+ end
151
+ end
152
+ in -> { _1 <= Float }
153
+ if value.is_a?(Numeric)
154
+ exactness[:yes] += 1
155
+ return Float(value)
156
+ elsif strictness == :strong
157
+ message = "no implicit conversion of #{value.class} into #{target.inspect}"
158
+ raise TypeError.new(message)
159
+ else
160
+ Kernel.then do
161
+ return Float(value).tap { exactness[:maybe] += 1 }
162
+ rescue ArgumentError, TypeError
163
+ end
164
+ end
165
+ in -> { _1 <= String }
166
+ case value
167
+ in String | Symbol | Numeric
168
+ exactness[value.is_a?(Numeric) ? :maybe : :yes] += 1
169
+ return value.to_s
170
+ else
171
+ if strictness == :strong
172
+ message = "no implicit conversion of #{value.class} into #{target.inspect}"
173
+ raise TypeError.new(message)
174
+ end
175
+ end
176
+ in -> { _1 <= Date || _1 <= Time }
177
+ Kernel.then do
178
+ return target.parse(value).tap { exactness[:yes] += 1 }
179
+ rescue ArgumentError, TypeError => e
180
+ raise e if strictness == :strong
181
+ end
182
+ in -> { _1 <= IO } if value.is_a?(String)
183
+ exactness[:yes] += 1
184
+ return StringIO.new(value.b)
185
+ else
186
+ end
187
+ in Symbol
188
+ if (value.is_a?(Symbol) || value.is_a?(String)) && value.to_sym == target
189
+ exactness[:yes] += 1
190
+ return target
191
+ elsif strictness == :strong
192
+ message = "cannot convert non-matching #{value.class} into #{target.inspect}"
193
+ raise ArgumentError.new(message)
194
+ end
195
+ else
196
+ end
197
+
198
+ exactness[:no] += 1
199
+ value
200
+ # rubocop:enable Metrics/BlockNesting
201
+ # rubocop:enable Lint/SuppressedException
202
+ end
203
+
204
+ # @api private
205
+ #
206
+ # @param target [Lithic::Type::Converter, Class]
207
+ # @param value [Object]
208
+ #
209
+ # @return [Object]
210
+ def dump(target, value)
211
+ target.is_a?(Lithic::Type::Converter) ? target.dump(value) : Lithic::Unknown.dump(value)
212
+ end
213
+ end
214
+ end
215
+ # rubocop:enable Metrics/ModuleLength
216
+ end
217
+ end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Type
5
+ # @api private
6
+ #
7
+ # A value from among a specified list of options. OpenAPI enum values map to Ruby
8
+ # values in the SDK as follows:
9
+ #
10
+ # 1. boolean => true | false
11
+ # 2. integer => Integer
12
+ # 3. float => Float
13
+ # 4. string => Symbol
14
+ #
15
+ # We can therefore convert string values to Symbols, but can't convert other
16
+ # values safely.
17
+ #
18
+ # @example
19
+ # # `account_financial_account_type` is a `Lithic::Models::AccountFinancialAccountType`
20
+ # case account_financial_account_type
21
+ # when Lithic::Models::AccountFinancialAccountType::ISSUING
22
+ # # ...
23
+ # when Lithic::Models::AccountFinancialAccountType::OPERATING
24
+ # # ...
25
+ # else
26
+ # puts(account_financial_account_type)
27
+ # end
28
+ #
29
+ # @example
30
+ # case account_financial_account_type
31
+ # in :ISSUING
32
+ # # ...
33
+ # in :OPERATING
34
+ # # ...
35
+ # else
36
+ # puts(account_financial_account_type)
37
+ # end
38
+ module Enum
39
+ include Lithic::Type::Converter
40
+
41
+ # All of the valid Symbol values for this enum.
42
+ #
43
+ # @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
44
+ def values = (@values ||= constants.map { const_get(_1) })
45
+
46
+ # @api private
47
+ #
48
+ # Guard against thread safety issues by instantiating `@values`.
49
+ private def finalize! = values
50
+
51
+ # @param other [Object]
52
+ #
53
+ # @return [Boolean]
54
+ def ===(other) = values.include?(other)
55
+
56
+ # @param other [Object]
57
+ #
58
+ # @return [Boolean]
59
+ def ==(other)
60
+ other.is_a?(Module) && other.singleton_class <= Lithic::Enum && other.values.to_set == values.to_set
61
+ end
62
+
63
+ # @api private
64
+ #
65
+ # Unlike with primitives, `Enum` additionally validates that the value is a member
66
+ # of the enum.
67
+ #
68
+ # @param value [String, Symbol, Object]
69
+ #
70
+ # @param state [Hash{Symbol=>Object}] .
71
+ #
72
+ # @option state [Boolean, :strong] :strictness
73
+ #
74
+ # @option state [Hash{Symbol=>Object}] :exactness
75
+ #
76
+ # @option state [Integer] :branched
77
+ #
78
+ # @return [Symbol, Object]
79
+ def coerce(value, state:)
80
+ exactness = state.fetch(:exactness)
81
+ val = value.is_a?(String) ? value.to_sym : value
82
+
83
+ if values.include?(val)
84
+ exactness[:yes] += 1
85
+ val
86
+ else
87
+ exactness[values.first&.class == val.class ? :maybe : :no] += 1
88
+ value
89
+ end
90
+ end
91
+
92
+ # @!parse
93
+ # # @api private
94
+ # #
95
+ # # @param value [Symbol, Object]
96
+ # #
97
+ # # @return [Symbol, Object]
98
+ # def dump(value) = super
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,132 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Type
5
+ # @api private
6
+ #
7
+ # @abstract
8
+ #
9
+ # Hash of items of a given type.
10
+ class HashOf
11
+ include Lithic::Type::Converter
12
+
13
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Type::Converter, Class]
14
+ #
15
+ # @param spec [Hash{Symbol=>Object}] .
16
+ #
17
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
18
+ #
19
+ # @option spec [Proc] :enum
20
+ #
21
+ # @option spec [Proc] :union
22
+ #
23
+ # @option spec [Boolean] :"nil?"
24
+ def self.[](type_info, spec = {}) = new(type_info, spec)
25
+
26
+ # @param other [Object]
27
+ #
28
+ # @return [Boolean]
29
+ def ===(other)
30
+ type = item_type
31
+ case other
32
+ in Hash
33
+ other.all? do |key, val|
34
+ case [key, val]
35
+ in [Symbol | String, ^type]
36
+ true
37
+ else
38
+ false
39
+ end
40
+ end
41
+ else
42
+ false
43
+ end
44
+ end
45
+
46
+ # @param other [Object]
47
+ #
48
+ # @return [Boolean]
49
+ def ==(other)
50
+ other.is_a?(Lithic::HashOf) && other.nilable? == nilable? && other.item_type == item_type
51
+ end
52
+
53
+ # @api private
54
+ #
55
+ # @param value [Hash{Object=>Object}, Object]
56
+ #
57
+ # @param state [Hash{Symbol=>Object}] .
58
+ #
59
+ # @option state [Boolean, :strong] :strictness
60
+ #
61
+ # @option state [Hash{Symbol=>Object}] :exactness
62
+ #
63
+ # @option state [Integer] :branched
64
+ #
65
+ # @return [Hash{Symbol=>Object}, Object]
66
+ def coerce(value, state:)
67
+ exactness = state.fetch(:exactness)
68
+
69
+ unless value.is_a?(Hash)
70
+ exactness[:no] += 1
71
+ return value
72
+ end
73
+
74
+ target = item_type
75
+ exactness[:yes] += 1
76
+ value
77
+ .to_h do |key, val|
78
+ k = key.is_a?(String) ? key.to_sym : key
79
+ v =
80
+ case [nilable?, val]
81
+ in [true, nil]
82
+ exactness[:yes] += 1
83
+ nil
84
+ else
85
+ Lithic::Type::Converter.coerce(target, val, state: state)
86
+ end
87
+
88
+ exactness[:no] += 1 unless k.is_a?(Symbol)
89
+ [k, v]
90
+ end
91
+ end
92
+
93
+ # @api private
94
+ #
95
+ # @param value [Hash{Object=>Object}, Object]
96
+ #
97
+ # @return [Hash{Symbol=>Object}, Object]
98
+ def dump(value)
99
+ target = item_type
100
+ value.is_a?(Hash) ? value.transform_values { Lithic::Type::Converter.dump(target, _1) } : super
101
+ end
102
+
103
+ # @api private
104
+ #
105
+ # @return [Lithic::Type::Converter, Class]
106
+ protected def item_type = @item_type_fn.call
107
+
108
+ # @api private
109
+ #
110
+ # @return [Boolean]
111
+ protected def nilable? = @nilable
112
+
113
+ # @api private
114
+ #
115
+ # @param type_info [Hash{Symbol=>Object}, Proc, Lithic::Type::Converter, Class]
116
+ #
117
+ # @param spec [Hash{Symbol=>Object}] .
118
+ #
119
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
120
+ #
121
+ # @option spec [Proc] :enum
122
+ #
123
+ # @option spec [Proc] :union
124
+ #
125
+ # @option spec [Boolean] :"nil?"
126
+ def initialize(type_info, spec = {})
127
+ @item_type_fn = Lithic::Type::Converter.type_info(type_info || spec)
128
+ @nilable = spec[:nil?]
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Type
5
+ # @api private
6
+ module RequestParameters
7
+ # @!parse
8
+ # # Options to specify HTTP behaviour for this request.
9
+ # # @return [Lithic::RequestOptions, Hash{Symbol=>Object}]
10
+ # attr_accessor :request_options
11
+
12
+ # @param mod [Module]
13
+ def self.included(mod)
14
+ return unless mod <= Lithic::BaseModel
15
+
16
+ mod.extend(Lithic::Type::RequestParameters::Converter)
17
+ mod.optional(:request_options, Lithic::RequestOptions)
18
+ end
19
+
20
+ # @api private
21
+ module Converter
22
+ # @api private
23
+ #
24
+ # @param params [Object]
25
+ #
26
+ # @return [Array(Object, Hash{Symbol=>Object})]
27
+ def dump_request(params)
28
+ case (dumped = dump(params))
29
+ in Hash
30
+ [dumped.except(:request_options), dumped[:request_options]]
31
+ else
32
+ [dumped, nil]
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,196 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Type
5
+ # @api private
6
+ #
7
+ # @example
8
+ # # `account_holder_update_response` is a `Lithic::Models::AccountHolderUpdateResponse`
9
+ # case account_holder_update_response
10
+ # when Lithic::Models::AccountHolderUpdateResponse::KYBKYCPatchResponse
11
+ # puts(account_holder_update_response.token)
12
+ # when Lithic::Models::AccountHolderUpdateResponse::PatchResponse
13
+ # puts(account_holder_update_response.address)
14
+ # else
15
+ # puts(account_holder_update_response)
16
+ # end
17
+ module Union
18
+ include Lithic::Type::Converter
19
+
20
+ # @api private
21
+ #
22
+ # All of the specified variant info for this union.
23
+ #
24
+ # @return [Array<Array(Symbol, Proc)>]
25
+ private def known_variants = (@known_variants ||= [])
26
+
27
+ # @api private
28
+ #
29
+ # @return [Array<Array(Symbol, Object)>]
30
+ protected def derefed_variants
31
+ @known_variants.map { |key, variant_fn| [key, variant_fn.call] }
32
+ end
33
+
34
+ # All of the specified variants for this union.
35
+ #
36
+ # @return [Array<Object>]
37
+ def variants = derefed_variants.map(&:last)
38
+
39
+ # @api private
40
+ #
41
+ # @param property [Symbol]
42
+ private def discriminator(property)
43
+ case property
44
+ in Symbol
45
+ @discriminator = property
46
+ end
47
+ end
48
+
49
+ # @api private
50
+ #
51
+ # @param key [Symbol, Hash{Symbol=>Object}, Proc, Lithic::Type::Converter, Class]
52
+ #
53
+ # @param spec [Hash{Symbol=>Object}, Proc, Lithic::Type::Converter, Class] .
54
+ #
55
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
56
+ #
57
+ # @option spec [Proc] :enum
58
+ #
59
+ # @option spec [Proc] :union
60
+ #
61
+ # @option spec [Boolean] :"nil?"
62
+ private def variant(key, spec = nil)
63
+ variant_info =
64
+ case key
65
+ in Symbol
66
+ [key, Lithic::Type::Converter.type_info(spec)]
67
+ in Proc | Lithic::Type::Converter | Class | Hash
68
+ [nil, Lithic::Type::Converter.type_info(key)]
69
+ end
70
+
71
+ known_variants << variant_info
72
+ end
73
+
74
+ # @api private
75
+ #
76
+ # @param value [Object]
77
+ #
78
+ # @return [Lithic::Type::Converter, Class, nil]
79
+ private def resolve_variant(value)
80
+ case [@discriminator, value]
81
+ in [_, Lithic::BaseModel]
82
+ value.class
83
+ in [Symbol, Hash]
84
+ key = value.fetch(@discriminator) do
85
+ value.fetch(@discriminator.to_s, Lithic::Util::OMIT)
86
+ end
87
+
88
+ return nil if key == Lithic::Util::OMIT
89
+
90
+ key = key.to_sym if key.is_a?(String)
91
+ known_variants.find { |k,| k == key }&.last&.call
92
+ else
93
+ nil
94
+ end
95
+ end
96
+
97
+ # rubocop:disable Style/HashEachMethods
98
+ # rubocop:disable Style/CaseEquality
99
+
100
+ # @param other [Object]
101
+ #
102
+ # @return [Boolean]
103
+ def ===(other)
104
+ known_variants.any? do |_, variant_fn|
105
+ variant_fn.call === other
106
+ end
107
+ end
108
+
109
+ # @param other [Object]
110
+ #
111
+ # @return [Boolean]
112
+ def ==(other)
113
+ # rubocop:disable Layout/LineLength
114
+ other.is_a?(Module) && other.singleton_class <= Lithic::Union && other.derefed_variants == derefed_variants
115
+ # rubocop:enable Layout/LineLength
116
+ end
117
+
118
+ # @api private
119
+ #
120
+ # @param value [Object]
121
+ #
122
+ # @param state [Hash{Symbol=>Object}] .
123
+ #
124
+ # @option state [Boolean, :strong] :strictness
125
+ #
126
+ # @option state [Hash{Symbol=>Object}] :exactness
127
+ #
128
+ # @option state [Integer] :branched
129
+ #
130
+ # @return [Object]
131
+ def coerce(value, state:)
132
+ if (target = resolve_variant(value))
133
+ return Lithic::Type::Converter.coerce(target, value, state: state)
134
+ end
135
+
136
+ strictness = state.fetch(:strictness)
137
+ exactness = state.fetch(:exactness)
138
+ state[:strictness] = strictness == :strong ? true : strictness
139
+
140
+ alternatives = []
141
+ known_variants.each do |_, variant_fn|
142
+ target = variant_fn.call
143
+ exact = state[:exactness] = {yes: 0, no: 0, maybe: 0}
144
+ state[:branched] += 1
145
+
146
+ coerced = Lithic::Type::Converter.coerce(target, value, state: state)
147
+ yes, no, maybe = exact.values
148
+ if (no + maybe).zero? || (!strictness && yes.positive?)
149
+ exact.each { exactness[_1] += _2 }
150
+ state[:exactness] = exactness
151
+ return coerced
152
+ elsif maybe.positive?
153
+ alternatives << [[-yes, -maybe, no], exact, coerced]
154
+ end
155
+ end
156
+
157
+ case alternatives.sort_by(&:first)
158
+ in []
159
+ exactness[:no] += 1
160
+ if strictness == :strong
161
+ message = "no possible conversion of #{value.class} into a variant of #{target.inspect}"
162
+ raise ArgumentError.new(message)
163
+ end
164
+ value
165
+ in [[_, exact, coerced], *]
166
+ exact.each { exactness[_1] += _2 }
167
+ coerced
168
+ end
169
+ .tap { state[:exactness] = exactness }
170
+ ensure
171
+ state[:strictness] = strictness
172
+ end
173
+
174
+ # @api private
175
+ #
176
+ # @param value [Object]
177
+ #
178
+ # @return [Object]
179
+ def dump(value)
180
+ if (target = resolve_variant(value))
181
+ return Lithic::Type::Converter.dump(target, value)
182
+ end
183
+
184
+ known_variants.each do
185
+ target = _2.call
186
+ return Lithic::Type::Converter.dump(target, value) if target === value
187
+ end
188
+
189
+ super
190
+ end
191
+
192
+ # rubocop:enable Style/CaseEquality
193
+ # rubocop:enable Style/HashEachMethods
194
+ end
195
+ end
196
+ end