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,587 @@
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
+
8
+ import httpx
9
+
10
+ from ..types import app_build_list_params, app_build_create_params
11
+ from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
12
+ from .._utils import maybe_transform, async_maybe_transform
13
+ from .._compat import cached_property
14
+ from .._resource import SyncAPIResource, AsyncAPIResource
15
+ from .._response import (
16
+ to_raw_response_wrapper,
17
+ to_streamed_response_wrapper,
18
+ async_to_raw_response_wrapper,
19
+ async_to_streamed_response_wrapper,
20
+ )
21
+ from ..pagination import SyncCursorPage, AsyncCursorPage
22
+ from .._base_client import AsyncPaginator, make_request_options
23
+ from ..types.shared.app_build import AppBuild
24
+ from ..types.shared.app_view_type import AppViewType
25
+ from ..types.app_build_list_response import AppBuildListResponse
26
+ from ..types.shared.app_build_statuses import AppBuildStatuses
27
+ from ..types.shared.app_build_platforms import AppBuildPlatforms
28
+
29
+ __all__ = ["AppBuildsResource", "AsyncAppBuildsResource"]
30
+
31
+
32
+ class AppBuildsResource(SyncAPIResource):
33
+ @cached_property
34
+ def with_raw_response(self) -> AppBuildsResourceWithRawResponse:
35
+ """
36
+ This property can be used as a prefix for any HTTP method call to return
37
+ the raw response object instead of the parsed content.
38
+
39
+ For more information, see https://www.github.com/whopio/whopsdk-python#accessing-raw-response-data-eg-headers
40
+ """
41
+ return AppBuildsResourceWithRawResponse(self)
42
+
43
+ @cached_property
44
+ def with_streaming_response(self) -> AppBuildsResourceWithStreamingResponse:
45
+ """
46
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
47
+
48
+ For more information, see https://www.github.com/whopio/whopsdk-python#with_streaming_response
49
+ """
50
+ return AppBuildsResourceWithStreamingResponse(self)
51
+
52
+ def create(
53
+ self,
54
+ *,
55
+ attachment: app_build_create_params.Attachment,
56
+ checksum: str,
57
+ platform: AppBuildPlatforms,
58
+ ai_prompt_id: Optional[str] | Omit = omit,
59
+ app_id: Optional[str] | Omit = omit,
60
+ supported_app_view_types: Optional[List[AppViewType]] | Omit = omit,
61
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
62
+ # The extra values given here take precedence over values defined on the client or passed to this method.
63
+ extra_headers: Headers | None = None,
64
+ extra_query: Query | None = None,
65
+ extra_body: Body | None = None,
66
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
67
+ ) -> AppBuild:
68
+ """
69
+ Creates a new app build
70
+
71
+ Required permissions:
72
+
73
+ - `developer:manage_builds`
74
+
75
+ Args:
76
+ attachment: Attachment input for the app build file. This should be an upload in .zip
77
+ format. The zip should contain at least one main_js_bundle.hbc file and
78
+ optionally an assets folder next to it.
79
+
80
+ checksum: Checksum of the app build file. This is generated by the client and used to
81
+ verify the integrity of the file that is submitted when un-packaged later on a
82
+ device.
83
+
84
+ platform: The platform of the app build (ios, android, web)
85
+
86
+ ai_prompt_id: The id of the ai prompt that created this build
87
+
88
+ app_id: The ID of the app to create a build for. By default the current app from the api
89
+ key is used.
90
+
91
+ supported_app_view_types: Supported app view types for the app build. A build can specify multiple view
92
+ types, but should only specify ones that its code supports.
93
+
94
+ extra_headers: Send extra headers
95
+
96
+ extra_query: Add additional query parameters to the request
97
+
98
+ extra_body: Add additional JSON properties to the request
99
+
100
+ timeout: Override the client-level default timeout for this request, in seconds
101
+ """
102
+ return self._post(
103
+ "/app_builds",
104
+ body=maybe_transform(
105
+ {
106
+ "attachment": attachment,
107
+ "checksum": checksum,
108
+ "platform": platform,
109
+ "ai_prompt_id": ai_prompt_id,
110
+ "app_id": app_id,
111
+ "supported_app_view_types": supported_app_view_types,
112
+ },
113
+ app_build_create_params.AppBuildCreateParams,
114
+ ),
115
+ options=make_request_options(
116
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
117
+ ),
118
+ cast_to=AppBuild,
119
+ )
120
+
121
+ def retrieve(
122
+ self,
123
+ id: str,
124
+ *,
125
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
126
+ # The extra values given here take precedence over values defined on the client or passed to this method.
127
+ extra_headers: Headers | None = None,
128
+ extra_query: Query | None = None,
129
+ extra_body: Body | None = None,
130
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
131
+ ) -> AppBuild:
132
+ """
133
+ Retrieves an app build by ID
134
+
135
+ Required permissions:
136
+
137
+ - `developer:manage_builds`
138
+
139
+ Args:
140
+ extra_headers: Send extra headers
141
+
142
+ extra_query: Add additional query parameters to the request
143
+
144
+ extra_body: Add additional JSON properties to the request
145
+
146
+ timeout: Override the client-level default timeout for this request, in seconds
147
+ """
148
+ if not id:
149
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
150
+ return self._get(
151
+ f"/app_builds/{id}",
152
+ options=make_request_options(
153
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
154
+ ),
155
+ cast_to=AppBuild,
156
+ )
157
+
158
+ def list(
159
+ self,
160
+ *,
161
+ app_id: str,
162
+ after: Optional[str] | Omit = omit,
163
+ before: Optional[str] | Omit = omit,
164
+ created_after: Union[str, datetime, None] | Omit = omit,
165
+ created_before: Union[str, datetime, None] | Omit = omit,
166
+ first: Optional[int] | Omit = omit,
167
+ last: Optional[int] | Omit = omit,
168
+ platform: Optional[AppBuildPlatforms] | Omit = omit,
169
+ status: Optional[AppBuildStatuses] | Omit = omit,
170
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
171
+ # The extra values given here take precedence over values defined on the client or passed to this method.
172
+ extra_headers: Headers | None = None,
173
+ extra_query: Query | None = None,
174
+ extra_body: Body | None = None,
175
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
176
+ ) -> SyncCursorPage[AppBuildListResponse]:
177
+ """
178
+ Lists app builds for an app
179
+
180
+ Required permissions:
181
+
182
+ - `developer:manage_builds`
183
+
184
+ Args:
185
+ app_id: The ID of the app to filter app builds by
186
+
187
+ after: Returns the elements in the list that come after the specified cursor.
188
+
189
+ before: Returns the elements in the list that come before the specified cursor.
190
+
191
+ created_after: The minimum creation date to filter by
192
+
193
+ created_before: The maximum creation date to filter by
194
+
195
+ first: Returns the first _n_ elements from the list.
196
+
197
+ last: Returns the last _n_ elements from the list.
198
+
199
+ platform: The different platforms an app build can target.
200
+
201
+ status: The different statuses an AppBuild can be in.
202
+
203
+ extra_headers: Send extra headers
204
+
205
+ extra_query: Add additional query parameters to the request
206
+
207
+ extra_body: Add additional JSON properties to the request
208
+
209
+ timeout: Override the client-level default timeout for this request, in seconds
210
+ """
211
+ return self._get_api_list(
212
+ "/app_builds",
213
+ page=SyncCursorPage[AppBuildListResponse],
214
+ options=make_request_options(
215
+ extra_headers=extra_headers,
216
+ extra_query=extra_query,
217
+ extra_body=extra_body,
218
+ timeout=timeout,
219
+ query=maybe_transform(
220
+ {
221
+ "app_id": app_id,
222
+ "after": after,
223
+ "before": before,
224
+ "created_after": created_after,
225
+ "created_before": created_before,
226
+ "first": first,
227
+ "last": last,
228
+ "platform": platform,
229
+ "status": status,
230
+ },
231
+ app_build_list_params.AppBuildListParams,
232
+ ),
233
+ ),
234
+ model=AppBuildListResponse,
235
+ )
236
+
237
+ def promote(
238
+ self,
239
+ id: str,
240
+ *,
241
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
242
+ # The extra values given here take precedence over values defined on the client or passed to this method.
243
+ extra_headers: Headers | None = None,
244
+ extra_query: Query | None = None,
245
+ extra_body: Body | None = None,
246
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
247
+ ) -> AppBuild:
248
+ """
249
+ Promotes an app build to production
250
+
251
+ Required permissions:
252
+
253
+ - `developer:manage_builds`
254
+
255
+ Args:
256
+ extra_headers: Send extra headers
257
+
258
+ extra_query: Add additional query parameters to the request
259
+
260
+ extra_body: Add additional JSON properties to the request
261
+
262
+ timeout: Override the client-level default timeout for this request, in seconds
263
+ """
264
+ if not id:
265
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
266
+ return self._post(
267
+ f"/app_builds/{id}/promote",
268
+ options=make_request_options(
269
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
270
+ ),
271
+ cast_to=AppBuild,
272
+ )
273
+
274
+
275
+ class AsyncAppBuildsResource(AsyncAPIResource):
276
+ @cached_property
277
+ def with_raw_response(self) -> AsyncAppBuildsResourceWithRawResponse:
278
+ """
279
+ This property can be used as a prefix for any HTTP method call to return
280
+ the raw response object instead of the parsed content.
281
+
282
+ For more information, see https://www.github.com/whopio/whopsdk-python#accessing-raw-response-data-eg-headers
283
+ """
284
+ return AsyncAppBuildsResourceWithRawResponse(self)
285
+
286
+ @cached_property
287
+ def with_streaming_response(self) -> AsyncAppBuildsResourceWithStreamingResponse:
288
+ """
289
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
290
+
291
+ For more information, see https://www.github.com/whopio/whopsdk-python#with_streaming_response
292
+ """
293
+ return AsyncAppBuildsResourceWithStreamingResponse(self)
294
+
295
+ async def create(
296
+ self,
297
+ *,
298
+ attachment: app_build_create_params.Attachment,
299
+ checksum: str,
300
+ platform: AppBuildPlatforms,
301
+ ai_prompt_id: Optional[str] | Omit = omit,
302
+ app_id: Optional[str] | Omit = omit,
303
+ supported_app_view_types: Optional[List[AppViewType]] | Omit = omit,
304
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
305
+ # The extra values given here take precedence over values defined on the client or passed to this method.
306
+ extra_headers: Headers | None = None,
307
+ extra_query: Query | None = None,
308
+ extra_body: Body | None = None,
309
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
310
+ ) -> AppBuild:
311
+ """
312
+ Creates a new app build
313
+
314
+ Required permissions:
315
+
316
+ - `developer:manage_builds`
317
+
318
+ Args:
319
+ attachment: Attachment input for the app build file. This should be an upload in .zip
320
+ format. The zip should contain at least one main_js_bundle.hbc file and
321
+ optionally an assets folder next to it.
322
+
323
+ checksum: Checksum of the app build file. This is generated by the client and used to
324
+ verify the integrity of the file that is submitted when un-packaged later on a
325
+ device.
326
+
327
+ platform: The platform of the app build (ios, android, web)
328
+
329
+ ai_prompt_id: The id of the ai prompt that created this build
330
+
331
+ app_id: The ID of the app to create a build for. By default the current app from the api
332
+ key is used.
333
+
334
+ supported_app_view_types: Supported app view types for the app build. A build can specify multiple view
335
+ types, but should only specify ones that its code supports.
336
+
337
+ extra_headers: Send extra headers
338
+
339
+ extra_query: Add additional query parameters to the request
340
+
341
+ extra_body: Add additional JSON properties to the request
342
+
343
+ timeout: Override the client-level default timeout for this request, in seconds
344
+ """
345
+ return await self._post(
346
+ "/app_builds",
347
+ body=await async_maybe_transform(
348
+ {
349
+ "attachment": attachment,
350
+ "checksum": checksum,
351
+ "platform": platform,
352
+ "ai_prompt_id": ai_prompt_id,
353
+ "app_id": app_id,
354
+ "supported_app_view_types": supported_app_view_types,
355
+ },
356
+ app_build_create_params.AppBuildCreateParams,
357
+ ),
358
+ options=make_request_options(
359
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
360
+ ),
361
+ cast_to=AppBuild,
362
+ )
363
+
364
+ async def retrieve(
365
+ self,
366
+ id: str,
367
+ *,
368
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
369
+ # The extra values given here take precedence over values defined on the client or passed to this method.
370
+ extra_headers: Headers | None = None,
371
+ extra_query: Query | None = None,
372
+ extra_body: Body | None = None,
373
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
374
+ ) -> AppBuild:
375
+ """
376
+ Retrieves an app build by ID
377
+
378
+ Required permissions:
379
+
380
+ - `developer:manage_builds`
381
+
382
+ Args:
383
+ extra_headers: Send extra headers
384
+
385
+ extra_query: Add additional query parameters to the request
386
+
387
+ extra_body: Add additional JSON properties to the request
388
+
389
+ timeout: Override the client-level default timeout for this request, in seconds
390
+ """
391
+ if not id:
392
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
393
+ return await self._get(
394
+ f"/app_builds/{id}",
395
+ options=make_request_options(
396
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
397
+ ),
398
+ cast_to=AppBuild,
399
+ )
400
+
401
+ def list(
402
+ self,
403
+ *,
404
+ app_id: str,
405
+ after: Optional[str] | Omit = omit,
406
+ before: Optional[str] | Omit = omit,
407
+ created_after: Union[str, datetime, None] | Omit = omit,
408
+ created_before: Union[str, datetime, None] | Omit = omit,
409
+ first: Optional[int] | Omit = omit,
410
+ last: Optional[int] | Omit = omit,
411
+ platform: Optional[AppBuildPlatforms] | Omit = omit,
412
+ status: Optional[AppBuildStatuses] | Omit = omit,
413
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
414
+ # The extra values given here take precedence over values defined on the client or passed to this method.
415
+ extra_headers: Headers | None = None,
416
+ extra_query: Query | None = None,
417
+ extra_body: Body | None = None,
418
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
419
+ ) -> AsyncPaginator[AppBuildListResponse, AsyncCursorPage[AppBuildListResponse]]:
420
+ """
421
+ Lists app builds for an app
422
+
423
+ Required permissions:
424
+
425
+ - `developer:manage_builds`
426
+
427
+ Args:
428
+ app_id: The ID of the app to filter app builds by
429
+
430
+ after: Returns the elements in the list that come after the specified cursor.
431
+
432
+ before: Returns the elements in the list that come before the specified cursor.
433
+
434
+ created_after: The minimum creation date to filter by
435
+
436
+ created_before: The maximum creation date to filter by
437
+
438
+ first: Returns the first _n_ elements from the list.
439
+
440
+ last: Returns the last _n_ elements from the list.
441
+
442
+ platform: The different platforms an app build can target.
443
+
444
+ status: The different statuses an AppBuild can be in.
445
+
446
+ extra_headers: Send extra headers
447
+
448
+ extra_query: Add additional query parameters to the request
449
+
450
+ extra_body: Add additional JSON properties to the request
451
+
452
+ timeout: Override the client-level default timeout for this request, in seconds
453
+ """
454
+ return self._get_api_list(
455
+ "/app_builds",
456
+ page=AsyncCursorPage[AppBuildListResponse],
457
+ options=make_request_options(
458
+ extra_headers=extra_headers,
459
+ extra_query=extra_query,
460
+ extra_body=extra_body,
461
+ timeout=timeout,
462
+ query=maybe_transform(
463
+ {
464
+ "app_id": app_id,
465
+ "after": after,
466
+ "before": before,
467
+ "created_after": created_after,
468
+ "created_before": created_before,
469
+ "first": first,
470
+ "last": last,
471
+ "platform": platform,
472
+ "status": status,
473
+ },
474
+ app_build_list_params.AppBuildListParams,
475
+ ),
476
+ ),
477
+ model=AppBuildListResponse,
478
+ )
479
+
480
+ async def promote(
481
+ self,
482
+ id: str,
483
+ *,
484
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
485
+ # The extra values given here take precedence over values defined on the client or passed to this method.
486
+ extra_headers: Headers | None = None,
487
+ extra_query: Query | None = None,
488
+ extra_body: Body | None = None,
489
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
490
+ ) -> AppBuild:
491
+ """
492
+ Promotes an app build to production
493
+
494
+ Required permissions:
495
+
496
+ - `developer:manage_builds`
497
+
498
+ Args:
499
+ extra_headers: Send extra headers
500
+
501
+ extra_query: Add additional query parameters to the request
502
+
503
+ extra_body: Add additional JSON properties to the request
504
+
505
+ timeout: Override the client-level default timeout for this request, in seconds
506
+ """
507
+ if not id:
508
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
509
+ return await self._post(
510
+ f"/app_builds/{id}/promote",
511
+ options=make_request_options(
512
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
513
+ ),
514
+ cast_to=AppBuild,
515
+ )
516
+
517
+
518
+ class AppBuildsResourceWithRawResponse:
519
+ def __init__(self, app_builds: AppBuildsResource) -> None:
520
+ self._app_builds = app_builds
521
+
522
+ self.create = to_raw_response_wrapper(
523
+ app_builds.create,
524
+ )
525
+ self.retrieve = to_raw_response_wrapper(
526
+ app_builds.retrieve,
527
+ )
528
+ self.list = to_raw_response_wrapper(
529
+ app_builds.list,
530
+ )
531
+ self.promote = to_raw_response_wrapper(
532
+ app_builds.promote,
533
+ )
534
+
535
+
536
+ class AsyncAppBuildsResourceWithRawResponse:
537
+ def __init__(self, app_builds: AsyncAppBuildsResource) -> None:
538
+ self._app_builds = app_builds
539
+
540
+ self.create = async_to_raw_response_wrapper(
541
+ app_builds.create,
542
+ )
543
+ self.retrieve = async_to_raw_response_wrapper(
544
+ app_builds.retrieve,
545
+ )
546
+ self.list = async_to_raw_response_wrapper(
547
+ app_builds.list,
548
+ )
549
+ self.promote = async_to_raw_response_wrapper(
550
+ app_builds.promote,
551
+ )
552
+
553
+
554
+ class AppBuildsResourceWithStreamingResponse:
555
+ def __init__(self, app_builds: AppBuildsResource) -> None:
556
+ self._app_builds = app_builds
557
+
558
+ self.create = to_streamed_response_wrapper(
559
+ app_builds.create,
560
+ )
561
+ self.retrieve = to_streamed_response_wrapper(
562
+ app_builds.retrieve,
563
+ )
564
+ self.list = to_streamed_response_wrapper(
565
+ app_builds.list,
566
+ )
567
+ self.promote = to_streamed_response_wrapper(
568
+ app_builds.promote,
569
+ )
570
+
571
+
572
+ class AsyncAppBuildsResourceWithStreamingResponse:
573
+ def __init__(self, app_builds: AsyncAppBuildsResource) -> None:
574
+ self._app_builds = app_builds
575
+
576
+ self.create = async_to_streamed_response_wrapper(
577
+ app_builds.create,
578
+ )
579
+ self.retrieve = async_to_streamed_response_wrapper(
580
+ app_builds.retrieve,
581
+ )
582
+ self.list = async_to_streamed_response_wrapper(
583
+ app_builds.list,
584
+ )
585
+ self.promote = async_to_streamed_response_wrapper(
586
+ app_builds.promote,
587
+ )