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
@@ -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
 
@@ -67,8 +67,10 @@ module Dodopayments
67
67
  # Metadata for the payment. If not passed, the metadata of the subscription will
68
68
  # be taken
69
69
  #
70
- # @return [Hash{Symbol=>String}, nil]
71
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
70
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
71
+ optional :metadata,
72
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
73
+ nil?: true
72
74
 
73
75
  # @!attribute on_payment_failure
74
76
  # Controls behavior when the plan change payment fails.
@@ -104,7 +106,7 @@ module Dodopayments
104
106
  #
105
107
  # @param effective_at [Symbol, Dodopayments::Models::UpdateSubscriptionPlanReq::EffectiveAt] When to apply the plan change.
106
108
  #
107
- # @param metadata [Hash{Symbol=>String}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
109
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
108
110
  #
109
111
  # @param on_payment_failure [Symbol, Dodopayments::Models::UpdateSubscriptionPlanReq::OnPaymentFailure, nil] Controls behavior when the plan change payment fails.
110
112
 
@@ -165,6 +165,8 @@ module Dodopayments
165
165
 
166
166
  CustomerListCreditEntitlementsParams = Dodopayments::Models::CustomerListCreditEntitlementsParams
167
167
 
168
+ CustomerListEntitlementGrantsParams = Dodopayments::Models::CustomerListEntitlementGrantsParams
169
+
168
170
  CustomerListEntitlementsParams = Dodopayments::Models::CustomerListEntitlementsParams
169
171
 
170
172
  CustomerListParams = Dodopayments::Models::CustomerListParams
@@ -263,6 +265,10 @@ module Dodopayments
263
265
 
264
266
  EventInput = Dodopayments::Models::EventInput
265
267
 
268
+ Feature = Dodopayments::Models::Feature
269
+
270
+ FeatureType = Dodopayments::Models::FeatureType
271
+
266
272
  FilterOperator = Dodopayments::Models::FilterOperator
267
273
 
268
274
  FilterType = Dodopayments::Models::FilterType
@@ -312,6 +318,8 @@ module Dodopayments
312
318
  # @type [Dodopayments::Internal::Type::Converter]
313
319
  Metadata = Dodopayments::Models::Metadata
314
320
 
321
+ MetadataItem = Dodopayments::Models::MetadataItem
322
+
315
323
  Meter = Dodopayments::Models::Meter
316
324
 
317
325
  MeterAggregation = Dodopayments::Models::MeterAggregation
@@ -38,7 +38,7 @@ module Dodopayments
38
38
  #
39
39
  # @param mandate_min_amount_inr_paise [Integer, nil] Override the merchant-level mandate floor (in INR paise) for INR
40
40
  #
41
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
41
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
42
42
  #
43
43
  # @param minimal_address [Boolean] If true, only zipcode is required when confirm is true; other address fields rem
44
44
  #
@@ -125,7 +125,7 @@ module Dodopayments
125
125
  #
126
126
  # @param mandate_min_amount_inr_paise [Integer, nil] Override the merchant-level mandate floor (in INR paise) for INR
127
127
  #
128
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
128
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
129
129
  #
130
130
  # @param minimal_address [Boolean] If true, only zipcode is required when confirm is true; other address fields rem
131
131
  #
@@ -144,7 +144,7 @@ module Dodopayments
144
144
  #
145
145
  # @param idempotency_key [String, nil] Body param: Idempotency key to prevent duplicate entries
146
146
  #
147
- # @param metadata [Hash{Symbol=>String}, nil] Body param: Optional metadata (max 50 key-value pairs, key max 40 chars, value m
147
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Body param: Optional metadata (max 50 key-value pairs, key max 40 chars, value m
148
148
  #
149
149
  # @param reason [String, nil] Body param: Human-readable reason for the entry
150
150
  #
@@ -15,7 +15,7 @@ module Dodopayments
15
15
  #
16
16
  # @param name [String]
17
17
  #
18
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the customer
18
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the customer
19
19
  #
20
20
  # @param phone_number [String, nil]
21
21
  #
@@ -59,7 +59,7 @@ module Dodopayments
59
59
  #
60
60
  # @param email [String, nil]
61
61
  #
62
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata for the customer
62
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata for the customer
63
63
  #
64
64
  # @param name [String, nil]
65
65
  #
@@ -158,6 +158,39 @@ module Dodopayments
158
158
  )
