whop_sdk 0.0.3 → 0.0.4

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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +1 -1
  4. data/lib/whop_sdk/client.rb +4 -0
  5. data/lib/whop_sdk/models/app_build_create_params.rb +53 -29
  6. data/lib/whop_sdk/models/app_update_params.rb +53 -29
  7. data/lib/whop_sdk/models/checkout_configuration_create_params.rb +115 -39
  8. data/lib/whop_sdk/models/company.rb +13 -1
  9. data/lib/whop_sdk/models/company_create_params.rb +46 -0
  10. data/lib/whop_sdk/models/company_list_params.rb +62 -0
  11. data/lib/whop_sdk/models/company_list_response.rb +175 -0
  12. data/lib/whop_sdk/models/course_create_params.rb +75 -30
  13. data/lib/whop_sdk/models/course_lesson_update_params.rb +204 -83
  14. data/lib/whop_sdk/models/course_student_list_params.rb +62 -0
  15. data/lib/whop_sdk/models/course_student_list_response.rb +97 -0
  16. data/lib/whop_sdk/models/course_student_retrieve_params.rb +14 -0
  17. data/lib/whop_sdk/models/course_student_retrieve_response.rb +149 -0
  18. data/lib/whop_sdk/models/course_update_params.rb +51 -27
  19. data/lib/whop_sdk/models/experience_update_params.rb +53 -29
  20. data/lib/whop_sdk/models/forum_post_create_params.rb +51 -27
  21. data/lib/whop_sdk/models/forum_post_update_params.rb +51 -27
  22. data/lib/whop_sdk/models/invoice_create_params.rb +48 -32
  23. data/lib/whop_sdk/models/lesson.rb +16 -8
  24. data/lib/whop_sdk/models/message_create_params.rb +51 -27
  25. data/lib/whop_sdk/models/message_update_params.rb +51 -27
  26. data/lib/whop_sdk/models/payment.rb +10 -1
  27. data/lib/whop_sdk/models/payment_list_response.rb +10 -1
  28. data/lib/whop_sdk/models/payment_method_types.rb +2 -1
  29. data/lib/whop_sdk/models/plan.rb +48 -1
  30. data/lib/whop_sdk/models/plan_create_params.rb +97 -22
  31. data/lib/whop_sdk/models/plan_list_response.rb +51 -1
  32. data/lib/whop_sdk/models/plan_update_params.rb +97 -22
  33. data/lib/whop_sdk/models/product_update_params.rb +53 -29
  34. data/lib/whop_sdk/models/transfer.rb +9 -1
  35. data/lib/whop_sdk/models/transfer_create_params.rb +9 -1
  36. data/lib/whop_sdk/models/transfer_list_response.rb +9 -1
  37. data/lib/whop_sdk/models.rb +8 -0
  38. data/lib/whop_sdk/resources/app_builds.rb +1 -1
  39. data/lib/whop_sdk/resources/apps.rb +1 -1
  40. data/lib/whop_sdk/resources/checkout_configurations.rb +6 -6
  41. data/lib/whop_sdk/resources/companies.rb +70 -0
  42. data/lib/whop_sdk/resources/course_lesson_interactions.rb +2 -2
  43. data/lib/whop_sdk/resources/course_lessons.rb +7 -3
  44. data/lib/whop_sdk/resources/course_students.rb +76 -0
  45. data/lib/whop_sdk/resources/courses.rb +10 -3
  46. data/lib/whop_sdk/resources/experiences.rb +1 -1
  47. data/lib/whop_sdk/resources/forum_posts.rb +2 -2
  48. data/lib/whop_sdk/resources/invoices.rb +11 -11
  49. data/lib/whop_sdk/resources/messages.rb +2 -2
  50. data/lib/whop_sdk/resources/plans.rb +8 -4
  51. data/lib/whop_sdk/resources/products.rb +1 -1
  52. data/lib/whop_sdk/resources/transfers.rb +3 -1
  53. data/lib/whop_sdk/version.rb +1 -1
  54. data/lib/whop_sdk.rb +8 -1
  55. data/rbi/whop_sdk/client.rbi +3 -0
  56. data/rbi/whop_sdk/models/app_build_create_params.rbi +80 -40
  57. data/rbi/whop_sdk/models/app_update_params.rbi +86 -37
  58. data/rbi/whop_sdk/models/checkout_configuration_create_params.rbi +192 -64
  59. data/rbi/whop_sdk/models/company.rbi +10 -0
  60. data/rbi/whop_sdk/models/company_create_params.rbi +67 -0
  61. data/rbi/whop_sdk/models/company_list_params.rbi +83 -0
  62. data/rbi/whop_sdk/models/company_list_response.rbi +235 -0
  63. data/rbi/whop_sdk/models/course_create_params.rbi +104 -38
  64. data/rbi/whop_sdk/models/course_lesson_update_params.rbi +326 -114
  65. data/rbi/whop_sdk/models/course_student_list_params.rbi +83 -0
  66. data/rbi/whop_sdk/models/course_student_list_response.rbi +142 -0
  67. data/rbi/whop_sdk/models/course_student_retrieve_params.rbi +30 -0
  68. data/rbi/whop_sdk/models/course_student_retrieve_response.rbi +250 -0
  69. data/rbi/whop_sdk/models/course_update_params.rbi +84 -38
  70. data/rbi/whop_sdk/models/experience_update_params.rbi +84 -38
  71. data/rbi/whop_sdk/models/forum_post_create_params.rbi +85 -32
  72. data/rbi/whop_sdk/models/forum_post_update_params.rbi +85 -32
  73. data/rbi/whop_sdk/models/invoice_create_params.rbi +58 -44
  74. data/rbi/whop_sdk/models/lesson.rbi +14 -10
  75. data/rbi/whop_sdk/models/message_create_params.rbi +85 -32
  76. data/rbi/whop_sdk/models/message_update_params.rbi +85 -32
  77. data/rbi/whop_sdk/models/payment.rbi +10 -0
  78. data/rbi/whop_sdk/models/payment_list_response.rbi +10 -0
  79. data/rbi/whop_sdk/models/payment_method_types.rbi +3 -1
  80. data/rbi/whop_sdk/models/plan.rbi +82 -0
  81. data/rbi/whop_sdk/models/plan_create_params.rbi +174 -32
  82. data/rbi/whop_sdk/models/plan_list_response.rbi +94 -0
  83. data/rbi/whop_sdk/models/plan_update_params.rbi +174 -32
  84. data/rbi/whop_sdk/models/product_update_params.rbi +83 -39
  85. data/rbi/whop_sdk/models/transfer.rbi +8 -0
  86. data/rbi/whop_sdk/models/transfer_create_params.rbi +8 -0
  87. data/rbi/whop_sdk/models/transfer_list_response.rbi +8 -0
  88. data/rbi/whop_sdk/models.rbi +8 -0
  89. data/rbi/whop_sdk/resources/app_builds.rbi +5 -1
  90. data/rbi/whop_sdk/resources/apps.rbi +7 -1
  91. data/rbi/whop_sdk/resources/checkout_configurations.rbi +6 -7
  92. data/rbi/whop_sdk/resources/companies.rbi +63 -0
  93. data/rbi/whop_sdk/resources/course_lesson_interactions.rbi +2 -2
  94. data/rbi/whop_sdk/resources/course_lessons.rbi +21 -2
  95. data/rbi/whop_sdk/resources/course_students.rbi +65 -0
  96. data/rbi/whop_sdk/resources/courses.rbi +22 -2
  97. data/rbi/whop_sdk/resources/experiences.rbi +7 -1
  98. data/rbi/whop_sdk/resources/forum_posts.rbi +12 -2
  99. data/rbi/whop_sdk/resources/invoices.rbi +18 -18
  100. data/rbi/whop_sdk/resources/messages.rbi +12 -2
  101. data/rbi/whop_sdk/resources/plans.rbi +28 -2
  102. data/rbi/whop_sdk/resources/products.rbi +6 -1
  103. data/rbi/whop_sdk/resources/transfers.rbi +3 -0
  104. data/sig/whop_sdk/client.rbs +2 -0
  105. data/sig/whop_sdk/models/app_build_create_params.rbs +29 -10
  106. data/sig/whop_sdk/models/app_update_params.rbs +29 -10
  107. data/sig/whop_sdk/models/checkout_configuration_create_params.rbs +72 -21
  108. data/sig/whop_sdk/models/company.rbs +5 -0
  109. data/sig/whop_sdk/models/company_create_params.rbs +41 -0
  110. data/sig/whop_sdk/models/company_list_params.rbs +51 -0
  111. data/sig/whop_sdk/models/company_list_response.rbs +109 -0
  112. data/sig/whop_sdk/models/course_create_params.rbs +39 -10
  113. data/sig/whop_sdk/models/course_lesson_update_params.rbs +116 -30
  114. data/sig/whop_sdk/models/course_student_list_params.rbs +51 -0
  115. data/sig/whop_sdk/models/course_student_list_response.rbs +64 -0
  116. data/sig/whop_sdk/models/course_student_retrieve_params.rbs +15 -0
  117. data/sig/whop_sdk/models/course_student_retrieve_response.rbs +106 -0
  118. data/sig/whop_sdk/models/course_update_params.rbs +29 -10
  119. data/sig/whop_sdk/models/experience_update_params.rbs +29 -10
  120. data/sig/whop_sdk/models/forum_post_create_params.rbs +29 -10
  121. data/sig/whop_sdk/models/forum_post_update_params.rbs +29 -10
  122. data/sig/whop_sdk/models/invoice_create_params.rbs +28 -18
  123. data/sig/whop_sdk/models/lesson.rbs +8 -8
  124. data/sig/whop_sdk/models/message_create_params.rbs +29 -10
  125. data/sig/whop_sdk/models/message_update_params.rbs +29 -10
  126. data/sig/whop_sdk/models/payment.rbs +5 -0
  127. data/sig/whop_sdk/models/payment_list_response.rbs +5 -0
  128. data/sig/whop_sdk/models/payment_method_types.rbs +4 -2
  129. data/sig/whop_sdk/models/plan.rbs +32 -0
  130. data/sig/whop_sdk/models/plan_create_params.rbs +61 -10
  131. data/sig/whop_sdk/models/plan_list_response.rbs +32 -0
  132. data/sig/whop_sdk/models/plan_update_params.rbs +61 -10
  133. data/sig/whop_sdk/models/product_update_params.rbs +29 -10
  134. data/sig/whop_sdk/models/transfer.rbs +5 -0
  135. data/sig/whop_sdk/models/transfer_create_params.rbs +5 -0
  136. data/sig/whop_sdk/models/transfer_list_response.rbs +5 -0
  137. data/sig/whop_sdk/models.rbs +8 -0
  138. data/sig/whop_sdk/resources/app_builds.rbs +1 -1
  139. data/sig/whop_sdk/resources/apps.rbs +1 -1
  140. data/sig/whop_sdk/resources/checkout_configurations.rbs +2 -2
  141. data/sig/whop_sdk/resources/companies.rbs +18 -0
  142. data/sig/whop_sdk/resources/course_lessons.rbs +4 -2
  143. data/sig/whop_sdk/resources/course_students.rbs +22 -0
  144. data/sig/whop_sdk/resources/courses.rbs +4 -2
  145. data/sig/whop_sdk/resources/experiences.rbs +1 -1
  146. data/sig/whop_sdk/resources/forum_posts.rbs +2 -2
  147. data/sig/whop_sdk/resources/invoices.rbs +5 -5
  148. data/sig/whop_sdk/resources/messages.rbs +2 -2
  149. data/sig/whop_sdk/resources/plans.rbs +4 -2
  150. data/sig/whop_sdk/resources/products.rbs +1 -1
  151. data/sig/whop_sdk/resources/transfers.rbs +1 -0
  152. metadata +26 -5
  153. data/lib/whop_sdk/models/invoice_create_response.rb +0 -27
  154. data/rbi/whop_sdk/models/invoice_create_response.rbi +0 -49
  155. data/sig/whop_sdk/models/invoice_create_response.rbs +0 -19
