dodopayments 1.20.0 → 1.47.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 (452) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/README.md +144 -60
  4. data/SECURITY.md +2 -2
  5. data/lib/dodopayments/client.rb +25 -12
  6. data/lib/dodopayments/errors.rb +23 -1
  7. data/lib/dodopayments/file_part.rb +2 -2
  8. data/lib/dodopayments/internal/cursor_page_pagination.rb +90 -0
  9. data/lib/dodopayments/internal/default_page_number_pagination.rb +2 -2
  10. data/lib/dodopayments/internal/transport/base_client.rb +90 -10
  11. data/lib/dodopayments/internal/transport/pooled_net_requester.rb +17 -1
  12. data/lib/dodopayments/internal/type/array_of.rb +16 -2
  13. data/lib/dodopayments/internal/type/base_model.rb +152 -59
  14. data/lib/dodopayments/internal/type/boolean.rb +15 -1
  15. data/lib/dodopayments/internal/type/converter.rb +86 -33
  16. data/lib/dodopayments/internal/type/enum.rb +30 -6
  17. data/lib/dodopayments/internal/type/file_input.rb +13 -1
  18. data/lib/dodopayments/internal/type/hash_of.rb +16 -2
  19. data/lib/dodopayments/internal/type/request_parameters.rb +6 -12
  20. data/lib/dodopayments/internal/type/union.rb +44 -31
  21. data/lib/dodopayments/internal/type/unknown.rb +15 -1
  22. data/lib/dodopayments/internal/util.rb +136 -12
  23. data/lib/dodopayments/internal.rb +9 -0
  24. data/lib/dodopayments/models/addon_create_params.rb +6 -10
  25. data/lib/dodopayments/models/addon_list_params.rb +4 -4
  26. data/lib/dodopayments/models/addon_response.rb +6 -10
  27. data/lib/dodopayments/models/addon_update_params.rb +6 -10
  28. data/lib/dodopayments/models/attach_addon.rb +21 -0
  29. data/lib/dodopayments/models/billing_address.rb +3 -3
  30. data/lib/dodopayments/models/brand.rb +107 -0
  31. data/lib/dodopayments/models/brand_create_params.rb +44 -0
  32. data/lib/dodopayments/models/{webhook_event_retrieve_params.rb → brand_list_params.rb} +2 -2
  33. data/lib/dodopayments/models/brand_list_response.rb +17 -0
  34. data/lib/dodopayments/models/brand_retrieve_params.rb +14 -0
  35. data/lib/dodopayments/models/brand_update_images_params.rb +14 -0
  36. data/lib/dodopayments/models/brand_update_images_response.rb +25 -0
  37. data/lib/dodopayments/models/brand_update_params.rb +43 -0
  38. data/lib/dodopayments/models/create_new_customer.rb +0 -1
  39. data/lib/dodopayments/models/customer_list_params.rb +13 -5
  40. data/lib/dodopayments/models/customer_request.rb +3 -3
  41. data/lib/dodopayments/models/customers/customer_portal_create_params.rb +2 -2
  42. data/lib/dodopayments/models/discount.rb +15 -4
  43. data/lib/dodopayments/models/discount_create_params.rb +17 -6
  44. data/lib/dodopayments/models/discount_list_params.rb +4 -4
  45. data/lib/dodopayments/models/discount_update_params.rb +16 -5
  46. data/lib/dodopayments/models/dispute.rb +15 -7
  47. data/lib/dodopayments/models/dispute_list_params.rb +44 -16
  48. data/lib/dodopayments/models/dispute_list_response.rb +77 -0
  49. data/lib/dodopayments/models/get_dispute.rb +101 -0
  50. data/lib/dodopayments/models/license_key.rb +3 -3
  51. data/lib/dodopayments/models/license_key_duration.rb +1 -1
  52. data/lib/dodopayments/models/license_key_list_params.rb +23 -11
  53. data/lib/dodopayments/models/license_key_update_params.rb +3 -3
  54. data/lib/dodopayments/models/misc_list_supported_countries_response.rb +1 -1
  55. data/lib/dodopayments/models/new_customer.rb +27 -0
  56. data/lib/dodopayments/models/one_time_product_cart_item.rb +0 -1
  57. data/lib/dodopayments/models/payment.rb +79 -18
  58. data/lib/dodopayments/models/payment_create_params.rb +22 -41
  59. data/lib/dodopayments/models/payment_create_response.rb +16 -6
  60. data/lib/dodopayments/models/payment_list_params.rb +44 -16
  61. data/lib/dodopayments/models/payment_list_response.rb +16 -4
  62. data/lib/dodopayments/models/payment_method_types.rb +31 -0
  63. data/lib/dodopayments/models/payment_retrieve_line_items_params.rb +14 -0
  64. data/lib/dodopayments/models/payment_retrieve_line_items_response.rb +63 -0
  65. data/lib/dodopayments/models/payout_list_params.rb +4 -4
  66. data/lib/dodopayments/models/payout_list_response.rb +7 -3
  67. data/lib/dodopayments/models/price.rb +57 -30
  68. data/lib/dodopayments/models/product.rb +85 -12
  69. data/lib/dodopayments/models/product_create_params.rb +61 -12
  70. data/lib/dodopayments/models/product_list_params.rb +15 -7
  71. data/lib/dodopayments/models/product_list_response.rb +19 -11
  72. data/lib/dodopayments/models/product_update_files_params.rb +20 -0
  73. data/lib/dodopayments/models/product_update_files_response.rb +22 -0
  74. data/lib/dodopayments/models/product_update_params.rb +70 -13
  75. data/lib/dodopayments/models/products/image_update_params.rb +2 -2
  76. data/lib/dodopayments/models/refund.rb +15 -5
  77. data/lib/dodopayments/models/refund_create_params.rb +38 -1
  78. data/lib/dodopayments/models/refund_list_params.rb +26 -13
  79. data/lib/dodopayments/models/subscription.rb +38 -18
  80. data/lib/dodopayments/models/subscription_change_plan_params.rb +19 -3
  81. data/lib/dodopayments/models/subscription_charge_params.rb +38 -2
  82. data/lib/dodopayments/models/subscription_create_params.rb +53 -66
  83. data/lib/dodopayments/models/subscription_create_response.rb +24 -8
  84. data/lib/dodopayments/models/subscription_list_params.rb +37 -14
  85. data/lib/dodopayments/models/subscription_list_response.rb +37 -16
  86. data/lib/dodopayments/models/subscription_status.rb +0 -1
  87. data/lib/dodopayments/models/subscription_update_params.rb +10 -6
  88. data/lib/dodopayments/models/webhook_create_params.rb +86 -0
  89. data/lib/dodopayments/models/webhook_create_response.rb +88 -0
  90. data/lib/dodopayments/models/webhook_delete_params.rb +14 -0
  91. data/lib/dodopayments/models/webhook_event_type.rb +35 -0
  92. data/lib/dodopayments/models/webhook_list_params.rb +30 -0
  93. data/lib/dodopayments/models/webhook_list_response.rb +88 -0
  94. data/lib/dodopayments/models/webhook_payload.rb +161 -0
  95. data/lib/dodopayments/models/webhook_retrieve_params.rb +14 -0
  96. data/lib/dodopayments/models/webhook_retrieve_response.rb +88 -0
  97. data/lib/dodopayments/models/webhook_update_params.rb +69 -0
  98. data/lib/dodopayments/models/webhook_update_response.rb +88 -0
  99. data/lib/dodopayments/models/webhooks/header_retrieve_params.rb +16 -0
  100. data/lib/dodopayments/models/webhooks/header_retrieve_response.rb +31 -0
  101. data/lib/dodopayments/models/webhooks/header_update_params.rb +24 -0
  102. data/lib/dodopayments/models/your_webhook_url_create_params.rb +32 -0
  103. data/lib/dodopayments/models.rb +241 -0
  104. data/lib/dodopayments/request_options.rb +4 -0
  105. data/lib/dodopayments/resources/addons.rb +13 -21
  106. data/lib/dodopayments/resources/brands.rb +119 -0
  107. data/lib/dodopayments/resources/customers/customer_portal.rb +3 -3
  108. data/lib/dodopayments/resources/customers.rb +12 -10
  109. data/lib/dodopayments/resources/discounts.rb +24 -19
  110. data/lib/dodopayments/resources/disputes.rb +12 -12
  111. data/lib/dodopayments/resources/invoices/payments.rb +3 -2
  112. data/lib/dodopayments/resources/license_key_instances.rb +5 -5
  113. data/lib/dodopayments/resources/license_keys.rb +13 -13
  114. data/lib/dodopayments/resources/licenses.rb +4 -4
  115. data/lib/dodopayments/resources/misc.rb +1 -1
  116. data/lib/dodopayments/resources/payments.rb +38 -19
  117. data/lib/dodopayments/resources/payouts.rb +3 -3
  118. data/lib/dodopayments/resources/products/images.rb +2 -2
  119. data/lib/dodopayments/resources/products.rb +58 -24
  120. data/lib/dodopayments/resources/refunds.rb +14 -12
  121. data/lib/dodopayments/resources/subscriptions.rb +44 -29
  122. data/lib/dodopayments/resources/webhook_events.rb +0 -52
  123. data/lib/dodopayments/resources/webhooks/headers.rb +59 -0
  124. data/lib/dodopayments/resources/webhooks.rb +157 -0
  125. data/lib/dodopayments/resources/your_webhook_url.rb +56 -0
  126. data/lib/dodopayments/version.rb +1 -1
  127. data/lib/dodopayments.rb +47 -8
  128. data/rbi/dodopayments/client.rbi +24 -10
  129. data/rbi/dodopayments/errors.rbi +51 -16
  130. data/rbi/dodopayments/file_part.rbi +9 -6
  131. data/rbi/dodopayments/internal/cursor_page_pagination.rbi +25 -0
  132. data/rbi/dodopayments/internal/default_page_number_pagination.rbi +2 -1
  133. data/rbi/dodopayments/internal/transport/base_client.rbi +165 -77
  134. data/rbi/dodopayments/internal/transport/pooled_net_requester.rbi +33 -13
  135. data/rbi/dodopayments/internal/type/array_of.rbi +40 -24
  136. data/rbi/dodopayments/internal/type/base_model.rbi +160 -70
  137. data/rbi/dodopayments/internal/type/base_page.rbi +13 -8
  138. data/rbi/dodopayments/internal/type/boolean.rbi +24 -14
  139. data/rbi/dodopayments/internal/type/converter.rbi +135 -33
  140. data/rbi/dodopayments/internal/type/enum.rbi +29 -13
  141. data/rbi/dodopayments/internal/type/file_input.rbi +13 -4
  142. data/rbi/dodopayments/internal/type/hash_of.rbi +40 -24
  143. data/rbi/dodopayments/internal/type/request_parameters.rbi +14 -4
  144. data/rbi/dodopayments/internal/type/union.rbi +71 -23
  145. data/rbi/dodopayments/internal/type/unknown.rbi +24 -6
  146. data/rbi/dodopayments/internal/util.rbi +274 -89
  147. data/rbi/dodopayments/internal.rbi +7 -0
  148. data/rbi/dodopayments/models/addon_cart_response_item.rbi +16 -4
  149. data/rbi/dodopayments/models/addon_create_params.rbi +33 -24
  150. data/rbi/dodopayments/models/addon_list_params.rbi +29 -17
  151. data/rbi/dodopayments/models/addon_response.rbi +33 -27
  152. data/rbi/dodopayments/models/addon_retrieve_params.rbi +18 -5
  153. data/rbi/dodopayments/models/addon_update_images_params.rbi +18 -5
  154. data/rbi/dodopayments/models/addon_update_images_response.rbi +13 -3
  155. data/rbi/dodopayments/models/addon_update_params.rbi +34 -25
  156. data/rbi/dodopayments/models/attach_addon.rbi +28 -0
  157. data/rbi/dodopayments/models/attach_existing_customer.rbi +13 -3
  158. data/rbi/dodopayments/models/billing_address.rbi +24 -12
  159. data/rbi/dodopayments/models/brand.rbi +132 -0
  160. data/rbi/dodopayments/models/brand_create_params.rbi +68 -0
  161. data/rbi/dodopayments/models/brand_list_params.rbi +29 -0
  162. data/rbi/dodopayments/models/brand_list_response.rbi +34 -0
  163. data/rbi/dodopayments/models/brand_retrieve_params.rbi +32 -0
  164. data/rbi/dodopayments/models/brand_update_images_params.rbi +32 -0
  165. data/rbi/dodopayments/models/brand_update_images_response.rbi +36 -0
  166. data/rbi/dodopayments/models/brand_update_params.rbi +64 -0
  167. data/rbi/dodopayments/models/country_code.rbi +255 -252
  168. data/rbi/dodopayments/models/create_new_customer.rbi +27 -11
  169. data/rbi/dodopayments/models/currency.rbi +149 -148
  170. data/rbi/dodopayments/models/customer.rbi +27 -15
  171. data/rbi/dodopayments/models/customer_create_params.rbi +22 -14
  172. data/rbi/dodopayments/models/customer_limited_details.rbi +21 -4
  173. data/rbi/dodopayments/models/customer_list_params.rbi +43 -17
  174. data/rbi/dodopayments/models/customer_portal_session.rbi +13 -3
  175. data/rbi/dodopayments/models/customer_request.rbi +10 -2
  176. data/rbi/dodopayments/models/customer_retrieve_params.rbi +18 -5
  177. data/rbi/dodopayments/models/customer_update_params.rbi +21 -13
  178. data/rbi/dodopayments/models/customers/customer_portal_create_params.rbi +26 -8
  179. data/rbi/dodopayments/models/discount.rbi +42 -22
  180. data/rbi/dodopayments/models/discount_create_params.rbi +43 -20
  181. data/rbi/dodopayments/models/discount_delete_params.rbi +18 -5
  182. data/rbi/dodopayments/models/discount_list_params.rbi +32 -17
  183. data/rbi/dodopayments/models/discount_retrieve_params.rbi +18 -5
  184. data/rbi/dodopayments/models/discount_type.rbi +7 -4
  185. data/rbi/dodopayments/models/discount_update_params.rbi +43 -20
  186. data/rbi/dodopayments/models/dispute.rbi +41 -23
  187. data/rbi/dodopayments/models/dispute_list_params.rbi +178 -33
  188. data/rbi/dodopayments/models/dispute_list_response.rbi +98 -0
  189. data/rbi/dodopayments/models/dispute_retrieve_params.rbi +18 -5
  190. data/rbi/dodopayments/models/dispute_stage.rbi +11 -6
  191. data/rbi/dodopayments/models/dispute_status.rbi +20 -10
  192. data/rbi/dodopayments/models/get_dispute.rbi +124 -0
  193. data/rbi/dodopayments/models/intent_status.rbi +32 -14
  194. data/rbi/dodopayments/models/invoices/payment_retrieve_params.rbi +18 -5
  195. data/rbi/dodopayments/models/license_activate_params.rbi +21 -6
  196. data/rbi/dodopayments/models/license_deactivate_params.rbi +21 -13
  197. data/rbi/dodopayments/models/license_key.rbi +31 -23
  198. data/rbi/dodopayments/models/license_key_duration.rbi +24 -5
  199. data/rbi/dodopayments/models/license_key_instance.rbi +19 -4
  200. data/rbi/dodopayments/models/license_key_instance_list_params.rbi +23 -14
  201. data/rbi/dodopayments/models/license_key_instance_retrieve_params.rbi +18 -5
  202. data/rbi/dodopayments/models/license_key_instance_update_params.rbi +19 -6
  203. data/rbi/dodopayments/models/license_key_list_params.rbi +91 -26
  204. data/rbi/dodopayments/models/license_key_retrieve_params.rbi +18 -5
  205. data/rbi/dodopayments/models/license_key_status.rbi +10 -6
  206. data/rbi/dodopayments/models/license_key_update_params.rbi +23 -14
  207. data/rbi/dodopayments/models/license_validate_params.rbi +25 -13
  208. data/rbi/dodopayments/models/license_validate_response.rbi +13 -3
  209. data/rbi/dodopayments/models/misc_list_supported_countries_params.rbi +18 -5
  210. data/rbi/dodopayments/models/misc_list_supported_countries_response.rbi +1 -1
  211. data/rbi/dodopayments/models/new_customer.rbi +39 -0
  212. data/rbi/dodopayments/models/one_time_product_cart_item.rbi +23 -4
  213. data/rbi/dodopayments/models/payment.rbi +149 -54
  214. data/rbi/dodopayments/models/payment_create_params.rbi +67 -87
  215. data/rbi/dodopayments/models/payment_create_response.rbi +45 -22
  216. data/rbi/dodopayments/models/payment_list_params.rbi +149 -32
  217. data/rbi/dodopayments/models/payment_list_response.rbi +47 -26
  218. data/rbi/dodopayments/models/payment_method_types.rbi +52 -0
  219. data/rbi/dodopayments/models/payment_retrieve_line_items_params.rbi +32 -0
  220. data/rbi/dodopayments/models/payment_retrieve_line_items_response.rbi +114 -0
  221. data/rbi/dodopayments/models/payment_retrieve_params.rbi +18 -5
  222. data/rbi/dodopayments/models/payout_list_params.rbi +29 -17
  223. data/rbi/dodopayments/models/payout_list_response.rbi +82 -35
  224. data/rbi/dodopayments/models/price.rbi +142 -55
  225. data/rbi/dodopayments/models/product.rbi +177 -38
  226. data/rbi/dodopayments/models/product_create_params.rbi +151 -36
  227. data/rbi/dodopayments/models/product_delete_params.rbi +18 -5
  228. data/rbi/dodopayments/models/product_list_params.rbi +50 -21
  229. data/rbi/dodopayments/models/product_list_response.rbi +57 -42
  230. data/rbi/dodopayments/models/product_retrieve_params.rbi +18 -5
  231. data/rbi/dodopayments/models/product_unarchive_params.rbi +18 -5
  232. data/rbi/dodopayments/models/product_update_files_params.rbi +38 -0
  233. data/rbi/dodopayments/models/product_update_files_response.rbi +29 -0
  234. data/rbi/dodopayments/models/product_update_params.rbi +160 -37
  235. data/rbi/dodopayments/models/products/image_update_params.rbi +20 -8
  236. data/rbi/dodopayments/models/products/image_update_response.rbi +18 -4
  237. data/rbi/dodopayments/models/refund.rbi +39 -21
  238. data/rbi/dodopayments/models/refund_create_params.rbi +87 -11
  239. data/rbi/dodopayments/models/refund_list_params.rbi +86 -29
  240. data/rbi/dodopayments/models/refund_retrieve_params.rbi +18 -5
  241. data/rbi/dodopayments/models/refund_status.rbi +10 -7
  242. data/rbi/dodopayments/models/subscription.rbi +83 -47
  243. data/rbi/dodopayments/models/subscription_change_plan_params.rbi +68 -21
  244. data/rbi/dodopayments/models/subscription_charge_params.rbi +65 -6
  245. data/rbi/dodopayments/models/subscription_charge_response.rbi +13 -3
  246. data/rbi/dodopayments/models/subscription_create_params.rbi +136 -128
  247. data/rbi/dodopayments/models/subscription_create_response.rbi +51 -22
  248. data/rbi/dodopayments/models/subscription_list_params.rbi +125 -29
  249. data/rbi/dodopayments/models/subscription_list_response.rbi +85 -44
  250. data/rbi/dodopayments/models/subscription_retrieve_params.rbi +18 -5
  251. data/rbi/dodopayments/models/subscription_status.rbi +16 -10
  252. data/rbi/dodopayments/models/subscription_update_params.rbi +63 -33
  253. data/rbi/dodopayments/models/tax_category.rbi +11 -7
  254. data/rbi/dodopayments/models/time_interval.rbi +10 -7
  255. data/rbi/dodopayments/models/webhook_create_params.rbi +115 -0
  256. data/rbi/dodopayments/models/webhook_create_response.rbi +112 -0
  257. data/rbi/dodopayments/models/webhook_delete_params.rbi +32 -0
  258. data/rbi/dodopayments/models/webhook_event_type.rbi +102 -0
  259. data/rbi/dodopayments/models/webhook_list_params.rbi +54 -0
  260. data/rbi/dodopayments/models/webhook_list_response.rbi +112 -0
  261. data/rbi/dodopayments/models/webhook_payload.rbi +440 -0
  262. data/rbi/dodopayments/models/webhook_retrieve_params.rbi +32 -0
  263. data/rbi/dodopayments/models/webhook_retrieve_response.rbi +112 -0
  264. data/rbi/dodopayments/models/webhook_update_params.rbi +94 -0
  265. data/rbi/dodopayments/models/webhook_update_response.rbi +112 -0
  266. data/rbi/dodopayments/models/webhooks/header_retrieve_params.rbi +34 -0
  267. data/rbi/dodopayments/models/webhooks/header_retrieve_response.rbi +50 -0
  268. data/rbi/dodopayments/models/webhooks/header_update_params.rbi +48 -0
  269. data/rbi/dodopayments/models/your_webhook_url_create_params.rbi +56 -0
  270. data/rbi/dodopayments/models.rbi +209 -0
  271. data/rbi/dodopayments/request_options.rbi +18 -7
  272. data/rbi/dodopayments/resources/addons.rbi +44 -27
  273. data/rbi/dodopayments/resources/brands.rbi +89 -0
  274. data/rbi/dodopayments/resources/customers/customer_portal.rbi +8 -6
  275. data/rbi/dodopayments/resources/customers.rbi +31 -17
  276. data/rbi/dodopayments/resources/discounts.rbi +54 -22
  277. data/rbi/dodopayments/resources/disputes.rbi +26 -14
  278. data/rbi/dodopayments/resources/invoices/payments.rbi +10 -3
  279. data/rbi/dodopayments/resources/invoices.rbi +2 -1
  280. data/rbi/dodopayments/resources/license_key_instances.rbi +25 -10
  281. data/rbi/dodopayments/resources/license_keys.rbi +29 -15
  282. data/rbi/dodopayments/resources/licenses.rbi +25 -12
  283. data/rbi/dodopayments/resources/misc.rbi +7 -4
  284. data/rbi/dodopayments/resources/payments.rbi +61 -27
  285. data/rbi/dodopayments/resources/payouts.rbi +12 -6
  286. data/rbi/dodopayments/resources/products/images.rbi +10 -4
  287. data/rbi/dodopayments/resources/products.rbi +118 -41
  288. data/rbi/dodopayments/resources/refunds.rbi +35 -15
  289. data/rbi/dodopayments/resources/subscriptions.rbi +98 -50
  290. data/rbi/dodopayments/resources/webhook_events.rbi +2 -34
  291. data/rbi/dodopayments/resources/webhooks/headers.rbi +40 -0
  292. data/rbi/dodopayments/resources/webhooks.rbi +127 -0
  293. data/rbi/dodopayments/resources/your_webhook_url.rbi +51 -0
  294. data/sig/dodopayments/client.rbs +8 -2
  295. data/sig/dodopayments/errors.rbs +9 -0
  296. data/sig/dodopayments/internal/cursor_page_pagination.rbs +15 -0
  297. data/sig/dodopayments/internal/transport/base_client.rbs +17 -2
  298. data/sig/dodopayments/internal/transport/pooled_net_requester.rbs +4 -0
  299. data/sig/dodopayments/internal/type/array_of.rbs +3 -0
  300. data/sig/dodopayments/internal/type/base_model.rbs +13 -5
  301. data/sig/dodopayments/internal/type/base_page.rbs +1 -1
  302. data/sig/dodopayments/internal/type/boolean.rbs +3 -0
  303. data/sig/dodopayments/internal/type/converter.rbs +26 -1
  304. data/sig/dodopayments/internal/type/enum.rbs +3 -0
  305. data/sig/dodopayments/internal/type/file_input.rbs +2 -0
  306. data/sig/dodopayments/internal/type/hash_of.rbs +3 -0
  307. data/sig/dodopayments/internal/type/request_parameters.rbs +5 -1
  308. data/sig/dodopayments/internal/type/union.rbs +5 -2
  309. data/sig/dodopayments/internal/type/unknown.rbs +3 -0
  310. data/sig/dodopayments/internal/util.rbs +27 -0
  311. data/sig/dodopayments/internal.rbs +4 -0
  312. data/sig/dodopayments/models/addon_cart_response_item.rbs +1 -1
  313. data/sig/dodopayments/models/addon_create_params.rbs +8 -1
  314. data/sig/dodopayments/models/addon_list_params.rbs +14 -6
  315. data/sig/dodopayments/models/addon_response.rbs +12 -1
  316. data/sig/dodopayments/models/addon_retrieve_params.rbs +1 -1
  317. data/sig/dodopayments/models/addon_update_images_params.rbs +1 -1
  318. data/sig/dodopayments/models/addon_update_images_response.rbs +1 -1
  319. data/sig/dodopayments/models/addon_update_params.rbs +9 -1
  320. data/sig/dodopayments/models/attach_addon.rbs +15 -0
  321. data/sig/dodopayments/models/attach_existing_customer.rbs +1 -1
  322. data/sig/dodopayments/models/billing_address.rbs +7 -1
  323. data/sig/dodopayments/models/brand.rbs +88 -0
  324. data/sig/dodopayments/models/brand_create_params.rbs +46 -0
  325. data/sig/dodopayments/models/{webhook_event_retrieve_params.rbs → brand_list_params.rbs} +3 -3
  326. data/sig/dodopayments/models/brand_list_response.rbs +13 -0
  327. data/sig/dodopayments/models/brand_retrieve_params.rbs +15 -0
  328. data/sig/dodopayments/models/brand_update_images_params.rbs +15 -0
  329. data/sig/dodopayments/models/brand_update_images_response.rbs +15 -0
  330. data/sig/dodopayments/models/brand_update_params.rbs +41 -0
  331. data/sig/dodopayments/models/create_new_customer.rbs +6 -1
  332. data/sig/dodopayments/models/customer.rbs +8 -1
  333. data/sig/dodopayments/models/customer_create_params.rbs +6 -1
  334. data/sig/dodopayments/models/customer_limited_details.rbs +1 -1
  335. data/sig/dodopayments/models/customer_list_params.rbs +20 -6
  336. data/sig/dodopayments/models/customer_portal_session.rbs +1 -1
  337. data/sig/dodopayments/models/customer_request.rbs +2 -3
  338. data/sig/dodopayments/models/customer_retrieve_params.rbs +1 -1
  339. data/sig/dodopayments/models/customer_update_params.rbs +5 -1
  340. data/sig/dodopayments/models/customers/customer_portal_create_params.rbs +9 -4
  341. data/sig/dodopayments/models/discount.rbs +18 -1
  342. data/sig/dodopayments/models/discount_create_params.rbs +15 -1
  343. data/sig/dodopayments/models/discount_delete_params.rbs +1 -1
  344. data/sig/dodopayments/models/discount_list_params.rbs +14 -6
  345. data/sig/dodopayments/models/discount_retrieve_params.rbs +1 -1
  346. data/sig/dodopayments/models/discount_update_params.rbs +15 -1
  347. data/sig/dodopayments/models/dispute.rbs +17 -3
  348. data/sig/dodopayments/models/dispute_list_params.rbs +84 -22
  349. data/sig/dodopayments/models/dispute_list_response.rbs +55 -0
  350. data/sig/dodopayments/models/dispute_retrieve_params.rbs +1 -1
  351. data/sig/dodopayments/models/get_dispute.rbs +70 -0
  352. data/sig/dodopayments/models/invoices/payment_retrieve_params.rbs +1 -1
  353. data/sig/dodopayments/models/license_activate_params.rbs +5 -1
  354. data/sig/dodopayments/models/license_deactivate_params.rbs +5 -1
  355. data/sig/dodopayments/models/license_key.rbs +14 -1
  356. data/sig/dodopayments/models/license_key_duration.rbs +4 -1
  357. data/sig/dodopayments/models/license_key_instance.rbs +7 -1
  358. data/sig/dodopayments/models/license_key_instance_list_params.rbs +6 -1
  359. data/sig/dodopayments/models/license_key_instance_retrieve_params.rbs +1 -1
  360. data/sig/dodopayments/models/license_key_instance_update_params.rbs +4 -1
  361. data/sig/dodopayments/models/license_key_list_params.rbs +47 -16
  362. data/sig/dodopayments/models/license_key_retrieve_params.rbs +1 -1
  363. data/sig/dodopayments/models/license_key_update_params.rbs +6 -1
  364. data/sig/dodopayments/models/license_validate_params.rbs +5 -1
  365. data/sig/dodopayments/models/license_validate_response.rbs +1 -1
  366. data/sig/dodopayments/models/misc_list_supported_countries_params.rbs +1 -1
  367. data/sig/dodopayments/models/new_customer.rbs +21 -0
  368. data/sig/dodopayments/models/one_time_product_cart_item.rbs +5 -1
  369. data/sig/dodopayments/models/payment.rbs +76 -17
  370. data/sig/dodopayments/models/payment_create_params.rbs +23 -55
  371. data/sig/dodopayments/models/payment_create_response.rbs +21 -7
  372. data/sig/dodopayments/models/payment_list_params.rbs +85 -22
  373. data/sig/dodopayments/models/payment_list_response.rbs +25 -4
  374. data/sig/dodopayments/models/payment_method_types.rbs +48 -0
  375. data/sig/dodopayments/models/payment_retrieve_line_items_params.rbs +15 -0
  376. data/sig/dodopayments/models/payment_retrieve_line_items_response.rbs +67 -0
  377. data/sig/dodopayments/models/payment_retrieve_params.rbs +1 -1
  378. data/sig/dodopayments/models/payout_list_params.rbs +14 -6
  379. data/sig/dodopayments/models/payout_list_response.rbs +17 -1
  380. data/sig/dodopayments/models/price.rbs +53 -13
  381. data/sig/dodopayments/models/product.rbs +80 -4
  382. data/sig/dodopayments/models/product_create_params.rbs +45 -4
  383. data/sig/dodopayments/models/product_delete_params.rbs +1 -1
  384. data/sig/dodopayments/models/product_list_params.rbs +29 -10
  385. data/sig/dodopayments/models/product_list_response.rbs +20 -1
  386. data/sig/dodopayments/models/product_retrieve_params.rbs +1 -1
  387. data/sig/dodopayments/models/product_unarchive_params.rbs +1 -1
  388. data/sig/dodopayments/models/product_update_files_params.rbs +23 -0
  389. data/sig/dodopayments/models/product_update_files_response.rbs +15 -0
  390. data/sig/dodopayments/models/product_update_params.rbs +58 -4
  391. data/sig/dodopayments/models/products/image_update_params.rbs +9 -4
  392. data/sig/dodopayments/models/products/image_update_response.rbs +1 -1
  393. data/sig/dodopayments/models/refund.rbs +15 -1
  394. data/sig/dodopayments/models/refund_create_params.rbs +38 -2
  395. data/sig/dodopayments/models/refund_list_params.rbs +54 -19
  396. data/sig/dodopayments/models/refund_retrieve_params.rbs +1 -1
  397. data/sig/dodopayments/models/subscription.rbs +43 -10
  398. data/sig/dodopayments/models/subscription_change_plan_params.rbs +16 -3
  399. data/sig/dodopayments/models/subscription_charge_params.rbs +27 -2
  400. data/sig/dodopayments/models/subscription_charge_response.rbs +1 -1
  401. data/sig/dodopayments/models/subscription_create_params.rbs +58 -73
  402. data/sig/dodopayments/models/subscription_create_response.rbs +26 -7
  403. data/sig/dodopayments/models/subscription_list_params.rbs +64 -19
  404. data/sig/dodopayments/models/subscription_list_response.rbs +39 -7
  405. data/sig/dodopayments/models/subscription_retrieve_params.rbs +1 -1
  406. data/sig/dodopayments/models/subscription_status.rbs +1 -2
  407. data/sig/dodopayments/models/subscription_update_params.rbs +20 -8
  408. data/sig/dodopayments/models/webhook_create_params.rbs +65 -0
  409. data/sig/dodopayments/models/webhook_create_response.rbs +60 -0
  410. data/sig/dodopayments/models/webhook_delete_params.rbs +15 -0
  411. data/sig/dodopayments/models/webhook_event_type.rbs +54 -0
  412. data/sig/dodopayments/models/webhook_list_params.rbs +28 -0
  413. data/sig/dodopayments/models/webhook_list_response.rbs +60 -0
  414. data/sig/dodopayments/models/webhook_payload.rbs +203 -0
  415. data/sig/dodopayments/models/webhook_retrieve_params.rbs +15 -0
  416. data/sig/dodopayments/models/webhook_retrieve_response.rbs +60 -0
  417. data/sig/dodopayments/models/webhook_update_params.rbs +51 -0
  418. data/sig/dodopayments/models/webhook_update_response.rbs +60 -0
  419. data/sig/dodopayments/models/webhooks/header_retrieve_params.rbs +17 -0
  420. data/sig/dodopayments/models/webhooks/header_retrieve_response.rbs +24 -0
  421. data/sig/dodopayments/models/webhooks/header_update_params.rbs +26 -0
  422. data/sig/dodopayments/models/your_webhook_url_create_params.rbs +42 -0
  423. data/sig/dodopayments/models.rbs +201 -0
  424. data/sig/dodopayments/request_options.rbs +1 -1
  425. data/sig/dodopayments/resources/addons.rbs +6 -6
  426. data/sig/dodopayments/resources/brands.rbs +39 -0
  427. data/sig/dodopayments/resources/customers/customer_portal.rbs +2 -2
  428. data/sig/dodopayments/resources/customers.rbs +7 -6
  429. data/sig/dodopayments/resources/discounts.rbs +8 -6
  430. data/sig/dodopayments/resources/disputes.rbs +9 -9
  431. data/sig/dodopayments/resources/invoices/payments.rbs +1 -1
  432. data/sig/dodopayments/resources/license_key_instances.rbs +3 -3
  433. data/sig/dodopayments/resources/license_keys.rbs +8 -8
  434. data/sig/dodopayments/resources/licenses.rbs +1 -1
  435. data/sig/dodopayments/resources/payments.rbs +17 -11
  436. data/sig/dodopayments/resources/payouts.rbs +2 -2
  437. data/sig/dodopayments/resources/products/images.rbs +1 -1
  438. data/sig/dodopayments/resources/products.rbs +20 -7
  439. data/sig/dodopayments/resources/refunds.rbs +10 -9
  440. data/sig/dodopayments/resources/subscriptions.rbs +21 -14
  441. data/sig/dodopayments/resources/webhook_events.rbs +0 -15
  442. data/sig/dodopayments/resources/webhooks/headers.rbs +20 -0
  443. data/sig/dodopayments/resources/webhooks.rbs +48 -0
  444. data/sig/dodopayments/resources/your_webhook_url.rbs +18 -0
  445. metadata +116 -11
  446. data/lib/dodopayments/models/webhook_event.rb +0 -58
  447. data/lib/dodopayments/models/webhook_event_list_params.rb +0 -66
  448. data/rbi/dodopayments/models/webhook_event.rbi +0 -71
  449. data/rbi/dodopayments/models/webhook_event_list_params.rbi +0 -77
  450. data/rbi/dodopayments/models/webhook_event_retrieve_params.rbi +0 -19
  451. data/sig/dodopayments/models/webhook_event.rbs +0 -46
  452. data/sig/dodopayments/models/webhook_event_list_params.rbs +0 -43
