dodopayments 2.18.1 → 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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/models/checkout_session_request.rb +5 -3
  5. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +5 -3
  6. data/lib/dodopayments/models/credit_entitlements/balance_list_grants_response.rb +24 -3
  7. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +3 -3
  8. data/lib/dodopayments/models/customer.rb +3 -3
  9. data/lib/dodopayments/models/customer_create_params.rb +3 -3
  10. data/lib/dodopayments/models/customer_limited_details.rb +3 -3
  11. data/lib/dodopayments/models/customer_list_entitlement_grants_params.rb +85 -0
  12. data/lib/dodopayments/models/customer_update_params.rb +5 -3
  13. data/lib/dodopayments/models/discount.rb +4 -3
  14. data/lib/dodopayments/models/discount_create_params.rb +3 -3
  15. data/lib/dodopayments/models/discount_detail.rb +3 -3
  16. data/lib/dodopayments/models/discount_update_params.rb +5 -3
  17. data/lib/dodopayments/models/entitlement.rb +5 -5
  18. data/lib/dodopayments/models/entitlement_create_params.rb +5 -5
  19. data/lib/dodopayments/models/entitlement_integration_type.rb +1 -0
  20. data/lib/dodopayments/models/entitlement_list_params.rb +1 -0
  21. data/lib/dodopayments/models/entitlement_update_params.rb +12 -5
  22. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +13 -4
  23. data/lib/dodopayments/models/feature.rb +26 -0
  24. data/lib/dodopayments/models/feature_type.rb +15 -0
  25. data/lib/dodopayments/models/integration_config.rb +30 -1
  26. data/lib/dodopayments/models/integration_config_response.rb +22 -1
  27. data/lib/dodopayments/models/metadata.rb +15 -1
  28. data/lib/dodopayments/models/payment.rb +3 -3
  29. data/lib/dodopayments/models/payment_create_params.rb +3 -3
  30. data/lib/dodopayments/models/payment_create_response.rb +3 -3
  31. data/lib/dodopayments/models/payment_list_response.rb +4 -3
  32. data/lib/dodopayments/models/product.rb +3 -3
  33. data/lib/dodopayments/models/product_create_params.rb +3 -3
  34. data/lib/dodopayments/models/product_entitlement_summary.rb +2 -2
  35. data/lib/dodopayments/models/product_list_response.rb +3 -3
  36. data/lib/dodopayments/models/product_update_params.rb +5 -3
  37. data/lib/dodopayments/models/refund.rb +3 -3
  38. data/lib/dodopayments/models/refund_create_params.rb +3 -3
  39. data/lib/dodopayments/models/subscription.rb +3 -3
  40. data/lib/dodopayments/models/subscription_charge_params.rb +5 -3
  41. data/lib/dodopayments/models/subscription_create_params.rb +3 -3
  42. data/lib/dodopayments/models/subscription_create_response.rb +3 -3
  43. data/lib/dodopayments/models/subscription_list_response.rb +3 -3
  44. data/lib/dodopayments/models/subscription_update_params.rb +6 -3
  45. data/lib/dodopayments/models/update_subscription_plan_req.rb +5 -3
  46. data/lib/dodopayments/models.rb +8 -0
  47. data/lib/dodopayments/resources/checkout_sessions.rb +2 -2
  48. data/lib/dodopayments/resources/credit_entitlements/balances.rb +1 -1
  49. data/lib/dodopayments/resources/customers.rb +35 -2
  50. data/lib/dodopayments/resources/discounts.rb +2 -2
  51. data/lib/dodopayments/resources/entitlements.rb +4 -4
  52. data/lib/dodopayments/resources/payments.rb +1 -1
  53. data/lib/dodopayments/resources/products.rb +2 -2
  54. data/lib/dodopayments/resources/refunds.rb +1 -1
  55. data/lib/dodopayments/resources/subscriptions.rb +5 -5
  56. data/lib/dodopayments/version.rb +1 -1
  57. data/lib/dodopayments.rb +3 -0
  58. data/rbi/dodopayments/models/checkout_session_request.rbi +9 -3
  59. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +11 -3
  60. data/rbi/dodopayments/models/credit_entitlements/balance_list_grants_response.rbi +13 -3
  61. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +3 -3
  62. data/rbi/dodopayments/models/customer.rbi +12 -4
  63. data/rbi/dodopayments/models/customer_create_params.rbi +12 -4
  64. data/rbi/dodopayments/models/customer_limited_details.rbi +12 -4
  65. data/rbi/dodopayments/models/customer_list_entitlement_grants_params.rbi +229 -0
  66. data/rbi/dodopayments/models/customer_update_params.rbi +9 -3
  67. data/rbi/dodopayments/models/discount.rbi +5 -3
  68. data/rbi/dodopayments/models/discount_create_params.rbi +12 -4
  69. data/rbi/dodopayments/models/discount_detail.rbi +3 -3
  70. data/rbi/dodopayments/models/discount_update_params.rbi +9 -3
  71. data/rbi/dodopayments/models/entitlement.rbi +4 -3
  72. data/rbi/dodopayments/models/entitlement_create_params.rbi +15 -4
  73. data/rbi/dodopayments/models/entitlement_integration_type.rbi +5 -0
  74. data/rbi/dodopayments/models/entitlement_list_params.rbi +5 -0
  75. data/rbi/dodopayments/models/entitlement_update_params.rbi +22 -3
  76. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +16 -3
  77. data/rbi/dodopayments/models/feature.rbi +46 -0
  78. data/rbi/dodopayments/models/feature_type.rbi +21 -0
  79. data/rbi/dodopayments/models/integration_config.rbi +50 -0
  80. data/rbi/dodopayments/models/integration_config_response.rbi +44 -0
  81. data/rbi/dodopayments/models/metadata.rbi +12 -1
  82. data/rbi/dodopayments/models/payment.rbi +3 -3
  83. data/rbi/dodopayments/models/payment_create_params.rbi +12 -4
  84. data/rbi/dodopayments/models/payment_create_response.rbi +3 -3
  85. data/rbi/dodopayments/models/payment_list_response.rbi +5 -3
  86. data/rbi/dodopayments/models/product.rbi +3 -3
  87. data/rbi/dodopayments/models/product_create_params.rbi +12 -4
  88. data/rbi/dodopayments/models/product_entitlement_summary.rbi +1 -0
  89. data/rbi/dodopayments/models/product_list_response.rbi +3 -3
  90. data/rbi/dodopayments/models/product_update_params.rbi +9 -3
  91. data/rbi/dodopayments/models/refund.rbi +3 -3
  92. data/rbi/dodopayments/models/refund_create_params.rbi +12 -4
  93. data/rbi/dodopayments/models/subscription.rbi +3 -3
  94. data/rbi/dodopayments/models/subscription_charge_params.rbi +9 -3
  95. data/rbi/dodopayments/models/subscription_create_params.rbi +12 -4
  96. data/rbi/dodopayments/models/subscription_create_response.rbi +3 -3
  97. data/rbi/dodopayments/models/subscription_list_response.rbi +3 -3
  98. data/rbi/dodopayments/models/subscription_update_params.rbi +11 -3
  99. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +9 -3
  100. data/rbi/dodopayments/models.rbi +9 -0
  101. data/rbi/dodopayments/resources/checkout_sessions.rbi +4 -2
  102. data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +2 -1
  103. data/rbi/dodopayments/resources/customers.rbi +36 -2
  104. data/rbi/dodopayments/resources/discounts.rbi +3 -2
  105. data/rbi/dodopayments/resources/entitlements.rbi +10 -2
  106. data/rbi/dodopayments/resources/payments.rbi +1 -1
  107. data/rbi/dodopayments/resources/products.rbi +3 -2
  108. data/rbi/dodopayments/resources/refunds.rbi +1 -1
  109. data/rbi/dodopayments/resources/subscriptions.rbi +10 -5
  110. data/sig/dodopayments/models/customer_list_entitlement_grants_params.rbs +98 -0
  111. data/sig/dodopayments/models/entitlement_integration_type.rbs +2 -0
  112. data/sig/dodopayments/models/entitlement_list_params.rbs +2 -0
  113. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +5 -0
  114. data/sig/dodopayments/models/feature.rbs +22 -0
  115. data/sig/dodopayments/models/feature_type.rbs +13 -0
  116. data/sig/dodopayments/models/integration_config.rbs +21 -1
  117. data/sig/dodopayments/models/integration_config_response.rbs +21 -1
  118. data/sig/dodopayments/models/metadata.rbs +9 -1
  119. data/sig/dodopayments/models.rbs +8 -0
  120. data/sig/dodopayments/resources/customers.rbs +9 -0
  121. metadata +11 -2
