dodopayments 2.8.0 → 2.9.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +4 -0
  5. data/lib/dodopayments/models/attach_product_entitlement.rb +22 -0
  6. data/lib/dodopayments/models/cancellation_feedback.rb +21 -0
  7. data/lib/dodopayments/models/checkout_session_flags.rb +12 -1
  8. data/lib/dodopayments/models/checkout_session_request.rb +14 -1
  9. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +1 -0
  10. data/lib/dodopayments/models/credit_overage_reset_webhook_event.rb +52 -0
  11. data/lib/dodopayments/models/customer_list_entitlements_params.rb +20 -0
  12. data/lib/dodopayments/models/customer_list_entitlements_response.rb +105 -0
  13. data/lib/dodopayments/models/digital_product_delivery.rb +13 -15
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +32 -8
  15. data/lib/dodopayments/models/entitlement.rb +86 -0
  16. data/lib/dodopayments/models/entitlement_create_params.rb +54 -0
  17. data/lib/dodopayments/models/entitlement_delete_params.rb +20 -0
  18. data/lib/dodopayments/models/entitlement_grant_created_webhook_event.rb +51 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +51 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +51 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +51 -0
  22. data/lib/dodopayments/models/entitlement_integration_type.rb +21 -0
  23. data/lib/dodopayments/models/entitlement_list_params.rb +55 -0
  24. data/lib/dodopayments/models/entitlement_retrieve_params.rb +20 -0
  25. data/lib/dodopayments/models/entitlement_update_params.rb +54 -0
  26. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +172 -0
  27. data/lib/dodopayments/models/entitlements/file_delete_params.rb +28 -0
  28. data/lib/dodopayments/models/entitlements/file_upload_params.rb +22 -0
  29. data/lib/dodopayments/models/entitlements/file_upload_response.rb +23 -0
  30. data/lib/dodopayments/models/entitlements/grant_list_params.rb +68 -0
  31. data/lib/dodopayments/models/entitlements/grant_revoke_params.rb +28 -0
  32. data/lib/dodopayments/models/entitlements/license_key_grant.rb +40 -0
  33. data/lib/dodopayments/models/integration_config.rb +174 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +238 -0
  35. data/lib/dodopayments/models/license_key_instance_list_params.rb +9 -1
  36. data/lib/dodopayments/models/one_time_product_cart_item.rb +15 -1
  37. data/lib/dodopayments/models/payment.rb +19 -3
  38. data/lib/dodopayments/models/payment_create_params.rb +23 -35
  39. data/lib/dodopayments/models/payment_create_response.rb +3 -33
  40. data/lib/dodopayments/models/product.rb +12 -217
  41. data/lib/dodopayments/models/product_create_params.rb +25 -6
  42. data/lib/dodopayments/models/product_entitlement_summary.rb +57 -0
  43. data/lib/dodopayments/models/product_list_response.rb +3 -218
  44. data/lib/dodopayments/models/product_update_params.rb +21 -7
  45. data/lib/dodopayments/models/scheduled_plan_change.rb +99 -0
  46. data/lib/dodopayments/models/subscription.rb +20 -102
  47. data/lib/dodopayments/models/subscription_create_params.rb +27 -37
  48. data/lib/dodopayments/models/subscription_create_response.rb +19 -3
  49. data/lib/dodopayments/models/subscription_list_response.rb +3 -103
  50. data/lib/dodopayments/models/subscription_update_params.rb +23 -1
  51. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +11 -1
  52. data/lib/dodopayments/models/unwrap_webhook_event.rb +11 -1
  53. data/lib/dodopayments/models/update_subscription_plan_req.rb +10 -1
  54. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  55. data/lib/dodopayments/models/webhook_payload.rb +2 -154
  56. data/lib/dodopayments/models.rb +40 -0
  57. data/lib/dodopayments/resources/checkout_sessions.rb +6 -2
  58. data/lib/dodopayments/resources/customers.rb +20 -0
  59. data/lib/dodopayments/resources/entitlements/files.rb +70 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +78 -0
  61. data/lib/dodopayments/resources/entitlements.rb +153 -0
  62. data/lib/dodopayments/resources/license_key_instances.rb +3 -1
  63. data/lib/dodopayments/resources/payments.rb +6 -2
  64. data/lib/dodopayments/resources/products.rb +4 -4
  65. data/lib/dodopayments/resources/subscriptions.rb +20 -5
  66. data/lib/dodopayments/resources/webhooks.rb +2 -2
  67. data/lib/dodopayments/version.rb +1 -1
  68. data/lib/dodopayments.rb +30 -0
  69. data/rbi/dodopayments/client.rbi +3 -0
  70. data/rbi/dodopayments/models/attach_product_entitlement.rbi +35 -0
  71. data/rbi/dodopayments/models/cancellation_feedback.rbi +45 -0
  72. data/rbi/dodopayments/models/checkout_session_flags.rbi +20 -3
  73. data/rbi/dodopayments/models/checkout_session_request.rbi +18 -0
  74. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +5 -0
  75. data/rbi/dodopayments/models/credit_overage_reset_webhook_event.rbi +103 -0
  76. data/rbi/dodopayments/models/customer_list_entitlements_params.rbi +38 -0
  77. data/rbi/dodopayments/models/customer_list_entitlements_response.rbi +189 -0
  78. data/rbi/dodopayments/models/digital_product_delivery.rbi +10 -22
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +40 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +112 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +112 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +103 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +103 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +102 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +103 -0
  87. data/rbi/dodopayments/models/entitlement_integration_type.rbi +44 -0
  88. data/rbi/dodopayments/models/entitlement_list_params.rbi +146 -0
  89. data/rbi/dodopayments/models/entitlement_retrieve_params.rbi +38 -0
  90. data/rbi/dodopayments/models/entitlement_update_params.rbi +111 -0
  91. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +235 -0
  92. data/rbi/dodopayments/models/entitlements/file_delete_params.rbi +48 -0
  93. data/rbi/dodopayments/models/entitlements/file_upload_params.rbi +40 -0
  94. data/rbi/dodopayments/models/entitlements/file_upload_response.rbi +34 -0
  95. data/rbi/dodopayments/models/entitlements/grant_list_params.rbi +145 -0
  96. data/rbi/dodopayments/models/entitlements/grant_revoke_params.rbi +48 -0
  97. data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +62 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +296 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +416 -0
  100. data/rbi/dodopayments/models/license_key_instance_list_params.rbi +8 -0
  101. data/rbi/dodopayments/models/one_time_product_cart_item.rbi +24 -3
  102. data/rbi/dodopayments/models/payment.rbi +31 -3
  103. data/rbi/dodopayments/models/payment_create_params.rbi +28 -56
  104. data/rbi/dodopayments/models/payment_create_response.rbi +3 -68
  105. data/rbi/dodopayments/models/product.rbi +12 -420
  106. data/rbi/dodopayments/models/product_create_params.rbi +43 -7
  107. data/rbi/dodopayments/models/product_entitlement_summary.rbi +88 -0
  108. data/rbi/dodopayments/models/product_list_response.rbi +3 -430
  109. data/rbi/dodopayments/models/product_update_params.rbi +35 -9
  110. data/rbi/dodopayments/models/scheduled_plan_change.rbi +141 -0
  111. data/rbi/dodopayments/models/subscription.rbi +24 -149
  112. data/rbi/dodopayments/models/subscription_create_params.rbi +36 -68
  113. data/rbi/dodopayments/models/subscription_create_response.rbi +47 -3
  114. data/rbi/dodopayments/models/subscription_list_response.rbi +4 -167
  115. data/rbi/dodopayments/models/subscription_update_params.rbi +27 -0
  116. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +5 -0
  117. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +5 -0
  118. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +10 -0
  119. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  120. data/rbi/dodopayments/models/webhook_payload.rbi +4 -197
  121. data/rbi/dodopayments/models.rbi +46 -0
  122. data/rbi/dodopayments/resources/checkout_sessions.rbi +16 -0
  123. data/rbi/dodopayments/resources/customers.rbi +14 -0
  124. data/rbi/dodopayments/resources/entitlements/files.rbi +52 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +65 -0
  126. data/rbi/dodopayments/resources/entitlements.rbi +143 -0
  127. data/rbi/dodopayments/resources/license_key_instances.rbi +3 -0
  128. data/rbi/dodopayments/resources/payments.rbi +10 -2
  129. data/rbi/dodopayments/resources/products.rbi +34 -7
  130. data/rbi/dodopayments/resources/subscriptions.rbi +31 -5
  131. data/rbi/dodopayments/resources/webhooks.rbi +10 -0
  132. data/sig/dodopayments/client.rbs +2 -0
  133. data/sig/dodopayments/models/attach_product_entitlement.rbs +13 -0
  134. data/sig/dodopayments/models/cancellation_feedback.rbs +28 -0
  135. data/sig/dodopayments/models/checkout_session_flags.rbs +10 -3
  136. data/sig/dodopayments/models/checkout_session_request.rbs +5 -0
  137. data/sig/dodopayments/models/credit_entitlements/credit_ledger_entry.rbs +2 -0
  138. data/sig/dodopayments/models/credit_overage_reset_webhook_event.rbs +45 -0
  139. data/sig/dodopayments/models/customer_list_entitlements_params.rbs +23 -0
  140. data/sig/dodopayments/models/customer_list_entitlements_response.rbs +95 -0
  141. data/sig/dodopayments/models/digital_product_delivery.rbs +5 -5
  142. data/sig/dodopayments/models/digital_product_delivery_file.rbs +32 -5
  143. data/sig/dodopayments/models/entitlement.rbs +67 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +46 -0
  145. data/sig/dodopayments/models/entitlement_delete_params.rbs +23 -0
  146. data/sig/dodopayments/models/entitlement_grant_created_webhook_event.rbs +45 -0
  147. data/sig/dodopayments/models/entitlement_grant_delivered_webhook_event.rbs +45 -0
  148. data/sig/dodopayments/models/entitlement_grant_failed_webhook_event.rbs +45 -0
  149. data/sig/dodopayments/models/entitlement_grant_revoked_webhook_event.rbs +45 -0
  150. data/sig/dodopayments/models/entitlement_integration_type.rbs +28 -0
  151. data/sig/dodopayments/models/entitlement_list_params.rbs +69 -0
  152. data/sig/dodopayments/models/entitlement_retrieve_params.rbs +23 -0
  153. data/sig/dodopayments/models/entitlement_update_params.rbs +46 -0
  154. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +134 -0
  155. data/sig/dodopayments/models/entitlements/file_delete_params.rbs +30 -0
  156. data/sig/dodopayments/models/entitlements/file_upload_params.rbs +25 -0
  157. data/sig/dodopayments/models/entitlements/file_upload_response.rbs +15 -0
  158. data/sig/dodopayments/models/entitlements/grant_list_params.rbs +71 -0
  159. data/sig/dodopayments/models/entitlements/grant_revoke_params.rbs +30 -0
  160. data/sig/dodopayments/models/entitlements/license_key_grant.rbs +37 -0
  161. data/sig/dodopayments/models/integration_config.rbs +147 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +206 -0
  163. data/sig/dodopayments/models/license_key_instance_list_params.rbs +10 -1
  164. data/sig/dodopayments/models/one_time_product_cart_item.rbs +14 -3
  165. data/sig/dodopayments/models/payment.rbs +16 -4
  166. data/sig/dodopayments/models/payment_create_params.rbs +16 -27
  167. data/sig/dodopayments/models/payment_create_response.rbs +4 -27
  168. data/sig/dodopayments/models/product.rbs +4 -205
  169. data/sig/dodopayments/models/product_create_params.rbs +4 -4
  170. data/sig/dodopayments/models/product_entitlement_summary.rbs +40 -0
  171. data/sig/dodopayments/models/product_list_response.rbs +4 -205
  172. data/sig/dodopayments/models/product_update_params.rbs +4 -4
  173. data/sig/dodopayments/models/scheduled_plan_change.rbs +73 -0
  174. data/sig/dodopayments/models/subscription.rbs +14 -74
  175. data/sig/dodopayments/models/subscription_create_params.rbs +16 -27
  176. data/sig/dodopayments/models/subscription_create_response.rbs +16 -4
  177. data/sig/dodopayments/models/subscription_list_response.rbs +4 -74
  178. data/sig/dodopayments/models/subscription_update_params.rbs +12 -0
  179. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -0
  180. data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -0
  181. data/sig/dodopayments/models/update_subscription_plan_req.rbs +5 -0
  182. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  183. data/sig/dodopayments/models/webhook_payload.rbs +8 -134
  184. data/sig/dodopayments/models.rbs +40 -0
  185. data/sig/dodopayments/resources/checkout_sessions.rbs +2 -0
  186. data/sig/dodopayments/resources/customers.rbs +5 -0
  187. data/sig/dodopayments/resources/entitlements/files.rbs +20 -0
  188. data/sig/dodopayments/resources/entitlements/grants.rbs +24 -0
  189. data/sig/dodopayments/resources/entitlements.rbs +46 -0
  190. data/sig/dodopayments/resources/license_key_instances.rbs +1 -0
  191. data/sig/dodopayments/resources/payments.rbs +3 -1
  192. data/sig/dodopayments/resources/products.rbs +2 -2
  193. data/sig/dodopayments/resources/subscriptions.rbs +7 -1
  194. data/sig/dodopayments/resources/webhooks.rbs +10 -0
  195. metadata +92 -2