@@ -2,11 +2,29 @@
2
2
 
3
3
  module Dodopayments
4
4
  module Models
5
+ # One-time price details.
5
6
  module Price
6
7
  extend Dodopayments::Internal::Type::Union
7
8
 
9
+ Variants =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::Price::OneTimePrice,
13
+ Dodopayments::Price::RecurringPrice
14
+ )
15
+ end
16
+
8
17
  class OneTimePrice < Dodopayments::Internal::Type::BaseModel
9
- sig { returns(Dodopayments::Models::Currency::OrSymbol) }
18
+ OrHash =
19
+ T.type_alias do
20
+ T.any(
21
+ Dodopayments::Price::OneTimePrice,
22
+ Dodopayments::Internal::AnyHash
23
+ )
24
+ end
25
+
26
+ # The currency in which the payment is made.
27
+ sig { returns(Dodopayments::Currency::OrSymbol) }
10
28
  attr_accessor :currency
11
29
 
12
30
  # Discount applied to the price, represented as a percentage (0 to 100).
@@ -26,7 +44,7 @@ module Dodopayments
26
44
  sig { returns(T::Boolean) }
27
45
  attr_accessor :purchasing_power_parity
28
46
 
29
- sig { returns(Symbol) }
47
+ sig { returns(Dodopayments::Price::OneTimePrice::Type::OrSymbol) }
30
48
  attr_accessor :type
