dodopayments 2.9.1 → 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 (184) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -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/dispute_accepted_webhook_event.rb +4 -16
  19. data/lib/dodopayments/models/dispute_cancelled_webhook_event.rb +4 -16
  20. data/lib/dodopayments/models/dispute_challenged_webhook_event.rb +4 -16
  21. data/lib/dodopayments/models/dispute_expired_webhook_event.rb +4 -16
  22. data/lib/dodopayments/models/dispute_lost_webhook_event.rb +4 -16
  23. data/lib/dodopayments/models/dispute_opened_webhook_event.rb +4 -16
  24. data/lib/dodopayments/models/dispute_won_webhook_event.rb +4 -16
  25. data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +4 -16
  26. data/lib/dodopayments/models/dunning_started_webhook_event.rb +4 -16
  27. data/lib/dodopayments/models/entitlement_grant_created_webhook_event.rb +4 -16
  28. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +4 -16
  29. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +4 -16
  30. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +4 -16
  31. data/lib/dodopayments/models/license_key_created_webhook_event.rb +4 -16
  32. data/lib/dodopayments/models/payment.rb +153 -3
  33. data/lib/dodopayments/models/payment_cancelled_webhook_event.rb +4 -16
  34. data/lib/dodopayments/models/payment_create_params.rb +15 -3
  35. data/lib/dodopayments/models/payment_create_response.rb +14 -3
  36. data/lib/dodopayments/models/payment_failed_webhook_event.rb +4 -16
  37. data/lib/dodopayments/models/payment_processing_webhook_event.rb +4 -16
  38. data/lib/dodopayments/models/payment_succeeded_webhook_event.rb +4 -16
  39. data/lib/dodopayments/models/payout_list_response.rb +6 -3
  40. data/lib/dodopayments/models/price.rb +20 -48
  41. data/lib/dodopayments/models/product.rb +3 -3
  42. data/lib/dodopayments/models/product_create_params.rb +3 -3
  43. data/lib/dodopayments/models/product_item_req.rb +42 -1
  44. data/lib/dodopayments/models/product_update_params.rb +3 -3
  45. data/lib/dodopayments/models/refund_failed_webhook_event.rb +4 -16
  46. data/lib/dodopayments/models/refund_succeeded_webhook_event.rb +4 -16
  47. data/lib/dodopayments/models/subscription.rb +153 -5
  48. data/lib/dodopayments/models/subscription_active_webhook_event.rb +4 -16
  49. data/lib/dodopayments/models/subscription_cancelled_webhook_event.rb +4 -16
  50. data/lib/dodopayments/models/subscription_create_params.rb +15 -3
  51. data/lib/dodopayments/models/subscription_create_response.rb +14 -3
  52. data/lib/dodopayments/models/subscription_expired_webhook_event.rb +4 -16
  53. data/lib/dodopayments/models/subscription_failed_webhook_event.rb +4 -16
  54. data/lib/dodopayments/models/subscription_list_response.rb +36 -5
  55. data/lib/dodopayments/models/subscription_on_hold_webhook_event.rb +4 -16
  56. data/lib/dodopayments/models/subscription_plan_changed_webhook_event.rb +4 -16
  57. data/lib/dodopayments/models/subscription_preview_change_plan_response.rb +21 -49
  58. data/lib/dodopayments/models/subscription_renewed_webhook_event.rb +4 -16
  59. data/lib/dodopayments/models/subscription_update_payment_method_params.rb +12 -30
  60. data/lib/dodopayments/models/subscription_updated_webhook_event.rb +4 -16
  61. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +41 -39
  62. data/lib/dodopayments/models/unwrap_webhook_event.rb +41 -39
  63. data/lib/dodopayments/models/update_subscription_plan_req.rb +17 -6
  64. data/lib/dodopayments/models/webhook_event_type.rb +3 -0
  65. data/lib/dodopayments/models/webhook_payload.rb +52 -143
  66. data/lib/dodopayments/resources/checkout_sessions.rb +8 -4
  67. data/lib/dodopayments/resources/payments.rb +4 -2
  68. data/lib/dodopayments/resources/subscriptions.rb +12 -6
  69. data/lib/dodopayments/version.rb +1 -1
  70. data/rbi/dodopayments/models/abandoned_checkout_detected_webhook_event.rbi +4 -40
  71. data/rbi/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbi +4 -40
  72. data/rbi/dodopayments/models/checkout_session_request.rbi +14 -0
  73. data/rbi/dodopayments/models/credit_added_webhook_event.rbi +4 -29
  74. data/rbi/dodopayments/models/credit_balance_low_webhook_event.rbi +4 -33
  75. data/rbi/dodopayments/models/credit_deducted_webhook_event.rbi +4 -33
  76. data/rbi/dodopayments/models/credit_expired_webhook_event.rbi +4 -33
  77. data/rbi/dodopayments/models/credit_manual_adjustment_webhook_event.rbi +4 -39
  78. data/rbi/dodopayments/models/credit_overage_charged_webhook_event.rbi +4 -36
  79. data/rbi/dodopayments/models/credit_overage_reset_webhook_event.rbi +4 -36
  80. data/rbi/dodopayments/models/credit_rolled_over_webhook_event.rbi +4 -33
  81. data/rbi/dodopayments/models/credit_rollover_forfeited_webhook_event.rbi +4 -40
  82. data/rbi/dodopayments/models/dispute_accepted_webhook_event.rbi +4 -33
  83. data/rbi/dodopayments/models/dispute_cancelled_webhook_event.rbi +4 -33
  84. data/rbi/dodopayments/models/dispute_challenged_webhook_event.rbi +4 -34
  85. data/rbi/dodopayments/models/dispute_expired_webhook_event.rbi +4 -33
  86. data/rbi/dodopayments/models/dispute_lost_webhook_event.rbi +4 -29
  87. data/rbi/dodopayments/models/dispute_opened_webhook_event.rbi +4 -33
  88. data/rbi/dodopayments/models/dispute_won_webhook_event.rbi +4 -29
  89. data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +4 -33
  90. data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +4 -33
  91. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +4 -40
  92. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +4 -40
  93. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +4 -39
  94. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +4 -40
  95. data/rbi/dodopayments/models/license_key_created_webhook_event.rbi +4 -34
  96. data/rbi/dodopayments/models/payment.rbi +170 -2
  97. data/rbi/dodopayments/models/payment_cancelled_webhook_event.rbi +4 -33
  98. data/rbi/dodopayments/models/payment_create_params.rbi +14 -2
  99. data/rbi/dodopayments/models/payment_create_response.rbi +12 -2
  100. data/rbi/dodopayments/models/payment_failed_webhook_event.rbi +4 -33
  101. data/rbi/dodopayments/models/payment_processing_webhook_event.rbi +4 -34
  102. data/rbi/dodopayments/models/payment_succeeded_webhook_event.rbi +4 -33
  103. data/rbi/dodopayments/models/price.rbi +18 -90
  104. data/rbi/dodopayments/models/product_item_req.rbi +74 -3
  105. data/rbi/dodopayments/models/refund_failed_webhook_event.rbi +4 -31
  106. data/rbi/dodopayments/models/refund_succeeded_webhook_event.rbi +4 -33
  107. data/rbi/dodopayments/models/subscription.rbi +173 -4
  108. data/rbi/dodopayments/models/subscription_active_webhook_event.rbi +4 -36
  109. data/rbi/dodopayments/models/subscription_cancelled_webhook_event.rbi +4 -36
  110. data/rbi/dodopayments/models/subscription_create_params.rbi +14 -2
  111. data/rbi/dodopayments/models/subscription_create_response.rbi +12 -2
  112. data/rbi/dodopayments/models/subscription_expired_webhook_event.rbi +4 -36
  113. data/rbi/dodopayments/models/subscription_failed_webhook_event.rbi +4 -36
  114. data/rbi/dodopayments/models/subscription_list_response.rbi +67 -4
  115. data/rbi/dodopayments/models/subscription_on_hold_webhook_event.rbi +4 -36
  116. data/rbi/dodopayments/models/subscription_plan_changed_webhook_event.rbi +4 -40
  117. data/rbi/dodopayments/models/subscription_preview_change_plan_response.rbi +18 -123
  118. data/rbi/dodopayments/models/subscription_renewed_webhook_event.rbi +4 -36
  119. data/rbi/dodopayments/models/subscription_update_payment_method_params.rbi +12 -96
  120. data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +4 -36
  121. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +18 -8
  122. data/rbi/dodopayments/models/webhook_event_type.rbi +15 -0
  123. data/rbi/dodopayments/models/webhook_payload.rbi +46 -466
  124. data/rbi/dodopayments/resources/checkout_sessions.rbi +12 -0
  125. data/rbi/dodopayments/resources/payments.rbi +6 -1
  126. data/rbi/dodopayments/resources/subscriptions.rbi +22 -9
  127. data/sig/dodopayments/models/abandoned_checkout_detected_webhook_event.rbs +4 -14
  128. data/sig/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbs +4 -14
  129. data/sig/dodopayments/models/checkout_session_request.rbs +5 -0
  130. data/sig/dodopayments/models/credit_added_webhook_event.rbs +4 -14
  131. data/sig/dodopayments/models/credit_balance_low_webhook_event.rbs +4 -14
  132. data/sig/dodopayments/models/credit_deducted_webhook_event.rbs +4 -14
  133. data/sig/dodopayments/models/credit_expired_webhook_event.rbs +4 -14
  134. data/sig/dodopayments/models/credit_manual_adjustment_webhook_event.rbs +4 -14
  135. data/sig/dodopayments/models/credit_overage_charged_webhook_event.rbs +4 -14
  136. data/sig/dodopayments/models/credit_overage_reset_webhook_event.rbs +4 -14
  137. data/sig/dodopayments/models/credit_rolled_over_webhook_event.rbs +4 -14
  138. data/sig/dodopayments/models/credit_rollover_forfeited_webhook_event.rbs +4 -14
  139. data/sig/dodopayments/models/dispute_accepted_webhook_event.rbs +4 -14
  140. data/sig/dodopayments/models/dispute_cancelled_webhook_event.rbs +4 -14
  141. data/sig/dodopayments/models/dispute_challenged_webhook_event.rbs +4 -14
  142. data/sig/dodopayments/models/dispute_expired_webhook_event.rbs +4 -14
  143. data/sig/dodopayments/models/dispute_lost_webhook_event.rbs +4 -14
  144. data/sig/dodopayments/models/dispute_opened_webhook_event.rbs +4 -14
  145. data/sig/dodopayments/models/dispute_won_webhook_event.rbs +4 -14
  146. data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +4 -14
  147. data/sig/dodopayments/models/dunning_started_webhook_event.rbs +4 -14
  148. data/sig/dodopayments/models/entitlement_grant_created_webhook_event.rbs +4 -14
  149. data/sig/dodopayments/models/entitlement_grant_delivered_webhook_event.rbs +4 -14
  150. data/sig/dodopayments/models/entitlement_grant_failed_webhook_event.rbs +4 -14
  151. data/sig/dodopayments/models/entitlement_grant_revoked_webhook_event.rbs +4 -14
  152. data/sig/dodopayments/models/license_key_created_webhook_event.rbs +4 -14
  153. data/sig/dodopayments/models/payment.rbs +97 -0
  154. data/sig/dodopayments/models/payment_cancelled_webhook_event.rbs +4 -14
  155. data/sig/dodopayments/models/payment_create_params.rbs +5 -0
  156. data/sig/dodopayments/models/payment_create_response.rbs +5 -0
  157. data/sig/dodopayments/models/payment_failed_webhook_event.rbs +4 -14
  158. data/sig/dodopayments/models/payment_processing_webhook_event.rbs +4 -14
  159. data/sig/dodopayments/models/payment_succeeded_webhook_event.rbs +4 -14
  160. data/sig/dodopayments/models/price.rbs +15 -45
  161. data/sig/dodopayments/models/product_item_req.rbs +27 -3
  162. data/sig/dodopayments/models/refund_failed_webhook_event.rbs +4 -14
  163. data/sig/dodopayments/models/refund_succeeded_webhook_event.rbs +4 -14
  164. data/sig/dodopayments/models/subscription.rbs +97 -0
  165. data/sig/dodopayments/models/subscription_active_webhook_event.rbs +4 -14
  166. data/sig/dodopayments/models/subscription_cancelled_webhook_event.rbs +4 -14
  167. data/sig/dodopayments/models/subscription_create_params.rbs +5 -0
  168. data/sig/dodopayments/models/subscription_create_response.rbs +5 -0
  169. data/sig/dodopayments/models/subscription_expired_webhook_event.rbs +4 -14
  170. data/sig/dodopayments/models/subscription_failed_webhook_event.rbs +4 -14
  171. data/sig/dodopayments/models/subscription_list_response.rbs +24 -0
  172. data/sig/dodopayments/models/subscription_on_hold_webhook_event.rbs +4 -14
  173. data/sig/dodopayments/models/subscription_plan_changed_webhook_event.rbs +4 -14
  174. data/sig/dodopayments/models/subscription_preview_change_plan_response.rbs +15 -45
  175. data/sig/dodopayments/models/subscription_renewed_webhook_event.rbs +4 -14
  176. data/sig/dodopayments/models/subscription_update_payment_method_params.rbs +8 -48
  177. data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +4 -14
  178. data/sig/dodopayments/models/update_subscription_plan_req.rbs +5 -0
  179. data/sig/dodopayments/models/webhook_event_type.rbs +6 -0
  180. data/sig/dodopayments/models/webhook_payload.rbs +50 -213
  181. data/sig/dodopayments/resources/checkout_sessions.rbs +2 -0
  182. data/sig/dodopayments/resources/payments.rbs +1 -0
  183. data/sig/dodopayments/resources/subscriptions.rbs +3 -0
  184. metadata +2 -2
