dodopayments 1.84.1 → 1.85.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 (228) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +4 -0
  5. data/lib/dodopayments/models/add_meter_to_price.rb +10 -10
  6. data/lib/dodopayments/models/attach_credit_entitlement.rb +146 -0
  7. data/lib/dodopayments/models/cbb_overage_behavior.rb +25 -0
  8. data/lib/dodopayments/models/cbb_proration_behavior.rb +15 -0
  9. data/lib/dodopayments/models/conjunction.rb +15 -0
  10. data/lib/dodopayments/models/credit_added_webhook_event.rb +52 -0
  11. data/lib/dodopayments/models/credit_balance_low_webhook_event.rb +107 -0
  12. data/lib/dodopayments/models/credit_deducted_webhook_event.rb +52 -0
  13. data/lib/dodopayments/models/credit_entitlement.rb +144 -0
  14. data/lib/dodopayments/models/credit_entitlement_cart_response.rb +143 -0
  15. data/lib/dodopayments/models/credit_entitlement_create_params.rb +138 -0
  16. data/lib/dodopayments/models/credit_entitlement_delete_params.rb +14 -0
  17. data/lib/dodopayments/models/credit_entitlement_list_params.rb +38 -0
  18. data/lib/dodopayments/models/credit_entitlement_mapping_response.rb +170 -0
  19. data/lib/dodopayments/models/credit_entitlement_retrieve_params.rb +14 -0
  20. data/lib/dodopayments/models/credit_entitlement_undelete_params.rb +14 -0
  21. data/lib/dodopayments/models/credit_entitlement_update_params.rb +126 -0
  22. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +76 -0
  23. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rb +92 -0
  24. data/lib/dodopayments/models/credit_entitlements/balance_list_grants_params.rb +59 -0
  25. data/lib/dodopayments/models/credit_entitlements/balance_list_grants_response.rb +119 -0
  26. data/lib/dodopayments/models/credit_entitlements/balance_list_ledger_params.rb +68 -0
  27. data/lib/dodopayments/models/credit_entitlements/balance_list_params.rb +40 -0
  28. data/lib/dodopayments/models/credit_entitlements/balance_retrieve_params.rb +22 -0
  29. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +129 -0
  30. data/lib/dodopayments/models/credit_entitlements/customer_credit_balance.rb +62 -0
  31. data/lib/dodopayments/models/credit_entitlements/ledger_entry_type.rb +17 -0
  32. data/lib/dodopayments/models/credit_expired_webhook_event.rb +52 -0
  33. data/lib/dodopayments/models/credit_manual_adjustment_webhook_event.rb +52 -0
  34. data/lib/dodopayments/models/credit_overage_charged_webhook_event.rb +52 -0
  35. data/lib/dodopayments/models/credit_rolled_over_webhook_event.rb +52 -0
  36. data/lib/dodopayments/models/credit_rollover_forfeited_webhook_event.rb +52 -0
  37. data/lib/dodopayments/models/custom_field_response.rb +26 -0
  38. data/lib/dodopayments/models/customer_list_credit_entitlements_params.rb +14 -0
  39. data/lib/dodopayments/models/customer_list_credit_entitlements_response.rb +70 -0
  40. data/lib/dodopayments/models/digital_product_delivery.rb +34 -0
  41. data/lib/dodopayments/models/digital_product_delivery_file.rb +27 -0
  42. data/lib/dodopayments/models/filter_operator.rb +21 -0
  43. data/lib/dodopayments/models/meter_cart_response_item.rb +53 -0
  44. data/lib/dodopayments/models/meter_credit_entitlement_cart_response.rb +42 -0
  45. data/lib/dodopayments/models/meter_filter.rb +24 -143
  46. data/lib/dodopayments/models/one_time_product_cart_item.rb +1 -15
  47. data/lib/dodopayments/models/payment.rb +12 -138
  48. data/lib/dodopayments/models/payment_create_params.rb +34 -3
  49. data/lib/dodopayments/models/payment_create_response.rb +33 -3
  50. data/lib/dodopayments/models/payment_list_response.rb +21 -1
  51. data/lib/dodopayments/models/payment_refund_status.rb +15 -0
  52. data/lib/dodopayments/models/product.rb +6 -254
  53. data/lib/dodopayments/models/product_create_params.rb +3 -177
  54. data/lib/dodopayments/models/product_update_params.rb +3 -177
  55. data/lib/dodopayments/models/{refund_list_response.rb → refund_list_item.rb} +1 -2
  56. data/lib/dodopayments/models/refund_list_params.rb +9 -1
  57. data/lib/dodopayments/models/subscription.rb +12 -245
  58. data/lib/dodopayments/models/subscription_change_plan_params.rb +2 -93
  59. data/lib/dodopayments/models/subscription_create_params.rb +36 -3
  60. data/lib/dodopayments/models/subscription_create_response.rb +3 -19
  61. data/lib/dodopayments/models/subscription_preview_change_plan_params.rb +2 -93
  62. data/lib/dodopayments/models/subscription_retrieve_credit_usage_params.rb +14 -0
  63. data/lib/dodopayments/models/subscription_retrieve_credit_usage_response.rb +108 -0
  64. data/lib/dodopayments/models/subscription_update_params.rb +1 -7
  65. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +17 -1
  66. data/lib/dodopayments/models/unwrap_webhook_event.rb +17 -1
  67. data/lib/dodopayments/models/update_subscription_plan_req.rb +103 -0
  68. data/lib/dodopayments/models/webhook_payload.rb +4 -117
  69. data/lib/dodopayments/models.rb +66 -0
  70. data/lib/dodopayments/resources/credit_entitlements/balances.rb +305 -0
  71. data/lib/dodopayments/resources/credit_entitlements.rb +390 -0
  72. data/lib/dodopayments/resources/customers.rb +20 -0
  73. data/lib/dodopayments/resources/payments.rb +1 -1
  74. data/lib/dodopayments/resources/products.rb +2 -2
  75. data/lib/dodopayments/resources/refunds.rb +5 -3
  76. data/lib/dodopayments/resources/subscriptions.rb +23 -5
  77. data/lib/dodopayments/resources/webhooks.rb +2 -2
  78. data/lib/dodopayments/version.rb +1 -1
  79. data/lib/dodopayments.rb +46 -1
  80. data/rbi/dodopayments/client.rbi +3 -0
  81. data/rbi/dodopayments/models/add_meter_to_price.rbi +13 -13
  82. data/rbi/dodopayments/models/attach_credit_entitlement.rbi +175 -0
  83. data/rbi/dodopayments/models/cbb_overage_behavior.rbi +44 -0
  84. data/rbi/dodopayments/models/cbb_proration_behavior.rbi +26 -0
  85. data/rbi/dodopayments/models/conjunction.rbi +21 -0
  86. data/rbi/dodopayments/models/credit_added_webhook_event.rbi +96 -0
  87. data/rbi/dodopayments/models/credit_balance_low_webhook_event.rbi +176 -0
  88. data/rbi/dodopayments/models/credit_deducted_webhook_event.rbi +100 -0
  89. data/rbi/dodopayments/models/credit_entitlement.rbi +152 -0
  90. data/rbi/dodopayments/models/credit_entitlement_cart_response.rbi +159 -0
  91. data/rbi/dodopayments/models/credit_entitlement_create_params.rbi +164 -0
  92. data/rbi/dodopayments/models/credit_entitlement_delete_params.rbi +32 -0
  93. data/rbi/dodopayments/models/credit_entitlement_list_params.rbi +71 -0
  94. data/rbi/dodopayments/models/credit_entitlement_mapping_response.rbi +196 -0
  95. data/rbi/dodopayments/models/credit_entitlement_retrieve_params.rbi +32 -0
  96. data/rbi/dodopayments/models/credit_entitlement_undelete_params.rbi +32 -0
  97. data/rbi/dodopayments/models/credit_entitlement_update_params.rbi +154 -0
  98. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +100 -0
  99. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rbi +119 -0
  100. data/rbi/dodopayments/models/credit_entitlements/balance_list_grants_params.rbi +132 -0
  101. data/rbi/dodopayments/models/credit_entitlements/balance_list_grants_response.rbi +180 -0
  102. data/rbi/dodopayments/models/credit_entitlements/balance_list_ledger_params.rbi +103 -0
  103. data/rbi/dodopayments/models/credit_entitlements/balance_list_params.rbi +73 -0
  104. data/rbi/dodopayments/models/credit_entitlements/balance_retrieve_params.rbi +43 -0
  105. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +206 -0
  106. data/rbi/dodopayments/models/credit_entitlements/customer_credit_balance.rbi +83 -0
  107. data/rbi/dodopayments/models/credit_entitlements/ledger_entry_type.rbi +38 -0
  108. data/rbi/dodopayments/models/credit_expired_webhook_event.rbi +100 -0
  109. data/rbi/dodopayments/models/credit_manual_adjustment_webhook_event.rbi +106 -0
  110. data/rbi/dodopayments/models/credit_overage_charged_webhook_event.rbi +103 -0
  111. data/rbi/dodopayments/models/credit_rolled_over_webhook_event.rbi +100 -0
  112. data/rbi/dodopayments/models/credit_rollover_forfeited_webhook_event.rbi +107 -0
  113. data/rbi/dodopayments/models/custom_field_response.rbi +37 -0
  114. data/rbi/dodopayments/models/customer_list_credit_entitlements_params.rbi +32 -0
  115. data/rbi/dodopayments/models/customer_list_credit_entitlements_response.rbi +124 -0
  116. data/rbi/dodopayments/models/digital_product_delivery.rbi +62 -0
  117. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +38 -0
  118. data/rbi/dodopayments/models/filter_operator.rbi +36 -0
  119. data/rbi/dodopayments/models/meter_cart_response_item.rbi +75 -0
  120. data/rbi/dodopayments/models/meter_credit_entitlement_cart_response.rbi +64 -0
  121. data/rbi/dodopayments/models/meter_filter.rbi +24 -444
  122. data/rbi/dodopayments/models/one_time_product_cart_item.rbi +3 -24
  123. data/rbi/dodopayments/models/payment.rbi +12 -198
  124. data/rbi/dodopayments/models/payment_create_params.rbi +56 -3
  125. data/rbi/dodopayments/models/payment_create_response.rbi +68 -3
  126. data/rbi/dodopayments/models/payment_list_response.rbi +22 -0
  127. data/rbi/dodopayments/models/payment_refund_status.rbi +24 -0
  128. data/rbi/dodopayments/models/product.rbi +7 -354
  129. data/rbi/dodopayments/models/product_create_params.rbi +3 -242
  130. data/rbi/dodopayments/models/product_update_params.rbi +3 -242
  131. data/rbi/dodopayments/models/{refund_list_response.rbi → refund_list_item.rbi} +2 -5
  132. data/rbi/dodopayments/models/refund_list_params.rbi +11 -0
  133. data/rbi/dodopayments/models/subscription.rbi +12 -325
  134. data/rbi/dodopayments/models/subscription_change_plan_params.rbi +5 -174
  135. data/rbi/dodopayments/models/subscription_create_params.rbi +68 -3
  136. data/rbi/dodopayments/models/subscription_create_response.rbi +3 -47
  137. data/rbi/dodopayments/models/subscription_preview_change_plan_params.rbi +5 -174
  138. data/rbi/dodopayments/models/subscription_retrieve_credit_usage_params.rbi +32 -0
  139. data/rbi/dodopayments/models/subscription_retrieve_credit_usage_response.rbi +158 -0
  140. data/rbi/dodopayments/models/subscription_update_params.rbi +0 -6
  141. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +8 -0
  142. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +8 -0
  143. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +195 -0
  144. data/rbi/dodopayments/models/webhook_payload.rbi +5 -177
  145. data/rbi/dodopayments/models.rbi +82 -0
  146. data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +272 -0
  147. data/rbi/dodopayments/resources/credit_entitlements.rbi +381 -0
  148. data/rbi/dodopayments/resources/customers.rbi +14 -0
  149. data/rbi/dodopayments/resources/payments.rbi +2 -1
  150. data/rbi/dodopayments/resources/products.rbi +2 -10
  151. data/rbi/dodopayments/resources/refunds.rbi +4 -1
  152. data/rbi/dodopayments/resources/subscriptions.rbi +22 -5
  153. data/rbi/dodopayments/resources/webhooks.rbi +16 -0
  154. data/sig/dodopayments/client.rbs +2 -0
  155. data/sig/dodopayments/models/add_meter_to_price.rbs +8 -8
  156. data/sig/dodopayments/models/attach_credit_entitlement.rbs +100 -0
  157. data/sig/dodopayments/models/cbb_overage_behavior.rbs +20 -0
  158. data/sig/dodopayments/models/cbb_proration_behavior.rbs +14 -0
  159. data/sig/dodopayments/models/conjunction.rbs +14 -0
  160. data/sig/dodopayments/models/credit_added_webhook_event.rbs +45 -0
  161. data/sig/dodopayments/models/credit_balance_low_webhook_event.rbs +97 -0
  162. data/sig/dodopayments/models/credit_deducted_webhook_event.rbs +45 -0
  163. data/sig/dodopayments/models/credit_entitlement.rbs +110 -0
  164. data/sig/dodopayments/models/credit_entitlement_cart_response.rbs +100 -0
  165. data/sig/dodopayments/models/credit_entitlement_create_params.rbs +96 -0
  166. data/sig/dodopayments/models/credit_entitlement_delete_params.rbs +15 -0
  167. data/sig/dodopayments/models/credit_entitlement_list_params.rbs +38 -0
  168. data/sig/dodopayments/models/credit_entitlement_mapping_response.rbs +115 -0
  169. data/sig/dodopayments/models/credit_entitlement_retrieve_params.rbs +15 -0
  170. data/sig/dodopayments/models/credit_entitlement_undelete_params.rbs +15 -0
  171. data/sig/dodopayments/models/credit_entitlement_update_params.rbs +91 -0
  172. data/sig/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbs +58 -0
  173. data/sig/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rbs +82 -0
  174. data/sig/dodopayments/models/credit_entitlements/balance_list_grants_params.rbs +63 -0
  175. data/sig/dodopayments/models/credit_entitlements/balance_list_grants_response.rbs +106 -0
  176. data/sig/dodopayments/models/credit_entitlements/balance_list_ledger_params.rbs +63 -0
  177. data/sig/dodopayments/models/credit_entitlements/balance_list_params.rbs +40 -0
  178. data/sig/dodopayments/models/credit_entitlements/balance_retrieve_params.rbs +26 -0
  179. data/sig/dodopayments/models/credit_entitlements/credit_ledger_entry.rbs +124 -0
  180. data/sig/dodopayments/models/credit_entitlements/customer_credit_balance.rbs +57 -0
  181. data/sig/dodopayments/models/credit_entitlements/ledger_entry_type.rbs +16 -0
  182. data/sig/dodopayments/models/credit_expired_webhook_event.rbs +45 -0
  183. data/sig/dodopayments/models/credit_manual_adjustment_webhook_event.rbs +45 -0
  184. data/sig/dodopayments/models/credit_overage_charged_webhook_event.rbs +45 -0
  185. data/sig/dodopayments/models/credit_rolled_over_webhook_event.rbs +45 -0
  186. data/sig/dodopayments/models/credit_rollover_forfeited_webhook_event.rbs +45 -0
  187. data/sig/dodopayments/models/custom_field_response.rbs +15 -0
  188. data/sig/dodopayments/models/customer_list_credit_entitlements_params.rbs +15 -0
  189. data/sig/dodopayments/models/customer_list_credit_entitlements_response.rbs +62 -0
  190. data/sig/dodopayments/models/digital_product_delivery.rbs +30 -0
  191. data/sig/dodopayments/models/digital_product_delivery_file.rbs +18 -0
  192. data/sig/dodopayments/models/filter_operator.rbs +28 -0
  193. data/sig/dodopayments/models/meter_cart_response_item.rbs +50 -0
  194. data/sig/dodopayments/models/meter_credit_entitlement_cart_response.rbs +40 -0
  195. data/sig/dodopayments/models/meter_filter.rbs +32 -176
  196. data/sig/dodopayments/models/one_time_product_cart_item.rbs +3 -14
  197. data/sig/dodopayments/models/payment.rbs +16 -108
  198. data/sig/dodopayments/models/payment_create_params.rbs +27 -4
  199. data/sig/dodopayments/models/payment_create_response.rbs +27 -4
  200. data/sig/dodopayments/models/payment_list_response.rbs +10 -0
  201. data/sig/dodopayments/models/payment_refund_status.rbs +14 -0
  202. data/sig/dodopayments/models/product.rbs +8 -186
  203. data/sig/dodopayments/models/product_create_params.rbs +4 -122
  204. data/sig/dodopayments/models/product_update_params.rbs +4 -122
  205. data/sig/dodopayments/models/{refund_list_response.rbs → refund_list_item.rbs} +2 -2
  206. data/sig/dodopayments/models/refund_list_params.rbs +8 -1
  207. data/sig/dodopayments/models/subscription.rbs +16 -209
  208. data/sig/dodopayments/models/subscription_change_plan_params.rbs +4 -64
  209. data/sig/dodopayments/models/subscription_create_params.rbs +27 -4
  210. data/sig/dodopayments/models/subscription_create_response.rbs +4 -16
  211. data/sig/dodopayments/models/subscription_preview_change_plan_params.rbs +4 -64
  212. data/sig/dodopayments/models/subscription_retrieve_credit_usage_params.rbs +15 -0
  213. data/sig/dodopayments/models/subscription_retrieve_credit_usage_response.rbs +82 -0
  214. data/sig/dodopayments/models/subscription_update_params.rbs +0 -5
  215. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +9 -1
  216. data/sig/dodopayments/models/unwrap_webhook_event.rbs +9 -1
  217. data/sig/dodopayments/models/update_subscription_plan_req.rbs +69 -0
  218. data/sig/dodopayments/models/webhook_payload.rbs +8 -111
  219. data/sig/dodopayments/models.rbs +66 -0
  220. data/sig/dodopayments/resources/credit_entitlements/balances.rbs +55 -0
  221. data/sig/dodopayments/resources/credit_entitlements.rbs +69 -0
  222. data/sig/dodopayments/resources/customers.rbs +5 -0
  223. data/sig/dodopayments/resources/payments.rbs +1 -1
  224. data/sig/dodopayments/resources/products.rbs +2 -2
  225. data/sig/dodopayments/resources/refunds.rbs +2 -1
  226. data/sig/dodopayments/resources/subscriptions.rbs +10 -5
  227. data/sig/dodopayments/resources/webhooks.rbs +18 -2
  228. metadata +140 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 324bf8cbbd9bcd80662e42ea8c435c13b398180ae3df8fb4ed99512fe71fbbc9