31
49
 
32
50
  # Indicates whether the customer can pay any amount they choose. If set to `true`,
@@ -47,20 +65,21 @@ module Dodopayments
47
65
  sig { returns(T.nilable(T::Boolean)) }
48
66
  attr_accessor :tax_inclusive
49
67
 
68
+ # One-time price details.
50
69
  sig do
51
70
  params(
52
- currency: Dodopayments::Models::Currency::OrSymbol,
71
+ currency: Dodopayments::Currency::OrSymbol,
53
72
  discount: Float,
54
73
  price: Integer,
55
74
  purchasing_power_parity: T::Boolean,
75
+ type: Dodopayments::Price::OneTimePrice::Type::OrSymbol,
56
76
  pay_what_you_want: T::Boolean,
57
77
  suggested_price: T.nilable(Integer),
58
- tax_inclusive: T.nilable(T::Boolean),
59
- type: Symbol
60
- )
61
- .returns(T.attached_class)
78
+ tax_inclusive: T.nilable(T::Boolean)
79
+ ).returns(T.attached_class)
62
80
  end
63
81
  def self.new(
82
+ # The currency in which the payment is made.
64
83
  currency:,
65
84
  # Discount applied to the price, represented as a percentage (0 to 100).
66
85
  discount:,
@@ -73,6 +92,7 @@ module Dodopayments
73
92
  # Indicates if purchasing power parity adjustments are applied to the price.
74
93
  # Purchasing power parity feature is not available as of now.
75
94
  purchasing_power_parity:,
95
+ type:,
76
96
  # Indicates whether the customer can pay any amount they choose. If set to `true`,
77
97
  # the [`price`](Self::price) field is the minimum amount.
78
98
  pay_what_you_want: nil,
@@ -81,29 +101,63 @@ module Dodopayments
81
101
  # ignored.
82
102
  suggested_price: nil,
83
103
  # Indicates if the price is tax inclusive.
84
- tax_inclusive: nil,
85
- type: :one_time_price
86
- ); end
104
+ tax_inclusive: nil
105
+ )
106
+ end
107
+
87
108
  sig do