@@ -34,13 +34,17 @@ module WhopSDK
34
34
  attr_accessor :expiration_days
35
35
 
36
36
  # An image for the plan. This will be visible on the product page to customers.
37
- sig { returns(T.nilable(WhopSDK::PlanUpdateParams::Image)) }
38
- attr_reader :image
39
-
40
37
  sig do
41
- params(image: T.nilable(WhopSDK::PlanUpdateParams::Image::OrHash)).void
38
+ returns(
39
+ T.nilable(
40
+ T.any(
41
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithDirectUploadID,
42
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithID
43
+ )
44
+ )
45
+ )
42
46
  end
43
- attr_writer :image
47
+ attr_accessor :image
44
48
 
45
49
  # An additional amount charged upon first purchase.
46
50
  sig { returns(T.nilable(Float)) }
@@ -59,6 +63,25 @@ module WhopSDK
59
63
  sig { returns(T.nilable(WhopSDK::TaxType::OrSymbol)) }
60
64
  attr_accessor :override_tax_type
61
65
 
66
+ # The explicit payment method configuration for the plan. If sent as null, the
67
+ # custom configuration will be removed.
68
+ sig do
69
+ returns(
70
+ T.nilable(WhopSDK::PlanUpdateParams::PaymentMethodConfiguration)
71
+ )
72
+ end
73
+ attr_reader :payment_method_configuration
74
+
75
+ sig do
76
+ params(
77
+ payment_method_configuration:
78
+ T.nilable(
79
+ WhopSDK::PlanUpdateParams::PaymentMethodConfiguration::OrHash
80
+ )
81
+ ).void
82
+ end
83
+ attr_writer :payment_method_configuration
84
+
62
85
  # The amount the customer is charged every billing period.
