dodopayments 2.8.0 → 2.9.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +4 -0
  5. data/lib/dodopayments/models/attach_product_entitlement.rb +22 -0
  6. data/lib/dodopayments/models/cancellation_feedback.rb +21 -0
  7. data/lib/dodopayments/models/checkout_session_flags.rb +12 -1
  8. data/lib/dodopayments/models/checkout_session_request.rb +14 -1
  9. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +1 -0
  10. data/lib/dodopayments/models/credit_overage_reset_webhook_event.rb +52 -0
  11. data/lib/dodopayments/models/customer_list_entitlements_params.rb +20 -0
  12. data/lib/dodopayments/models/customer_list_entitlements_response.rb +105 -0
  13. data/lib/dodopayments/models/digital_product_delivery.rb +13 -15
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +32 -8
  15. data/lib/dodopayments/models/entitlement.rb +86 -0
  16. data/lib/dodopayments/models/entitlement_create_params.rb +54 -0
  17. data/lib/dodopayments/models/entitlement_delete_params.rb +20 -0
  18. data/lib/dodopayments/models/entitlement_grant_created_webhook_event.rb +51 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +51 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +51 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +51 -0
  22. data/lib/dodopayments/models/entitlement_integration_type.rb +21 -0
  23. data/lib/dodopayments/models/entitlement_list_params.rb +55 -0
  24. data/lib/dodopayments/models/entitlement_retrieve_params.rb +20 -0
  25. data/lib/dodopayments/models/entitlement_update_params.rb +54 -0
  26. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +172 -0
  27. data/lib/dodopayments/models/entitlements/file_delete_params.rb +28 -0
  28. data/lib/dodopayments/models/entitlements/file_upload_params.rb +22 -0
  29. data/lib/dodopayments/models/entitlements/file_upload_response.rb +23 -0
  30. data/lib/dodopayments/models/entitlements/grant_list_params.rb +68 -0
  31. data/lib/dodopayments/models/entitlements/grant_revoke_params.rb +28 -0
  32. data/lib/dodopayments/models/entitlements/license_key_grant.rb +40 -0
  33. data/lib/dodopayments/models/integration_config.rb +174 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +238 -0
  35. data/lib/dodopayments/models/license_key_instance_list_params.rb +9 -1
  36. data/lib/dodopayments/models/one_time_product_cart_item.rb +15 -1
  37. data/lib/dodopayments/models/payment.rb +19 -3
  38. data/lib/dodopayments/models/payment_create_params.rb +23 -35
  39. data/lib/dodopayments/models/payment_create_response.rb +3 -33
  40. data/lib/dodopayments/models/product.rb +12 -217
  41. data/lib/dodopayments/models/product_create_params.rb +25 -6
  42. data/lib/dodopayments/models/product_entitlement_summary.rb +57 -0
  43. data/lib/dodopayments/models/product_list_response.rb +3 -218
  44. data/lib/dodopayments/models/product_update_params.rb +21 -7
  45. data/lib/dodopayments/models/scheduled_plan_change.rb +99 -0
  46. data/lib/dodopayments/models/subscription.rb +20 -102
  47. data/lib/dodopayments/models/subscription_create_params.rb +27 -37
  48. data/lib/dodopayments/models/subscription_create_response.rb +19 -3
  49. data/lib/dodopayments/models/subscription_list_response.rb +3 -103
  50. data/lib/dodopayments/models/subscription_update_params.rb +23 -1
  51. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +11 -1
  52. data/lib/dodopayments/models/unwrap_webhook_event.rb +11 -1
  53. data/lib/dodopayments/models/update_subscription_plan_req.rb +10 -1
  54. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  55. data/lib/dodopayments/models/webhook_payload.rb +2 -154
  56. data/lib/dodopayments/models.rb +40 -0
  57. data/lib/dodopayments/resources/checkout_sessions.rb +6 -2
  58. data/lib/dodopayments/resources/customers.rb +20 -0
  59. data/lib/dodopayments/resources/entitlements/files.rb +70 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +78 -0
  61. data/lib/dodopayments/resources/entitlements.rb +153 -0
  62. data/lib/dodopayments/resources/license_key_instances.rb +3 -1
  63. data/lib/dodopayments/resources/payments.rb +6 -2
  64. data/lib/dodopayments/resources/products.rb +4 -4
  65. data/lib/dodopayments/resources/subscriptions.rb +20 -5
  66. data/lib/dodopayments/resources/webhooks.rb +2 -2
  67. data/lib/dodopayments/version.rb +1 -1
  68. data/lib/dodopayments.rb +30 -0
  69. data/rbi/dodopayments/client.rbi +3 -0
  70. data/rbi/dodopayments/models/attach_product_entitlement.rbi +35 -0
  71. data/rbi/dodopayments/models/cancellation_feedback.rbi +45 -0
  72. data/rbi/dodopayments/models/checkout_session_flags.rbi +20 -3
  73. data/rbi/dodopayments/models/checkout_session_request.rbi +18 -0
  74. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +5 -0
  75. data/rbi/dodopayments/models/credit_overage_reset_webhook_event.rbi +103 -0
  76. data/rbi/dodopayments/models/customer_list_entitlements_params.rbi +38 -0
  77. data/rbi/dodopayments/models/customer_list_entitlements_response.rbi +189 -0
  78. data/rbi/dodopayments/models/digital_product_delivery.rbi +10 -22
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +40 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +112 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +112 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +103 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +103 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +102 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +103 -0
  87. data/rbi/dodopayments/models/entitlement_integration_type.rbi +44 -0
  88. data/rbi/dodopayments/models/entitlement_list_params.rbi +146 -0
  89. data/rbi/dodopayments/models/entitlement_retrieve_params.rbi +38 -0
  90. data/rbi/dodopayments/models/entitlement_update_params.rbi +111 -0
  91. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +235 -0
  92. data/rbi/dodopayments/models/entitlements/file_delete_params.rbi +48 -0
  93. data/rbi/dodopayments/models/entitlements/file_upload_params.rbi +40 -0
  94. data/rbi/dodopayments/models/entitlements/file_upload_response.rbi +34 -0
  95. data/rbi/dodopayments/models/entitlements/grant_list_params.rbi +145 -0
  96. data/rbi/dodopayments/models/entitlements/grant_revoke_params.rbi +48 -0
  97. data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +62 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +296 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +416 -0
  100. data/rbi/dodopayments/models/license_key_instance_list_params.rbi +8 -0
  101. data/rbi/dodopayments/models/one_time_product_cart_item.rbi +24 -3
  102. data/rbi/dodopayments/models/payment.rbi +31 -3
  103. data/rbi/dodopayments/models/payment_create_params.rbi +28 -56
  104. data/rbi/dodopayments/models/payment_create_response.rbi +3 -68
  105. data/rbi/dodopayments/models/product.rbi +12 -420
  106. data/rbi/dodopayments/models/product_create_params.rbi +43 -7
  107. data/rbi/dodopayments/models/product_entitlement_summary.rbi +88 -0
  108. data/rbi/dodopayments/models/product_list_response.rbi +3 -430
  109. data/rbi/dodopayments/models/product_update_params.rbi +35 -9
  110. data/rbi/dodopayments/models/scheduled_plan_change.rbi +141 -0
  111. data/rbi/dodopayments/models/subscription.rbi +24 -149
  112. data/rbi/dodopayments/models/subscription_create_params.rbi +36 -68
  113. data/rbi/dodopayments/models/subscription_create_response.rbi +47 -3
  114. data/rbi/dodopayments/models/subscription_list_response.rbi +4 -167
  115. data/rbi/dodopayments/models/subscription_update_params.rbi +27 -0
  116. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +5 -0
  117. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +5 -0
  118. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +10 -0
  119. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  120. data/rbi/dodopayments/models/webhook_payload.rbi +4 -197
  121. data/rbi/dodopayments/models.rbi +46 -0
  122. data/rbi/dodopayments/resources/checkout_sessions.rbi +16 -0
  123. data/rbi/dodopayments/resources/customers.rbi +14 -0
  124. data/rbi/dodopayments/resources/entitlements/files.rbi +52 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +65 -0
  126. data/rbi/dodopayments/resources/entitlements.rbi +143 -0
  127. data/rbi/dodopayments/resources/license_key_instances.rbi +3 -0
  128. data/rbi/dodopayments/resources/payments.rbi +10 -2
  129. data/rbi/dodopayments/resources/products.rbi +34 -7
  130. data/rbi/dodopayments/resources/subscriptions.rbi +31 -5
  131. data/rbi/dodopayments/resources/webhooks.rbi +10 -0
  132. data/sig/dodopayments/client.rbs +2 -0
  133. data/sig/dodopayments/models/attach_product_entitlement.rbs +13 -0
  134. data/sig/dodopayments/models/cancellation_feedback.rbs +28 -0
  135. data/sig/dodopayments/models/checkout_session_flags.rbs +10 -3
  136. data/sig/dodopayments/models/checkout_session_request.rbs +5 -0
  137. data/sig/dodopayments/models/credit_entitlements/credit_ledger_entry.rbs +2 -0
  138. data/sig/dodopayments/models/credit_overage_reset_webhook_event.rbs +45 -0
  139. data/sig/dodopayments/models/customer_list_entitlements_params.rbs +23 -0
  140. data/sig/dodopayments/models/customer_list_entitlements_response.rbs +95 -0
  141. data/sig/dodopayments/models/digital_product_delivery.rbs +5 -5
  142. data/sig/dodopayments/models/digital_product_delivery_file.rbs +32 -5
  143. data/sig/dodopayments/models/entitlement.rbs +67 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +46 -0
  145. data/sig/dodopayments/models/entitlement_delete_params.rbs +23 -0
  146. data/sig/dodopayments/models/entitlement_grant_created_webhook_event.rbs +45 -0
  147. data/sig/dodopayments/models/entitlement_grant_delivered_webhook_event.rbs +45 -0
  148. data/sig/dodopayments/models/entitlement_grant_failed_webhook_event.rbs +45 -0
  149. data/sig/dodopayments/models/entitlement_grant_revoked_webhook_event.rbs +45 -0
  150. data/sig/dodopayments/models/entitlement_integration_type.rbs +28 -0
  151. data/sig/dodopayments/models/entitlement_list_params.rbs +69 -0
  152. data/sig/dodopayments/models/entitlement_retrieve_params.rbs +23 -0
  153. data/sig/dodopayments/models/entitlement_update_params.rbs +46 -0
  154. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +134 -0
  155. data/sig/dodopayments/models/entitlements/file_delete_params.rbs +30 -0
  156. data/sig/dodopayments/models/entitlements/file_upload_params.rbs +25 -0
  157. data/sig/dodopayments/models/entitlements/file_upload_response.rbs +15 -0
  158. data/sig/dodopayments/models/entitlements/grant_list_params.rbs +71 -0
  159. data/sig/dodopayments/models/entitlements/grant_revoke_params.rbs +30 -0
  160. data/sig/dodopayments/models/entitlements/license_key_grant.rbs +37 -0
  161. data/sig/dodopayments/models/integration_config.rbs +147 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +206 -0
  163. data/sig/dodopayments/models/license_key_instance_list_params.rbs +10 -1
  164. data/sig/dodopayments/models/one_time_product_cart_item.rbs +14 -3
  165. data/sig/dodopayments/models/payment.rbs +16 -4
  166. data/sig/dodopayments/models/payment_create_params.rbs +16 -27
  167. data/sig/dodopayments/models/payment_create_response.rbs +4 -27
  168. data/sig/dodopayments/models/product.rbs +4 -205
  169. data/sig/dodopayments/models/product_create_params.rbs +4 -4
  170. data/sig/dodopayments/models/product_entitlement_summary.rbs +40 -0
  171. data/sig/dodopayments/models/product_list_response.rbs +4 -205
  172. data/sig/dodopayments/models/product_update_params.rbs +4 -4
  173. data/sig/dodopayments/models/scheduled_plan_change.rbs +73 -0
  174. data/sig/dodopayments/models/subscription.rbs +14 -74
  175. data/sig/dodopayments/models/subscription_create_params.rbs +16 -27
  176. data/sig/dodopayments/models/subscription_create_response.rbs +16 -4
  177. data/sig/dodopayments/models/subscription_list_response.rbs +4 -74
  178. data/sig/dodopayments/models/subscription_update_params.rbs +12 -0
  179. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -0
  180. data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -0
  181. data/sig/dodopayments/models/update_subscription_plan_req.rbs +5 -0
  182. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  183. data/sig/dodopayments/models/webhook_payload.rbs +8 -134
  184. data/sig/dodopayments/models.rbs +40 -0
  185. data/sig/dodopayments/resources/checkout_sessions.rbs +2 -0
  186. data/sig/dodopayments/resources/customers.rbs +5 -0
  187. data/sig/dodopayments/resources/entitlements/files.rbs +20 -0
  188. data/sig/dodopayments/resources/entitlements/grants.rbs +24 -0
  189. data/sig/dodopayments/resources/entitlements.rbs +46 -0
  190. data/sig/dodopayments/resources/license_key_instances.rbs +1 -0
  191. data/sig/dodopayments/resources/payments.rbs +3 -1
  192. data/sig/dodopayments/resources/products.rbs +2 -2
  193. data/sig/dodopayments/resources/subscriptions.rbs +7 -1
  194. data/sig/dodopayments/resources/webhooks.rbs +10 -0
  195. metadata +92 -2
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "2.8.0"
4
+ VERSION = "2.9.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -57,6 +57,7 @@ require_relative "dodopayments/internal/cursor_page_pagination"
57
57
  require_relative "dodopayments/internal/default_page_number_pagination"
