whop_sdk 0.0.3 → 0.0.5

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 (267) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/README.md +1 -1
  4. data/lib/whop_sdk/client.rb +8 -0
  5. data/lib/whop_sdk/internal/transport/base_client.rb +7 -1
  6. data/lib/whop_sdk/internal/transport/pooled_net_requester.rb +6 -2
  7. data/lib/whop_sdk/models/access_level.rb +1 -1
  8. data/lib/whop_sdk/models/access_pass_type.rb +2 -1
  9. data/lib/whop_sdk/models/access_token_create_params.rb +67 -0
  10. data/lib/whop_sdk/models/access_token_create_response.rb +27 -0
  11. data/lib/whop_sdk/models/app_build_create_params.rb +53 -29
  12. data/lib/whop_sdk/models/app_update_params.rb +53 -29
  13. data/lib/whop_sdk/models/checkout_configuration_create_params.rb +119 -43
  14. data/lib/whop_sdk/models/company.rb +13 -1
  15. data/lib/whop_sdk/models/company_create_params.rb +46 -0
  16. data/lib/whop_sdk/models/company_list_params.rb +62 -0
  17. data/lib/whop_sdk/models/company_list_response.rb +175 -0
  18. data/lib/whop_sdk/models/course.rb +18 -1
  19. data/lib/whop_sdk/models/course_create_params.rb +94 -30
  20. data/lib/whop_sdk/models/course_lesson_create_params.rb +77 -1
  21. data/lib/whop_sdk/models/course_lesson_list_response.rb +43 -1
  22. data/lib/whop_sdk/models/course_lesson_update_params.rb +280 -83
  23. data/lib/whop_sdk/models/course_list_response.rb +18 -1
  24. data/lib/whop_sdk/models/course_student_list_params.rb +62 -0
  25. data/lib/whop_sdk/models/course_student_list_response.rb +97 -0
  26. data/lib/whop_sdk/models/course_student_retrieve_params.rb +14 -0
  27. data/lib/whop_sdk/models/course_student_retrieve_response.rb +149 -0
  28. data/lib/whop_sdk/models/course_update_params.rb +70 -28
  29. data/lib/whop_sdk/models/course_visibilities.rb +17 -0
  30. data/lib/whop_sdk/models/embed_type.rb +16 -0
  31. data/lib/whop_sdk/models/entry.rb +3 -3
  32. data/lib/whop_sdk/models/entry_list_response.rb +3 -3
  33. data/lib/whop_sdk/models/experience.rb +5 -6
  34. data/lib/whop_sdk/models/experience_update_params.rb +53 -29
  35. data/lib/whop_sdk/models/forum_post.rb +2 -2
  36. data/lib/whop_sdk/models/forum_post_create_params.rb +51 -27
  37. data/lib/whop_sdk/models/forum_post_list_response.rb +2 -2
  38. data/lib/whop_sdk/models/forum_post_update_params.rb +51 -27
  39. data/lib/whop_sdk/models/global_affiliate_status.rb +1 -1
  40. data/lib/whop_sdk/models/invoice_create_params.rb +50 -34
  41. data/lib/whop_sdk/models/invoice_list_params.rb +27 -40
  42. data/lib/whop_sdk/models/lesson.rb +59 -9
  43. data/lib/whop_sdk/models/member_list_params.rb +11 -11
  44. data/lib/whop_sdk/models/member_list_response.rb +3 -3
  45. data/lib/whop_sdk/models/member_retrieve_response.rb +3 -3
  46. data/lib/whop_sdk/models/membership_list_params.rb +9 -9
  47. data/lib/whop_sdk/models/message.rb +2 -2
  48. data/lib/whop_sdk/models/message_create_params.rb +51 -27
  49. data/lib/whop_sdk/models/message_list_response.rb +2 -2
  50. data/lib/whop_sdk/models/message_update_params.rb +51 -27
  51. data/lib/whop_sdk/models/payment.rb +13 -4
  52. data/lib/whop_sdk/models/payment_list_response.rb +13 -4
  53. data/lib/whop_sdk/models/payment_method_types.rb +2 -1
  54. data/lib/whop_sdk/models/plan.rb +54 -5
  55. data/lib/whop_sdk/models/plan_create_params.rb +99 -24
  56. data/lib/whop_sdk/models/plan_list_response.rb +57 -5
  57. data/lib/whop_sdk/models/plan_type.rb +1 -1
  58. data/lib/whop_sdk/models/plan_update_params.rb +97 -22
  59. data/lib/whop_sdk/models/product.rb +1 -1
  60. data/lib/whop_sdk/models/product_create_params.rb +6 -6
  61. data/lib/whop_sdk/models/product_list_item.rb +1 -1
  62. data/lib/whop_sdk/models/product_update_params.rb +57 -33
  63. data/lib/whop_sdk/models/promo_code.rb +3 -3
  64. data/lib/whop_sdk/models/promo_code_list_response.rb +3 -3
  65. data/lib/whop_sdk/models/transfer.rb +9 -1
  66. data/lib/whop_sdk/models/transfer_create_params.rb +9 -1
  67. data/lib/whop_sdk/models/transfer_list_response.rb +9 -1
  68. data/lib/whop_sdk/models.rb +14 -0
  69. data/lib/whop_sdk/resources/access_tokens.rb +46 -0
  70. data/lib/whop_sdk/resources/app_builds.rb +5 -3
  71. data/lib/whop_sdk/resources/apps.rb +4 -3
  72. data/lib/whop_sdk/resources/authorized_users.rb +2 -1
  73. data/lib/whop_sdk/resources/chat_channels.rb +9 -2
  74. data/lib/whop_sdk/resources/checkout_configurations.rb +8 -7
  75. data/lib/whop_sdk/resources/companies.rb +72 -1
  76. data/lib/whop_sdk/resources/course_chapters.rb +5 -3
  77. data/lib/whop_sdk/resources/course_lesson_interactions.rb +4 -3
  78. data/lib/whop_sdk/resources/course_lessons.rb +25 -7
  79. data/lib/whop_sdk/resources/course_students.rb +77 -0
  80. data/lib/whop_sdk/resources/courses.rb +24 -7
  81. data/lib/whop_sdk/resources/entries.rb +6 -3
  82. data/lib/whop_sdk/resources/experiences.rb +9 -7
  83. data/lib/whop_sdk/resources/forum_posts.rb +5 -4
  84. data/lib/whop_sdk/resources/forums.rb +3 -2
  85. data/lib/whop_sdk/resources/invoices.rb +22 -16
  86. data/lib/whop_sdk/resources/ledger_accounts.rb +6 -2
  87. data/lib/whop_sdk/resources/members.rb +6 -5
  88. data/lib/whop_sdk/resources/memberships.rb +10 -8
  89. data/lib/whop_sdk/resources/messages.rb +5 -4
  90. data/lib/whop_sdk/resources/payments.rb +7 -4
  91. data/lib/whop_sdk/resources/plans.rb +14 -8
  92. data/lib/whop_sdk/resources/products.rb +10 -8
  93. data/lib/whop_sdk/resources/promo_codes.rb +4 -2
  94. data/lib/whop_sdk/resources/reactions.rb +2 -1
  95. data/lib/whop_sdk/resources/reviews.rb +2 -1
  96. data/lib/whop_sdk/resources/shipments.rb +2 -1
  97. data/lib/whop_sdk/resources/support_channels.rb +2 -1
  98. data/lib/whop_sdk/resources/transfers.rb +5 -2
  99. data/lib/whop_sdk/resources/users.rb +9 -3
  100. data/lib/whop_sdk/version.rb +1 -1
  101. data/lib/whop_sdk.rb +14 -1
  102. data/manifest.yaml +1 -0
  103. data/rbi/whop_sdk/client.rbi +6 -0
  104. data/rbi/whop_sdk/internal/transport/base_client.rbi +5 -0
  105. data/rbi/whop_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  106. data/rbi/whop_sdk/internal/type/base_model.rbi +8 -4
  107. data/rbi/whop_sdk/models/access_level.rbi +1 -1
  108. data/rbi/whop_sdk/models/access_pass_type.rbi +2 -1
  109. data/rbi/whop_sdk/models/access_token_create_params.rbi +126 -0
  110. data/rbi/whop_sdk/models/access_token_create_response.rbi +37 -0
  111. data/rbi/whop_sdk/models/app_build_create_params.rbi +80 -40
  112. data/rbi/whop_sdk/models/app_update_params.rbi +86 -37
  113. data/rbi/whop_sdk/models/checkout_configuration_create_params.rbi +196 -68
  114. data/rbi/whop_sdk/models/company.rbi +10 -0
  115. data/rbi/whop_sdk/models/company_create_params.rbi +67 -0
  116. data/rbi/whop_sdk/models/company_list_params.rbi +83 -0
  117. data/rbi/whop_sdk/models/company_list_response.rbi +235 -0
  118. data/rbi/whop_sdk/models/course.rbi +21 -3
  119. data/rbi/whop_sdk/models/course_create_params.rbi +126 -38
  120. data/rbi/whop_sdk/models/course_lesson_create_params.rbi +126 -0
  121. data/rbi/whop_sdk/models/course_lesson_list_response.rbi +68 -0
  122. data/rbi/whop_sdk/models/course_lesson_update_params.rbi +449 -111
  123. data/rbi/whop_sdk/models/course_list_response.rbi +21 -3
  124. data/rbi/whop_sdk/models/course_student_list_params.rbi +83 -0
  125. data/rbi/whop_sdk/models/course_student_list_response.rbi +142 -0
  126. data/rbi/whop_sdk/models/course_student_retrieve_params.rbi +30 -0
  127. data/rbi/whop_sdk/models/course_student_retrieve_response.rbi +250 -0
  128. data/rbi/whop_sdk/models/course_update_params.rbi +104 -38
  129. data/rbi/whop_sdk/models/course_visibilities.rbi +23 -0
  130. data/rbi/whop_sdk/models/embed_type.rbi +20 -0
  131. data/rbi/whop_sdk/models/entry.rbi +3 -3
  132. data/rbi/whop_sdk/models/entry_list_response.rbi +3 -3
  133. data/rbi/whop_sdk/models/experience.rbi +7 -9
  134. data/rbi/whop_sdk/models/experience_update_params.rbi +84 -38
  135. data/rbi/whop_sdk/models/forum_post.rbi +2 -2
  136. data/rbi/whop_sdk/models/forum_post_create_params.rbi +85 -32
  137. data/rbi/whop_sdk/models/forum_post_list_response.rbi +2 -2
  138. data/rbi/whop_sdk/models/forum_post_update_params.rbi +85 -32
  139. data/rbi/whop_sdk/models/global_affiliate_status.rbi +1 -1
  140. data/rbi/whop_sdk/models/invoice_create_params.rbi +60 -46
  141. data/rbi/whop_sdk/models/invoice_list_params.rbi +26 -71
  142. data/rbi/whop_sdk/models/lesson.rbi +68 -10
  143. data/rbi/whop_sdk/models/member_list_params.rbi +10 -10
  144. data/rbi/whop_sdk/models/member_list_response.rbi +6 -6
  145. data/rbi/whop_sdk/models/member_retrieve_response.rbi +6 -6
  146. data/rbi/whop_sdk/models/membership_list_params.rbi +8 -8
  147. data/rbi/whop_sdk/models/message.rbi +2 -2
  148. data/rbi/whop_sdk/models/message_create_params.rbi +85 -32
  149. data/rbi/whop_sdk/models/message_list_response.rbi +2 -2
  150. data/rbi/whop_sdk/models/message_update_params.rbi +85 -32
  151. data/rbi/whop_sdk/models/payment.rbi +13 -3
  152. data/rbi/whop_sdk/models/payment_list_response.rbi +13 -3
  153. data/rbi/whop_sdk/models/payment_method_types.rbi +3 -1
  154. data/rbi/whop_sdk/models/plan.rbi +88 -4
  155. data/rbi/whop_sdk/models/plan_create_params.rbi +176 -34
  156. data/rbi/whop_sdk/models/plan_list_response.rbi +100 -4
  157. data/rbi/whop_sdk/models/plan_type.rbi +1 -1
  158. data/rbi/whop_sdk/models/plan_update_params.rbi +174 -32
  159. data/rbi/whop_sdk/models/product.rbi +1 -1
  160. data/rbi/whop_sdk/models/product_create_params.rbi +6 -6
  161. data/rbi/whop_sdk/models/product_list_item.rbi +1 -1
  162. data/rbi/whop_sdk/models/product_update_params.rbi +87 -43
  163. data/rbi/whop_sdk/models/promo_code.rbi +3 -3
  164. data/rbi/whop_sdk/models/promo_code_list_response.rbi +3 -3
  165. data/rbi/whop_sdk/models/transfer.rbi +8 -0
  166. data/rbi/whop_sdk/models/transfer_create_params.rbi +8 -0
  167. data/rbi/whop_sdk/models/transfer_list_response.rbi +8 -0
  168. data/rbi/whop_sdk/models.rbi +14 -0
  169. data/rbi/whop_sdk/resources/access_tokens.rbi +41 -0
  170. data/rbi/whop_sdk/resources/app_builds.rbi +15 -3
  171. data/rbi/whop_sdk/resources/apps.rbi +13 -2
  172. data/rbi/whop_sdk/resources/authorized_users.rbi +5 -1
  173. data/rbi/whop_sdk/resources/chat_channels.rbi +8 -1
  174. data/rbi/whop_sdk/resources/checkout_configurations.rbi +11 -8
  175. data/rbi/whop_sdk/resources/companies.rbi +68 -1
  176. data/rbi/whop_sdk/resources/course_chapters.rbi +11 -2
  177. data/rbi/whop_sdk/resources/course_lesson_interactions.rbi +7 -3
  178. data/rbi/whop_sdk/resources/course_lessons.rbi +62 -4
  179. data/rbi/whop_sdk/resources/course_students.rbi +69 -0
  180. data/rbi/whop_sdk/resources/courses.rbi +50 -4
  181. data/rbi/whop_sdk/resources/entries.rbi +15 -3
  182. data/rbi/whop_sdk/resources/experiences.rbi +21 -3
  183. data/rbi/whop_sdk/resources/forum_posts.rbi +18 -3
  184. data/rbi/whop_sdk/resources/forums.rbi +6 -1
  185. data/rbi/whop_sdk/resources/invoices.rbi +38 -23
  186. data/rbi/whop_sdk/resources/ledger_accounts.rbi +7 -2
  187. data/rbi/whop_sdk/resources/members.rbi +9 -5
  188. data/rbi/whop_sdk/resources/memberships.rbi +16 -5
  189. data/rbi/whop_sdk/resources/messages.rbi +18 -3
  190. data/rbi/whop_sdk/resources/payments.rbi +16 -3
  191. data/rbi/whop_sdk/resources/plans.rbi +40 -5
  192. data/rbi/whop_sdk/resources/products.rbi +21 -7
  193. data/rbi/whop_sdk/resources/promo_codes.rbi +10 -2
  194. data/rbi/whop_sdk/resources/reactions.rbi +5 -1
  195. data/rbi/whop_sdk/resources/reviews.rbi +5 -1
  196. data/rbi/whop_sdk/resources/shipments.rbi +5 -1
  197. data/rbi/whop_sdk/resources/support_channels.rbi +5 -1
  198. data/rbi/whop_sdk/resources/transfers.rbi +8 -1
  199. data/rbi/whop_sdk/resources/users.rbi +13 -2
  200. data/sig/whop_sdk/client.rbs +4 -0
  201. data/sig/whop_sdk/internal/transport/base_client.rbs +2 -0
  202. data/sig/whop_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  203. data/sig/whop_sdk/models/access_token_create_params.rbs +56 -0
  204. data/sig/whop_sdk/models/access_token_create_response.rbs +15 -0
  205. data/sig/whop_sdk/models/app_build_create_params.rbs +29 -10
  206. data/sig/whop_sdk/models/app_update_params.rbs +29 -10
  207. data/sig/whop_sdk/models/checkout_configuration_create_params.rbs +72 -21
  208. data/sig/whop_sdk/models/company.rbs +5 -0
  209. data/sig/whop_sdk/models/company_create_params.rbs +41 -0
  210. data/sig/whop_sdk/models/company_list_params.rbs +51 -0
  211. data/sig/whop_sdk/models/company_list_response.rbs +109 -0
  212. data/sig/whop_sdk/models/course.rbs +13 -3
  213. data/sig/whop_sdk/models/course_create_params.rbs +49 -10
  214. data/sig/whop_sdk/models/course_lesson_create_params.rbs +46 -0
  215. data/sig/whop_sdk/models/course_lesson_list_response.rbs +25 -0
  216. data/sig/whop_sdk/models/course_lesson_update_params.rbs +162 -30
  217. data/sig/whop_sdk/models/course_list_response.rbs +13 -3
  218. data/sig/whop_sdk/models/course_student_list_params.rbs +51 -0
  219. data/sig/whop_sdk/models/course_student_list_response.rbs +64 -0
  220. data/sig/whop_sdk/models/course_student_retrieve_params.rbs +15 -0
  221. data/sig/whop_sdk/models/course_student_retrieve_response.rbs +106 -0
  222. data/sig/whop_sdk/models/course_update_params.rbs +40 -11
  223. data/sig/whop_sdk/models/course_visibilities.rbs +14 -0
  224. data/sig/whop_sdk/models/embed_type.rbs +14 -0
  225. data/sig/whop_sdk/models/experience_update_params.rbs +29 -10
  226. data/sig/whop_sdk/models/forum_post_create_params.rbs +29 -10
  227. data/sig/whop_sdk/models/forum_post_update_params.rbs +29 -10
  228. data/sig/whop_sdk/models/invoice_create_params.rbs +28 -18
  229. data/sig/whop_sdk/models/invoice_list_params.rbs +16 -33
  230. data/sig/whop_sdk/models/lesson.rbs +33 -8
  231. data/sig/whop_sdk/models/member_list_params.rbs +5 -5
  232. data/sig/whop_sdk/models/membership_list_params.rbs +5 -5
  233. data/sig/whop_sdk/models/message_create_params.rbs +29 -10
  234. data/sig/whop_sdk/models/message_update_params.rbs +29 -10
  235. data/sig/whop_sdk/models/payment.rbs +5 -0
  236. data/sig/whop_sdk/models/payment_list_response.rbs +5 -0
  237. data/sig/whop_sdk/models/payment_method_types.rbs +4 -2
  238. data/sig/whop_sdk/models/plan.rbs +32 -0
  239. data/sig/whop_sdk/models/plan_create_params.rbs +61 -10
  240. data/sig/whop_sdk/models/plan_list_response.rbs +32 -0
  241. data/sig/whop_sdk/models/plan_update_params.rbs +61 -10
  242. data/sig/whop_sdk/models/product_update_params.rbs +29 -10
  243. data/sig/whop_sdk/models/transfer.rbs +5 -0
  244. data/sig/whop_sdk/models/transfer_create_params.rbs +5 -0
  245. data/sig/whop_sdk/models/transfer_list_response.rbs +5 -0
  246. data/sig/whop_sdk/models.rbs +14 -0
  247. data/sig/whop_sdk/resources/access_tokens.rbs +15 -0
  248. data/sig/whop_sdk/resources/app_builds.rbs +1 -1
  249. data/sig/whop_sdk/resources/apps.rbs +1 -1
  250. data/sig/whop_sdk/resources/checkout_configurations.rbs +2 -2
  251. data/sig/whop_sdk/resources/companies.rbs +18 -0
  252. data/sig/whop_sdk/resources/course_lessons.rbs +10 -2
  253. data/sig/whop_sdk/resources/course_students.rbs +22 -0
  254. data/sig/whop_sdk/resources/courses.rbs +8 -2
  255. data/sig/whop_sdk/resources/experiences.rbs +1 -1
  256. data/sig/whop_sdk/resources/forum_posts.rbs +2 -2
  257. data/sig/whop_sdk/resources/invoices.rbs +8 -6
  258. data/sig/whop_sdk/resources/members.rbs +1 -1
  259. data/sig/whop_sdk/resources/memberships.rbs +1 -1
  260. data/sig/whop_sdk/resources/messages.rbs +2 -2
  261. data/sig/whop_sdk/resources/plans.rbs +4 -2
  262. data/sig/whop_sdk/resources/products.rbs +1 -1
  263. data/sig/whop_sdk/resources/transfers.rbs +1 -0
  264. metadata +41 -5
  265. data/lib/whop_sdk/models/invoice_create_response.rb +0 -27
  266. data/rbi/whop_sdk/models/invoice_create_response.rbi +0 -49
  267. data/sig/whop_sdk/models/invoice_create_response.rbs +0 -19