63
86
  sig { returns(T.nilable(Float)) }
64
87
  attr_accessor :renewal_price
@@ -101,11 +124,21 @@ module WhopSDK
101
124
  T.nilable(T::Array[WhopSDK::PlanUpdateParams::CustomField::OrHash]),
102
125
  description: T.nilable(String),
103
126
  expiration_days: T.nilable(Integer),
104
- image: T.nilable(WhopSDK::PlanUpdateParams::Image::OrHash),
127
+ image:
128
+ T.nilable(
129
+ T.any(
130
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithDirectUploadID::OrHash,
131
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithID::OrHash
132
+ )
133
+ ),
105
134
  initial_price: T.nilable(Float),
106
135
  internal_notes: T.nilable(String),
107
136
  offer_cancel_discount: T.nilable(T::Boolean),
108
137
  override_tax_type: T.nilable(WhopSDK::TaxType::OrSymbol),
138
+ payment_method_configuration:
139
+ T.nilable(
140
+ WhopSDK::PlanUpdateParams::PaymentMethodConfiguration::OrHash
141
+ ),
109
142
  renewal_price: T.nilable(Float),
110
143
  stock: T.nilable(Integer),
111
144
  strike_through_initial_price: T.nilable(Float),
@@ -139,6 +172,9 @@ module WhopSDK
139
172
  # Whether or not the tax is included in a plan's price (or if it hasn't been set
