dodopayments 2.9.0 → 2.10.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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/internal/transport/base_client.rb +2 -0
  5. data/lib/dodopayments/internal/type/union.rb +21 -7
  6. data/lib/dodopayments/models/abandoned_checkout_detected_webhook_event.rb +4 -16
  7. data/lib/dodopayments/models/abandoned_checkout_recovered_webhook_event.rb +4 -16
  8. data/lib/dodopayments/models/checkout_session_request.rb +15 -2
  9. data/lib/dodopayments/models/credit_added_webhook_event.rb +4 -16
  10. data/lib/dodopayments/models/credit_balance_low_webhook_event.rb +4 -16
  11. data/lib/dodopayments/models/credit_deducted_webhook_event.rb +4 -16
  12. data/lib/dodopayments/models/credit_expired_webhook_event.rb +4 -16
  13. data/lib/dodopayments/models/credit_manual_adjustment_webhook_event.rb +4 -16
  14. data/lib/dodopayments/models/credit_overage_charged_webhook_event.rb +4 -16
  15. data/lib/dodopayments/models/credit_overage_reset_webhook_event.rb +4 -16
  16. data/lib/dodopayments/models/credit_rolled_over_webhook_event.rb +4 -16
  17. data/lib/dodopayments/models/credit_rollover_forfeited_webhook_event.rb +4 -16
  18. data/lib/dodopayments/models/digital_product_delivery.rb +14 -7
  19. data/lib/dodopayments/models/digital_product_delivery_file.rb +12 -5
  20. data/lib/dodopayments/models/dispute_accepted_webhook_event.rb +4 -16
  21. data/lib/dodopayments/models/dispute_cancelled_webhook_event.rb +4 -16
  22. data/lib/dodopayments/models/dispute_challenged_webhook_event.rb +4 -16
  23. data/lib/dodopayments/models/dispute_expired_webhook_event.rb +4 -16
  24. data/lib/dodopayments/models/dispute_lost_webhook_event.rb +4 -16
  25. data/lib/dodopayments/models/dispute_opened_webhook_event.rb +4 -16
  26. data/lib/dodopayments/models/dispute_won_webhook_event.rb +4 -16
  27. data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +4 -16
  28. data/lib/dodopayments/models/dunning_started_webhook_event.rb +4 -16
  29. data/lib/dodopayments/models/entitlement.rb +31 -20
  30. data/lib/dodopayments/models/entitlement_create_params.rb +3 -3
  31. data/lib/dodopayments/models/entitlement_grant_created_webhook_event.rb +10 -17
  32. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +10 -17
  33. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +10 -17
  34. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +10 -17
  35. data/lib/dodopayments/models/entitlement_update_params.rb +3 -3
  36. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +50 -32
  37. data/lib/dodopayments/models/entitlements/file_upload_response.rb +3 -3
  38. data/lib/dodopayments/models/entitlements/license_key_grant.rb +14 -9
  39. data/lib/dodopayments/models/integration_config.rb +70 -27
  40. data/lib/dodopayments/models/integration_config_response.rb +88 -48
  41. data/lib/dodopayments/models/license_key_created_webhook_event.rb +4 -16
  42. data/lib/dodopayments/models/payment.rb +153 -3
  43. data/lib/dodopayments/models/payment_cancelled_webhook_event.rb +4 -16
  44. data/lib/dodopayments/models/payment_create_params.rb +15 -3
  45. data/lib/dodopayments/models/payment_create_response.rb +14 -3
  46. data/lib/dodopayments/models/payment_failed_webhook_event.rb +4 -16
  47. data/lib/dodopayments/models/payment_processing_webhook_event.rb +4 -16
  48. data/lib/dodopayments/models/payment_succeeded_webhook_event.rb +4 -16
  49. data/lib/dodopayments/models/payout_list_response.rb +6 -3
  50. data/lib/dodopayments/models/price.rb +20 -48
  51. data/lib/dodopayments/models/product.rb +6 -8
  52. data/lib/dodopayments/models/product_create_params.rb +3 -3
  53. data/lib/dodopayments/models/product_entitlement_summary.rb +5 -5
  54. data/lib/dodopayments/models/product_item_req.rb +42 -1
  55. data/lib/dodopayments/models/product_update_params.rb +3 -3
  56. data/lib/dodopayments/models/refund_failed_webhook_event.rb +4 -16
  57. data/lib/dodopayments/models/refund_succeeded_webhook_event.rb +4 -16
  58. data/lib/dodopayments/models/subscription.rb +153 -5
  59. data/lib/dodopayments/models/subscription_active_webhook_event.rb +4 -16
  60. data/lib/dodopayments/models/subscription_cancelled_webhook_event.rb +4 -16
  61. data/lib/dodopayments/models/subscription_create_params.rb +15 -3
  62. data/lib/dodopayments/models/subscription_create_response.rb +14 -3
  63. data/lib/dodopayments/models/subscription_expired_webhook_event.rb +4 -16
  64. data/lib/dodopayments/models/subscription_failed_webhook_event.rb +4 -16
  65. data/lib/dodopayments/models/subscription_list_response.rb +36 -5
  66. data/lib/dodopayments/models/subscription_on_hold_webhook_event.rb +4 -16
  67. data/lib/dodopayments/models/subscription_plan_changed_webhook_event.rb +4 -16
  68. data/lib/dodopayments/models/subscription_preview_change_plan_response.rb +21 -49
  69. data/lib/dodopayments/models/subscription_renewed_webhook_event.rb +4 -16
  70. data/lib/dodopayments/models/subscription_update_payment_method_params.rb +12 -30
  71. data/lib/dodopayments/models/subscription_updated_webhook_event.rb +4 -16
  72. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +41 -39
  73. data/lib/dodopayments/models/unwrap_webhook_event.rb +41 -39
  74. data/lib/dodopayments/models/update_subscription_plan_req.rb +17 -6
  75. data/lib/dodopayments/models/webhook_event_type.rb +3 -0
  76. data/lib/dodopayments/models/webhook_payload.rb +57 -143
  77. data/lib/dodopayments/resources/checkout_sessions.rb +8 -4
  78. data/lib/dodopayments/resources/entitlements/files.rb +3 -10
  79. data/lib/dodopayments/resources/entitlements/grants.rb +2 -4
  80. data/lib/dodopayments/resources/entitlements.rb +2 -2
  81. data/lib/dodopayments/resources/payments.rb +4 -2
  82. data/lib/dodopayments/resources/subscriptions.rb +12 -6
  83. data/lib/dodopayments/version.rb +1 -1
  84. data/rbi/dodopayments/models/abandoned_checkout_detected_webhook_event.rbi +4 -40
  85. data/rbi/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbi +4 -40
  86. data/rbi/dodopayments/models/checkout_session_request.rbi +14 -0
  87. data/rbi/dodopayments/models/credit_added_webhook_event.rbi +4 -29
  88. data/rbi/dodopayments/models/credit_balance_low_webhook_event.rbi +4 -33
  89. data/rbi/dodopayments/models/credit_deducted_webhook_event.rbi +4 -33
  90. data/rbi/dodopayments/models/credit_expired_webhook_event.rbi +4 -33
  91. data/rbi/dodopayments/models/credit_manual_adjustment_webhook_event.rbi +4 -39
  92. data/rbi/dodopayments/models/credit_overage_charged_webhook_event.rbi +4 -36
  93. data/rbi/dodopayments/models/credit_overage_reset_webhook_event.rbi +4 -36
  94. data/rbi/dodopayments/models/credit_rolled_over_webhook_event.rbi +4 -33
  95. data/rbi/dodopayments/models/credit_rollover_forfeited_webhook_event.rbi +4 -40
  96. data/rbi/dodopayments/models/digital_product_delivery.rbi +15 -5
  97. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +11 -0
  98. data/rbi/dodopayments/models/dispute_accepted_webhook_event.rbi +4 -33
  99. data/rbi/dodopayments/models/dispute_cancelled_webhook_event.rbi +4 -33
  100. data/rbi/dodopayments/models/dispute_challenged_webhook_event.rbi +4 -34
  101. data/rbi/dodopayments/models/dispute_expired_webhook_event.rbi +4 -33
  102. data/rbi/dodopayments/models/dispute_lost_webhook_event.rbi +4 -29
  103. data/rbi/dodopayments/models/dispute_opened_webhook_event.rbi +4 -33
  104. data/rbi/dodopayments/models/dispute_won_webhook_event.rbi +4 -29
  105. data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +4 -33
  106. data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +4 -33
  107. data/rbi/dodopayments/models/entitlement.rbi +35 -20
  108. data/rbi/dodopayments/models/entitlement_create_params.rbi +8 -5
  109. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +8 -40
  110. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +8 -40
  111. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +8 -39
  112. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +8 -40
  113. data/rbi/dodopayments/models/entitlement_update_params.rbi +4 -4
  114. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +54 -20
  115. data/rbi/dodopayments/models/entitlements/file_upload_response.rbi +4 -4
  116. data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +10 -4
  117. data/rbi/dodopayments/models/integration_config.rbi +141 -26
  118. data/rbi/dodopayments/models/integration_config_response.rbi +153 -38
  119. data/rbi/dodopayments/models/license_key_created_webhook_event.rbi +4 -34
  120. data/rbi/dodopayments/models/payment.rbi +170 -2
  121. data/rbi/dodopayments/models/payment_cancelled_webhook_event.rbi +4 -33
  122. data/rbi/dodopayments/models/payment_create_params.rbi +14 -2
  123. data/rbi/dodopayments/models/payment_create_response.rbi +12 -2
  124. data/rbi/dodopayments/models/payment_failed_webhook_event.rbi +4 -33
  125. data/rbi/dodopayments/models/payment_processing_webhook_event.rbi +4 -34
  126. data/rbi/dodopayments/models/payment_succeeded_webhook_event.rbi +4 -33
  127. data/rbi/dodopayments/models/price.rbi +18 -90
  128. data/rbi/dodopayments/models/product.rbi +4 -8
  129. data/rbi/dodopayments/models/product_entitlement_summary.rbi +8 -8
  130. data/rbi/dodopayments/models/product_item_req.rbi +74 -3
  131. data/rbi/dodopayments/models/refund_failed_webhook_event.rbi +4 -31
  132. data/rbi/dodopayments/models/refund_succeeded_webhook_event.rbi +4 -33
  133. data/rbi/dodopayments/models/subscription.rbi +173 -4
  134. data/rbi/dodopayments/models/subscription_active_webhook_event.rbi +4 -36
  135. data/rbi/dodopayments/models/subscription_cancelled_webhook_event.rbi +4 -36
  136. data/rbi/dodopayments/models/subscription_create_params.rbi +14 -2
  137. data/rbi/dodopayments/models/subscription_create_response.rbi +12 -2
  138. data/rbi/dodopayments/models/subscription_expired_webhook_event.rbi +4 -36
  139. data/rbi/dodopayments/models/subscription_failed_webhook_event.rbi +4 -36
  140. data/rbi/dodopayments/models/subscription_list_response.rbi +67 -4
  141. data/rbi/dodopayments/models/subscription_on_hold_webhook_event.rbi +4 -36
  142. data/rbi/dodopayments/models/subscription_plan_changed_webhook_event.rbi +4 -40
  143. data/rbi/dodopayments/models/subscription_preview_change_plan_response.rbi +18 -123
  144. data/rbi/dodopayments/models/subscription_renewed_webhook_event.rbi +4 -36
  145. data/rbi/dodopayments/models/subscription_update_payment_method_params.rbi +12 -96
  146. data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +4 -36
  147. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +18 -8
  148. data/rbi/dodopayments/models/webhook_event_type.rbi +15 -0
  149. data/rbi/dodopayments/models/webhook_payload.rbi +48 -466
  150. data/rbi/dodopayments/resources/checkout_sessions.rbi +12 -0
  151. data/rbi/dodopayments/resources/entitlements/files.rbi +3 -10
  152. data/rbi/dodopayments/resources/entitlements/grants.rbi +2 -4
  153. data/rbi/dodopayments/resources/entitlements.rbi +4 -4
  154. data/rbi/dodopayments/resources/payments.rbi +6 -1
  155. data/rbi/dodopayments/resources/subscriptions.rbi +22 -9
  156. data/sig/dodopayments/models/abandoned_checkout_detected_webhook_event.rbs +4 -14
  157. data/sig/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbs +4 -14
  158. data/sig/dodopayments/models/checkout_session_request.rbs +5 -0
  159. data/sig/dodopayments/models/credit_added_webhook_event.rbs +4 -14
  160. data/sig/dodopayments/models/credit_balance_low_webhook_event.rbs +4 -14
  161. data/sig/dodopayments/models/credit_deducted_webhook_event.rbs +4 -14
  162. data/sig/dodopayments/models/credit_expired_webhook_event.rbs +4 -14
  163. data/sig/dodopayments/models/credit_manual_adjustment_webhook_event.rbs +4 -14
  164. data/sig/dodopayments/models/credit_overage_charged_webhook_event.rbs +4 -14
  165. data/sig/dodopayments/models/credit_overage_reset_webhook_event.rbs +4 -14
  166. data/sig/dodopayments/models/credit_rolled_over_webhook_event.rbs +4 -14
  167. data/sig/dodopayments/models/credit_rollover_forfeited_webhook_event.rbs +4 -14
  168. data/sig/dodopayments/models/dispute_accepted_webhook_event.rbs +4 -14
  169. data/sig/dodopayments/models/dispute_cancelled_webhook_event.rbs +4 -14
  170. data/sig/dodopayments/models/dispute_challenged_webhook_event.rbs +4 -14
  171. data/sig/dodopayments/models/dispute_expired_webhook_event.rbs +4 -14
  172. data/sig/dodopayments/models/dispute_lost_webhook_event.rbs +4 -14
  173. data/sig/dodopayments/models/dispute_opened_webhook_event.rbs +4 -14
  174. data/sig/dodopayments/models/dispute_won_webhook_event.rbs +4 -14
  175. data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +4 -14
  176. data/sig/dodopayments/models/dunning_started_webhook_event.rbs +4 -14
  177. data/sig/dodopayments/models/entitlement.rbs +8 -10
  178. data/sig/dodopayments/models/entitlement_create_params.rbs +6 -4
  179. data/sig/dodopayments/models/entitlement_grant_created_webhook_event.rbs +4 -14
  180. data/sig/dodopayments/models/entitlement_grant_delivered_webhook_event.rbs +4 -14
  181. data/sig/dodopayments/models/entitlement_grant_failed_webhook_event.rbs +4 -14
  182. data/sig/dodopayments/models/entitlement_grant_revoked_webhook_event.rbs +4 -14
  183. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +4 -11
  184. data/sig/dodopayments/models/integration_config.rbs +28 -4
  185. data/sig/dodopayments/models/integration_config_response.rbs +28 -9
  186. data/sig/dodopayments/models/license_key_created_webhook_event.rbs +4 -14
  187. data/sig/dodopayments/models/payment.rbs +97 -0
  188. data/sig/dodopayments/models/payment_cancelled_webhook_event.rbs +4 -14
  189. data/sig/dodopayments/models/payment_create_params.rbs +5 -0
  190. data/sig/dodopayments/models/payment_create_response.rbs +5 -0
  191. data/sig/dodopayments/models/payment_failed_webhook_event.rbs +4 -14
  192. data/sig/dodopayments/models/payment_processing_webhook_event.rbs +4 -14
  193. data/sig/dodopayments/models/payment_succeeded_webhook_event.rbs +4 -14
  194. data/sig/dodopayments/models/price.rbs +15 -45
  195. data/sig/dodopayments/models/product_item_req.rbs +27 -3
  196. data/sig/dodopayments/models/refund_failed_webhook_event.rbs +4 -14
  197. data/sig/dodopayments/models/refund_succeeded_webhook_event.rbs +4 -14
  198. data/sig/dodopayments/models/subscription.rbs +97 -0
  199. data/sig/dodopayments/models/subscription_active_webhook_event.rbs +4 -14
  200. data/sig/dodopayments/models/subscription_cancelled_webhook_event.rbs +4 -14
  201. data/sig/dodopayments/models/subscription_create_params.rbs +5 -0
  202. data/sig/dodopayments/models/subscription_create_response.rbs +5 -0
  203. data/sig/dodopayments/models/subscription_expired_webhook_event.rbs +4 -14
  204. data/sig/dodopayments/models/subscription_failed_webhook_event.rbs +4 -14
  205. data/sig/dodopayments/models/subscription_list_response.rbs +24 -0
  206. data/sig/dodopayments/models/subscription_on_hold_webhook_event.rbs +4 -14
  207. data/sig/dodopayments/models/subscription_plan_changed_webhook_event.rbs +4 -14
  208. data/sig/dodopayments/models/subscription_preview_change_plan_response.rbs +15 -45
  209. data/sig/dodopayments/models/subscription_renewed_webhook_event.rbs +4 -14
  210. data/sig/dodopayments/models/subscription_update_payment_method_params.rbs +8 -48
  211. data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +4 -14
  212. data/sig/dodopayments/models/update_subscription_plan_req.rbs +5 -0
  213. data/sig/dodopayments/models/webhook_event_type.rbs +6 -0
  214. data/sig/dodopayments/models/webhook_payload.rbs +50 -213
  215. data/sig/dodopayments/resources/checkout_sessions.rbs +2 -0
  216. data/sig/dodopayments/resources/entitlements.rbs +1 -1
  217. data/sig/dodopayments/resources/payments.rbs +1 -0
  218. data/sig/dodopayments/resources/subscriptions.rbs +3 -0
  219. metadata +2 -2
