dodopayments 2.8.1 → 2.9.1

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 +19 -14
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +40 -9
  15. data/lib/dodopayments/models/entitlement.rb +97 -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 +56 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +56 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +56 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +56 -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 +190 -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 +45 -0
  33. data/lib/dodopayments/models/integration_config.rb +217 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +278 -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 +10 -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 +6 -153
  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 +63 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +76 -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 +16 -18
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +51 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +127 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +115 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +107 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +107 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +106 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +107 -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 +269 -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 +68 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +411 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +531 -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 +8 -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 +6 -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 +45 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +63 -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 +65 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +48 -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 +127 -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 +171 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +225 -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,411 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # Integration-specific configuration supplied when creating or updating an
6
+ # entitlement. The shape required matches the entitlement's `integration_type`.
7
+ module IntegrationConfig
8
+ extend Dodopayments::Internal::Type::Union
9
+
10
+ Variants =
11
+ T.type_alias do
12
+ T.any(
13
+ Dodopayments::IntegrationConfig::GitHubConfig,
14
+ Dodopayments::IntegrationConfig::DiscordConfig,
15
+ Dodopayments::IntegrationConfig::TelegramConfig,
16
+ Dodopayments::IntegrationConfig::FigmaConfig,
17
+ Dodopayments::IntegrationConfig::FramerConfig,
18
+ Dodopayments::IntegrationConfig::NotionConfig,
19
+ Dodopayments::IntegrationConfig::DigitalFilesConfig,
20
+ Dodopayments::IntegrationConfig::LicenseKeyConfig
21
+ )
22
+ end
23
+
24
+ class GitHubConfig < Dodopayments::Internal::Type::BaseModel
25
+ OrHash =
26
+ T.type_alias do
27
+ T.any(
28
+ Dodopayments::IntegrationConfig::GitHubConfig,
29
+ Dodopayments::Internal::AnyHash
30
+ )
31
+ end
32
+
33
+ # Permission to grant on the repository.
34
+ sig do
35
+ returns(
36
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::OrSymbol
37
+ )
38
+ end
39
+ attr_accessor :permission
40
+
41
+ # Repository or organisation slug to grant access to.
42
+ sig { returns(String) }
43
+ attr_accessor :target_id
44
+
45
+ sig do
46
+ params(
47
+ permission:
48
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::OrSymbol,
49
+ target_id: String
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ # Permission to grant on the repository.
54
+ permission:,
55
+ # Repository or organisation slug to grant access to.
56
+ target_id:
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ permission:
64
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::OrSymbol,
65
+ target_id: String
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ # Permission to grant on the repository.
73
+ module Permission
74
+ extend Dodopayments::Internal::Type::Enum
75
+
76
+ TaggedSymbol =
77
+ T.type_alias do
78
+ T.all(
79
+ Symbol,
80
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission
81
+ )
82
+ end
83
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
84
+
85
+ PULL =
86
+ T.let(
87
+ :pull,
88
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::TaggedSymbol
89
+ )
90
+ PUSH =
91
+ T.let(
92
+ :push,
93
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::TaggedSymbol
94
+ )
95
+ ADMIN =
96
+ T.let(
97
+ :admin,
98
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::TaggedSymbol
99
+ )
100
+ MAINTAIN =
101
+ T.let(
102
+ :maintain,
103
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::TaggedSymbol
104
+ )
105
+ TRIAGE =
106
+ T.let(
107
+ :triage,
108
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::TaggedSymbol
109
+ )
110
+
111
+ sig do
112
+ override.returns(
113
+ T::Array[
114
+ Dodopayments::IntegrationConfig::GitHubConfig::Permission::TaggedSymbol
115
+ ]
116
+ )
117
+ end
118
+ def self.values
119
+ end
120
+ end
121
+ end
122
+
123
+ class DiscordConfig < Dodopayments::Internal::Type::BaseModel
124
+ OrHash =
125
+ T.type_alias do
126
+ T.any(
127
+ Dodopayments::IntegrationConfig::DiscordConfig,
128
+ Dodopayments::Internal::AnyHash
129
+ )
130
+ end
131
+
132
+ # Discord guild (server) ID.
133
+ sig { returns(String) }
134
+ attr_accessor :guild_id
135
+
136
+ # Optional Discord role to assign within the guild.
137
+ sig { returns(T.nilable(String)) }
138
+ attr_accessor :role_id
139
+
140
+ sig do
141
+ params(guild_id: String, role_id: T.nilable(String)).returns(
142
+ T.attached_class
143
+ )
144
+ end
145
+ def self.new(
146
+ # Discord guild (server) ID.
147
+ guild_id:,
148
+ # Optional Discord role to assign within the guild.
149
+ role_id: nil
150
+ )
151
+ end
152
+
153
+ sig do
154
+ override.returns({ guild_id: String, role_id: T.nilable(String) })
155
+ end
156
+ def to_hash
157
+ end
158
+ end
159
+
160
+ class TelegramConfig < Dodopayments::Internal::Type::BaseModel
161
+ OrHash =
162
+ T.type_alias do
163
+ T.any(
164
+ Dodopayments::IntegrationConfig::TelegramConfig,
165
+ Dodopayments::Internal::AnyHash
166
+ )
167
+ end
168
+
169
+ # Telegram chat ID. For groups this is typically a negative integer.
170
+ sig { returns(String) }
171
+ attr_accessor :chat_id
172
+
173
+ sig { params(chat_id: String).returns(T.attached_class) }
174
+ def self.new(
175
+ # Telegram chat ID. For groups this is typically a negative integer.
176
+ chat_id:
177
+ )
178
+ end
179
+
180
+ sig { override.returns({ chat_id: String }) }
181
+ def to_hash
182
+ end
183
+ end
184
+
185
+ class FigmaConfig < Dodopayments::Internal::Type::BaseModel
186
+ OrHash =
187
+ T.type_alias do
188
+ T.any(
189
+ Dodopayments::IntegrationConfig::FigmaConfig,
190
+ Dodopayments::Internal::AnyHash
191
+ )
192
+ end
193
+
194
+ # Figma file identifier to grant access to.
195
+ sig { returns(String) }
196
+ attr_accessor :figma_file_id
197
+
198
+ sig { params(figma_file_id: String).returns(T.attached_class) }
199
+ def self.new(
200
+ # Figma file identifier to grant access to.
201
+ figma_file_id:
202
+ )
203
+ end
204
+
205
+ sig { override.returns({ figma_file_id: String }) }
206
+ def to_hash
207
+ end
208
+ end
209
+
210
+ class FramerConfig < Dodopayments::Internal::Type::BaseModel
211
+ OrHash =
212
+ T.type_alias do
213
+ T.any(
214
+ Dodopayments::IntegrationConfig::FramerConfig,
215
+ Dodopayments::Internal::AnyHash
216
+ )
217
+ end
218
+
219
+ # Framer template identifier to grant access to.
220
+ sig { returns(String) }
221
+ attr_accessor :framer_template_id
222
+
223
+ sig { params(framer_template_id: String).returns(T.attached_class) }
224
+ def self.new(
225
+ # Framer template identifier to grant access to.
226
+ framer_template_id:
227
+ )
228
+ end
229
+
230
+ sig { override.returns({ framer_template_id: String }) }
231
+ def to_hash
232
+ end
233
+ end
234
+
235
+ class NotionConfig < Dodopayments::Internal::Type::BaseModel
236
+ OrHash =
237
+ T.type_alias do
238
+ T.any(
239
+ Dodopayments::IntegrationConfig::NotionConfig,
240
+ Dodopayments::Internal::AnyHash
241
+ )
242
+ end
243
+
244
+ # Notion template identifier to grant access to.
245
+ sig { returns(String) }
246
+ attr_accessor :notion_template_id
247
+
248
+ sig { params(notion_template_id: String).returns(T.attached_class) }
249
+ def self.new(
250
+ # Notion template identifier to grant access to.
251
+ notion_template_id:
252
+ )
253
+ end
254
+
255
+ sig { override.returns({ notion_template_id: String }) }
256
+ def to_hash
257
+ end
258
+ end
259
+
260
+ class DigitalFilesConfig < Dodopayments::Internal::Type::BaseModel
261
+ OrHash =
262
+ T.type_alias do
263
+ T.any(
264
+ Dodopayments::IntegrationConfig::DigitalFilesConfig,
265
+ Dodopayments::Internal::AnyHash
266
+ )
267
+ end
268
+
269
+ # Files attached to this entitlement. Add files via
270
+ # `POST /entitlements/{id}/files` and remove them via
271
+ # `DELETE /entitlements/{id}/files/{file_id}`.
272
+ sig { returns(T::Array[String]) }
273
+ attr_accessor :digital_file_ids
274
+
275
+ # Optional external URL shown to the customer alongside the files.
276
+ sig { returns(T.nilable(String)) }
277
+ attr_accessor :external_url
278
+
279
+ # Optional human-readable delivery instructions shown to the customer alongside
280
+ # the files.
281
+ sig { returns(T.nilable(String)) }
282
+ attr_accessor :instructions
283
+
284
+ # Three-way patchable list of legacy file identifiers:
285
+ #
286
+ # - omitted → preserve the current value
287
+ # - `null` → clear
288
+ # - `[...]` → replace
289
+ #
290
+ # On create, an omitted field, an explicit `null`, or an empty array all result in
291
+ # no legacy files attached.
292
+ sig { returns(T.nilable(T::Array[String])) }
293
+ attr_accessor :legacy_file_ids
294
+
295
+ sig do
296
+ params(
297
+ digital_file_ids: T::Array[String],
298
+ external_url: T.nilable(String),
299
+ instructions: T.nilable(String),
300
+ legacy_file_ids: T.nilable(T::Array[String])
301
+ ).returns(T.attached_class)
302
+ end
303
+ def self.new(
304
+ # Files attached to this entitlement. Add files via
305
+ # `POST /entitlements/{id}/files` and remove them via
306
+ # `DELETE /entitlements/{id}/files/{file_id}`.
307
+ digital_file_ids:,
308
+ # Optional external URL shown to the customer alongside the files.
309
+ external_url: nil,
310
+ # Optional human-readable delivery instructions shown to the customer alongside
311
+ # the files.
312
+ instructions: nil,
313
+ # Three-way patchable list of legacy file identifiers:
314
+ #
315
+ # - omitted → preserve the current value
316
+ # - `null` → clear
317
+ # - `[...]` → replace
318
+ #
319
+ # On create, an omitted field, an explicit `null`, or an empty array all result in
320
+ # no legacy files attached.
321
+ legacy_file_ids: nil
322
+ )
323
+ end
324
+
325
+ sig do
326
+ override.returns(
327
+ {
328
+ digital_file_ids: T::Array[String],
329
+ external_url: T.nilable(String),
330
+ instructions: T.nilable(String),
331
+ legacy_file_ids: T.nilable(T::Array[String])
332
+ }
333
+ )
334
+ end
335
+ def to_hash
336
+ end
337
+ end
338
+
339
+ class LicenseKeyConfig < Dodopayments::Internal::Type::BaseModel
340
+ OrHash =
341
+ T.type_alias do
342
+ T.any(
343
+ Dodopayments::IntegrationConfig::LicenseKeyConfig,
344
+ Dodopayments::Internal::AnyHash
345
+ )
346
+ end
347
+
348
+ # Optional message displayed when a customer activates the license key (≤ 2500
349
+ # characters).
350
+ sig { returns(T.nilable(String)) }
351
+ attr_accessor :activation_message
352
+
353
+ # Maximum activations allowed per issued license key. Omit for unlimited.
354
+ sig { returns(T.nilable(Integer)) }
355
+ attr_accessor :activations_limit
356
+
357
+ # Validity duration of issued license keys. Provide both `duration_count` and
358
+ # `duration_interval` together for a fixed duration; omit both for non-expiring
359
+ # keys.
360
+ sig { returns(T.nilable(Integer)) }
361
+ attr_accessor :duration_count
362
+
363
+ # Unit of `duration_count`.
364
+ sig { returns(T.nilable(Dodopayments::TimeInterval::OrSymbol)) }
365
+ attr_accessor :duration_interval
366
+
367
+ sig do
368
+ params(
369
+ activation_message: T.nilable(String),
370
+ activations_limit: T.nilable(Integer),
371
+ duration_count: T.nilable(Integer),
372
+ duration_interval: T.nilable(Dodopayments::TimeInterval::OrSymbol)
373
+ ).returns(T.attached_class)
374
+ end
375
+ def self.new(
376
+ # Optional message displayed when a customer activates the license key (≤ 2500
377
+ # characters).
378
+ activation_message: nil,
379
+ # Maximum activations allowed per issued license key. Omit for unlimited.
380
+ activations_limit: nil,
381
+ # Validity duration of issued license keys. Provide both `duration_count` and
382
+ # `duration_interval` together for a fixed duration; omit both for non-expiring
383
+ # keys.
384
+ duration_count: nil,
385
+ # Unit of `duration_count`.
386
+ duration_interval: nil
387
+ )
388
+ end
389
+
390
+ sig do
391
+ override.returns(
392
+ {
393
+ activation_message: T.nilable(String),
394
+ activations_limit: T.nilable(Integer),
395
+ duration_count: T.nilable(Integer),
396
+ duration_interval: T.nilable(Dodopayments::TimeInterval::OrSymbol)
397
+ }
398
+ )
399
+ end
400
+ def to_hash
401
+ end
402
+ end
403
+
404
+ sig do
405
+ override.returns(T::Array[Dodopayments::IntegrationConfig::Variants])
406
+ end
407
+ def self.variants
408
+ end
409
+ end
410
+ end
411
+ end