@@ -26,9 +26,7 @@ module Dodopayments
26
26
  attr_accessor :timestamp
27
27
 
28
28
  # The event type
29
- sig do
30
- returns(Dodopayments::PaymentProcessingWebhookEvent::Type::TaggedSymbol)
31
- end
29
+ sig { returns(Symbol) }
32
30
  attr_accessor :type
33
31
 
34
32
  sig do
@@ -36,7 +34,7 @@ module Dodopayments
36
34
  business_id: String,
37
35
  data: Dodopayments::Payment::OrHash,
38
36
  timestamp: Time,
39
- type: Dodopayments::PaymentProcessingWebhookEvent::Type::OrSymbol
37
+ type: Symbol
40
38
  ).returns(T.attached_class)
41
39
  end
42
40
  def self.new(
@@ -46,7 +44,7 @@ module Dodopayments
46
44
  # The timestamp of when the event occurred
47
45
  timestamp:,
48
46
  # The event type
49
- type:
47
+ type: :"payment.processing"
50
48
  )
51
49
  end
52
50
 
@@ -56,40 +54,12 @@ module Dodopayments
56
54
  business_id: String,
57
55
  data: Dodopayments::Payment,
58
56
  timestamp: Time,
59
- type:
60
- Dodopayments::PaymentProcessingWebhookEvent::Type::TaggedSymbol
57
+ type: Symbol
61
58
  }