159
159
  end
160
160
 
161
+ # List all of a customer's entitlement grants across every entitlement. One row
162
+ # per grant.
163
+ #
164
+ # @overload list_entitlement_grants(customer_id, integration_type: nil, page_number: nil, page_size: nil, status: nil, request_options: {})
165
+ #
166
+ # @param customer_id [String] Customer ID
167
+ #
168
+ # @param integration_type [Symbol, Dodopayments::Models::CustomerListEntitlementGrantsParams::IntegrationType] Filter by integration type (e.g. `feature_flag`)
169
+ #
170
+ # @param page_number [Integer] Page number (default 0)
171
+ #
172
+ # @param page_size [Integer] Page size (default 10, max 100)
173
+ #
174
+ # @param status [Symbol, Dodopayments::Models::CustomerListEntitlementGrantsParams::Status] Filter by grant status
175
+ #
176
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
177
+ #
178
+ # @return [Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Entitlements::EntitlementGrant>]
179
+ #
180
+ # @see Dodopayments::Models::CustomerListEntitlementGrantsParams
181
+ def list_entitlement_grants(customer_id, params = {})
182
+ parsed, options = Dodopayments::CustomerListEntitlementGrantsParams.dump_request(params)
183
+ query = Dodopayments::Internal::Util.encode_query_params(parsed)
184
+ @client.request(
185
+ method: :get,
186
+ path: ["customers/%1$s/entitlement-grants", customer_id],
187
+ query: query,
188
+ page: Dodopayments::Internal::DefaultPageNumberPagination,
189
+ model: Dodopayments::Entitlements::EntitlementGrant,
190
+ options: options
191
+ )
192
+ end
193
+
161
194
  # List all entitlement grants delivered (or in flight) to a customer.
162
195
  #
163
196
  # @overload list_entitlements(customer_id, request_options: {})
@@ -19,7 +19,7 @@ module Dodopayments
19
19
  #
20
20
  # @param expires_at [Time, nil] When the discount expires, if ever.
21
21
  #
22
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the discount
22
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the discount
23
23
  #
24
24
  # @param name [String, nil]
25
25
  #
@@ -82,7 +82,7 @@ module Dodopayments
82
82
  #
83
83
  # @param expires_at [Time, nil]
84
84
  #
85
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata for the discount
85
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata for the discount
86
86
  #
87
87
  # @param name [String, nil]
88
88
  #
@@ -13,7 +13,7 @@ module Dodopayments
13
13
  #
14
14
  # @overload create(integration_config:, integration_type:, name:, description: nil, metadata: nil, request_options: {})
15
15
  #
16
- # @param integration_config [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig] Platform-specific configuration (validated per integration_type)
16
+ # @param integration_config [Dodopayments::Models::IntegrationConfig::FeatureFlagConfig, Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig] Platform-specific configuration (validated per integration_type)
17
17
  #
18
18
  # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType] Which platform integration this entitlement uses
19
19
  #
@@ -21,7 +21,7 @@ module Dodopayments
21
21
  #
22
22
  # @param description [String, nil] Optional description
23
23
  #
24
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the entitlement
24
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the entitlement
25
25
  #
26
26
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
27
27
  #
@@ -70,9 +70,9 @@ module Dodopayments
70
70
  #
71
71
  # @param description [String, nil]
72
72
  #
73
- # @param integration_config [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig, nil] Integration-specific configuration supplied when creating or updating
73
+ # @param integration_config [Dodopayments::Models::IntegrationConfig::FeatureFlagConfig, Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig, nil] Integration-specific configuration supplied when creating or updating
74
74
  #
75
- # @param metadata [Hash{Symbol=>String}, nil]
75
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
76
76
  #
77
77
  # @param name [String, nil]
78
78
  #
@@ -30,7 +30,7 @@ module Dodopayments
30
30
  #
31
31
  # @param force_3ds [Boolean, nil] Override merchant default 3DS behaviour for this payment
32
32
  #
33
- # @param metadata [Hash{Symbol=>String}] Additional metadata associated with the payment.
33
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata associated with the payment.
34
34
  #
35
35
  # @param payment_link [Boolean, nil] Whether to generate a payment link. Defaults to false if not specified.
36
36
  #
@@ -43,7 +43,7 @@ module Dodopayments
43
43
  #