58
58
  require_relative "dodopayments/models/checkout_session_request"
59
59
  require_relative "dodopayments/models/update_subscription_plan_req"
60
+ require_relative "dodopayments/models/entitlements/entitlement_grant"
60
61
  require_relative "dodopayments/models/credit_entitlements/credit_ledger_entry"
61
62
  require_relative "dodopayments/models/license_key"
62
63
  require_relative "dodopayments/models/get_dispute"
@@ -77,6 +78,7 @@ require_relative "dodopayments/models/addon_update_params"
77
78
  require_relative "dodopayments/models/attach_addon"
78
79
  require_relative "dodopayments/models/attach_credit_entitlement"
79
80
  require_relative "dodopayments/models/attach_existing_customer"
81
+ require_relative "dodopayments/models/attach_product_entitlement"
80
82
  require_relative "dodopayments/models/balance_ledger_entry"
81
83
  require_relative "dodopayments/models/balance_retrieve_ledger_params"
82
84
  require_relative "dodopayments/models/billing_address"
@@ -88,6 +90,7 @@ require_relative "dodopayments/models/brand_retrieve_params"
88
90
  require_relative "dodopayments/models/brand_update_images_params"
89
91
  require_relative "dodopayments/models/brand_update_images_response"
90
92
  require_relative "dodopayments/models/brand_update_params"