@@ -11,6 +11,26 @@ module WhopSDK
11
11
  T.any(WhopSDK::CourseLessonUpdateParams, WhopSDK::Internal::AnyHash)
12
12
  end
13
13
 
14
+ # Completion requirements for quiz/knowledge check lessons
15
+ sig do
16
+ returns(
17
+ T.nilable(
18
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement
19
+ )
20
+ )
21
+ end
22
+ attr_reader :assessment_completion_requirement
23
+
24
+ sig do
25
+ params(
26
+ assessment_completion_requirement:
27
+ T.nilable(
28
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement::OrHash
29
+ )
30
+ ).void
31
+ end
32
+ attr_writer :assessment_completion_requirement
33
+
14
34
  # Assessment questions for quiz/knowledge check lessons. Replaces all existing
15
35
  # questions.
16
36
  sig do
@@ -26,7 +46,14 @@ module WhopSDK
26
46
  # attachments.
27
47
  sig do
28
48
  returns(
29
- T.nilable(T::Array[WhopSDK::CourseLessonUpdateParams::Attachment])
49
+ T.nilable(
50
+ T::Array[
51
+ T.any(
52
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
53
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID
54
+ )
55
+ ]
56
+ )
30
57
  )
31
58
  end
32
59
  attr_accessor :attachments