44
44
  # @param license_key_enabled [Boolean, nil] When true, generates and sends a license key to your customer.
45
45
  #
46
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the product
46
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the product
47
47
  #
48
48
  # @param pricing_mode [Symbol, Dodopayments::Models::Products::PricingMode, nil] Pricing mode for localized pricing. When set, rules from
49
49
  #
@@ -110,7 +110,7 @@ module Dodopayments
110
110
  #
111
111
  # @param license_key_enabled [Boolean, nil] Whether the product requires a license key.
112
112
  #
113
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata for the product
113
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata for the product
114
114
  #
115
115
  # @param name [String, nil] Name of the product, optional and must be at most 100 characters.
116
116
  #
@@ -9,7 +9,7 @@ module Dodopayments
9
9
  #
10
10
  # @param items [Array<Dodopayments::Models::RefundCreateParams::Item>, nil] Partially Refund an Individual Item
11
11
  #
12
- # @param metadata [Hash{Symbol=>String}] Additional metadata associated with the refund.
12
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata associated with the refund.
13
13
  #
14
14
  # @param reason [String, nil] The reason for the refund, if any. Maximum length is 3000 characters. Optional.
15
15
  #
@@ -34,7 +34,7 @@ module Dodopayments
34
34
  #
35
35
  # @param mandate_min_amount_inr_paise [Integer, nil] Override the merchant-level mandate floor (in INR paise) for INR
36
36
  #
37
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the subscription
37
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the subscription
38
38
  #
39
39
  # @param on_demand [Dodopayments::Models::OnDemandSubscription, nil]
40
40
  #
@@ -117,7 +117,7 @@ module Dodopayments
117
117
  #
118
118
  # @param disable_on_demand [Dodopayments::Models::SubscriptionUpdateParams::DisableOnDemand, nil]
119
119
  #
120
- # @param metadata [Hash{Symbol=>String}, nil]
120
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
121
121
  #
122
122
  # @param next_billing_date [Time, nil]
123
123
  #
@@ -218,7 +218,7 @@ module Dodopayments
218
218
  #
219
219
  # @param effective_at [Symbol, Dodopayments::Models::UpdateSubscriptionPlanReq::EffectiveAt] When to apply the plan change.
220
220
  #
221
- # @param metadata [Hash{Symbol=>String}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
221
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
222
222
  #
223
223
  # @param on_payment_failure [Symbol, Dodopayments::Models::UpdateSubscriptionPlanReq::OnPaymentFailure, nil] Controls behavior when the plan change payment fails.
224
224
  #
@@ -251,7 +251,7 @@ module Dodopayments
251
251
  #
252
252
  # @param customer_balance_config [Dodopayments::Models::SubscriptionChargeParams::CustomerBalanceConfig, nil] Specify how customer balance is used for the payment
253
253
  #
254
- # @param metadata [Hash{Symbol=>String}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
254
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
255
255
  #
256
256
  # @param product_currency [Symbol, Dodopayments::Models::Currency, nil] Optional currency of the product price. If not specified, defaults to the curren
257
257
  #
@@ -296,7 +296,7 @@ module Dodopayments
296
296
  #
297
297
  # @param effective_at [Symbol, Dodopayments::Models::UpdateSubscriptionPlanReq::EffectiveAt] When to apply the plan change.
298
298
  #
299
- # @param metadata [Hash{Symbol=>String}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
299
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
300
300
  #
301
301
  # @param on_payment_failure [Symbol, Dodopayments::Models::UpdateSubscriptionPlanReq::OnPaymentFailure, nil] Controls behavior when the plan change payment fails.
302
302
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "2.18.0"
4
+ VERSION = "2.19.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -140,6 +140,7 @@ require_relative "dodopayments/models/customer_delete_payment_method_params"
140
140
  require_relative "dodopayments/models/customer_limited_details"
141
141
  require_relative "dodopayments/models/customer_list_credit_entitlements_params"
142
142
  require_relative "dodopayments/models/customer_list_credit_entitlements_response"
143
+ require_relative "dodopayments/models/customer_list_entitlement_grants_params"
143
144
  require_relative "dodopayments/models/customer_list_entitlements_params"
144
145
  require_relative "dodopayments/models/customer_list_entitlements_response"
145
146
  require_relative "dodopayments/models/customer_list_params"
