whop-sdk 0.0.1__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.

Potentially problematic release.


This version of whop-sdk might be problematic. Click here for more details.

Files changed (212) hide show
  1. whop_sdk/__init__.py +94 -0
  2. whop_sdk/_base_client.py +1995 -0
  3. whop_sdk/_client.py +664 -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 +835 -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 +86 -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 +316 -0
  31. whop_sdk/resources/app_builds.py +562 -0
  32. whop_sdk/resources/apps.py +665 -0
  33. whop_sdk/resources/authorized_users.py +336 -0
  34. whop_sdk/resources/chat_channels.py +469 -0
  35. whop_sdk/resources/checkout_configurations.py +464 -0
  36. whop_sdk/resources/companies.py +171 -0
  37. whop_sdk/resources/course_lesson_interactions.py +343 -0
  38. whop_sdk/resources/entries.py +539 -0
  39. whop_sdk/resources/experiences.py +859 -0
  40. whop_sdk/resources/forum_posts.py +512 -0
  41. whop_sdk/resources/invoices.py +633 -0
  42. whop_sdk/resources/ledger_accounts.py +171 -0
  43. whop_sdk/resources/memberships.py +810 -0
  44. whop_sdk/resources/messages.py +446 -0
  45. whop_sdk/resources/payments.py +761 -0
  46. whop_sdk/resources/plans.py +906 -0
  47. whop_sdk/resources/products.py +969 -0
  48. whop_sdk/resources/reactions.py +423 -0
  49. whop_sdk/resources/shipments.py +451 -0
  50. whop_sdk/resources/support_channels.py +455 -0
  51. whop_sdk/resources/transfers.py +488 -0
  52. whop_sdk/resources/users.py +248 -0
  53. whop_sdk/resources/webhooks.py +69 -0
  54. whop_sdk/types/__init__.py +135 -0
  55. whop_sdk/types/app_build_create_params.py +59 -0
  56. whop_sdk/types/app_build_list_params.py +34 -0
  57. whop_sdk/types/app_build_list_response.py +50 -0
  58. whop_sdk/types/app_create_params.py +19 -0
  59. whop_sdk/types/app_list_params.py +54 -0
  60. whop_sdk/types/app_list_response.py +91 -0
  61. whop_sdk/types/app_update_params.py +58 -0
  62. whop_sdk/types/authorized_user_list_params.py +33 -0
  63. whop_sdk/types/authorized_user_list_response.py +33 -0
  64. whop_sdk/types/authorized_user_retrieve_response.py +33 -0
  65. whop_sdk/types/chat_channel_list_params.py +28 -0
  66. whop_sdk/types/chat_channel_list_response.py +43 -0
  67. whop_sdk/types/chat_channel_update_params.py +32 -0
  68. whop_sdk/types/checkout_configuration_create_params.py +129 -0
  69. whop_sdk/types/checkout_configuration_list_params.py +33 -0
  70. whop_sdk/types/checkout_configuration_list_response.py +66 -0
  71. whop_sdk/types/course_lesson_interaction_list_params.py +34 -0
  72. whop_sdk/types/entry_approve_response.py +10 -0
  73. whop_sdk/types/entry_list_params.py +44 -0
  74. whop_sdk/types/entry_list_response.py +56 -0
  75. whop_sdk/types/experience_attach_params.py +12 -0
  76. whop_sdk/types/experience_create_params.py +22 -0
  77. whop_sdk/types/experience_delete_response.py +7 -0
  78. whop_sdk/types/experience_detach_params.py +12 -0
  79. whop_sdk/types/experience_list_params.py +31 -0
  80. whop_sdk/types/experience_list_response.py +47 -0
  81. whop_sdk/types/experience_update_params.py +41 -0
  82. whop_sdk/types/forum_post_create_params.py +85 -0
  83. whop_sdk/types/forum_post_list_params.py +31 -0
  84. whop_sdk/types/forum_post_list_response.py +53 -0
  85. whop_sdk/types/invoice_create_params.py +137 -0
  86. whop_sdk/types/invoice_create_response.py +16 -0
  87. whop_sdk/types/invoice_created_webhook_event.py +26 -0
  88. whop_sdk/types/invoice_list_params.py +50 -0
  89. whop_sdk/types/invoice_paid_webhook_event.py +26 -0
  90. whop_sdk/types/invoice_past_due_webhook_event.py +26 -0
  91. whop_sdk/types/invoice_void_response.py +7 -0
  92. whop_sdk/types/invoice_voided_webhook_event.py +26 -0
  93. whop_sdk/types/ledger_account_retrieve_response.py +78 -0
  94. whop_sdk/types/membership_cancel_params.py +13 -0
  95. whop_sdk/types/membership_list_params.py +70 -0
  96. whop_sdk/types/membership_list_response.py +117 -0
  97. whop_sdk/types/membership_pause_params.py +16 -0
  98. whop_sdk/types/membership_update_params.py +13 -0
  99. whop_sdk/types/message_create_params.py +51 -0
  100. whop_sdk/types/message_list_params.py +30 -0
  101. whop_sdk/types/message_list_response.py +90 -0
  102. whop_sdk/types/payment_list_params.py +72 -0
  103. whop_sdk/types/payment_list_response.py +221 -0
  104. whop_sdk/types/payment_refund_params.py +13 -0
  105. whop_sdk/types/plan_create_params.py +106 -0
  106. whop_sdk/types/plan_delete_response.py +7 -0
  107. whop_sdk/types/plan_list_params.py +49 -0
  108. whop_sdk/types/plan_list_response.py +92 -0
  109. whop_sdk/types/plan_update_params.py +95 -0
  110. whop_sdk/types/product_create_params.py +170 -0
  111. whop_sdk/types/product_delete_response.py +7 -0
  112. whop_sdk/types/product_list_params.py +41 -0
  113. whop_sdk/types/product_update_params.py +90 -0
  114. whop_sdk/types/reaction_create_params.py +19 -0
  115. whop_sdk/types/reaction_list_params.py +25 -0
  116. whop_sdk/types/reaction_list_response.py +32 -0
  117. whop_sdk/types/shared/__init__.py +55 -0
  118. whop_sdk/types/shared/access_pass_type.py +7 -0
  119. whop_sdk/types/shared/app.py +159 -0
  120. whop_sdk/types/shared/app_build.py +50 -0
  121. whop_sdk/types/shared/app_build_platforms.py +7 -0
  122. whop_sdk/types/shared/app_build_statuses.py +7 -0
  123. whop_sdk/types/shared/app_statuses.py +7 -0
  124. whop_sdk/types/shared/app_view_type.py +7 -0
  125. whop_sdk/types/shared/authorized_user_roles.py +9 -0
  126. whop_sdk/types/shared/business_types.py +22 -0
  127. whop_sdk/types/shared/chat_channel.py +43 -0
  128. whop_sdk/types/shared/checkout_configuration.py +66 -0
  129. whop_sdk/types/shared/collection_method.py +7 -0
  130. whop_sdk/types/shared/company.py +71 -0
  131. whop_sdk/types/shared/course_lesson_interaction.py +44 -0
  132. whop_sdk/types/shared/course_lesson_interaction_list_item.py +44 -0
  133. whop_sdk/types/shared/currency.py +92 -0
  134. whop_sdk/types/shared/custom_cta.py +21 -0
  135. whop_sdk/types/shared/direction.py +7 -0
  136. whop_sdk/types/shared/dms_post_types.py +7 -0
  137. whop_sdk/types/shared/entry.py +70 -0
  138. whop_sdk/types/shared/entry_status.py +7 -0
  139. whop_sdk/types/shared/experience.py +66 -0
  140. whop_sdk/types/shared/forum_post.py +53 -0
  141. whop_sdk/types/shared/friendly_receipt_status.py +24 -0
  142. whop_sdk/types/shared/global_affiliate_status.py +7 -0
  143. whop_sdk/types/shared/industry_types.py +67 -0
  144. whop_sdk/types/shared/invoice.py +61 -0
  145. whop_sdk/types/shared/invoice_list_item.py +61 -0
  146. whop_sdk/types/shared/invoice_status.py +7 -0
  147. whop_sdk/types/shared/membership.py +117 -0
  148. whop_sdk/types/shared/membership_status.py +9 -0
  149. whop_sdk/types/shared/message.py +90 -0
  150. whop_sdk/types/shared/page_info.py +21 -0
  151. whop_sdk/types/shared/payment.py +211 -0
  152. whop_sdk/types/shared/plan.py +123 -0
  153. whop_sdk/types/shared/plan_type.py +7 -0
  154. whop_sdk/types/shared/product.py +124 -0
  155. whop_sdk/types/shared/product_list_item.py +49 -0
  156. whop_sdk/types/shared/promo_type.py +7 -0
  157. whop_sdk/types/shared/reaction.py +32 -0
  158. whop_sdk/types/shared/receipt_status.py +7 -0
  159. whop_sdk/types/shared/release_method.py +7 -0
  160. whop_sdk/types/shared/shipment.py +48 -0
  161. whop_sdk/types/shared/shipment_carrier.py +84 -0
  162. whop_sdk/types/shared/shipment_status.py +18 -0
  163. whop_sdk/types/shared/shipment_substatus.py +36 -0
  164. whop_sdk/types/shared/support_channel.py +39 -0
  165. whop_sdk/types/shared/tax_type.py +7 -0
  166. whop_sdk/types/shared/transfer.py +109 -0
  167. whop_sdk/types/shared/visibility.py +7 -0
  168. whop_sdk/types/shared/visibility_filter.py +9 -0
  169. whop_sdk/types/shared/who_can_post.py +7 -0
  170. whop_sdk/types/shared/who_can_react.py +7 -0
  171. whop_sdk/types/shared_params/__init__.py +27 -0
  172. whop_sdk/types/shared_params/access_pass_type.py +9 -0
  173. whop_sdk/types/shared_params/app_build_platforms.py +9 -0
  174. whop_sdk/types/shared_params/app_build_statuses.py +9 -0
  175. whop_sdk/types/shared_params/app_statuses.py +9 -0
  176. whop_sdk/types/shared_params/app_view_type.py +9 -0
  177. whop_sdk/types/shared_params/authorized_user_roles.py +11 -0
  178. whop_sdk/types/shared_params/business_types.py +24 -0
  179. whop_sdk/types/shared_params/collection_method.py +9 -0
  180. whop_sdk/types/shared_params/currency.py +94 -0
  181. whop_sdk/types/shared_params/custom_cta.py +23 -0
  182. whop_sdk/types/shared_params/direction.py +9 -0
  183. whop_sdk/types/shared_params/entry_status.py +9 -0
  184. whop_sdk/types/shared_params/friendly_receipt_status.py +26 -0
  185. whop_sdk/types/shared_params/global_affiliate_status.py +9 -0
  186. whop_sdk/types/shared_params/industry_types.py +69 -0
  187. whop_sdk/types/shared_params/invoice_status.py +9 -0
  188. whop_sdk/types/shared_params/membership_status.py +11 -0
  189. whop_sdk/types/shared_params/plan_type.py +9 -0
  190. whop_sdk/types/shared_params/receipt_status.py +9 -0
  191. whop_sdk/types/shared_params/release_method.py +9 -0
  192. whop_sdk/types/shared_params/tax_type.py +9 -0
  193. whop_sdk/types/shared_params/visibility.py +9 -0
  194. whop_sdk/types/shared_params/visibility_filter.py +11 -0
  195. whop_sdk/types/shared_params/who_can_post.py +9 -0
  196. whop_sdk/types/shared_params/who_can_react.py +9 -0
  197. whop_sdk/types/shipment_create_params.py +18 -0
  198. whop_sdk/types/shipment_list_params.py +31 -0
  199. whop_sdk/types/shipment_list_response.py +48 -0
  200. whop_sdk/types/support_channel_create_params.py +15 -0
  201. whop_sdk/types/support_channel_list_params.py +40 -0
  202. whop_sdk/types/support_channel_list_response.py +39 -0
  203. whop_sdk/types/transfer_create_params.py +36 -0
  204. whop_sdk/types/transfer_list_params.py +42 -0
  205. whop_sdk/types/transfer_list_response.py +35 -0
  206. whop_sdk/types/unwrap_webhook_event.py +15 -0
  207. whop_sdk/types/user_check_access_response.py +15 -0
  208. whop_sdk/types/user_retrieve_response.py +25 -0
  209. whop_sdk-0.0.1.dist-info/METADATA +522 -0
  210. whop_sdk-0.0.1.dist-info/RECORD +212 -0
  211. whop_sdk-0.0.1.dist-info/WHEEL +4 -0
  212. whop_sdk-0.0.1.dist-info/licenses/LICENSE +201 -0