@@ -39,26 +66,52 @@ module WhopSDK
39
66
  sig { returns(T.nilable(Integer)) }
40
67
  attr_accessor :days_from_course_start_until_unlock
41
68
 
69
+ # ID for the embed (YouTube video ID or Loom share ID)
70
+ sig { returns(T.nilable(String)) }
71
+ attr_accessor :embed_id
72
+
73
+ # The type of embed for a lesson
74
+ sig { returns(T.nilable(WhopSDK::EmbedType::OrSymbol)) }
75
+ attr_accessor :embed_type
76
+
42
77
  # The available types for a lesson
43
78
  sig { returns(T.nilable(WhopSDK::LessonTypes::OrSymbol)) }
44
79
  attr_accessor :lesson_type
45
80
 
46
81
  # The main PDF file for this lesson
47
- sig { returns(T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf)) }
48
- attr_reader :main_pdf
49
-
50
82
  sig do
51
- params(
52
- main_pdf:
53
- T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf::OrHash)
54
- ).void
83
+ returns(
84
+ T.nilable(
85
+ T.any(
86
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
87
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID
88
+ )
89
+ )
90
+ )
55
91
  end
56
- attr_writer :main_pdf
92
+ attr_accessor :main_pdf
93
+
94
+ # Maximum number of attempts allowed for assessments
95
+ sig { returns(T.nilable(Integer)) }
96
+ attr_accessor :max_attempts
57
97
 