93
+ require_relative "dodopayments/models/cancellation_feedback"
91
94
  require_relative "dodopayments/models/cbb_overage_behavior"
92
95
  require_relative "dodopayments/models/cbb_proration_behavior"
93
96
  require_relative "dodopayments/models/checkout_session_billing_address"
@@ -126,6 +129,7 @@ require_relative "dodopayments/models/credit_entitlement_update_params"
126
129
  require_relative "dodopayments/models/credit_expired_webhook_event"
127
130
  require_relative "dodopayments/models/credit_manual_adjustment_webhook_event"
128
131
  require_relative "dodopayments/models/credit_overage_charged_webhook_event"
132
+ require_relative "dodopayments/models/credit_overage_reset_webhook_event"
129
133
  require_relative "dodopayments/models/credit_rolled_over_webhook_event"
130
134
  require_relative "dodopayments/models/credit_rollover_forfeited_webhook_event"
131
135
  require_relative "dodopayments/models/currency"
@@ -135,6 +139,8 @@ require_relative "dodopayments/models/customer_delete_payment_method_params"
135
139
  require_relative "dodopayments/models/customer_limited_details"
136
140
  require_relative "dodopayments/models/customer_list_credit_entitlements_params"
137
141
  require_relative "dodopayments/models/customer_list_credit_entitlements_response"