140
173
  # up)
141
174
  override_tax_type: nil,
175
+ # The explicit payment method configuration for the plan. If sent as null, the
176
+ # custom configuration will be removed.
177
+ payment_method_configuration: nil,
142
178
  # The amount the customer is charged every billing period.
143
179
  renewal_price: nil,
144
180
  # The number of units available for purchase.
@@ -170,11 +206,19 @@ module WhopSDK
170
206
  T.nilable(T::Array[WhopSDK::PlanUpdateParams::CustomField]),
171
207
  description: T.nilable(String),
172
208
  expiration_days: T.nilable(Integer),
173
- image: T.nilable(WhopSDK::PlanUpdateParams::Image),
209
+ image:
210
+ T.nilable(
211
+ T.any(
212
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithDirectUploadID,
213
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithID
214
+ )
215
+ ),
174
216
  initial_price: T.nilable(Float),
175
217
  internal_notes: T.nilable(String),
176
218
  offer_cancel_discount: T.nilable(T::Boolean),
177
219
  override_tax_type: T.nilable(WhopSDK::TaxType::OrSymbol),
220
+ payment_method_configuration:
221
+ T.nilable(WhopSDK::PlanUpdateParams::PaymentMethodConfiguration),
178
222
  renewal_price: T.nilable(Float),
179
223
  stock: T.nilable(Integer),
180
224
  strike_through_initial_price: T.nilable(Float),
@@ -265,46 +309,144 @@ module WhopSDK
265
309
  end
266
310
  end
267
311
 
268
- class Image < WhopSDK::Internal::Type::BaseModel
269
- OrHash =
312
+ # An image for the plan. This will be visible on the product page to customers.
313
+ module Image
314
+ extend WhopSDK::Internal::Type::Union
315
+
316
+ Variants =
270
317
  T.type_alias do
271
- T.any(WhopSDK::PlanUpdateParams::Image, WhopSDK::Internal::AnyHash)
318
+ T.any(
319
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithDirectUploadID,
320
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithID
321
+ )
272
322
  end
273
323
 
274
- # The ID of an existing attachment object. Use this when updating a resource and
275
- # keeping a subset of the attachments. Don't use this unless you know what you're
276
- # doing.
277
- sig { returns(T.nilable(String)) }
278
- attr_accessor :id
324
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
325
+ OrHash =
326
+ T.type_alias do
327
+ T.any(
328
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithDirectUploadID,
329
+ WhopSDK::Internal::AnyHash
330
+ )
331
+ end
279
332
 
280
- # This ID should be used the first time you upload an attachment. It is the ID of
281
- # the direct upload that was created when uploading the file to S3 via the
282
- # mediaDirectUpload mutation.
283
- sig { returns(T.nilable(String)) }
284
- attr_accessor :direct_upload_id
333
+ # This ID should be used the first time you upload an attachment. It is the ID of
334
+ # the direct upload that was created when uploading the file to S3 via the
335
+ # mediaDirectUpload mutation.
336
+ sig { returns(String) }
337
+ attr_accessor :direct_upload_id
338
+
339
+ # Input for an attachment
340
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
341
+ def self.new(
342
+ # This ID should be used the first time you upload an attachment. It is the ID of
343
+ # the direct upload that was created when uploading the file to S3 via the
344
+ # mediaDirectUpload mutation.
345
+ direct_upload_id:
346
+ )
347
+ end
348
+
349
+ sig { override.returns({ direct_upload_id: String }) }
350
+ def to_hash
351
+ end
352
+ end
353
+
354
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
355
+ OrHash =
356
+ T.type_alias do
357
+ T.any(
358
+ WhopSDK::PlanUpdateParams::Image::AttachmentInputWithID,
359
+ WhopSDK::Internal::AnyHash
360
+ )
361
+ end
362
+
363
+ # The ID of an existing attachment object. Use this when updating a resource and
364
+ # keeping a subset of the attachments. Don't use this unless you know what you're
365
+ # doing.
366
+ sig { returns(String) }
367
+ attr_accessor :id
368
+
369
+ # Input for an attachment
370
+ sig { params(id: String).returns(T.attached_class) }
371
+ def self.new(
372
+ # The ID of an existing attachment object. Use this when updating a resource and
373
+ # keeping a subset of the attachments. Don't use this unless you know what you're
374
+ # doing.
375
+ id:
376
+ )
377
+ end
378
+
379
+ sig { override.returns({ id: String }) }
380
+ def to_hash
381
+ end
382
+ end
285
383
 