@@ -31,9 +31,7 @@ module Dodopayments
31
31
  attr_accessor :timestamp
32
32
 
33
33
  # The event type
34
- sig do
35
- returns(Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol)
36
- end
34
+ sig { returns(Symbol) }
37
35
  attr_accessor :type
38
36
 
39
37
  sig do
@@ -41,7 +39,7 @@ module Dodopayments
41
39
  business_id: String,
42
40
  data: Dodopayments::DunningRecoveredWebhookEvent::Data::OrHash,
43
41
  timestamp: Time,
44
- type: Dodopayments::DunningRecoveredWebhookEvent::Type::OrSymbol
42
+ type: Symbol
45
43
  ).returns(T.attached_class)
46
44
  end
47
45
  def self.new(
@@ -52,7 +50,7 @@ module Dodopayments
52
50
  # The timestamp of when the event occurred
53
51
  timestamp:,
54
52
  # The event type
55
- type:
53
+ type: :"dunning.recovered"
56
54
  )
57
55
  end
58
56
 
@@ -62,7 +60,7 @@ module Dodopayments
62
60
  business_id: String,
63
61
  data: Dodopayments::DunningRecoveredWebhookEvent::Data,
64
62
  timestamp: Time,
65
- type: Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol
63
+ type: Symbol
66
64
  }