@@ -204,6 +205,8 @@ require_relative "dodopayments/models/entitlements/license_key_grant"
204
205
  require_relative "dodopayments/models/entitlement_update_params"
205
206
  require_relative "dodopayments/models/event"
206
207
  require_relative "dodopayments/models/event_input"
208
+ require_relative "dodopayments/models/feature"
209
+ require_relative "dodopayments/models/feature_type"
207
210
  require_relative "dodopayments/models/filter_operator"
208
211
  require_relative "dodopayments/models/filter_type"
209
212
  require_relative "dodopayments/models/github_permission"
@@ -11,13 +11,18 @@ module Dodopayments
11
11
  sig { returns(String) }
12
12
  attr_accessor :addon_id
13
13
 
14
+ # Number of units of this addon.
14
15
  sig { returns(Integer) }
15
16
  attr_accessor :quantity
16
17
 
17
18
  sig do
18
19
  params(addon_id: String, quantity: Integer).returns(T.attached_class)
19
20
  end
20
- def self.new(addon_id:, quantity:)
21
+ def self.new(
22
+ addon_id:,
23
+ # Number of units of this addon.
24
+ quantity:
25
+ )
21
26
  end
22
27
 
23
28
  sig { override.returns({ addon_id: String, quantity: Integer }) }
@@ -90,6 +90,16 @@ module Dodopayments
90
90
  sig { params(allow_discount_code: T::Boolean).void }
91
91
  attr_writer :allow_discount_code
92
92
 
93
+ # If true, the customer can add or remove addons on a subscription product during
94
+ # checkout.
95
+ #
96
+ # Default is false
97
+ sig { returns(T.nilable(T::Boolean)) }
98
+ attr_reader :allow_editing_addons
99
+
100
+ sig { params(allow_editing_addons: T::Boolean).void }
101
+ attr_writer :allow_editing_addons
102
+
93
103
  # If phone number is collected from customer, set it to rue
94
104
  #
95
105
  # Default is true
@@ -150,6 +160,7 @@ module Dodopayments
150
160
  allow_customer_editing_tax_id: T::Boolean,
151
161
  allow_customer_editing_zipcode: T::Boolean,
152
162
  allow_discount_code: T::Boolean,
163
+ allow_editing_addons: T::Boolean,
153
164
  allow_phone_number_collection: T::Boolean,
154
165
  allow_tax_id: T::Boolean,
155
166
  always_create_new_customer: T::Boolean,
@@ -182,6 +193,11 @@ module Dodopayments
182
193
  #
183
194
  # Default is true
184
195
  allow_discount_code: nil,
196
+ # If true, the customer can add or remove addons on a subscription product during
197
+ # checkout.
198
+ #
199
+ # Default is false
200
+ allow_editing_addons: nil,
185
201
  # If phone number is collected from customer, set it to rue
186
202
  #
187
203
  # Default is true
@@ -221,6 +237,7 @@ module Dodopayments
221
237
  allow_customer_editing_tax_id: T::Boolean,
222
238
  allow_customer_editing_zipcode: T::Boolean,
223
239
  allow_discount_code: T::Boolean,
240
+ allow_editing_addons: T::Boolean,
224
241
  allow_phone_number_collection: T::Boolean,
225
242
  allow_tax_id: T::Boolean,
226
243
  always_create_new_customer: T::Boolean,
@@ -121,7 +121,11 @@ module Dodopayments
121
121
 
122
122
  # Additional metadata associated with the payment. Defaults to empty if not
123
123
  # provided.
124
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
124
+ sig do
125
+ returns(
126
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
127
+ )
128
+ end
125
129
  attr_accessor :metadata
126
130
 
127
131
  # If true, only zipcode is required when confirm is true; other address fields
@@ -199,7 +203,8 @@ module Dodopayments
199
203
  feature_flags: Dodopayments::CheckoutSessionFlags::OrHash,
200
204
  force_3ds: T.nilable(T::Boolean),
201
205
  mandate_min_amount_inr_paise: T.nilable(Integer),
202
- metadata: T.nilable(T::Hash[Symbol, String]),
206
+ metadata:
207
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
203
208
  minimal_address: T::Boolean,
204
209
  payment_method_id: T.nilable(String),
205
210
  product_collection_id: T.nilable(String),
@@ -305,7 +310,8 @@ module Dodopayments
305
310
  feature_flags: Dodopayments::CheckoutSessionFlags,