62
59
  )
63
60
  end
64
61
  def to_hash
65
62
  end
66
-
67
- # The event type
68
- module Type
69
- extend Dodopayments::Internal::Type::Enum
70
-
71
- TaggedSymbol =
72
- T.type_alias do
73
- T.all(Symbol, Dodopayments::PaymentProcessingWebhookEvent::Type)
74
- end
75
- OrSymbol = T.type_alias { T.any(Symbol, String) }
76
-
77
- PAYMENT_PROCESSING =
78
- T.let(
79
- :"payment.processing",
80
- Dodopayments::PaymentProcessingWebhookEvent::Type::TaggedSymbol
81
- )
82
-
83
- sig do
84
- override.returns(
85
- T::Array[
86
- Dodopayments::PaymentProcessingWebhookEvent::Type::TaggedSymbol
87
- ]
88
- )
89
- end
90
- def self.values
91
- end
92
- end
93
63
  end
94
64
  end
95
65
  end
@@ -26,9 +26,7 @@ module Dodopayments
26
26
  attr_accessor :timestamp
27
27
 
28
28
  # The event type
29
- sig do
30
- returns(Dodopayments::PaymentSucceededWebhookEvent::Type::TaggedSymbol)
31
- end
29
+ sig { returns(Symbol) }
32
30
  attr_accessor :type