67
65
  )
68
66
  end
@@ -217,33 +215,6 @@ module Dodopayments
217
215
  end
218
216
  end
219
217
  end
220
-
221
- # The event type
222
- module Type
223
- extend Dodopayments::Internal::Type::Enum
224
-
225
- TaggedSymbol =
226
- T.type_alias do
227
- T.all(Symbol, Dodopayments::DunningRecoveredWebhookEvent::Type)
228
- end
229
- OrSymbol = T.type_alias { T.any(Symbol, String) }
230
-
231
- DUNNING_RECOVERED =
232
- T.let(
233
- :"dunning.recovered",
234
- Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol
235
- )
236
-
237
- sig do
238
- override.returns(
239
- T::Array[
240
- Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol
241
- ]
242
- )
243
- end
244
- def self.values
245
- end
246
- end
247
218
  end
248
219
  end
249
220
  end
@@ -31,9 +31,7 @@ module Dodopayments
31
31
  attr_accessor :timestamp
32
32
 
33
33
  # The event type
34
- sig do
35
- returns(Dodopayments::DunningStartedWebhookEvent::Type::TaggedSymbol)
36
- end
34
+ sig { returns(Symbol) }
37
35
  attr_accessor :type
38
36
 
39
37
  sig do
@@ -41,7 +39,7 @@ module Dodopayments
41
39
  business_id: String,