142
+ require_relative "dodopayments/models/customer_list_entitlements_params"
143
+ require_relative "dodopayments/models/customer_list_entitlements_response"
138
144
  require_relative "dodopayments/models/customer_list_params"
139
145
  require_relative "dodopayments/models/customer_portal_session"
140
146
  require_relative "dodopayments/models/customer_request"
@@ -176,9 +182,28 @@ require_relative "dodopayments/models/dispute_status"
176
182
  require_relative "dodopayments/models/dispute_won_webhook_event"
177
183
  require_relative "dodopayments/models/dunning_recovered_webhook_event"
178
184
  require_relative "dodopayments/models/dunning_started_webhook_event"
185
+ require_relative "dodopayments/models/entitlement"
186
+ require_relative "dodopayments/models/entitlement_create_params"
187
+ require_relative "dodopayments/models/entitlement_delete_params"
188
+ require_relative "dodopayments/models/entitlement_grant_created_webhook_event"
189
+ require_relative "dodopayments/models/entitlement_grant_delivered_webhook_event"
190
+ require_relative "dodopayments/models/entitlement_grant_failed_webhook_event"
191
+ require_relative "dodopayments/models/entitlement_grant_revoked_webhook_event"
192
+ require_relative "dodopayments/models/entitlement_integration_type"
193
+ require_relative "dodopayments/models/entitlement_list_params"
194
+ require_relative "dodopayments/models/entitlement_retrieve_params"
195
+ require_relative "dodopayments/models/entitlements/file_delete_params"
196
+ require_relative "dodopayments/models/entitlements/file_upload_params"
197
+ require_relative "dodopayments/models/entitlements/file_upload_response"
198
+ require_relative "dodopayments/models/entitlements/grant_list_params"
199
+ require_relative "dodopayments/models/entitlements/grant_revoke_params"
200
+ require_relative "dodopayments/models/entitlements/license_key_grant"
201
+ require_relative "dodopayments/models/entitlement_update_params"
179
202
  require_relative "dodopayments/models/event"