33
31
 
34
32
  sig do
@@ -36,7 +34,7 @@ module Dodopayments
36
34
  business_id: String,
37
35
  data: Dodopayments::Payment::OrHash,
38
36
  timestamp: Time,
39
- type: Dodopayments::PaymentSucceededWebhookEvent::Type::OrSymbol
37
+ type: Symbol
40
38
  ).returns(T.attached_class)
41
39
  end
42
40
  def self.new(
@@ -46,7 +44,7 @@ module Dodopayments
46
44
  # The timestamp of when the event occurred
47
45
  timestamp:,
48
46
  # The event type
49
- type:
47
+ type: :"payment.succeeded"
50
48
  )
51
49
  end
52
50
 
@@ -56,39 +54,12 @@ module Dodopayments
56
54
  business_id: String,
57
55
  data: Dodopayments::Payment,
58
56
  timestamp: Time,
59
- type: Dodopayments::PaymentSucceededWebhookEvent::Type::TaggedSymbol
57
+ type: Symbol
60
58
  }
61
59
  )
62
60
  end
63
61
  def to_hash
64
62
  end
65
-
66
- # The event type
67
- module Type
68
- extend Dodopayments::Internal::Type::Enum
69
-
70
- TaggedSymbol =
71
- T.type_alias do
72
- T.all(Symbol, Dodopayments::PaymentSucceededWebhookEvent::Type)
73
- end
74
- OrSymbol = T.type_alias { T.any(Symbol, String) }
75
-
76
- PAYMENT_SUCCEEDED =
77
- T.let(
78
- :"payment.succeeded",
79
- Dodopayments::PaymentSucceededWebhookEvent::Type::TaggedSymbol
80
- )
81
-
82
- sig do
83
- override.returns(
84
- T::Array[
85
- Dodopayments::PaymentSucceededWebhookEvent::Type::TaggedSymbol
86
- ]
87
- )
88
- end
89
- def self.values
90
- end
91
- end
92
63
  end