42
40
  data: Dodopayments::DunningStartedWebhookEvent::Data::OrHash,
43
41
  timestamp: Time,
44
- type: Dodopayments::DunningStartedWebhookEvent::Type::OrSymbol
42
+ type: Symbol
45
43
  ).returns(T.attached_class)
46
44
  end
47
45
  def self.new(
@@ -52,7 +50,7 @@ module Dodopayments
52
50
  # The timestamp of when the event occurred
53
51
  timestamp:,
54
52
  # The event type
55
- type:
53
+ type: :"dunning.started"
56
54
  )
57
55
  end
58
56
 
@@ -62,7 +60,7 @@ module Dodopayments
62
60
  business_id: String,
63
61
  data: Dodopayments::DunningStartedWebhookEvent::Data,
64
62
  timestamp: Time,
65
- type: Dodopayments::DunningStartedWebhookEvent::Type::TaggedSymbol
63
+ type: Symbol
66
64
  }
67
65
  )
68
66
  end
@@ -217,33 +215,6 @@ module Dodopayments
217
215
  end
218
216
  end
219
217
  end
220
-
221
- # The event type
222
- module Type
223
- extend Dodopayments::Internal::Type::Enum
224
-
225
- TaggedSymbol =
226
- T.type_alias do
227
- T.all(Symbol, Dodopayments::DunningStartedWebhookEvent::Type)
228
- end
229
- OrSymbol = T.type_alias { T.any(Symbol, String) }
230
-
231
- DUNNING_STARTED =
232
- T.let(
233
- :"dunning.started",
234
- Dodopayments::DunningStartedWebhookEvent::Type::TaggedSymbol
235
- )
236
-
237
- sig do
238
- override.returns(
239
- T::Array[
240
- Dodopayments::DunningStartedWebhookEvent::Type::TaggedSymbol
241
- ]
242
- )
243
- end
244
- def self.values
245
- end
246
- end
247
218
  end
