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
@@ -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
@@ -44,16 +71,21 @@ module WhopSDK
44
71
  attr_accessor :lesson_type
45
72
 
46
73
  # The main PDF file for this lesson
47
- sig { returns(T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf)) }
48
- attr_reader :main_pdf
49
-
50
74
  sig do
51
- params(
52
- main_pdf:
53
- T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf::OrHash)
54
- ).void
75
+ returns(
76
+ T.nilable(
77
+ T.any(
78
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
79
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID
80
+ )
81
+ )
82
+ )
55
83
  end
56
- attr_writer :main_pdf
84
+ attr_accessor :main_pdf
85
+
86
+ # Maximum number of attempts allowed for assessments
87
+ sig { returns(T.nilable(Integer)) }
88
+ attr_accessor :max_attempts
57
89
 
58
90
  # The ID of the Mux asset to attach to this lesson for video lessons
59
91
  sig { returns(T.nilable(String)) }
@@ -70,6 +102,10 @@ module WhopSDK
70
102
 
71
103
  sig do
72
104
  params(
105
+ assessment_completion_requirement:
106
+ T.nilable(
107
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement::OrHash
108
+ ),
73
109
  assessment_questions:
74
110
  T.nilable(
75
111
  T::Array[
@@ -78,13 +114,24 @@ module WhopSDK
78
114
  ),
79
115
  attachments:
80
116
  T.nilable(
81
- T::Array[WhopSDK::CourseLessonUpdateParams::Attachment::OrHash]
117
+ T::Array[
118
+ T.any(
119
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID::OrHash,
120
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID::OrHash
121
+ )
122
+ ]
82
123
  ),
83
124
  content: T.nilable(String),
84
125
  days_from_course_start_until_unlock: T.nilable(Integer),
85
126
  lesson_type: T.nilable(WhopSDK::LessonTypes::OrSymbol),
86
127
  main_pdf:
87
- T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf::OrHash),
128
+ T.nilable(
129
+ T.any(
130
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID::OrHash,
131
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID::OrHash
132
+ )
133
+ ),
134
+ max_attempts: T.nilable(Integer),
88
135
  mux_asset_id: T.nilable(String),
89
136
  title: T.nilable(String),
90
137
  visibility: T.nilable(WhopSDK::LessonVisibilities::OrSymbol),
@@ -92,6 +139,8 @@ module WhopSDK
92
139
  ).returns(T.attached_class)
93
140
  end
