whop-sdk 0.0.10__py3-none-any.whl

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 (352) hide show
  1. whop_sdk/__init__.py +94 -0
  2. whop_sdk/_base_client.py +1995 -0
  3. whop_sdk/_client.py +800 -0
  4. whop_sdk/_compat.py +219 -0
  5. whop_sdk/_constants.py +14 -0
  6. whop_sdk/_exceptions.py +112 -0
  7. whop_sdk/_files.py +123 -0
  8. whop_sdk/_models.py +857 -0
  9. whop_sdk/_qs.py +150 -0
  10. whop_sdk/_resource.py +43 -0
  11. whop_sdk/_response.py +830 -0
  12. whop_sdk/_streaming.py +333 -0
  13. whop_sdk/_types.py +260 -0
  14. whop_sdk/_utils/__init__.py +64 -0
  15. whop_sdk/_utils/_compat.py +45 -0
  16. whop_sdk/_utils/_datetime_parse.py +136 -0
  17. whop_sdk/_utils/_logs.py +25 -0
  18. whop_sdk/_utils/_proxy.py +65 -0
  19. whop_sdk/_utils/_reflection.py +42 -0
  20. whop_sdk/_utils/_resources_proxy.py +24 -0
  21. whop_sdk/_utils/_streams.py +12 -0
  22. whop_sdk/_utils/_sync.py +58 -0
  23. whop_sdk/_utils/_transform.py +457 -0
  24. whop_sdk/_utils/_typing.py +156 -0
  25. whop_sdk/_utils/_utils.py +421 -0
  26. whop_sdk/_version.py +4 -0
  27. whop_sdk/lib/.keep +4 -0
  28. whop_sdk/pagination.py +61 -0
  29. whop_sdk/py.typed +0 -0
  30. whop_sdk/resources/__init__.py +540 -0
  31. whop_sdk/resources/access_tokens.py +341 -0
  32. whop_sdk/resources/account_links.py +211 -0
  33. whop_sdk/resources/app_builds.py +587 -0
  34. whop_sdk/resources/apps.py +684 -0
  35. whop_sdk/resources/authorized_users.py +353 -0
  36. whop_sdk/resources/chat_channels.py +469 -0
  37. whop_sdk/resources/checkout_configurations.py +776 -0
  38. whop_sdk/resources/companies.py +465 -0
  39. whop_sdk/resources/course_chapters.py +602 -0
  40. whop_sdk/resources/course_lesson_interactions.py +343 -0
  41. whop_sdk/resources/course_lessons.py +1040 -0
  42. whop_sdk/resources/course_students.py +327 -0
  43. whop_sdk/resources/courses.py +776 -0
  44. whop_sdk/resources/disputes.py +693 -0
  45. whop_sdk/resources/entries.py +556 -0
  46. whop_sdk/resources/experiences.py +983 -0
  47. whop_sdk/resources/forum_posts.py +656 -0
  48. whop_sdk/resources/forums.py +446 -0
  49. whop_sdk/resources/invoices.py +1099 -0
  50. whop_sdk/resources/ledger_accounts.py +171 -0
  51. whop_sdk/resources/members.py +429 -0
  52. whop_sdk/resources/memberships.py +818 -0
  53. whop_sdk/resources/messages.py +558 -0
  54. whop_sdk/resources/notifications.py +388 -0
  55. whop_sdk/resources/payment_tokens.py +359 -0
  56. whop_sdk/resources/payments.py +1040 -0
  57. whop_sdk/resources/plans.py +1001 -0
  58. whop_sdk/resources/products.py +970 -0
  59. whop_sdk/resources/promo_codes.py +668 -0
  60. whop_sdk/resources/reactions.py +423 -0
  61. whop_sdk/resources/refunds.py +347 -0
  62. whop_sdk/resources/reviews.py +332 -0
  63. whop_sdk/resources/setup_intents.py +349 -0
  64. whop_sdk/resources/shipments.py +451 -0
  65. whop_sdk/resources/support_channels.py +455 -0
  66. whop_sdk/resources/transfers.py +513 -0
  67. whop_sdk/resources/users.py +248 -0
  68. whop_sdk/resources/webhooks.py +69 -0
  69. whop_sdk/resources/withdrawals.py +341 -0
  70. whop_sdk/types/__init__.py +262 -0
  71. whop_sdk/types/access_token_create_params.py +64 -0
  72. whop_sdk/types/access_token_create_response.py +15 -0
  73. whop_sdk/types/account_link_create_params.py +27 -0
  74. whop_sdk/types/account_link_create_response.py +15 -0
  75. whop_sdk/types/app_build_create_params.py +72 -0
  76. whop_sdk/types/app_build_list_params.py +42 -0
  77. whop_sdk/types/app_build_list_response.py +50 -0
  78. whop_sdk/types/app_create_params.py +19 -0
  79. whop_sdk/types/app_list_params.py +59 -0
  80. whop_sdk/types/app_list_response.py +110 -0
  81. whop_sdk/types/app_type.py +7 -0
  82. whop_sdk/types/app_update_params.py +67 -0
  83. whop_sdk/types/assessment_question_types.py +7 -0
  84. whop_sdk/types/authorized_user_list_params.py +41 -0
  85. whop_sdk/types/authorized_user_list_response.py +33 -0
  86. whop_sdk/types/authorized_user_retrieve_response.py +33 -0
  87. whop_sdk/types/billing_reasons.py +9 -0
  88. whop_sdk/types/card_brands.py +25 -0
  89. whop_sdk/types/chat_channel_list_params.py +28 -0
  90. whop_sdk/types/chat_channel_list_response.py +43 -0
  91. whop_sdk/types/chat_channel_update_params.py +32 -0
  92. whop_sdk/types/checkout_configuration_create_params.py +373 -0
  93. whop_sdk/types/checkout_configuration_list_params.py +41 -0
  94. whop_sdk/types/checkout_configuration_list_response.py +104 -0
  95. whop_sdk/types/checkout_modes.py +7 -0
  96. whop_sdk/types/company_create_params.py +22 -0
  97. whop_sdk/types/company_list_params.py +38 -0
  98. whop_sdk/types/company_list_response.py +76 -0
  99. whop_sdk/types/course.py +122 -0
  100. whop_sdk/types/course_chapter.py +32 -0
  101. whop_sdk/types/course_chapter_create_params.py +16 -0
  102. whop_sdk/types/course_chapter_delete_response.py +7 -0
  103. whop_sdk/types/course_chapter_list_params.py +25 -0
  104. whop_sdk/types/course_chapter_list_response.py +16 -0
  105. whop_sdk/types/course_chapter_update_params.py +12 -0
  106. whop_sdk/types/course_create_params.py +78 -0
  107. whop_sdk/types/course_delete_response.py +7 -0
  108. whop_sdk/types/course_lesson_create_params.py +63 -0
  109. whop_sdk/types/course_lesson_delete_response.py +7 -0
  110. whop_sdk/types/course_lesson_interaction_completed_webhook_event.py +26 -0
  111. whop_sdk/types/course_lesson_interaction_list_params.py +34 -0
  112. whop_sdk/types/course_lesson_list_params.py +28 -0
  113. whop_sdk/types/course_lesson_list_response.py +57 -0
  114. whop_sdk/types/course_lesson_mark_as_completed_response.py +7 -0
  115. whop_sdk/types/course_lesson_start_response.py +7 -0
  116. whop_sdk/types/course_lesson_submit_assessment_params.py +26 -0
  117. whop_sdk/types/course_lesson_submit_assessment_response.py +62 -0
  118. whop_sdk/types/course_lesson_update_params.py +222 -0
  119. whop_sdk/types/course_list_params.py +28 -0
  120. whop_sdk/types/course_list_response.py +90 -0
  121. whop_sdk/types/course_student_list_params.py +28 -0
  122. whop_sdk/types/course_student_list_response.py +42 -0
  123. whop_sdk/types/course_student_retrieve_response.py +61 -0
  124. whop_sdk/types/course_update_params.py +114 -0
  125. whop_sdk/types/course_visibilities.py +7 -0
  126. whop_sdk/types/dispute.py +284 -0
  127. whop_sdk/types/dispute_created_webhook_event.py +26 -0
  128. whop_sdk/types/dispute_list_params.py +38 -0
  129. whop_sdk/types/dispute_list_response.py +77 -0
  130. whop_sdk/types/dispute_statuses.py +17 -0
  131. whop_sdk/types/dispute_update_evidence_params.py +159 -0
  132. whop_sdk/types/dispute_updated_webhook_event.py +26 -0
  133. whop_sdk/types/embed_type.py +7 -0
  134. whop_sdk/types/entry_approve_response.py +10 -0
  135. whop_sdk/types/entry_approved_webhook_event.py +26 -0
  136. whop_sdk/types/entry_created_webhook_event.py +26 -0
  137. whop_sdk/types/entry_deleted_webhook_event.py +26 -0
  138. whop_sdk/types/entry_denied_webhook_event.py +26 -0
  139. whop_sdk/types/entry_list_params.py +52 -0
  140. whop_sdk/types/entry_list_response.py +56 -0
  141. whop_sdk/types/experience_attach_params.py +12 -0
  142. whop_sdk/types/experience_create_params.py +22 -0
  143. whop_sdk/types/experience_delete_response.py +7 -0
  144. whop_sdk/types/experience_detach_params.py +12 -0
  145. whop_sdk/types/experience_duplicate_params.py +13 -0
  146. whop_sdk/types/experience_list_params.py +40 -0
  147. whop_sdk/types/experience_list_response.py +73 -0
  148. whop_sdk/types/experience_update_params.py +46 -0
  149. whop_sdk/types/forum_list_params.py +28 -0
  150. whop_sdk/types/forum_list_response.py +33 -0
  151. whop_sdk/types/forum_post_create_params.py +101 -0
  152. whop_sdk/types/forum_post_list_params.py +31 -0
  153. whop_sdk/types/forum_post_list_response.py +60 -0
  154. whop_sdk/types/forum_post_update_params.py +56 -0
  155. whop_sdk/types/forum_post_visibility_type.py +7 -0
  156. whop_sdk/types/forum_update_params.py +23 -0
  157. whop_sdk/types/invoice_create_params.py +515 -0
  158. whop_sdk/types/invoice_created_webhook_event.py +26 -0
  159. whop_sdk/types/invoice_list_params.py +53 -0
  160. whop_sdk/types/invoice_paid_webhook_event.py +26 -0
  161. whop_sdk/types/invoice_past_due_webhook_event.py +26 -0
  162. whop_sdk/types/invoice_void_response.py +7 -0
  163. whop_sdk/types/invoice_voided_webhook_event.py +26 -0
  164. whop_sdk/types/languages.py +30 -0
  165. whop_sdk/types/ledger_account_retrieve_response.py +93 -0
  166. whop_sdk/types/lesson.py +219 -0
  167. whop_sdk/types/lesson_types.py +7 -0
  168. whop_sdk/types/lesson_visibilities.py +7 -0
  169. whop_sdk/types/member_list_params.py +73 -0
  170. whop_sdk/types/member_list_response.py +65 -0
  171. whop_sdk/types/member_retrieve_response.py +79 -0
  172. whop_sdk/types/membership_activated_webhook_event.py +29 -0
  173. whop_sdk/types/membership_cancel_params.py +13 -0
  174. whop_sdk/types/membership_deactivated_webhook_event.py +29 -0
  175. whop_sdk/types/membership_list_params.py +73 -0
  176. whop_sdk/types/membership_list_response.py +128 -0
  177. whop_sdk/types/membership_pause_params.py +16 -0
  178. whop_sdk/types/membership_update_params.py +13 -0
  179. whop_sdk/types/message_create_params.py +63 -0
  180. whop_sdk/types/message_list_params.py +30 -0
  181. whop_sdk/types/message_list_response.py +90 -0
  182. whop_sdk/types/message_update_params.py +45 -0
  183. whop_sdk/types/notification_create_params.py +93 -0
  184. whop_sdk/types/notification_create_response.py +10 -0
  185. whop_sdk/types/payment_create_params.py +162 -0
  186. whop_sdk/types/payment_failed_webhook_event.py +26 -0
  187. whop_sdk/types/payment_list_params.py +67 -0
  188. whop_sdk/types/payment_list_response.py +273 -0
  189. whop_sdk/types/payment_method_types.py +94 -0
  190. whop_sdk/types/payment_pending_webhook_event.py +26 -0
  191. whop_sdk/types/payment_provider.py +9 -0
  192. whop_sdk/types/payment_refund_params.py +13 -0
  193. whop_sdk/types/payment_succeeded_webhook_event.py +26 -0
  194. whop_sdk/types/payment_token_list_params.py +38 -0
  195. whop_sdk/types/payment_token_list_response.py +41 -0
  196. whop_sdk/types/payment_token_retrieve_params.py +12 -0
  197. whop_sdk/types/payment_token_retrieve_response.py +41 -0
  198. whop_sdk/types/plan_create_params.py +162 -0
  199. whop_sdk/types/plan_delete_response.py +7 -0
  200. whop_sdk/types/plan_list_params.py +57 -0
  201. whop_sdk/types/plan_list_response.py +128 -0
  202. whop_sdk/types/plan_update_params.py +155 -0
  203. whop_sdk/types/product_create_params.py +147 -0
  204. whop_sdk/types/product_delete_response.py +7 -0
  205. whop_sdk/types/product_list_params.py +49 -0
  206. whop_sdk/types/product_update_params.py +82 -0
  207. whop_sdk/types/promo_code.py +90 -0
  208. whop_sdk/types/promo_code_create_params.py +70 -0
  209. whop_sdk/types/promo_code_delete_response.py +7 -0
  210. whop_sdk/types/promo_code_list_params.py +45 -0
  211. whop_sdk/types/promo_code_list_response.py +79 -0
  212. whop_sdk/types/promo_code_status.py +7 -0
  213. whop_sdk/types/promo_duration.py +7 -0
  214. whop_sdk/types/reaction_create_params.py +19 -0
  215. whop_sdk/types/reaction_list_params.py +25 -0
  216. whop_sdk/types/reaction_list_response.py +32 -0
  217. whop_sdk/types/refund_created_webhook_event.py +154 -0
  218. whop_sdk/types/refund_list_params.py +38 -0
  219. whop_sdk/types/refund_list_response.py +53 -0
  220. whop_sdk/types/refund_reference_status.py +7 -0
  221. whop_sdk/types/refund_reference_type.py +9 -0
  222. whop_sdk/types/refund_retrieve_response.py +129 -0
  223. whop_sdk/types/refund_status.py +7 -0
  224. whop_sdk/types/refund_updated_webhook_event.py +154 -0
  225. whop_sdk/types/review_list_params.py +40 -0
  226. whop_sdk/types/review_list_response.py +78 -0
  227. whop_sdk/types/review_retrieve_response.py +103 -0
  228. whop_sdk/types/review_status.py +7 -0
  229. whop_sdk/types/setup_intent.py +111 -0
  230. whop_sdk/types/setup_intent_canceled_webhook_event.py +29 -0
  231. whop_sdk/types/setup_intent_list_params.py +38 -0
  232. whop_sdk/types/setup_intent_list_response.py +111 -0
  233. whop_sdk/types/setup_intent_requires_action_webhook_event.py +29 -0
  234. whop_sdk/types/setup_intent_status.py +7 -0
  235. whop_sdk/types/setup_intent_succeeded_webhook_event.py +29 -0
  236. whop_sdk/types/shared/__init__.py +62 -0
  237. whop_sdk/types/shared/access_level.py +7 -0
  238. whop_sdk/types/shared/access_pass_type.py +7 -0
  239. whop_sdk/types/shared/app.py +187 -0
  240. whop_sdk/types/shared/app_build.py +50 -0
  241. whop_sdk/types/shared/app_build_platforms.py +7 -0
  242. whop_sdk/types/shared/app_build_statuses.py +7 -0
  243. whop_sdk/types/shared/app_statuses.py +7 -0
  244. whop_sdk/types/shared/app_view_type.py +7 -0
  245. whop_sdk/types/shared/authorized_user_roles.py +9 -0
  246. whop_sdk/types/shared/business_types.py +22 -0
  247. whop_sdk/types/shared/chat_channel.py +43 -0
  248. whop_sdk/types/shared/checkout_configuration.py +104 -0
  249. whop_sdk/types/shared/collection_method.py +7 -0
  250. whop_sdk/types/shared/company.py +91 -0
  251. whop_sdk/types/shared/course_lesson_interaction.py +63 -0
  252. whop_sdk/types/shared/course_lesson_interaction_list_item.py +44 -0
  253. whop_sdk/types/shared/currency.py +93 -0
  254. whop_sdk/types/shared/custom_cta.py +21 -0
  255. whop_sdk/types/shared/direction.py +7 -0
  256. whop_sdk/types/shared/dms_post_types.py +7 -0
  257. whop_sdk/types/shared/email_notification_preferences.py +7 -0
  258. whop_sdk/types/shared/entry.py +70 -0
  259. whop_sdk/types/shared/entry_status.py +7 -0
  260. whop_sdk/types/shared/experience.py +91 -0
  261. whop_sdk/types/shared/forum.py +33 -0
  262. whop_sdk/types/shared/forum_post.py +60 -0
  263. whop_sdk/types/shared/friendly_receipt_status.py +24 -0
  264. whop_sdk/types/shared/global_affiliate_status.py +7 -0
  265. whop_sdk/types/shared/industry_types.py +67 -0
  266. whop_sdk/types/shared/invoice.py +64 -0
  267. whop_sdk/types/shared/invoice_list_item.py +64 -0
  268. whop_sdk/types/shared/invoice_status.py +7 -0
  269. whop_sdk/types/shared/member_most_recent_actions.py +22 -0
  270. whop_sdk/types/shared/member_statuses.py +7 -0
  271. whop_sdk/types/shared/membership.py +128 -0
  272. whop_sdk/types/shared/membership_status.py +9 -0
  273. whop_sdk/types/shared/message.py +90 -0
  274. whop_sdk/types/shared/page_info.py +21 -0
  275. whop_sdk/types/shared/payment.py +273 -0
  276. whop_sdk/types/shared/plan.py +159 -0
  277. whop_sdk/types/shared/plan_type.py +7 -0
  278. whop_sdk/types/shared/product.py +132 -0
  279. whop_sdk/types/shared/product_list_item.py +57 -0
  280. whop_sdk/types/shared/promo_type.py +7 -0
  281. whop_sdk/types/shared/reaction.py +32 -0
  282. whop_sdk/types/shared/receipt_status.py +7 -0
  283. whop_sdk/types/shared/release_method.py +7 -0
  284. whop_sdk/types/shared/shipment.py +48 -0
  285. whop_sdk/types/shared/shipment_carrier.py +84 -0
  286. whop_sdk/types/shared/shipment_status.py +18 -0
  287. whop_sdk/types/shared/shipment_substatus.py +36 -0
  288. whop_sdk/types/shared/support_channel.py +39 -0
  289. whop_sdk/types/shared/tax_type.py +7 -0
  290. whop_sdk/types/shared/transfer.py +112 -0
  291. whop_sdk/types/shared/visibility.py +7 -0
  292. whop_sdk/types/shared/visibility_filter.py +9 -0
  293. whop_sdk/types/shared/who_can_comment_types.py +7 -0
  294. whop_sdk/types/shared/who_can_post.py +7 -0
  295. whop_sdk/types/shared/who_can_post_types.py +7 -0
  296. whop_sdk/types/shared/who_can_react.py +7 -0
  297. whop_sdk/types/shared_params/__init__.py +34 -0
  298. whop_sdk/types/shared_params/access_level.py +9 -0
  299. whop_sdk/types/shared_params/access_pass_type.py +9 -0
  300. whop_sdk/types/shared_params/app_build_platforms.py +9 -0
  301. whop_sdk/types/shared_params/app_build_statuses.py +9 -0
  302. whop_sdk/types/shared_params/app_statuses.py +9 -0
  303. whop_sdk/types/shared_params/app_view_type.py +9 -0
  304. whop_sdk/types/shared_params/authorized_user_roles.py +11 -0
  305. whop_sdk/types/shared_params/business_types.py +24 -0
  306. whop_sdk/types/shared_params/collection_method.py +9 -0
  307. whop_sdk/types/shared_params/currency.py +95 -0
  308. whop_sdk/types/shared_params/custom_cta.py +23 -0
  309. whop_sdk/types/shared_params/direction.py +9 -0
  310. whop_sdk/types/shared_params/email_notification_preferences.py +9 -0
  311. whop_sdk/types/shared_params/entry_status.py +9 -0
  312. whop_sdk/types/shared_params/friendly_receipt_status.py +26 -0
  313. whop_sdk/types/shared_params/global_affiliate_status.py +9 -0
  314. whop_sdk/types/shared_params/industry_types.py +69 -0
  315. whop_sdk/types/shared_params/invoice_status.py +9 -0
  316. whop_sdk/types/shared_params/member_most_recent_actions.py +24 -0
  317. whop_sdk/types/shared_params/member_statuses.py +9 -0
  318. whop_sdk/types/shared_params/membership_status.py +11 -0
  319. whop_sdk/types/shared_params/plan_type.py +9 -0
  320. whop_sdk/types/shared_params/promo_type.py +9 -0
  321. whop_sdk/types/shared_params/receipt_status.py +9 -0
  322. whop_sdk/types/shared_params/release_method.py +9 -0
  323. whop_sdk/types/shared_params/tax_type.py +9 -0
  324. whop_sdk/types/shared_params/visibility.py +9 -0
  325. whop_sdk/types/shared_params/visibility_filter.py +11 -0
  326. whop_sdk/types/shared_params/who_can_comment_types.py +9 -0
  327. whop_sdk/types/shared_params/who_can_post.py +9 -0
  328. whop_sdk/types/shared_params/who_can_post_types.py +9 -0
  329. whop_sdk/types/shared_params/who_can_react.py +9 -0
  330. whop_sdk/types/shipment_create_params.py +18 -0
  331. whop_sdk/types/shipment_list_params.py +31 -0
  332. whop_sdk/types/shipment_list_response.py +48 -0
  333. whop_sdk/types/support_channel_create_params.py +15 -0
  334. whop_sdk/types/support_channel_list_params.py +40 -0
  335. whop_sdk/types/support_channel_list_response.py +39 -0
  336. whop_sdk/types/transfer_create_params.py +39 -0
  337. whop_sdk/types/transfer_list_params.py +50 -0
  338. whop_sdk/types/transfer_list_response.py +38 -0
  339. whop_sdk/types/unwrap_webhook_event.py +52 -0
  340. whop_sdk/types/user_check_access_response.py +14 -0
  341. whop_sdk/types/user_retrieve_response.py +36 -0
  342. whop_sdk/types/withdrawal_fee_types.py +7 -0
  343. whop_sdk/types/withdrawal_list_params.py +38 -0
  344. whop_sdk/types/withdrawal_list_response.py +45 -0
  345. whop_sdk/types/withdrawal_retrieve_response.py +154 -0
  346. whop_sdk/types/withdrawal_speeds.py +7 -0
  347. whop_sdk/types/withdrawal_status.py +9 -0
  348. whop_sdk/types/withdrawal_types.py +7 -0
  349. whop_sdk-0.0.10.dist-info/METADATA +509 -0
  350. whop_sdk-0.0.10.dist-info/RECORD +352 -0
  351. whop_sdk-0.0.10.dist-info/WHEEL +4 -0
  352. whop_sdk-0.0.10.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryCreatedWebhookEvent"]