248
219
  end
249
220
  end
@@ -8,43 +8,50 @@ module Dodopayments
8
8
  T.any(Dodopayments::Entitlement, Dodopayments::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # Unique identifier of the entitlement.
11
12
  sig { returns(String) }
12
13
  attr_accessor :id
13
14
 
15
+ # Identifier of the business that owns this entitlement.
14
16
  sig { returns(String) }
15
17
  attr_accessor :business_id
16
18
 
19
+ # Timestamp when the entitlement was created.
17
20
  sig { returns(Time) }
18
21
  attr_accessor :created_at
19
22
 
20
- # Public-facing variant of [`IntegrationConfig`]. Mirrors every variant shape on
21
- # the wire EXCEPT `DigitalFiles`, which is replaced with a hydrated
22
- # `digital_files` object (resolved download URLs etc.). The persisted JSONB stays
23
- # ID-only via [`IntegrationConfig`]; this enum is response-only.
23
+ # Integration-specific configuration. For `digital_files` entitlements this
24
+ # includes presigned download URLs for each attached file.
24
25
  sig { returns(Dodopayments::IntegrationConfigResponse::Variants) }
25
26
  attr_accessor :integration_config
26
27
 
28
+ # Platform integration this entitlement uses.
27
29
  sig { returns(Dodopayments::EntitlementIntegrationType::TaggedSymbol) }
28
30
  attr_accessor :integration_type
29
31
 
32
+ # Always `true` for entitlements returned by the public API; soft-deleted
33
+ # entitlements are not returned.
30
34
  sig { returns(T::Boolean) }
31
35
  attr_accessor :is_active
32
36
 
37
+ # Arbitrary key-value metadata supplied at creation or via PATCH.
38
+ sig { returns(T::Hash[Symbol, String]) }
39
+ attr_accessor :metadata
40
+
41
+ # Display name supplied at creation.
33
42
  sig { returns(String) }
34
43
  attr_accessor :name
35
44
 
45
+ # Timestamp when the entitlement was last modified.
36
46
  sig { returns(Time) }
37
47
  attr_accessor :updated_at
38
48
 
49
+ # Optional description supplied at creation.
39
50
  sig { returns(T.nilable(String)) }
40
51
  attr_accessor :description
41
52
 
42
- sig { returns(T.nilable(T.anything)) }
43
- attr_reader :metadata
44
-
45
- sig { params(metadata: T.anything).void }
46
- attr_writer :metadata
47
-
53
+ # Detailed view of a single entitlement: identity, integration type,
54
+ # integration-specific configuration, and metadata.
48
55
  sig do
49
56
  params(
50
57
  id: String,
@@ -63,27 +70,35 @@ module Dodopayments
63
70
  ),
64
71
  integration_type: Dodopayments::EntitlementIntegrationType::OrSymbol,
65
72
  is_active: T::Boolean,
73
+ metadata: T::Hash[Symbol, String],
66
74
  name: String,
67
75
  updated_at: Time,
68
- description: T.nilable(String),
69
- metadata: T.anything
76
+ description: T.nilable(String)
70
77
  ).returns(T.attached_class)