4
- data.tar.gz: b5eda0de71edffb57f3b5f8d441dcac1759911dcf2a9d0ae41c31daafbcaa6d5
3
+ metadata.gz: b1e00c7c77049728d82d7755400be48dfeb3669313e12fda7a3962fe59f77f86
4
+ data.tar.gz: f73d45f276ce85879614a8a73e1e59c2fc042dd008156e884deadfbbc0496ed5
5
5
  SHA512:
6
- metadata.gz: f865c4f972d364109860f3e7dbb3e7f919b344f5ea4afbf4d562c7a8861b66128c7a6b075495c17b80e2095f1c0300374b2d82d7bbe59bd7bf67bb3f70de7374
7
- data.tar.gz: e0e6e3f4643cb2cc34dbe92a4c4ec237b4658d2aec409212d1361baf47e63168ef8a1f13f87a935288d8a3aac140be759e18093f01230d16f272bac93d61e900
6
+ metadata.gz: 57a1a632dec7dcbc70e7b14e299a67338532687b2ac68b0ab42bbae3b05651efc3de57c5a0051ade13b3f856dcb916e256a127b7de0bf05c76c71ddcec07152b
7
+ data.tar.gz: 60e9c6790c07fce46e9df1d097cecad9de764f7fa5a8f66db7cf2220d3ea62ea61bdabe0a822ae1e16b7303871d71e5307f30f34da3c1e75614b3c0f33d92c4c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.85.0 (2026-03-01)
4
+
5
+ Full Changelog: [v1.84.1...v1.85.0](https://github.com/dodopayments/dodopayments-ruby/compare/v1.84.1...v1.85.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** added more models ([1483b4c](https://github.com/dodopayments/dodopayments-ruby/commit/1483b4c9389478bac237bad635642bf89dc8c233))
10
+ * **api:** updated to openapi spec v1.86.0 ([a478029](https://github.com/dodopayments/dodopayments-ruby/commit/a4780294c799864b3cb66f8386bfc4841ee260b7))
11
+
3
12
  ## 1.84.1 (2026-02-27)
4
13
 
5
14
  Full Changelog: [v1.84.0...v1.84.1](https://github.com/dodopayments/dodopayments-ruby/compare/v1.84.0...v1.84.1)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "dodopayments", "~> 1.84.1"
29
+ gem "dodopayments", "~> 1.85.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -87,6 +87,9 @@ module Dodopayments
87
87
  # @return [Dodopayments::Resources::Balances]
88
88
  attr_reader :balances
89
89
 
90
+ # @return [Dodopayments::Resources::CreditEntitlements]
91
+ attr_reader :credit_entitlements
92
+
90
93
  # @api private
91
94
  #
92
95
  # @return [Hash{String=>String}]
@@ -166,6 +169,7 @@ module Dodopayments
166
169
  @usage_events = Dodopayments::Resources::UsageEvents.new(client: self)
167
170
  @meters = Dodopayments::Resources::Meters.new(client: self)
168
171
  @balances = Dodopayments::Resources::Balances.new(client: self)
172
+ @credit_entitlements = Dodopayments::Resources::CreditEntitlements.new(client: self)
169
173
  end
170
174
  end
171
175
  end
@@ -8,13 +8,6 @@ module Dodopayments
8
8
  # @return [String]
9
9
  required :meter_id, String
10
10
 
11
- # @!attribute price_per_unit
12
- # The price per unit in lowest denomination. Must be greater than zero. Supports
13
- # up to 5 digits before decimal point and 12 decimal places.
14
- #
15
- # @return [String]
16
- required :price_per_unit, String
17
-
18
11
  # @!attribute credit_entitlement_id
19
12
  # Optional credit entitlement ID to link this meter to for credit-based billing
20
13
  #
@@ -51,14 +44,19 @@ module Dodopayments
51
44
  # @return [String, nil]
52
45
  optional :name, String, nil?: true
53
46
 
54
- # @!method initialize(meter_id:, price_per_unit:, credit_entitlement_id: nil, description: nil, free_threshold: nil, measurement_unit: nil, meter_units_per_credit: nil, name: nil)
47
+ # @!attribute price_per_unit
48
+ # The price per unit in lowest denomination. Must be greater than zero. Supports
49
+ # up to 5 digits before decimal point and 12 decimal places.
50
+ #
51
+ # @return [String, nil]
52
+ optional :price_per_unit, String, nil?: true
53
+
54
+ # @!method initialize(meter_id:, credit_entitlement_id: nil, description: nil, free_threshold: nil, measurement_unit: nil, meter_units_per_credit: nil, name: nil, price_per_unit: nil)
55
55
  # Some parameter documentations has been truncated, see
56
56
  # {Dodopayments::Models::AddMeterToPrice} for more details.
57
57
  #
58
58
  # @param meter_id [String]
59
59
  #
60
- # @param price_per_unit [String] The price per unit in lowest denomination. Must be greater than zero. Supports u
61
- #
62
60
  # @param credit_entitlement_id [String, nil] Optional credit entitlement ID to link this meter to for credit-based billing
63
61
  #
64
62
  # @param description [String, nil] Meter description. Will ignored on Request, but will be shown in response
@@ -70,6 +68,8 @@ module Dodopayments
70
68
  # @param meter_units_per_credit [String, nil] Number of meter units that equal one credit. Required when credit_entitlement_id
71
69
  #
72
70
  # @param name [String, nil] Meter name. Will ignored on Request, but will be shown in response
71
+ #
72
+ # @param price_per_unit [String, nil] The price per unit in lowest denomination. Must be greater than zero. Supports u
73
73
  end
74
74
  end
75
75
  end
@@ -0,0 +1,146 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AttachCreditEntitlement < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute credit_entitlement_id
7
+ # ID of the credit entitlement to attach
8
+ #
9
+ # @return [String]
10
+ required :credit_entitlement_id, String
11
+
12
+ # @!attribute credits_amount
13
+ # Number of credits to grant when this product is purchased
14
+ #
15
+ # @return [String]
16
+ required :credits_amount, String
17
+
18
+ # @!attribute currency
19
+ # Currency for credit-related pricing
20
+ #
21
+ # @return [Symbol, Dodopayments::Models::Currency, nil]
22
+ optional :currency, enum: -> { Dodopayments::Currency }, nil?: true
23
+
24
+ # @!attribute expires_after_days
25
+ # Number of days after which credits expire
26
+ #
27
+ # @return [Integer, nil]
28
+ optional :expires_after_days, Integer, nil?: true
29
+
30
+ # @!attribute low_balance_threshold_percent
31
+ # Balance threshold percentage for low balance notifications (0-100)
32
+ #
33
+ # @return [Integer, nil]
34
+ optional :low_balance_threshold_percent, Integer, nil?: true
35
+
36
+ # @!attribute max_rollover_count
37
+ # Maximum number of rollover cycles allowed
38
+ #
39
+ # @return [Integer, nil]
40
+ optional :max_rollover_count, Integer, nil?: true
41
+
42
+ # @!attribute overage_behavior
43
+ # Controls how overage is handled at billing cycle end.
44
+ #
45
+ # @return [Symbol, Dodopayments::Models::CbbOverageBehavior, nil]
46
+ optional :overage_behavior, enum: -> { Dodopayments::CbbOverageBehavior }, nil?: true
47
+
48
+ # @!attribute overage_enabled
49
+ # Whether overage usage is allowed beyond credit balance
50
+ #
51
+ # @return [Boolean, nil]
52
+ optional :overage_enabled, Dodopayments::Internal::Type::Boolean, nil?: true
53
+
54
+ # @!attribute overage_limit
55
+ # Maximum amount of overage allowed
56
+ #
57
+ # @return [String, nil]
58
+ optional :overage_limit, String, nil?: true
59
+
60
+ # @!attribute price_per_unit
61
+ # Price per credit unit for purchasing additional credits
62
+ #
63
+ # @return [String, nil]
64
+ optional :price_per_unit, String, nil?: true
65
+
66
+ # @!attribute proration_behavior
67
+ # Proration behavior for credit grants during plan changes
68
+ #
69
+ # @return [Symbol, Dodopayments::Models::CbbProrationBehavior, nil]
70
+ optional :proration_behavior, enum: -> { Dodopayments::CbbProrationBehavior }, nil?: true
71
+
72
+ # @!attribute rollover_enabled
73
+ # Whether unused credits can roll over to the next billing period
74
+ #
75
+ # @return [Boolean, nil]
76
+ optional :rollover_enabled, Dodopayments::Internal::Type::Boolean, nil?: true
77
+
78
+ # @!attribute rollover_percentage
79
+ # Percentage of unused credits that can roll over (0-100)
80
+ #
81
+ # @return [Integer, nil]
82
+ optional :rollover_percentage, Integer, nil?: true
83
+
84
+ # @!attribute rollover_timeframe_count
85
+ # Number of timeframe units for rollover window
86
+ #
87
+ # @return [Integer, nil]
88
+ optional :rollover_timeframe_count, Integer, nil?: true
89
+
90
+ # @!attribute rollover_timeframe_interval
91
+ # Time interval for rollover window (day, week, month, year)
92
+ #
93
+ # @return [Symbol, Dodopayments::Models::TimeInterval, nil]
94
+ optional :rollover_timeframe_interval, enum: -> { Dodopayments::TimeInterval }, nil?: true
95
+
96
+ # @!attribute trial_credits
97
+ # Credits granted during trial period
98
+ #
99
+ # @return [String, nil]
100
+ optional :trial_credits, String, nil?: true
101
+
102
+ # @!attribute trial_credits_expire_after_trial
103
+ # Whether trial credits expire when trial ends
104
+ #
105
+ # @return [Boolean, nil]
106
+ optional :trial_credits_expire_after_trial, Dodopayments::Internal::Type::Boolean, nil?: true
107
+
108
+ # @!method initialize(credit_entitlement_id:, credits_amount:, currency: nil, expires_after_days: nil, low_balance_threshold_percent: nil, max_rollover_count: nil, overage_behavior: nil, overage_enabled: nil, overage_limit: nil, price_per_unit: nil, proration_behavior: nil, rollover_enabled: nil, rollover_percentage: nil, rollover_timeframe_count: nil, rollover_timeframe_interval: nil, trial_credits: nil, trial_credits_expire_after_trial: nil)
109
+ # Request struct for attaching a credit entitlement to a product
110
+ #
111
+ # @param credit_entitlement_id [String] ID of the credit entitlement to attach
112
+ #
113
+ # @param credits_amount [String] Number of credits to grant when this product is purchased
114
+ #
115
+ # @param currency [Symbol, Dodopayments::Models::Currency, nil] Currency for credit-related pricing
116
+ #
117
+ # @param expires_after_days [Integer, nil] Number of days after which credits expire
118
+ #
119
+ # @param low_balance_threshold_percent [Integer, nil] Balance threshold percentage for low balance notifications (0-100)
120
+ #
121
+ # @param max_rollover_count [Integer, nil] Maximum number of rollover cycles allowed
122
+ #
123
+ # @param overage_behavior [Symbol, Dodopayments::Models::CbbOverageBehavior, nil] Controls how overage is handled at billing cycle end.
124
+ #
125
+ # @param overage_enabled [Boolean, nil] Whether overage usage is allowed beyond credit balance
126
+ #
127
+ # @param overage_limit [String, nil] Maximum amount of overage allowed
128
+ #
129
+ # @param price_per_unit [String, nil] Price per credit unit for purchasing additional credits
130
+ #
131
+ # @param proration_behavior [Symbol, Dodopayments::Models::CbbProrationBehavior, nil] Proration behavior for credit grants during plan changes
132
+ #
133
+ # @param rollover_enabled [Boolean, nil] Whether unused credits can roll over to the next billing period
134
+ #
135
+ # @param rollover_percentage [Integer, nil] Percentage of unused credits that can roll over (0-100)
136
+ #
137
+ # @param rollover_timeframe_count [Integer, nil] Number of timeframe units for rollover window
138
+ #
139
+ # @param rollover_timeframe_interval [Symbol, Dodopayments::Models::TimeInterval, nil] Time interval for rollover window (day, week, month, year)
140
+ #
141
+ # @param trial_credits [String, nil] Credits granted during trial period
142
+ #
143
+ # @param trial_credits_expire_after_trial [Boolean, nil] Whether trial credits expire when trial ends
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # Controls how overage is handled at the end of a billing cycle.
6
+ #
7
+ # | Preset | Charge at billing | Credits reduce overage | Preserve overage at reset |
8
+ # | -------------------------- | :---------------: | :--------------------: | :-----------------------: |
9
+ # | `forgive_at_reset` | No | No | No |
10
+ # | `invoice_at_billing` | Yes | No | No |
11
+ # | `carry_deficit` | No | No | Yes |
12
+ # | `carry_deficit_auto_repay` | No | Yes | Yes |
13
+ module CbbOverageBehavior
14
+ extend Dodopayments::Internal::Type::Enum
15
+
16
+ FORGIVE_AT_RESET = :forgive_at_reset
17
+ INVOICE_AT_BILLING = :invoice_at_billing
18
+ CARRY_DEFICIT = :carry_deficit
19
+ CARRY_DEFICIT_AUTO_REPAY = :carry_deficit_auto_repay
20
+
21
+ # @!method self.values
22
+ # @return [Array<Symbol>]
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module CbbProrationBehavior
6
+ extend Dodopayments::Internal::Type::Enum
7
+
8
+ PRORATE = :prorate
9
+ NO_PRORATE = :no_prorate
10
+
11
+ # @!method self.values
12
+ # @return [Array<Symbol>]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Conjunction
6
+ extend Dodopayments::Internal::Type::Enum
7
+
8
+ AND = :and
9
+ OR = :or
10
+
11
+ # @!method self.values
12
+ # @return [Array<Symbol>]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CreditAddedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Response for a ledger entry
14
+ #
15
+ # @return [Dodopayments::Models::CreditEntitlements::CreditLedgerEntry]
16
+ required :data, -> { Dodopayments::CreditEntitlements::CreditLedgerEntry }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, Dodopayments::Models::CreditAddedWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::CreditAddedWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::CreditEntitlements::CreditLedgerEntry] Response for a ledger entry
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::CreditAddedWebhookEvent::Type] The event type
38
+
39
+ # The event type
40
+ #
41
+ # @see Dodopayments::Models::CreditAddedWebhookEvent#type
42
+ module Type
43
+ extend Dodopayments::Internal::Type::Enum
44
+
45
+ CREDIT_ADDED = :"credit.added"
46
+
47
+ # @!method self.values
48
+ # @return [Array<Symbol>]
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CreditBalanceLowWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Webhook payload for credit.balance_low event
14
+ #
15
+ # @return [Dodopayments::Models::CreditBalanceLowWebhookEvent::Data]
16
+ required :data, -> { Dodopayments::CreditBalanceLowWebhookEvent::Data }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, Dodopayments::Models::CreditBalanceLowWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::CreditBalanceLowWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::CreditBalanceLowWebhookEvent::Data] Webhook payload for credit.balance_low event
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::CreditBalanceLowWebhookEvent::Type] The event type
38
+
39
+ # @see Dodopayments::Models::CreditBalanceLowWebhookEvent#data
40
+ class Data < Dodopayments::Internal::Type::BaseModel
41
+ # @!attribute available_balance
42
+ #
43
+ # @return [String]
44
+ required :available_balance, String
45
+
46
+ # @!attribute credit_entitlement_id
47
+ #
48
+ # @return [String]
49
+ required :credit_entitlement_id, String
50
+
51
+ # @!attribute credit_entitlement_name
52
+ #
53
+ # @return [String]
54
+ required :credit_entitlement_name, String
55
+
56
+ # @!attribute customer_id
57
+ #
58
+ # @return [String]
59
+ required :customer_id, String
60
+
61
+ # @!attribute subscription_credits_amount
62
+ #
63
+ # @return [String]
64
+ required :subscription_credits_amount, String
65
+
66
+ # @!attribute subscription_id
67
+ #
68
+ # @return [String]
69
+ required :subscription_id, String
70
+
71
+ # @!attribute threshold_amount
72
+ #
73
+ # @return [String]
74
+ required :threshold_amount, String
75
+
76
+ # @!attribute threshold_percent
77
+ #
78
+ # @return [Integer]
79
+ required :threshold_percent, Integer
80
+
81
+ # @!method initialize(available_balance:, credit_entitlement_id:, credit_entitlement_name:, customer_id:, subscription_credits_amount:, subscription_id:, threshold_amount:, threshold_percent:)
82
+ # Webhook payload for credit.balance_low event
83
+ #
84
+ # @param available_balance [String]
85
+ # @param credit_entitlement_id [String]
86
+ # @param credit_entitlement_name [String]
87
+ # @param customer_id [String]
88
+ # @param subscription_credits_amount [String]
89
+ # @param subscription_id [String]
90
+ # @param threshold_amount [String]
91
+ # @param threshold_percent [Integer]
92
+ end
93
+
94
+ # The event type
95
+ #
96
+ # @see Dodopayments::Models::CreditBalanceLowWebhookEvent#type
97
+ module Type
98
+ extend Dodopayments::Internal::Type::Enum
99
+
100
+ CREDIT_BALANCE_LOW = :"credit.balance_low"
101
+
102
+ # @!method self.values
103
+ # @return [Array<Symbol>]
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CreditDeductedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Response for a ledger entry
14
+ #
15
+ # @return [Dodopayments::Models::CreditEntitlements::CreditLedgerEntry]
16
+ required :data, -> { Dodopayments::CreditEntitlements::CreditLedgerEntry }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, Dodopayments::Models::CreditDeductedWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::CreditDeductedWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::CreditEntitlements::CreditLedgerEntry] Response for a ledger entry
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::CreditDeductedWebhookEvent::Type] The event type
38
+
39
+ # The event type
40
+ #
41
+ # @see Dodopayments::Models::CreditDeductedWebhookEvent#type
42
+ module Type
43
+ extend Dodopayments::Internal::Type::Enum
44
+
45
+ CREDIT_DEDUCTED = :"credit.deducted"
46
+
47
+ # @!method self.values
48
+ # @return [Array<Symbol>]
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,144 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::CreditEntitlements#create
6
+ class CreditEntitlement < Dodopayments::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute business_id
13
+ #
14
+ # @return [String]
15
+ required :business_id, String
16
+
17
+ # @!attribute created_at
18
+ #
19
+ # @return [Time]
20
+ required :created_at, Time
21
+
22
+ # @!attribute name
23
+ #
24
+ # @return [String]
25
+ required :name, String
26
+
27
+ # @!attribute overage_behavior
28
+ # Controls how overage is handled at billing cycle end.
29
+ #
30
+ # @return [Symbol, Dodopayments::Models::CbbOverageBehavior]
31
+ required :overage_behavior, enum: -> { Dodopayments::CbbOverageBehavior }
32
+
33
+ # @!attribute overage_enabled
34
+ #
35
+ # @return [Boolean]
36
+ required :overage_enabled, Dodopayments::Internal::Type::Boolean
37
+
38
+ # @!attribute precision
39
+ #
40
+ # @return [Integer]
41
+ required :precision, Integer
42
+
43
+ # @!attribute rollover_enabled
44
+ #
45
+ # @return [Boolean]
46
+ required :rollover_enabled, Dodopayments::Internal::Type::Boolean
47
+
48
+ # @!attribute unit
49
+ #
50
+ # @return [String]
51
+ required :unit, String
52
+
53
+ # @!attribute updated_at
54
+ #
55
+ # @return [Time]
56
+ required :updated_at, Time
57
+
58
+ # @!attribute currency
59
+ #
60
+ # @return [Symbol, Dodopayments::Models::Currency, nil]
61
+ optional :currency, enum: -> { Dodopayments::Currency }, nil?: true
62
+
63
+ # @!attribute description
64
+ #
65
+ # @return [String, nil]
66
+ optional :description, String, nil?: true
67
+
68
+ # @!attribute expires_after_days
69
+ #
70
+ # @return [Integer, nil]
71
+ optional :expires_after_days, Integer, nil?: true
72
+
73
+ # @!attribute max_rollover_count
74
+ #
75
+ # @return [Integer, nil]
76
+ optional :max_rollover_count, Integer, nil?: true
77
+
78
+ # @!attribute overage_limit
79
+ #
80
+ # @return [Integer, nil]
81
+ optional :overage_limit, Integer, nil?: true
82
+
83
+ # @!attribute price_per_unit
84
+ # Price per credit unit
85
+ #
86
+ # @return [String, nil]
87
+ optional :price_per_unit, String, nil?: true
88
+
89
+ # @!attribute rollover_percentage
90
+ #
91
+ # @return [Integer, nil]
92
+ optional :rollover_percentage, Integer, nil?: true
93
+
94
+ # @!attribute rollover_timeframe_count
95
+ #
96
+ # @return [Integer, nil]
97
+ optional :rollover_timeframe_count, Integer, nil?: true
98
+
99
+ # @!attribute rollover_timeframe_interval
100
+ #
101
+ # @return [Symbol, Dodopayments::Models::TimeInterval, nil]
102
+ optional :rollover_timeframe_interval, enum: -> { Dodopayments::TimeInterval }, nil?: true
103
+
104
+ # @!method initialize(id:, business_id:, created_at:, name:, overage_behavior:, overage_enabled:, precision:, rollover_enabled:, unit:, updated_at:, currency: nil, description: nil, expires_after_days: nil, max_rollover_count: nil, overage_limit: nil, price_per_unit: nil, rollover_percentage: nil, rollover_timeframe_count: nil, rollover_timeframe_interval: nil)
105
+ # @param id [String]
106
+ #
107
+ # @param business_id [String]
108
+ #
109
+ # @param created_at [Time]
110
+ #
111
+ # @param name [String]
112
+ #
113
+ # @param overage_behavior [Symbol, Dodopayments::Models::CbbOverageBehavior] Controls how overage is handled at billing cycle end.
114
+ #
115
+ # @param overage_enabled [Boolean]
116
+ #
117
+ # @param precision [Integer]
118
+ #
119
+ # @param rollover_enabled [Boolean]
120
+ #
121
+ # @param unit [String]
122
+ #
123
+ # @param updated_at [Time]
124
+ #
125
+ # @param currency [Symbol, Dodopayments::Models::Currency, nil]
126
+ #
127
+ # @param description [String, nil]
128
+ #
129
+ # @param expires_after_days [Integer, nil]
130
+ #
131
+ # @param max_rollover_count [Integer, nil]
132
+ #
133
+ # @param overage_limit [Integer, nil]
134
+ #
135
+ # @param price_per_unit [String, nil] Price per credit unit
136
+ #
137
+ # @param rollover_percentage [Integer, nil]
138
+ #
139
+ # @param rollover_timeframe_count [Integer, nil]
140
+ #
141
+ # @param rollover_timeframe_interval [Symbol, Dodopayments::Models::TimeInterval, nil]
142
+ end
143
+ end
144
+ end