dodopayments 2.18.0 → 2.19.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 (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/models/attach_addon.rb +3 -1
  5. data/lib/dodopayments/models/checkout_session_flags.rb +12 -1
  6. data/lib/dodopayments/models/checkout_session_request.rb +5 -3
  7. data/lib/dodopayments/models/credit_entitlement.rb +2 -1
  8. data/lib/dodopayments/models/credit_entitlement_cart_response.rb +2 -1
  9. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +5 -3
  10. data/lib/dodopayments/models/credit_entitlements/balance_list_grants_response.rb +24 -3
  11. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +3 -3
  12. data/lib/dodopayments/models/customer.rb +3 -3
  13. data/lib/dodopayments/models/customer_create_params.rb +3 -3
  14. data/lib/dodopayments/models/customer_limited_details.rb +3 -3
  15. data/lib/dodopayments/models/customer_list_entitlement_grants_params.rb +85 -0
  16. data/lib/dodopayments/models/customer_update_params.rb +5 -3
  17. data/lib/dodopayments/models/discount.rb +4 -3
  18. data/lib/dodopayments/models/discount_create_params.rb +3 -3
  19. data/lib/dodopayments/models/discount_detail.rb +3 -3
  20. data/lib/dodopayments/models/discount_update_params.rb +5 -3
  21. data/lib/dodopayments/models/entitlement.rb +5 -5
  22. data/lib/dodopayments/models/entitlement_create_params.rb +5 -5
  23. data/lib/dodopayments/models/entitlement_integration_type.rb +1 -0
  24. data/lib/dodopayments/models/entitlement_list_params.rb +1 -0
  25. data/lib/dodopayments/models/entitlement_update_params.rb +12 -5
  26. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +13 -4
  27. data/lib/dodopayments/models/feature.rb +26 -0
  28. data/lib/dodopayments/models/feature_type.rb +15 -0
  29. data/lib/dodopayments/models/integration_config.rb +30 -1
  30. data/lib/dodopayments/models/integration_config_response.rb +22 -1
  31. data/lib/dodopayments/models/license_key_duration.rb +3 -1
  32. data/lib/dodopayments/models/metadata.rb +15 -1
  33. data/lib/dodopayments/models/payment.rb +5 -5
  34. data/lib/dodopayments/models/payment_create_params.rb +3 -3
  35. data/lib/dodopayments/models/payment_create_response.rb +3 -3
  36. data/lib/dodopayments/models/payment_list_response.rb +4 -3
  37. data/lib/dodopayments/models/product.rb +3 -3
  38. data/lib/dodopayments/models/product_create_params.rb +3 -3
  39. data/lib/dodopayments/models/product_entitlement_summary.rb +2 -2
  40. data/lib/dodopayments/models/product_list_response.rb +3 -3
  41. data/lib/dodopayments/models/product_update_params.rb +5 -3
  42. data/lib/dodopayments/models/refund.rb +3 -3
  43. data/lib/dodopayments/models/refund_create_params.rb +3 -3
  44. data/lib/dodopayments/models/subscription.rb +3 -3
  45. data/lib/dodopayments/models/subscription_charge_params.rb +5 -3
  46. data/lib/dodopayments/models/subscription_create_params.rb +3 -3
  47. data/lib/dodopayments/models/subscription_create_response.rb +3 -3
  48. data/lib/dodopayments/models/subscription_list_response.rb +3 -3
  49. data/lib/dodopayments/models/subscription_update_params.rb +18 -4
  50. data/lib/dodopayments/models/time_interval.rb +1 -0
  51. data/lib/dodopayments/models/update_subscription_plan_req.rb +5 -3
  52. data/lib/dodopayments/models.rb +8 -0
  53. data/lib/dodopayments/resources/checkout_sessions.rb +2 -2
  54. data/lib/dodopayments/resources/credit_entitlements/balances.rb +1 -1
  55. data/lib/dodopayments/resources/customers.rb +35 -2
  56. data/lib/dodopayments/resources/discounts.rb +2 -2
  57. data/lib/dodopayments/resources/entitlements.rb +4 -4
  58. data/lib/dodopayments/resources/payments.rb +1 -1
  59. data/lib/dodopayments/resources/products.rb +2 -2
  60. data/lib/dodopayments/resources/refunds.rb +1 -1
  61. data/lib/dodopayments/resources/subscriptions.rb +5 -5
  62. data/lib/dodopayments/version.rb +1 -1
  63. data/lib/dodopayments.rb +3 -0
  64. data/rbi/dodopayments/models/attach_addon.rbi +6 -1
  65. data/rbi/dodopayments/models/checkout_session_flags.rbi +17 -0
  66. data/rbi/dodopayments/models/checkout_session_request.rbi +9 -3
  67. data/rbi/dodopayments/models/credit_entitlement.rbi +2 -0
  68. data/rbi/dodopayments/models/credit_entitlement_cart_response.rbi +2 -0
  69. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +11 -3
  70. data/rbi/dodopayments/models/credit_entitlements/balance_list_grants_response.rbi +13 -3
  71. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +3 -3
  72. data/rbi/dodopayments/models/customer.rbi +12 -4
  73. data/rbi/dodopayments/models/customer_create_params.rbi +12 -4
  74. data/rbi/dodopayments/models/customer_limited_details.rbi +12 -4
  75. data/rbi/dodopayments/models/customer_list_entitlement_grants_params.rbi +229 -0
  76. data/rbi/dodopayments/models/customer_update_params.rbi +9 -3
  77. data/rbi/dodopayments/models/discount.rbi +5 -3
  78. data/rbi/dodopayments/models/discount_create_params.rbi +12 -4
  79. data/rbi/dodopayments/models/discount_detail.rbi +3 -3
  80. data/rbi/dodopayments/models/discount_update_params.rbi +9 -3
  81. data/rbi/dodopayments/models/entitlement.rbi +4 -3
  82. data/rbi/dodopayments/models/entitlement_create_params.rbi +15 -4
  83. data/rbi/dodopayments/models/entitlement_integration_type.rbi +5 -0
  84. data/rbi/dodopayments/models/entitlement_list_params.rbi +5 -0
  85. data/rbi/dodopayments/models/entitlement_update_params.rbi +22 -3
  86. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +16 -3
  87. data/rbi/dodopayments/models/feature.rbi +46 -0
  88. data/rbi/dodopayments/models/feature_type.rbi +21 -0
  89. data/rbi/dodopayments/models/integration_config.rbi +50 -0
  90. data/rbi/dodopayments/models/integration_config_response.rbi +44 -0
  91. data/rbi/dodopayments/models/license_key_duration.rbi +6 -1
  92. data/rbi/dodopayments/models/metadata.rbi +12 -1
  93. data/rbi/dodopayments/models/payment.rbi +5 -5
  94. data/rbi/dodopayments/models/payment_create_params.rbi +12 -4
  95. data/rbi/dodopayments/models/payment_create_response.rbi +3 -3
  96. data/rbi/dodopayments/models/payment_list_response.rbi +5 -3
  97. data/rbi/dodopayments/models/product.rbi +3 -3
  98. data/rbi/dodopayments/models/product_create_params.rbi +12 -4
  99. data/rbi/dodopayments/models/product_entitlement_summary.rbi +1 -0
  100. data/rbi/dodopayments/models/product_list_response.rbi +3 -3
  101. data/rbi/dodopayments/models/product_update_params.rbi +9 -3
  102. data/rbi/dodopayments/models/refund.rbi +3 -3
  103. data/rbi/dodopayments/models/refund_create_params.rbi +12 -4
  104. data/rbi/dodopayments/models/subscription.rbi +3 -3
  105. data/rbi/dodopayments/models/subscription_charge_params.rbi +9 -3
  106. data/rbi/dodopayments/models/subscription_create_params.rbi +12 -4
  107. data/rbi/dodopayments/models/subscription_create_response.rbi +3 -3
  108. data/rbi/dodopayments/models/subscription_list_response.rbi +3 -3
  109. data/rbi/dodopayments/models/subscription_update_params.rbi +13 -3
  110. data/rbi/dodopayments/models/time_interval.rbi +1 -0
  111. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +9 -3
  112. data/rbi/dodopayments/models.rbi +9 -0
  113. data/rbi/dodopayments/resources/checkout_sessions.rbi +4 -2
  114. data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +2 -1
  115. data/rbi/dodopayments/resources/customers.rbi +36 -2
  116. data/rbi/dodopayments/resources/discounts.rbi +3 -2
  117. data/rbi/dodopayments/resources/entitlements.rbi +10 -2
  118. data/rbi/dodopayments/resources/payments.rbi +1 -1
  119. data/rbi/dodopayments/resources/products.rbi +3 -2
  120. data/rbi/dodopayments/resources/refunds.rbi +1 -1
  121. data/rbi/dodopayments/resources/subscriptions.rbi +10 -5
  122. data/sig/dodopayments/models/checkout_session_flags.rbs +7 -0
  123. data/sig/dodopayments/models/customer_list_entitlement_grants_params.rbs +98 -0
  124. data/sig/dodopayments/models/entitlement_integration_type.rbs +2 -0
  125. data/sig/dodopayments/models/entitlement_list_params.rbs +2 -0
  126. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +5 -0
  127. data/sig/dodopayments/models/feature.rbs +22 -0
  128. data/sig/dodopayments/models/feature_type.rbs +13 -0
  129. data/sig/dodopayments/models/integration_config.rbs +21 -1
  130. data/sig/dodopayments/models/integration_config_response.rbs +21 -1
  131. data/sig/dodopayments/models/metadata.rbs +9 -1
  132. data/sig/dodopayments/models.rbs +8 -0
  133. data/sig/dodopayments/resources/customers.rbs +9 -0
  134. metadata +11 -2
@@ -49,7 +49,7 @@ module Dodopayments
49
49
  attr_writer :customer
50
50
 
51
51
  # Additional custom data associated with the subscription
52
- sig { returns(T::Hash[Symbol, String]) }
52
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
53
53
  attr_accessor :metadata
54
54
 
55
55
  # Meter credit entitlement cart settings for this subscription
@@ -190,7 +190,7 @@ module Dodopayments
190
190
  T::Array[Dodopayments::CreditEntitlementCartResponse::OrHash],
191
191
  currency: Dodopayments::Currency::OrSymbol,
192
192
  customer: Dodopayments::CustomerLimitedDetails::OrHash,
193
- metadata: T::Hash[Symbol, String],
193
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
194
194
  meter_credit_entitlement_cart:
195
195
  T::Array[Dodopayments::MeterCreditEntitlementCartResponse::OrHash],
196
196
  meters: T::Array[Dodopayments::MeterCartResponseItem::OrHash],
@@ -318,7 +318,7 @@ module Dodopayments
318
318
  T::Array[Dodopayments::CreditEntitlementCartResponse],
319
319
  currency: Dodopayments::Currency::TaggedSymbol,
320
320
  customer: Dodopayments::CustomerLimitedDetails,
321
- metadata: T::Hash[Symbol, String],
321
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
322
322
  meter_credit_entitlement_cart:
323
323
  T::Array[Dodopayments::MeterCreditEntitlementCartResponse],
324
324
  meters: T::Array[Dodopayments::MeterCartResponseItem],
@@ -50,7 +50,11 @@ module Dodopayments
50
50
 
51
51
  # Metadata for the payment. If not passed, the metadata of the subscription will
52
52
  # be taken
53
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
53
+ sig do
54
+ returns(
55
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
56
+ )
57
+ end
54
58
  attr_accessor :metadata
55
59
 
56
60
  # Optional currency of the product price. If not specified, defaults to the
@@ -72,7 +76,8 @@ module Dodopayments
72
76
  T.nilable(
73
77
  Dodopayments::SubscriptionChargeParams::CustomerBalanceConfig::OrHash
74
78
  ),
75
- metadata: T.nilable(T::Hash[Symbol, String]),
79
+ metadata:
80
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
76
81
  product_currency: T.nilable(Dodopayments::Currency::OrSymbol),
77
82
  product_description: T.nilable(String),
78
83
  request_options: Dodopayments::RequestOptions::OrHash
@@ -112,7 +117,8 @@ module Dodopayments
112
117
  T.nilable(
113
118
  Dodopayments::SubscriptionChargeParams::CustomerBalanceConfig
114
119
  ),
115
- metadata: T.nilable(T::Hash[Symbol, String]),
120
+ metadata:
121
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
116
122
  product_currency: T.nilable(Dodopayments::Currency::OrSymbol),
117
123
  product_description: T.nilable(String),
118
124
  request_options: Dodopayments::RequestOptions
@@ -87,10 +87,18 @@ module Dodopayments
87
87
  attr_accessor :mandate_min_amount_inr_paise
88
88
 
89
89
  # Additional metadata for the subscription Defaults to empty if not specified
90
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
90
+ sig do
91
+ returns(
92
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
93
+ )
94
+ end
91
95
  attr_reader :metadata
92
96
 
93
- sig { params(metadata: T::Hash[Symbol, String]).void }
97
+ sig do
98
+ params(
99
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
100
+ ).void
101
+ end
94
102
  attr_writer :metadata
95
103
 
96
104
  sig { returns(T.nilable(Dodopayments::OnDemandSubscription)) }
@@ -179,7 +187,7 @@ module Dodopayments
179
187
  discount_codes: T.nilable(T::Array[String]),
180
188
  force_3ds: T.nilable(T::Boolean),
181
189
  mandate_min_amount_inr_paise: T.nilable(Integer),
182
- metadata: T::Hash[Symbol, String],
190
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
183
191
  on_demand: T.nilable(Dodopayments::OnDemandSubscription::OrHash),
184
192
  one_time_product_cart:
185
193
  T.nilable(T::Array[Dodopayments::OneTimeProductCartItem::OrHash]),
@@ -290,7 +298,7 @@ module Dodopayments
290
298
  discount_codes: T.nilable(T::Array[String]),
291
299
  force_3ds: T.nilable(T::Boolean),
292
300
  mandate_min_amount_inr_paise: T.nilable(Integer),
293
- metadata: T::Hash[Symbol, String],
301
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
294
302
  on_demand: T.nilable(Dodopayments::OnDemandSubscription),
295
303
  one_time_product_cart:
296
304
  T.nilable(T::Array[Dodopayments::OneTimeProductCartItem]),
@@ -25,7 +25,7 @@ module Dodopayments
25
25
  attr_writer :customer
26
26
 
27
27
  # Additional metadata associated with the subscription
28
- sig { returns(T::Hash[Symbol, String]) }
28
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
29
29
  attr_accessor :metadata
30
30
 
31
31
  # First payment id for the subscription
@@ -79,7 +79,7 @@ module Dodopayments
79
79
  params(
80
80
  addons: T::Array[Dodopayments::AddonCartResponseItem::OrHash],
81
81
  customer: Dodopayments::CustomerLimitedDetails::OrHash,
82
- metadata: T::Hash[Symbol, String],
82
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
83
83
  payment_id: String,
84
84
  recurring_pre_tax_amount: Integer,
85
85
  subscription_id: String,
@@ -132,7 +132,7 @@ module Dodopayments
132
132
  {
133
133
  addons: T::Array[Dodopayments::AddonCartResponseItem],
134
134
  customer: Dodopayments::CustomerLimitedDetails,
135
- metadata: T::Hash[Symbol, String],
135
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
136
136
  payment_id: String,
137
137
  recurring_pre_tax_amount: Integer,
138
138
  subscription_id: String,
@@ -48,7 +48,7 @@ module Dodopayments
48
48
  attr_accessor :discounts
49
49
 
50
50
  # Additional custom data associated with the subscription
51
- sig { returns(T::Hash[Symbol, String]) }
51
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
52
52
  attr_accessor :metadata
53
53
 
54
54
  # Timestamp of the next scheduled billing. Indicates the end of current billing
@@ -161,7 +161,7 @@ module Dodopayments
161
161
  T::Array[
162
162
  Dodopayments::Models::SubscriptionListResponse::Discount::OrHash
163
163
  ],
164
- metadata: T::Hash[Symbol, String],
164
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
165
165
  next_billing_date: Time,
166
166
  on_demand: T::Boolean,
167
167
  payment_frequency_count: Integer,
@@ -264,7 +264,7 @@ module Dodopayments
264
264
  T::Array[
265
265
  Dodopayments::Models::SubscriptionListResponse::Discount
266
266
  ],
267
- metadata: T::Hash[Symbol, String],
267
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
268
268
  next_billing_date: Time,
269
269
  on_demand: T::Boolean,
270
270
  payment_frequency_count: Integer,
@@ -87,7 +87,12 @@ module Dodopayments
87
87
  end
88
88
  attr_writer :disable_on_demand
89
89
 
90
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
90
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
91
+ sig do
92
+ returns(
93
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
94
+ )
95
+ end
91
96
  attr_accessor :metadata
92
97
 
93
98
  sig { returns(T.nilable(Time)) }
@@ -123,7 +128,8 @@ module Dodopayments
123
128
  T.nilable(
124
129
  Dodopayments::SubscriptionUpdateParams::DisableOnDemand::OrHash
125
130
  ),
126
- metadata: T.nilable(T::Hash[Symbol, String]),
131
+ metadata:
132
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
127
133
  next_billing_date: T.nilable(Time),
128
134
  status: T.nilable(Dodopayments::SubscriptionStatus::OrSymbol),
129
135
  tax_id: T.nilable(String),
@@ -151,6 +157,7 @@ module Dodopayments
151
157
  customer_business_name: nil,
152
158
  customer_name: nil,
153
159
  disable_on_demand: nil,
160
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
154
161
  metadata: nil,
155
162
  next_billing_date: nil,
156
163
  status: nil,
@@ -184,7 +191,8 @@ module Dodopayments
184
191
  T.nilable(
185
192
  Dodopayments::SubscriptionUpdateParams::DisableOnDemand
186
193
  ),
187
- metadata: T.nilable(T::Hash[Symbol, String]),
194
+ metadata:
195
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
188
196
  next_billing_date: T.nilable(Time),
189
197
  status: T.nilable(Dodopayments::SubscriptionStatus::OrSymbol),
190
198
  tax_id: T.nilable(String),
@@ -275,6 +283,7 @@ module Dodopayments
275
283
  sig { returns(T.nilable(Integer)) }
276
284
  attr_accessor :rollover_timeframe_count
277
285
 
286
+ # Unit of a duration count (e.g. license-key validity period).
278
287
  sig { returns(T.nilable(Dodopayments::TimeInterval::OrSymbol)) }
279
288
  attr_accessor :rollover_timeframe_interval
280
289
 
@@ -305,6 +314,7 @@ module Dodopayments
305
314
  rollover_enabled: nil,
306
315
  rollover_percentage: nil,
307
316
  rollover_timeframe_count: nil,
317
+ # Unit of a duration count (e.g. license-key validity period).
308
318
  rollover_timeframe_interval: nil
309
319
  )
310
320
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Dodopayments
4
4
  module Models
5
+ # Unit of a duration count (e.g. license-key validity period).
5
6
  module TimeInterval
6
7
  extend Dodopayments::Internal::Type::Enum
7
8
 
@@ -72,7 +72,11 @@ module Dodopayments
72
72
 
73
73
  # Metadata for the payment. If not passed, the metadata of the subscription will
74
74
  # be taken
75
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
75
+ sig do
76
+ returns(
77
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
78
+ )
79
+ end
76
80
  attr_accessor :metadata
77
81
 
78
82
  # Controls behavior when the plan change payment fails.
@@ -103,7 +107,8 @@ module Dodopayments
103
107
  discount_codes: T.nilable(T::Array[String]),
104
108
  effective_at:
105
109
  Dodopayments::UpdateSubscriptionPlanReq::EffectiveAt::OrSymbol,
106
- metadata: T.nilable(T::Hash[Symbol, String]),
110
+ metadata:
111
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
107
112
  on_payment_failure:
108
113
  T.nilable(
109
114
  Dodopayments::UpdateSubscriptionPlanReq::OnPaymentFailure::OrSymbol
@@ -163,7 +168,8 @@ module Dodopayments
163
168
  discount_codes: T.nilable(T::Array[String]),
164
169
  effective_at:
165
170
  Dodopayments::UpdateSubscriptionPlanReq::EffectiveAt::OrSymbol,
166
- metadata: T.nilable(T::Hash[Symbol, String]),
171
+ metadata:
172
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
167
173
  on_payment_failure:
168
174
  T.nilable(
169
175
  Dodopayments::UpdateSubscriptionPlanReq::OnPaymentFailure::OrSymbol
@@ -151,6 +151,9 @@ module Dodopayments
151
151
  CustomerListCreditEntitlementsParams =
152
152
  Dodopayments::Models::CustomerListCreditEntitlementsParams
153
153
 
154
+ CustomerListEntitlementGrantsParams =
155
+ Dodopayments::Models::CustomerListEntitlementGrantsParams
156
+
154
157
  CustomerListEntitlementsParams =
155
158
  Dodopayments::Models::CustomerListEntitlementsParams
156
159
 
@@ -260,6 +263,10 @@ module Dodopayments
260
263
 
261
264
  EventInput = Dodopayments::Models::EventInput
262
265
 
266
+ Feature = Dodopayments::Models::Feature
267
+
268
+ FeatureType = Dodopayments::Models::FeatureType
269
+
263
270
  FilterOperator = Dodopayments::Models::FilterOperator
264
271
 
265
272
  FilterType = Dodopayments::Models::FilterType
@@ -316,6 +323,8 @@ module Dodopayments
316
323
  Dodopayments::Internal::Type::Converter
317
324
  )
318
325
 
326
+ MetadataItem = Dodopayments::Models::MetadataItem
327
+
319
328
  Meter = Dodopayments::Models::Meter
320
329
 
321
330
  MeterAggregation = Dodopayments::Models::MeterAggregation
@@ -28,7 +28,8 @@ module Dodopayments
28
28
  feature_flags: Dodopayments::CheckoutSessionFlags::OrHash,
29
29
  force_3ds: T.nilable(T::Boolean),
30
30
  mandate_min_amount_inr_paise: T.nilable(Integer),
31
- metadata: T.nilable(T::Hash[Symbol, String]),
31
+ metadata:
32
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
32
33
  minimal_address: T::Boolean,
33
34
  payment_method_id: T.nilable(String),
34
35
  product_collection_id: T.nilable(String),
@@ -148,7 +149,8 @@ module Dodopayments
148
149
  feature_flags: Dodopayments::CheckoutSessionFlags::OrHash,
149
150
  force_3ds: T.nilable(T::Boolean),
150
151
  mandate_min_amount_inr_paise: T.nilable(Integer),
151
- metadata: T.nilable(T::Hash[Symbol, String]),
152
+ metadata:
153
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
152
154
  minimal_address: T::Boolean,
153
155
  payment_method_id: T.nilable(String),
154
156
  product_collection_id: T.nilable(String),
@@ -121,7 +121,8 @@ module Dodopayments
121
121
  Dodopayments::CreditEntitlements::LedgerEntryType::OrSymbol,
122
122
  expires_at: T.nilable(Time),
123
123
  idempotency_key: T.nilable(String),
124
- metadata: T.nilable(T::Hash[Symbol, String]),
124
+ metadata:
125
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
125
126
  reason: T.nilable(String),
126
127
  request_options: Dodopayments::RequestOptions::OrHash
127
128
  ).returns(
@@ -13,7 +13,7 @@ module Dodopayments
13
13
  params(
14
14
  email: String,
15
15
  name: String,
16
- metadata: T::Hash[Symbol, String],
16
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
17
17
  phone_number: T.nilable(String),
18
18
  request_options: Dodopayments::RequestOptions::OrHash
19
19
  ).returns(Dodopayments::Customer)
@@ -45,7 +45,8 @@ module Dodopayments
45
45
  params(
46
46
  customer_id: String,
47
47
  email: T.nilable(String),
48
- metadata: T.nilable(T::Hash[Symbol, String]),
48
+ metadata:
49
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
49
50
  name: T.nilable(String),
50
51
  phone_number: T.nilable(String),
51
52
  request_options: Dodopayments::RequestOptions::OrHash
@@ -125,6 +126,39 @@ module Dodopayments
125
126
  )
126
127
  end
127
128
 
129
+ # List all of a customer's entitlement grants across every entitlement. One row
130
+ # per grant.
131
+ sig do
132
+ params(
133
+ customer_id: String,
134
+ integration_type:
135
+ Dodopayments::CustomerListEntitlementGrantsParams::IntegrationType::OrSymbol,
136
+ page_number: Integer,
137
+ page_size: Integer,
138
+ status:
139
+ Dodopayments::CustomerListEntitlementGrantsParams::Status::OrSymbol,
140
+ request_options: Dodopayments::RequestOptions::OrHash
141
+ ).returns(
142
+ Dodopayments::Internal::DefaultPageNumberPagination[
143
+ Dodopayments::Entitlements::EntitlementGrant
144
+ ]
145
+ )
146
+ end
147
+ def list_entitlement_grants(
148
+ # Customer ID
149
+ customer_id,
150
+ # Filter by integration type (e.g. `feature_flag`)
151
+ integration_type: nil,
152
+ # Page number (default 0)
153
+ page_number: nil,
154
+ # Page size (default 10, max 100)
155
+ page_size: nil,
156
+ # Filter by grant status
157
+ status: nil,
158
+ request_options: {}
159
+ )
160
+ end
161
+
128
162
  # List all entitlement grants delivered (or in flight) to a customer.
129
163
  sig do
130
164
  params(
@@ -11,7 +11,7 @@ module Dodopayments
11
11
  type: Dodopayments::DiscountType::OrSymbol,
12
12
  code: T.nilable(String),
13
13
  expires_at: T.nilable(Time),
14
- metadata: T::Hash[Symbol, String],
14
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
15
15
  name: T.nilable(String),
16
16
  preserve_on_plan_change: T::Boolean,
17
17
  restricted_to: T.nilable(T::Array[String]),
@@ -74,7 +74,8 @@ module Dodopayments
74
74
  amount: T.nilable(Integer),
75
75
  code: T.nilable(String),
76
76
  expires_at: T.nilable(Time),
77
- metadata: T.nilable(T::Hash[Symbol, String]),
77
+ metadata:
78
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
78
79
  name: T.nilable(String),
79
80
  preserve_on_plan_change: T.nilable(T::Boolean),
80
81
  restricted_to: T.nilable(T::Array[String]),
@@ -14,6 +14,7 @@ module Dodopayments
14
14
  params(
15
15
  integration_config:
16
16
  T.any(
17
+ Dodopayments::IntegrationConfig::FeatureFlagConfig::OrHash,
17
18
  Dodopayments::IntegrationConfig::GitHubConfig::OrHash,
18
19
  Dodopayments::IntegrationConfig::DiscordConfig::OrHash,
19
20
  Dodopayments::IntegrationConfig::TelegramConfig::OrHash,
@@ -26,7 +27,7 @@ module Dodopayments
26
27
  integration_type: Dodopayments::EntitlementIntegrationType::OrSymbol,
27
28
  name: String,
28
29
  description: T.nilable(String),
29
- metadata: T::Hash[Symbol, String],
30
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
30
31
  request_options: Dodopayments::RequestOptions::OrHash
31
32
  ).returns(Dodopayments::Entitlement)
32
33
  end
@@ -67,6 +68,7 @@ module Dodopayments
67
68
  integration_config:
68
69
  T.nilable(
69
70
  T.any(
71
+ Dodopayments::IntegrationConfig::FeatureFlagConfig::OrHash,
70
72
  Dodopayments::IntegrationConfig::GitHubConfig::OrHash,
71
73
  Dodopayments::IntegrationConfig::DiscordConfig::OrHash,
72
74
  Dodopayments::IntegrationConfig::TelegramConfig::OrHash,
@@ -77,7 +79,8 @@ module Dodopayments
77
79
  Dodopayments::IntegrationConfig::LicenseKeyConfig::OrHash
78
80
  )
79
81
  ),
80
- metadata: T.nilable(T::Hash[Symbol, String]),
82
+ metadata:
83
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
81
84
  name: T.nilable(String),
82
85
  request_options: Dodopayments::RequestOptions::OrHash
83
86
  ).returns(Dodopayments::Entitlement)
@@ -88,7 +91,12 @@ module Dodopayments
88
91
  description: nil,
89
92
  # Integration-specific configuration supplied when creating or updating an
90
93
  # entitlement. The shape required matches the entitlement's `integration_type`.
94
+ #
95
+ # Untagged enum: variants are matched in order. `FeatureFlag` must precede
96
+ # `LicenseKey`, whose fields are all optional and would otherwise match a
97
+ # `feature_flag` config.
91
98
  integration_config: nil,
99
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
92
100
  metadata: nil,
93
101
  name: nil,
94
102
  request_options: {}
@@ -20,7 +20,7 @@ module Dodopayments
20
20
  discount_code: T.nilable(String),
21
21
  discount_codes: T.nilable(T::Array[String]),
22
22
  force_3ds: T.nilable(T::Boolean),
23
- metadata: T::Hash[Symbol, String],
23
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
24
24
  payment_link: T.nilable(T::Boolean),
25
25
  payment_method_id: T.nilable(String),
26
26
  redirect_immediately: T::Boolean,
@@ -38,7 +38,7 @@ module Dodopayments
38
38
  license_key_duration:
39
39
  T.nilable(Dodopayments::LicenseKeyDuration::OrHash),
40
40
  license_key_enabled: T.nilable(T::Boolean),
41
- metadata: T::Hash[Symbol, String],
41
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
42
42
  pricing_mode:
43
43
  T.nilable(Dodopayments::Products::PricingMode::OrSymbol),
44
44
  request_options: Dodopayments::RequestOptions::OrHash
@@ -131,7 +131,8 @@ module Dodopayments
131
131
  license_key_duration:
132
132
  T.nilable(Dodopayments::LicenseKeyDuration::OrHash),
133
133
  license_key_enabled: T.nilable(T::Boolean),
134
- metadata: T.nilable(T::Hash[Symbol, String]),
134
+ metadata:
135
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
135
136
  name: T.nilable(String),
136
137
  price:
137
138
  T.nilable(
@@ -8,7 +8,7 @@ module Dodopayments
8
8
  payment_id: String,
9
9
  items:
10
10
  T.nilable(T::Array[Dodopayments::RefundCreateParams::Item::OrHash]),
11
- metadata: T::Hash[Symbol, String],
11
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
12
12
  reason: T.nilable(String),
13
13
  request_options: Dodopayments::RequestOptions::OrHash
14
14
  ).returns(Dodopayments::Refund)
@@ -22,7 +22,7 @@ module Dodopayments
22
22
  discount_codes: T.nilable(T::Array[String]),
23
23
  force_3ds: T.nilable(T::Boolean),
24
24
  mandate_min_amount_inr_paise: T.nilable(Integer),
25
- metadata: T::Hash[Symbol, String],
25
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
26
26
  on_demand: T.nilable(Dodopayments::OnDemandSubscription::OrHash),
27
27
  one_time_product_cart:
28
28
  T.nilable(T::Array[Dodopayments::OneTimeProductCartItem::OrHash]),
@@ -150,7 +150,8 @@ module Dodopayments
150
150
  T.nilable(
151
151
  Dodopayments::SubscriptionUpdateParams::DisableOnDemand::OrHash
152
152
  ),
153
- metadata: T.nilable(T::Hash[Symbol, String]),
153
+ metadata:
154
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
154
155
  next_billing_date: T.nilable(Time),
155
156
  status: T.nilable(Dodopayments::SubscriptionStatus::OrSymbol),
156
157
  tax_id: T.nilable(String),
@@ -179,6 +180,7 @@ module Dodopayments
179
180
  customer_business_name: nil,
180
181
  customer_name: nil,
181
182
  disable_on_demand: nil,
183
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
182
184
  metadata: nil,
183
185
  next_billing_date: nil,
184
186
  status: nil,
@@ -251,7 +253,8 @@ module Dodopayments
251
253
  discount_codes: T.nilable(T::Array[String]),
252
254
  effective_at:
253
255
  Dodopayments::UpdateSubscriptionPlanReq::EffectiveAt::OrSymbol,
254
- metadata: T.nilable(T::Hash[Symbol, String]),
256
+ metadata:
257
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
255
258
  on_payment_failure:
256
259
  T.nilable(
257
260
  Dodopayments::UpdateSubscriptionPlanReq::OnPaymentFailure::OrSymbol
@@ -311,7 +314,8 @@ module Dodopayments
311
314
  T.nilable(
312
315
  Dodopayments::SubscriptionChargeParams::CustomerBalanceConfig::OrHash
313
316
  ),
314
- metadata: T.nilable(T::Hash[Symbol, String]),
317
+ metadata:
318
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
315
319
  product_currency: T.nilable(Dodopayments::Currency::OrSymbol),
316
320
  product_description: T.nilable(String),
317
321
  request_options: Dodopayments::RequestOptions::OrHash
@@ -355,7 +359,8 @@ module Dodopayments
355
359
  discount_codes: T.nilable(T::Array[String]),
356
360
  effective_at:
357
361
  Dodopayments::UpdateSubscriptionPlanReq::EffectiveAt::OrSymbol,
358
- metadata: T.nilable(T::Hash[Symbol, String]),
362
+ metadata:
363
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
359
364
  on_payment_failure:
360
365
  T.nilable(
361
366
  Dodopayments::UpdateSubscriptionPlanReq::OnPaymentFailure::OrSymbol
@@ -13,6 +13,7 @@ module Dodopayments
13
13
  allow_customer_editing_tax_id: bool,
14
14
  allow_customer_editing_zipcode: bool,
15
15
  allow_discount_code: bool,
16
+ allow_editing_addons: bool,
16
17
  allow_phone_number_collection: bool,
17
18
  allow_tax_id: bool,
18
19
  always_create_new_customer: bool,
@@ -65,6 +66,10 @@ module Dodopayments
65
66
 
66
67
  def allow_discount_code=: (bool) -> bool
67
68
 
69
+ attr_reader allow_editing_addons: bool?
70
+
71
+ def allow_editing_addons=: (bool) -> bool
72
+
68
73
  attr_reader allow_phone_number_collection: bool?
69
74
 
70
75
  def allow_phone_number_collection=: (bool) -> bool
@@ -97,6 +102,7 @@ module Dodopayments
97
102
  ?allow_customer_editing_tax_id: bool,
98
103
  ?allow_customer_editing_zipcode: bool,
99
104
  ?allow_discount_code: bool,
105
+ ?allow_editing_addons: bool,
100
106
  ?allow_phone_number_collection: bool,
101
107
  ?allow_tax_id: bool,
102
108
  ?always_create_new_customer: bool,
@@ -116,6 +122,7 @@ module Dodopayments
116
122
  allow_customer_editing_tax_id: bool,
117
123
  allow_customer_editing_zipcode: bool,
118
124
  allow_discount_code: bool,
125
+ allow_editing_addons: bool,
119
126
  allow_phone_number_collection: bool,
120
127
  allow_tax_id: bool,
121
128
  always_create_new_customer: bool,
@@ -0,0 +1,98 @@
1
+ module Dodopayments
2
+ module Models
3
+ type customer_list_entitlement_grants_params =
4
+ {
5
+ customer_id: String,
6
+ integration_type: Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type,
7
+ page_number: Integer,
8
+ page_size: Integer,
9
+ status: Dodopayments::Models::CustomerListEntitlementGrantsParams::status
10
+ }
11
+ & Dodopayments::Internal::Type::request_parameters
12
+
13
+ class CustomerListEntitlementGrantsParams < Dodopayments::Internal::Type::BaseModel
14
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
15
+ include Dodopayments::Internal::Type::RequestParameters
16
+
17
+ attr_accessor customer_id: String
18
+
19
+ attr_reader integration_type: Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type?
20
+
21
+ def integration_type=: (
22
+ Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type
23
+ ) -> Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type
24
+
25
+ attr_reader page_number: Integer?
26
+
27
+ def page_number=: (Integer) -> Integer
28
+
29
+ attr_reader page_size: Integer?
30
+
31
+ def page_size=: (Integer) -> Integer
32
+
33
+ attr_reader status: Dodopayments::Models::CustomerListEntitlementGrantsParams::status?
34
+
35
+ def status=: (
36
+ Dodopayments::Models::CustomerListEntitlementGrantsParams::status
37
+ ) -> Dodopayments::Models::CustomerListEntitlementGrantsParams::status
38
+
39
+ def initialize: (
40
+ customer_id: String,
41
+ ?integration_type: Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type,
42
+ ?page_number: Integer,
43
+ ?page_size: Integer,
44
+ ?status: Dodopayments::Models::CustomerListEntitlementGrantsParams::status,
45
+ ?request_options: Dodopayments::request_opts
46
+ ) -> void
47
+
48
+ def to_hash: -> {
49
+ customer_id: String,
50
+ integration_type: Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type,
51
+ page_number: Integer,
52
+ page_size: Integer,
53
+ status: Dodopayments::Models::CustomerListEntitlementGrantsParams::status,
54
+ request_options: Dodopayments::RequestOptions
55
+ }
56
+
57
+ type integration_type =
58
+ :discord
59
+ | :telegram
60
+ | :github
61
+ | :figma
62
+ | :framer
63
+ | :notion
64
+ | :digital_files
65
+ | :license_key
66
+ | :feature_flag
67
+
68
+ module IntegrationType
69
+ extend Dodopayments::Internal::Type::Enum
70
+
71
+ DISCORD: :discord
72
+ TELEGRAM: :telegram
73
+ GITHUB: :github
74
+ FIGMA: :figma
75
+ FRAMER: :framer
76
+ NOTION: :notion
77
+ DIGITAL_FILES: :digital_files
78
+ LICENSE_KEY: :license_key
79
+ FEATURE_FLAG: :feature_flag
80
+
81
+ def self?.values: -> ::Array[Dodopayments::Models::CustomerListEntitlementGrantsParams::integration_type]
82
+ end
83
+
84
+ type status = :Pending | :Delivered | :Failed | :Revoked
85
+
86
+ module Status
87
+ extend Dodopayments::Internal::Type::Enum
88
+
89
+ PENDING: :Pending
90
+ DELIVERED: :Delivered
91
+ FAILED: :Failed
92
+ REVOKED: :Revoked
93
+
94
+ def self?.values: -> ::Array[Dodopayments::Models::CustomerListEntitlementGrantsParams::status]
95
+ end
96
+ end
97
+ end
98
+ end