dodopayments 0.0.1.pre.alpha.0

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 (326) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +154 -0
  3. data/lib/dodopayments/base_client.rb +453 -0
  4. data/lib/dodopayments/base_model.rb +1217 -0
  5. data/lib/dodopayments/base_page.rb +62 -0
  6. data/lib/dodopayments/client.rb +147 -0
  7. data/lib/dodopayments/default_page_number_pagination.rb +97 -0
  8. data/lib/dodopayments/errors.rb +183 -0
  9. data/lib/dodopayments/extern.rb +9 -0
  10. data/lib/dodopayments/models/attach_existing_customer.rb +19 -0
  11. data/lib/dodopayments/models/billing_address.rb +48 -0
  12. data/lib/dodopayments/models/country_code.rb +262 -0
  13. data/lib/dodopayments/models/create_new_customer.rb +44 -0
  14. data/lib/dodopayments/models/customer.rb +49 -0
  15. data/lib/dodopayments/models/customer_create_params.rb +36 -0
  16. data/lib/dodopayments/models/customer_limited_details.rb +34 -0
  17. data/lib/dodopayments/models/customer_list_params.rb +32 -0
  18. data/lib/dodopayments/models/customer_portal_session.rb +19 -0
  19. data/lib/dodopayments/models/customer_request.rb +18 -0
  20. data/lib/dodopayments/models/customer_retrieve_params.rb +18 -0
  21. data/lib/dodopayments/models/customer_update_params.rb +30 -0
  22. data/lib/dodopayments/models/customers/customer_portal_create_params.rb +27 -0
  23. data/lib/dodopayments/models/discount.rb +108 -0
  24. data/lib/dodopayments/models/discount_create_params.rb +87 -0
  25. data/lib/dodopayments/models/discount_delete_params.rb +18 -0
  26. data/lib/dodopayments/models/discount_list_params.rb +32 -0
  27. data/lib/dodopayments/models/discount_retrieve_params.rb +18 -0
  28. data/lib/dodopayments/models/discount_type.rb +12 -0
  29. data/lib/dodopayments/models/discount_update_params.rb +82 -0
  30. data/lib/dodopayments/models/dispute.rb +80 -0
  31. data/lib/dodopayments/models/dispute_list_params.rb +79 -0
  32. data/lib/dodopayments/models/dispute_retrieve_params.rb +18 -0
  33. data/lib/dodopayments/models/dispute_stage.rb +14 -0
  34. data/lib/dodopayments/models/dispute_status.rb +18 -0
  35. data/lib/dodopayments/models/intent_status.rb +22 -0
  36. data/lib/dodopayments/models/invoices/payment_retrieve_params.rb +20 -0
  37. data/lib/dodopayments/models/license_activate_params.rb +30 -0
  38. data/lib/dodopayments/models/license_deactivate_params.rb +30 -0
  39. data/lib/dodopayments/models/license_key.rb +113 -0
  40. data/lib/dodopayments/models/license_key_duration.rb +25 -0
  41. data/lib/dodopayments/models/license_key_instance.rb +43 -0
  42. data/lib/dodopayments/models/license_key_instance_list_params.rb +39 -0
  43. data/lib/dodopayments/models/license_key_instance_retrieve_params.rb +18 -0
  44. data/lib/dodopayments/models/license_key_instance_update_params.rb +24 -0
  45. data/lib/dodopayments/models/license_key_list_params.rb +53 -0
  46. data/lib/dodopayments/models/license_key_retrieve_params.rb +18 -0
  47. data/lib/dodopayments/models/license_key_status.rb +14 -0
  48. data/lib/dodopayments/models/license_key_update_params.rb +42 -0
  49. data/lib/dodopayments/models/license_validate_params.rb +30 -0
  50. data/lib/dodopayments/models/license_validate_response.rb +19 -0
  51. data/lib/dodopayments/models/misc_list_supported_countries_params.rb +18 -0
  52. data/lib/dodopayments/models/misc_list_supported_countries_response.rb +7 -0
  53. data/lib/dodopayments/models/one_time_product_cart_item.rb +33 -0
  54. data/lib/dodopayments/models/payment.rb +339 -0
  55. data/lib/dodopayments/models/payment_create_params.rb +90 -0
  56. data/lib/dodopayments/models/payment_create_response.rb +82 -0
  57. data/lib/dodopayments/models/payment_list_params.rb +79 -0
  58. data/lib/dodopayments/models/payment_list_response.rb +238 -0
  59. data/lib/dodopayments/models/payment_retrieve_params.rb +18 -0
  60. data/lib/dodopayments/models/payout_list_params.rb +32 -0
  61. data/lib/dodopayments/models/payout_list_response.rb +295 -0
  62. data/lib/dodopayments/models/price.rb +512 -0
  63. data/lib/dodopayments/models/product.rb +149 -0
  64. data/lib/dodopayments/models/product_create_params.rb +107 -0
  65. data/lib/dodopayments/models/product_delete_params.rb +18 -0
  66. data/lib/dodopayments/models/product_list_params.rb +54 -0
  67. data/lib/dodopayments/models/product_list_response.rb +293 -0
  68. data/lib/dodopayments/models/product_retrieve_params.rb +18 -0
  69. data/lib/dodopayments/models/product_unarchive_params.rb +18 -0
  70. data/lib/dodopayments/models/product_update_params.rb +124 -0
  71. data/lib/dodopayments/models/products/image_update_params.rb +26 -0
  72. data/lib/dodopayments/models/products/image_update_response.rb +27 -0
  73. data/lib/dodopayments/models/refund.rb +218 -0
  74. data/lib/dodopayments/models/refund_create_params.rb +40 -0
  75. data/lib/dodopayments/models/refund_list_params.rb +71 -0
  76. data/lib/dodopayments/models/refund_retrieve_params.rb +18 -0
  77. data/lib/dodopayments/models/refund_status.rb +15 -0
  78. data/lib/dodopayments/models/subscription.rb +309 -0
  79. data/lib/dodopayments/models/subscription_create_params.rb +106 -0
  80. data/lib/dodopayments/models/subscription_create_response.rb +73 -0
  81. data/lib/dodopayments/models/subscription_list_params.rb +71 -0
  82. data/lib/dodopayments/models/subscription_retrieve_params.rb +18 -0
  83. data/lib/dodopayments/models/subscription_status.rb +18 -0
  84. data/lib/dodopayments/models/subscription_update_params.rb +30 -0
  85. data/lib/dodopayments/models/time_interval.rb +15 -0
  86. data/lib/dodopayments/models/webhook_event.rb +73 -0
  87. data/lib/dodopayments/models/webhook_event_list_params.rb +71 -0
  88. data/lib/dodopayments/models/webhook_event_retrieve_params.rb +18 -0
  89. data/lib/dodopayments/pooled_net_requester.rb +164 -0
  90. data/lib/dodopayments/request_options.rb +110 -0
  91. data/lib/dodopayments/resources/customers/customer_portal.rb +34 -0
  92. data/lib/dodopayments/resources/customers.rb +97 -0
  93. data/lib/dodopayments/resources/discounts.rb +154 -0
  94. data/lib/dodopayments/resources/disputes.rb +59 -0
  95. data/lib/dodopayments/resources/invoices/payments.rb +30 -0
  96. data/lib/dodopayments/resources/invoices.rb +16 -0
  97. data/lib/dodopayments/resources/license_key_instances.rb +71 -0
  98. data/lib/dodopayments/resources/license_keys.rb +82 -0
  99. data/lib/dodopayments/resources/licenses.rb +72 -0
  100. data/lib/dodopayments/resources/misc.rb +26 -0
  101. data/lib/dodopayments/resources/payments.rb +93 -0
  102. data/lib/dodopayments/resources/payouts.rb +33 -0
  103. data/lib/dodopayments/resources/products/images.rb +34 -0
  104. data/lib/dodopayments/resources/products.rb +176 -0
  105. data/lib/dodopayments/resources/refunds.rb +80 -0
  106. data/lib/dodopayments/resources/subscriptions.rb +117 -0
  107. data/lib/dodopayments/resources/webhook_events.rb +57 -0
  108. data/lib/dodopayments/util.rb +717 -0
  109. data/lib/dodopayments/version.rb +5 -0
  110. data/lib/dodopayments.rb +128 -0
  111. data/manifest.yaml +14 -0
  112. data/rbi/lib/dodopayments/base_client.rbi +186 -0
  113. data/rbi/lib/dodopayments/base_model.rbi +606 -0
  114. data/rbi/lib/dodopayments/base_page.rbi +40 -0
  115. data/rbi/lib/dodopayments/client.rbi +117 -0
  116. data/rbi/lib/dodopayments/default_page_number_pagination.rbi +17 -0
  117. data/rbi/lib/dodopayments/errors.rbi +179 -0
  118. data/rbi/lib/dodopayments/extern.rbi +8 -0
  119. data/rbi/lib/dodopayments/models/attach_existing_customer.rbi +23 -0
  120. data/rbi/lib/dodopayments/models/billing_address.rbi +65 -0
  121. data/rbi/lib/dodopayments/models/country_code.rbi +266 -0
  122. data/rbi/lib/dodopayments/models/create_new_customer.rbi +61 -0
  123. data/rbi/lib/dodopayments/models/customer.rbi +85 -0
  124. data/rbi/lib/dodopayments/models/customer_create_params.rbi +60 -0
  125. data/rbi/lib/dodopayments/models/customer_limited_details.rbi +42 -0
  126. data/rbi/lib/dodopayments/models/customer_list_params.rbi +52 -0
  127. data/rbi/lib/dodopayments/models/customer_portal_session.rbi +23 -0
  128. data/rbi/lib/dodopayments/models/customer_request.rbi +15 -0
  129. data/rbi/lib/dodopayments/models/customer_retrieve_params.rbi +21 -0
  130. data/rbi/lib/dodopayments/models/customer_update_params.rbi +50 -0
  131. data/rbi/lib/dodopayments/models/customers/customer_portal_create_params.rbi +37 -0
  132. data/rbi/lib/dodopayments/models/discount.rbi +161 -0
  133. data/rbi/lib/dodopayments/models/discount_create_params.rbi +124 -0
  134. data/rbi/lib/dodopayments/models/discount_delete_params.rbi +21 -0
  135. data/rbi/lib/dodopayments/models/discount_list_params.rbi +52 -0
  136. data/rbi/lib/dodopayments/models/discount_retrieve_params.rbi +21 -0
  137. data/rbi/lib/dodopayments/models/discount_type.rbi +17 -0
  138. data/rbi/lib/dodopayments/models/discount_update_params.rbi +119 -0
  139. data/rbi/lib/dodopayments/models/dispute.rbi +112 -0
  140. data/rbi/lib/dodopayments/models/dispute_list_params.rbi +116 -0
  141. data/rbi/lib/dodopayments/models/dispute_retrieve_params.rbi +21 -0
  142. data/rbi/lib/dodopayments/models/dispute_stage.rbi +19 -0
  143. data/rbi/lib/dodopayments/models/dispute_status.rbi +23 -0
  144. data/rbi/lib/dodopayments/models/intent_status.rbi +27 -0
  145. data/rbi/lib/dodopayments/models/invoices/payment_retrieve_params.rbi +23 -0
  146. data/rbi/lib/dodopayments/models/license_activate_params.rbi +43 -0
  147. data/rbi/lib/dodopayments/models/license_deactivate_params.rbi +50 -0
  148. data/rbi/lib/dodopayments/models/license_key.rbi +170 -0
  149. data/rbi/lib/dodopayments/models/license_key_duration.rbi +31 -0
  150. data/rbi/lib/dodopayments/models/license_key_instance.rbi +68 -0
  151. data/rbi/lib/dodopayments/models/license_key_instance_list_params.rbi +63 -0
  152. data/rbi/lib/dodopayments/models/license_key_instance_retrieve_params.rbi +21 -0
  153. data/rbi/lib/dodopayments/models/license_key_instance_update_params.rbi +35 -0
  154. data/rbi/lib/dodopayments/models/license_key_list_params.rbi +85 -0
  155. data/rbi/lib/dodopayments/models/license_key_retrieve_params.rbi +21 -0
  156. data/rbi/lib/dodopayments/models/license_key_status.rbi +19 -0
  157. data/rbi/lib/dodopayments/models/license_key_update_params.rbi +66 -0
  158. data/rbi/lib/dodopayments/models/license_validate_params.rbi +50 -0
  159. data/rbi/lib/dodopayments/models/license_validate_response.rbi +23 -0
  160. data/rbi/lib/dodopayments/models/misc_list_supported_countries_params.rbi +21 -0
  161. data/rbi/lib/dodopayments/models/misc_list_supported_countries_response.rbi +7 -0
  162. data/rbi/lib/dodopayments/models/one_time_product_cart_item.rbi +43 -0
  163. data/rbi/lib/dodopayments/models/payment.rbi +439 -0
  164. data/rbi/lib/dodopayments/models/payment_create_params.rbi +133 -0
  165. data/rbi/lib/dodopayments/models/payment_create_response.rbi +127 -0
  166. data/rbi/lib/dodopayments/models/payment_list_params.rbi +116 -0
  167. data/rbi/lib/dodopayments/models/payment_list_response.rbi +295 -0
  168. data/rbi/lib/dodopayments/models/payment_retrieve_params.rbi +21 -0
  169. data/rbi/lib/dodopayments/models/payout_list_params.rbi +52 -0
  170. data/rbi/lib/dodopayments/models/payout_list_response.rbi +374 -0
  171. data/rbi/lib/dodopayments/models/price.rbi +603 -0
  172. data/rbi/lib/dodopayments/models/product.rbi +228 -0
  173. data/rbi/lib/dodopayments/models/product_create_params.rbi +162 -0
  174. data/rbi/lib/dodopayments/models/product_delete_params.rbi +21 -0
  175. data/rbi/lib/dodopayments/models/product_list_params.rbi +78 -0
  176. data/rbi/lib/dodopayments/models/product_list_response.rbi +374 -0
  177. data/rbi/lib/dodopayments/models/product_retrieve_params.rbi +21 -0
  178. data/rbi/lib/dodopayments/models/product_unarchive_params.rbi +21 -0
  179. data/rbi/lib/dodopayments/models/product_update_params.rbi +191 -0
  180. data/rbi/lib/dodopayments/models/products/image_update_params.rbi +41 -0
  181. data/rbi/lib/dodopayments/models/products/image_update_response.rbi +33 -0
  182. data/rbi/lib/dodopayments/models/refund.rbi +267 -0
  183. data/rbi/lib/dodopayments/models/refund_create_params.rbi +64 -0
  184. data/rbi/lib/dodopayments/models/refund_list_params.rbi +104 -0
  185. data/rbi/lib/dodopayments/models/refund_retrieve_params.rbi +21 -0
  186. data/rbi/lib/dodopayments/models/refund_status.rbi +20 -0
  187. data/rbi/lib/dodopayments/models/subscription.rbi +397 -0
  188. data/rbi/lib/dodopayments/models/subscription_create_params.rbi +154 -0
  189. data/rbi/lib/dodopayments/models/subscription_create_response.rbi +113 -0
  190. data/rbi/lib/dodopayments/models/subscription_list_params.rbi +104 -0
  191. data/rbi/lib/dodopayments/models/subscription_retrieve_params.rbi +21 -0
  192. data/rbi/lib/dodopayments/models/subscription_status.rbi +23 -0
  193. data/rbi/lib/dodopayments/models/subscription_update_params.rbi +50 -0
  194. data/rbi/lib/dodopayments/models/time_interval.rbi +20 -0
  195. data/rbi/lib/dodopayments/models/webhook_event.rbi +114 -0
  196. data/rbi/lib/dodopayments/models/webhook_event_list_params.rbi +104 -0
  197. data/rbi/lib/dodopayments/models/webhook_event_retrieve_params.rbi +21 -0
  198. data/rbi/lib/dodopayments/pooled_net_requester.rbi +47 -0
  199. data/rbi/lib/dodopayments/request_options.rbi +109 -0
  200. data/rbi/lib/dodopayments/resources/customers/customer_portal.rbi +30 -0
  201. data/rbi/lib/dodopayments/resources/customers.rbi +76 -0
  202. data/rbi/lib/dodopayments/resources/discounts.rbi +139 -0
  203. data/rbi/lib/dodopayments/resources/disputes.rbi +57 -0
  204. data/rbi/lib/dodopayments/resources/invoices/payments.rbi +23 -0
  205. data/rbi/lib/dodopayments/resources/invoices.rbi +15 -0
  206. data/rbi/lib/dodopayments/resources/license_key_instances.rbi +61 -0
  207. data/rbi/lib/dodopayments/resources/license_keys.rbi +77 -0
  208. data/rbi/lib/dodopayments/resources/licenses.rbi +44 -0
  209. data/rbi/lib/dodopayments/resources/misc.rbi +18 -0
  210. data/rbi/lib/dodopayments/resources/payments.rbi +91 -0
  211. data/rbi/lib/dodopayments/resources/payouts.rbi +28 -0
  212. data/rbi/lib/dodopayments/resources/products/images.rbi +29 -0
  213. data/rbi/lib/dodopayments/resources/products.rbi +164 -0
  214. data/rbi/lib/dodopayments/resources/refunds.rbi +75 -0
  215. data/rbi/lib/dodopayments/resources/subscriptions.rbi +112 -0
  216. data/rbi/lib/dodopayments/resources/webhook_events.rbi +50 -0
  217. data/rbi/lib/dodopayments/util.rbi +270 -0
  218. data/rbi/lib/dodopayments/version.rbi +5 -0
  219. data/sig/dodopayments/base_client.rbs +103 -0
  220. data/sig/dodopayments/base_model.rbs +246 -0
  221. data/sig/dodopayments/base_page.rbs +20 -0
  222. data/sig/dodopayments/client.rbs +58 -0
  223. data/sig/dodopayments/default_page_number_pagination.rbs +7 -0
  224. data/sig/dodopayments/errors.rbs +99 -0
  225. data/sig/dodopayments/extern.rbs +4 -0
  226. data/sig/dodopayments/models/attach_existing_customer.rbs +18 -0
  227. data/sig/dodopayments/models/billing_address.rbs +38 -0
  228. data/sig/dodopayments/models/country_code.rbs +508 -0
  229. data/sig/dodopayments/models/create_new_customer.rbs +37 -0
  230. data/sig/dodopayments/models/customer.rbs +42 -0
  231. data/sig/dodopayments/models/customer_create_params.rbs +32 -0
  232. data/sig/dodopayments/models/customer_limited_details.rbs +23 -0
  233. data/sig/dodopayments/models/customer_list_params.rbs +29 -0
  234. data/sig/dodopayments/models/customer_portal_session.rbs +18 -0
  235. data/sig/dodopayments/models/customer_request.rbs +11 -0
  236. data/sig/dodopayments/models/customer_retrieve_params.rbs +19 -0
  237. data/sig/dodopayments/models/customer_update_params.rbs +29 -0
  238. data/sig/dodopayments/models/customers/customer_portal_create_params.rbs +27 -0
  239. data/sig/dodopayments/models/discount.rbs +62 -0
  240. data/sig/dodopayments/models/discount_create_params.rbs +52 -0
  241. data/sig/dodopayments/models/discount_delete_params.rbs +19 -0
  242. data/sig/dodopayments/models/discount_list_params.rbs +29 -0
  243. data/sig/dodopayments/models/discount_retrieve_params.rbs +19 -0
  244. data/sig/dodopayments/models/discount_type.rbs +11 -0
  245. data/sig/dodopayments/models/discount_update_params.rbs +52 -0
  246. data/sig/dodopayments/models/dispute.rbs +50 -0
  247. data/sig/dodopayments/models/dispute_list_params.rbs +52 -0
  248. data/sig/dodopayments/models/dispute_retrieve_params.rbs +19 -0
  249. data/sig/dodopayments/models/dispute_stage.rbs +13 -0
  250. data/sig/dodopayments/models/dispute_status.rbs +24 -0
  251. data/sig/dodopayments/models/intent_status.rbs +32 -0
  252. data/sig/dodopayments/models/invoices/payment_retrieve_params.rbs +21 -0
  253. data/sig/dodopayments/models/license_activate_params.rbs +28 -0
  254. data/sig/dodopayments/models/license_deactivate_params.rbs +29 -0
  255. data/sig/dodopayments/models/license_key.rbs +66 -0
  256. data/sig/dodopayments/models/license_key_duration.rbs +21 -0
  257. data/sig/dodopayments/models/license_key_instance.rbs +39 -0
  258. data/sig/dodopayments/models/license_key_instance_list_params.rbs +32 -0
  259. data/sig/dodopayments/models/license_key_instance_retrieve_params.rbs +20 -0
  260. data/sig/dodopayments/models/license_key_instance_update_params.rbs +22 -0
  261. data/sig/dodopayments/models/license_key_list_params.rbs +44 -0
  262. data/sig/dodopayments/models/license_key_retrieve_params.rbs +19 -0
  263. data/sig/dodopayments/models/license_key_status.rbs +13 -0
  264. data/sig/dodopayments/models/license_key_update_params.rbs +32 -0
  265. data/sig/dodopayments/models/license_validate_params.rbs +29 -0
  266. data/sig/dodopayments/models/license_validate_response.rbs +18 -0
  267. data/sig/dodopayments/models/misc_list_supported_countries_params.rbs +20 -0
  268. data/sig/dodopayments/models/misc_list_supported_countries_response.rbs +8 -0
  269. data/sig/dodopayments/models/one_time_product_cart_item.rbs +23 -0
  270. data/sig/dodopayments/models/payment.rbs +408 -0
  271. data/sig/dodopayments/models/payment_create_params.rbs +58 -0
  272. data/sig/dodopayments/models/payment_create_response.rbs +51 -0
  273. data/sig/dodopayments/models/payment_list_params.rbs +52 -0
  274. data/sig/dodopayments/models/payment_list_response.rbs +356 -0
  275. data/sig/dodopayments/models/payment_retrieve_params.rbs +19 -0
  276. data/sig/dodopayments/models/payout_list_params.rbs +29 -0
  277. data/sig/dodopayments/models/payout_list_response.rbs +386 -0
  278. data/sig/dodopayments/models/price.rbs +717 -0
  279. data/sig/dodopayments/models/product.rbs +89 -0
  280. data/sig/dodopayments/models/product_create_params.rbs +71 -0
  281. data/sig/dodopayments/models/product_delete_params.rbs +19 -0
  282. data/sig/dodopayments/models/product_list_params.rbs +42 -0
  283. data/sig/dodopayments/models/product_list_response.rbs +379 -0
  284. data/sig/dodopayments/models/product_retrieve_params.rbs +19 -0
  285. data/sig/dodopayments/models/product_unarchive_params.rbs +19 -0
  286. data/sig/dodopayments/models/product_update_params.rbs +75 -0
  287. data/sig/dodopayments/models/products/image_update_params.rbs +27 -0
  288. data/sig/dodopayments/models/products/image_update_response.rbs +22 -0
  289. data/sig/dodopayments/models/refund.rbs +345 -0
  290. data/sig/dodopayments/models/refund_create_params.rbs +32 -0
  291. data/sig/dodopayments/models/refund_list_params.rbs +48 -0
  292. data/sig/dodopayments/models/refund_retrieve_params.rbs +19 -0
  293. data/sig/dodopayments/models/refund_status.rbs +14 -0
  294. data/sig/dodopayments/models/subscription.rbs +387 -0
  295. data/sig/dodopayments/models/subscription_create_params.rbs +66 -0
  296. data/sig/dodopayments/models/subscription_create_response.rbs +47 -0
  297. data/sig/dodopayments/models/subscription_list_params.rbs +48 -0
  298. data/sig/dodopayments/models/subscription_retrieve_params.rbs +19 -0
  299. data/sig/dodopayments/models/subscription_status.rbs +18 -0
  300. data/sig/dodopayments/models/subscription_update_params.rbs +32 -0
  301. data/sig/dodopayments/models/time_interval.rbs +14 -0
  302. data/sig/dodopayments/models/webhook_event.rbs +50 -0
  303. data/sig/dodopayments/models/webhook_event_list_params.rbs +48 -0
  304. data/sig/dodopayments/models/webhook_event_retrieve_params.rbs +19 -0
  305. data/sig/dodopayments/pooled_net_requester.rbs +30 -0
  306. data/sig/dodopayments/request_options.rbs +46 -0
  307. data/sig/dodopayments/resources/customers/customer_portal.rbs +21 -0
  308. data/sig/dodopayments/resources/customers.rbs +55 -0
  309. data/sig/dodopayments/resources/discounts.rbs +73 -0
  310. data/sig/dodopayments/resources/disputes.rbs +33 -0
  311. data/sig/dodopayments/resources/invoices/payments.rbs +20 -0
  312. data/sig/dodopayments/resources/invoices.rbs +9 -0
  313. data/sig/dodopayments/resources/license_key_instances.rbs +42 -0
  314. data/sig/dodopayments/resources/license_keys.rbs +46 -0
  315. data/sig/dodopayments/resources/licenses.rbs +40 -0
  316. data/sig/dodopayments/resources/misc.rbs +16 -0
  317. data/sig/dodopayments/resources/payments.rbs +49 -0
  318. data/sig/dodopayments/resources/payouts.rbs +17 -0
  319. data/sig/dodopayments/resources/products/images.rbs +21 -0
  320. data/sig/dodopayments/resources/products.rbs +86 -0
  321. data/sig/dodopayments/resources/refunds.rbs +43 -0
  322. data/sig/dodopayments/resources/subscriptions.rbs +65 -0
  323. data/sig/dodopayments/resources/webhook_events.rbs +33 -0
  324. data/sig/dodopayments/util.rbs +136 -0
  325. data/sig/dodopayments/version.rbs +3 -0
  326. metadata +383 -0
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionCreateParams < Dodopayments::BaseModel
6
+ # @!parse
7
+ # extend Dodopayments::RequestParameters::Converter
8
+ include Dodopayments::RequestParameters
9
+
10
+ # @!attribute billing
11
+ #
12
+ # @return [Dodopayments::Models::BillingAddress]
13
+ required :billing, -> { Dodopayments::Models::BillingAddress }
14
+
15
+ # @!attribute customer
16
+ #
17
+ # @return [Dodopayments::Models::AttachExistingCustomer, Dodopayments::Models::CreateNewCustomer]
18
+ required :customer, union: -> { Dodopayments::Models::CustomerRequest }
19
+
20
+ # @!attribute product_id
21
+ # Unique identifier of the product to subscribe to
22
+ #
23
+ # @return [String]
24
+ required :product_id, String
25
+
26
+ # @!attribute quantity
27
+ # Number of units to subscribe for. Must be at least 1.
28
+ #
29
+ # @return [Integer]
30
+ required :quantity, Integer
31
+
32
+ # @!attribute discount_code
33
+ # Discount Code to apply to the subscription
34
+ #
35
+ # @return [String, nil]
36
+ optional :discount_code, String, nil?: true
37
+
38
+ # @!attribute [r] metadata
39
+ #
40
+ # @return [Hash{Symbol=>String}, nil]
41
+ optional :metadata, Dodopayments::HashOf[String]
42
+
43
+ # @!parse
44
+ # # @return [Hash{Symbol=>String}]
45
+ # attr_writer :metadata
46
+
47
+ # @!attribute payment_link
48
+ # If true, generates a payment link. Defaults to false if not specified.
49
+ #
50
+ # @return [Boolean, nil]
51
+ optional :payment_link, Dodopayments::BooleanModel, nil?: true
52
+
53
+ # @!attribute return_url
54
+ # Optional URL to redirect after successful subscription creation
55
+ #
56
+ # @return [String, nil]
57
+ optional :return_url, String, nil?: true
58
+
59
+ # @!attribute tax_id
60
+ # Tax ID in case the payment is B2B. If tax id validation fails the payment
61
+ # creation will fail
62
+ #
63
+ # @return [String, nil]
64
+ optional :tax_id, String, nil?: true
65
+
66
+ # @!attribute trial_period_days
67
+ # Optional trial period in days If specified, this value overrides the trial
68
+ # period set in the product's price Must be between 0 and 10000 days
69
+ #
70
+ # @return [Integer, nil]
71
+ optional :trial_period_days, Integer, nil?: true
72
+
73
+ # @!parse
74
+ # # @param billing [Dodopayments::Models::BillingAddress]
75
+ # # @param customer [Dodopayments::Models::AttachExistingCustomer, Dodopayments::Models::CreateNewCustomer]
76
+ # # @param product_id [String]
77
+ # # @param quantity [Integer]
78
+ # # @param discount_code [String, nil]
79
+ # # @param metadata [Hash{Symbol=>String}]
80
+ # # @param payment_link [Boolean, nil]
81
+ # # @param return_url [String, nil]
82
+ # # @param tax_id [String, nil]
83
+ # # @param trial_period_days [Integer, nil]
84
+ # # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
85
+ # #
86
+ # def initialize(
87
+ # billing:,
88
+ # customer:,
89
+ # product_id:,
90
+ # quantity:,
91
+ # discount_code: nil,
92
+ # metadata: nil,
93
+ # payment_link: nil,
94
+ # return_url: nil,
95
+ # tax_id: nil,
96
+ # trial_period_days: nil,
97
+ # request_options: {},
98
+ # **
99
+ # )
100
+ # super
101
+ # end
102
+
103
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionCreateResponse < Dodopayments::BaseModel
6
+ # @!attribute customer
7
+ #
8
+ # @return [Dodopayments::Models::CustomerLimitedDetails]
9
+ required :customer, -> { Dodopayments::Models::CustomerLimitedDetails }
10
+
11
+ # @!attribute metadata
12
+ #
13
+ # @return [Hash{Symbol=>String}]
14
+ required :metadata, Dodopayments::HashOf[String]
15
+
16
+ # @!attribute recurring_pre_tax_amount
17
+ # Tax will be added to the amount and charged to the customer on each billing
18
+ # cycle
19
+ #
20
+ # @return [Integer]
21
+ required :recurring_pre_tax_amount, Integer
22
+
23
+ # @!attribute subscription_id
24
+ # Unique identifier for the subscription
25
+ #
26
+ # @return [String]
27
+ required :subscription_id, String
28
+
29
+ # @!attribute client_secret
30
+ # Client secret used to load Dodo checkout SDK NOTE : Dodo checkout SDK will be
31
+ # coming soon
32
+ #
33
+ # @return [String, nil]
34
+ optional :client_secret, String, nil?: true
35
+
36
+ # @!attribute discount_id
37
+ # The discount id if discount is applied
38
+ #
39
+ # @return [String, nil]
40
+ optional :discount_id, String, nil?: true
41
+
42
+ # @!attribute payment_link
43
+ # URL to checkout page
44
+ #
45
+ # @return [String, nil]
46
+ optional :payment_link, String, nil?: true
47
+
48
+ # @!parse
49
+ # # @param customer [Dodopayments::Models::CustomerLimitedDetails]
50
+ # # @param metadata [Hash{Symbol=>String}]
51
+ # # @param recurring_pre_tax_amount [Integer]
52
+ # # @param subscription_id [String]
53
+ # # @param client_secret [String, nil]
54
+ # # @param discount_id [String, nil]
55
+ # # @param payment_link [String, nil]
56
+ # #
57
+ # def initialize(
58
+ # customer:,
59
+ # metadata:,
60
+ # recurring_pre_tax_amount:,
61
+ # subscription_id:,
62
+ # client_secret: nil,
63
+ # discount_id: nil,
64
+ # payment_link: nil,
65
+ # **
66
+ # )
67
+ # super
68
+ # end
69
+
70
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionListParams < Dodopayments::BaseModel
6
+ # @!parse
7
+ # extend Dodopayments::RequestParameters::Converter
8
+ include Dodopayments::RequestParameters
9
+
10
+ # @!attribute created_at_gte
11
+ # Get events after this created time
12
+ #
13
+ # @return [Time, nil]
14
+ optional :created_at_gte, Time, nil?: true
15
+
16
+ # @!attribute created_at_lte
17
+ # Get events created before this time
18
+ #
19
+ # @return [Time, nil]
20
+ optional :created_at_lte, Time, nil?: true
21
+
22
+ # @!attribute customer_id
23
+ # Filter by customer id
24
+ #
25
+ # @return [String, nil]
26
+ optional :customer_id, String, nil?: true
27
+
28
+ # @!attribute page_number
29
+ # Page number default is 0
30
+ #
31
+ # @return [Integer, nil]
32
+ optional :page_number, Integer, nil?: true
33
+
34
+ # @!attribute page_size
35
+ # Page size default is 10 max is 100
36
+ #
37
+ # @return [Integer, nil]
38
+ optional :page_size, Integer, nil?: true
39
+
40
+ # @!attribute status
41
+ # Filter by status
42
+ #
43
+ # @return [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
44
+ optional :status, enum: -> { Dodopayments::Models::SubscriptionStatus }, nil?: true
45
+
46
+ # @!parse
47
+ # # @param created_at_gte [Time, nil]
48
+ # # @param created_at_lte [Time, nil]
49
+ # # @param customer_id [String, nil]
50
+ # # @param page_number [Integer, nil]
51
+ # # @param page_size [Integer, nil]
52
+ # # @param status [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
53
+ # # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
54
+ # #
55
+ # def initialize(
56
+ # created_at_gte: nil,
57
+ # created_at_lte: nil,
58
+ # customer_id: nil,
59
+ # page_number: nil,
60
+ # page_size: nil,
61
+ # status: nil,
62
+ # request_options: {},
63
+ # **
64
+ # )
65
+ # super
66
+ # end
67
+
68
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionRetrieveParams < Dodopayments::BaseModel
6
+ # @!parse
7
+ # extend Dodopayments::RequestParameters::Converter
8
+ include Dodopayments::RequestParameters
9
+
10
+ # @!parse
11
+ # # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
12
+ # #
13
+ # def initialize(request_options: {}, **) = super
14
+
15
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @abstract
6
+ class SubscriptionStatus < Dodopayments::Enum
7
+ PENDING = :pending
8
+ ACTIVE = :active
9
+ ON_HOLD = :on_hold
10
+ PAUSED = :paused
11
+ CANCELLED = :cancelled
12
+ FAILED = :failed
13
+ EXPIRED = :expired
14
+
15
+ finalize!
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionUpdateParams < Dodopayments::BaseModel
6
+ # @!parse
7
+ # extend Dodopayments::RequestParameters::Converter
8
+ include Dodopayments::RequestParameters
9
+
10
+ # @!attribute metadata
11
+ #
12
+ # @return [Hash{Symbol=>String}, nil]
13
+ optional :metadata, Dodopayments::HashOf[String], nil?: true
14
+
15
+ # @!attribute status
16
+ #
17
+ # @return [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
18
+ optional :status, enum: -> { Dodopayments::Models::SubscriptionStatus }, nil?: true
19
+
20
+ # @!parse
21
+ # # @param metadata [Hash{Symbol=>String}, nil]
22
+ # # @param status [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
23
+ # # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
24
+ # #
25
+ # def initialize(metadata: nil, status: nil, request_options: {}, **) = super
26
+
27
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @abstract
6
+ class TimeInterval < Dodopayments::Enum
7
+ DAY = :Day
8
+ WEEK = :Week
9
+ MONTH = :Month
10
+ YEAR = :Year
11
+
12
+ finalize!
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class WebhookEvent < Dodopayments::BaseModel
6
+ # @!attribute business_id
7
+ #
8
+ # @return [String]
9
+ required :business_id, String
10
+
11
+ # @!attribute created_at
12
+ #
13
+ # @return [Time]
14
+ required :created_at, Time
15
+
16
+ # @!attribute event_id
17
+ #
18
+ # @return [String]
19
+ required :event_id, String
20
+
21
+ # @!attribute event_type
22
+ #
23
+ # @return [String]
24
+ required :event_type, String
25
+
26
+ # @!attribute object_id_
27
+ #
28
+ # @return [String]
29
+ required :object_id_, String, api_name: :object_id
30
+
31
+ # @!attribute latest_attempted_at
32
+ #
33
+ # @return [Time, nil]
34
+ optional :latest_attempted_at, Time, nil?: true
35
+
36
+ # @!attribute request
37
+ #
38
+ # @return [String, nil]
39
+ optional :request, String, nil?: true
40
+
41
+ # @!attribute response
42
+ #
43
+ # @return [String, nil]
44
+ optional :response, String, nil?: true
45
+
46
+ # @!parse
47
+ # # @param business_id [String]
48
+ # # @param created_at [Time]
49
+ # # @param event_id [String]
50
+ # # @param event_type [String]
51
+ # # @param object_id_ [String]
52
+ # # @param latest_attempted_at [Time, nil]
53
+ # # @param request [String, nil]
54
+ # # @param response [String, nil]
55
+ # #
56
+ # def initialize(
57
+ # business_id:,
58
+ # created_at:,
59
+ # event_id:,
60
+ # event_type:,
61
+ # object_id_:,
62
+ # latest_attempted_at: nil,
63
+ # request: nil,
64
+ # response: nil,
65
+ # **
66
+ # )
67
+ # super
68
+ # end
69
+
70
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class WebhookEventListParams < Dodopayments::BaseModel
6
+ # @!parse
7
+ # extend Dodopayments::RequestParameters::Converter
8
+ include Dodopayments::RequestParameters
9
+
10
+ # @!attribute created_at_gte
11
+ # Get events after this created time
12
+ #
13
+ # @return [Time, nil]
14
+ optional :created_at_gte, Time, nil?: true
15
+
16
+ # @!attribute created_at_lte
17
+ # Get events created before this time
18
+ #
19
+ # @return [Time, nil]
20
+ optional :created_at_lte, Time, nil?: true
21
+
22
+ # @!attribute limit
23
+ # Min : 1, Max : 100, default 10
24
+ #
25
+ # @return [Integer, nil]
26
+ optional :limit, Integer, nil?: true
27
+
28
+ # @!attribute object_id_
29
+ # Get events history of a specific object like payment/subscription/refund/dispute
30
+ #
31
+ # @return [String, nil]
32
+ optional :object_id_, String, api_name: :object_id, nil?: true
33
+
34
+ # @!attribute page_number
35
+ # Page number default is 0
36
+ #
37
+ # @return [Integer, nil]
38
+ optional :page_number, Integer, nil?: true
39
+
40
+ # @!attribute page_size
41
+ # Page size default is 10 max is 100
42
+ #
43
+ # @return [Integer, nil]
44
+ optional :page_size, Integer, nil?: true
45
+
46
+ # @!parse
47
+ # # @param created_at_gte [Time, nil]
48
+ # # @param created_at_lte [Time, nil]
49
+ # # @param limit [Integer, nil]
50
+ # # @param object_id_ [String, nil]
51
+ # # @param page_number [Integer, nil]
52
+ # # @param page_size [Integer, nil]
53
+ # # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
54
+ # #
55
+ # def initialize(
56
+ # created_at_gte: nil,
57
+ # created_at_lte: nil,
58
+ # limit: nil,
59
+ # object_id_: nil,
60
+ # page_number: nil,
61
+ # page_size: nil,
62
+ # request_options: {},
63
+ # **
64
+ # )
65
+ # super
66
+ # end
67
+
68
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class WebhookEventRetrieveParams < Dodopayments::BaseModel
6
+ # @!parse
7
+ # extend Dodopayments::RequestParameters::Converter
8
+ include Dodopayments::RequestParameters
9
+
10
+ # @!parse
11
+ # # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
12
+ # #
13
+ # def initialize(request_options: {}, **) = super
14
+
15
+ # def initialize: (Hash | Dodopayments::BaseModel) -> void
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,164 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ # @api private
5
+ class PooledNetRequester
6
+ class << self
7
+ # @api private
8
+ #
9
+ # @param url [URI::Generic]
10
+ #
11
+ # @return [Net::HTTP]
12
+ def connect(url)
13
+ port =
14
+ case [url.port, url.scheme]
15
+ in [Integer, _]
16
+ url.port
17
+ in [nil, "http" | "ws"]
18
+ Net::HTTP.http_default_port
19
+ in [nil, "https" | "wss"]
20
+ Net::HTTP.https_default_port
21
+ end
22
+
23
+ Net::HTTP.new(url.host, port).tap do
24
+ _1.use_ssl = %w[https wss].include?(url.scheme)
25
+ _1.max_retries = 0
26
+ end
27
+ end
28
+
29
+ # @api private
30
+ #
31
+ # @param conn [Net::HTTP]
32
+ # @param deadline [Float]
33
+ def calibrate_socket_timeout(conn, deadline)
34
+ timeout = deadline - Dodopayments::Util.monotonic_secs
35
+ conn.open_timeout = conn.read_timeout = conn.write_timeout = conn.continue_timeout = timeout
36
+ end
37
+
38
+ # @api private
39
+ #
40
+ # @param request [Hash{Symbol=>Object}] .
41
+ #
42
+ # @option request [Symbol] :method
43
+ #
44
+ # @option request [URI::Generic] :url
45
+ #
46
+ # @option request [Hash{String=>String}] :headers
47
+ #
48
+ # @param blk [Proc]
49
+ #
50
+ # @return [Net::HTTPGenericRequest]
51
+ def build_request(request, &)
52
+ method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
53
+ req = Net::HTTPGenericRequest.new(
54
+ method.to_s.upcase,
55
+ !body.nil?,
56
+ method != :head,
57
+ url.to_s
58
+ )
59
+
60
+ headers.each { req[_1] = _2 }
61
+
62
+ case body
63
+ in nil
64
+ in String
65
+ req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
66
+ req.body_stream = Dodopayments::Util::ReadIOAdapter.new(body, &)
67
+ in StringIO
68
+ req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
69
+ req.body_stream = Dodopayments::Util::ReadIOAdapter.new(body, &)
70
+ in IO | Enumerator
71
+ req["transfer-encoding"] ||= "chunked" unless req["content-length"]
72
+ req.body_stream = Dodopayments::Util::ReadIOAdapter.new(body, &)
73
+ end
74
+
75
+ req
76
+ end
77
+ end
78
+
79
+ # @api private
80
+ #
81
+ # @param url [URI::Generic]
82
+ # @param blk [Proc]
83
+ private def with_pool(url, &)
84
+ origin = Dodopayments::Util.uri_origin(url)
85
+ pool =
86
+ @mutex.synchronize do
87
+ @pools[origin] ||= ConnectionPool.new(size: @size) do
88
+ self.class.connect(url)
89
+ end
90
+ end
91
+
92
+ pool.with(&)
93
+ end
94
+
95
+ # @api private
96
+ #
97
+ # @param request [Hash{Symbol=>Object}] .
98
+ #
99
+ # @option request [Symbol] :method
100
+ #
101
+ # @option request [URI::Generic] :url
102
+ #
103
+ # @option request [Hash{String=>String}] :headers
104
+ #
105
+ # @option request [Object] :body
106
+ #
107
+ # @option request [Float] :deadline
108
+ #
109
+ # @return [Array(Net::HTTPResponse, Enumerable)]
110
+ def execute(request)
111
+ url, deadline = request.fetch_values(:url, :deadline)
112
+
113
+ eof = false
114
+ finished = false
115
+ enum = Enumerator.new do |y|
116
+ with_pool(url) do |conn|
117
+ next if finished
118
+
119
+ req = self.class.build_request(request) do
120
+ self.class.calibrate_socket_timeout(conn, deadline)
121
+ end
122
+
123
+ self.class.calibrate_socket_timeout(conn, deadline)
124
+ conn.start unless conn.started?
125
+
126
+ self.class.calibrate_socket_timeout(conn, deadline)
127
+ conn.request(req) do |rsp|
128
+ y << [conn, rsp]
129
+ break if finished
130
+
131
+ rsp.read_body do |bytes|
132
+ y << bytes
133
+ break if finished
134
+
135
+ self.class.calibrate_socket_timeout(conn, deadline)
136
+ end
137
+ eof = true
138
+ end
139
+ end
140
+ end
141
+
142
+ conn, response = enum.next
143
+ body = Dodopayments::Util.fused_enum(enum, external: true) do
144
+ finished = true
145
+ tap do
146
+ enum.next
147
+ rescue StopIteration
148
+ nil
149
+ end
150
+ conn.finish if !eof && conn&.started?
151
+ end
152
+ [response, (response.body = body)]
153
+ end
154
+
155
+ # @api private
156
+ #
157
+ # @param size [Integer]
158
+ def initialize(size: Etc.nprocessors)
159
+ @mutex = Mutex.new
160
+ @size = size
161
+ @pools = {}
162
+ end
163
+ end
164
+ end