71
78
  end
72
79
  def self.new(
80
+ # Unique identifier of the entitlement.
73
81
  id:,
82
+ # Identifier of the business that owns this entitlement.
74
83
  business_id:,
84
+ # Timestamp when the entitlement was created.
75
85
  created_at:,
76
- # Public-facing variant of [`IntegrationConfig`]. Mirrors every variant shape on
77
- # the wire EXCEPT `DigitalFiles`, which is replaced with a hydrated
78
- # `digital_files` object (resolved download URLs etc.). The persisted JSONB stays
79
- # ID-only via [`IntegrationConfig`]; this enum is response-only.
86
+ # Integration-specific configuration. For `digital_files` entitlements this
87
+ # includes presigned download URLs for each attached file.
80
88
  integration_config:,
89
+ # Platform integration this entitlement uses.
81
90
  integration_type:,
91
+ # Always `true` for entitlements returned by the public API; soft-deleted
92
+ # entitlements are not returned.
82
93
  is_active:,
94
+ # Arbitrary key-value metadata supplied at creation or via PATCH.
95
+ metadata:,
96
+ # Display name supplied at creation.
83
97
  name:,
98
+ # Timestamp when the entitlement was last modified.
84
99
  updated_at:,
85
- description: nil,
86
- metadata: nil
100
+ # Optional description supplied at creation.
101
+ description: nil
87
102
  )
88
103
  end
89
104
 
@@ -98,10 +113,10 @@ module Dodopayments
98
113
  integration_type:
99
114
  Dodopayments::EntitlementIntegrationType::TaggedSymbol,
100
115
  is_active: T::Boolean,
116
+ metadata: T::Hash[Symbol, String],
101
117
  name: String,
102
118
  updated_at: Time,
103
- description: T.nilable(String),
104
- metadata: T.anything
119
+ description: T.nilable(String)
105
120
  }
106
121
  )
107
122
  end
@@ -43,9 +43,12 @@ module Dodopayments
43
43
  sig { returns(T.nilable(String)) }
44
44
  attr_accessor :description
45
45
 
46
- # Optional user-facing metadata
46
+ # Additional metadata for the entitlement
47
47
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
48
- attr_accessor :metadata
48
+ attr_reader :metadata
49
+
50
+ sig { params(metadata: T::Hash[Symbol, String]).void }
51
+ attr_writer :metadata
49
52
 
50
53
  sig do
51
54
  params(
@@ -63,7 +66,7 @@ module Dodopayments
63
66
  integration_type: Dodopayments::EntitlementIntegrationType::OrSymbol,
64
67
  name: String,
65
68
  description: T.nilable(String),
66
- metadata: T.nilable(T::Hash[Symbol, String]),
69
+ metadata: T::Hash[Symbol, String],
67
70
  request_options: Dodopayments::RequestOptions::OrHash
68
71
  ).returns(T.attached_class)
69
72
  end
@@ -76,7 +79,7 @@ module Dodopayments
76
79
  name:,
77
80
  # Optional description
78
81
  description: nil,
79
- # Optional user-facing metadata
82
+ # Additional metadata for the entitlement
80
83
  metadata: nil,
81
84
  request_options: {}
82
85
  )
@@ -100,7 +103,7 @@ module Dodopayments
100
103
  Dodopayments::EntitlementIntegrationType::OrSymbol,
101
104
  name: String,
102
105
  description: T.nilable(String),
103
- metadata: T.nilable(T::Hash[Symbol, String]),
106
+ metadata: T::Hash[Symbol, String],
104
107
  request_options: Dodopayments::RequestOptions
105
108
  }
106
109
  )
@@ -15,6 +15,8 @@ module Dodopayments
15
15
  sig { returns(String) }
16
16
  attr_accessor :business_id
17
17
 
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
18
20
  sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
19
21
  attr_reader :data
20
22
 
@@ -28,11 +30,7 @@ module Dodopayments
28
30
  attr_accessor :timestamp
29
31
 
30
32
  # The event type
31
- sig do
32
- returns(
33
- Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
34
- )
35
- end
33
+ sig { returns(Symbol) }
36
34
  attr_accessor :type
37
35
 