180
203
  require_relative "dodopayments/models/event_input"
181
204
  require_relative "dodopayments/models/filter_operator"
205
+ require_relative "dodopayments/models/integration_config"
206
+ require_relative "dodopayments/models/integration_config_response"
182
207
  require_relative "dodopayments/models/intent_status"
183
208
  require_relative "dodopayments/models/invoices/payment_retrieve_params"
184
209
  require_relative "dodopayments/models/invoices/payment_retrieve_refund_params"
@@ -237,6 +262,7 @@ require_relative "dodopayments/models/price"
237
262
  require_relative "dodopayments/models/product"
238
263
  require_relative "dodopayments/models/product_archive_params"
239
264
  require_relative "dodopayments/models/product_create_params"
265
+ require_relative "dodopayments/models/product_entitlement_summary"
240
266
  require_relative "dodopayments/models/product_item_req"
241
267
  require_relative "dodopayments/models/product_list_params"
242
268
  require_relative "dodopayments/models/product_list_response"
@@ -258,6 +284,7 @@ require_relative "dodopayments/models/refund_list_params"
258
284
  require_relative "dodopayments/models/refund_retrieve_params"
259
285
  require_relative "dodopayments/models/refund_status"
260
286
  require_relative "dodopayments/models/refund_succeeded_webhook_event"
287
+ require_relative "dodopayments/models/scheduled_plan_change"
261
288
  require_relative "dodopayments/models/subscription_active_webhook_event"
262
289
  require_relative "dodopayments/models/subscription_cancel_change_plan_params"
263
290
  require_relative "dodopayments/models/subscription_cancelled_webhook_event"
@@ -324,6 +351,9 @@ require_relative "dodopayments/resources/customers/wallets"
324
351
  require_relative "dodopayments/resources/customers/wallets/ledger_entries"
325
352
  require_relative "dodopayments/resources/discounts"
326
353
  require_relative "dodopayments/resources/disputes"
354
+ require_relative "dodopayments/resources/entitlements"
355
+ require_relative "dodopayments/resources/entitlements/files"
356
+ require_relative "dodopayments/resources/entitlements/grants"
327
357
  require_relative "dodopayments/resources/invoices"
328
358
  require_relative "dodopayments/resources/invoices/payments"
329
359
  require_relative "dodopayments/resources/license_key_instances"
@@ -92,6 +92,9 @@ module Dodopayments
92
92
  sig { returns(Dodopayments::Resources::CreditEntitlements) }
93
93
  attr_reader :credit_entitlements
94
94
 
95
+ sig { returns(Dodopayments::Resources::Entitlements) }
96
+ attr_reader :entitlements
97
+
95
98
  # @api private
96
99
  sig { override.returns(T::Hash[String, String]) }