286
- # An image for the plan. This will be visible on the product page to customers.
384
+ sig do
385
+ override.returns(T::Array[WhopSDK::PlanUpdateParams::Image::Variants])
386
+ end
387
+ def self.variants
388
+ end
389
+ end
390
+
391
+ class PaymentMethodConfiguration < WhopSDK::Internal::Type::BaseModel
392
+ OrHash =
393
+ T.type_alias do
394
+ T.any(
395
+ WhopSDK::PlanUpdateParams::PaymentMethodConfiguration,
396
+ WhopSDK::Internal::AnyHash
397
+ )
398
+ end
399
+
400
+ # An array of payment method identifiers that are explicitly disabled. Only
401
+ # applies if the include_platform_defaults is true.
402
+ sig { returns(T::Array[WhopSDK::PaymentMethodTypes::OrSymbol]) }
403
+ attr_accessor :disabled
404
+
405
+ # An array of payment method identifiers that are explicitly enabled. This means
406
+ # these payment methods will be shown on checkout. Example use case is to only
407
+ # enable a specific payment method like cashapp, or extending the platform
408
+ # defaults with additional methods.
409
+ sig { returns(T::Array[WhopSDK::PaymentMethodTypes::OrSymbol]) }
410
+ attr_accessor :enabled
411
+
412
+ # Whether Whop's platform default payment method enablement settings are included
413
+ # in this configuration. The full list of default payment methods can be found in
414
+ # the documentation at docs.whop.com/payments.
415
+ sig { returns(T::Boolean) }
416
+ attr_accessor :include_platform_defaults
417
+
418
+ # The explicit payment method configuration for the plan. If sent as null, the
419
+ # custom configuration will be removed.
287
420
  sig do
288
421
  params(
289
- id: T.nilable(String),
290
- direct_upload_id: T.nilable(String)
422
+ disabled: T::Array[WhopSDK::PaymentMethodTypes::OrSymbol],
423
+ enabled: T::Array[WhopSDK::PaymentMethodTypes::OrSymbol],
424
+ include_platform_defaults: T::Boolean
291
425
  ).returns(T.attached_class)
292
426
  end
293
427
  def self.new(
294
- # The ID of an existing attachment object. Use this when updating a resource and
295
- # keeping a subset of the attachments. Don't use this unless you know what you're
296
- # doing.
297
- id: nil,
298
- # This ID should be used the first time you upload an attachment. It is the ID of
299
- # the direct upload that was created when uploading the file to S3 via the
300
- # mediaDirectUpload mutation.
301
- direct_upload_id: nil
428
+ # An array of payment method identifiers that are explicitly disabled. Only
429
+ # applies if the include_platform_defaults is true.
430
+ disabled:,
431
+ # An array of payment method identifiers that are explicitly enabled. This means
432
+ # these payment methods will be shown on checkout. Example use case is to only
433
+ # enable a specific payment method like cashapp, or extending the platform
434
+ # defaults with additional methods.
435
+ enabled:,
436
+ # Whether Whop's platform default payment method enablement settings are included
437
+ # in this configuration. The full list of default payment methods can be found in
438
+ # the documentation at docs.whop.com/payments.
439
+ include_platform_defaults:
302
440
  )
303
441
  end
304
442
 
305
443
  sig do
306
444
  override.returns(
307
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
445
+ {
446
+ disabled: T::Array[WhopSDK::PaymentMethodTypes::OrSymbol],
447
+ enabled: T::Array[WhopSDK::PaymentMethodTypes::OrSymbol],
448
+ include_platform_defaults: T::Boolean
449
+ }
308
450
  )
309
451
  end
310
452
  def to_hash
@@ -12,16 +12,17 @@ module WhopSDK
12
12
  end
13
13
 
14
14
  # A banner image for the product in png, jpeg format
15
- sig { returns(T.nilable(WhopSDK::ProductUpdateParams::BannerImage)) }
16
- attr_reader :banner_image
17
-
18
15
  sig do
19
- params(
20
- banner_image:
21
- T.nilable(WhopSDK::ProductUpdateParams::BannerImage::OrHash)
22
- ).void
16
+ returns(
17
+ T.nilable(
18
+ T.any(
19
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithDirectUploadID,
20
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithID
21
+ )
22
+ )
23
+ )
23
24
  end