10
+
11
+
12
+ class EntryCreatedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.created"]
26
+ """The webhook event type"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryDeletedWebhookEvent"]
10
+
11
+
12
+ class EntryDeletedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.deleted"]
26
+ """The webhook event type"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryDeniedWebhookEvent"]
10
+
11
+
12
+ class EntryDeniedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.denied"]
26
+ """The webhook event type"""
@@ -0,0 +1,52 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List, Union, Optional
6
+ from datetime import datetime
7
+ from typing_extensions import Literal, Required, Annotated, TypedDict
8
+
9
+ from .._types import SequenceNotStr
10
+ from .._utils import PropertyInfo
11
+ from .shared.direction import Direction
12
+ from .shared.entry_status import EntryStatus
13
+
14
+ __all__ = ["EntryListParams"]
15
+
16
+
17
+ class EntryListParams(TypedDict, total=False):
18
+ company_id: Required[str]
19
+ """The ID of the company"""
20
+
21
+ after: Optional[str]
22
+ """Returns the elements in the list that come after the specified cursor."""
23
+
24
+ before: Optional[str]
25
+ """Returns the elements in the list that come before the specified cursor."""
26
+
27
+ created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
28
+ """The minimum creation date to filter by"""
29
+
30
+ created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
31
+ """The maximum creation date to filter by"""
32
+
33
+ direction: Optional[Direction]
34
+ """The direction of the sort."""
35
+
36
+ first: Optional[int]
37
+ """Returns the first _n_ elements from the list."""
38
+
39
+ last: Optional[int]
40
+ """Returns the last _n_ elements from the list."""
41
+
42
+ order: Optional[Literal["id", "created_at"]]
43
+ """Which columns can be used to sort."""
44
+
45
+ plan_ids: Optional[SequenceNotStr[str]]
46
+ """The plan IDs to filter the entries by"""
47
+
48
+ product_ids: Optional[SequenceNotStr[str]]
49
+ """The product IDs to filter the entries by"""
50
+
51
+ statuses: Optional[List[EntryStatus]]
52
+ """The statuses to filter the entries by"""
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry_status import EntryStatus
8
+
9
+ __all__ = ["EntryListResponse", "Plan", "Product", "User"]
10
+
11
+
12
+ class Plan(BaseModel):
13
+ id: str
14
+ """The internal ID of the plan."""
15
+
16
+
17
+ class Product(BaseModel):
18
+ id: str
19
+ """The internal ID of the public product."""
20
+
21
+ title: str
22
+ """The title of the product. Use for Whop 4.0."""
23
+
24
+
25
+ class User(BaseModel):
26
+ id: str
27
+ """The internal ID of the user."""
28
+
29
+ email: Optional[str] = None
30
+ """The email of the user"""
31
+
32
+ name: Optional[str] = None
33
+ """The name of the user from their Whop account."""
34
+
35
+ username: str
36
+ """The username of the user from their Whop account."""
37
+
38
+
39
+ class EntryListResponse(BaseModel):
40
+ id: str
41
+ """The internal ID of the entry."""
42
+
43
+ created_at: Optional[datetime] = None
44
+ """When the entry was created."""
45
+
46
+ plan: Optional[Plan] = None
47
+ """The waitlist plan the entry if for."""
48
+
49
+ product: Optional[Product] = None
50
+ """The product tied to this entry, if there is one."""
51
+
52
+ status: EntryStatus
53
+ """The status of the entry."""
54
+
55
+ user: User
56
+ """The user who created the entry."""
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["ExperienceAttachParams"]
8
+
9
+
10
+ class ExperienceAttachParams(TypedDict, total=False):
11
+ product_id: Required[str]
12
+ """The ID of the Access Pass to add the Experience to."""
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ __all__ = ["ExperienceCreateParams"]
9
+
10
+
11
+ class ExperienceCreateParams(TypedDict, total=False):
12
+ app_id: Required[str]
13
+ """The ID of the app to create the experience for"""
14
+
15
+ company_id: Required[str]
16
+ """The ID of the company to create the experience for"""
17
+
18
+ name: Optional[str]
19
+ """The name of the experience"""
20
+
21
+ section_id: Optional[str]
22
+ """The ID of the section to create the experience in"""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import TypeAlias
4
+
5
+ __all__ = ["ExperienceDeleteResponse"]
6
+
7
+ ExperienceDeleteResponse: TypeAlias = bool
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["ExperienceDetachParams"]
8
+
9
+
10
+ class ExperienceDetachParams(TypedDict, total=False):
11
+ product_id: Required[str]
12
+ """The ID of the Access Pass to add the Experience to."""
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
7
+
8
+ __all__ = ["ExperienceDuplicateParams"]
9
+
10
+
11
+ class ExperienceDuplicateParams(TypedDict, total=False):
12
+ name: Optional[str]
13
+ """The name of the new experience"""
@@ -0,0 +1,40 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Optional
6
+ from datetime import datetime
7
+ from typing_extensions import Required, Annotated, TypedDict
8
+
9
+ from .._utils import PropertyInfo
10
+
11
+ __all__ = ["ExperienceListParams"]
12
+
13
+
14
+ class ExperienceListParams(TypedDict, total=False):
15
+ company_id: Required[str]
16
+ """The ID of the company to filter experiences by"""
17
+
18
+ after: Optional[str]
19
+ """Returns the elements in the list that come after the specified cursor."""
20
+
21
+ app_id: Optional[str]
22
+ """The ID of the app to filter experiences by"""
23
+
24
+ before: Optional[str]
25
+ """Returns the elements in the list that come before the specified cursor."""
26
+
27
+ created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
28
+ """The minimum creation date to filter by"""
29
+
30
+ created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
31
+ """The maximum creation date to filter by"""
32
+
33
+ first: Optional[int]
34
+ """Returns the first _n_ elements from the list."""
35
+
36
+ last: Optional[int]
37
+ """Returns the last _n_ elements from the list."""
38
+
39
+ product_id: Optional[str]
40
+ """The ID of the product to filter experiences by"""
@@ -0,0 +1,73 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ExperienceListResponse", "App", "AppIcon", "Company", "Image"]
9
+
10
+
11
+ class AppIcon(BaseModel):
12
+ url: Optional[str] = None
13
+ """This is the URL you use to render optimized attachments on the client.
14
+
15
+ This should be used for apps.
16
+ """
17
+
18
+
19
+ class App(BaseModel):
20
+ id: str
21
+ """The ID of the app"""
22
+
23
+ icon: Optional[AppIcon] = None
24
+ """The icon for the app.
25
+
26
+ This icon is shown on discovery, on the product page, on checkout, and as a
27
+ default icon for the experiences.
28
+ """
29
+
30
+ name: str
31
+ """The name of the app"""
32
+
33
+
34
+ class Company(BaseModel):
35
+ id: str
36
+ """The ID (tag) of the company."""
37
+
38
+ route: str
39
+ """The slug/route of the company on the Whop site."""
40
+
41
+ title: str
42
+ """The title of the company."""
43
+
44
+
45
+ class Image(BaseModel):
46
+ url: Optional[str] = None
47
+ """This is the URL you use to render optimized attachments on the client.
48
+
49
+ This should be used for apps.
50
+ """
51
+
52
+
53
+ class ExperienceListResponse(BaseModel):
54
+ id: str
55
+ """The unique ID representing this experience"""
56
+
57
+ app: App
58
+ """The experience interface for this experience."""
59
+
60
+ company: Company
61
+ """The company that owns this experience."""
62
+
63
+ created_at: datetime
64
+ """The timestamp of when this experience was created."""
65
+
66
+ image: Optional[Image] = None
67
+ """The logo for the experience."""
68
+
69
+ name: str
70
+ """The written name of the description."""
71
+
72
+ order: Optional[str] = None
73
+ """The order of the experience in the section"""
@@ -0,0 +1,46 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Optional
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ __all__ = ["ExperienceUpdateParams", "Logo", "LogoAttachmentInputWithDirectUploadID", "LogoAttachmentInputWithID"]
9
+
10
+
11
+ class ExperienceUpdateParams(TypedDict, total=False):
12
+ access_level: Optional[Literal["public", "private"]]
13
+ """The different access levels for experiences (PUBLIC IS NEVER USED ANYMORE)."""
14
+
15
+ logo: Optional[Logo]
16
+ """The logo for the experience"""
17
+
18
+ name: Optional[str]
19
+ """The name of the experience."""
20
+
21
+ order: Optional[str]
22
+ """The order of the experience in the section."""
23
+
24
+ section_id: Optional[str]
25
+ """The ID of the section to update."""
26
+
27
+
28
+ class LogoAttachmentInputWithDirectUploadID(TypedDict, total=False):
29
+ direct_upload_id: Required[str]
30
+ """This ID should be used the first time you upload an attachment.
31
+
32
+ It is the ID of the direct upload that was created when uploading the file to S3
33
+ via the mediaDirectUpload mutation.
34
+ """
35
+
36
+
37
+ class LogoAttachmentInputWithID(TypedDict, total=False):
38
+ id: Required[str]
39
+ """The ID of an existing attachment object.
40
+
41
+ Use this when updating a resource and keeping a subset of the attachments. Don't
42
+ use this unless you know what you're doing.
43
+ """
44
+
45
+
46
+ Logo: TypeAlias = Union[LogoAttachmentInputWithDirectUploadID, LogoAttachmentInputWithID]
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ __all__ = ["ForumListParams"]
9
+
10
+
11
+ class ForumListParams(TypedDict, total=False):
12
+ company_id: Required[str]
13
+ """The ID of the company to list forums for"""
14
+
15
+ after: Optional[str]
16
+ """Returns the elements in the list that come after the specified cursor."""
17
+
18
+ before: Optional[str]
19
+ """Returns the elements in the list that come before the specified cursor."""
20
+
21
+ first: Optional[int]
22
+ """Returns the first _n_ elements from the list."""
23
+
24
+ last: Optional[int]
25
+ """Returns the last _n_ elements from the list."""
26
+
27
+ product_id: Optional[str]
28
+ """If provided, only forums connected to this product are returned"""
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+ from .shared.who_can_post_types import WhoCanPostTypes
5
+ from .shared.who_can_comment_types import WhoCanCommentTypes
6
+ from .shared.email_notification_preferences import EmailNotificationPreferences
7
+
8
+ __all__ = ["ForumListResponse", "Experience"]
9
+
10
+
11
+ class Experience(BaseModel):
12
+ id: str
13
+ """The unique ID representing this experience"""
14
+
15
+ name: str
16
+ """The written name of the description."""
17
+
18
+
19
+ class ForumListResponse(BaseModel):
20
+ id: str
21
+ """The unique identifier for the entity"""
22
+
23
+ email_notification_preference: EmailNotificationPreferences
24
+ """The email notification preference for this forum"""
25
+
26
+ experience: Experience
27
+ """The experience for this forum"""
28
+
29
+ who_can_comment: WhoCanCommentTypes
30
+ """Who can comment on this forum"""
31
+
32
+ who_can_post: WhoCanPostTypes
33
+ """Who can post on this forum"""
@@ -0,0 +1,101 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Iterable, Optional
6
+ from typing_extensions import Required, TypeAlias, TypedDict
7
+
8
+ from .shared.currency import Currency
9
+ from .forum_post_visibility_type import ForumPostVisibilityType
10
+
11
+ __all__ = [
12
+ "ForumPostCreateParams",
13
+ "Attachment",
14
+ "AttachmentAttachmentInputWithDirectUploadID",
15
+ "AttachmentAttachmentInputWithID",
16
+ "Poll",
17
+ "PollOption",
18
+ ]
19
+
20
+
21
+ class ForumPostCreateParams(TypedDict, total=False):
22
+ experience_id: Required[str]
23
+ """The experience to create this post in"""
24
+
25
+ attachments: Optional[Iterable[Attachment]]
26
+ """The attachments for this post"""
27
+
28
+ content: Optional[str]
29
+ """This is the main body of the post in Markdown format.
30
+
31
+ Hidden if paywalled and user hasn't purchased access to it.
32
+ """
33
+
34
+ is_mention: Optional[bool]
35
+ """
36
+ This is used to determine if the post should be sent as a 'mention' notification
37
+ to all of the users who are in the experience. This means that anyone with
38
+ 'mentions' enabled will receive a notification about this post.
39
+ """
40
+
41
+ parent_id: Optional[str]
42
+ """The ID of the parent post.
43
+
44
+ Set it to the ID of the post you want to comment on or don't include it if its a
45
+ top level post.
46
+ """
47
+
48
+ paywall_amount: Optional[float]
49
+ """The amount to paywall this post by.
50
+
51
+ A paywalled post requires the user to purchase it in order to view its content.
52
+ """
53
+
54
+ paywall_currency: Optional[Currency]
55
+ """The available currencies on the platform"""
56
+
57
+ pinned: Optional[bool]
58
+ """Whether the post should be pinned"""
59
+
60
+ poll: Optional[Poll]
61
+ """The poll for this post"""
62
+
63
+ title: Optional[str]
64
+ """The title of the post. Only visible if paywalled."""
65
+
66
+ visibility: Optional[ForumPostVisibilityType]
67
+ """The visibility types for forum posts"""
68
+
69
+
70
+ class AttachmentAttachmentInputWithDirectUploadID(TypedDict, total=False):
71
+ direct_upload_id: Required[str]
72
+ """This ID should be used the first time you upload an attachment.
73
+
74
+ It is the ID of the direct upload that was created when uploading the file to S3
75
+ via the mediaDirectUpload mutation.
76
+ """
77
+
78
+
79
+ class AttachmentAttachmentInputWithID(TypedDict, total=False):
80
+ id: Required[str]
81
+ """The ID of an existing attachment object.
82
+
83
+ Use this when updating a resource and keeping a subset of the attachments. Don't
84
+ use this unless you know what you're doing.
85
+ """
86
+
87
+
88
+ Attachment: TypeAlias = Union[AttachmentAttachmentInputWithDirectUploadID, AttachmentAttachmentInputWithID]
89
+
90
+
91
+ class PollOption(TypedDict, total=False):
92
+ id: Required[str]
93
+ """Sequential ID for the poll option (starting from '1')"""
94
+
95
+ text: Required[str]
96
+ """The text of the poll option"""
97
+
98
+
99
+ class Poll(TypedDict, total=False):
100
+ options: Required[Iterable[PollOption]]
101
+ """The options for the poll. Must have sequential IDs starting from 1"""
@@ -0,0 +1,31 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ __all__ = ["ForumPostListParams"]
9
+
10
+
11
+ class ForumPostListParams(TypedDict, total=False):
12
+ experience_id: Required[str]
13
+ """The ID of the experience to list forum posts for"""
14
+
15
+ after: Optional[str]
16
+ """Returns the elements in the list that come after the specified cursor."""
17
+
18
+ before: Optional[str]
19
+ """Returns the elements in the list that come before the specified cursor."""
20
+
21
+ first: Optional[int]
22
+ """Returns the first _n_ elements from the list."""
23
+
24
+ last: Optional[int]
25
+ """Returns the last _n_ elements from the list."""
26
+
27
+ parent_id: Optional[str]
28
+ """The ID of the parent post to list forum post comments for"""
29
+
30
+ pinned: Optional[bool]
31
+ """Set to true to only return pinned posts"""
@@ -0,0 +1,60 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ForumPostListResponse", "User"]
9
+
10
+
11
+ class User(BaseModel):
12
+ id: str
13
+ """The internal ID of the user."""
14
+
15
+ name: Optional[str] = None
16
+ """The name of the user from their Whop account."""
17
+
18
+ username: str
19
+ """The username of the user from their Whop account."""
20
+
21
+
22
+ class ForumPostListResponse(BaseModel):
23
+ id: str
24
+ """The unique identifier of the resource."""
25
+
26
+ comment_count: int
27
+ """The amount of comments on this post"""
28
+
29
+ content: Optional[str] = None
30
+ """The content of the forum post in Markdown format"""
31
+
32
+ created_at: datetime
33
+ """The timestamp when the post was created"""
34
+
35
+ is_edited: bool
36
+ """Whether the forum post has been edited"""
37
+
38
+ is_pinned: bool
39
+ """Whether this forum post is pinned"""
40
+
41
+ is_poster_admin: bool
42
+ """Whether the user that sent the post is an admin of the company"""
43
+
44
+ like_count: Optional[int] = None
45
+ """The number of likes this post has received"""
46
+
47
+ parent_id: Optional[str] = None
48
+ """The ID of the parent forum post, if applicable"""
49
+
50
+ title: Optional[str] = None
51
+ """The title of the forum post"""
52
+
53
+ updated_at: datetime
54
+ """The timestamp when the post was last updated"""
55
+
56
+ user: User
57
+ """The user who created this forum post"""
58
+
59
+ view_count: Optional[int] = None
60
+ """The number of times this message has been viewed"""