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,284 @@
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 .billing_reasons import BillingReasons
9
+ from .shared.currency import Currency
10
+ from .dispute_statuses import DisputeStatuses
11
+ from .payment_method_types import PaymentMethodTypes
12
+ from .shared.membership_status import MembershipStatus
13
+
14
+ __all__ = [
15
+ "Dispute",
16
+ "CancellationPolicyAttachment",
17
+ "Company",
18
+ "CustomerCommunicationAttachment",
19
+ "Payment",
20
+ "PaymentMember",
21
+ "PaymentMembership",
22
+ "PaymentUser",
23
+ "Plan",
24
+ "Product",
25
+ "RefundPolicyAttachment",
26
+ "UncategorizedAttachment",
27
+ ]
28
+
29
+
30
+ class CancellationPolicyAttachment(BaseModel):
31
+ id: str
32
+ """The ID of the attachment"""
33
+
34
+ content_type: Optional[str] = None
35
+ """The attachment's content type (e.g., image/jpg, video/mp4)"""
36
+
37
+ filename: Optional[str] = None
38
+ """The name of the file"""
39
+
40
+ url: Optional[str] = None
41
+ """This is the URL you use to render optimized attachments on the client.
42
+
43
+ This should be used for apps.
44
+ """
45
+
46
+
47
+ class Company(BaseModel):
48
+ id: str
49
+ """The ID of the company"""
50
+
51
+ title: str
52
+ """The written name of the company."""
53
+
54
+
55
+ class CustomerCommunicationAttachment(BaseModel):
56
+ id: str
57
+ """The ID of the attachment"""
58
+
59
+ content_type: Optional[str] = None
60
+ """The attachment's content type (e.g., image/jpg, video/mp4)"""
61
+
62
+ filename: Optional[str] = None
63
+ """The name of the file"""
64
+
65
+ url: Optional[str] = None
66
+ """This is the URL you use to render optimized attachments on the client.
67
+
68
+ This should be used for apps.
69
+ """
70
+
71
+
72
+ class PaymentMember(BaseModel):
73
+ id: str
74
+ """The ID of the member"""
75
+
76
+ phone: Optional[str] = None
77
+ """The phone number for the member, if available."""
78
+
79
+
80
+ class PaymentMembership(BaseModel):
81
+ id: str
82
+ """The internal ID of the membership."""
83
+
84
+ status: MembershipStatus
85
+ """The state of the membership."""
86
+
87
+
88
+ class PaymentUser(BaseModel):
89
+ id: str
90
+ """The internal ID of the user."""
91
+
92
+ email: Optional[str] = None
93
+ """The email of the user"""
94
+
95
+ name: Optional[str] = None
96
+ """The name of the user from their Whop account."""
97
+
98
+ username: str
99
+ """The username of the user from their Whop account."""
100
+
101
+
102
+ class Payment(BaseModel):
103
+ id: str
104
+ """The payment ID"""
105
+
106
+ billing_reason: Optional[BillingReasons] = None
107
+ """The reason why a specific payment was billed"""
108
+
109
+ card_brand: Optional[CardBrands] = None
110
+ """Possible card brands that a payment token can have"""
111
+
112
+ card_last4: Optional[str] = None
113
+ """The last 4 digits of the card used to make the payment."""
114
+
115
+ created_at: datetime
116
+ """The datetime the payment was created"""
117
+
118
+ currency: Optional[Currency] = None
119
+ """The available currencies on the platform"""
120
+
121
+ dispute_alerted_at: Optional[datetime] = None
122
+ """When an alert came in that this transaction will be disputed"""
123
+
124
+ member: Optional[PaymentMember] = None
125
+ """The member attached to this payment."""
126
+
127
+ membership: Optional[PaymentMembership] = None
128
+ """The membership attached to this payment."""
129
+
130
+ paid_at: Optional[datetime] = None
131
+ """The datetime the payment was paid"""
132
+
133
+ payment_method_type: Optional[PaymentMethodTypes] = None
134
+ """The different types of payment methods that can be used."""
135
+
136
+ subtotal: Optional[float] = None
137
+ """The subtotal to show to the creator (excluding buyer fees)."""
138
+
139
+ total: Optional[float] = None
140
+ """The total to show to the creator (excluding buyer fees)."""
141
+
142
+ usd_total: Optional[float] = None
143
+ """The total in USD to show to the creator (excluding buyer fees)."""
144
+
145
+ user: Optional[PaymentUser] = None
146
+ """The user that made this payment."""
147
+
148
+
149
+ class Plan(BaseModel):
150
+ id: str
151
+ """The internal ID of the plan."""
152
+
153
+
154
+ class Product(BaseModel):
155
+ id: str
156
+ """The internal ID of the public product."""
157
+
158
+ title: str
159
+ """The title of the product. Use for Whop 4.0."""
160
+
161
+
162
+ class RefundPolicyAttachment(BaseModel):
163
+ id: str
164
+ """The ID of the attachment"""
165
+
166
+ content_type: Optional[str] = None
167
+ """The attachment's content type (e.g., image/jpg, video/mp4)"""
168
+
169
+ filename: Optional[str] = None
170
+ """The name of the file"""
171
+
172
+ url: Optional[str] = None
173
+ """This is the URL you use to render optimized attachments on the client.
174
+
175
+ This should be used for apps.
176
+ """
177
+
178
+
179
+ class UncategorizedAttachment(BaseModel):
180
+ id: str
181
+ """The ID of the attachment"""
182
+
183
+ content_type: Optional[str] = None
184
+ """The attachment's content type (e.g., image/jpg, video/mp4)"""
185
+
186
+ filename: Optional[str] = None
187
+ """The name of the file"""
188
+
189
+ url: Optional[str] = None
190
+ """This is the URL you use to render optimized attachments on the client.
191
+
192
+ This should be used for apps.
193
+ """
194
+
195
+
196
+ class Dispute(BaseModel):
197
+ id: str
198
+ """The internal ID of the dispute."""
199
+
200
+ access_activity_log: Optional[str] = None
201
+ """An IP access log for the user from Whop."""
202
+
203
+ amount: float
204
+ """The amount of the dispute (formatted)."""
205
+
206
+ billing_address: Optional[str] = None
207
+ """The billing address of the user from their payment details."""
208
+
209
+ cancellation_policy_attachment: Optional[CancellationPolicyAttachment] = None
210
+ """The cancellation policy for this dispute"""
211
+
212
+ cancellation_policy_disclosure: Optional[str] = None
213
+ """A cancellation policy disclosure from the company."""
214
+
215
+ company: Optional[Company] = None
216
+ """The company the dispute is against."""
217
+
218
+ created_at: Optional[datetime] = None
219
+ """When it was made."""
220
+
221
+ currency: Currency
222
+ """The currency of the dispute."""
223
+
224
+ customer_communication_attachment: Optional[CustomerCommunicationAttachment] = None
225
+ """The customer communication for this dispute"""
226
+
227
+ customer_email_address: Optional[str] = None
228
+ """The email of the customer from their payment details.
229
+
230
+ This is submitted in the evidence packet to the payment processor. You can
231
+ change it before submitting the dispute.
232
+ """
233
+
234
+ customer_name: Optional[str] = None
235
+ """The name of the customer from their payment details.
236
+
237
+ This is submitted in the evidence packet to the payment processor. You can
238
+ change it before submitting the dispute.
239
+ """
240
+
241
+ editable: Optional[bool] = None
242
+ """Whether or not the dispute data can be edited."""
243
+
244
+ needs_response_by: Optional[datetime] = None
245
+ """The last date the dispute is allow to be submitted by."""
246
+
247
+ notes: Optional[str] = None
248
+ """Additional notes the company chooses to submit regarding the dispute."""
249
+
250
+ payment: Optional[Payment] = None
251
+ """The payment that got disputed"""
252
+
253
+ plan: Optional[Plan] = None
254
+ """The plan that got disputed"""
255
+
256
+ product: Optional[Product] = None
257
+ """The product that got disputed"""
258
+
259
+ product_description: Optional[str] = None
260
+ """The description of the product from the company."""
261
+
262
+ reason: Optional[str] = None
263
+ """The reason for the dispute"""
264
+
265
+ refund_policy_attachment: Optional[RefundPolicyAttachment] = None
266
+ """The refund policy for this dispute"""
267
+
268
+ refund_policy_disclosure: Optional[str] = None
269
+ """A refund policy disclosure from the company."""
270
+
271
+ refund_refusal_explanation: Optional[str] = None
272
+ """A description on why the refund is being refused by the company."""
273
+
274
+ service_date: Optional[str] = None
275
+ """When the product was delivered by the company."""
276
+
277
+ status: DisputeStatuses
278
+ """The status of the dispute (mimics stripe's dispute status)."""
279
+
280
+ uncategorized_attachment: Optional[UncategorizedAttachment] = None
281
+ """An attachment that did not fit into the other categories"""
282
+
283
+ visa_rdr: bool
284
+ """Whether or not the dispute is a Visa Rapid Dispute Resolution."""
@@ -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 .dispute import Dispute
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["DisputeCreatedWebhookEvent"]
10
+
11
+
12
+ class DisputeCreatedWebhookEvent(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: Dispute
20
+ """An object representing a dispute against a company."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["dispute.created"]
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__ = ["DisputeListParams"]
13
+
14
+
15
+ class DisputeListParams(TypedDict, total=False):
16
+ company_id: Required[str]
17
+ """The ID of the company to list disputes 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,77 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+ from .shared.currency import Currency
8
+ from .dispute_statuses import DisputeStatuses
9
+
10
+ __all__ = ["DisputeListResponse", "Company", "Payment", "Plan", "Product"]
11
+
12
+
13
+ class Company(BaseModel):
14
+ id: str
15
+ """The ID of the company"""
16
+
17
+ title: str
18
+ """The written name of the company."""
19
+
20
+
21
+ class Payment(BaseModel):
22
+ id: str
23
+ """The payment ID"""
24
+
25
+
26
+ class Plan(BaseModel):
27
+ id: str
28
+ """The internal ID of the plan."""
29
+
30
+
31
+ class Product(BaseModel):
32
+ id: str
33
+ """The internal ID of the public product."""
34
+
35
+ title: str
36
+ """The title of the product. Use for Whop 4.0."""
37
+
38
+
39
+ class DisputeListResponse(BaseModel):
40
+ id: str
41
+ """The internal ID of the dispute."""
42
+
43
+ amount: float
44
+ """The amount of the dispute (formatted)."""
45
+
46
+ company: Optional[Company] = None
47
+ """The company the dispute is against."""
48
+
49
+ created_at: Optional[datetime] = None
50
+ """When it was made."""
51
+
52
+ currency: Currency
53
+ """The currency of the dispute."""
54
+
55
+ editable: Optional[bool] = None
56
+ """Whether or not the dispute data can be edited."""
57
+
58
+ needs_response_by: Optional[datetime] = None
59
+ """The last date the dispute is allow to be submitted by."""
60
+
61
+ payment: Optional[Payment] = None
62
+ """The payment that got disputed"""
63
+
64
+ plan: Optional[Plan] = None
65
+ """The plan that got disputed"""
66
+
67
+ product: Optional[Product] = None
68
+ """The product that got disputed"""
69
+
70
+ reason: Optional[str] = None
71
+ """The reason for the dispute"""
72
+
73
+ status: DisputeStatuses
74
+ """The status of the dispute (mimics stripe's dispute status)."""
75
+
76
+ visa_rdr: bool
77
+ """Whether or not the dispute is a Visa Rapid Dispute Resolution."""
@@ -0,0 +1,17 @@
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__ = ["DisputeStatuses"]
6
+
7
+ DisputeStatuses: TypeAlias = Literal[
8
+ "warning_needs_response",
9
+ "warning_under_review",
10
+ "warning_closed",
11
+ "needs_response",
12
+ "under_review",
13
+ "won",
14
+ "lost",
15
+ "closed",
16
+ "other",
17
+ ]
@@ -0,0 +1,159 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Optional
6
+ from typing_extensions import Required, TypeAlias, TypedDict
7
+
8
+ __all__ = [
9
+ "DisputeUpdateEvidenceParams",
10
+ "CancellationPolicyAttachment",
11
+ "CancellationPolicyAttachmentAttachmentInputWithDirectUploadID",
12
+ "CancellationPolicyAttachmentAttachmentInputWithID",
13
+ "CustomerCommunicationAttachment",
14
+ "CustomerCommunicationAttachmentAttachmentInputWithDirectUploadID",
15
+ "CustomerCommunicationAttachmentAttachmentInputWithID",
16
+ "RefundPolicyAttachment",
17
+ "RefundPolicyAttachmentAttachmentInputWithDirectUploadID",
18
+ "RefundPolicyAttachmentAttachmentInputWithID",
19
+ "UncategorizedAttachment",
20
+ "UncategorizedAttachmentAttachmentInputWithDirectUploadID",
21
+ "UncategorizedAttachmentAttachmentInputWithID",
22
+ ]
23
+
24
+
25
+ class DisputeUpdateEvidenceParams(TypedDict, total=False):
26
+ access_activity_log: Optional[str]
27
+ """An IP access log for the user from Whop."""
28
+
29
+ billing_address: Optional[str]
30
+ """The billing address of the user from their payment details."""
31
+
32
+ cancellation_policy_attachment: Optional[CancellationPolicyAttachment]
33
+ """A file containing the cancellation policy from the company."""
34
+
35
+ cancellation_policy_disclosure: Optional[str]
36
+ """A cancellation policy disclosure from the company."""
37
+
38
+ customer_communication_attachment: Optional[CustomerCommunicationAttachment]
39
+ """A file containing the customer communication from the company (An image)."""
40
+
41
+ customer_email_address: Optional[str]
42
+ """The email of the customer from their payment details."""
43
+
44
+ customer_name: Optional[str]
45
+ """The name of the customer from their payment details."""
46
+
47
+ notes: Optional[str]
48
+ """Additional notes the company chooses to submit regarding the dispute."""
49
+
50
+ product_description: Optional[str]
51
+ """The description of the product from the company."""
52
+
53
+ refund_policy_attachment: Optional[RefundPolicyAttachment]
54
+ """A file containing the refund policy from the company."""
55
+
56
+ refund_policy_disclosure: Optional[str]
57
+ """A refund policy disclosure from the company."""
58
+
59
+ refund_refusal_explanation: Optional[str]
60
+ """A description on why the refund is being refused by the company."""
61
+
62
+ service_date: Optional[str]
63
+ """When the product was delivered by the company."""
64
+
65
+ uncategorized_attachment: Optional[UncategorizedAttachment]
66
+ """A file that does not fit in the other categories."""
67
+
68
+
69
+ class CancellationPolicyAttachmentAttachmentInputWithDirectUploadID(TypedDict, total=False):
70
+ direct_upload_id: Required[str]
71
+ """This ID should be used the first time you upload an attachment.
72
+
73
+ It is the ID of the direct upload that was created when uploading the file to S3
74
+ via the mediaDirectUpload mutation.
75
+ """
76
+
77
+
78
+ class CancellationPolicyAttachmentAttachmentInputWithID(TypedDict, total=False):
79
+ id: Required[str]
80
+ """The ID of an existing attachment object.
81
+
82
+ Use this when updating a resource and keeping a subset of the attachments. Don't
83
+ use this unless you know what you're doing.
84
+ """
85
+
86
+
87
+ CancellationPolicyAttachment: TypeAlias = Union[
88
+ CancellationPolicyAttachmentAttachmentInputWithDirectUploadID, CancellationPolicyAttachmentAttachmentInputWithID
89
+ ]
90
+
91
+
92
+ class CustomerCommunicationAttachmentAttachmentInputWithDirectUploadID(TypedDict, total=False):
93
+ direct_upload_id: Required[str]
94
+ """This ID should be used the first time you upload an attachment.
95
+
96
+ It is the ID of the direct upload that was created when uploading the file to S3
97
+ via the mediaDirectUpload mutation.
98
+ """
99
+
100
+
101
+ class CustomerCommunicationAttachmentAttachmentInputWithID(TypedDict, total=False):
102
+ id: Required[str]
103
+ """The ID of an existing attachment object.
104
+
105
+ Use this when updating a resource and keeping a subset of the attachments. Don't
106
+ use this unless you know what you're doing.
107
+ """
108
+
109
+
110
+ CustomerCommunicationAttachment: TypeAlias = Union[
111
+ CustomerCommunicationAttachmentAttachmentInputWithDirectUploadID,
112
+ CustomerCommunicationAttachmentAttachmentInputWithID,
113
+ ]
114
+
115
+
116
+ class RefundPolicyAttachmentAttachmentInputWithDirectUploadID(TypedDict, total=False):
117
+ direct_upload_id: Required[str]
118
+ """This ID should be used the first time you upload an attachment.
119
+
120
+ It is the ID of the direct upload that was created when uploading the file to S3
121
+ via the mediaDirectUpload mutation.
122
+ """
123
+
124
+
125
+ class RefundPolicyAttachmentAttachmentInputWithID(TypedDict, total=False):
126
+ id: Required[str]
127
+ """The ID of an existing attachment object.
128
+
129
+ Use this when updating a resource and keeping a subset of the attachments. Don't
130
+ use this unless you know what you're doing.
131
+ """
132
+
133
+
134
+ RefundPolicyAttachment: TypeAlias = Union[
135
+ RefundPolicyAttachmentAttachmentInputWithDirectUploadID, RefundPolicyAttachmentAttachmentInputWithID
136
+ ]
137
+
138
+
139
+ class UncategorizedAttachmentAttachmentInputWithDirectUploadID(TypedDict, total=False):
140
+ direct_upload_id: Required[str]
141
+ """This ID should be used the first time you upload an attachment.
142
+
143
+ It is the ID of the direct upload that was created when uploading the file to S3
144
+ via the mediaDirectUpload mutation.
145
+ """
146
+
147
+
148
+ class UncategorizedAttachmentAttachmentInputWithID(TypedDict, total=False):
149
+ id: Required[str]
150
+ """The ID of an existing attachment object.
151
+
152
+ Use this when updating a resource and keeping a subset of the attachments. Don't
153
+ use this unless you know what you're doing.
154
+ """
155
+
156
+
157
+ UncategorizedAttachment: TypeAlias = Union[
158
+ UncategorizedAttachmentAttachmentInputWithDirectUploadID, UncategorizedAttachmentAttachmentInputWithID
159
+ ]
@@ -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 .dispute import Dispute
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["DisputeUpdatedWebhookEvent"]
10
+
11
+
12
+ class DisputeUpdatedWebhookEvent(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: Dispute
20
+ """An object representing a dispute against a company."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["dispute.updated"]
26
+ """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__ = ["EmbedType"]
6
+
7
+ EmbedType: TypeAlias = Literal["youtube", "loom"]
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+
5
+ __all__ = ["EntryApproveResponse"]
6
+
7
+
8
+ class EntryApproveResponse(BaseModel):
9
+ job_id: str
10
+ """The ID of the job."""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryApprovedWebhookEvent"]
10
+
11
+
12
+ class EntryApprovedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.approved"]
26
+ """The webhook event type"""