dodopayments 2.8.1 → 2.9.1

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 +19 -14
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +40 -9
  15. data/lib/dodopayments/models/entitlement.rb +97 -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 +56 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +56 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +56 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +56 -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 +190 -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 +45 -0
  33. data/lib/dodopayments/models/integration_config.rb +217 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +278 -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 +10 -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 +6 -153
  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 +63 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +76 -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 +16 -18
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +51 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +127 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +115 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +107 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +107 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +106 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +107 -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 +269 -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 +68 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +411 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +531 -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 +8 -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 +6 -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 +45 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +63 -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 +65 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +48 -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 +127 -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 +171 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +225 -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
@@ -55,7 +55,15 @@ module Dodopayments
55
55
  attr_accessor :expires_on
56
56
 
57
57
  # One time products associated with the purchase of subscription
58
- sig { returns(T.nilable(T::Array[Dodopayments::OneTimeProductCartItem])) }
58
+ sig do
59
+ returns(
60
+ T.nilable(
61
+ T::Array[
62
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart
63
+ ]
64
+ )
65
+ )
66
+ end
59
67
  attr_accessor :one_time_product_cart
60
68
 
61
69
  # URL to checkout page
@@ -74,7 +82,11 @@ module Dodopayments
74
82
  discount_id: T.nilable(String),
75
83
  expires_on: T.nilable(Time),
76
84
  one_time_product_cart:
77
- T.nilable(T::Array[Dodopayments::OneTimeProductCartItem::OrHash]),
85
+ T.nilable(
86
+ T::Array[
87
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart::OrHash
88
+ ]
89
+ ),
78
90
  payment_link: T.nilable(String)
79
91
  ).returns(T.attached_class)
80
92
  end
@@ -119,13 +131,45 @@ module Dodopayments
119
131
  discount_id: T.nilable(String),
120
132
  expires_on: T.nilable(Time),
121
133
  one_time_product_cart:
122
- T.nilable(T::Array[Dodopayments::OneTimeProductCartItem]),
134
+ T.nilable(
135
+ T::Array[
136
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart
137
+ ]
138
+ ),
123
139
  payment_link: T.nilable(String)
124
140
  }
125
141
  )
126
142
  end
127
143
  def to_hash
128
144
  end
145
+
146
+ class OneTimeProductCart < Dodopayments::Internal::Type::BaseModel
147
+ OrHash =
148
+ T.type_alias do
149
+ T.any(
150
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart,
151
+ Dodopayments::Internal::AnyHash
152
+ )
153
+ end
154
+
155
+ sig { returns(String) }
156
+ attr_accessor :product_id
157
+
158
+ sig { returns(Integer) }
159
+ attr_accessor :quantity
160
+
161
+ sig do
162
+ params(product_id: String, quantity: Integer).returns(
163
+ T.attached_class
164
+ )
165
+ end
166
+ def self.new(product_id:, quantity:)
167
+ end
168
+
169
+ sig { override.returns({ product_id: String, quantity: Integer }) }
170
+ def to_hash
171
+ end
172
+ end
129
173
  end
130
174
  end
131
175
  end
@@ -122,21 +122,12 @@ module Dodopayments
122
122
  attr_accessor :product_name
123
123
 
124
124
  # Scheduled plan change details, if any
125
- sig do
126
- returns(
127
- T.nilable(
128
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange
129
- )
130
- )
131
- end
125
+ sig { returns(T.nilable(Dodopayments::ScheduledPlanChange)) }
132
126
  attr_reader :scheduled_change
133
127
 
134
128
  sig do
135
129
  params(
136
- scheduled_change:
137
- T.nilable(
138
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange::OrHash
139
- )
130
+ scheduled_change: T.nilable(Dodopayments::ScheduledPlanChange::OrHash)
140
131
  ).void
141
132
  end
142
133
  attr_writer :scheduled_change
@@ -174,9 +165,7 @@ module Dodopayments
174
165
  payment_method_id: T.nilable(String),
175
166
  product_name: T.nilable(String),
176
167
  scheduled_change:
177
- T.nilable(
178
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange::OrHash
179
- ),
168
+ T.nilable(Dodopayments::ScheduledPlanChange::OrHash),
180
169
  tax_id: T.nilable(String)
