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,103 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+ from .review_status import ReviewStatus
8
+
9
+ __all__ = ["ReviewRetrieveResponse", "Attachment", "Company", "Product", "User"]
10
+
11
+
12
+ class Attachment(BaseModel):
13
+ id: str
14
+ """The ID of the attachment"""
15
+
16
+ content_type: Optional[str] = None
17
+ """The attachment's content type (e.g., image/jpg, video/mp4)"""
18
+
19
+ filename: Optional[str] = None
20
+ """The name of the file"""
21
+
22
+ url: Optional[str] = None
23
+ """This is the URL you use to render optimized attachments on the client.
24
+
25
+ This should be used for apps.
26
+ """
27
+
28
+
29
+ class Company(BaseModel):
30
+ id: str
31
+ """The ID (tag) of the company."""
32
+
33
+ route: str
34
+ """The slug/route of the company on the Whop site."""
35
+
36
+ title: str
37
+ """The title of the company."""
38
+
39
+
40
+ class Product(BaseModel):
41
+ id: str
42
+ """The internal ID of the public product."""
43
+
44
+ title: str
45
+ """The title of the product. Use for Whop 4.0."""
46
+
47
+
48
+ class User(BaseModel):
49
+ id: str
50
+ """The internal ID of the user."""
51
+
52
+ name: Optional[str] = None
53
+ """The name of the user from their Whop account."""
54
+
55
+ username: str
56
+ """The username of the user from their Whop account."""
57
+
58
+
59
+ class ReviewRetrieveResponse(BaseModel):
60
+ id: str
61
+ """The internal ID of the review."""
62
+
63
+ attachments: List[Attachment]
64
+ """The attachments attached to the review."""
65
+
66
+ company: Company
67
+ """The company the review is for."""
68
+
69
+ created_at: datetime
70
+ """The timestamp of when the review was created."""
71
+
72
+ description: Optional[str] = None
73
+ """The description of the review."""
74
+
75
+ joined_at: Optional[datetime] = None
76
+ """The timestamp of when the user joined the product."""
77
+
78
+ paid_for_product: Optional[bool] = None
79
+ """Whether or not the user paid for the product.
80
+
81
+ If null, the payment status is unknown.
82
+ """
83
+
84
+ product: Product
85
+ """The product the review is for."""
86
+
87
+ published_at: Optional[datetime] = None
88
+ """The timestamp of when the review was published."""
89
+
90
+ stars: int
91
+ """The number of stars the user gave the product."""
92
+
93
+ status: ReviewStatus
94
+ """The status of the review."""
95
+
96
+ title: Optional[str] = None
97
+ """The title of the review."""
98
+
99
+ updated_at: datetime
100
+ """The timestamp of when the review was last updated."""
101
+
102
+ user: User
103
+ """The user account that performed the action."""
@@ -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__ = ["ReviewStatus"]
6
+
7
+ ReviewStatus: TypeAlias = Literal["pending", "published", "removed"]
@@ -0,0 +1,111 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+ from .card_brands import CardBrands
8
+ from .setup_intent_status import SetupIntentStatus
9
+ from .payment_method_types import PaymentMethodTypes
10
+
11
+ __all__ = [
12
+ "SetupIntent",
13
+ "CheckoutConfiguration",
14
+ "Company",
15
+ "Member",
16
+ "MemberUser",
17
+ "PaymentToken",
18
+ "PaymentTokenCard",
19
+ ]
20
+
21
+
22
+ class CheckoutConfiguration(BaseModel):
23
+ id: str
24
+ """The ID of the checkout configuration"""
25
+
26
+
27
+ class Company(BaseModel):
28
+ id: str
29
+ """The ID (tag) of the company."""
30
+
31
+
32
+ class MemberUser(BaseModel):
33
+ id: str
34
+ """The internal ID of the user account."""
35
+
36
+ email: Optional[str] = None
37
+ """The digital mailing address of the user."""
38
+
39
+ name: Optional[str] = None
40
+ """The user's full name."""
41
+
42
+ username: str
43
+ """The whop username."""
44
+
45
+
46
+ class Member(BaseModel):
47
+ id: str
48
+ """The ID of the member"""
49
+
50
+ user: Optional[MemberUser] = None
51
+ """The user for this member, if any."""
52
+
53
+
54
+ class PaymentTokenCard(BaseModel):
55
+ brand: Optional[CardBrands] = None
56
+ """Possible card brands that a payment token can have"""
57
+
58
+ exp_month: Optional[int] = None
59
+ """Card expiration month, like 03 for March."""
60
+
61
+ exp_year: Optional[int] = None
62
+ """Card expiration year, like 27 for 2027."""
63
+
64
+ last4: Optional[str] = None
65
+ """Last four digits of the card."""
66
+
67
+
68
+ class PaymentToken(BaseModel):
69
+ id: str
70
+ """The ID of the payment token"""
71
+
72
+ card: Optional[PaymentTokenCard] = None
73
+ """
74
+ The card data associated with the payment token, if its a debit or credit card
75
+ token.
76
+ """
77
+
78
+ created_at: datetime
79
+ """The date and time the payment token was created"""
80
+
81
+ payment_method_type: PaymentMethodTypes
82
+ """The payment method type of the payment token"""
83
+
84
+
85
+ class SetupIntent(BaseModel):
86
+ id: str
87
+ """The setup intent ID"""
88
+
89
+ checkout_configuration: Optional[CheckoutConfiguration] = None
90
+ """The checkout configuration associated with the setup intent"""
91
+
92
+ company: Optional[Company] = None
93
+ """The company of the setup intent"""
94
+
95
+ created_at: datetime
96
+ """The datetime the payment was created"""
97
+
98
+ error_message: Optional[str] = None
99
+ """The error message, if any."""
100
+
101
+ member: Optional[Member] = None
102
+ """The member connected to the setup intent"""
103
+
104
+ metadata: Optional[Dict[str, object]] = None
105
+ """The metadata associated with the setup intent"""
106
+
107
+ payment_token: Optional[PaymentToken] = None
108
+ """The payment token created during the setup, if available."""
109
+
110
+ status: SetupIntentStatus
111
+ """The status of the setup intent"""
@@ -0,0 +1,29 @@
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 .setup_intent import SetupIntent
8
+
9
+ __all__ = ["SetupIntentCanceledWebhookEvent"]
10
+
11
+
12
+ class SetupIntentCanceledWebhookEvent(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: SetupIntent
20
+ """
21
+ An object representing a setup intent, which is a flow for allowing a customer
22
+ to add a payment method to their account without making a purchase.
23
+ """
24
+
25
+ timestamp: datetime
26
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
27
+
28
+ type: Literal["setup_intent.canceled"]
29
+ """The webhook event type"""
@@ -0,0 +1,38 @@
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
+ from .shared.direction import Direction
11
+
12
+ __all__ = ["SetupIntentListParams"]
13
+
14
+
15
+ class SetupIntentListParams(TypedDict, total=False):
16
+ company_id: Required[str]
17
+ """The ID of the company to list setup intents for"""
18
+
19
+ after: Optional[str]
20
+ """Returns the elements in the list that come after the specified cursor."""
21
+
22
+ before: Optional[str]
23
+ """Returns the elements in the list that come before the specified cursor."""
24
+
25
+ created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
26
+ """The minimum creation date to filter by"""
27
+
28
+ created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
29
+ """The maximum creation date to filter by"""
30
+
31
+ direction: Optional[Direction]
32
+ """The direction of the sort."""
33
+
34
+ first: Optional[int]
35
+ """Returns the first _n_ elements from the list."""
36
+
37
+ last: Optional[int]
38
+ """Returns the last _n_ elements from the list."""
@@ -0,0 +1,111 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+ from .card_brands import CardBrands
8
+ from .setup_intent_status import SetupIntentStatus
9
+ from .payment_method_types import PaymentMethodTypes
10
+
11
+ __all__ = [
12
+ "SetupIntentListResponse",
13
+ "CheckoutConfiguration",
14
+ "Company",
15
+ "Member",
16
+ "MemberUser",
17
+ "PaymentToken",
18
+ "PaymentTokenCard",
19
+ ]
20
+
21
+
22
+ class CheckoutConfiguration(BaseModel):
23
+ id: str
24
+ """The ID of the checkout configuration"""
25
+
26
+
27
+ class Company(BaseModel):
28
+ id: str
29
+ """The ID (tag) of the company."""
30
+
31
+
32
+ class MemberUser(BaseModel):
33
+ id: str
34
+ """The internal ID of the user account."""
35
+
36
+ email: Optional[str] = None
37
+ """The digital mailing address of the user."""
38
+
39
+ name: Optional[str] = None
40
+ """The user's full name."""
41
+
42
+ username: str
43
+ """The whop username."""
44
+
45
+
46
+ class Member(BaseModel):
47
+ id: str
48
+ """The ID of the member"""
49
+
50
+ user: Optional[MemberUser] = None
51
+ """The user for this member, if any."""
52
+
53
+
54
+ class PaymentTokenCard(BaseModel):
55
+ brand: Optional[CardBrands] = None
56
+ """Possible card brands that a payment token can have"""
57
+
58
+ exp_month: Optional[int] = None
59
+ """Card expiration month, like 03 for March."""
60
+
61
+ exp_year: Optional[int] = None
62
+ """Card expiration year, like 27 for 2027."""
63
+
64
+ last4: Optional[str] = None
65
+ """Last four digits of the card."""
66
+
67
+
68
+ class PaymentToken(BaseModel):
69
+ id: str
70
+ """The ID of the payment token"""
71
+
72
+ card: Optional[PaymentTokenCard] = None
73
+ """
74
+ The card data associated with the payment token, if its a debit or credit card
75
+ token.
76
+ """
77
+
78
+ created_at: datetime
79
+ """The date and time the payment token was created"""
80
+
81
+ payment_method_type: PaymentMethodTypes
82
+ """The payment method type of the payment token"""
83
+
84
+
85
+ class SetupIntentListResponse(BaseModel):
86
+ id: str
87
+ """The setup intent ID"""
88
+
89
+ checkout_configuration: Optional[CheckoutConfiguration] = None
90
+ """The checkout configuration associated with the setup intent"""
91
+
92
+ company: Optional[Company] = None
93
+ """The company of the setup intent"""
94
+
95
+ created_at: datetime
96
+ """The datetime the payment was created"""
97
+
98
+ error_message: Optional[str] = None
99
+ """The error message, if any."""
100
+
101
+ member: Optional[Member] = None
102
+ """The member connected to the setup intent"""
103
+
104
+ metadata: Optional[Dict[str, object]] = None
105
+ """The metadata associated with the setup intent"""
106
+
107
+ payment_token: Optional[PaymentToken] = None
108
+ """The payment token created during the setup, if available."""
109
+
110
+ status: SetupIntentStatus
111
+ """The status of the setup intent"""
@@ -0,0 +1,29 @@
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 .setup_intent import SetupIntent
8
+
9
+ __all__ = ["SetupIntentRequiresActionWebhookEvent"]
10
+
11
+
12
+ class SetupIntentRequiresActionWebhookEvent(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: SetupIntent
20
+ """
21
+ An object representing a setup intent, which is a flow for allowing a customer
22
+ to add a payment method to their account without making a purchase.
23
+ """
24
+
25
+ timestamp: datetime
26
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
27
+
28
+ type: Literal["setup_intent.requires_action"]
29
+ """The webhook event type"""
@@ -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__ = ["SetupIntentStatus"]
6
+
7
+ SetupIntentStatus: TypeAlias = Literal["processing", "succeeded", "canceled", "requires_action"]
@@ -0,0 +1,29 @@
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 .setup_intent import SetupIntent
8
+
9
+ __all__ = ["SetupIntentSucceededWebhookEvent"]
10
+
11
+
12
+ class SetupIntentSucceededWebhookEvent(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: SetupIntent
20
+ """
21
+ An object representing a setup intent, which is a flow for allowing a customer
22
+ to add a payment method to their account without making a purchase.
23
+ """
24
+
25
+ timestamp: datetime
26
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
27
+
28
+ type: Literal["setup_intent.succeeded"]
29
+ """The webhook event type"""
@@ -0,0 +1,62 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .app import App as App
4
+ from .plan import Plan as Plan
5
+ from .entry import Entry as Entry
6
+ from .forum import Forum as Forum
7
+ from .company import Company as Company
8
+ from .invoice import Invoice as Invoice
9
+ from .message import Message as Message
10
+ from .payment import Payment as Payment
11
+ from .product import Product as Product
12
+ from .currency import Currency as Currency
13
+ from .reaction import Reaction as Reaction
14
+ from .shipment import Shipment as Shipment
15
+ from .tax_type import TaxType as TaxType
16
+ from .transfer import Transfer as Transfer
17
+ from .app_build import AppBuild as AppBuild
18
+ from .direction import Direction as Direction
19
+ from .page_info import PageInfo as PageInfo
20
+ from .plan_type import PlanType as PlanType
21
+ from .custom_cta import CustomCta as CustomCta
22
+ from .experience import Experience as Experience
23
+ from .forum_post import ForumPost as ForumPost
24
+ from .membership import Membership as Membership
25
+ from .promo_type import PromoType as PromoType
26
+ from .visibility import Visibility as Visibility
27
+ from .access_level import AccessLevel as AccessLevel
28
+ from .app_statuses import AppStatuses as AppStatuses
29
+ from .chat_channel import ChatChannel as ChatChannel
30
+ from .entry_status import EntryStatus as EntryStatus
31
+ from .who_can_post import WhoCanPost as WhoCanPost
32
+ from .app_view_type import AppViewType as AppViewType
33
+ from .who_can_react import WhoCanReact as WhoCanReact
34
+ from .business_types import BusinessTypes as BusinessTypes
35
+ from .dms_post_types import DmsPostTypes as DmsPostTypes
36
+ from .industry_types import IndustryTypes as IndustryTypes
37
+ from .invoice_status import InvoiceStatus as InvoiceStatus
38
+ from .receipt_status import ReceiptStatus as ReceiptStatus
39
+ from .release_method import ReleaseMethod as ReleaseMethod
40
+ from .member_statuses import MemberStatuses as MemberStatuses
41
+ from .shipment_status import ShipmentStatus as ShipmentStatus
42
+ from .support_channel import SupportChannel as SupportChannel
43
+ from .access_pass_type import AccessPassType as AccessPassType
44
+ from .shipment_carrier import ShipmentCarrier as ShipmentCarrier
45
+ from .collection_method import CollectionMethod as CollectionMethod
46
+ from .invoice_list_item import InvoiceListItem as InvoiceListItem
47
+ from .membership_status import MembershipStatus as MembershipStatus
48
+ from .product_list_item import ProductListItem as ProductListItem
49
+ from .visibility_filter import VisibilityFilter as VisibilityFilter
50
+ from .app_build_statuses import AppBuildStatuses as AppBuildStatuses
51
+ from .shipment_substatus import ShipmentSubstatus as ShipmentSubstatus
52
+ from .who_can_post_types import WhoCanPostTypes as WhoCanPostTypes
53
+ from .app_build_platforms import AppBuildPlatforms as AppBuildPlatforms
54
+ from .authorized_user_roles import AuthorizedUserRoles as AuthorizedUserRoles
55
+ from .who_can_comment_types import WhoCanCommentTypes as WhoCanCommentTypes
56
+ from .checkout_configuration import CheckoutConfiguration as CheckoutConfiguration
57
+ from .friendly_receipt_status import FriendlyReceiptStatus as FriendlyReceiptStatus
58
+ from .global_affiliate_status import GlobalAffiliateStatus as GlobalAffiliateStatus
59
+ from .course_lesson_interaction import CourseLessonInteraction as CourseLessonInteraction
60
+ from .member_most_recent_actions import MemberMostRecentActions as MemberMostRecentActions
61
+ from .email_notification_preferences import EmailNotificationPreferences as EmailNotificationPreferences
62
+ from .course_lesson_interaction_list_item import CourseLessonInteractionListItem as CourseLessonInteractionListItem
@@ -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__ = ["AccessLevel"]
6
+
7
+ AccessLevel: TypeAlias = Literal["no_access", "admin", "customer"]
@@ -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__ = ["AccessPassType"]
6
+
7
+ AccessPassType: TypeAlias = Literal["regular", "app", "experience_upsell", "api_only"]