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.payment import Payment
8
+
9
+ __all__ = ["PaymentSucceededWebhookEvent"]
10
+
11
+
12
+ class PaymentSucceededWebhookEvent(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: Payment
20
+ """An object representing a receipt for a membership."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["payment.succeeded"]
26
+ """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__ = ["PaymentTokenListParams"]
13
+
14
+
15
+ class PaymentTokenListParams(TypedDict, total=False):
16
+ member_id: Required[str]
17
+ """The ID of the Member to list payment tokens 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,41 @@
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 .card_brands import CardBrands
8
+ from .payment_method_types import PaymentMethodTypes
9
+
10
+ __all__ = ["PaymentTokenListResponse", "Card"]
11
+
12
+
13
+ class Card(BaseModel):
14
+ brand: Optional[CardBrands] = None
15
+ """Possible card brands that a payment token can have"""
16
+
17
+ exp_month: Optional[int] = None
18
+ """Card expiration month, like 03 for March."""
19
+
20
+ exp_year: Optional[int] = None
21
+ """Card expiration year, like 27 for 2027."""
22
+
23
+ last4: Optional[str] = None
24
+ """Last four digits of the card."""
25
+
26
+
27
+ class PaymentTokenListResponse(BaseModel):
28
+ id: str
29
+ """The ID of the payment token"""
30
+
31
+ card: Optional[Card] = None
32
+ """
33
+ The card data associated with the payment token, if its a debit or credit card
34
+ token.
35
+ """
36
+
37
+ created_at: datetime
38
+ """The date and time the payment token was created"""
39
+
40
+ payment_method_type: PaymentMethodTypes
41
+ """The payment method type of the payment token"""
@@ -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__ = ["PaymentTokenRetrieveParams"]
8
+
9
+
10
+ class PaymentTokenRetrieveParams(TypedDict, total=False):
11
+ member_id: Required[str]
12
+ """The ID of the Member associated with the PaymentToken"""
@@ -0,0 +1,41 @@
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 .card_brands import CardBrands
8
+ from .payment_method_types import PaymentMethodTypes
9
+
10
+ __all__ = ["PaymentTokenRetrieveResponse", "Card"]
11
+
12
+
13
+ class Card(BaseModel):
14
+ brand: Optional[CardBrands] = None
15
+ """Possible card brands that a payment token can have"""
16
+
17
+ exp_month: Optional[int] = None
18
+ """Card expiration month, like 03 for March."""
19
+
20
+ exp_year: Optional[int] = None
21
+ """Card expiration year, like 27 for 2027."""
22
+
23
+ last4: Optional[str] = None
24
+ """Last four digits of the card."""
25
+
26
+
27
+ class PaymentTokenRetrieveResponse(BaseModel):
28
+ id: str
29
+ """The ID of the payment token"""
30
+
31
+ card: Optional[Card] = None
32
+ """
33
+ The card data associated with the payment token, if its a debit or credit card
34
+ token.
35
+ """
36
+
37
+ created_at: datetime
38
+ """The date and time the payment token was created"""
39
+
40
+ payment_method_type: PaymentMethodTypes
41
+ """The payment method type of the payment token"""
@@ -0,0 +1,162 @@
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, Iterable, Optional
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ from .shared.currency import Currency
9
+ from .shared.tax_type import TaxType
10
+ from .shared.plan_type import PlanType
11
+ from .shared.visibility import Visibility
12
+ from .payment_method_types import PaymentMethodTypes
13
+ from .shared.release_method import ReleaseMethod
14
+
15
+ __all__ = [
16
+ "PlanCreateParams",
17
+ "CustomField",
18
+ "Image",
19
+ "ImageAttachmentInputWithDirectUploadID",
20
+ "ImageAttachmentInputWithID",
21
+ "PaymentMethodConfiguration",
22
+ ]
23
+
24
+
25
+ class PlanCreateParams(TypedDict, total=False):
26
+ company_id: Required[str]
27
+ """The company the plan should be created for."""
28
+
29
+ product_id: Required[str]
30
+ """The product the plan is related to."""
31
+
32
+ billing_period: Optional[int]
33
+ """The interval in days at which the plan charges (renewal plans)."""
34
+
35
+ currency: Optional[Currency]
36
+ """The available currencies on the platform"""
37
+
38
+ custom_fields: Optional[Iterable[CustomField]]
39
+ """An array of custom field objects."""
40
+
41
+ description: Optional[str]
42
+ """The description of the plan."""
43
+
44
+ expiration_days: Optional[int]
45
+ """The interval at which the plan expires and revokes access (expiration plans)."""
46
+
47
+ image: Optional[Image]
48
+ """An image for the plan. This will be visible on the product page to customers."""
49
+
50
+ initial_price: Optional[float]
51
+ """An additional amount charged upon first purchase.
52
+
53
+ Use only if a one time payment OR you want to charge an additional amount on top
54
+ of the renewal price. Provided as a number in dollars. Eg: 10.43 for $10.43
55
+ """
56
+
57
+ internal_notes: Optional[str]
58
+ """A personal description or notes section for the business."""
59
+
60
+ override_tax_type: Optional[TaxType]
61
+ """
62
+ Whether or not the tax is included in a plan's price (or if it hasn't been set
63
+ up)
64
+ """
65
+
66
+ payment_method_configuration: Optional[PaymentMethodConfiguration]
67
+ """The explicit payment method configuration for the plan.
68
+
69
+ If not provided, the platform or company's defaults will apply.
70
+ """
71
+
72
+ plan_type: Optional[PlanType]
73
+ """The type of plan that can be attached to a product"""
74
+
75
+ release_method: Optional[ReleaseMethod]
76
+ """The methods of how a plan can be released."""
77
+
78
+ renewal_price: Optional[float]
79
+ """The amount the customer is charged every billing period.
80
+
81
+ Use only if a recurring payment. Provided as a number in dollars. Eg: 10.43 for
82
+ $10.43
83
+ """
84
+
85
+ stock: Optional[int]
86
+ """The number of units available for purchase."""
87
+
88
+ title: Optional[str]
89
+ """The title of the plan. This will be visible on the product page to customers."""
90
+
91
+ trial_period_days: Optional[int]
92
+ """The number of free trial days added before a renewal plan."""
93
+
94
+ unlimited_stock: Optional[bool]
95
+ """Limits/doesn't limit the number of units available for purchase."""
96
+
97
+ visibility: Optional[Visibility]
98
+ """Visibility of a resource"""
99
+
100
+
101
+ class CustomField(TypedDict, total=False):
102
+ field_type: Required[Literal["text"]]
103
+ """The type of the custom field."""
104
+
105
+ name: Required[str]
106
+ """The name of the custom field."""
107
+
108
+ id: Optional[str]
109
+ """The ID of the custom field (if being updated)"""
110
+
111
+ order: Optional[int]
112
+ """The order of the field."""
113
+
114
+ placeholder: Optional[str]
115
+ """The placeholder value of the field."""
116
+
117
+ required: Optional[bool]
118
+ """Whether or not the field is required."""
119
+
120
+
121
+ class ImageAttachmentInputWithDirectUploadID(TypedDict, total=False):
122
+ direct_upload_id: Required[str]
123
+ """This ID should be used the first time you upload an attachment.
124
+
125
+ It is the ID of the direct upload that was created when uploading the file to S3
126
+ via the mediaDirectUpload mutation.
127
+ """
128
+
129
+
130
+ class ImageAttachmentInputWithID(TypedDict, total=False):
131
+ id: Required[str]
132
+ """The ID of an existing attachment object.
133
+
134
+ Use this when updating a resource and keeping a subset of the attachments. Don't
135
+ use this unless you know what you're doing.
136
+ """
137
+
138
+
139
+ Image: TypeAlias = Union[ImageAttachmentInputWithDirectUploadID, ImageAttachmentInputWithID]
140
+
141
+
142
+ class PaymentMethodConfiguration(TypedDict, total=False):
143
+ disabled: Required[List[PaymentMethodTypes]]
144
+ """An array of payment method identifiers that are explicitly disabled.
145
+
146
+ Only applies if the include_platform_defaults is true.
147
+ """
148
+
149
+ enabled: Required[List[PaymentMethodTypes]]
150
+ """An array of payment method identifiers that are explicitly enabled.
151
+
152
+ This means these payment methods will be shown on checkout. Example use case is
153
+ to only enable a specific payment method like cashapp, or extending the platform
154
+ defaults with additional methods.
155
+ """
156
+
157
+ include_platform_defaults: Required[bool]
158
+ """
159
+ Whether Whop's platform default payment method enablement settings are included
160
+ in this configuration. The full list of default payment methods can be found in
161
+ the documentation at docs.whop.com/payments.
162
+ """
@@ -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__ = ["PlanDeleteResponse"]
6
+
7
+ PlanDeleteResponse: TypeAlias = bool
@@ -0,0 +1,57 @@
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.plan_type import PlanType
13
+ from .shared.release_method import ReleaseMethod
14
+ from .shared.visibility_filter import VisibilityFilter
15
+
16
+ __all__ = ["PlanListParams"]
17
+
18
+
19
+ class PlanListParams(TypedDict, total=False):
20
+ company_id: Required[str]
21
+ """The ID of the company"""
22
+
23
+ after: Optional[str]
24
+ """Returns the elements in the list that come after the specified cursor."""
25
+
26
+ before: Optional[str]
27
+ """Returns the elements in the list that come before the specified cursor."""
28
+
29
+ created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
30
+ """The minimum creation date to filter by"""
31
+
32
+ created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
33
+ """The maximum creation date to filter by"""
34
+
35
+ direction: Optional[Direction]
36
+ """The direction of the sort."""
37
+
38
+ first: Optional[int]
39
+ """Returns the first _n_ elements from the list."""
40
+
41
+ last: Optional[int]
42
+ """Returns the last _n_ elements from the list."""
43
+
44
+ order: Optional[Literal["id", "active_members_count", "created_at", "internal_notes", "expires_at"]]
45
+ """The ways a relation of Plans can be ordered"""
46
+
47
+ plan_types: Optional[List[PlanType]]
48
+ """The plan type to filter the plans by"""
49
+
50
+ product_ids: Optional[SequenceNotStr[str]]
51
+ """The product IDs to filter the plans by"""
52
+
53
+ release_methods: Optional[List[ReleaseMethod]]
54
+ """The release method to filter the plans by"""
55
+
56
+ visibilities: Optional[List[VisibilityFilter]]
57
+ """The visibility to filter the plans by"""
@@ -0,0 +1,128 @@
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 .shared.currency import Currency
8
+ from .shared.plan_type import PlanType
9
+ from .shared.visibility import Visibility
10
+ from .payment_method_types import PaymentMethodTypes
11
+ from .shared.release_method import ReleaseMethod
12
+
13
+ __all__ = ["PlanListResponse", "Company", "Invoice", "PaymentMethodConfiguration", "Product"]
14
+
15
+
16
+ class Company(BaseModel):
17
+ id: str
18
+ """The ID (tag) of the company."""
19
+
20
+ title: str
21
+ """The title of the company."""
22
+
23
+
24
+ class Invoice(BaseModel):
25
+ id: str
26
+ """The ID of the invoice."""
27
+
28
+
29
+ class PaymentMethodConfiguration(BaseModel):
30
+ disabled: List[PaymentMethodTypes]
31
+ """An array of payment method identifiers that are explicitly disabled.
32
+
33
+ Only applies if the include_platform_defaults is true.
34
+ """
35
+
36
+ enabled: List[PaymentMethodTypes]
37
+ """An array of payment method identifiers that are explicitly enabled.
38
+
39
+ This means these payment methods will be shown on checkout. Example use case is
40
+ to only enable a specific payment method like cashapp, or extending the platform
41
+ defaults with additional methods.
42
+ """
43
+
44
+ include_platform_defaults: bool
45
+ """
46
+ Whether Whop's platform default payment method enablement settings are included
47
+ in this configuration. The full list of default payment methods can be found in
48
+ the documentation at docs.whop.com/payments.
49
+ """
50
+
51
+
52
+ class Product(BaseModel):
53
+ id: str
54
+ """The internal ID of the public product."""
55
+
56
+ title: str
57
+ """The title of the product. Use for Whop 4.0."""
58
+
59
+
60
+ class PlanListResponse(BaseModel):
61
+ id: str
62
+ """The internal ID of the plan."""
63
+
64
+ billing_period: Optional[int] = None
65
+ """The interval at which the plan charges (renewal plans)."""
66
+
67
+ company: Optional[Company] = None
68
+ """The company for the plan."""
69
+
70
+ created_at: datetime
71
+ """When the plan was created."""
72
+
73
+ currency: Currency
74
+ """The respective currency identifier for the plan."""
75
+
76
+ description: Optional[str] = None
77
+ """The description of the plan."""
78
+
79
+ expiration_days: Optional[int] = None
80
+ """The interval at which the plan charges (expiration plans)."""
81
+
82
+ initial_price: float
83
+ """The price a person has to pay for a plan on the initial purchase."""
84
+
85
+ internal_notes: Optional[str] = None
86
+ """A personal description or notes section for the business."""
87
+
88
+ invoice: Optional[Invoice] = None
89
+ """The invoice associated with this plan."""
90
+
91
+ member_count: Optional[int] = None
92
+ """The number of members for the plan."""
93
+
94
+ payment_method_configuration: Optional[PaymentMethodConfiguration] = None
95
+ """The explicit payment method configuration for the plan, if any."""
96
+
97
+ plan_type: PlanType
98
+ """Indicates if the plan is a one time payment or recurring."""
99
+
100
+ product: Optional[Product] = None
101
+ """The product that this plan belongs to."""
102
+
103
+ purchase_url: str
104
+ """The direct link to purchase the product."""
105
+
106
+ release_method: ReleaseMethod
107
+ """This is the release method the business uses to sell this plan."""
108
+
109
+ renewal_price: float
110
+ """The price a person has to pay for a plan on the renewal purchase."""
111
+
112
+ stock: Optional[int] = None
113
+ """The number of units available for purchase. Only displayed to authorized actors"""
114
+
115
+ title: Optional[str] = None
116
+ """The title of the plan. This will be visible on the product page to customers."""
117
+
118
+ trial_period_days: Optional[int] = None
119
+ """The number of free trial days added before a renewal plan."""
120
+
121
+ unlimited_stock: bool
122
+ """Limits/doesn't limit the number of units available for purchase."""
123
+
124
+ updated_at: datetime
125
+ """When the plan was last updated."""
126
+
127
+ visibility: Visibility
128
+ """Shows or hides the plan from public/business view."""
@@ -0,0 +1,155 @@
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, Iterable, Optional
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ from .shared.currency import Currency
9
+ from .shared.tax_type import TaxType
10
+ from .shared.visibility import Visibility
11
+ from .payment_method_types import PaymentMethodTypes
12
+
13
+ __all__ = [
14
+ "PlanUpdateParams",
15
+ "CustomField",
16
+ "Image",
17
+ "ImageAttachmentInputWithDirectUploadID",
18
+ "ImageAttachmentInputWithID",
19
+ "PaymentMethodConfiguration",
20
+ ]
21
+
22
+
23
+ class PlanUpdateParams(TypedDict, total=False):
24
+ billing_period: Optional[int]
25
+ """The interval at which the plan charges (renewal plans)."""
26
+
27
+ currency: Optional[Currency]
28
+ """The available currencies on the platform"""
29
+
30
+ custom_fields: Optional[Iterable[CustomField]]
31
+ """An array of custom field objects."""
32
+
33
+ description: Optional[str]
34
+ """The description of the plan."""
35
+
36
+ expiration_days: Optional[int]
37
+ """The interval at which the plan charges (expiration plans)."""
38
+
39
+ image: Optional[Image]
40
+ """An image for the plan. This will be visible on the product page to customers."""
41
+
42
+ initial_price: Optional[float]
43
+ """An additional amount charged upon first purchase."""
44
+
45
+ internal_notes: Optional[str]
46
+ """A personal description or notes section for the business."""
47
+
48
+ offer_cancel_discount: Optional[bool]
49
+ """Whether or not to offer a discount to cancel a subscription."""
50
+
51
+ override_tax_type: Optional[TaxType]
52
+ """
53
+ Whether or not the tax is included in a plan's price (or if it hasn't been set
54
+ up)
55
+ """
56
+
57
+ payment_method_configuration: Optional[PaymentMethodConfiguration]
58
+ """The explicit payment method configuration for the plan.
59
+
60
+ If sent as null, the custom configuration will be removed.
61
+ """
62
+
63
+ renewal_price: Optional[float]
64
+ """The amount the customer is charged every billing period."""
65
+
66
+ stock: Optional[int]
67
+ """The number of units available for purchase."""
68
+
69
+ strike_through_initial_price: Optional[float]
70
+ """The price to display with a strikethrough for the initial price.
71
+
72
+ Provided as a number in dollars. Eg: 19.99 for $19.99
73
+ """
74
+
75
+ strike_through_renewal_price: Optional[float]
76
+ """The price to display with a strikethrough for the renewal price.
77
+
78
+ Provided as a number in dollars. Eg: 19.99 for $19.99
79
+ """
80
+
81
+ title: Optional[str]
82
+ """The title of the plan. This will be visible on the product page to customers."""
83
+
84
+ trial_period_days: Optional[int]
85
+ """The number of free trial days added before a renewal plan."""
86
+
87
+ unlimited_stock: Optional[bool]
88
+ """Limits/doesn't limit the number of units available for purchase."""
89
+
90
+ visibility: Optional[Visibility]
91
+ """Visibility of a resource"""
92
+
93
+
94
+ class CustomField(TypedDict, total=False):
95
+ field_type: Required[Literal["text"]]
96
+ """The type of the custom field."""
97
+
98
+ name: Required[str]
99
+ """The name of the custom field."""
100
+
101
+ id: Optional[str]
102
+ """The ID of the custom field (if being updated)"""
103
+
104
+ order: Optional[int]
105
+ """The order of the field."""
106
+
107
+ placeholder: Optional[str]
108
+ """The placeholder value of the field."""
109
+
110
+ required: Optional[bool]
111
+ """Whether or not the field is required."""
112
+
113
+
114
+ class ImageAttachmentInputWithDirectUploadID(TypedDict, total=False):
115
+ direct_upload_id: Required[str]
116
+ """This ID should be used the first time you upload an attachment.
117
+
118
+ It is the ID of the direct upload that was created when uploading the file to S3
119
+ via the mediaDirectUpload mutation.
120
+ """
121
+
122
+
123
+ class ImageAttachmentInputWithID(TypedDict, total=False):
124
+ id: Required[str]
125
+ """The ID of an existing attachment object.
126
+
127
+ Use this when updating a resource and keeping a subset of the attachments. Don't
128
+ use this unless you know what you're doing.
129
+ """
130
+
131
+
132
+ Image: TypeAlias = Union[ImageAttachmentInputWithDirectUploadID, ImageAttachmentInputWithID]
133
+
134
+
135
+ class PaymentMethodConfiguration(TypedDict, total=False):
136
+ disabled: Required[List[PaymentMethodTypes]]
137
+ """An array of payment method identifiers that are explicitly disabled.
138
+
139
+ Only applies if the include_platform_defaults is true.
140
+ """
141
+
142
+ enabled: Required[List[PaymentMethodTypes]]
143
+ """An array of payment method identifiers that are explicitly enabled.
144
+
145
+ This means these payment methods will be shown on checkout. Example use case is
146
+ to only enable a specific payment method like cashapp, or extending the platform
147
+ defaults with additional methods.
148
+ """
149
+
150
+ include_platform_defaults: Required[bool]
151
+ """
152
+ Whether Whop's platform default payment method enablement settings are included
153
+ in this configuration. The full list of default payment methods can be found in
154
+ the documentation at docs.whop.com/payments.
155
+ """