88
- override
89
- .returns(
90
- {
91
- currency: Dodopayments::Models::Currency::OrSymbol,
92
- discount: Float,
93
- price: Integer,
94
- purchasing_power_parity: T::Boolean,
95
- type: Symbol,
96
- pay_what_you_want: T::Boolean,
97
- suggested_price: T.nilable(Integer),
98
- tax_inclusive: T.nilable(T::Boolean)
99
- }
109
+ override.returns(
110
+ {
111
+ currency: Dodopayments::Currency::OrSymbol,
112
+ discount: Float,
113
+ price: Integer,
114
+ purchasing_power_parity: T::Boolean,
115
+ type: Dodopayments::Price::OneTimePrice::Type::OrSymbol,
116
+ pay_what_you_want: T::Boolean,
117
+ suggested_price: T.nilable(Integer),
118
+ tax_inclusive: T.nilable(T::Boolean)
119
+ }
120
+ )
121
+ end
122
+ def to_hash
123
+ end
124
+
125
+ module Type
126
+ extend Dodopayments::Internal::Type::Enum
127
+
128
+ TaggedSymbol =
129
+ T.type_alias do
130
+ T.all(Symbol, Dodopayments::Price::OneTimePrice::Type)
131
+ end
132
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
133
+
134
+ ONE_TIME_PRICE =
135
+ T.let(
136
+ :one_time_price,
137
+ Dodopayments::Price::OneTimePrice::Type::TaggedSymbol
100
138
  )
139
+
140
+ sig do
141
+ override.returns(
142
+ T::Array[Dodopayments::Price::OneTimePrice::Type::TaggedSymbol]
143
+ )
144
+ end
145
+ def self.values
146
+ end
101
147
  end
102
- def to_hash; end
103
148
  end
104
149
 
105
150
  class RecurringPrice < Dodopayments::Internal::Type::BaseModel
106
- sig { returns(Dodopayments::Models::Currency::OrSymbol) }
151
+ OrHash =
152
+ T.type_alias do
153
+ T.any(
154
+ Dodopayments::Price::RecurringPrice,
155
+ Dodopayments::Internal::AnyHash
156
+ )
157
+ end
158
+
159
+ # The currency in which the payment is made.
160
+ sig { returns(Dodopayments::Currency::OrSymbol) }
107
161
  attr_accessor :currency
108
162
 
109
163
  # Discount applied to the price, represented as a percentage (0 to 100).
@@ -115,7 +169,8 @@ module Dodopayments
115
169
  sig { returns(Integer) }
116
170
  attr_accessor :payment_frequency_count
117
171
 
118
- sig { returns(Dodopayments::Models::TimeInterval::OrSymbol) }
172
+ # The time interval for the payment frequency (e.g., day, month, year).
173
+ sig { returns(Dodopayments::TimeInterval::OrSymbol) }
119
174
  attr_accessor :payment_frequency_interval
120
175
 
121
176
  # The payment amount. Represented in the lowest denomination of the currency
@@ -133,10 +188,11 @@ module Dodopayments
133
188
  sig { returns(Integer) }
134
189
  attr_accessor :subscription_period_count
135
190
 
136
- sig { returns(Dodopayments::Models::TimeInterval::OrSymbol) }
191
+ # The time interval for the subscription period (e.g., day, month, year).
192
+ sig { returns(Dodopayments::TimeInterval::OrSymbol) }
137
193
  attr_accessor :subscription_period_interval
138
194
 
139
- sig { returns(Symbol) }
195
+ sig { returns(Dodopayments::Price::RecurringPrice::Type::OrSymbol) }
140
196
  attr_accessor :type
141
197
 
142
198
  # Indicates if the price is tax inclusive
@@ -150,29 +206,31 @@ module Dodopayments
150
206
  sig { params(trial_period_days: Integer).void }
151
207
  attr_writer :trial_period_days
152
208
 
209
+ # Recurring price details.
153
210
  sig do
154
211
  params(
155
- currency: Dodopayments::Models::Currency::OrSymbol,
212
+ currency: Dodopayments::Currency::OrSymbol,
156
213
  discount: Float,
157
214
  payment_frequency_count: Integer,
158
- payment_frequency_interval: Dodopayments::Models::TimeInterval::OrSymbol,
215
+ payment_frequency_interval: Dodopayments::TimeInterval::OrSymbol,
159
216
  price: Integer,
160
217
  purchasing_power_parity: T::Boolean,
161
218
  subscription_period_count: Integer,
162
- subscription_period_interval: Dodopayments::Models::TimeInterval::OrSymbol,
219
+ subscription_period_interval: Dodopayments::TimeInterval::OrSymbol,
220
+ type: Dodopayments::Price::RecurringPrice::Type::OrSymbol,
163
221
  tax_inclusive: T.nilable(T::Boolean),
164
- trial_period_days: Integer,
165
- type: Symbol
166
- )
167
- .returns(T.attached_class)
222
+ trial_period_days: Integer
223
+ ).returns(T.attached_class)
168
224
  end