93
64
  end
94
65
  end
@@ -45,7 +45,7 @@ module Dodopayments
45
45
  sig { returns(T::Boolean) }
46
46
  attr_accessor :purchasing_power_parity
47
47
 
48
- sig { returns(Dodopayments::Price::OneTimePrice::Type::OrSymbol) }
48
+ sig { returns(Symbol) }
49
49
  attr_accessor :type
50
50
 
51
51
  # Indicates whether the customer can pay any amount they choose. If set to `true`,
@@ -73,10 +73,10 @@ module Dodopayments
73
73
  discount: Integer,
74
74
  price: Integer,
75
75
  purchasing_power_parity: T::Boolean,
76
- type: Dodopayments::Price::OneTimePrice::Type::OrSymbol,
77
76
  pay_what_you_want: T::Boolean,
78
77
  suggested_price: T.nilable(Integer),
79
- tax_inclusive: T.nilable(T::Boolean)
78
+ tax_inclusive: T.nilable(T::Boolean),
79
+ type: Symbol
80
80
  ).returns(T.attached_class)
81
81
  end
82
82
  def self.new(
@@ -93,7 +93,6 @@ module Dodopayments
93
93
  # Indicates if purchasing power parity adjustments are applied to the price.
94
94
  # Purchasing power parity feature is not available as of now.
95
95
  purchasing_power_parity:,
96
- type:,
97
96
  # Indicates whether the customer can pay any amount they choose. If set to `true`,
98
97
  # the [`price`](Self::price) field is the minimum amount.
99
98
  pay_what_you_want: nil,
@@ -102,7 +101,8 @@ module Dodopayments
102
101
  # ignored.
103
102
  suggested_price: nil,
104
103
  # Indicates if the price is tax inclusive.
105
- tax_inclusive: nil
104
+ tax_inclusive: nil,
105
+ type: :one_time_price
106
106
  )
107
107
  end
108
108
 
@@ -113,7 +113,7 @@ module Dodopayments
113
113
  discount: Integer,
114
114
  price: Integer,
115
115
  purchasing_power_parity: T::Boolean,
116
- type: Dodopayments::Price::OneTimePrice::Type::OrSymbol,
116
+ type: Symbol,
117
117
  pay_what_you_want: T::Boolean,
118
118
  suggested_price: T.nilable(Integer),
119
119
  tax_inclusive: T.nilable(T::Boolean)
@@ -122,30 +122,6 @@ module Dodopayments
122
122
  end
123
123
  def to_hash
124
124
  end
125
-
126
- module Type
127
- extend Dodopayments::Internal::Type::Enum
128
-
129
- TaggedSymbol =
130
- T.type_alias do
131
- T.all(Symbol, Dodopayments::Price::OneTimePrice::Type)
132
- end
133
- OrSymbol = T.type_alias { T.any(Symbol, String) }
134
-
135
- ONE_TIME_PRICE =
136
- T.let(
137
- :one_time_price,
138
- Dodopayments::Price::OneTimePrice::Type::TaggedSymbol
139
- )
140
-
141
- sig do
142
- override.returns(
143
- T::Array[Dodopayments::Price::OneTimePrice::Type::TaggedSymbol]
144
- )
145
- end
146
- def self.values
147
- end
148
- end
149
125
  end
150
126
 
151
127
  class RecurringPrice < Dodopayments::Internal::Type::BaseModel
@@ -193,7 +169,7 @@ module Dodopayments
193
169
  sig { returns(Dodopayments::TimeInterval::OrSymbol) }
194
170
  attr_accessor :subscription_period_interval
195
171
 
196
- sig { returns(Dodopayments::Price::RecurringPrice::Type::OrSymbol) }
172
+ sig { returns(Symbol) }
197
173
  attr_accessor :type
198
174
 
199
175
  # Indicates if the price is tax inclusive
@@ -218,9 +194,9 @@ module Dodopayments
218
194
  purchasing_power_parity: T::Boolean,
219
195
  subscription_period_count: Integer,
220
196
  subscription_period_interval: Dodopayments::TimeInterval::OrSymbol,
221
- type: Dodopayments::Price::RecurringPrice::Type::OrSymbol,
222
197
  tax_inclusive: T.nilable(T::Boolean),
223
- trial_period_days: Integer
198
+ trial_period_days: Integer,
199
+ type: Symbol
224
200
  ).returns(T.attached_class)
225
201
  end