181
170
  ).returns(T.attached_class)
182
171
  end
@@ -270,165 +259,13 @@ module Dodopayments
270
259
  discount_id: T.nilable(String),
271
260
  payment_method_id: T.nilable(String),
272
261
  product_name: T.nilable(String),
273
- scheduled_change:
274
- T.nilable(
275
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange
276
- ),
262
+ scheduled_change: T.nilable(Dodopayments::ScheduledPlanChange),
277
263
  tax_id: T.nilable(String)
278
264
  }
279
265
  )
280
266
  end
281
267
  def to_hash
282
268
  end
283
-
284
- class ScheduledChange < Dodopayments::Internal::Type::BaseModel
285
- OrHash =
286
- T.type_alias do
287
- T.any(
288
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange,
289
- Dodopayments::Internal::AnyHash
290
- )
291
- end
292
-
293
- # The scheduled plan change ID
294
- sig { returns(String) }
295
- attr_accessor :id
296
-
297
- # Addons included in the scheduled change
298
- sig do
299
- returns(
300
- T::Array[
301
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange::Addon
302
- ]
303
- )
304
- end
305
- attr_accessor :addons
306
-
307
- # When this scheduled change was created
308
- sig { returns(Time) }
309
- attr_accessor :created_at
310
-
311
- # When the change will be applied
312
- sig { returns(Time) }
313
- attr_accessor :effective_at
314
-
315
- # The product ID the subscription will change to
316
- sig { returns(String) }
317
- attr_accessor :product_id
318
-
319
- # Quantity for the new plan
320
- sig { returns(Integer) }
321
- attr_accessor :quantity
322
-
323
- # Description of the product being changed to
324
- sig { returns(T.nilable(String)) }
325
- attr_accessor :product_description
326
-
327
- # Name of the product being changed to
328
- sig { returns(T.nilable(String)) }
329
- attr_accessor :product_name
330
-
331
- # Scheduled plan change details, if any
332
- sig do
333
- params(
334
- id: String,
335
- addons:
336
- T::Array[
337
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange::Addon::OrHash
338
- ],
339
- created_at: Time,
340
- effective_at: Time,
341
- product_id: String,
342
- quantity: Integer,
343
- product_description: T.nilable(String),
344
- product_name: T.nilable(String)
345
- ).returns(T.attached_class)
346
- end
347
- def self.new(
348
- # The scheduled plan change ID
349
- id:,
350
- # Addons included in the scheduled change
351
- addons:,
352
- # When this scheduled change was created
353
- created_at:,
354
- # When the change will be applied
355
- effective_at:,
356
- # The product ID the subscription will change to
357
- product_id:,
358
- # Quantity for the new plan
359
- quantity:,
360
- # Description of the product being changed to
361
- product_description: nil,
362
- # Name of the product being changed to
363
- product_name: nil
364
- )
365
- end
366
-
367
- sig do
368
- override.returns(
369
- {
370
- id: String,
371
- addons:
372
- T::Array[
373
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange::Addon
374
- ],
375
- created_at: Time,
376
- effective_at: Time,
377
- product_id: String,
378
- quantity: Integer,
379
- product_description: T.nilable(String),
380
- product_name: T.nilable(String)
381
- }
382
- )
383
- end
384
- def to_hash
385
- end
386
-
387
- class Addon < Dodopayments::Internal::Type::BaseModel
388
- OrHash =
389
- T.type_alias do
390
- T.any(
391
- Dodopayments::Models::SubscriptionListResponse::ScheduledChange::Addon,
392
- Dodopayments::Internal::AnyHash
393
- )
394
- end
395
-
396
- # The addon ID
397
- sig { returns(String) }
398
- attr_accessor :addon_id
399
-
400
- # Name of the addon
401
- sig { returns(String) }
402
- attr_accessor :name
403
-
404
- # Quantity of the addon
405
- sig { returns(Integer) }
406
- attr_accessor :quantity
407
-
408
- sig do
409
- params(addon_id: String, name: String, quantity: Integer).returns(
410
- T.attached_class
411
- )
412
- end
413
- def self.new(
414
- # The addon ID
415
- addon_id:,
416
- # Name of the addon
417
- name:,
418
- # Quantity of the addon
419
- quantity:
420
- )
421
- end
422
-
423
- sig do
424
- override.returns(
425
- { addon_id: String, name: String, quantity: Integer }
426
- )
427
- end
428
- def to_hash
429
- end
430
- end
431
- end
432
269
  end