169
225
  def self.new(
226
+ # The currency in which the payment is made.
170
227
  currency:,
171
228
  # Discount applied to the price, represented as a percentage (0 to 100).
172
229
  discount:,
173
230
  # Number of units for the payment frequency. For example, a value of `1` with a
174
231
  # `payment_frequency_interval` of `month` represents monthly payments.
175
232
  payment_frequency_count:,
233
+ # The time interval for the payment frequency (e.g., day, month, year).
176
234
  payment_frequency_interval:,
177
235
  # The payment amount. Represented in the lowest denomination of the currency
178
236
  # (e.g., cents for USD). For example, to charge $1.00, pass `100`.
@@ -183,36 +241,65 @@ module Dodopayments
183
241
  # Number of units for the subscription period. For example, a value of `12` with a
184
242
  # `subscription_period_interval` of `month` represents a one-year subscription.
185
243
  subscription_period_count:,
244
+ # The time interval for the subscription period (e.g., day, month, year).
186
245
  subscription_period_interval:,
246
+ type:,
187
247
  # Indicates if the price is tax inclusive
188
248
  tax_inclusive: nil,
189
249
  # Number of days for the trial period. A value of `0` indicates no trial period.
190
- trial_period_days: nil,
191
- type: :recurring_price
192
- ); end
250
+ trial_period_days: nil
251
+ )
252
+ end
253
+
193
254
  sig do