24
- attr_writer :banner_image
25
+ attr_accessor :banner_image
25
26
 
26
27
  # The different business types a company can be.
27
28
  sig { returns(T.nilable(WhopSDK::BusinessTypes::OrSymbol)) }
@@ -108,7 +109,12 @@ module WhopSDK
108
109
  sig do
109
110
  params(
110
111
  banner_image:
111
- T.nilable(WhopSDK::ProductUpdateParams::BannerImage::OrHash),
112
+ T.nilable(
113
+ T.any(
114
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithDirectUploadID::OrHash,
115
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithID::OrHash
116
+ )
117
+ ),
112
118
  business_type: T.nilable(WhopSDK::BusinessTypes::OrSymbol),
113
119
  collect_shipping_address: T.nilable(T::Boolean),
114
120
  custom_cta: T.nilable(WhopSDK::CustomCta::OrSymbol),
@@ -181,7 +187,13 @@ module WhopSDK
181
187
  sig do
182
188
  override.returns(
183
189
  {
184
- banner_image: T.nilable(WhopSDK::ProductUpdateParams::BannerImage),
190
+ banner_image:
191
+ T.nilable(
192
+ T.any(
193
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithDirectUploadID,
194
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithID
195
+ )
196
+ ),
185
197
  business_type: T.nilable(WhopSDK::BusinessTypes::OrSymbol),
186
198
  collect_shipping_address: T.nilable(T::Boolean),
187
199
  custom_cta: T.nilable(WhopSDK::CustomCta::OrSymbol),
@@ -210,52 +222,84 @@ module WhopSDK
210
222
  def to_hash
211
223
  end
212
224
 
213
- class BannerImage < WhopSDK::Internal::Type::BaseModel
214
- OrHash =
225
+ # A banner image for the product in png, jpeg format
226
+ module BannerImage
227
+ extend WhopSDK::Internal::Type::Union
228
+
229
+ Variants =
215
230
  T.type_alias do
216
231
  T.any(
217
- WhopSDK::ProductUpdateParams::BannerImage,
218
- WhopSDK::Internal::AnyHash
232
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithDirectUploadID,
233
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithID
219
234
  )
220
235
  end
221
236
 
222
- # The ID of an existing attachment object. Use this when updating a resource and
223
- # keeping a subset of the attachments. Don't use this unless you know what you're
224
- # doing.
225
- sig { returns(T.nilable(String)) }
226
- attr_accessor :id
237
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
238
+ OrHash =
239
+ T.type_alias do
240
+ T.any(
241
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithDirectUploadID,
242
+ WhopSDK::Internal::AnyHash
243
+ )
244
+ end
227
245
 
228
- # This ID should be used the first time you upload an attachment. It is the ID of
229
- # the direct upload that was created when uploading the file to S3 via the
230
- # mediaDirectUpload mutation.
231
- sig { returns(T.nilable(String)) }
232
- attr_accessor :direct_upload_id
246
+ # This ID should be used the first time you upload an attachment. It is the ID of
247
+ # the direct upload that was created when uploading the file to S3 via the
248
+ # mediaDirectUpload mutation.
249
+ sig { returns(String) }
250
+ attr_accessor :direct_upload_id
251
+
252
+ # Input for an attachment
253
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
254
+ def self.new(
255
+ # This ID should be used the first time you upload an attachment. It is the ID of
256
+ # the direct upload that was created when uploading the file to S3 via the
257
+ # mediaDirectUpload mutation.
258
+ direct_upload_id:
259
+ )
260
+ end
233
261
 
234
- # A banner image for the product in png, jpeg format
235
- sig do
236
- params(
237
- id: T.nilable(String),
238
- direct_upload_id: T.nilable(String)
239
- ).returns(T.attached_class)
262
+ sig { override.returns({ direct_upload_id: String }) }
263
+ def to_hash
264
+ end
240
265
  end
241
- def self.new(
266
+
267
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
268
+ OrHash =
269
+ T.type_alias do
270
+ T.any(
271
+ WhopSDK::ProductUpdateParams::BannerImage::AttachmentInputWithID,
272
+ WhopSDK::Internal::AnyHash
273
+ )
274
+ end
275
+
242
276
  # The ID of an existing attachment object. Use this when updating a resource and
243
277
  # keeping a subset of the attachments. Don't use this unless you know what you're
244
278
  # doing.
245
- id: nil,
246
- # This ID should be used the first time you upload an attachment. It is the ID of
247
- # the direct upload that was created when uploading the file to S3 via the
248
- # mediaDirectUpload mutation.
249
- direct_upload_id: nil
250
- )
279
+ sig { returns(String) }
280
+ attr_accessor :id
281
+
282
+ # Input for an attachment
283
+ sig { params(id: String).returns(T.attached_class) }
284
+ def self.new(
285
+ # The ID of an existing attachment object. Use this when updating a resource and
286
+ # keeping a subset of the attachments. Don't use this unless you know what you're
287
+ # doing.
288
+ id:
289
+ )
290
+ end
291
+
292
+ sig { override.returns({ id: String }) }
293
+ def to_hash
294
+ end
251
295
  end
252
296
 
253
297
  sig do
254
298
  override.returns(
255
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
299
+ T::Array[WhopSDK::ProductUpdateParams::BannerImage::Variants]
256
300
  )
257
301
  end
258
- def to_hash
302
+ def self.variants
259
303
  end
260
304
  end
261
305
 
@@ -34,6 +34,10 @@ module WhopSDK
34
34
  sig { returns(T.nilable(Float)) }
35
35
  attr_accessor :fee_amount
36
36
 
37
+ # A hash of metadata attached to the transfer
38
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
39
+ attr_accessor :metadata
40
+
37
41
  # The notes of the credit transaction transfer
38
42
  sig { returns(T.nilable(String)) }
39
43
  attr_accessor :notes
@@ -62,6 +66,7 @@ module WhopSDK
62
66
  ),
63
67
  destination_ledger_account_id: String,
64
68
  fee_amount: T.nilable(Float),
69
+ metadata: T.nilable(T::Hash[Symbol, T.anything]),
65
70
  notes: T.nilable(String),
66
71
  origin:
67
72
  T.nilable(
@@ -88,6 +93,8 @@ module WhopSDK
88
93
  destination_ledger_account_id:,
89
94
  # The decimal fee of the credit transaction transfer
90
95
  fee_amount:,
96
+ # A hash of metadata attached to the transfer
97
+ metadata:,
91
98
  # The notes of the credit transaction transfer
92
99
  notes:,
93
100
  # The sender of the credit transaction transfer
@@ -107,6 +114,7 @@ module WhopSDK
107
114
  destination: T.nilable(WhopSDK::Transfer::Destination::Variants),
108
115
  destination_ledger_account_id: String,
109
116
  fee_amount: T.nilable(Float),
117
+ metadata: T.nilable(T::Hash[Symbol, T.anything]),
110
118
  notes: T.nilable(String),
111
119
  origin: T.nilable(WhopSDK::Transfer::Origin::Variants),
112
120
  origin_ledger_account_id: String
@@ -33,6 +33,10 @@ module WhopSDK
33
33
  sig { returns(T.nilable(String)) }
34
34
  attr_accessor :idempotence_key
35
35
 
36
+ # A hash of metadata to attach to the transfer.
37
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
38
+ attr_accessor :metadata
39
+
36
40
  # Notes for the transfer. Maximum of 50 characters.
37
41
  sig { returns(T.nilable(String)) }
38
42
  attr_accessor :notes
@@ -44,6 +48,7 @@ module WhopSDK
44
48
  destination_id: String,
45
49
  origin_id: String,
46
50
  idempotence_key: T.nilable(String),
51
+ metadata: T.nilable(T::Hash[Symbol, T.anything]),
47
52
  notes: T.nilable(String),
48
53
  request_options: WhopSDK::RequestOptions::OrHash
49
54
  ).returns(T.attached_class)
@@ -61,6 +66,8 @@ module WhopSDK
61
66
  origin_id:,
62
67
  # A unique key to ensure idempotence. Use a UUID or similar.
63
68
  idempotence_key: nil,
69
+ # A hash of metadata to attach to the transfer.
70
+ metadata: nil,
64
71
  # Notes for the transfer. Maximum of 50 characters.
65
72
  notes: nil,
66
73
  request_options: {}
@@ -75,6 +82,7 @@ module WhopSDK
75
82
  destination_id: String,
76
83
  origin_id: String,
77
84
  idempotence_key: T.nilable(String),
85
+ metadata: T.nilable(T::Hash[Symbol, T.anything]),
78
86
  notes: T.nilable(String),
79
87
  request_options: WhopSDK::RequestOptions
80
88
  }
@@ -35,6 +35,10 @@ module WhopSDK
35
35
  sig { returns(T.nilable(Float)) }
36
36
  attr_accessor :fee_amount
37
37
 
38
+ # A hash of metadata attached to the transfer
39
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
40
+ attr_accessor :metadata
41
+
38
42
  # The notes of the credit transaction transfer
39
43
  sig { returns(T.nilable(String)) }
40
44
  attr_accessor :notes
@@ -52,6 +56,7 @@ module WhopSDK
52
56
  currency: WhopSDK::Currency::OrSymbol,
53
57
  destination_ledger_account_id: String,
54
58
  fee_amount: T.nilable(Float),
59
+ metadata: T.nilable(T::Hash[Symbol, T.anything]),
55
60
  notes: T.nilable(String),
56
61
  origin_ledger_account_id: String
57
62
  ).returns(T.attached_class)