58
98
  # The ID of the Mux asset to attach to this lesson for video lessons
59
99
  sig { returns(T.nilable(String)) }
60
100
  attr_accessor :mux_asset_id
61
101
 
102
+ # The thumbnail for the lesson in png, jpeg, or gif format
103
+ sig do
104
+ returns(
105
+ T.nilable(
106
+ T.any(
107
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithDirectUploadID,
108
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithID
109
+ )
110
+ )
111
+ )
112
+ end
113
+ attr_accessor :thumbnail
114
+
62
115
  # The title of the lesson
63
116
  sig { returns(T.nilable(String)) }
64
117
  attr_accessor :title
@@ -70,6 +123,10 @@ module WhopSDK
70
123
 
71
124
  sig do
72
125
  params(
126
+ assessment_completion_requirement:
127
+ T.nilable(
128
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement::OrHash
129
+ ),
73
130
  assessment_questions:
74
131
  T.nilable(
75
132
  T::Array[
@@ -78,20 +135,42 @@ module WhopSDK
78
135
  ),
79
136
  attachments:
80
137
  T.nilable(
81
- T::Array[WhopSDK::CourseLessonUpdateParams::Attachment::OrHash]
138
+ T::Array[
139
+ T.any(
140
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID::OrHash,
141
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID::OrHash
142
+ )
143
+ ]
82
144
  ),
83
145
  content: T.nilable(String),
84
146
  days_from_course_start_until_unlock: T.nilable(Integer),
147
+ embed_id: T.nilable(String),
148
+ embed_type: T.nilable(WhopSDK::EmbedType::OrSymbol),
85
149
  lesson_type: T.nilable(WhopSDK::LessonTypes::OrSymbol),
86
150
  main_pdf:
87
- T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf::OrHash),
151
+ T.nilable(
152
+ T.any(
153
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID::OrHash,
154
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID::OrHash
155
+ )
156
+ ),
157
+ max_attempts: T.nilable(Integer),
88
158
  mux_asset_id: T.nilable(String),
159
+ thumbnail:
160
+ T.nilable(
161
+ T.any(
162
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithDirectUploadID::OrHash,
163
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithID::OrHash
164
+ )
165
+ ),
89
166
  title: T.nilable(String),
90
167
  visibility: T.nilable(WhopSDK::LessonVisibilities::OrSymbol),
91
168
  request_options: WhopSDK::RequestOptions::OrHash
92
169
  ).returns(T.attached_class)