194
- override
195
- .returns(
196
- {
197
- currency: Dodopayments::Models::Currency::OrSymbol,
198
- discount: Float,
199
- payment_frequency_count: Integer,
200
- payment_frequency_interval: Dodopayments::Models::TimeInterval::OrSymbol,
201
- price: Integer,
202
- purchasing_power_parity: T::Boolean,
203
- subscription_period_count: Integer,
204
- subscription_period_interval: Dodopayments::Models::TimeInterval::OrSymbol,
205
- type: Symbol,
206
- tax_inclusive: T.nilable(T::Boolean),
207
- trial_period_days: Integer
208
- }
255
+ override.returns(
256
+ {
257
+ currency: Dodopayments::Currency::OrSymbol,
258
+ discount: Float,
259
+ payment_frequency_count: Integer,
260
+ payment_frequency_interval: Dodopayments::TimeInterval::OrSymbol,
261
+ price: Integer,
262
+ purchasing_power_parity: T::Boolean,
263
+ subscription_period_count: Integer,
264
+ subscription_period_interval:
265
+ Dodopayments::TimeInterval::OrSymbol,
266
+ type: Dodopayments::Price::RecurringPrice::Type::OrSymbol,
267
+ tax_inclusive: T.nilable(T::Boolean),
268
+ trial_period_days: Integer
269
+ }
270
+ )
271
+ end
272
+ def to_hash
273
+ end
274
+
275
+ module Type
276
+ extend Dodopayments::Internal::Type::Enum
277
+
278
+ TaggedSymbol =
279
+ T.type_alias do
280
+ T.all(Symbol, Dodopayments::Price::RecurringPrice::Type)
281
+ end
282
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
283
+
284
+ RECURRING_PRICE =
285
+ T.let(
286
+ :recurring_price,
287
+ Dodopayments::Price::RecurringPrice::Type::TaggedSymbol
288
+ )
289
+
290
+ sig do
291
+ override.returns(
292
+ T::Array[Dodopayments::Price::RecurringPrice::Type::TaggedSymbol]
209
293
  )
294
+ end
295
+ def self.values
296
+ end
210
297
  end
211
- def to_hash; end
212
298
  end
213
299
 
214
- sig { override.returns([Dodopayments::Models::Price::OneTimePrice, Dodopayments::Models::Price::RecurringPrice]) }
215
- def self.variants; end
300
+ sig { override.returns(T::Array[Dodopayments::Price::Variants]) }
301
+ def self.variants
302
+ end
216
303
  end
217
304
  end
218
305
  end
@@ -3,6 +3,14 @@
3
3
  module Dodopayments
4
4
  module Models
5
5
  class Product < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Dodopayments::Product, Dodopayments::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :brand_id
13
+
6
14
  # Unique identifier for the business to which the product belongs.
7
15
  sig { returns(String) }
8
16
  attr_accessor :business_id
@@ -19,16 +27,20 @@ module Dodopayments
19
27
  sig { returns(T::Boolean) }
20
28
  attr_accessor :license_key_enabled
21
29
 
22
- sig { returns(T.any(Dodopayments::Models::Price::OneTimePrice, Dodopayments::Models::Price::RecurringPrice)) }
30
+ # Additional custom data associated with the product
31
+ sig { returns(T::Hash[Symbol, String]) }
32
+ attr_accessor :metadata
33
+
34
+ # Pricing information for the product.
35
+ sig { returns(Dodopayments::Price::Variants) }
23
36
  attr_accessor :price
24
37
 
25
38
  # Unique identifier for the product.
26
39
  sig { returns(String) }
27
40
  attr_accessor :product_id
28
41
 
29
- # Represents the different categories of taxation applicable to various products
30
- # and services.
31
- sig { returns(Dodopayments::Models::TaxCategory::TaggedSymbol) }
42
+ # Tax category associated with the product.
43
+ sig { returns(Dodopayments::TaxCategory::TaggedSymbol) }
32
44
  attr_accessor :tax_category
33
45
 
34
46
  # Timestamp when the product was last updated.
@@ -43,6 +55,17 @@ module Dodopayments
43
55
  sig { returns(T.nilable(String)) }
44
56
  attr_accessor :description
45
57
 
58
+ sig { returns(T.nilable(Dodopayments::Product::DigitalProductDelivery)) }
59
+ attr_reader :digital_product_delivery
60
+
61
+ sig do
62
+ params(
63
+ digital_product_delivery:
64
+ T.nilable(Dodopayments::Product::DigitalProductDelivery::OrHash)
65
+ ).void
66
+ end
67
+ attr_writer :digital_product_delivery
68
+
46
69
  # URL of the product image, optional.
47
70
  sig { returns(T.nilable(String)) }
48
71
  attr_accessor :image
@@ -55,14 +78,15 @@ module Dodopayments
55
78
  sig { returns(T.nilable(Integer)) }
56
79
  attr_accessor :license_key_activations_limit
57
80
 
58
- sig { returns(T.nilable(Dodopayments::Models::LicenseKeyDuration)) }
81
+ # Duration of the license key validity, if enabled.
82
+ sig { returns(T.nilable(Dodopayments::LicenseKeyDuration)) }
59
83
  attr_reader :license_key_duration
60
84
 
61
85
  sig do
62
86
  params(
63
- license_key_duration: T.nilable(T.any(Dodopayments::Models::LicenseKeyDuration, Dodopayments::Internal::AnyHash))
64
- )
65
- .void
87
+ license_key_duration:
88
+ T.nilable(Dodopayments::LicenseKeyDuration::OrHash)
89
+ ).void
66
90
  end