@@ -69,6 +74,8 @@ module WhopSDK
69
74
  destination_ledger_account_id:,
70
75
  # The decimal fee of the credit transaction transfer
71
76
  fee_amount:,
77
+ # A hash of metadata attached to the transfer
78
+ metadata:,
72
79
  # The notes of the credit transaction transfer
73
80
  notes:,
74
81
  # The ID of the origin ledger account
@@ -85,6 +92,7 @@ module WhopSDK
85
92
  currency: WhopSDK::Currency::TaggedSymbol,
86
93
  destination_ledger_account_id: String,
87
94
  fee_amount: T.nilable(Float),
95
+ metadata: T.nilable(T::Hash[Symbol, T.anything]),
88
96
  notes: T.nilable(String),
89
97
  origin_ledger_account_id: String
90
98
  }
@@ -70,6 +70,10 @@ module WhopSDK
70
70
 
71
71
  Company = WhopSDK::Models::Company
72
72
 
73
+ CompanyCreateParams = WhopSDK::Models::CompanyCreateParams
74
+
75
+ CompanyListParams = WhopSDK::Models::CompanyListParams
76
+
73
77
  CompanyRetrieveParams = WhopSDK::Models::CompanyRetrieveParams
74
78
 
75
79
  Course = WhopSDK::Models::Course
