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,132 @@
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
+ from typing_extensions import Literal
6
+
7
+ from ..._models import BaseModel
8
+ from .custom_cta import CustomCta
9
+ from .visibility import Visibility
10
+ from .business_types import BusinessTypes
11
+ from .industry_types import IndustryTypes
12
+ from .global_affiliate_status import GlobalAffiliateStatus
13
+
14
+ __all__ = ["Product", "Company", "OwnerUser", "ProductTaxCode"]
15
+
16
+
17
+ class Company(BaseModel):
18
+ id: str
19
+ """The ID (tag) of the company."""
20
+
21
+ route: str
22
+ """The slug/route of the company on the Whop site."""
23
+
24
+ title: str
25
+ """The title of the company."""
26
+
27
+
28
+ class OwnerUser(BaseModel):
29
+ id: str
30
+ """The internal ID 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 ProductTaxCode(BaseModel):
40
+ id: str
41
+ """The internal ID of the product tax code."""
42
+
43
+ name: str
44
+ """The name of the product tax code."""
45
+
46
+ product_type: Literal["physical", "digital", "services"]
47
+ """The type of product this tax code applies to."""
48
+
49
+
50
+ class Product(BaseModel):
51
+ id: str
52
+ """The internal ID of the public product."""
53
+
54
+ business_type: Optional[BusinessTypes] = None
55
+ """The different business types a company can be."""
56
+
57
+ company: Company
58
+ """A short type of the company that this product belongs to."""
59
+
60
+ created_at: datetime
61
+ """When the product was created."""
62
+
63
+ custom_cta: CustomCta
64
+ """The custom call to action for the product."""
65
+
66
+ custom_cta_url: Optional[str] = None
67
+ """The custom call to action URL for the product, if any."""
68
+
69
+ custom_statement_descriptor: Optional[str] = None
70
+ """The custom statement descriptor for the product."""
71
+
72
+ description: Optional[str] = None
73
+ """A short description of what the company offers or does."""
74
+
75
+ external_identifier: Optional[str] = None
76
+ """A unique identifier used to create or update products.
77
+
78
+ When provided on product creation endpoints, we’ll look up an existing product
79
+ by this identifier — if it exists, we’ll update it; if not, we’ll create a new
80
+ one.
81
+ """
82
+
83
+ global_affiliate_percentage: Optional[float] = None
84
+ """
85
+ The percentage of a transaction a user is eligible to earn from the whop
86
+ marketplace global affiliate program.
87
+ """
88
+
89
+ global_affiliate_status: GlobalAffiliateStatus
90
+ """The status of the global affiliate program for this product."""
91
+
92
+ headline: Optional[str] = None
93
+ """The headline of the product."""
94
+
95
+ industry_type: Optional[IndustryTypes] = None
96
+ """The different industry types a company can be in."""
97
+
98
+ member_affiliate_percentage: Optional[float] = None
99
+ """
100
+ The percentage of a transaction a user is eligible to earn from the whop
101
+ marketplace member affiliate program.
102
+ """
103
+
104
+ member_affiliate_status: GlobalAffiliateStatus
105
+ """The status of the member affiliate program for this product."""
106
+
107
+ member_count: int
108
+ """The number of active users for this product."""
109
+
110
+ owner_user: OwnerUser
111
+ """The user that owns the product (company owner)."""
112
+
113
+ product_tax_code: Optional[ProductTaxCode] = None
114
+ """The product tax code for the product, if any."""
115
+
116
+ published_reviews_count: int
117
+ """The number of reviews that have been published for the product."""
118
+
119
+ route: str
120
+ """The route of the product."""
121
+
122
+ title: str
123
+ """The title of the product. Use for Whop 4.0."""
124
+
125
+ updated_at: datetime
126
+ """When the product was updated."""
127
+
128
+ verified: bool
129
+ """Whether this product is Whop verified."""
130
+
131
+ visibility: Visibility
132
+ """This product will/will not be displayed publicly."""
@@ -0,0 +1,57 @@
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 .visibility import Visibility
8
+ from .business_types import BusinessTypes
9
+ from .industry_types import IndustryTypes
10
+
11
+ __all__ = ["ProductListItem"]
12
+
13
+
14
+ class ProductListItem(BaseModel):
15
+ id: str
16
+ """The internal ID of the public product."""
17
+
18
+ business_type: Optional[BusinessTypes] = None
19
+ """The different business types a company can be."""
20
+
21
+ created_at: datetime
22
+ """When the product was created."""
23
+
24
+ external_identifier: Optional[str] = None
25
+ """A unique identifier used to create or update products.
26
+
27
+ When provided on product creation endpoints, we’ll look up an existing product
28
+ by this identifier — if it exists, we’ll update it; if not, we’ll create a new
29
+ one.
30
+ """
31
+
32
+ headline: Optional[str] = None
33
+ """The headline of the product."""
34
+
35
+ industry_type: Optional[IndustryTypes] = None
36
+ """The different industry types a company can be in."""
37
+
38
+ member_count: int
39
+ """The number of active users for this product."""
40
+
41
+ published_reviews_count: int
42
+ """The number of reviews that have been published for the product."""
43
+
44
+ route: str
45
+ """The route of the product."""
46
+
47
+ title: str
48
+ """The title of the product. Use for Whop 4.0."""
49
+
50
+ updated_at: datetime
51
+ """When the product was updated."""
52
+
53
+ verified: bool
54
+ """Whether this product is Whop verified."""
55
+
56
+ visibility: Visibility
57
+ """This product will/will not be displayed publicly."""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["PromoType"]
6
+
7
+ PromoType: TypeAlias = Literal["percentage", "flat_amount"]
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["Reaction", "User"]
8
+
9
+
10
+ class User(BaseModel):
11
+ id: str
12
+ """The internal ID of the user."""
13
+
14
+ name: Optional[str] = None
15
+ """The name of the user from their Whop account."""
16
+
17
+ username: str
18
+ """The username of the user from their Whop account."""
19
+
20
+
21
+ class Reaction(BaseModel):
22
+ id: str
23
+ """The unique identifier for the entity"""
24
+
25
+ emoji: Optional[str] = None
26
+ """The emoji that was used in shortcode format (:heart:)"""
27
+
28
+ resource_id: str
29
+ """The ID of the post this reaction belongs to"""
30
+
31
+ user: User
32
+ """The user who reacted to the post"""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["ReceiptStatus"]
6
+
7
+ ReceiptStatus: TypeAlias = Literal["draft", "open", "paid", "pending", "uncollectible", "unresolved", "void"]
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["ReleaseMethod"]
6
+
7
+ ReleaseMethod: TypeAlias = Literal["buy_now", "waitlist"]
@@ -0,0 +1,48 @@
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 .shipment_status import ShipmentStatus
8
+ from .shipment_carrier import ShipmentCarrier
9
+ from .shipment_substatus import ShipmentSubstatus
10
+
11
+ __all__ = ["Shipment", "Payment"]
12
+
13
+
14
+ class Payment(BaseModel):
15
+ id: str
16
+ """The payment ID"""
17
+
18
+
19
+ class Shipment(BaseModel):
20
+ id: str
21
+ """The ID of the shipment"""
22
+
23
+ carrier: ShipmentCarrier
24
+ """The carrier of the shipment"""
25
+
26
+ created_at: datetime
27
+ """The date and time the shipment was created"""
28
+
29
+ delivery_estimate: Optional[datetime] = None
30
+ """The delivery estimate of the shipment"""
31
+
32
+ payment: Optional[Payment] = None
33
+ """The payment of the shipment"""
34
+
35
+ service: Optional[str] = None
36
+ """The service of the shipment"""
37
+
38
+ status: ShipmentStatus
39
+ """The status of the shipment"""
40
+
41
+ substatus: Optional[ShipmentSubstatus] = None
42
+ """The substatus of a shipment"""
43
+
44
+ tracking_code: str
45
+ """The tracking code of the shipment"""
46
+
47
+ updated_at: datetime
48
+ """The date and time the shipment was last updated"""
@@ -0,0 +1,84 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["ShipmentCarrier"]
6
+
7
+ ShipmentCarrier: TypeAlias = Literal[
8
+ "accurate",
9
+ "amazon_mws",
10
+ "amazon_shipping",
11
+ "apc",
12
+ "asendia_usa",
13
+ "australia_post",
14
+ "axlehire_v3",
15
+ "better_trucks",
16
+ "canada_post",
17
+ "canpar",
18
+ "columbus_last_mile",
19
+ "chronopost",
20
+ "cloud_sort",
21
+ "courier_express",
22
+ "couriers_please",
23
+ "cs_logistics",
24
+ "dai_post",
25
+ "deutsche_post_uk",
26
+ "deutsche_post",
27
+ "dhl_ecommerce_asia",
28
+ "dhl_ecs",
29
+ "dhl_express",
30
+ "dhl_paket",
31
+ "door_dash",
32
+ "dpd_nl",
33
+ "dpd_uk",
34
+ "dpd",
35
+ "epost_global",
36
+ "estafeta",
37
+ "evri",
38
+ "fastway",
39
+ "fedex_cross_border",
40
+ "fedex_default",
41
+ "fedex_mailview",
42
+ "fedex_smartpost",
43
+ "fedex",
44
+ "first_choice",
45
+ "first_mile",
46
+ "flexport",
47
+ "gio",
48
+ "gio_express",
49
+ "gso",
50
+ "hailify",
51
+ "henry",
52
+ "interlink_express",
53
+ "jet",
54
+ "kuroneko_yamato",
55
+ "la_post",
56
+ "lasership_v2",
57
+ "loomis_express",
58
+ "lso",
59
+ "ontrac",
60
+ "optima",
61
+ "osm_worldwide",
62
+ "parcelforce",
63
+ "parcll",
64
+ "passport_global",
65
+ "post_nl",
66
+ "purolator",
67
+ "quick",
68
+ "royal_mail",
69
+ "omni_parcel",
70
+ "sendle",
71
+ "sf_express",
72
+ "smart_kargo",
73
+ "sonic",
74
+ "spee_dee",
75
+ "swyft",
76
+ "tforce",
77
+ "uds",
78
+ "ups_iparcel",
79
+ "ups_mail_innovations",
80
+ "ups",
81
+ "usps",
82
+ "veho",
83
+ "yanwen",
84
+ ]
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["ShipmentStatus"]
6
+
7
+ ShipmentStatus: TypeAlias = Literal[
8
+ "unknown",
9
+ "pre_transit",
10
+ "in_transit",
11
+ "out_for_delivery",
12
+ "delivered",
13
+ "available_for_pickup",
14
+ "return_to_sender",
15
+ "failure",
16
+ "cancelled",
17
+ "error",
18
+ ]
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["ShipmentSubstatus"]
6
+
7
+ ShipmentSubstatus: TypeAlias = Literal[
8
+ "address_correction",
9
+ "arrived_at_destination",
10
+ "arrived_at_facility",
11
+ "arrived_at_pickup_location",
12
+ "awaiting_information",
13
+ "substatus_cancelled",
14
+ "damaged",
15
+ "delayed",
16
+ "delivery_exception",
17
+ "departed_facility",
18
+ "departed_origin_facility",
19
+ "expired",
20
+ "substatus_failure",
21
+ "held",
22
+ "substatus_in_transit",
23
+ "label_created",
24
+ "lost",
25
+ "missorted",
26
+ "substatus_out_for_delivery",
27
+ "received_at_destination_facility",
28
+ "received_at_origin_facility",
29
+ "refused",
30
+ "return",
31
+ "status_update",
32
+ "transferred_to_destination_carrier",
33
+ "transit_exception",
34
+ "substatus_unknown",
35
+ "weather_delay",
36
+ ]
@@ -0,0 +1,39 @@
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__ = ["SupportChannel", "CustomerUser"]
9
+
10
+
11
+ class CustomerUser(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 SupportChannel(BaseModel):
23
+ id: str
24
+ """The unique identifier for the entity"""
25
+
26
+ company_id: Optional[str] = None
27
+ """The bot ID if this is a support chat"""
28
+
29
+ custom_name: Optional[str] = None
30
+ """The custom name of the DM channel, if any"""
31
+
32
+ customer_user: Optional[CustomerUser] = None
33
+ """The customer user if this is a support chat"""
34
+
35
+ last_message_at: Optional[datetime] = None
36
+ """When the last message was sent"""
37
+
38
+ resolved_at: Optional[datetime] = None
39
+ """When the support ticket was resolved (null if unresolved)"""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["TaxType"]
6
+
7
+ TaxType: TypeAlias = Literal["inclusive", "exclusive", "unspecified"]
@@ -0,0 +1,112 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Union, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal, Annotated, TypeAlias
6
+
7
+ from ..._utils import PropertyInfo
8
+ from .currency import Currency
9
+ from ..._models import BaseModel
10
+
11
+ __all__ = ["Transfer", "Destination", "DestinationUser", "DestinationCompany", "Origin", "OriginUser", "OriginCompany"]
12
+
13
+
14
+ class DestinationUser(BaseModel):
15
+ id: str
16
+ """The internal ID of the user."""
17
+
18
+ name: Optional[str] = None
19
+ """The name of the user from their Whop account."""
20
+
21
+ typename: Literal["User"]
22
+ """The typename of this object"""
23
+
24
+ username: str
25
+ """The username of the user from their Whop account."""
26
+
27
+
28
+ class DestinationCompany(BaseModel):
29
+ id: str
30
+ """The ID (tag) of the company."""
31
+
32
+ route: str
33
+ """The slug/route of the company on the Whop site."""
34
+
35
+ title: str
36
+ """The title of the company."""
37
+
38
+ typename: Literal["Company"]
39
+ """The typename of this object"""
40
+
41
+
42
+ Destination: TypeAlias = Annotated[
43
+ Union[Optional[DestinationUser], Optional[DestinationCompany]], PropertyInfo(discriminator="typename")
44
+ ]
45
+
46
+
47
+ class OriginUser(BaseModel):
48
+ id: str
49
+ """The internal ID of the user."""
50
+
51
+ name: Optional[str] = None
52
+ """The name of the user from their Whop account."""
53
+
54
+ typename: Literal["User"]
55
+ """The typename of this object"""
56
+
57
+ username: str
58
+ """The username of the user from their Whop account."""
59
+
60
+
61
+ class OriginCompany(BaseModel):
62
+ id: str
63
+ """The ID (tag) of the company."""
64
+
65
+ route: str
66
+ """The slug/route of the company on the Whop site."""
67
+
68
+ title: str
69
+ """The title of the company."""
70
+
71
+ typename: Literal["Company"]
72
+ """The typename of this object"""
73
+
74
+
75
+ Origin: TypeAlias = Annotated[
76
+ Union[Optional[OriginUser], Optional[OriginCompany]], PropertyInfo(discriminator="typename")
77
+ ]
78
+
79
+
80
+ class Transfer(BaseModel):
81
+ id: str
82
+ """The unique identifier of the credit transaction transfer"""
83
+
84
+ amount: float
85
+ """The amount of the credit transaction transfer"""
86
+
87
+ created_at: datetime
88
+ """The timestamp when the credit transaction transfer was created"""
89
+
90
+ currency: Currency
91
+ """The currency of the credit transaction transfer"""
92
+
93
+ destination: Destination
94
+ """The recipient of the credit transaction transfer"""
95
+
96
+ destination_ledger_account_id: str
97
+ """The ID of the destination ledger account"""
98
+
99
+ fee_amount: Optional[float] = None
100
+ """The decimal fee of the credit transaction transfer"""
101
+
102
+ metadata: Optional[Dict[str, object]] = None
103
+ """A hash of metadata attached to the transfer"""
104
+
105
+ notes: Optional[str] = None
106
+ """The notes of the credit transaction transfer"""
107
+
108
+ origin: Origin
109
+ """The sender of the credit transaction transfer"""
110
+
111
+ origin_ledger_account_id: str
112
+ """The ID of the origin ledger account"""
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["Visibility"]
6
+
7
+ Visibility: TypeAlias = Literal["visible", "hidden", "archived", "quick_link"]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["VisibilityFilter"]
6
+
7
+ VisibilityFilter: TypeAlias = Literal[
8
+ "visible", "hidden", "archived", "quick_link", "all", "not_quick_link", "not_archived"
9
+ ]
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WhoCanCommentTypes"]
6
+
7
+ WhoCanCommentTypes: TypeAlias = Literal["everyone", "admins"]
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WhoCanPost"]
6
+
7
+ WhoCanPost: TypeAlias = Literal["everyone", "admins"]
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WhoCanPostTypes"]
6
+
7
+ WhoCanPostTypes: TypeAlias = Literal["everyone", "admins"]
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["WhoCanReact"]
6
+
7
+ WhoCanReact: TypeAlias = Literal["everyone", "no_one"]