67
91
  attr_writer :license_key_duration
68
92
 
@@ -72,29 +96,34 @@ module Dodopayments
72
96
 
73
97
  sig do
74
98
  params(
99
+ brand_id: String,
75
100
  business_id: String,
76
101
  created_at: Time,
77
102
  is_recurring: T::Boolean,
78
103
  license_key_enabled: T::Boolean,
79
- price: T.any(
80
- Dodopayments::Models::Price::OneTimePrice,
81
- Dodopayments::Internal::AnyHash,
82
- Dodopayments::Models::Price::RecurringPrice
83
- ),
104
+ metadata: T::Hash[Symbol, String],
105
+ price:
106
+ T.any(
107
+ Dodopayments::Price::OneTimePrice::OrHash,
108
+ Dodopayments::Price::RecurringPrice::OrHash
109
+ ),
84
110
  product_id: String,
85
- tax_category: Dodopayments::Models::TaxCategory::OrSymbol,
111
+ tax_category: Dodopayments::TaxCategory::OrSymbol,
86
112
  updated_at: Time,
87
113
  addons: T.nilable(T::Array[String]),
88
114
  description: T.nilable(String),
115
+ digital_product_delivery:
116
+ T.nilable(Dodopayments::Product::DigitalProductDelivery::OrHash),
89
117
  image: T.nilable(String),
90
118
  license_key_activation_message: T.nilable(String),
91
119
  license_key_activations_limit: T.nilable(Integer),
92
- license_key_duration: T.nilable(T.any(Dodopayments::Models::LicenseKeyDuration, Dodopayments::Internal::AnyHash)),
120
+ license_key_duration:
121
+ T.nilable(Dodopayments::LicenseKeyDuration::OrHash),
93
122
  name: T.nilable(String)
94
- )
95
- .returns(T.attached_class)
123
+ ).returns(T.attached_class)
96
124
  end