@@ -118,6 +122,10 @@ module WhopSDK
118
122
 
119
123
  CourseRetrieveParams = WhopSDK::Models::CourseRetrieveParams
120
124
 
125
+ CourseStudentListParams = WhopSDK::Models::CourseStudentListParams
126
+
127
+ CourseStudentRetrieveParams = WhopSDK::Models::CourseStudentRetrieveParams
128
+
121
129
  CourseUpdateParams = WhopSDK::Models::CourseUpdateParams
122
130
 
123
131
  Currency = WhopSDK::Models::Currency
@@ -10,7 +10,11 @@ module WhopSDK
10
10
  # - `developer:manage_builds`
11
11
  sig do
12
12
  params(
13
- attachment: WhopSDK::AppBuildCreateParams::Attachment::OrHash,
13
+ attachment:
14
+ T.any(
15
+ WhopSDK::AppBuildCreateParams::Attachment::AttachmentInputWithDirectUploadID::OrHash,
16
+ WhopSDK::AppBuildCreateParams::Attachment::AttachmentInputWithID::OrHash
17
+ ),
14
18
  checksum: String,
15
19
  platform: WhopSDK::AppBuildPlatforms::OrSymbol,
16
20
  app_id: T.nilable(String),
@@ -57,7 +57,13 @@ module WhopSDK
57
57
  description: T.nilable(String),
58
58
  discover_path: T.nilable(String),
59
59
  experience_path: T.nilable(String),
60
- icon: T.nilable(WhopSDK::AppUpdateParams::Icon::OrHash),
60
+ icon:
61
+ T.nilable(
62
+ T.any(
63
+ WhopSDK::AppUpdateParams::Icon::AttachmentInputWithDirectUploadID::OrHash,
64
+ WhopSDK::AppUpdateParams::Icon::AttachmentInputWithID::OrHash
65
+ )
66
+ ),
61
67
  name: T.nilable(String),
62
68
  required_scopes:
63
69
  T.nilable(
@@ -13,24 +13,23 @@ module WhopSDK
13
13
  # - `access_pass:update`
14
14
  sig do
15
15
  params(
16
+ plan: WhopSDK::CheckoutConfigurationCreateParams::Plan::OrHash,
17
+ plan_id: String,
16
18
  affiliate_code: T.nilable(String),
17
19
  metadata: T.nilable(T::Hash[Symbol, T.anything]),
18
- plan:
19
- T.nilable(WhopSDK::CheckoutConfigurationCreateParams::Plan::OrHash),
20
- plan_id: T.nilable(String),
21
20
  redirect_url: T.nilable(String),
22
21
  request_options: WhopSDK::RequestOptions::OrHash
23
22
  ).returns(WhopSDK::CheckoutConfiguration)
24
23
  end
25
24
  def create(
25
+ # Pass this object to create a new plan for this checkout configuration
26
+ plan:,
27
+ # The ID of the plan to use for the checkout configuration
28
+ plan_id:,
26
29
  # The affiliate code to use for the checkout configuration
27
30
  affiliate_code: nil,
28
31
  # The metadata to use for the checkout configuration
29
32
  metadata: nil,
30
- # Pass this object to create a new plan for this checkout configuration
31
- plan: nil,
32
- # The ID of the plan to use for the checkout configuration
33
- plan_id: nil,
34
33
  # The URL to redirect the user to after the checkout configuration is created
35
34
  redirect_url: nil,
36
35
  request_options: {}