@@ -76,10 +76,18 @@ module Dodopayments
76
76
 
77
77
  # Additional metadata associated with the payment. Defaults to empty if not
78
78
  # provided.
79
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
79
+ sig do
80
+ returns(
81
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
82
+ )
83
+ end
80
84
  attr_reader :metadata
81
85
 
82
- sig { params(metadata: T::Hash[Symbol, String]).void }
86
+ sig do
87
+ params(
88
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
89
+ ).void
90
+ end
83
91
  attr_writer :metadata
84
92
 
85
93
  # Whether to generate a payment link. Defaults to false if not specified.
@@ -147,7 +155,7 @@ module Dodopayments
147
155
  discount_code: T.nilable(String),
148
156
  discount_codes: T.nilable(T::Array[String]),
149
157
  force_3ds: T.nilable(T::Boolean),
150
- metadata: T::Hash[Symbol, String],
158
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
151
159
  payment_link: T.nilable(T::Boolean),
152
160
  payment_method_id: T.nilable(String),
153
161
  redirect_immediately: T::Boolean,
@@ -239,7 +247,7 @@ module Dodopayments
239
247
  discount_code: T.nilable(String),
240
248
  discount_codes: T.nilable(T::Array[String]),
241
249
  force_3ds: T.nilable(T::Boolean),