97
100
  private def auth_headers
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AttachProductEntitlement < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::AttachProductEntitlement,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # ID of the entitlement to attach to the product
15
+ sig { returns(String) }
16
+ attr_accessor :entitlement_id
17
+
18
+ # Request struct for attaching an entitlement to a product.
19
+ #
20
+ # Mirrors the `credit_entitlements` attach shape — every "attach something to a
21
+ # product" array takes objects, not bare IDs. Uniform shape leaves room for
22
+ # per-attachment settings later without another API break.
23
+ sig { params(entitlement_id: String).returns(T.attached_class) }
24
+ def self.new(
25
+ # ID of the entitlement to attach to the product
26
+ entitlement_id:
27
+ )
28
+ end
29
+
30
+ sig { override.returns({ entitlement_id: String }) }
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module CancellationFeedback
6
+ extend Dodopayments::Internal::Type::Enum
7
+
8
+ TaggedSymbol =
9
+ T.type_alias { T.all(Symbol, Dodopayments::CancellationFeedback) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ TOO_EXPENSIVE =
13
+ T.let(:too_expensive, Dodopayments::CancellationFeedback::TaggedSymbol)
14
+ MISSING_FEATURES =
15
+ T.let(
16
+ :missing_features,
17
+ Dodopayments::CancellationFeedback::TaggedSymbol
18
+ )
19
+ SWITCHED_SERVICE =
20
+ T.let(
21
+ :switched_service,
22
+ Dodopayments::CancellationFeedback::TaggedSymbol
23
+ )
24
+ UNUSED = T.let(:unused, Dodopayments::CancellationFeedback::TaggedSymbol)
25
+ CUSTOMER_SERVICE =
26
+ T.let(
27
+ :customer_service,
28
+ Dodopayments::CancellationFeedback::TaggedSymbol
29
+ )
30
+ LOW_QUALITY =
31
+ T.let(:low_quality, Dodopayments::CancellationFeedback::TaggedSymbol)
32
+ TOO_COMPLEX =
33
+ T.let(:too_complex, Dodopayments::CancellationFeedback::TaggedSymbol)
34
+ OTHER = T.let(:other, Dodopayments::CancellationFeedback::TaggedSymbol)
35
+
36
+ sig do
37
+ override.returns(
38
+ T::Array[Dodopayments::CancellationFeedback::TaggedSymbol]
39
+ )
40
+ end
41
+ def self.values
42
+ end
43
+ end
44
+ end
45
+ end
@@ -114,6 +114,16 @@ module Dodopayments
114
114
  sig { params(redirect_immediately: T::Boolean).void }
115
115
  attr_writer :redirect_immediately
116
116
 
117
+ # If true, the customer must provide a phone number to complete checkout. Requires
118
+ # `allow_phone_number_collection` to also be true.
119
+ #
120
+ # Default is false
121
+ sig { returns(T.nilable(T::Boolean)) }
122
+ attr_reader :require_phone_number
123
+
124
+ sig { params(require_phone_number: T::Boolean).void }
125
+ attr_writer :require_phone_number
126
+
117
127
  sig do
118
128
  params(
119
129
  allow_currency_selection: T::Boolean,
@@ -129,7 +139,8 @@ module Dodopayments
129
139
  allow_phone_number_collection: T::Boolean,
130
140
  allow_tax_id: T::Boolean,
131
141
  always_create_new_customer: T::Boolean,
132
- redirect_immediately: T::Boolean
142
+ redirect_immediately: T::Boolean,
143
+ require_phone_number: T::Boolean
133
144
  ).returns(T.attached_class)
134
145
  end
135
146
  def self.new(
@@ -165,7 +176,12 @@ module Dodopayments
165
176
  # If true, redirects the customer immediately after payment completion
166
177
  #
167
178
  # Default is false
168
- redirect_immediately: nil
179
+ redirect_immediately: nil,
180
+ # If true, the customer must provide a phone number to complete checkout. Requires
181
+ # `allow_phone_number_collection` to also be true.
182
+ #
183
+ # Default is false
184
+ require_phone_number: nil
169
185
  )
170
186
  end
171
187
 
@@ -185,7 +201,8 @@ module Dodopayments
185
201
  allow_phone_number_collection: T::Boolean,
186
202
  allow_tax_id: T::Boolean,
187
203
  always_create_new_customer: T::Boolean,
188
- redirect_immediately: T::Boolean
204
+ redirect_immediately: T::Boolean,
205
+ require_phone_number: T::Boolean
189
206
  }
190
207
  )
191
208
  end
@@ -97,6 +97,15 @@ module Dodopayments
97
97
  sig { returns(T.nilable(T::Boolean)) }
98
98
  attr_accessor :force_3ds
99
99
 
100
+ # Override the merchant-level mandate floor (in INR paise) for INR e-mandates on
101
+ # Indian-card recurring payments. The mandate amount sent to the processor is
102
+ # `max(this_floor, actual_billing_amount)`, so this is effectively the
103
+ # customer-facing authorization ceiling whenever billing is lower. When unset, the
104
+ # merchant setting applies; when that's also unset, the system default of ₹15,000
105
+ # applies.
106
+ sig { returns(T.nilable(Integer)) }
107
+ attr_accessor :mandate_min_amount_inr_paise
108
+
100
109
  # Additional metadata associated with the payment. Defaults to empty if not
101
110
  # provided.
102
111
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
@@ -174,6 +183,7 @@ module Dodopayments
174
183
  discount_code: T.nilable(String),
175
184
  feature_flags: Dodopayments::CheckoutSessionFlags::OrHash,
176
185
  force_3ds: T.nilable(T::Boolean),
186
+ mandate_min_amount_inr_paise: T.nilable(Integer),
177
187
  metadata: T.nilable(T::Hash[Symbol, String]),
178
188
  minimal_address: T::Boolean,
179
189
  payment_method_id: T.nilable(String),
@@ -214,6 +224,13 @@ module Dodopayments
214
224
  feature_flags: nil,