38
36
  sig do
@@ -40,18 +38,19 @@ module Dodopayments
40
38
  business_id: String,
41
39
  data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
42
40
  timestamp: Time,
43
- type:
44
- Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::OrSymbol
41
+ type: Symbol
45
42
  ).returns(T.attached_class)
46
43
  end
47
44
  def self.new(
48
45
  # The business identifier
49
46
  business_id:,
47
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
48
+ # and any integration-specific delivery payload.
50
49
  data:,
51
50
  # The timestamp of when the event occurred
52
51
  timestamp:,
53
52
  # The event type
54
- type:
53
+ type: :"entitlement_grant.created"
55
54
  )
56
55
  end
57
56
 
@@ -61,43 +60,12 @@ module Dodopayments
61
60
  business_id: String,
62
61
  data: Dodopayments::Entitlements::EntitlementGrant,
63
62
  timestamp: Time,
64
- type:
65
- Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
63
+ type: Symbol
66
64
  }
67
65
  )
68
66
  end
69
67
  def to_hash
70
68
  end
71
-
72
- # The event type
73
- module Type
74
- extend Dodopayments::Internal::Type::Enum
75
-
76
- TaggedSymbol =
77
- T.type_alias do
78
- T.all(
79
- Symbol,
80
- Dodopayments::EntitlementGrantCreatedWebhookEvent::Type
81
- )
82
- end
83
- OrSymbol = T.type_alias { T.any(Symbol, String) }
84
-
85
- ENTITLEMENT_GRANT_CREATED =
86
- T.let(
87
- :"entitlement_grant.created",
88
- Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
89
- )
90
-
91
- sig do
92
- override.returns(
93
- T::Array[
94
- Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
95
- ]
96
- )
97
- end
98
- def self.values
99
- end
100
- end
101
69
  end
102
70
  end
103
71
  end
@@ -15,6 +15,8 @@ module Dodopayments
15
15
  sig { returns(String) }
16
16
  attr_accessor :business_id
17
17
 
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
18
20
  sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
19
21
  attr_reader :data
20
22
 
@@ -28,11 +30,7 @@ module Dodopayments
28
30
  attr_accessor :timestamp
29
31
 
30
32
  # The event type
31
- sig do
32
- returns(
33
- Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
34
- )
35
- end
33
+ sig { returns(Symbol) }
36
34
  attr_accessor :type
37
35
 
38
36
  sig do
@@ -40,18 +38,19 @@ module Dodopayments
40
38
  business_id: String,
41
39
  data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
42
40
  timestamp: Time,
43
- type:
44
- Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::OrSymbol
41
+ type: Symbol
45
42
  ).returns(T.attached_class)
46
43
  end
47
44
  def self.new(
48
45
  # The business identifier
49
46
  business_id:,
47
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
48
+ # and any integration-specific delivery payload.
50
49
  data:,
51
50
  # The timestamp of when the event occurred
52
51
  timestamp:,
53
52
  # The event type
54
- type:
53
+ type: :"entitlement_grant.delivered"
55
54
  )
56
55
  end
57
56
 
@@ -61,43 +60,12 @@ module Dodopayments
61
60
  business_id: String,
62
61
  data: Dodopayments::Entitlements::EntitlementGrant,
63
62
  timestamp: Time,
64
- type:
65
- Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
63
+ type: Symbol
66
64
  }
67
65
  )
68
66
  end
69
67
  def to_hash
70
68
  end
71
-
72
- # The event type
73
- module Type
74
- extend Dodopayments::Internal::Type::Enum
75
-
76
- TaggedSymbol =
77
- T.type_alias do
78
- T.all(
79
- Symbol,
80
- Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type
81
- )
82
- end
83
- OrSymbol = T.type_alias { T.any(Symbol, String) }
84
-
85
- ENTITLEMENT_GRANT_DELIVERED =
86
- T.let(
87
- :"entitlement_grant.delivered",
88
- Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
89
- )
90
-
91
- sig do
92
- override.returns(
93
- T::Array[
94
- Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
95
- ]
96
- )
97
- end
98
- def self.values
99
- end
100
- end
101
69
  end
102
70
  end
103
71
  end
@@ -15,6 +15,8 @@ module Dodopayments
15
15
  sig { returns(String) }
16
16
  attr_accessor :business_id
17
17
 
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
18
20
  sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
19
21
  attr_reader :data
20
22
 
@@ -28,11 +30,7 @@ module Dodopayments
28
30
  attr_accessor :timestamp
29
31
 
30
32
  # The event type
31
- sig do
32
- returns(
33
- Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
34
- )
35
- end
33
+ sig { returns(Symbol) }
36
34
  attr_accessor :type
37
35
 
38
36
  sig do
@@ -40,17 +38,19 @@ module Dodopayments
40
38
  business_id: String,
41
39
  data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
42
40
  timestamp: Time,
43
- type: Dodopayments::EntitlementGrantFailedWebhookEvent::Type::OrSymbol
41
+ type: Symbol
44
42
  ).returns(T.attached_class)