306
311
  force_3ds: T.nilable(T::Boolean),
307
312
  mandate_min_amount_inr_paise: T.nilable(Integer),
308
- metadata: T.nilable(T::Hash[Symbol, String]),
313
+ metadata:
314
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
309
315
  minimal_address: T::Boolean,
310
316
  payment_method_id: T.nilable(String),
311
317
  product_collection_id: T.nilable(String),
@@ -67,6 +67,7 @@ module Dodopayments
67
67
  sig { returns(T.nilable(Integer)) }
68
68
  attr_accessor :rollover_timeframe_count
69
69
 
70
+ # Unit of a duration count (e.g. license-key validity period).
70
71
  sig { returns(T.nilable(Dodopayments::TimeInterval::TaggedSymbol)) }
71
72
  attr_accessor :rollover_timeframe_interval
72
73
 
@@ -115,6 +116,7 @@ module Dodopayments
115
116
  price_per_unit: nil,
116
117
  rollover_percentage: nil,
117
118
  rollover_timeframe_count: nil,
119
+ # Unit of a duration count (e.g. license-key validity period).
118
120
  rollover_timeframe_interval: nil
119
121
  )
120
122
  end
@@ -70,6 +70,7 @@ module Dodopayments
70
70
  sig { returns(T.nilable(Integer)) }
71
71
  attr_accessor :rollover_timeframe_count
72
72
 
73
+ # Unit of a duration count (e.g. license-key validity period).
73
74
  sig { returns(T.nilable(Dodopayments::TimeInterval::TaggedSymbol)) }
74
75
  attr_accessor :rollover_timeframe_interval
75
76
 
@@ -124,6 +125,7 @@ module Dodopayments
124
125
  overage_limit: nil,
125
126
  rollover_percentage: nil,
126
127
  rollover_timeframe_count: nil,
128
+ # Unit of a duration count (e.g. license-key validity period).
127
129
  rollover_timeframe_interval: nil
128
130
  )
129
131
  end
@@ -41,7 +41,11 @@ module Dodopayments
41
41
 
42
42
  # Optional metadata (max 50 key-value pairs, key max 40 chars, value max 500
43
43
  # chars)
44
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
44
+ sig do
45
+ returns(
46
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
47
+ )
48
+ end
45
49
  attr_accessor :metadata
46
50
 
47
51
  # Human-readable reason for the entry
@@ -57,7 +61,8 @@ module Dodopayments
57
61
  Dodopayments::CreditEntitlements::LedgerEntryType::OrSymbol,
58
62
  expires_at: T.nilable(Time),
59
63
  idempotency_key: T.nilable(String),
60
- metadata: T.nilable(T::Hash[Symbol, String]),
64
+ metadata:
65
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
61
66
  reason: T.nilable(String),
62
67
  request_options: Dodopayments::RequestOptions::OrHash
63
68
  ).returns(T.attached_class)
@@ -92,7 +97,10 @@ module Dodopayments
92
97
  Dodopayments::CreditEntitlements::LedgerEntryType::OrSymbol,
93
98
  expires_at: T.nilable(Time),
94
99
  idempotency_key: T.nilable(String),
95
- metadata: T.nilable(T::Hash[Symbol, String]),
100
+ metadata:
101
+ T.nilable(
102
+ T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
103
+ ),
96
104
  reason: T.nilable(String),
97
105
  request_options: Dodopayments::RequestOptions
98
106
  }
@@ -52,7 +52,12 @@ module Dodopayments
52
52
  sig { returns(T.nilable(Time)) }
53
53
  attr_accessor :expires_at
54
54
 
55
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
55
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
56
+ sig do
57
+ returns(
58
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
59
+ )
60
+ end
56
61
  attr_accessor :metadata
57
62
 
58
63
  sig { returns(T.nilable(String)) }
@@ -77,7 +82,8 @@ module Dodopayments
77
82
  Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse::SourceType::OrSymbol,
78
83
  updated_at: Time,
79
84
  expires_at: T.nilable(Time),
80
- metadata: T.nilable(T::Hash[Symbol, String]),
85
+ metadata:
86
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]),
81
87
  parent_grant_id: T.nilable(String),
82
88
  source_id: T.nilable(String)
83
89
  ).returns(T.attached_class)