215
225
  # Override merchant default 3DS behaviour for this session
216
226
  force_3ds: nil,
227
+ # Override the merchant-level mandate floor (in INR paise) for INR e-mandates on
228
+ # Indian-card recurring payments. The mandate amount sent to the processor is
229
+ # `max(this_floor, actual_billing_amount)`, so this is effectively the
230
+ # customer-facing authorization ceiling whenever billing is lower. When unset, the
231
+ # merchant setting applies; when that's also unset, the system default of ₹15,000
232
+ # applies.
233
+ mandate_min_amount_inr_paise: nil,
217
234
  # Additional metadata associated with the payment. Defaults to empty if not
218
235
  # provided.
219
236
  metadata: nil,
@@ -261,6 +278,7 @@ module Dodopayments
261
278
  discount_code: T.nilable(String),
262
279
  feature_flags: Dodopayments::CheckoutSessionFlags,
263
280
  force_3ds: T.nilable(T::Boolean),
281
+ mandate_min_amount_inr_paise: T.nilable(Integer),
264
282
  metadata: T.nilable(T::Hash[Symbol, String]),
265
283
  minimal_address: T::Boolean,
266
284
  payment_method_id: T.nilable(String),
@@ -174,6 +174,11 @@ module Dodopayments
174
174
  :overage_charged,
175
175
  Dodopayments::CreditEntitlements::CreditLedgerEntry::TransactionType::TaggedSymbol
176
176
  )
177
+ OVERAGE_RESET =
178
+ T.let(
179
+ :overage_reset,
180
+ Dodopayments::CreditEntitlements::CreditLedgerEntry::TransactionType::TaggedSymbol
181
+ )
177
182
  AUTO_TOP_UP =