@@ -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__ = ["AppStatuses"]
6
+
7
+ AppStatuses: TypeAlias = Literal["live", "unlisted", "hidden"]
@@ -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__ = ["AppViewType"]
6
+
7
+ AppViewType: TypeAlias = Literal["hub", "discover", "dash", "dashboard", "analytics"]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["AuthorizedUserRoles"]
6
+
7
+ AuthorizedUserRoles: TypeAlias = Literal[
8
+ "owner", "admin", "sales_manager", "moderator", "app_manager", "support", "manager"
9
+ ]
@@ -0,0 +1,22 @@
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__ = ["BusinessTypes"]
6
+
7
+ BusinessTypes: TypeAlias = Literal[
8
+ "education_program",
9
+ "coaching",
10
+ "software",
11
+ "paid_group",
12
+ "newsletter",
13
+ "agency",
14
+ "physical_products",
15
+ "brick_and_mortar",
16
+ "events",
17
+ "coaching_and_courses",
18
+ "other",
19
+ "saas",
20
+ "course",
21
+ "community",
22
+ ]
@@ -0,0 +1,43 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..._models import BaseModel
6
+ from .who_can_post import WhoCanPost
7
+ from .who_can_react import WhoCanReact
8
+
9
+ __all__ = ["ChatChannel", "Experience"]
10
+
11
+
12
+ class Experience(BaseModel):
13
+ id: str
14
+ """The unique ID representing this experience"""
15
+
16
+ name: str
17
+ """The written name of the description."""
18
+
19
+
20
+ class ChatChannel(BaseModel):
21
+ id: str
22
+ """The unique identifier for the entity"""
23
+
24
+ ban_media: bool
25
+ """Whether or not media is banned in this chat"""
26
+
27
+ ban_urls: bool
28
+ """Whether or not URLs are banned in this chat"""
29
+
30
+ banned_words: List[str]
31
+ """List of banned words in this chat"""
32
+
33
+ experience: Experience
34
+ """The experience for this chat"""
35
+
36
+ user_posts_cooldown_seconds: Optional[int] = None
37
+ """The number of seconds a user needs to wait before posting again, if any"""
38
+
39
+ who_can_post: WhoCanPost
40
+ """Who can post on this chat"""
41
+
42
+ who_can_react: WhoCanReact
43
+ """Who can react on this chat"""
@@ -0,0 +1,66 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Optional
4
+
5
+ from .currency import Currency
6
+ from ..._models import BaseModel
7
+ from .plan_type import PlanType
8
+ from .visibility import Visibility
9
+ from .release_method import ReleaseMethod
10
+
11
+ __all__ = ["CheckoutConfiguration", "Plan"]
12
+
13
+
14
+ class Plan(BaseModel):
15
+ id: str
16
+ """The internal ID of the plan."""
17
+
18
+ billing_period: Optional[int] = None
19
+ """The interval at which the plan charges (renewal plans)."""
20
+
21
+ currency: Currency
22
+ """The respective currency identifier for the plan."""
23
+
24
+ expiration_days: Optional[int] = None
25
+ """The interval at which the plan charges (expiration plans)."""
26
+
27
+ initial_price: float
28
+ """The price a person has to pay for a plan on the initial purchase."""
29
+
30
+ plan_type: PlanType
31
+ """Indicates if the plan is a one time payment or recurring."""
32
+
33
+ release_method: ReleaseMethod
34
+ """This is the release method the business uses to sell this plan."""
35
+
36
+ renewal_price: float
37
+ """The price a person has to pay for a plan on the renewal purchase."""
38
+
39
+ trial_period_days: Optional[int] = None
40
+ """The number of free trial days added before a renewal plan."""
41
+
42
+ visibility: Visibility
43
+ """Shows or hides the plan from public/business view."""
44
+
45
+
46
+ class CheckoutConfiguration(BaseModel):
47
+ id: str
48
+ """The ID of the checkout session"""
49
+
50
+ affiliate_code: str
51
+ """The affiliate code to use for the checkout session"""
52
+
53
+ company_id: str
54
+ """The ID of the company to use for the checkout session"""
55
+
56
+ metadata: Dict[str, object]
57
+ """The metadata to use for the checkout session"""
58
+
59
+ plan: Plan
60
+ """The plan to use for the checkout session"""
61
+
62
+ purchase_url: str
63
+ """The URL to redirect the user to after the checkout session is created"""
64
+
65
+ redirect_url: str
66
+ """The URL to redirect the user to after the checkout session is created"""
@@ -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__ = ["CollectionMethod"]
6
+
7
+ CollectionMethod: TypeAlias = Literal["send_invoice", "charge_automatically"]
@@ -0,0 +1,71 @@
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
+ from typing_extensions import Literal
6
+
7
+ from ..._models import BaseModel
8
+ from .business_types import BusinessTypes
9
+ from .industry_types import IndustryTypes
10
+
11
+ __all__ = ["Company", "OwnerUser", "SocialLink"]
12
+
13
+
14
+ class OwnerUser(BaseModel):
15
+ id: str
16
+ """The internal ID of the user."""
17
+
18
+ name: Optional[str] = None
19
+ """The name of the user from their Whop account."""
20
+
21
+ username: str
22
+ """The username of the user from their Whop account."""
23
+
24
+
25
+ class SocialLink(BaseModel):
26
+ id: str
27
+ """The ID"""
28
+
29
+ url: str
30
+ """The URL"""
31
+
32
+ website: Literal["x", "instagram", "facebook", "tiktok", "youtube", "linkedin", "twitch", "website"]
33
+ """The website"""
34
+
35
+
36
+ class Company(BaseModel):
37
+ id: str
38
+ """The ID (tag) of the company."""
39
+
40
+ business_type: Optional[BusinessTypes] = None
41
+ """The different business types a company can be."""
42
+
43
+ created_at: datetime
44
+ """When the company was created (signed up)"""
45
+
46
+ industry_type: Optional[IndustryTypes] = None
47
+ """The different industry types a company can be in."""
48
+
49
+ member_count: int
50
+ """The number of members in the company."""
51
+
52
+ owner_user: OwnerUser
53
+ """The user who owns this company"""
54
+
55
+ published_reviews_count: int
56
+ """The number of reviews that have been published for the company."""
57
+
58
+ route: str
59
+ """The slug/route of the company on the Whop site."""
60
+
61
+ social_links: List[SocialLink]
62
+ """The social media accounts of the company"""
63
+
64
+ title: str
65
+ """The title of the company."""
66
+
67
+ updated_at: datetime
68
+ """The time the company was last updated."""
69
+
70
+ verified: bool
71
+ """If the company is Whop Verified"""
@@ -0,0 +1,44 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["CourseLessonInteraction", "Lesson", "User"]
9
+
10
+
11
+ class Lesson(BaseModel):
12
+ id: str
13
+ """The ID of the lesson"""
14
+
15
+ title: str
16
+ """The title of the lesson"""
17
+
18
+
19
+ class User(BaseModel):
20
+ id: str
21
+ """The internal ID of the user."""
22
+
23
+ name: Optional[str] = None
24
+ """The name of the user from their Whop account."""
25
+
26
+ username: str
27
+ """The username of the user from their Whop account."""
28
+
29
+
30
+ class CourseLessonInteraction(BaseModel):
31
+ id: str
32
+ """The ID of the lesson interaction"""
33
+
34
+ completed: bool
35
+ """Whether the lesson has been completed by the user"""
36
+
37
+ created_at: datetime
38
+ """When the interaction was created"""
39
+
40
+ lesson: Lesson
41
+ """The lesson this interaction is for"""
42
+
43
+ user: User
44
+ """The user who interacted with the lesson"""
@@ -0,0 +1,44 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["CourseLessonInteractionListItem", "Lesson", "User"]
9
+
10
+
11
+ class Lesson(BaseModel):
12
+ id: str
13
+ """The ID of the lesson"""
14
+
15
+ title: str
16
+ """The title of the lesson"""
17
+
18
+
19
+ class User(BaseModel):
20
+ id: str
21
+ """The internal ID of the user."""
22
+
23
+ name: Optional[str] = None
24
+ """The name of the user from their Whop account."""
25
+
26
+ username: str
27
+ """The username of the user from their Whop account."""
28
+
29
+
30
+ class CourseLessonInteractionListItem(BaseModel):
31
+ id: str
32
+ """The ID of the lesson interaction"""
33
+
34
+ completed: bool
35
+ """Whether the lesson has been completed by the user"""
36
+
37
+ created_at: datetime
38
+ """When the interaction was created"""
39
+
40
+ lesson: Lesson
41
+ """The lesson this interaction is for"""
42
+
43
+ user: User
44
+ """The user who interacted with the lesson"""
@@ -0,0 +1,92 @@
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__ = ["Currency"]
6
+
7
+ Currency: TypeAlias = Literal[
8
+ "usd",
9
+ "sgd",
10
+ "inr",
11
+ "aud",
12
+ "brl",
13
+ "cad",
14
+ "dkk",
15
+ "eur",
16
+ "nok",
17
+ "gbp",
18
+ "sek",
19
+ "chf",
20
+ "hkd",
21
+ "huf",
22
+ "jpy",
23
+ "mxn",
24
+ "myr",
25
+ "pln",
26
+ "czk",
27
+ "nzd",
28
+ "aed",
29
+ "eth",
30
+ "ape",
31
+ "cop",
32
+ "ron",
33
+ "thb",
34
+ "bgn",
35
+ "idr",
36
+ "dop",
37
+ "php",
38
+ "try",
39
+ "krw",
40
+ "twd",
41
+ "vnd",
42
+ "pkr",
43
+ "clp",
44
+ "uyu",
45
+ "ars",
46
+ "zar",
47
+ "dzd",
48
+ "tnd",
49
+ "mad",
50
+ "kes",
51
+ "kwd",
52
+ "jod",
53
+ "all",
54
+ "xcd",
55
+ "amd",
56
+ "bsd",
57
+ "bhd",
58
+ "bob",
59
+ "bam",
60
+ "khr",
61
+ "crc",
62
+ "xof",
63
+ "egp",
64
+ "etb",
65
+ "gmd",
66
+ "ghs",
67
+ "gtq",
68
+ "gyd",
69
+ "ils",
70
+ "jmd",
71
+ "mop",
72
+ "mga",
73
+ "mur",
74
+ "mdl",
75
+ "mnt",
76
+ "nad",
77
+ "ngn",
78
+ "mkd",
79
+ "omr",
80
+ "pyg",
81
+ "pen",
82
+ "qar",
83
+ "rwf",
84
+ "sar",
85
+ "rsd",
86
+ "lkr",
87
+ "tzs",
88
+ "ttd",
89
+ "uzs",
90
+ "rub",
91
+ "btc",
92
+ ]
@@ -0,0 +1,21 @@
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__ = ["CustomCta"]
6
+
7
+ CustomCta: TypeAlias = Literal[
8
+ "get_access",
9
+ "join",
10
+ "order_now",
11
+ "shop_now",
12
+ "call_now",
13
+ "donate_now",
14
+ "contact_us",
15
+ "sign_up",
16
+ "subscribe",
17
+ "purchase",
18
+ "get_offer",
19
+ "apply_now",
20
+ "complete_order",
21
+ ]
@@ -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__ = ["Direction"]
6
+
7
+ Direction: TypeAlias = Literal["asc", "desc"]
@@ -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__ = ["DmsPostTypes"]
6
+
7
+ DmsPostTypes: TypeAlias = Literal["regular", "system", "automated"]
@@ -0,0 +1,70 @@
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 .entry_status import EntryStatus
8
+
9
+ __all__ = ["Entry", "CustomFieldResponse", "Plan", "Product", "User"]
10
+
11
+
12
+ class CustomFieldResponse(BaseModel):
13
+ id: str
14
+ """The ID of the custom field item"""
15
+
16
+ answer: str
17
+ """The response a user gave to the specific question or field."""
18
+
19
+ question: str
20
+ """The question asked by the custom field"""
21
+
22
+
23
+ class Plan(BaseModel):
24
+ id: str
25
+ """The internal ID of the plan."""
26
+
27
+
28
+ class Product(BaseModel):
29
+ id: str
30
+ """The internal ID of the public product."""
31
+
32
+ title: str
33
+ """The title of the product. Use for Whop 4.0."""
34
+
35
+
36
+ class User(BaseModel):
37
+ id: str
38
+ """The internal ID of the user."""
39
+
40
+ email: Optional[str] = None
41
+ """The email of the user"""
42
+
43
+ name: Optional[str] = None
44
+ """The name of the user from their Whop account."""
45
+
46
+ username: str
47
+ """The username of the user from their Whop account."""
48
+
49
+
50
+ class Entry(BaseModel):
51
+ id: str
52
+ """The internal ID of the entry."""
53
+
54
+ created_at: Optional[datetime] = None
55
+ """When the entry was created."""
56
+
57
+ custom_field_responses: Optional[List[CustomFieldResponse]] = None
58
+ """Responses collected from the user when submitting their entry."""
59
+
60
+ plan: Optional[Plan] = None
61
+ """The waitlist plan the entry if for."""
62
+
63
+ product: Optional[Product] = None
64
+ """The access pass tied to this entry, if there is one."""
65
+
66
+ status: EntryStatus
67
+ """The status of the entry."""
68
+
69
+ user: User
70
+ """The user who created the entry."""
@@ -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__ = ["EntryStatus"]
6
+
7
+ EntryStatus: TypeAlias = Literal["drafted", "pending", "approved", "denied", "any"]
@@ -0,0 +1,66 @@
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
+
8
+ __all__ = ["Experience", "App", "Company", "Product"]
9
+
10
+
11
+ class App(BaseModel):
12
+ id: str
13
+ """The ID of the app"""
14
+
15
+ name: str
16
+ """The name of the app"""
17
+
18
+
19
+ class Company(BaseModel):
20
+ id: str
21
+ """The ID (tag) of the company."""
22
+
23
+ route: str
24
+ """The slug/route of the company on the Whop site."""
25
+
26
+ title: str
27
+ """The title of the company."""
28
+
29
+
30
+ class Product(BaseModel):
31
+ id: str
32
+ """The internal ID of the public product."""
33
+
34
+ route: str
35
+ """The route of the product."""
36
+
37
+ title: str
38
+ """The title of the product. Use for Whop 4.0."""
39
+
40
+
41
+ class Experience(BaseModel):
42
+ id: str
43
+ """The unique ID representing this experience"""
44
+
45
+ app: App
46
+ """The experience interface for this experience."""
47
+
48
+ company: Company
49
+ """The company that owns this experience."""
50
+
51
+ created_at: datetime
52
+ """The timestamp of when this experience was created."""
53
+
54
+ name: str
55
+ """The written name of the description."""
56
+
57
+ order: Optional[str] = None
58
+ """The order of the experience in the section"""
59
+
60
+ products: List[Product]
61
+ """The access passes that are associated with this experience.
62
+
63
+ This should not be used unless you are trying to list all access passes the
64
+ experience has, for some reason. You probably don't want to use this though and
65
+ should be using accessPass.
66
+ """
@@ -0,0 +1,53 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["ForumPost", "User"]
8
+
9
+
10
+ class User(BaseModel):
11
+ id: str
12
+ """The internal ID of the user."""
13
+
14
+ name: Optional[str] = None
15
+ """The name of the user from their Whop account."""
16
+
17
+ username: str
18
+ """The username of the user from their Whop account."""
19
+
20
+
21
+ class ForumPost(BaseModel):
22
+ id: str
23
+ """The unique identifier for the entity"""
24
+
25
+ comment_count: int
26
+ """The amount of comments on this post"""
27
+
28
+ content: Optional[str] = None
29
+ """The content of the forum post in Markdown format"""
30
+
31
+ is_edited: bool
32
+ """Whether the forum post has been edited"""
33
+
34
+ is_pinned: bool
35
+ """Whether this forum post is pinned"""
36
+
37
+ is_poster_admin: bool
38
+ """Whether the user that sent the post is an admin of the company"""
39
+
40
+ like_count: Optional[int] = None
41
+ """The number of likes this post has received"""
42
+
43
+ parent_id: Optional[str] = None
44
+ """The ID of the parent forum post, if applicable"""
45
+
46
+ title: Optional[str] = None
47
+ """The title of the forum post"""
48
+
49
+ user: User
50
+ """The user who created this forum post"""
51
+
52
+ view_count: Optional[int] = None
53
+ """The number of times this message has been viewed"""
@@ -0,0 +1,24 @@
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__ = ["FriendlyReceiptStatus"]
6
+
7
+ FriendlyReceiptStatus: TypeAlias = Literal[
8
+ "auto_refunded",
9
+ "refunded",
10
+ "partially_refunded",
11
+ "dispute_warning",
12
+ "open_resolution",
13
+ "open_dispute",
14
+ "failed",
15
+ "price_too_low",
16
+ "succeeded",
17
+ "drafted",
18
+ "uncollectible",
19
+ "unresolved",
20
+ "past_due",
21
+ "pending",
22
+ "incomplete",
23
+ "canceled",
24
+ ]