@@ -0,0 +1,88 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class ProductEntitlementSummary < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::ProductEntitlementSummary,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ # Public-facing variant of [`IntegrationConfig`]. Mirrors every variant shape on
18
+ # the wire EXCEPT `DigitalFiles`, which is replaced with a hydrated
19
+ # `digital_files` object (resolved download URLs etc.). The persisted JSONB stays
20
+ # ID-only via [`IntegrationConfig`]; this enum is response-only.
21
+ sig { returns(Dodopayments::IntegrationConfigResponse::Variants) }
22
+ attr_accessor :integration_config
23
+
24
+ sig { returns(Dodopayments::EntitlementIntegrationType::TaggedSymbol) }
25
+ attr_accessor :integration_type
26
+
27
+ sig { returns(String) }
28
+ attr_accessor :name
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ attr_accessor :description
32
+
33
+ # Summary of an entitlement attached to a product.
34
+ #
35
+ # `integration_config` uses [`IntegrationConfigResponse`] (NOT the persisted
36
+ # [`IntegrationConfig`]) so digital_files entitlements embed the resolved
37
+ # `digital_files` object — matching what `GET /entitlements/{id}` returns. All
38
+ # other variants pass through unchanged via `#[serde(untagged)]`.
39
+ sig do
40
+ params(
41
+ id: String,
42
+ integration_config:
43
+ T.any(
44
+ Dodopayments::IntegrationConfigResponse::GitHubConfig::OrHash,
45
+ Dodopayments::IntegrationConfigResponse::DiscordConfig::OrHash,
46
+ Dodopayments::IntegrationConfigResponse::TelegramConfig::OrHash,
47
+ Dodopayments::IntegrationConfigResponse::FigmaConfig::OrHash,
48
+ Dodopayments::IntegrationConfigResponse::FramerConfig::OrHash,
49
+ Dodopayments::IntegrationConfigResponse::NotionConfig::OrHash,
50
+ Dodopayments::IntegrationConfigResponse::DigitalFilesConfig::OrHash,
51
+ Dodopayments::IntegrationConfigResponse::LicenseKeyConfig::OrHash
52
+ ),
53
+ integration_type: Dodopayments::EntitlementIntegrationType::OrSymbol,
54
+ name: String,
55
+ description: T.nilable(String)
56
+ ).returns(T.attached_class)
57
+ end
58
+ def self.new(
59
+ id:,
60
+ # Public-facing variant of [`IntegrationConfig`]. Mirrors every variant shape on
61
+ # the wire EXCEPT `DigitalFiles`, which is replaced with a hydrated
62
+ # `digital_files` object (resolved download URLs etc.). The persisted JSONB stays
63
+ # ID-only via [`IntegrationConfig`]; this enum is response-only.
64
+ integration_config:,
65
+ integration_type:,
66
+ name:,
67
+ description: nil
68
+ )
69
+ end
70
+
71
+ sig do
72
+ override.returns(
73
+ {
74
+ id: String,
75
+ integration_config:
76
+ Dodopayments::IntegrationConfigResponse::Variants,
77
+ integration_type:
78
+ Dodopayments::EntitlementIntegrationType::TaggedSymbol,
79
+ name: String,
80
+ description: T.nilable(String)
81
+ }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+ end
87
+ end
88
+ end
@@ -20,11 +20,7 @@ module Dodopayments
20
20
  attr_accessor :created_at
21
21
 
22
22
  # Entitlements linked to this product
23
- sig do
24
- returns(
25
- T::Array[Dodopayments::Models::ProductListResponse::Entitlement]
26
- )
27
- end
23
+ sig { returns(T::Array[Dodopayments::ProductEntitlementSummary]) }
28
24
  attr_accessor :entitlements
29
25
 
30
26
  # Indicates if the product is recurring (e.g., subscriptions).
@@ -89,9 +85,7 @@ module Dodopayments
89
85
  business_id: String,
90
86
  created_at: Time,
91
87
  entitlements:
92
- T::Array[
93
- Dodopayments::Models::ProductListResponse::Entitlement::OrHash
94
- ],
88
+ T::Array[Dodopayments::ProductEntitlementSummary::OrHash],
95
89
  is_recurring: T::Boolean,
96
90
  metadata: T::Hash[Symbol, String],
97
91
  product_id: String,
@@ -161,8 +155,7 @@ module Dodopayments
161
155
  {
162
156
  business_id: String,
163
157
  created_at: Time,
164
- entitlements:
165
- T::Array[Dodopayments::Models::ProductListResponse::Entitlement],
158
+ entitlements: T::Array[Dodopayments::ProductEntitlementSummary],
166
159
  is_recurring: T::Boolean,
167
160
  metadata: T::Hash[Symbol, String],
168
161
  product_id: String,
@@ -180,426 +173,6 @@ module Dodopayments
180
173
  end
181
174
  def to_hash
182
175
  end
183
-
184
- class Entitlement < Dodopayments::Internal::Type::BaseModel
185
- OrHash =
186
- T.type_alias do
187
- T.any(
188
- Dodopayments::Models::ProductListResponse::Entitlement,
189
- Dodopayments::Internal::AnyHash
190
- )
191
- end
192
-
193
- sig { returns(String) }
194
- attr_accessor :id
195
-
196
- # Platform-specific configuration for an entitlement. Each variant uses unique
197
- # field names so `#[serde(untagged)]` can disambiguate correctly.
198
- sig do
199
- returns(
200
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::Variants
201
- )
202
- end
203
- attr_accessor :integration_config
204
-
205
- sig do
206
- returns(
207
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
208
- )
209
- end
210
- attr_accessor :integration_type
211
-
212
- sig { returns(String) }
213
- attr_accessor :name
214
-
215
- sig { returns(T.nilable(String)) }
216
- attr_accessor :description
217
-
218
- # Summary of an entitlement attached to a product
219
- sig do
220
- params(
221
- id: String,
222
- integration_config:
223
- T.any(
224
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::GitHubConfig::OrHash,
225
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::DiscordConfig::OrHash,
226
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::TelegramConfig::OrHash,
227
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::FigmaConfig::OrHash,
228
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::FramerConfig::OrHash,
229
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::NotionConfig::OrHash,
230
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::DigitalFilesConfig::OrHash,
231
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::LicenseKeyConfig::OrHash
232
- ),
233
- integration_type:
234
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::OrSymbol,
235
- name: String,
236
- description: T.nilable(String)
237
- ).returns(T.attached_class)
238
- end
239
- def self.new(
240
- id:,
241
- # Platform-specific configuration for an entitlement. Each variant uses unique
242
- # field names so `#[serde(untagged)]` can disambiguate correctly.
243
- integration_config:,
244
- integration_type:,
245
- name:,
246
- description: nil
247
- )
248
- end
249
-
250
- sig do
251
- override.returns(
252
- {
253
- id: String,
254
- integration_config:
255
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::Variants,
256
- integration_type:
257
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol,
258
- name: String,
259
- description: T.nilable(String)
260
- }
261
- )
262
- end
263
- def to_hash
264
- end
265
-
266
- # Platform-specific configuration for an entitlement. Each variant uses unique
267
- # field names so `#[serde(untagged)]` can disambiguate correctly.
268
- module IntegrationConfig
269
- extend Dodopayments::Internal::Type::Union
270
-
271
- Variants =
272
- T.type_alias do
273
- T.any(
274
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::GitHubConfig,
275
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::DiscordConfig,
276
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::TelegramConfig,
277
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::FigmaConfig,
278
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::FramerConfig,
279
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::NotionConfig,
280
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::DigitalFilesConfig,
281
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::LicenseKeyConfig
282
- )
283
- end
284
-
285
- class GitHubConfig < Dodopayments::Internal::Type::BaseModel
286
- OrHash =
287
- T.type_alias do
288
- T.any(
289
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::GitHubConfig,
290
- Dodopayments::Internal::AnyHash
291
- )
292
- end
293
-
294
- # One of: pull, push, admin, maintain, triage
295
- sig { returns(String) }
296
- attr_accessor :permission
297
-
298
- sig { returns(String) }
299
- attr_accessor :target_id
300
-
301
- sig do
302
- params(permission: String, target_id: String).returns(
303
- T.attached_class
304
- )
305
- end
306
- def self.new(
307
- # One of: pull, push, admin, maintain, triage
308
- permission:,
309
- target_id:
310
- )
311
- end
312
-
313
- sig { override.returns({ permission: String, target_id: String }) }
314
- def to_hash
315
- end
316
- end
317
-
318
- class DiscordConfig < Dodopayments::Internal::Type::BaseModel
319
- OrHash =
320
- T.type_alias do
321
- T.any(
322
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::DiscordConfig,
323
- Dodopayments::Internal::AnyHash
324
- )
325
- end
326
-
327
- sig { returns(String) }
328
- attr_accessor :guild_id
329
-
330
- sig { returns(T.nilable(String)) }
331
- attr_accessor :role_id
332
-
333
- sig do
334
- params(guild_id: String, role_id: T.nilable(String)).returns(
335
- T.attached_class
336
- )
337
- end
338
- def self.new(guild_id:, role_id: nil)
339
- end
340
-
341
- sig do
342
- override.returns({ guild_id: String, role_id: T.nilable(String) })
343
- end
344
- def to_hash
345
- end
346
- end
347
-
348
- class TelegramConfig < Dodopayments::Internal::Type::BaseModel
349
- OrHash =
350
- T.type_alias do
351
- T.any(
352
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::TelegramConfig,
353
- Dodopayments::Internal::AnyHash
354
- )
355
- end
356
-
357
- sig { returns(String) }
358
- attr_accessor :chat_id
359
-
360
- sig { params(chat_id: String).returns(T.attached_class) }
361
- def self.new(chat_id:)
362
- end
363
-
364
- sig { override.returns({ chat_id: String }) }
365
- def to_hash
366
- end
367
- end
368
-
369
- class FigmaConfig < Dodopayments::Internal::Type::BaseModel
370
- OrHash =
371
- T.type_alias do
372
- T.any(
373
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::FigmaConfig,
374
- Dodopayments::Internal::AnyHash
375
- )
376
- end
377
-
378
- sig { returns(String) }
379
- attr_accessor :figma_file_id
380
-
381
- sig { params(figma_file_id: String).returns(T.attached_class) }
382
- def self.new(figma_file_id:)
383
- end
384
-
385
- sig { override.returns({ figma_file_id: String }) }
386
- def to_hash
387
- end
388
- end
389
-
390
- class FramerConfig < Dodopayments::Internal::Type::BaseModel
391
- OrHash =
392
- T.type_alias do
393
- T.any(
394
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::FramerConfig,
395
- Dodopayments::Internal::AnyHash
396
- )
397
- end
398
-
399
- sig { returns(String) }
400
- attr_accessor :framer_template_id
401
-
402
- sig { params(framer_template_id: String).returns(T.attached_class) }
403
- def self.new(framer_template_id:)
404
- end
405
-
406
- sig { override.returns({ framer_template_id: String }) }
407
- def to_hash
408
- end
409
- end
410
-
411
- class NotionConfig < Dodopayments::Internal::Type::BaseModel
412
- OrHash =
413
- T.type_alias do
414
- T.any(
415
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::NotionConfig,
416
- Dodopayments::Internal::AnyHash
417
- )
418
- end
419
-
420
- sig { returns(String) }
421
- attr_accessor :notion_template_id
422
-
423
- sig { params(notion_template_id: String).returns(T.attached_class) }
424
- def self.new(notion_template_id:)
425
- end
426
-
427
- sig { override.returns({ notion_template_id: String }) }
428
- def to_hash
429
- end
430
- end
431
-
432
- class DigitalFilesConfig < Dodopayments::Internal::Type::BaseModel
433
- OrHash =
434
- T.type_alias do
435
- T.any(
436
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::DigitalFilesConfig,
437
- Dodopayments::Internal::AnyHash
438
- )
439
- end
440
-
441
- sig { returns(T::Array[String]) }
442
- attr_accessor :digital_file_ids
443
-
444
- sig { returns(T.nilable(String)) }
445
- attr_accessor :external_url
446
-
447
- sig { returns(T.nilable(String)) }
448
- attr_accessor :instructions
449
-
450
- sig do
451
- params(
452
- digital_file_ids: T::Array[String],
453
- external_url: T.nilable(String),
454
- instructions: T.nilable(String)
455
- ).returns(T.attached_class)
456
- end
457
- def self.new(
458
- digital_file_ids:,
459
- external_url: nil,
460
- instructions: nil
461
- )
462
- end
463
-
464
- sig do
465
- override.returns(
466
- {
467
- digital_file_ids: T::Array[String],
468
- external_url: T.nilable(String),
469
- instructions: T.nilable(String)
470
- }
471
- )
472
- end
473
- def to_hash
474
- end
475
- end
476
-
477
- class LicenseKeyConfig < Dodopayments::Internal::Type::BaseModel
478
- OrHash =
479
- T.type_alias do
480
- T.any(
481
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::LicenseKeyConfig,
482
- Dodopayments::Internal::AnyHash
483
- )
484
- end
485
-
486
- sig { returns(T.nilable(String)) }
487
- attr_accessor :activation_message
488
-
489
- sig { returns(T.nilable(Integer)) }
490
- attr_accessor :activations_limit
491
-
492
- sig { returns(T.nilable(Integer)) }
493
- attr_accessor :duration_count
494
-
495
- sig { returns(T.nilable(String)) }
496
- attr_accessor :duration_interval
497
-
498
- sig do
499
- params(
500
- activation_message: T.nilable(String),
501
- activations_limit: T.nilable(Integer),
502
- duration_count: T.nilable(Integer),
503
- duration_interval: T.nilable(String)
504
- ).returns(T.attached_class)
505
- end
506
- def self.new(
507
- activation_message: nil,
508
- activations_limit: nil,
509
- duration_count: nil,
510
- duration_interval: nil
511
- )
512
- end
513
-
514
- sig do
515
- override.returns(
516
- {
517
- activation_message: T.nilable(String),
518
- activations_limit: T.nilable(Integer),
519
- duration_count: T.nilable(Integer),
520
- duration_interval: T.nilable(String)
521
- }
522
- )
523
- end
524
- def to_hash
525
- end
526
- end
527
-
528
- sig do
529
- override.returns(
530
- T::Array[
531
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationConfig::Variants
532
- ]
533
- )
534
- end
535
- def self.variants
536
- end
537
- end
538
-
539
- module IntegrationType
540
- extend Dodopayments::Internal::Type::Enum
541
-
542
- TaggedSymbol =
543
- T.type_alias do
544
- T.all(
545
- Symbol,
546
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType
547
- )
548
- end
549
- OrSymbol = T.type_alias { T.any(Symbol, String) }
550
-
551
- DISCORD =
552
- T.let(
553
- :discord,
554
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
555
- )
556
- TELEGRAM =
557
- T.let(
558
- :telegram,
559
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
560
- )
561
- GITHUB =
562
- T.let(
563
- :github,
564
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
565
- )
566
- FIGMA =
567
- T.let(
568
- :figma,
569
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
570
- )
571
- FRAMER =
572
- T.let(
573
- :framer,
574
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
575
- )
576
- NOTION =
577
- T.let(
578
- :notion,
579
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
580
- )
581
- DIGITAL_FILES =
582
- T.let(
583
- :digital_files,
584
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
585
- )
586
- LICENSE_KEY =
587
- T.let(
588
- :license_key,
589
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
590
- )
591
-
592
- sig do
593
- override.returns(
594
- T::Array[
595
- Dodopayments::Models::ProductListResponse::Entitlement::IntegrationType::TaggedSymbol
596
- ]
597
- )
598
- end
599
- def self.values
600
- end
601
- end
602
- end
603
176
  end
604
177
  end
605
178
  end
@@ -36,6 +36,8 @@ module Dodopayments
36
36
  attr_accessor :description
37
37
 
38
38
  # Choose how you would like you digital product delivered
39
+ #
40
+ # deprecated: use entitlements instead
39
41
  sig do
40
42
  returns(
41
43
  T.nilable(Dodopayments::ProductUpdateParams::DigitalProductDelivery)
@@ -53,10 +55,12 @@ module Dodopayments
53
55
  end
54
56
  attr_writer :digital_product_delivery
55
57
 
56
- # Entitlement IDs to attach (replaces all existing when present) Send empty array
57
- # to remove all, omit field to leave unchanged
58
- sig { returns(T.nilable(T::Array[String])) }
59
- attr_accessor :entitlement_ids
58
+ # Entitlements to attach (replaces all existing when present) Send empty array to
59
+ # remove all, omit field to leave unchanged
60
+ sig do
61
+ returns(T.nilable(T::Array[Dodopayments::AttachProductEntitlement]))
62
+ end
63
+ attr_accessor :entitlements
60
64
 
61
65
  # Product image id after its uploaded to S3
62
66
  sig { returns(T.nilable(String)) }
@@ -66,6 +70,8 @@ module Dodopayments
66
70
  #
67
71
  # Only applicable if `license_key_enabled` is `true`. This message contains
68
72
  # instructions for activating the license key.
73
+ #
74
+ # deprecated: use entitlements instead
69
75
  sig { returns(T.nilable(String)) }
70
76
  attr_accessor :license_key_activation_message
71
77
 
@@ -73,6 +79,8 @@ module Dodopayments
73
79
  #
74
80
  # Only applicable if `license_key_enabled` is `true`. Represents the maximum
75
81
  # number of times the license key can be activated.
82
+ #
83
+ # deprecated: use entitlements instead
76
84
  sig { returns(T.nilable(Integer)) }
77
85
  attr_accessor :license_key_activations_limit
78
86
 
@@ -80,6 +88,8 @@ module Dodopayments
80
88
  #
81
89
  # Only applicable if `license_key_enabled` is `true`. Represents the duration in
82
90
  # days for which the license key is valid.
91
+ #
92
+ # deprecated: use entitlements instead
83
93
  sig { returns(T.nilable(Dodopayments::LicenseKeyDuration)) }
84
94
  attr_reader :license_key_duration
85
95
 
@@ -95,6 +105,8 @@ module Dodopayments
95
105
  #
96
106
  # If `true`, additional fields related to license key (duration, activations
97
107
  # limit, activation message) become applicable.
108
+ #
109
+ # deprecated: use entitlements instead
98
110
  sig { returns(T.nilable(T::Boolean)) }
99
111
  attr_accessor :license_key_enabled
100
112
 
@@ -136,7 +148,8 @@ module Dodopayments
136
148
  T.nilable(
137
149
  Dodopayments::ProductUpdateParams::DigitalProductDelivery::OrHash
138
150
  ),
139
- entitlement_ids: T.nilable(T::Array[String]),
151
+ entitlements:
152
+ T.nilable(T::Array[Dodopayments::AttachProductEntitlement::OrHash]),
140
153
  image_id: T.nilable(String),
141
154
  license_key_activation_message: T.nilable(String),
142
155
  license_key_activations_limit: T.nilable(Integer),
@@ -168,31 +181,41 @@ module Dodopayments
168
181
  # Description of the product, optional and must be at most 1000 characters.
169
182
  description: nil,
170
183
  # Choose how you would like you digital product delivered
184
+ #
185
+ # deprecated: use entitlements instead
171
186
  digital_product_delivery: nil,
172
- # Entitlement IDs to attach (replaces all existing when present) Send empty array
173
- # to remove all, omit field to leave unchanged
174
- entitlement_ids: nil,
187
+ # Entitlements to attach (replaces all existing when present) Send empty array to
188
+ # remove all, omit field to leave unchanged
189
+ entitlements: nil,
175
190
  # Product image id after its uploaded to S3
176
191
  image_id: nil,
177
192
  # Message sent to the customer upon license key activation.
178
193
  #
179
194
  # Only applicable if `license_key_enabled` is `true`. This message contains
180
195
  # instructions for activating the license key.
196
+ #
197
+ # deprecated: use entitlements instead
181
198
  license_key_activation_message: nil,
182
199
  # Limit for the number of activations for the license key.
183
200
  #
184
201
  # Only applicable if `license_key_enabled` is `true`. Represents the maximum
185
202
  # number of times the license key can be activated.
203
+ #
204
+ # deprecated: use entitlements instead
186
205
  license_key_activations_limit: nil,
187
206
  # Duration of the license key if enabled.
188
207
  #
189
208
  # Only applicable if `license_key_enabled` is `true`. Represents the duration in
190
209
  # days for which the license key is valid.
210
+ #
211
+ # deprecated: use entitlements instead
191
212
  license_key_duration: nil,
192
213
  # Whether the product requires a license key.
193
214
  #
194
215
  # If `true`, additional fields related to license key (duration, activations
195
216
  # limit, activation message) become applicable.
217
+ #
218
+ # deprecated: use entitlements instead
196
219
  license_key_enabled: nil,
197
220
  # Additional metadata for the product
198
221
  metadata: nil,
@@ -219,7 +242,8 @@ module Dodopayments
219
242
  T.nilable(
220
243
  Dodopayments::ProductUpdateParams::DigitalProductDelivery
221
244
  ),
222
- entitlement_ids: T.nilable(T::Array[String]),
245
+ entitlements:
246
+ T.nilable(T::Array[Dodopayments::AttachProductEntitlement]),
223
247
  image_id: T.nilable(String),
224
248
  license_key_activation_message: T.nilable(String),
225
249
  license_key_activations_limit: T.nilable(Integer),
@@ -265,6 +289,8 @@ module Dodopayments
265
289
  attr_accessor :instructions
266
290
 
267
291
  # Choose how you would like you digital product delivered
292
+ #
293
+ # deprecated: use entitlements instead
268
294
  sig do
269
295
  params(
270
296
  external_url: T.nilable(String),