@@ -95,6 +101,7 @@ module Dodopayments
95
101
  source_type:,
96
102
  updated_at:,
97
103
  expires_at: nil,
104
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
98
105
  metadata: nil,
99
106
  parent_grant_id: nil,
100
107
  source_id: nil
@@ -117,7 +124,10 @@ module Dodopayments
117
124
  Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse::SourceType::TaggedSymbol,
118
125
  updated_at: Time,
119
126
  expires_at: T.nilable(Time),
120
- metadata: T.nilable(T::Hash[Symbol, String]),
127
+ metadata:
128
+ T.nilable(
129
+ T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
130
+ ),
121
131
  parent_grant_id: T.nilable(String),
122
132
  source_id: T.nilable(String)
123
133
  }
@@ -46,7 +46,7 @@ module Dodopayments
46
46
  # Metadata associated with the credit grant's source (the subscription or payment
47
47
  # created at checkout). Empty when the grant has no resolvable source (e.g.
48
48
  # credits granted directly via the API).
49
- sig { returns(T::Hash[Symbol, String]) }
49
+ sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
50
50
  attr_accessor :metadata
51
51
 
52
52
  sig { returns(String) }
@@ -87,7 +87,7 @@ module Dodopayments
87
87
  credit_entitlement_id: String,
88
88
  customer_id: String,
89
89
  is_credit: T::Boolean,
90
- metadata: T::Hash[Symbol, String],
90
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
91
91
  overage_after: String,
92
92
  overage_before: String,
93
93
  transaction_type:
@@ -137,7 +137,7 @@ module Dodopayments
137
137
  credit_entitlement_id: String,
138
138
  customer_id: String,
139
139
  is_credit: T::Boolean,
140
- metadata: T::Hash[Symbol, String],
140
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
141
141
  overage_after: String,
142
142
  overage_before: String,
143
143
  transaction_type:
@@ -24,10 +24,18 @@ module Dodopayments
24
24
  attr_accessor :name
25
25
 
26
26
  # Additional metadata for the customer
27
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
27
+ sig do
28
+ returns(
29
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
30
+ )
31
+ end
28
32
  attr_reader :metadata
29
33
 
30
- sig { params(metadata: T::Hash[Symbol, String]).void }
34
+ sig do
35
+ params(
36
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
37
+ ).void
38
+ end
31
39
  attr_writer :metadata
32
40
 
33
41
  sig { returns(T.nilable(String)) }
@@ -40,7 +48,7 @@ module Dodopayments
40
48
  customer_id: String,
41
49
  email: String,
42
50
  name: String,
43
- metadata: T::Hash[Symbol, String],
51
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
44
52
  phone_number: T.nilable(String)
45
53
  ).returns(T.attached_class)
46
54
  end
@@ -64,7 +72,7 @@ module Dodopayments
64
72
  customer_id: String,
65
73
  email: String,
66
74
  name: String,
67
- metadata: T::Hash[Symbol, String],
75
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
68
76
  phone_number: T.nilable(String)
69
77
  }
70
78
  )
@@ -21,10 +21,18 @@ module Dodopayments
21
21
  attr_accessor :name
22
22
 
23
23
  # Additional metadata for the customer
24
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
24
+ sig do
25
+ returns(
26
+ T.nilable(T::Hash[Symbol, Dodopayments::MetadataItem::Variants])
27
+ )
28
+ end
25
29
  attr_reader :metadata
26
30
 
27
- sig { params(metadata: T::Hash[Symbol, String]).void }
31
+ sig do
32
+ params(
33
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants]
34
+ ).void
35
+ end
28
36
  attr_writer :metadata
29
37
 
30
38
  sig { returns(T.nilable(String)) }
@@ -34,7 +42,7 @@ module Dodopayments
34
42
  params(
35
43
  email: String,
36
44
  name: String,
37
- metadata: T::Hash[Symbol, String],
45
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
38
46
  phone_number: T.nilable(String),
39
47
  request_options: Dodopayments::RequestOptions::OrHash
40
48
  ).returns(T.attached_class)
@@ -54,7 +62,7 @@ module Dodopayments
54
62
  {
55
63
  email: String,
56
64
  name: String,
57
- metadata: T::Hash[Symbol, String],
65
+ metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
58
66
  phone_number: T.nilable(String),
59
67
  request_options: Dodopayments::RequestOptions
60
68
  }