226
202
  def self.new(
@@ -244,11 +220,11 @@ module Dodopayments
244
220
  subscription_period_count:,
245
221
  # The time interval for the subscription period (e.g., day, month, year).
246
222
  subscription_period_interval:,
247
- type:,
248
223
  # Indicates if the price is tax inclusive
249
224
  tax_inclusive: nil,
250
225
  # Number of days for the trial period. A value of `0` indicates no trial period.
251
- trial_period_days: nil
226
+ trial_period_days: nil,
227
+ type: :recurring_price
252
228
  )
253
229
  end
254
230
 
@@ -264,7 +240,7 @@ module Dodopayments
264
240
  subscription_period_count: Integer,
265
241
  subscription_period_interval:
266
242
  Dodopayments::TimeInterval::OrSymbol,
267
- type: Dodopayments::Price::RecurringPrice::Type::OrSymbol,
243
+ type: Symbol,
268
244
  tax_inclusive: T.nilable(T::Boolean),
269
245
  trial_period_days: Integer
270
246
  }
@@ -272,30 +248,6 @@ module Dodopayments
272
248
  end
273
249
  def to_hash
274
250
  end
275
-
276
- module Type
277
- extend Dodopayments::Internal::Type::Enum
278
-
279
- TaggedSymbol =
280
- T.type_alias do
281
- T.all(Symbol, Dodopayments::Price::RecurringPrice::Type)
282
- end
283
- OrSymbol = T.type_alias { T.any(Symbol, String) }
284
-
285
- RECURRING_PRICE =
286
- T.let(
287
- :recurring_price,
288
- Dodopayments::Price::RecurringPrice::Type::TaggedSymbol
289
- )
290
-
291
- sig do
292
- override.returns(
293
- T::Array[Dodopayments::Price::RecurringPrice::Type::TaggedSymbol]
294
- )
295
- end
296
- def self.values
297
- end
298
- end
299
251
  end
300
252
 
301
253
  class UsageBasedPrice < Dodopayments::Internal::Type::BaseModel
@@ -343,7 +295,7 @@ module Dodopayments
343
295
  sig { returns(Dodopayments::TimeInterval::OrSymbol) }
344
296
  attr_accessor :subscription_period_interval
345
297
 
346
- sig { returns(Dodopayments::Price::UsageBasedPrice::Type::OrSymbol) }
298
+ sig { returns(Symbol) }
347
299
  attr_accessor :type
348
300
 
349
301
  sig { returns(T.nilable(T::Array[Dodopayments::AddMeterToPrice])) }
@@ -364,9 +316,9 @@ module Dodopayments
364
316
  purchasing_power_parity: T::Boolean,
365
317
  subscription_period_count: Integer,
366
318
  subscription_period_interval: Dodopayments::TimeInterval::OrSymbol,
367
- type: Dodopayments::Price::UsageBasedPrice::Type::OrSymbol,
368
319
  meters: T.nilable(T::Array[Dodopayments::AddMeterToPrice::OrHash]),
369
- tax_inclusive: T.nilable(T::Boolean)
320
+ tax_inclusive: T.nilable(T::Boolean),
321
+ type: Symbol
370
322
  ).returns(T.attached_class)
371
323
  end
372
324
  def self.new(
@@ -390,10 +342,10 @@ module Dodopayments
390
342
  subscription_period_count:,
391
343
  # The time interval for the subscription period (e.g., day, month, year).
392
344
  subscription_period_interval:,
393
- type:,
394
345
  meters: nil,
395
346
  # Indicates if the price is tax inclusive
396
- tax_inclusive: nil
347
+ tax_inclusive: nil,
348
+ type: :usage_based_price
397
349
  )
398
350
  end
399
351
 
@@ -409,7 +361,7 @@ module Dodopayments
409
361
  subscription_period_count: Integer,
410
362
  subscription_period_interval:
411
363
  Dodopayments::TimeInterval::OrSymbol,
412
- type: Dodopayments::Price::UsageBasedPrice::Type::OrSymbol,
364
+ type: Symbol,
413
365
  meters: T.nilable(T::Array[Dodopayments::AddMeterToPrice]),
414
366
  tax_inclusive: T.nilable(T::Boolean)
415
367
  }
@@ -417,30 +369,6 @@ module Dodopayments
417
369
  end
418
370
  def to_hash
419
371
  end