94
141
  def self.new(
142
+ # Completion requirements for quiz/knowledge check lessons
143
+ assessment_completion_requirement: nil,
95
144
  # Assessment questions for quiz/knowledge check lessons. Replaces all existing
96
145
  # questions.
97
146
  assessment_questions: nil,
@@ -106,6 +155,8 @@ module WhopSDK
106
155
  lesson_type: nil,
107
156
  # The main PDF file for this lesson
108
157
  main_pdf: nil,
158
+ # Maximum number of attempts allowed for assessments
159
+ max_attempts: nil,
109
160
  # The ID of the Mux asset to attach to this lesson for video lessons
110
161
  mux_asset_id: nil,
111
162
  # The title of the lesson
@@ -120,18 +171,34 @@ module WhopSDK
120
171
  sig do
121
172
  override.returns(
122
173
  {
174
+ assessment_completion_requirement:
175
+ T.nilable(
176
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement
177
+ ),
123
178
  assessment_questions:
124
179
  T.nilable(
125
180
  T::Array[WhopSDK::CourseLessonUpdateParams::AssessmentQuestion]
126
181
  ),
127
182
  attachments:
128
183
  T.nilable(
129
- T::Array[WhopSDK::CourseLessonUpdateParams::Attachment]
184
+ T::Array[
185
+ T.any(
186
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
187
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID
188
+ )
189
+ ]
130
190
  ),
131
191
  content: T.nilable(String),
132
192
  days_from_course_start_until_unlock: T.nilable(Integer),
133
193
  lesson_type: T.nilable(WhopSDK::LessonTypes::OrSymbol),
134
- main_pdf: T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf),
194
+ main_pdf:
195
+ T.nilable(
196
+ T.any(
197
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
198
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID
199
+ )
200
+ ),
201
+ max_attempts: T.nilable(Integer),
135
202
  mux_asset_id: T.nilable(String),
136
203
  title: T.nilable(String),
137
204
  visibility: T.nilable(WhopSDK::LessonVisibilities::OrSymbol),
@@ -142,6 +209,54 @@ module WhopSDK
142
209
  def to_hash
143
210
  end
144
211
 
212
+ class AssessmentCompletionRequirement < WhopSDK::Internal::Type::BaseModel
213
+ OrHash =
214
+ T.type_alias do
215
+ T.any(
216
+ WhopSDK::CourseLessonUpdateParams::AssessmentCompletionRequirement,
217
+ WhopSDK::Internal::AnyHash
218
+ )
219
+ end
220
+
221
+ # The minimum grade percentage required to pass (0-100). Cannot be set together
222
+ # with minimum_questions_correct.
223
+ sig { returns(T.nilable(Float)) }
224
+ attr_accessor :minimum_grade_percent
225
+
226
+ # The minimum number of questions that must be answered correctly. Cannot be set
227
+ # together with minimum_grade_percent.
228
+ sig { returns(T.nilable(Integer)) }
229
+ attr_accessor :minimum_questions_correct
230
+
231
+ # Completion requirements for quiz/knowledge check lessons
232
+ sig do
233
+ params(
234
+ minimum_grade_percent: T.nilable(Float),
235
+ minimum_questions_correct: T.nilable(Integer)
236
+ ).returns(T.attached_class)
237
+ end
238
+ def self.new(
239
+ # The minimum grade percentage required to pass (0-100). Cannot be set together
240
+ # with minimum_questions_correct.
241
+ minimum_grade_percent: nil,
242
+ # The minimum number of questions that must be answered correctly. Cannot be set
243
+ # together with minimum_grade_percent.
244
+ minimum_questions_correct: nil
245
+ )
246
+ end
247
+
248
+ sig do
249
+ override.returns(
250
+ {
251
+ minimum_grade_percent: T.nilable(Float),
252
+ minimum_questions_correct: T.nilable(Integer)
253
+ }
254
+ )
255
+ end
256
+ def to_hash
257
+ end
258
+ end
259
+
145
260
  class AssessmentQuestion < WhopSDK::Internal::Type::BaseModel
146
261
  OrHash =
147
262
  T.type_alias do
@@ -172,21 +287,14 @@ module WhopSDK
172
287
  sig do
173
288
  returns(
174
289
  T.nilable(
175
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image
290
+ T.any(
291
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
292
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID
293
+ )
176
294
  )
177
295
  )
178
296
  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
297
+ attr_accessor :image
190
298
 
191
299
  # The answer options for multiple choice/select questions
192
300
  sig do
@@ -209,7 +317,10 @@ module WhopSDK
209
317
  id: T.nilable(String),
210
318
  image:
211
319
  T.nilable(
212
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::OrHash
320
+ T.any(
321
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID::OrHash,
322
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID::OrHash
323
+ )
213
324
  ),
214
325
  options:
215
326
  T.nilable(
@@ -245,7 +356,10 @@ module WhopSDK
245
356
  id: T.nilable(String),
246
357
  image:
247
358
  T.nilable(
248
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image
359
+ T.any(
360
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
361
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID
362
+ )
249
363
  ),
250
364
  options:
251
365
  T.nilable(
@@ -259,52 +373,86 @@ module WhopSDK
259
373
  def to_hash
260
374
  end
261
375
 
262
- class Image < WhopSDK::Internal::Type::BaseModel
263
- OrHash =
376
+ # Optional image attachment for the question
377
+ module Image
378
+ extend WhopSDK::Internal::Type::Union
379
+
380
+ Variants =
264
381
  T.type_alias do
265
382
  T.any(
266
- WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image,
267
- WhopSDK::Internal::AnyHash
383
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
384
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID
268
385
  )
269
386
  end
270
387
 
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
388
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
389
+ OrHash =
390
+ T.type_alias do
391
+ T.any(
392
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithDirectUploadID,
393
+ WhopSDK::Internal::AnyHash
394
+ )
395
+ end
276
396
 
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
397
+ # This ID should be used the first time you upload an attachment. It is the ID of
398
+ # the direct upload that was created when uploading the file to S3 via the
399
+ # mediaDirectUpload mutation.
400
+ sig { returns(String) }
401
+ attr_accessor :direct_upload_id
402
+
403
+ # Input for an attachment
404
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
405
+ def self.new(
406
+ # This ID should be used the first time you upload an attachment. It is the ID of
407
+ # the direct upload that was created when uploading the file to S3 via the
408
+ # mediaDirectUpload mutation.
409
+ direct_upload_id:
410
+ )
411
+ end
282
412
 
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)
413
+ sig { override.returns({ direct_upload_id: String }) }
414
+ def to_hash
415
+ end
289
416
  end
290
- def self.new(
417
+
418
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
419
+ OrHash =
420
+ T.type_alias do
421
+ T.any(
422
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::AttachmentInputWithID,
423
+ WhopSDK::Internal::AnyHash
424
+ )
425
+ end
426
+
291
427
  # The ID of an existing attachment object. Use this when updating a resource and
292
428
  # keeping a subset of the attachments. Don't use this unless you know what you're
293
429
  # 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
- )
430
+ sig { returns(String) }
431
+ attr_accessor :id
432
+
433
+ # Input for an attachment
434
+ sig { params(id: String).returns(T.attached_class) }
435
+ def self.new(
436
+ # The ID of an existing attachment object. Use this when updating a resource and
437
+ # keeping a subset of the attachments. Don't use this unless you know what you're
438
+ # doing.
439
+ id:
440
+ )
441
+ end
442
+
443
+ sig { override.returns({ id: String }) }
444
+ def to_hash
445
+ end
300
446
  end
301
447
 
302
448
  sig do
303
449
  override.returns(
304
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
450
+ T::Array[
451
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::Variants
452
+ ]
305
453
  )
306
454
  end
307
- def to_hash
455
+ def self.variants
308
456
  end
309
457
  end
310
458
 
@@ -363,101 +511,165 @@ module WhopSDK
363
511
  end
364
512
  end
365
513
 
366
- class Attachment < WhopSDK::Internal::Type::BaseModel
367
- OrHash =
514
+ # Input for an attachment
515
+ module Attachment
516
+ extend WhopSDK::Internal::Type::Union
517
+
518
+ Variants =
368
519
  T.type_alias do
369
520
  T.any(
370
- WhopSDK::CourseLessonUpdateParams::Attachment,
371
- WhopSDK::Internal::AnyHash
521
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
522
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID
372
523
  )
373
524
  end
374
525
 
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
526
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
527
+ OrHash =
528
+ T.type_alias do
529
+ T.any(
530
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithDirectUploadID,
531
+ WhopSDK::Internal::AnyHash
532
+ )
533
+ end
380
534
 
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
535
+ # This ID should be used the first time you upload an attachment. It is the ID of
536
+ # the direct upload that was created when uploading the file to S3 via the
537
+ # mediaDirectUpload mutation.
538
+ sig { returns(String) }
539
+ attr_accessor :direct_upload_id
386
540
 
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)
541
+ # Input for an attachment
542
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
543
+ def self.new(
544
+ # This ID should be used the first time you upload an attachment. It is the ID of
545
+ # the direct upload that was created when uploading the file to S3 via the
546
+ # mediaDirectUpload mutation.
547
+ direct_upload_id:
548
+ )
549
+ end
550
+
551
+ sig { override.returns({ direct_upload_id: String }) }
552
+ def to_hash
553
+ end
393
554
  end
394
- def self.new(
555
+
556
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
557
+ OrHash =
558
+ T.type_alias do
559
+ T.any(
560
+ WhopSDK::CourseLessonUpdateParams::Attachment::AttachmentInputWithID,
561
+ WhopSDK::Internal::AnyHash
562
+ )
563
+ end
564
+
395
565
  # The ID of an existing attachment object. Use this when updating a resource and
396
566
  # keeping a subset of the attachments. Don't use this unless you know what you're
397
567
  # 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
- )
568
+ sig { returns(String) }
569
+ attr_accessor :id
570
+
571
+ # Input for an attachment
572
+ sig { params(id: String).returns(T.attached_class) }
573
+ def self.new(
574
+ # The ID of an existing attachment object. Use this when updating a resource and
575
+ # keeping a subset of the attachments. Don't use this unless you know what you're
576
+ # doing.
577
+ id:
578
+ )
579
+ end
580
+
581
+ sig { override.returns({ id: String }) }
582
+ def to_hash
583
+ end
404
584
  end
405
585
 
406
586
  sig do
407
587
  override.returns(
408
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
588
+ T::Array[WhopSDK::CourseLessonUpdateParams::Attachment::Variants]
409
589
  )
410
590
  end
411
- def to_hash
591
+ def self.variants
412
592
  end
413
593
  end
414
594
 
415
- class MainPdf < WhopSDK::Internal::Type::BaseModel
416
- OrHash =
595
+ # The main PDF file for this lesson
596
+ module MainPdf
597
+ extend WhopSDK::Internal::Type::Union
598
+
599
+ Variants =
417
600
  T.type_alias do
418
601
  T.any(
419
- WhopSDK::CourseLessonUpdateParams::MainPdf,
420
- WhopSDK::Internal::AnyHash
602
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
603
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID
421
604
  )
422
605
  end
423
606
 
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
607
+ class AttachmentInputWithDirectUploadID < WhopSDK::Internal::Type::BaseModel
608
+ OrHash =
609
+ T.type_alias do
610
+ T.any(
611
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithDirectUploadID,
612
+ WhopSDK::Internal::AnyHash
613
+ )
614
+ end
429
615
 
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
616
+ # This ID should be used the first time you upload an attachment. It is the ID of
617
+ # the direct upload that was created when uploading the file to S3 via the
618
+ # mediaDirectUpload mutation.
619
+ sig { returns(String) }
620
+ attr_accessor :direct_upload_id
435
621
 
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)
622
+ # Input for an attachment
623
+ sig { params(direct_upload_id: String).returns(T.attached_class) }
624
+ def self.new(
625
+ # This ID should be used the first time you upload an attachment. It is the ID of
626
+ # the direct upload that was created when uploading the file to S3 via the
627
+ # mediaDirectUpload mutation.
628
+ direct_upload_id:
629
+ )
630
+ end
631
+
632
+ sig { override.returns({ direct_upload_id: String }) }
633
+ def to_hash
634
+ end
442
635
  end
443
- def self.new(
636
+
637
+ class AttachmentInputWithID < WhopSDK::Internal::Type::BaseModel
638
+ OrHash =
639
+ T.type_alias do
640
+ T.any(
641
+ WhopSDK::CourseLessonUpdateParams::MainPdf::AttachmentInputWithID,
642
+ WhopSDK::Internal::AnyHash
643
+ )
644
+ end
645
+
444
646
  # The ID of an existing attachment object. Use this when updating a resource and
445
647
  # keeping a subset of the attachments. Don't use this unless you know what you're
446
648
  # doing.
447
- id: nil,
448
- # This ID should be used the first time you upload an attachment. It is the ID of
449
- # the direct upload that was created when uploading the file to S3 via the
450
- # mediaDirectUpload mutation.
451
- direct_upload_id: nil
452
- )
649
+ sig { returns(String) }
650
+ attr_accessor :id
651
+
652
+ # Input for an attachment
653
+ sig { params(id: String).returns(T.attached_class) }
654
+ def self.new(
655
+ # The ID of an existing attachment object. Use this when updating a resource and
656
+ # keeping a subset of the attachments. Don't use this unless you know what you're
657
+ # doing.
658
+ id:
659
+ )
660
+ end
661
+
662
+ sig { override.returns({ id: String }) }
663
+ def to_hash
664
+ end
453
665
  end
454
666
 
455
667
  sig do
456
668
  override.returns(
457
- { id: T.nilable(String), direct_upload_id: T.nilable(String) }
669
+ T::Array[WhopSDK::CourseLessonUpdateParams::MainPdf::Variants]
458
670
  )
459
671
  end
460
- def to_hash
672
+ def self.variants
461
673
  end
462
674
  end
463
675
  end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseStudentListParams < WhopSDK::Internal::Type::BaseModel
6
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
7
+ include WhopSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(WhopSDK::CourseStudentListParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ # The ID of the course
15
+ sig { returns(String) }
16
+ attr_accessor :course_id
17
+
18
+ # Returns the elements in the list that come after the specified cursor.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :after
21
+
22
+ # Returns the elements in the list that come before the specified cursor.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :before
25
+
26
+ # Returns the first _n_ elements from the list.
27
+ sig { returns(T.nilable(Integer)) }
28
+ attr_accessor :first
29
+
30
+ # Filter students by name - returns students whose names match the keyword
31
+ sig { returns(T.nilable(String)) }
32
+ attr_accessor :keyword
33
+
34
+ # Returns the last _n_ elements from the list.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_accessor :last
37
+
38
+ sig do
39
+ params(
40
+ course_id: String,
41
+ after: T.nilable(String),
42
+ before: T.nilable(String),
43
+ first: T.nilable(Integer),
44
+ keyword: T.nilable(String),
45
+ last: T.nilable(Integer),
46
+ request_options: WhopSDK::RequestOptions::OrHash
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The ID of the course
51
+ course_id:,
52
+ # Returns the elements in the list that come after the specified cursor.
53
+ after: nil,
54
+ # Returns the elements in the list that come before the specified cursor.
55
+ before: nil,
56
+ # Returns the first _n_ elements from the list.
57
+ first: nil,
58
+ # Filter students by name - returns students whose names match the keyword
59
+ keyword: nil,
60
+ # Returns the last _n_ elements from the list.
61
+ last: nil,
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ course_id: String,
70
+ after: T.nilable(String),
71
+ before: T.nilable(String),
72
+ first: T.nilable(Integer),
73
+ keyword: T.nilable(String),
74
+ last: T.nilable(Integer),
75
+ request_options: WhopSDK::RequestOptions
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+ end
82
+ end
83
+ end