97
125
  def self.new(
126
+ brand_id:,
98
127
  # Unique identifier for the business to which the product belongs.
99
128
  business_id:,
100
129
  # Timestamp when the product was created.
@@ -103,11 +132,13 @@ module Dodopayments
103
132
  is_recurring:,
104
133
  # Indicates whether the product requires a license key.
105
134
  license_key_enabled:,
135
+ # Additional custom data associated with the product
136
+ metadata:,
137
+ # Pricing information for the product.
106
138
  price:,
107
139
  # Unique identifier for the product.
108
140
  product_id:,
109
- # Represents the different categories of taxation applicable to various products
110
- # and services.
141
+ # Tax category associated with the product.
111
142
  tax_category:,
112
143
  # Timestamp when the product was last updated.
113
144
  updated_at:,
@@ -115,39 +146,147 @@ module Dodopayments
115
146
  addons: nil,
116
147
  # Description of the product, optional.
117
148
  description: nil,
149
+ digital_product_delivery: nil,
118
150
  # URL of the product image, optional.
119
151
  image: nil,
120
152
  # Message sent upon license key activation, if applicable.
121
153
  license_key_activation_message: nil,
122
154
  # Limit on the number of activations for the license key, if enabled.
123
155
  license_key_activations_limit: nil,
156
+ # Duration of the license key validity, if enabled.
124
157
  license_key_duration: nil,
125
158
  # Name of the product, optional.
126
159
  name: nil
127
- ); end
160
+ )
161
+ end
162
+
128
163
  sig do
129
- override
130
- .returns(
164
+ override.returns(
165
+ {
166
+ brand_id: String,
167
+ business_id: String,
168
+ created_at: Time,
169
+ is_recurring: T::Boolean,
170
+ license_key_enabled: T::Boolean,
171
+ metadata: T::Hash[Symbol, String],
172
+ price: Dodopayments::Price::Variants,
173
+ product_id: String,
174
+ tax_category: Dodopayments::TaxCategory::TaggedSymbol,
175
+ updated_at: Time,
176
+ addons: T.nilable(T::Array[String]),
177
+ description: T.nilable(String),
178
+ digital_product_delivery:
179
+ T.nilable(Dodopayments::Product::DigitalProductDelivery),
180
+ image: T.nilable(String),
181
+ license_key_activation_message: T.nilable(String),
182
+ license_key_activations_limit: T.nilable(Integer),
183
+ license_key_duration: T.nilable(Dodopayments::LicenseKeyDuration),
184
+ name: T.nilable(String)
185
+ }
186
+ )
187
+ end
188
+ def to_hash
189
+ end
190
+
191
+ class DigitalProductDelivery < Dodopayments::Internal::Type::BaseModel
192
+ OrHash =
193
+ T.type_alias do
194
+ T.any(
195
+ Dodopayments::Product::DigitalProductDelivery,
196
+ Dodopayments::Internal::AnyHash
197
+ )
198
+ end
199
+
200
+ # External URL to digital product
201
+ sig { returns(T.nilable(String)) }
202
+ attr_accessor :external_url
203
+
204
+ # Uploaded files ids of digital product
205
+ sig do
206
+ returns(
207
+ T.nilable(
208
+ T::Array[Dodopayments::Product::DigitalProductDelivery::File]
209
+ )
210
+ )
211
+ end
212
+ attr_accessor :files
213
+
214
+ # Instructions to download and use the digital product
215
+ sig { returns(T.nilable(String)) }
216
+ attr_accessor :instructions
217
+
218
+ sig do
219
+ params(
220
+ external_url: T.nilable(String),
221
+ files:
222
+ T.nilable(
223
+ T::Array[
224
+ Dodopayments::Product::DigitalProductDelivery::File::OrHash
225
+ ]
226
+ ),
227
+ instructions: T.nilable(String)
228
+ ).returns(T.attached_class)
229
+ end
230
+ def self.new(
231
+ # External URL to digital product
232
+ external_url: nil,
233
+ # Uploaded files ids of digital product
234
+ files: nil,
235
+ # Instructions to download and use the digital product
236
+ instructions: nil
237
+ )
238
+ end
239
+
240
+ sig do
241
+ override.returns(
131
242
  {
132
- business_id: String,
133
- created_at: Time,
134
- is_recurring: T::Boolean,
135
- license_key_enabled: T::Boolean,
136
- price: T.any(Dodopayments::Models::Price::OneTimePrice, Dodopayments::Models::Price::RecurringPrice),
137
- product_id: String,
138
- tax_category: Dodopayments::Models::TaxCategory::TaggedSymbol,
139
- updated_at: Time,
140
- addons: T.nilable(T::Array[String]),
141
- description: T.nilable(String),
142
- image: T.nilable(String),
143
- license_key_activation_message: T.nilable(String),
144
- license_key_activations_limit: T.nilable(Integer),
145
- license_key_duration: T.nilable(Dodopayments::Models::LicenseKeyDuration),
146
- name: T.nilable(String)
243
+ external_url: T.nilable(String),
244
+ files:
245
+ T.nilable(
246
+ T::Array[Dodopayments::Product::DigitalProductDelivery::File]
247
+ ),
248
+ instructions: T.nilable(String)
147
249
  }
148
250
  )
251
+ end
252
+ def to_hash
253
+ end
254
+
255
+ class File < Dodopayments::Internal::Type::BaseModel
256
+ OrHash =
257
+ T.type_alias do
258
+ T.any(
259
+ Dodopayments::Product::DigitalProductDelivery::File,
260
+ Dodopayments::Internal::AnyHash
261
+ )
262
+ end
263
+
264
+ sig { returns(String) }
265
+ attr_accessor :file_id
266
+
267
+ sig { returns(String) }
268
+ attr_accessor :file_name
269
+
270
+ sig { returns(String) }
271
+ attr_accessor :url
272
+
273
+ sig do
274
+ params(file_id: String, file_name: String, url: String).returns(
275
+ T.attached_class
276
+ )
277
+ end
278
+ def self.new(file_id:, file_name:, url:)
279
+ end
280
+
281
+ sig do
282
+ override.returns(
283
+ { file_id: String, file_name: String, url: String }
284
+ )
285
+ end
286
+ def to_hash
287
+ end
288
+ end
149
289
  end
150
- def to_hash; end
151
290
  end
152
291
  end
153
292
  end