420
-
421
- module Type
422
- extend Dodopayments::Internal::Type::Enum
423
-
424
- TaggedSymbol =
425
- T.type_alias do
426
- T.all(Symbol, Dodopayments::Price::UsageBasedPrice::Type)
427
- end
428
- OrSymbol = T.type_alias { T.any(Symbol, String) }
429
-
430
- USAGE_BASED_PRICE =
431
- T.let(
432
- :usage_based_price,
433
- Dodopayments::Price::UsageBasedPrice::Type::TaggedSymbol
434
- )
435
-
436
- sig do
437
- override.returns(
438
- T::Array[Dodopayments::Price::UsageBasedPrice::Type::TaggedSymbol]
439
- )
440
- end
441
- def self.values
442
- end
443
- end
444
372
  end
445
373
 
446
374
  sig { override.returns(T::Array[Dodopayments::Price::Variants]) }
@@ -29,12 +29,27 @@ module Dodopayments
29
29
  sig { returns(T.nilable(Integer)) }
30
30
  attr_accessor :amount
31
31
 
32
+ # Per-checkout-session overrides for credit entitlements already attached to this
33
+ # product. Each entry overrides the `credits_amount` granted by the referenced
34
+ # credit entitlement when this checkout session is fulfilled. The
35
+ # credit_entitlement_id must already be attached to the product.
36
+ sig do
37
+ returns(
38
+ T.nilable(T::Array[Dodopayments::ProductItemReq::CreditEntitlement])
39
+ )
40
+ end
41
+ attr_accessor :credit_entitlements
42
+
32
43
  sig do
33
44
  params(
34
45
  product_id: String,
35
46
  quantity: Integer,
36
47
  addons: T.nilable(T::Array[Dodopayments::AttachAddon::OrHash]),
37
- amount: T.nilable(Integer)
48
+ amount: T.nilable(Integer),
49
+ credit_entitlements:
50
+ T.nilable(
51
+ T::Array[Dodopayments::ProductItemReq::CreditEntitlement::OrHash]
52
+ )
38
53
  ).returns(T.attached_class)
39
54
  end
40
55
  def self.new(
@@ -50,7 +65,12 @@ module Dodopayments
50
65
  #
51
66
  # If amount is not set for pay_what_you_want product, customer is allowed to
52
67
  # select the amount.
53
- amount: nil
68
+ amount: nil,
69
+ # Per-checkout-session overrides for credit entitlements already attached to this
70
+ # product. Each entry overrides the `credits_amount` granted by the referenced
71
+ # credit entitlement when this checkout session is fulfilled. The
72
+ # credit_entitlement_id must already be attached to the product.
73
+ credit_entitlements: nil
54
74
  )
55
75
  end
56
76
 
@@ -60,12 +80,63 @@ module Dodopayments
60
80
  product_id: String,
61
81
  quantity: Integer,
62
82
  addons: T.nilable(T::Array[Dodopayments::AttachAddon]),
63
- amount: T.nilable(Integer)
83
+ amount: T.nilable(Integer),
84
+ credit_entitlements:
85
+ T.nilable(
86
+ T::Array[Dodopayments::ProductItemReq::CreditEntitlement]
87
+ )
64
88
  }
65
89
  )
66
90
  end
67
91
  def to_hash
68
92
  end
93
+
94
+ class CreditEntitlement < Dodopayments::Internal::Type::BaseModel
95
+ OrHash =
96
+ T.type_alias do
97
+ T.any(
98
+ Dodopayments::ProductItemReq::CreditEntitlement,
99
+ Dodopayments::Internal::AnyHash
100
+ )
101
+ end
102
+
103
+ # ID of the credit entitlement to override. Must already be attached to the
104
+ # product.
105
+ sig { returns(String) }
106
+ attr_accessor :credit_entitlement_id
107
+
108
+ # Number of credits to grant for this checkout session, overriding the
109
+ # product-level `credits_amount` set on the credit entitlement mapping. Must be
110
+ # greater than zero.
111
+ sig { returns(String) }
112
+ attr_accessor :credits_amount
113
+
114
+ # Per-checkout-session override for a single credit entitlement attached to a
115
+ # product.
116
+ sig do
117
+ params(credit_entitlement_id: String, credits_amount: String).returns(
118
+ T.attached_class
119
+ )
120
+ end
121
+ def self.new(
122
+ # ID of the credit entitlement to override. Must already be attached to the
123
+ # product.
124
+ credit_entitlement_id:,
125
+ # Number of credits to grant for this checkout session, overriding the
126
+ # product-level `credits_amount` set on the credit entitlement mapping. Must be
127
+ # greater than zero.
128
+ credits_amount:
129
+ )
130
+ end
131
+
132
+ sig do
133
+ override.returns(
134
+ { credit_entitlement_id: String, credits_amount: String }
135
+ )
136
+ end
137
+ def to_hash
138
+ end
139
+ end
69
140
  end
70
141
  end