178
183
  T.let(
179
184
  :auto_top_up,
@@ -0,0 +1,103 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CreditOverageResetWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::CreditOverageResetWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ # Response for a ledger entry
19
+ sig { returns(Dodopayments::CreditEntitlements::CreditLedgerEntry) }
20
+ attr_reader :data
21
+
22
+ sig do
23
+ params(
24
+ data: Dodopayments::CreditEntitlements::CreditLedgerEntry::OrHash
25
+ ).void
26
+ end
27
+ attr_writer :data
28
+
29
+ # The timestamp of when the event occurred
30
+ sig { returns(Time) }
31
+ attr_accessor :timestamp
32
+
33
+ # The event type
34
+ sig do
35
+ returns(
36
+ Dodopayments::CreditOverageResetWebhookEvent::Type::TaggedSymbol
37
+ )
38
+ end
39
+ attr_accessor :type
40
+
41
+ sig do
42
+ params(
43
+ business_id: String,
44
+ data: Dodopayments::CreditEntitlements::CreditLedgerEntry::OrHash,
45
+ timestamp: Time,
46
+ type: Dodopayments::CreditOverageResetWebhookEvent::Type::OrSymbol
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The business identifier
51
+ business_id:,
52
+ # Response for a ledger entry
53
+ data:,
54
+ # The timestamp of when the event occurred
55
+ timestamp:,
56
+ # The event type
57
+ type:
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ business_id: String,
65
+ data: Dodopayments::CreditEntitlements::CreditLedgerEntry,
66
+ timestamp: Time,
67
+ type:
68
+ Dodopayments::CreditOverageResetWebhookEvent::Type::TaggedSymbol
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ # The event type
76
+ module Type
77
+ extend Dodopayments::Internal::Type::Enum
78
+
79
+ TaggedSymbol =
80
+ T.type_alias do
81
+ T.all(Symbol, Dodopayments::CreditOverageResetWebhookEvent::Type)
82
+ end
83
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
84
+
85
+ CREDIT_OVERAGE_RESET =
86
+ T.let(
87
+ :"credit.overage_reset",
88
+ Dodopayments::CreditOverageResetWebhookEvent::Type::TaggedSymbol
89
+ )
90
+
91
+ sig do
92
+ override.returns(
93
+ T::Array[
94
+ Dodopayments::CreditOverageResetWebhookEvent::Type::TaggedSymbol
95
+ ]
96
+ )
97
+ end
98
+ def self.values
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CustomerListEntitlementsParams < Dodopayments::Internal::Type::BaseModel
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::CustomerListEntitlementsParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :customer_id
19
+
20
+ sig do
21
+ params(
22
+ customer_id: String,
23
+ request_options: Dodopayments::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(customer_id:, request_options: {})
27
+ end
28
+
29
+ sig do
30
+ override.returns(
31
+ { customer_id: String, request_options: Dodopayments::RequestOptions }
32
+ )
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,189 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CustomerListEntitlementsResponse < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::Models::CustomerListEntitlementsResponse,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(
16
+ T::Array[Dodopayments::Models::CustomerListEntitlementsResponse::Item]
17
+ )
18
+ end
19
+ attr_accessor :items
20
+
21
+ sig do
22
+ params(
23
+ items:
24
+ T::Array[
25
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::OrHash
26
+ ]
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(items:)
30
+ end
31
+
32
+ sig do
33
+ override.returns(
34
+ {
35
+ items:
36
+ T::Array[
37
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item
38
+ ]
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ class Item < Dodopayments::Internal::Type::BaseModel
46
+ OrHash =
47
+ T.type_alias do
48
+ T.any(
49
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item,
50
+ Dodopayments::Internal::AnyHash
51
+ )
52
+ end
53
+
54
+ sig { returns(Time) }
55
+ attr_accessor :created_at
56
+
57
+ # The entitlement this grant belongs to.
58
+ sig { returns(String) }
59
+ attr_accessor :entitlement_id
60
+
61
+ sig { returns(String) }
62
+ attr_accessor :entitlement_name
63
+
64
+ # Grant id (the per-customer row in `entitlement_grants`).
65
+ sig { returns(String) }
66
+ attr_accessor :grant_id
67
+
68
+ sig { returns(Dodopayments::EntitlementIntegrationType::TaggedSymbol) }
69
+ attr_accessor :integration_type
70
+
71
+ sig do
72
+ returns(
73
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol
74
+ )
75
+ end
76
+ attr_accessor :status
77
+
78
+ sig { returns(Time) }
79
+ attr_accessor :updated_at
80
+
81
+ sig { returns(T.nilable(Time)) }
82
+ attr_accessor :delivered_at
83
+
84
+ sig { returns(T.nilable(String)) }
85
+ attr_accessor :entitlement_description
86
+
87
+ sig { returns(T.nilable(Time)) }
88
+ attr_accessor :revoked_at
89
+
90
+ sig do
91
+ params(
92
+ created_at: Time,
93
+ entitlement_id: String,
94
+ entitlement_name: String,
95
+ grant_id: String,
96
+ integration_type:
97
+ Dodopayments::EntitlementIntegrationType::OrSymbol,
98
+ status:
99
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::OrSymbol,
100
+ updated_at: Time,
101
+ delivered_at: T.nilable(Time),
102
+ entitlement_description: T.nilable(String),
103
+ revoked_at: T.nilable(Time)
104
+ ).returns(T.attached_class)
105
+ end
106
+ def self.new(
107
+ created_at:,
108
+ # The entitlement this grant belongs to.
109
+ entitlement_id:,
110
+ entitlement_name:,
111
+ # Grant id (the per-customer row in `entitlement_grants`).
112
+ grant_id:,
113
+ integration_type:,
114
+ status:,
115
+ updated_at:,
116
+ delivered_at: nil,
117
+ entitlement_description: nil,
118
+ revoked_at: nil
119
+ )
120
+ end
121
+
122
+ sig do
123
+ override.returns(
124
+ {
125
+ created_at: Time,
126
+ entitlement_id: String,
127
+ entitlement_name: String,
128
+ grant_id: String,
129
+ integration_type:
130
+ Dodopayments::EntitlementIntegrationType::TaggedSymbol,
131
+ status:
132
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol,
133
+ updated_at: Time,
134
+ delivered_at: T.nilable(Time),
135
+ entitlement_description: T.nilable(String),
136
+ revoked_at: T.nilable(Time)
137
+ }
138
+ )
139
+ end
140
+ def to_hash
141
+ end
142
+
143
+ module Status
144
+ extend Dodopayments::Internal::Type::Enum
145
+
146
+ TaggedSymbol =
147
+ T.type_alias do
148
+ T.all(
149
+ Symbol,
150
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status
151
+ )
152
+ end
153
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
154
+
155
+ PENDING =
156
+ T.let(
157
+ :pending,
158
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol
159
+ )
160
+ DELIVERED =
161
+ T.let(
162
+ :delivered,
163
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol
164
+ )
165
+ FAILED =
166
+ T.let(
167
+ :failed,
168
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol
169
+ )
170
+ REVOKED =
171
+ T.let(
172
+ :revoked,
173
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol
174
+ )
175
+
176
+ sig do
177
+ override.returns(
178
+ T::Array[
179
+ Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status::TaggedSymbol
180
+ ]
181
+ )
182
+ end
183
+ def self.values
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end