242
- metadata: T::Hash[Symbol, String],
250
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
243
251
  payment_link: T.nilable(T::Boolean),
244
252
  payment_method_id: T.nilable(String),
245
253
  redirect_immediately: T::Boolean,
@@ -26,7 +26,7 @@ module Dodopayments
26
26
  attr_writer :customer
27
27
 
28
28
  # Additional metadata associated with the payment
29
- sig { returns(T::Hash[Symbol, String]) }
29
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
30
30
  attr_accessor :metadata
31
31
 
32
32
  # Unique identifier for the payment
@@ -63,7 +63,7 @@ module Dodopayments
63
63
  params(
64
64
  client_secret: String,
65
65
  customer: Dodopayments::CustomerLimitedDetails::OrHash,
66
- metadata: T::Hash[Symbol, String],
66
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
67
67
  payment_id: String,
68
68
  total_amount: Integer,
69
69
  discount_id: T.nilable(String),
@@ -106,7 +106,7 @@ module Dodopayments
106
106
  {
107
107
  client_secret: String,
108
108
  customer: Dodopayments::CustomerLimitedDetails,
109
- metadata: T::Hash[Symbol, String],
109
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
110
110
  payment_id: String,
111
111
  total_amount: Integer,
112
112
  discount_id: T.nilable(String),
@@ -34,7 +34,8 @@ module Dodopayments
34
34
  sig { returns(T::Boolean) }
35
35
  attr_accessor :has_license_key
36
36
 
37
- sig { returns(T::Hash[Symbol, String]) }
37
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
38
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
38
39
  attr_accessor :metadata
39
40
 
40
41
  sig { returns(String) }
@@ -99,7 +100,7 @@ module Dodopayments
99
100
  customer: Dodopayments::CustomerLimitedDetails::OrHash,
100
101
  digital_products_delivered: T::Boolean,
101
102
  has_license_key: T::Boolean,
102
- metadata: T::Hash[Symbol, String],
103
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
103
104
  payment_id: String,
104
105
  payment_provider:
105
106
  Dodopayments::Models::PaymentListResponse::PaymentProvider::OrSymbol,
@@ -123,6 +124,7 @@ module Dodopayments
123
124
  customer:,
124
125
  digital_products_delivered:,
125
126
  has_license_key:,
127
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
126
128
  metadata:,
127
129
  payment_id:,
128
130
  # Which processor handled this payment. `stripe` / `adyen` for BYOP routes (the
@@ -158,7 +160,7 @@ module Dodopayments
158
160
  customer: Dodopayments::CustomerLimitedDetails,
159
161
  digital_products_delivered: T::Boolean,
160
162
  has_license_key: T::Boolean,
161
- metadata: T::Hash[Symbol, String],
163
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
162
164
  payment_id: String,
163
165
  payment_provider:
164
166
  Dodopayments::Models::PaymentListResponse::PaymentProvider::TaggedSymbol,
@@ -36,7 +36,7 @@ module Dodopayments
36
36
  attr_accessor :license_key_enabled
37
37
 
38
38
  # Additional custom data associated with the product
39
- sig { returns(T::Hash[Symbol, String]) }
39
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
40
40
  attr_accessor :metadata
41
41
 
42
42
  # Pricing information for the product.
@@ -126,7 +126,7 @@ module Dodopayments
126
126
  T::Array[Dodopayments::ProductEntitlementSummary::OrHash],
127
127
  is_recurring: T::Boolean,
128
128
  license_key_enabled: T::Boolean,
129
- metadata: T::Hash[Symbol, String],
129
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
130
130
  price:
131
131
  T.any(
132
132
  Dodopayments::Price::OneTimePrice::OrHash,
@@ -211,7 +211,7 @@ module Dodopayments
211
211
  entitlements: T::Array[Dodopayments::ProductEntitlementSummary],
212
212
  is_recurring: T::Boolean,
213
213
  license_key_enabled: T::Boolean,
214
- metadata: T::Hash[Symbol, String],
214
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
215
215
  price: Dodopayments::Price::Variants,
216
216
  product_id: String,
217
217
  tax_category: Dodopayments::TaxCategory::TaggedSymbol,
@@ -118,10 +118,18 @@ module Dodopayments
118
118
  attr_accessor :license_key_enabled
119
119
 
120
120
  # Additional metadata for the product
121
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
121
+ sig do
122
+ returns(
123
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
124
+ )
125
+ end
122
126
  attr_reader :metadata
123
127
 
124
- sig { params(metadata: T::Hash[Symbol, String]).void }
128
+ sig do
129
+ params(
130
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
131
+ ).void
132
+ end
125
133
  attr_writer :metadata
126
134
 
127
135
  # Pricing mode for localized pricing. When set, rules from
@@ -156,7 +164,7 @@ module Dodopayments
156
164
  license_key_duration:
157
165
  T.nilable(Dodopayments::LicenseKeyDuration::OrHash),
158
166
  license_key_enabled: T.nilable(T::Boolean),
159
- metadata: T::Hash[Symbol, String],
167
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
160
168
  pricing_mode:
161
169
  T.nilable(Dodopayments::Products::PricingMode::OrSymbol),
162
170
  request_options: Dodopayments::RequestOptions::OrHash
@@ -242,7 +250,7 @@ module Dodopayments
242
250
  license_key_activations_limit: T.nilable(Integer),
243
251
  license_key_duration: T.nilable(Dodopayments::LicenseKeyDuration),
244
252
  license_key_enabled: T.nilable(T::Boolean),
245
- metadata: T::Hash[Symbol, String],
253
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
246
254
  pricing_mode:
247
255
  T.nilable(Dodopayments::Products::PricingMode::OrSymbol),
248
256
  request_options: Dodopayments::RequestOptions
@@ -41,6 +41,7 @@ module Dodopayments
41
41
  id: String,
42
42
  integration_config:
43
43
  T.any(
44
+ Dodopayments::IntegrationConfigResponse::FeatureFlagConfig::OrHash,
44
45
  Dodopayments::IntegrationConfigResponse::GitHubConfig::OrHash,
45
46
  Dodopayments::IntegrationConfigResponse::DiscordConfig::OrHash,
46
47
  Dodopayments::IntegrationConfigResponse::TelegramConfig::OrHash,
@@ -28,7 +28,7 @@ module Dodopayments
28
28
  attr_accessor :is_recurring
29
29
 
30
30
  # Additional custom data associated with the product
31
- sig { returns(T::Hash[Symbol, String]) }
31
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
32
32
  attr_accessor :metadata
33
33
 
34
34
  # Unique identifier for the product.
@@ -94,7 +94,7 @@ module Dodopayments
94
94
  entitlements:
95
95
  T::Array[Dodopayments::ProductEntitlementSummary::OrHash],
96
96
  is_recurring: T::Boolean,
97
- metadata: T::Hash[Symbol, String],
97
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
98
98
  product_id: String,
99
99
  tax_category: Dodopayments::TaxCategory::OrSymbol,
100
100
  updated_at: Time,
@@ -169,7 +169,7 @@ module Dodopayments
169
169
  created_at: Time,
170
170
  entitlements: T::Array[Dodopayments::ProductEntitlementSummary],
171
171
  is_recurring: T::Boolean,
172
- metadata: T::Hash[Symbol, String],
172
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
173
173
  product_id: String,
174
174
  tax_category: Dodopayments::TaxCategory::TaggedSymbol,
175
175
  updated_at: Time,
@@ -111,7 +111,11 @@ module Dodopayments
111
111
  attr_accessor :license_key_enabled
112
112
 
113
113
  # Additional metadata for the product
114
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
114
+ sig do
115
+ returns(
116
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
117
+ )
118
+ end
115
119
  attr_accessor :metadata
116
120
 
117
121
  # Name of the product, optional and must be at most 100 characters.
@@ -162,7 +166,8 @@ module Dodopayments
162
166
  license_key_duration:
163
167
  T.nilable(Dodopayments::LicenseKeyDuration::OrHash),
164
168
  license_key_enabled: T.nilable(T::Boolean),
165
- metadata: T.nilable(T::Hash[Symbol, String]),
169
+ metadata:
170
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
166
171
  name: T.nilable(String),
167
172
  price:
168
173
  T.nilable(
@@ -261,7 +266,8 @@ module Dodopayments
261
266
  license_key_activations_limit: T.nilable(Integer),
262
267
  license_key_duration: T.nilable(Dodopayments::LicenseKeyDuration),
263
268
  license_key_enabled: T.nilable(T::Boolean),
264
- metadata: T.nilable(T::Hash[Symbol, String]),
269
+ metadata:
270
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
265
271
  name: T.nilable(String),
266
272
  price:
267
273
  T.nilable(
@@ -34,7 +34,7 @@ module Dodopayments
34
34
  attr_accessor :is_partial
35
35
 
36
36
  # Additional metadata stored with the refund.
37
- sig { returns(T::Hash[Symbol, String]) }
37
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
38
38
  attr_accessor :metadata
39
39
 
40
40
  # The unique identifier of the payment associated with the refund.
@@ -68,7 +68,7 @@ module Dodopayments
68
68
  created_at: Time,
69
69
  customer: Dodopayments::CustomerLimitedDetails::OrHash,
70
70
  is_partial: T::Boolean,
71
- metadata: T::Hash[Symbol, String],
71
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
72
72
  payment_id: String,
73
73
  refund_id: String,
74
74
  status: Dodopayments::RefundStatus::OrSymbol,
@@ -113,7 +113,7 @@ module Dodopayments
113
113
  created_at: Time,
114
114
  customer: Dodopayments::CustomerLimitedDetails,
115
115
  is_partial: T::Boolean,
116
- metadata: T::Hash[Symbol, String],
116
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
117
117
  payment_id: String,
118
118
  refund_id: String,
119
119
  status: Dodopayments::RefundStatus::TaggedSymbol,
@@ -25,10 +25,18 @@ module Dodopayments
25
25
  attr_accessor :items
26
26
 
27
27
  # Additional metadata associated with the refund.
28
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
28
+ sig do
29
+ returns(
30
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
31
+ )
32
+ end
29
33
  attr_reader :metadata
30
34
 
31
- sig { params(metadata: T::Hash[Symbol, String]).void }
35
+ sig do
36
+ params(
37
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
38
+ ).void
39
+ end
32
40
  attr_writer :metadata
33
41
 
34
42
  # The reason for the refund, if any. Maximum length is 3000 characters. Optional.
@@ -40,7 +48,7 @@ module Dodopayments
40
48
  payment_id: String,
41
49
  items:
42
50
  T.nilable(T::Array[Dodopayments::RefundCreateParams::Item::OrHash]),
43
- metadata: T::Hash[Symbol, String],
51
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
44
52
  reason: T.nilable(String),
45
53
  request_options: Dodopayments::RequestOptions::OrHash
46
54
  ).returns(T.attached_class)
@@ -63,7 +71,7 @@ module Dodopayments
63
71
  {
64
72
  payment_id: String,
65
73
  items: T.nilable(T::Array[Dodopayments::RefundCreateParams::Item]),
66
- metadata: T::Hash[Symbol, String],
74
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
67
75
  reason: T.nilable(String),
68
76
  request_options: Dodopayments::RequestOptions
69
77
  }
@@ -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),
@@ -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(