71
142
  end
@@ -26,9 +26,7 @@ module Dodopayments
26
26
  attr_accessor :timestamp
27
27
 
28
28
  # The event type
29
- sig do
30
- returns(Dodopayments::RefundFailedWebhookEvent::Type::TaggedSymbol)
31
- end
29
+ sig { returns(Symbol) }
32
30
  attr_accessor :type
33
31
 
34
32
  sig do
@@ -36,7 +34,7 @@ module Dodopayments
36
34
  business_id: String,
37
35
  data: Dodopayments::Refund::OrHash,
38
36
  timestamp: Time,
39
- type: Dodopayments::RefundFailedWebhookEvent::Type::OrSymbol
37
+ type: Symbol
40
38
  ).returns(T.attached_class)
41
39
  end
42
40
  def self.new(
@@ -46,7 +44,7 @@ module Dodopayments
46
44
  # The timestamp of when the event occurred
47
45
  timestamp:,
48
46
  # The event type
49
- type:
47
+ type: :"refund.failed"
50
48
  )
51
49
  end
52
50
 
@@ -56,37 +54,12 @@ module Dodopayments
56
54
  business_id: String,
57
55
  data: Dodopayments::Refund,
58
56
  timestamp: Time,
59
- type: Dodopayments::RefundFailedWebhookEvent::Type::TaggedSymbol
57
+ type: Symbol
60
58
  }
61
59
  )
62
60
  end
63
61
  def to_hash
64
62
  end
65
-
66
- # The event type
67
- module Type
68
- extend Dodopayments::Internal::Type::Enum
69
-
70
- TaggedSymbol =
71
- T.type_alias do
72
- T.all(Symbol, Dodopayments::RefundFailedWebhookEvent::Type)
73
- end
74
- OrSymbol = T.type_alias { T.any(Symbol, String) }
75
-
76
- REFUND_FAILED =
77
- T.let(
78
- :"refund.failed",
79
- Dodopayments::RefundFailedWebhookEvent::Type::TaggedSymbol
80
- )
81
-
82
- sig do
83
- override.returns(
84
- T::Array[Dodopayments::RefundFailedWebhookEvent::Type::TaggedSymbol]
85
- )
86
- end
87
- def self.values
88
- end
89
- end
90
63
  end
91
64
  end
92
65
  end
@@ -26,9 +26,7 @@ module Dodopayments
26
26
  attr_accessor :timestamp
27
27
 
28
28
  # The event type
29
- sig do
30
- returns(Dodopayments::RefundSucceededWebhookEvent::Type::TaggedSymbol)
31
- end
29
+ sig { returns(Symbol) }
32
30
  attr_accessor :type
33
31
 
34
32
  sig do
@@ -36,7 +34,7 @@ module Dodopayments
36
34
  business_id: String,
37
35
  data: Dodopayments::Refund::OrHash,
38
36
  timestamp: Time,
39
- type: Dodopayments::RefundSucceededWebhookEvent::Type::OrSymbol
37
+ type: Symbol
40
38
  ).returns(T.attached_class)
41
39
  end
42
40
  def self.new(
@@ -46,7 +44,7 @@ module Dodopayments
46
44
  # The timestamp of when the event occurred
47
45
  timestamp:,
48
46
  # The event type
49
- type:
47
+ type: :"refund.succeeded"
50
48
  )
51
49
  end
52
50
 
@@ -56,39 +54,12 @@ module Dodopayments
56
54
  business_id: String,
57
55
  data: Dodopayments::Refund,
58
56
  timestamp: Time,
59
- type: Dodopayments::RefundSucceededWebhookEvent::Type::TaggedSymbol
57
+ type: Symbol
60
58
  }
61
59
  )
62
60
  end
63
61
  def to_hash
64
62
  end
65
-
66
- # The event type
67
- module Type
68
- extend Dodopayments::Internal::Type::Enum
69
-
70
- TaggedSymbol =
71
- T.type_alias do
72
- T.all(Symbol, Dodopayments::RefundSucceededWebhookEvent::Type)
73
- end
74
- OrSymbol = T.type_alias { T.any(Symbol, String) }
75
-
76
- REFUND_SUCCEEDED =
77
- T.let(
78
- :"refund.succeeded",
79
- Dodopayments::RefundSucceededWebhookEvent::Type::TaggedSymbol
80
- )
81
-
82
- sig do
83
- override.returns(
84
- T::Array[
85
- Dodopayments::RefundSucceededWebhookEvent::Type::TaggedSymbol
86
- ]
87
- )
88
- end
89
- def self.values
90
- end
91
- end
92
63
  end
93
64
  end
94
65
  end