433
270
  end
434
271
  end
@@ -38,6 +38,16 @@ module Dodopayments
38
38
  end
39
39
  attr_accessor :cancel_reason
40
40
 
41
+ # Free-text cancellation comment (only valid when cancelling or scheduling
42
+ # cancellation).
43
+ sig { returns(T.nilable(String)) }
44
+ attr_accessor :cancellation_comment
45
+
46
+ # Customer-supplied churn reason (only valid when cancelling or scheduling
47
+ # cancellation).
48
+ sig { returns(T.nilable(Dodopayments::CancellationFeedback::OrSymbol)) }
49
+ attr_accessor :cancellation_feedback
50
+
41
51
  # Update credit entitlement cart settings
42
52
  sig do
43
53
  returns(
@@ -91,6 +101,9 @@ module Dodopayments
91
101
  T.nilable(
92
102
  Dodopayments::SubscriptionUpdateParams::CancelReason::OrSymbol
93
103
  ),
104
+ cancellation_comment: T.nilable(String),
105
+ cancellation_feedback:
106
+ T.nilable(Dodopayments::CancellationFeedback::OrSymbol),
94
107
  credit_entitlement_cart:
95
108
  T.nilable(
96
109
  T::Array[
@@ -115,6 +128,12 @@ module Dodopayments
115
128
  # When set, the subscription will remain active until the end of billing period
116
129
  cancel_at_next_billing_date: nil,
117
130
  cancel_reason: nil,
131
+ # Free-text cancellation comment (only valid when cancelling or scheduling
132
+ # cancellation).
133
+ cancellation_comment: nil,
134
+ # Customer-supplied churn reason (only valid when cancelling or scheduling
135
+ # cancellation).
136
+ cancellation_feedback: nil,
118
137
  # Update credit entitlement cart settings
119
138
  credit_entitlement_cart: nil,
120
139
  customer_name: nil,
@@ -137,6 +156,9 @@ module Dodopayments
137
156
  T.nilable(
138
157
  Dodopayments::SubscriptionUpdateParams::CancelReason::OrSymbol
139
158
  ),
159
+ cancellation_comment: T.nilable(String),
160
+ cancellation_feedback:
161
+ T.nilable(Dodopayments::CancellationFeedback::OrSymbol),
140
162
  credit_entitlement_cart:
141
163
  T.nilable(
142
164
  T::Array[
@@ -183,6 +205,11 @@ module Dodopayments
183
205
  :cancelled_by_merchant_send_dunning,
184
206
  Dodopayments::SubscriptionUpdateParams::CancelReason::TaggedSymbol
185
207
  )
208
+ DODO_TEAM =
209
+ T.let(
210
+ :dodo_team,
211
+ Dodopayments::SubscriptionUpdateParams::CancelReason::TaggedSymbol
212
+ )
186
213
 
187
214
  sig do
188
215
  override.returns(
@@ -16,6 +16,7 @@ module Dodopayments
16
16
  Dodopayments::CreditExpiredWebhookEvent,
17
17
  Dodopayments::CreditManualAdjustmentWebhookEvent,
18
18
  Dodopayments::CreditOverageChargedWebhookEvent,
19
+ Dodopayments::CreditOverageResetWebhookEvent,
19
20
  Dodopayments::CreditRolledOverWebhookEvent,
20
21
  Dodopayments::CreditRolloverForfeitedWebhookEvent,
21
22
  Dodopayments::DisputeAcceptedWebhookEvent,
@@ -27,6 +28,10 @@ module Dodopayments
27
28
  Dodopayments::DisputeWonWebhookEvent,
28
29
  Dodopayments::DunningRecoveredWebhookEvent,
29
30
  Dodopayments::DunningStartedWebhookEvent,
31
+ Dodopayments::EntitlementGrantCreatedWebhookEvent,
32
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent,
33
+ Dodopayments::EntitlementGrantFailedWebhookEvent,
34
+ Dodopayments::EntitlementGrantRevokedWebhookEvent,
30
35
  Dodopayments::LicenseKeyCreatedWebhookEvent,
31
36
  Dodopayments::PaymentCancelledWebhookEvent,
32
37
  Dodopayments::PaymentFailedWebhookEvent,
@@ -16,6 +16,7 @@ module Dodopayments
16
16
  Dodopayments::CreditExpiredWebhookEvent,
17
17
  Dodopayments::CreditManualAdjustmentWebhookEvent,
18
18
  Dodopayments::CreditOverageChargedWebhookEvent,
19
+ Dodopayments::CreditOverageResetWebhookEvent,
19
20
  Dodopayments::CreditRolledOverWebhookEvent,
20
21
  Dodopayments::CreditRolloverForfeitedWebhookEvent,
21
22
  Dodopayments::DisputeAcceptedWebhookEvent,
@@ -27,6 +28,10 @@ module Dodopayments
27
28
  Dodopayments::DisputeWonWebhookEvent,
28
29
  Dodopayments::DunningRecoveredWebhookEvent,
29
30
  Dodopayments::DunningStartedWebhookEvent,
31
+ Dodopayments::EntitlementGrantCreatedWebhookEvent,
32
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent,
33
+ Dodopayments::EntitlementGrantFailedWebhookEvent,
34
+ Dodopayments::EntitlementGrantRevokedWebhookEvent,
30
35
  Dodopayments::LicenseKeyCreatedWebhookEvent,
31
36
  Dodopayments::PaymentCancelledWebhookEvent,
32
37
  Dodopayments::PaymentFailedWebhookEvent,
@@ -27,6 +27,11 @@ module Dodopayments
27
27
  sig { returns(Integer) }
28
28
  attr_accessor :quantity
29
29
 
30
+ # Whether adaptive currency fees should be included in the price (true) or added
31
+ # on top (false). If not specified, uses the subscription's stored setting.
32
+ sig { returns(T.nilable(T::Boolean)) }
33
+ attr_accessor :adaptive_currency_fees_inclusive
34
+
30
35
  # Addons for the new plan. Note : Leaving this empty would remove any existing
31
36
  # addons
32
37
  sig { returns(T.nilable(T::Array[Dodopayments::AttachAddon])) }
@@ -87,6 +92,7 @@ module Dodopayments
87
92
  proration_billing_mode:
88
93
  Dodopayments::UpdateSubscriptionPlanReq::ProrationBillingMode::OrSymbol,
89
94
  quantity: Integer,
95
+ adaptive_currency_fees_inclusive: T.nilable(T::Boolean),
90
96
  addons: T.nilable(T::Array[Dodopayments::AttachAddon::OrHash]),
91
97
  discount_code: T.nilable(String),
92
98
  effective_at:
@@ -105,6 +111,9 @@ module Dodopayments
105
111
  proration_billing_mode:,
106
112
  # Number of units to subscribe for. Must be at least 1.
107
113
  quantity:,
114
+ # Whether adaptive currency fees should be included in the price (true) or added
115
+ # on top (false). If not specified, uses the subscription's stored setting.
116
+ adaptive_currency_fees_inclusive: nil,
108
117
  # Addons for the new plan. Note : Leaving this empty would remove any existing
109
118
  # addons
110
119
  addons: nil,
@@ -139,6 +148,7 @@ module Dodopayments
139
148
  proration_billing_mode:
140
149
  Dodopayments::UpdateSubscriptionPlanReq::ProrationBillingMode::OrSymbol,
141
150
  quantity: Integer,
151
+ adaptive_currency_fees_inclusive: T.nilable(T::Boolean),
142
152
  addons: T.nilable(T::Array[Dodopayments::AttachAddon]),
143
153
  discount_code: T.nilable(String),
144
154
  effective_at:
@@ -133,6 +133,11 @@ module Dodopayments
133
133
  :"credit.overage_charged",
134
134
  Dodopayments::WebhookEventType::TaggedSymbol
135
135
  )
136
+ CREDIT_OVERAGE_RESET =
137
+ T.let(
138
+ :"credit.overage_reset",
139
+ Dodopayments::WebhookEventType::TaggedSymbol
140
+ )
136
141
  CREDIT_MANUAL_ADJUSTMENT =
137
142
  T.let(
138
143
  :"credit.manual_adjustment",
@@ -1018,7 +1018,7 @@ module Dodopayments
1018
1018
  end
1019
1019
  end
1020
1020
 
1021
- class EntitlementGrant < Dodopayments::Internal::Type::BaseModel
1021
+ class EntitlementGrant < Dodopayments::Models::Entitlements::EntitlementGrant
1022
1022
  OrHash =
1023
1023
  T.type_alias do
1024
1024
  T.any(
@@ -1027,24 +1027,6 @@ module Dodopayments
1027
1027
  )
1028
1028
  end
1029
1029
 
1030
- sig { returns(String) }
1031
- attr_accessor :id
1032
-
1033
- sig { returns(String) }
1034
- attr_accessor :business_id
1035
-
1036
- sig { returns(Time) }
1037
- attr_accessor :created_at
1038
-
1039
- sig { returns(String) }
1040
- attr_accessor :customer_id
1041
-
1042
- sig { returns(String) }
1043
- attr_accessor :entitlement_id
1044
-
1045
- sig { returns(String) }
1046
- attr_accessor :external_id
1047
-
1048
1030
  sig do
1049
1031
  returns(
1050
1032
  Dodopayments::WebhookPayload::Data::EntitlementGrant::PayloadType::OrSymbol
@@ -1052,151 +1034,22 @@ module Dodopayments
1052
1034
  end
1053
1035
  attr_accessor :payload_type
1054
1036
 
1055
- sig do
1056
- returns(
1057
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::OrSymbol
1058
- )
1059
- end
1060
- attr_accessor :status
1061
-
1062
- sig { returns(Time) }
1063
- attr_accessor :updated_at
1064
-
1065
- sig { returns(T.nilable(Time)) }
1066
- attr_accessor :delivered_at
1067
-
1068
- sig { returns(T.nilable(String)) }
1069
- attr_accessor :error_code
1070
-
1071
- sig { returns(T.nilable(String)) }
1072
- attr_accessor :error_message
1073
-
1074
- sig { returns(T.nilable(String)) }
1075
- attr_accessor :license_key
1076
-
1077
- sig { returns(T.nilable(Integer)) }
1078
- attr_accessor :license_key_activations_limit
1079
-
1080
- sig { returns(T.nilable(Integer)) }
1081
- attr_accessor :license_key_activations_used
1082
-
1083
- sig { returns(T.nilable(Time)) }
1084
- attr_accessor :license_key_expires_at
1085
-
1086
- sig { returns(T.nilable(String)) }
1087
- attr_accessor :license_key_status
1088
-
1089
- sig { returns(T.nilable(T.anything)) }
1090
- attr_reader :metadata
1091
-
1092
- sig { params(metadata: T.anything).void }
1093
- attr_writer :metadata
1094
-
1095
- sig { returns(T.nilable(Time)) }
1096
- attr_accessor :oauth_expires_at
1097
-
1098
- sig { returns(T.nilable(String)) }
1099
- attr_accessor :oauth_url
1100
-
1101
- sig { returns(T.nilable(String)) }
1102
- attr_accessor :payment_id
1103
-
1104
- sig { returns(T.nilable(String)) }
1105
- attr_accessor :revocation_reason
1106
-
1107
- sig { returns(T.nilable(Time)) }
1108
- attr_accessor :revoked_at
1109
-
1110
- sig { returns(T.nilable(String)) }
1111
- attr_accessor :subscription_id
1112
-
1037
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
1038
+ # and any integration-specific delivery payload.
1113
1039
  sig do
1114
1040
  params(
1115
- id: String,
1116
- business_id: String,
1117
- created_at: Time,
1118
- customer_id: String,
1119
- entitlement_id: String,
1120
- external_id: String,
1121
1041
  payload_type:
1122
- Dodopayments::WebhookPayload::Data::EntitlementGrant::PayloadType::OrSymbol,
1123
- status:
1124
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::OrSymbol,
1125
- updated_at: Time,
1126
- delivered_at: T.nilable(Time),
1127
- error_code: T.nilable(String),
1128
- error_message: T.nilable(String),
1129
- license_key: T.nilable(String),
1130
- license_key_activations_limit: T.nilable(Integer),
1131
- license_key_activations_used: T.nilable(Integer),
1132
- license_key_expires_at: T.nilable(Time),
1133
- license_key_status: T.nilable(String),
1134
- metadata: T.anything,
1135
- oauth_expires_at: T.nilable(Time),
1136
- oauth_url: T.nilable(String),
1137
- payment_id: T.nilable(String),
1138
- revocation_reason: T.nilable(String),
1139
- revoked_at: T.nilable(Time),
1140
- subscription_id: T.nilable(String)
1042
+ Dodopayments::WebhookPayload::Data::EntitlementGrant::PayloadType::OrSymbol
1141
1043
  ).returns(T.attached_class)
1142
1044
  end
1143
- def self.new(
1144
- id:,
1145
- business_id:,
1146
- created_at:,
1147
- customer_id:,
1148
- entitlement_id:,
1149
- external_id:,
1150
- payload_type:,
1151
- status:,
1152
- updated_at:,
1153
- delivered_at: nil,
1154
- error_code: nil,
1155
- error_message: nil,
1156
- license_key: nil,
1157
- license_key_activations_limit: nil,
1158
- license_key_activations_used: nil,
1159
- license_key_expires_at: nil,
1160
- license_key_status: nil,
1161
- metadata: nil,
1162
- oauth_expires_at: nil,
1163
- oauth_url: nil,
1164
- payment_id: nil,
1165
- revocation_reason: nil,
1166
- revoked_at: nil,
1167
- subscription_id: nil
1168
- )
1045
+ def self.new(payload_type:)
1169
1046
  end
1170
1047
 
1171
1048
  sig do
1172
1049
  override.returns(
1173
1050
  {
1174
- id: String,
1175
- business_id: String,
1176
- created_at: Time,
1177
- customer_id: String,
1178
- entitlement_id: String,
1179
- external_id: String,
1180
1051
  payload_type:
1181
- Dodopayments::WebhookPayload::Data::EntitlementGrant::PayloadType::OrSymbol,
1182
- status:
1183
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::OrSymbol,
1184
- updated_at: Time,
1185
- delivered_at: T.nilable(Time),
1186
- error_code: T.nilable(String),
1187
- error_message: T.nilable(String),
1188
- license_key: T.nilable(String),
1189
- license_key_activations_limit: T.nilable(Integer),
1190
- license_key_activations_used: T.nilable(Integer),
1191
- license_key_expires_at: T.nilable(Time),
1192
- license_key_status: T.nilable(String),
1193
- metadata: T.anything,
1194
- oauth_expires_at: T.nilable(Time),
1195
- oauth_url: T.nilable(String),
1196
- payment_id: T.nilable(String),
1197
- revocation_reason: T.nilable(String),
1198
- revoked_at: T.nilable(Time),
1199
- subscription_id: T.nilable(String)
1052
+ Dodopayments::WebhookPayload::Data::EntitlementGrant::PayloadType::OrSymbol
1200
1053
  }
1201
1054
  )
1202
1055
  end
@@ -1231,50 +1084,6 @@ module Dodopayments
1231
1084
  def self.values
1232
1085
  end
1233
1086
  end
1234
-
1235
- module Status
1236
- extend Dodopayments::Internal::Type::Enum
1237
-
1238
- TaggedSymbol =
1239
- T.type_alias do
1240
- T.all(
1241
- Symbol,
1242
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status
1243
- )
1244
- end
1245
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1246
-
1247
- PENDING =
1248
- T.let(
1249
- :Pending,
1250
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::TaggedSymbol
1251
- )
1252
- DELIVERED =
1253
- T.let(
1254
- :Delivered,
1255
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::TaggedSymbol
1256
- )
1257
- FAILED =
1258
- T.let(
1259
- :Failed,
1260
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::TaggedSymbol
1261
- )
1262
- REVOKED =
1263
- T.let(
1264
- :Revoked,
1265
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::TaggedSymbol
1266
- )
1267
-
1268
- sig do
1269
- override.returns(
1270
- T::Array[
1271
- Dodopayments::WebhookPayload::Data::EntitlementGrant::Status::TaggedSymbol
1272
- ]
1273
- )
1274
- end
1275
- def self.values
1276
- end
1277
- end
1278
1087
  end
1279
1088
 
1280
1089
  sig do