45
43
  end
46
44
  def self.new(
47
45
  # The business identifier
48
46
  business_id:,
47
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
48
+ # and any integration-specific delivery payload.
49
49
  data:,
50
50
  # The timestamp of when the event occurred
51
51
  timestamp:,
52
52
  # The event type
53
- type:
53
+ type: :"entitlement_grant.failed"
54
54
  )
55
55
  end
56
56
 
@@ -60,43 +60,12 @@ module Dodopayments
60
60
  business_id: String,
61
61
  data: Dodopayments::Entitlements::EntitlementGrant,
62
62
  timestamp: Time,
63
- type:
64
- Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
63
+ type: Symbol
65
64
  }
66
65
  )
67
66
  end
68
67
  def to_hash
69
68
  end
70
-
71
- # The event type
72
- module Type
73
- extend Dodopayments::Internal::Type::Enum
74
-
75
- TaggedSymbol =
76
- T.type_alias do
77
- T.all(
78
- Symbol,
79
- Dodopayments::EntitlementGrantFailedWebhookEvent::Type
80
- )
81
- end
82
- OrSymbol = T.type_alias { T.any(Symbol, String) }
83
-
84
- ENTITLEMENT_GRANT_FAILED =
85
- T.let(
86
- :"entitlement_grant.failed",
87
- Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
88
- )
89
-
90
- sig do
91
- override.returns(
92
- T::Array[
93
- Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
94
- ]
95
- )
96
- end
97
- def self.values
98
- end
99
- end
100
69
  end
101
70
  end
102
71
  end
@@ -15,6 +15,8 @@ module Dodopayments
15
15
  sig { returns(String) }
16
16
  attr_accessor :business_id
17
17
 
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
18
20
  sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
19
21
  attr_reader :data
20
22
 
@@ -28,11 +30,7 @@ module Dodopayments
28
30
  attr_accessor :timestamp
29
31
 
30
32
  # The event type
31
- sig do
32
- returns(
33
- Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
34
- )
35
- end
33
+ sig { returns(Symbol) }
36
34
  attr_accessor :type
37
35
 
38
36
  sig do
@@ -40,18 +38,19 @@ module Dodopayments
40
38
  business_id: String,
41
39
  data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
42
40
  timestamp: Time,
43
- type:
44
- Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::OrSymbol
41
+ type: Symbol
45
42
  ).returns(T.attached_class)
46
43
  end
47
44
  def self.new(
48
45
  # The business identifier
49
46
  business_id:,
47
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
48
+ # and any integration-specific delivery payload.
50
49
  data:,
51
50
  # The timestamp of when the event occurred
52
51
  timestamp:,
53
52
  # The event type
54
- type:
53
+ type: :"entitlement_grant.revoked"
55
54
  )
56
55
  end
57
56
 
@@ -61,43 +60,12 @@ module Dodopayments
61
60
  business_id: String,
62
61
  data: Dodopayments::Entitlements::EntitlementGrant,
63
62
  timestamp: Time,
64
- type:
65
- Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
63
+ type: Symbol
66
64
  }
67
65
  )
68
66
  end
69
67
  def to_hash
70
68
  end
71
-
72
- # The event type
73
- module Type
74
- extend Dodopayments::Internal::Type::Enum
75
-
76
- TaggedSymbol =
77
- T.type_alias do
78
- T.all(
79
- Symbol,
80
- Dodopayments::EntitlementGrantRevokedWebhookEvent::Type
81
- )
82
- end
83
- OrSymbol = T.type_alias { T.any(Symbol, String) }
84
-
85
- ENTITLEMENT_GRANT_REVOKED =
86
- T.let(
87
- :"entitlement_grant.revoked",
88
- Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
89
- )
90
-
91
- sig do
92
- override.returns(
93
- T::Array[
94
- Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
95
- ]
96
- )
97
- end
98
- def self.values
99
- end
100
- end
101
69
  end
102
70
  end
103
71
  end
@@ -20,8 +20,8 @@ module Dodopayments
20
20
  sig { returns(T.nilable(String)) }
21
21
  attr_accessor :description
22
22
 
23
- # Platform-specific configuration for an entitlement. Each variant uses unique
24
- # field names so `#[serde(untagged)]` can disambiguate correctly.
23
+ # Integration-specific configuration supplied when creating or updating an
24
+ # entitlement. The shape required matches the entitlement's `integration_type`.
25
25
  sig do
26
26
  returns(
27
27
  T.nilable(
@@ -71,8 +71,8 @@ module Dodopayments
71
71
  def self.new(
72
72
  id:,
73
73
  description: nil,
74
- # Platform-specific configuration for an entitlement. Each variant uses unique
75
- # field names so `#[serde(untagged)]` can disambiguate correctly.
74
+ # Integration-specific configuration supplied when creating or updating an
75
+ # entitlement. The shape required matches the entitlement's `integration_type`.
76
76
  integration_config: nil,
77
77
  metadata: nil,
78
78
  name: nil,