93
170
  end
94
171
  def self.new(
172
+ # Completion requirements for quiz/knowledge check lessons
173
+ assessment_completion_requirement: nil,
95
174
  # Assessment questions for quiz/knowledge check lessons. Replaces all existing
96
175
  # questions.
97
176
  assessment_questions: nil,
@@ -102,12 +181,20 @@ module WhopSDK
102
181
  content: nil,
103
182
  # Days from course start until unlock
104
183
  days_from_course_start_until_unlock: nil,
184
+ # ID for the embed (YouTube video ID or Loom share ID)
185
+ embed_id: nil,
186
+ # The type of embed for a lesson
187
+ embed_type: nil,
105
188
  # The available types for a lesson
106
189
  lesson_type: nil,
107
190
  # The main PDF file for this lesson
108
191
  main_pdf: nil,
192
+ # Maximum number of attempts allowed for assessments
193
+ max_attempts: nil,
109
194
  # The ID of the Mux asset to attach to this lesson for video lessons
110
195
  mux_asset_id: nil,
196
+ # The thumbnail for the lesson in png, jpeg, or gif format
197
+ thumbnail: nil,
111
198
  # The title of the lesson
112
199
  title: nil,
113
200
  # The available visibilities for a lesson. Determines how / whether a lesson is
@@ -120,19 +207,44 @@ module WhopSDK
120
207
  sig do
121
208
  override.returns(
122
209
  {
210
+ assessment_completion_requirement:
211
+ T.nilable(
212
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement
213
+ ),
123
214
  assessment_questions:
124
215
  T.nilable(
125
216
  T::Array[WhopSDK::CourseLessonUpdateParams::AssessmentQuestion]
126
217
  ),
127
218
  attachments:
128
219
  T.nilable(
129
- T::Array[WhopSDK::CourseLessonUpdateParams::Attachment]
220
+ T::Array[
221
+ T.any(
222
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
223
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID
224
+ )
225
+ ]
130
226
  ),
131
227
  content: T.nilable(String),
132
228
  days_from_course_start_until_unlock: T.nilable(Integer),
229
+ embed_id: T.nilable(String),
230
+ embed_type: T.nilable(WhopSDK::EmbedType::OrSymbol),
133
231
  lesson_type: T.nilable(WhopSDK::LessonTypes::OrSymbol),
134
- main_pdf: T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf),
232
+ main_pdf:
233
+ T.nilable(
234
+ T.any(
235
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
236
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID
237
+ )
238
+ ),
239
+ max_attempts: T.nilable(Integer),
135
240
  mux_asset_id: T.nilable(String),
241
+ thumbnail:
242
+ T.nilable(
243
+ T.any(
244
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithDirectUploadID,
245
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithID
246
+ )
247
+ ),
136
248
  title: T.nilable(String),
137
249
  visibility: T.nilable(WhopSDK::LessonVisibilities::OrSymbol),
138
250
  request_options: WhopSDK::RequestOptions
@@ -142,6 +254,54 @@ module WhopSDK
142
254
  def to_hash
143
255
  end
144
256
 
257
+ class AssessmentCompletionRequirement < WhopSDK::Internal::Type::BaseModel
258
+ OrHash =
259
+ T.type_alias do
260
+ T.any(
261
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement,
262
+ WhopSDK::Internal::AnyHash
263
+ )
264
+ end
265
+
266
+ # The minimum grade percentage required to pass (0-100). Cannot be set together
267
+ # with minimum_questions_correct.
268
+ sig { returns(T.nilable(Float)) }
269
+ attr_accessor :minimum_grade_percent
270
+
271
+ # The minimum number of questions that must be answered correctly. Cannot be set
272
+ # together with minimum_grade_percent.
273
+ sig { returns(T.nilable(Integer)) }
274
+ attr_accessor :minimum_questions_correct
275
+
276
+ # Completion requirements for quiz/knowledge check lessons
277
+ sig do
278
+ params(
279
+ minimum_grade_percent: T.nilable(Float),
280
+ minimum_questions_correct: T.nilable(Integer)
281
+ ).returns(T.attached_class)
282
+ end
283
+ def self.new(
284
+ # The minimum grade percentage required to pass (0-100). Cannot be set together
285
+ # with minimum_questions_correct.
286
+ minimum_grade_percent: nil,
287
+ # The minimum number of questions that must be answered correctly. Cannot be set
288
+ # together with minimum_grade_percent.
289
+ minimum_questions_correct: nil
290
+ )
291
+ end
292
+
293
+ sig do
294
+ override.returns(
295
+ {
296
+ minimum_grade_percent: T.nilable(Float),
297
+ minimum_questions_correct: T.nilable(Integer)
298
+ }
299
+ )
300
+ end
301
+ def to_hash
302
+ end
303
+ end
304
+
145
305
  class AssessmentQuestion < WhopSDK::Internal::Type::BaseModel
146
306
  OrHash =
147
307
  T.type_alias do
@@ -172,21 +332,14 @@ module WhopSDK
172
332
  sig do
173
333
  returns(
174
334
  T.nilable(
175
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image
335
+ T.any(
336
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
337
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID
338
+ )
176
339
  )
177
340
  )
178
341
  end
179
- attr_reader :image
180
-
181
- sig do
182
- params(
183
- image:
184
- T.nilable(
185
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::OrHash
186
- )
187
- ).void
188
- end
189
- attr_writer :image
342
+ attr_accessor :image
190
343
 
191
344
  # The answer options for multiple choice/select questions
192
345
  sig do
@@ -209,7 +362,10 @@ module WhopSDK
209
362
  id: T.nilable(String),
210
363
  image:
211
364
  T.nilable(
212
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::OrHash
365
+ T.any(
366
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID::OrHash,
367
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID::OrHash
368
+ )
213
369
  ),
214
370
  options:
215
371
  T.nilable(
@@ -245,7 +401,10 @@ module WhopSDK
245
401
  id: T.nilable(String),
246
402
  image:
247
403
  T.nilable(
248
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image
404
+ T.any(
405
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
406
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID
407
+ )
249
408
  ),
250
409
  options:
251
410
  T.nilable(
@@ -259,52 +418,86 @@ module WhopSDK
259
418
  def to_hash
260
419
  end
261
420
 
262
- class Image < WhopSDK::Internal::Type::BaseModel
263
- OrHash =
421
+ # Optional image attachment for the question
422
+ module Image
423
+ extend WhopSDK::Internal::Type::Union
424
+
425
+ Variants =
264
426
  T.type_alias do
265
427
  T.any(
266
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image,
267
- WhopSDK::Internal::AnyHash
428
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
429
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID
268
430
  )
269
431
  end
270
432
 
271
- # The ID of an existing attachment object. Use this when updating a resource and
272
- # keeping a subset of the attachments. Don't use this unless you know what you're
273
- # doing.
274
- sig { returns(T.nilable(String)) }
275
- attr_accessor :id
433
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
434
+ OrHash =
435
+ T.type_alias do
436
+ T.any(
437
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
438
+ WhopSDK::Internal::AnyHash
439
+ )
440
+ end
276
441
 
277
- # This ID should be used the first time you upload an attachment. It is the ID of
278
- # the direct upload that was created when uploading the file to S3 via the
279
- # mediaDirectUpload mutation.
280
- sig { returns(T.nilable(String)) }
281
- attr_accessor :direct_upload_id
442
+ # This ID should be used the first time you upload an attachment. It is the ID of
443
+ # the direct upload that was created when uploading the file to S3 via the
444
+ # mediaDirectUpload mutation.
445
+ sig { returns(String) }
446
+ attr_accessor :direct_upload_id
447
+
448
+ # Input for an attachment
449
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
450
+ def self.new(
451
+ # This ID should be used the first time you upload an attachment. It is the ID of
452
+ # the direct upload that was created when uploading the file to S3 via the
453
+ # mediaDirectUpload mutation.
454
+ direct_upload_id:
455
+ )
456
+ end
282
457
 
283
- # Optional image attachment for the question
284
- sig do
285
- params(
286
- id: T.nilable(String),
287
- direct_upload_id: T.nilable(String)
288
- ).returns(T.attached_class)
458
+ sig { override.returns({ direct_upload_id: String }) }
459
+ def to_hash
460
+ end
289
461
  end
290
- def self.new(
462
+
463
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
464
+ OrHash =
465
+ T.type_alias do
466
+ T.any(
467
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID,
468
+ WhopSDK::Internal::AnyHash
469
+ )
470
+ end
471
+
291
472
  # The ID of an existing attachment object. Use this when updating a resource and
292
473
  # keeping a subset of the attachments. Don't use this unless you know what you're
293
474
  # doing.
294
- id: nil,
295
- # This ID should be used the first time you upload an attachment. It is the ID of
296
- # the direct upload that was created when uploading the file to S3 via the
297
- # mediaDirectUpload mutation.
298
- direct_upload_id: nil
299
- )
475
+ sig { returns(String) }
476
+ attr_accessor :id
477
+
478
+ # Input for an attachment
479
+ sig { params(id: String).returns(T.attached_class) }
480
+ def self.new(
481
+ # The ID of an existing attachment object. Use this when updating a resource and
482
+ # keeping a subset of the attachments. Don't use this unless you know what you're
483
+ # doing.
484
+ id:
485
+ )
486
+ end
487
+
488
+ sig { override.returns({ id: String }) }
489
+ def to_hash
490
+ end
300
491
  end
301
492
 
302
493
  sig do
303
494
  override.returns(
304
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
495
+ T::Array[
496
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::Variants
497
+ ]
305
498
  )
306
499
  end
307
- def to_hash
500
+ def self.variants
308
501
  end
309
502
  end
310
503
 
@@ -363,101 +556,246 @@ module WhopSDK
363
556
  end
364
557
  end
365
558
 
366
- class Attachment < WhopSDK::Internal::Type::BaseModel
367
- OrHash =
559
+ # Input for an attachment
560
+ module Attachment
561
+ extend WhopSDK::Internal::Type::Union
562
+
563
+ Variants =
368
564
  T.type_alias do
369
565
  T.any(
370
- WhopSDK::CourseLessonUpdateParams::Attachment,
371
- WhopSDK::Internal::AnyHash
566
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
567
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID
372
568
  )
373
569
  end
374
570
 
375
- # The ID of an existing attachment object. Use this when updating a resource and
376
- # keeping a subset of the attachments. Don't use this unless you know what you're
377
- # doing.
378
- sig { returns(T.nilable(String)) }
379
- attr_accessor :id
571
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
572
+ OrHash =
573
+ T.type_alias do
574
+ T.any(
575
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
576
+ WhopSDK::Internal::AnyHash
577
+ )
578
+ end
380
579
 
381
- # This ID should be used the first time you upload an attachment. It is the ID of
382
- # the direct upload that was created when uploading the file to S3 via the
383
- # mediaDirectUpload mutation.
384
- sig { returns(T.nilable(String)) }
385
- attr_accessor :direct_upload_id
580
+ # This ID should be used the first time you upload an attachment. It is the ID of
581
+ # the direct upload that was created when uploading the file to S3 via the
582
+ # mediaDirectUpload mutation.
583
+ sig { returns(String) }
584
+ attr_accessor :direct_upload_id
386
585
 
387
- # Input for an attachment
388
- sig do
389
- params(
390
- id: T.nilable(String),
391
- direct_upload_id: T.nilable(String)
392
- ).returns(T.attached_class)
586
+ # Input for an attachment
587
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
588
+ def self.new(
589
+ # This ID should be used the first time you upload an attachment. It is the ID of
590
+ # the direct upload that was created when uploading the file to S3 via the
591
+ # mediaDirectUpload mutation.
592
+ direct_upload_id:
593
+ )
594
+ end
595
+
596
+ sig { override.returns({ direct_upload_id: String }) }
597
+ def to_hash
598
+ end
393
599
  end
394
- def self.new(
600
+
601
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
602
+ OrHash =
603
+ T.type_alias do
604
+ T.any(
605
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID,
606
+ WhopSDK::Internal::AnyHash
607
+ )
608
+ end
609
+
395
610
  # The ID of an existing attachment object. Use this when updating a resource and
396
611
  # keeping a subset of the attachments. Don't use this unless you know what you're
397
612
  # doing.
398
- id: nil,
399
- # This ID should be used the first time you upload an attachment. It is the ID of
400
- # the direct upload that was created when uploading the file to S3 via the
401
- # mediaDirectUpload mutation.
402
- direct_upload_id: nil
403
- )
613
+ sig { returns(String) }
614
+ attr_accessor :id
615
+
616
+ # Input for an attachment
617
+ sig { params(id: String).returns(T.attached_class) }
618
+ def self.new(
619
+ # The ID of an existing attachment object. Use this when updating a resource and
620
+ # keeping a subset of the attachments. Don't use this unless you know what you're
621
+ # doing.
622
+ id:
623
+ )
624
+ end
625
+
626
+ sig { override.returns({ id: String }) }
627
+ def to_hash
628
+ end
404
629
  end
405
630
 
406
631
  sig do
407
632
  override.returns(
408
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
633
+ T::Array[WhopSDK::CourseLessonUpdateParams::Attachment::Variants]
409
634
  )
410
635
  end
411
- def to_hash
636
+ def self.variants
412
637
  end
413
638
  end
414
639
 
415
- class MainPdf < WhopSDK::Internal::Type::BaseModel
416
- OrHash =
640
+ # The main PDF file for this lesson
641
+ module MainPdf
642
+ extend WhopSDK::Internal::Type::Union
643
+
644
+ Variants =
417
645
  T.type_alias do
418
646
  T.any(
419
- WhopSDK::CourseLessonUpdateParams::MainPdf,
420
- WhopSDK::Internal::AnyHash
647
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
648
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID
421
649
  )
422
650
  end
423
651
 
424
- # The ID of an existing attachment object. Use this when updating a resource and
425
- # keeping a subset of the attachments. Don't use this unless you know what you're
426
- # doing.
427
- sig { returns(T.nilable(String)) }
428
- attr_accessor :id
652
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
653
+ OrHash =
654
+ T.type_alias do
655
+ T.any(
656
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
657
+ WhopSDK::Internal::AnyHash
658
+ )
659
+ end
429
660
 
430
- # This ID should be used the first time you upload an attachment. It is the ID of
431
- # the direct upload that was created when uploading the file to S3 via the
432
- # mediaDirectUpload mutation.
433
- sig { returns(T.nilable(String)) }
434
- attr_accessor :direct_upload_id
661
+ # This ID should be used the first time you upload an attachment. It is the ID of
662
+ # the direct upload that was created when uploading the file to S3 via the
663
+ # mediaDirectUpload mutation.
664
+ sig { returns(String) }
665
+ attr_accessor :direct_upload_id
435
666
 
436
- # The main PDF file for this lesson
437
- sig do
438
- params(
439
- id: T.nilable(String),
440
- direct_upload_id: T.nilable(String)
441
- ).returns(T.attached_class)
667
+ # Input for an attachment
668
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
669
+ def self.new(
670
+ # This ID should be used the first time you upload an attachment. It is the ID of
671
+ # the direct upload that was created when uploading the file to S3 via the
672
+ # mediaDirectUpload mutation.
673
+ direct_upload_id:
674
+ )
675
+ end
676
+
677
+ sig { override.returns({ direct_upload_id: String }) }
678
+ def to_hash
679
+ end
442
680
  end
443
- def self.new(
681
+
682
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
683
+ OrHash =
684
+ T.type_alias do
685
+ T.any(
686
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID,
687
+ WhopSDK::Internal::AnyHash
688
+ )
689
+ end
690
+
444
691
  # The ID of an existing attachment object. Use this when updating a resource and
445
692
  # keeping a subset of the attachments. Don't use this unless you know what you're
446
693
  # doing.
447
- id: nil,
694
+ sig { returns(String) }
695
+ attr_accessor :id
696
+
697
+ # Input for an attachment
698
+ sig { params(id: String).returns(T.attached_class) }
699
+ def self.new(
700
+ # The ID of an existing attachment object. Use this when updating a resource and
701
+ # keeping a subset of the attachments. Don't use this unless you know what you're
702
+ # doing.
703
+ id:
704
+ )
705
+ end
706
+
707
+ sig { override.returns({ id: String }) }
708
+ def to_hash
709
+ end
710
+ end
711
+
712
+ sig do
713
+ override.returns(
714
+ T::Array[WhopSDK::CourseLessonUpdateParams::MainPdf::Variants]
715
+ )
716
+ end
717
+ def self.variants
718
+ end
719
+ end
720
+
721
+ # The thumbnail for the lesson in png, jpeg, or gif format
722
+ module Thumbnail
723
+ extend WhopSDK::Internal::Type::Union
724
+
725
+ Variants =
726
+ T.type_alias do
727
+ T.any(
728
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithDirectUploadID,
729
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithID
730
+ )
731
+ end
732
+
733
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
734
+ OrHash =
735
+ T.type_alias do
736
+ T.any(
737
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithDirectUploadID,
738
+ WhopSDK::Internal::AnyHash
739
+ )
740
+ end
741
+
448
742
  # This ID should be used the first time you upload an attachment. It is the ID of
449
743
  # the direct upload that was created when uploading the file to S3 via the
450
744
  # mediaDirectUpload mutation.
451
- direct_upload_id: nil
452
- )
745
+ sig { returns(String) }
746
+ attr_accessor :direct_upload_id
747
+
748
+ # Input for an attachment
749
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
750
+ def self.new(
751
+ # This ID should be used the first time you upload an attachment. It is the ID of
752
+ # the direct upload that was created when uploading the file to S3 via the
753
+ # mediaDirectUpload mutation.
754
+ direct_upload_id:
755
+ )
756
+ end
757
+
758
+ sig { override.returns({ direct_upload_id: String }) }
759
+ def to_hash
760
+ end
761
+ end
762
+
763
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
764
+ OrHash =
765
+ T.type_alias do
766
+ T.any(
767
+ WhopSDK::CourseLessonUpdateParams::Thumbnail::AttachmentInputWithID,
768
+ WhopSDK::Internal::AnyHash
769
+ )
770
+ end
771
+
772
+ # The ID of an existing attachment object. Use this when updating a resource and
773
+ # keeping a subset of the attachments. Don't use this unless you know what you're
774
+ # doing.
775
+ sig { returns(String) }
776
+ attr_accessor :id
777
+
778
+ # Input for an attachment
779
+ sig { params(id: String).returns(T.attached_class) }
780
+ def self.new(
781
+ # The ID of an existing attachment object. Use this when updating a resource and
782
+ # keeping a subset of the attachments. Don't use this unless you know what you're
783
+ # doing.
784
+ id:
785
+ )
786
+ end
787
+
788
+ sig { override.returns({ id: String }) }
789
+ def to_hash
790
+ end
453
791
  end
454
792
 
455
793
  sig do
456
794
  override.returns(
457
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
795
+ T::Array[WhopSDK::CourseLessonUpdateParams::Thumbnail::Variants]
458
796
  )
459
797
  end
460
- def to_hash
798
+ def self.variants
461
799
  end
462
800
  end
463
801
  end