whop-sdk 0.0.1__py3-none-any.whl → 0.0.3__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.
- whop_sdk/_client.py +65 -2
- whop_sdk/_version.py +1 -1
- whop_sdk/resources/__init__.py +98 -0
- whop_sdk/resources/checkout_configurations.py +16 -12
- whop_sdk/resources/course_chapters.py +602 -0
- whop_sdk/resources/course_lessons.py +722 -0
- whop_sdk/resources/courses.py +713 -0
- whop_sdk/resources/experiences.py +107 -0
- whop_sdk/resources/forum_posts.py +123 -1
- whop_sdk/resources/forums.py +446 -0
- whop_sdk/resources/members.py +429 -0
- whop_sdk/resources/memberships.py +16 -8
- whop_sdk/resources/messages.py +113 -1
- whop_sdk/resources/payments.py +3 -26
- whop_sdk/resources/plans.py +84 -6
- whop_sdk/resources/products.py +8 -16
- whop_sdk/resources/promo_codes.py +652 -0
- whop_sdk/resources/reviews.py +315 -0
- whop_sdk/types/__init__.py +64 -0
- whop_sdk/types/app_list_response.py +16 -1
- whop_sdk/types/assessment_question_types.py +7 -0
- whop_sdk/types/billing_reasons.py +9 -0
- whop_sdk/types/card_brands.py +24 -0
- whop_sdk/types/checkout_configuration_create_params.py +70 -7
- whop_sdk/types/checkout_configuration_list_response.py +12 -9
- whop_sdk/types/course.py +109 -0
- whop_sdk/types/course_chapter.py +32 -0
- whop_sdk/types/course_chapter_create_params.py +16 -0
- whop_sdk/types/course_chapter_delete_response.py +7 -0
- whop_sdk/types/course_chapter_list_params.py +25 -0
- whop_sdk/types/course_chapter_list_response.py +16 -0
- whop_sdk/types/course_chapter_update_params.py +12 -0
- whop_sdk/types/course_create_params.py +41 -0
- whop_sdk/types/course_delete_response.py +7 -0
- whop_sdk/types/course_lesson_create_params.py +27 -0
- whop_sdk/types/course_lesson_delete_response.py +7 -0
- whop_sdk/types/course_lesson_interaction_completed_webhook_event.py +26 -0
- whop_sdk/types/course_lesson_list_params.py +28 -0
- whop_sdk/types/course_lesson_list_response.py +35 -0
- whop_sdk/types/course_lesson_update_params.py +144 -0
- whop_sdk/types/course_list_params.py +28 -0
- whop_sdk/types/course_list_response.py +77 -0
- whop_sdk/types/course_update_params.py +89 -0
- whop_sdk/types/entry_approved_webhook_event.py +26 -0
- whop_sdk/types/entry_created_webhook_event.py +26 -0
- whop_sdk/types/entry_deleted_webhook_event.py +26 -0
- whop_sdk/types/entry_denied_webhook_event.py +26 -0
- whop_sdk/types/experience_duplicate_params.py +13 -0
- whop_sdk/types/experience_list_response.py +27 -1
- whop_sdk/types/forum_list_params.py +28 -0
- whop_sdk/types/forum_list_response.py +33 -0
- whop_sdk/types/forum_post_list_response.py +7 -0
- whop_sdk/types/forum_post_update_params.py +41 -0
- whop_sdk/types/forum_update_params.py +23 -0
- whop_sdk/types/invoice_create_params.py +10 -2
- whop_sdk/types/languages.py +30 -0
- whop_sdk/types/ledger_account_retrieve_response.py +15 -1
- whop_sdk/types/lesson.py +159 -0
- whop_sdk/types/lesson_types.py +7 -0
- whop_sdk/types/lesson_visibilities.py +7 -0
- whop_sdk/types/member_list_params.py +73 -0
- whop_sdk/types/member_list_response.py +65 -0
- whop_sdk/types/member_retrieve_response.py +79 -0
- whop_sdk/types/membership_activated_webhook_event.py +29 -0
- whop_sdk/types/membership_deactivated_webhook_event.py +29 -0
- whop_sdk/types/membership_list_params.py +7 -4
- whop_sdk/types/membership_list_response.py +12 -1
- whop_sdk/types/message_update_params.py +35 -0
- whop_sdk/types/payment_failed_webhook_event.py +26 -0
- whop_sdk/types/payment_list_params.py +2 -7
- whop_sdk/types/payment_list_response.py +23 -13
- whop_sdk/types/payment_method_types.py +92 -0
- whop_sdk/types/payment_pending_webhook_event.py +26 -0
- whop_sdk/types/payment_succeeded_webhook_event.py +26 -0
- whop_sdk/types/plan_create_params.py +29 -3
- whop_sdk/types/plan_list_response.py +9 -0
- whop_sdk/types/plan_update_params.py +18 -0
- whop_sdk/types/product_create_params.py +1 -24
- whop_sdk/types/product_update_params.py +12 -1
- whop_sdk/types/promo_code.py +90 -0
- whop_sdk/types/promo_code_create_params.py +70 -0
- whop_sdk/types/promo_code_delete_response.py +7 -0
- whop_sdk/types/promo_code_list_params.py +37 -0
- whop_sdk/types/promo_code_list_response.py +79 -0
- whop_sdk/types/promo_code_status.py +7 -0
- whop_sdk/types/promo_duration.py +7 -0
- whop_sdk/types/review_list_params.py +31 -0
- whop_sdk/types/review_list_response.py +78 -0
- whop_sdk/types/review_retrieve_response.py +103 -0
- whop_sdk/types/review_status.py +7 -0
- whop_sdk/types/shared/__init__.py +7 -0
- whop_sdk/types/shared/access_level.py +7 -0
- whop_sdk/types/shared/app.py +25 -1
- whop_sdk/types/shared/checkout_configuration.py +12 -9
- whop_sdk/types/shared/company.py +15 -1
- whop_sdk/types/shared/course_lesson_interaction.py +20 -1
- whop_sdk/types/shared/email_notification_preferences.py +7 -0
- whop_sdk/types/shared/experience.py +27 -1
- whop_sdk/types/shared/forum.py +33 -0
- whop_sdk/types/shared/forum_post.py +7 -0
- whop_sdk/types/shared/invoice.py +4 -1
- whop_sdk/types/shared/invoice_list_item.py +4 -1
- whop_sdk/types/shared/member_most_recent_actions.py +22 -0
- whop_sdk/types/shared/member_statuses.py +7 -0
- whop_sdk/types/shared/membership.py +12 -1
- whop_sdk/types/shared/payment.py +23 -13
- whop_sdk/types/shared/plan.py +9 -0
- whop_sdk/types/shared/product.py +8 -0
- whop_sdk/types/shared/product_list_item.py +8 -0
- whop_sdk/types/shared/who_can_comment_types.py +7 -0
- whop_sdk/types/shared/who_can_post_types.py +7 -0
- whop_sdk/types/shared_params/__init__.py +7 -0
- whop_sdk/types/shared_params/access_level.py +9 -0
- whop_sdk/types/shared_params/email_notification_preferences.py +9 -0
- whop_sdk/types/shared_params/member_most_recent_actions.py +24 -0
- whop_sdk/types/shared_params/member_statuses.py +9 -0
- whop_sdk/types/shared_params/promo_type.py +9 -0
- whop_sdk/types/shared_params/who_can_comment_types.py +9 -0
- whop_sdk/types/shared_params/who_can_post_types.py +9 -0
- whop_sdk/types/unwrap_webhook_event.py +24 -1
- whop_sdk/types/user_check_access_response.py +2 -3
- whop_sdk/types/user_retrieve_response.py +12 -1
- {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/METADATA +2 -2
- {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/RECORD +126 -50
- {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/WHEEL +0 -0
- {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
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 .promo_duration import PromoDuration
|
|
8
|
+
from .shared.currency import Currency
|
|
9
|
+
from .promo_code_status import PromoCodeStatus
|
|
10
|
+
from .shared.promo_type import PromoType
|
|
11
|
+
|
|
12
|
+
__all__ = ["PromoCodeListResponse", "Product"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Product(BaseModel):
|
|
16
|
+
id: str
|
|
17
|
+
"""The internal ID of the public product."""
|
|
18
|
+
|
|
19
|
+
title: str
|
|
20
|
+
"""The title of the product. Use for Whop 4.0."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class PromoCodeListResponse(BaseModel):
|
|
24
|
+
id: str
|
|
25
|
+
"""The ID of the promo."""
|
|
26
|
+
|
|
27
|
+
amount_off: float
|
|
28
|
+
"""The amount off (% or flat amount) for the promo."""
|
|
29
|
+
|
|
30
|
+
churned_users_only: bool
|
|
31
|
+
"""Restricts promo use to only users who have churned from the company before."""
|
|
32
|
+
|
|
33
|
+
code: Optional[str] = None
|
|
34
|
+
"""The specific code used to apply the promo at checkout."""
|
|
35
|
+
|
|
36
|
+
created_at: datetime
|
|
37
|
+
"""The timestamp of when the promo was created."""
|
|
38
|
+
|
|
39
|
+
currency: Currency
|
|
40
|
+
"""The monetary currency of the promo code."""
|
|
41
|
+
|
|
42
|
+
duration: Optional[PromoDuration] = None
|
|
43
|
+
"""The duration setting for the promo code"""
|
|
44
|
+
|
|
45
|
+
existing_memberships_only: bool
|
|
46
|
+
"""Restricts promo use to only be applied to already purchased memberships."""
|
|
47
|
+
|
|
48
|
+
expires_at: Optional[datetime] = None
|
|
49
|
+
"""The date/time of when the promo expires."""
|
|
50
|
+
|
|
51
|
+
new_users_only: bool
|
|
52
|
+
"""
|
|
53
|
+
Restricts promo use to only users who have never purchased from the company
|
|
54
|
+
before.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
one_per_customer: bool
|
|
58
|
+
"""Restricts promo use to only be applied once per customer."""
|
|
59
|
+
|
|
60
|
+
product: Optional[Product] = None
|
|
61
|
+
"""The access pass associated with the promo code."""
|
|
62
|
+
|
|
63
|
+
promo_duration_months: Optional[int] = None
|
|
64
|
+
"""The number of months the promo is applied for."""
|
|
65
|
+
|
|
66
|
+
promo_type: PromoType
|
|
67
|
+
"""The type (% or flat amount) of the promo."""
|
|
68
|
+
|
|
69
|
+
status: PromoCodeStatus
|
|
70
|
+
"""Indicates if the promo code is live or disabled."""
|
|
71
|
+
|
|
72
|
+
stock: int
|
|
73
|
+
"""The quantity limit on the number of uses."""
|
|
74
|
+
|
|
75
|
+
unlimited_stock: bool
|
|
76
|
+
"""Whether or not the promo code has unlimited stock."""
|
|
77
|
+
|
|
78
|
+
uses: int
|
|
79
|
+
"""The amount of times the promo codes has been used."""
|
|
@@ -0,0 +1,31 @@
|
|
|
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 Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["ReviewListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ReviewListParams(TypedDict, total=False):
|
|
12
|
+
product_id: Required[str]
|
|
13
|
+
"""The ID of the product"""
|
|
14
|
+
|
|
15
|
+
after: Optional[str]
|
|
16
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
17
|
+
|
|
18
|
+
before: Optional[str]
|
|
19
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
20
|
+
|
|
21
|
+
first: Optional[int]
|
|
22
|
+
"""Returns the first _n_ elements from the list."""
|
|
23
|
+
|
|
24
|
+
last: Optional[int]
|
|
25
|
+
"""Returns the last _n_ elements from the list."""
|
|
26
|
+
|
|
27
|
+
max_stars: Optional[int]
|
|
28
|
+
"""The maximum star rating of the review (inclusive)"""
|
|
29
|
+
|
|
30
|
+
min_stars: Optional[int]
|
|
31
|
+
"""The minimum star rating of the review (inclusive)"""
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .review_status import ReviewStatus
|
|
8
|
+
|
|
9
|
+
__all__ = ["ReviewListResponse", "Attachment", "User"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Attachment(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""The ID of the attachment"""
|
|
15
|
+
|
|
16
|
+
content_type: Optional[str] = None
|
|
17
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
18
|
+
|
|
19
|
+
filename: Optional[str] = None
|
|
20
|
+
"""The name of the file"""
|
|
21
|
+
|
|
22
|
+
url: Optional[str] = None
|
|
23
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
24
|
+
|
|
25
|
+
This should be used for apps.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class User(BaseModel):
|
|
30
|
+
id: str
|
|
31
|
+
"""The internal ID of the user."""
|
|
32
|
+
|
|
33
|
+
name: Optional[str] = None
|
|
34
|
+
"""The name of the user from their Whop account."""
|
|
35
|
+
|
|
36
|
+
username: str
|
|
37
|
+
"""The username of the user from their Whop account."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ReviewListResponse(BaseModel):
|
|
41
|
+
id: str
|
|
42
|
+
"""The internal ID of the review."""
|
|
43
|
+
|
|
44
|
+
attachments: List[Attachment]
|
|
45
|
+
"""The attachments attached to the review."""
|
|
46
|
+
|
|
47
|
+
created_at: datetime
|
|
48
|
+
"""The timestamp of when the review was created."""
|
|
49
|
+
|
|
50
|
+
description: Optional[str] = None
|
|
51
|
+
"""The description of the review."""
|
|
52
|
+
|
|
53
|
+
joined_at: Optional[datetime] = None
|
|
54
|
+
"""The timestamp of when the user joined the product."""
|
|
55
|
+
|
|
56
|
+
paid_for_product: Optional[bool] = None
|
|
57
|
+
"""Whether or not the user paid for the product.
|
|
58
|
+
|
|
59
|
+
If null, the payment status is unknown.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
published_at: Optional[datetime] = None
|
|
63
|
+
"""The timestamp of when the review was published."""
|
|
64
|
+
|
|
65
|
+
stars: int
|
|
66
|
+
"""The number of stars the user gave the product."""
|
|
67
|
+
|
|
68
|
+
status: ReviewStatus
|
|
69
|
+
"""The status of the review."""
|
|
70
|
+
|
|
71
|
+
title: Optional[str] = None
|
|
72
|
+
"""The title of the review."""
|
|
73
|
+
|
|
74
|
+
updated_at: datetime
|
|
75
|
+
"""The timestamp of when the review was last updated."""
|
|
76
|
+
|
|
77
|
+
user: User
|
|
78
|
+
"""The user account that performed the action."""
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .review_status import ReviewStatus
|
|
8
|
+
|
|
9
|
+
__all__ = ["ReviewRetrieveResponse", "Attachment", "Company", "Product", "User"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Attachment(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""The ID of the attachment"""
|
|
15
|
+
|
|
16
|
+
content_type: Optional[str] = None
|
|
17
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
18
|
+
|
|
19
|
+
filename: Optional[str] = None
|
|
20
|
+
"""The name of the file"""
|
|
21
|
+
|
|
22
|
+
url: Optional[str] = None
|
|
23
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
24
|
+
|
|
25
|
+
This should be used for apps.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class Company(BaseModel):
|
|
30
|
+
id: str
|
|
31
|
+
"""The ID (tag) of the company."""
|
|
32
|
+
|
|
33
|
+
route: str
|
|
34
|
+
"""The slug/route of the company on the Whop site."""
|
|
35
|
+
|
|
36
|
+
title: str
|
|
37
|
+
"""The title of the company."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class Product(BaseModel):
|
|
41
|
+
id: str
|
|
42
|
+
"""The internal ID of the public product."""
|
|
43
|
+
|
|
44
|
+
title: str
|
|
45
|
+
"""The title of the product. Use for Whop 4.0."""
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class User(BaseModel):
|
|
49
|
+
id: str
|
|
50
|
+
"""The internal ID of the user."""
|
|
51
|
+
|
|
52
|
+
name: Optional[str] = None
|
|
53
|
+
"""The name of the user from their Whop account."""
|
|
54
|
+
|
|
55
|
+
username: str
|
|
56
|
+
"""The username of the user from their Whop account."""
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class ReviewRetrieveResponse(BaseModel):
|
|
60
|
+
id: str
|
|
61
|
+
"""The internal ID of the review."""
|
|
62
|
+
|
|
63
|
+
attachments: List[Attachment]
|
|
64
|
+
"""The attachments attached to the review."""
|
|
65
|
+
|
|
66
|
+
company: Company
|
|
67
|
+
"""The company the review is for."""
|
|
68
|
+
|
|
69
|
+
created_at: datetime
|
|
70
|
+
"""The timestamp of when the review was created."""
|
|
71
|
+
|
|
72
|
+
description: Optional[str] = None
|
|
73
|
+
"""The description of the review."""
|
|
74
|
+
|
|
75
|
+
joined_at: Optional[datetime] = None
|
|
76
|
+
"""The timestamp of when the user joined the product."""
|
|
77
|
+
|
|
78
|
+
paid_for_product: Optional[bool] = None
|
|
79
|
+
"""Whether or not the user paid for the product.
|
|
80
|
+
|
|
81
|
+
If null, the payment status is unknown.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
product: Product
|
|
85
|
+
"""The product the review is for."""
|
|
86
|
+
|
|
87
|
+
published_at: Optional[datetime] = None
|
|
88
|
+
"""The timestamp of when the review was published."""
|
|
89
|
+
|
|
90
|
+
stars: int
|
|
91
|
+
"""The number of stars the user gave the product."""
|
|
92
|
+
|
|
93
|
+
status: ReviewStatus
|
|
94
|
+
"""The status of the review."""
|
|
95
|
+
|
|
96
|
+
title: Optional[str] = None
|
|
97
|
+
"""The title of the review."""
|
|
98
|
+
|
|
99
|
+
updated_at: datetime
|
|
100
|
+
"""The timestamp of when the review was last updated."""
|
|
101
|
+
|
|
102
|
+
user: User
|
|
103
|
+
"""The user account that performed the action."""
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from .app import App as App
|
|
4
4
|
from .plan import Plan as Plan
|
|
5
5
|
from .entry import Entry as Entry
|
|
6
|
+
from .forum import Forum as Forum
|
|
6
7
|
from .company import Company as Company
|
|
7
8
|
from .invoice import Invoice as Invoice
|
|
8
9
|
from .message import Message as Message
|
|
@@ -23,6 +24,7 @@ from .forum_post import ForumPost as ForumPost
|
|
|
23
24
|
from .membership import Membership as Membership
|
|
24
25
|
from .promo_type import PromoType as PromoType
|
|
25
26
|
from .visibility import Visibility as Visibility
|
|
27
|
+
from .access_level import AccessLevel as AccessLevel
|
|
26
28
|
from .app_statuses import AppStatuses as AppStatuses
|
|
27
29
|
from .chat_channel import ChatChannel as ChatChannel
|
|
28
30
|
from .entry_status import EntryStatus as EntryStatus
|
|
@@ -35,6 +37,7 @@ from .industry_types import IndustryTypes as IndustryTypes
|
|
|
35
37
|
from .invoice_status import InvoiceStatus as InvoiceStatus
|
|
36
38
|
from .receipt_status import ReceiptStatus as ReceiptStatus
|
|
37
39
|
from .release_method import ReleaseMethod as ReleaseMethod
|
|
40
|
+
from .member_statuses import MemberStatuses as MemberStatuses
|
|
38
41
|
from .shipment_status import ShipmentStatus as ShipmentStatus
|
|
39
42
|
from .support_channel import SupportChannel as SupportChannel
|
|
40
43
|
from .access_pass_type import AccessPassType as AccessPassType
|
|
@@ -46,10 +49,14 @@ from .product_list_item import ProductListItem as ProductListItem
|
|
|
46
49
|
from .visibility_filter import VisibilityFilter as VisibilityFilter
|
|
47
50
|
from .app_build_statuses import AppBuildStatuses as AppBuildStatuses
|
|
48
51
|
from .shipment_substatus import ShipmentSubstatus as ShipmentSubstatus
|
|
52
|
+
from .who_can_post_types import WhoCanPostTypes as WhoCanPostTypes
|
|
49
53
|
from .app_build_platforms import AppBuildPlatforms as AppBuildPlatforms
|
|
50
54
|
from .authorized_user_roles import AuthorizedUserRoles as AuthorizedUserRoles
|
|
55
|
+
from .who_can_comment_types import WhoCanCommentTypes as WhoCanCommentTypes
|
|
51
56
|
from .checkout_configuration import CheckoutConfiguration as CheckoutConfiguration
|
|
52
57
|
from .friendly_receipt_status import FriendlyReceiptStatus as FriendlyReceiptStatus
|
|
53
58
|
from .global_affiliate_status import GlobalAffiliateStatus as GlobalAffiliateStatus
|
|
54
59
|
from .course_lesson_interaction import CourseLessonInteraction as CourseLessonInteraction
|
|
60
|
+
from .member_most_recent_actions import MemberMostRecentActions as MemberMostRecentActions
|
|
61
|
+
from .email_notification_preferences import EmailNotificationPreferences as EmailNotificationPreferences
|
|
55
62
|
from .course_lesson_interaction_list_item import CourseLessonInteractionListItem as CourseLessonInteractionListItem
|
whop_sdk/types/shared/app.py
CHANGED
|
@@ -6,7 +6,16 @@ from datetime import datetime
|
|
|
6
6
|
from ..._models import BaseModel
|
|
7
7
|
from .app_statuses import AppStatuses
|
|
8
8
|
|
|
9
|
-
__all__ = [
|
|
9
|
+
__all__ = [
|
|
10
|
+
"App",
|
|
11
|
+
"APIKey",
|
|
12
|
+
"Company",
|
|
13
|
+
"Creator",
|
|
14
|
+
"Icon",
|
|
15
|
+
"RequestedPermission",
|
|
16
|
+
"RequestedPermissionPermissionAction",
|
|
17
|
+
"Stats",
|
|
18
|
+
]
|
|
10
19
|
|
|
11
20
|
|
|
12
21
|
class APIKey(BaseModel):
|
|
@@ -39,6 +48,14 @@ class Creator(BaseModel):
|
|
|
39
48
|
"""The username of the user from their Whop account."""
|
|
40
49
|
|
|
41
50
|
|
|
51
|
+
class Icon(BaseModel):
|
|
52
|
+
url: Optional[str] = None
|
|
53
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
54
|
+
|
|
55
|
+
This should be used for apps.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
|
|
42
59
|
class RequestedPermissionPermissionAction(BaseModel):
|
|
43
60
|
action: str
|
|
44
61
|
"""The identifier of the action."""
|
|
@@ -130,6 +147,13 @@ class App(BaseModel):
|
|
|
130
147
|
/experiences/[experienceId]
|
|
131
148
|
"""
|
|
132
149
|
|
|
150
|
+
icon: Optional[Icon] = None
|
|
151
|
+
"""The icon for the app.
|
|
152
|
+
|
|
153
|
+
This icon is shown on discovery, on the product page, on checkout, and as a
|
|
154
|
+
default icon for the experiences.
|
|
155
|
+
"""
|
|
156
|
+
|
|
133
157
|
name: str
|
|
134
158
|
"""The name of the app"""
|
|
135
159
|
|
|
@@ -45,22 +45,25 @@ class Plan(BaseModel):
|
|
|
45
45
|
|
|
46
46
|
class CheckoutConfiguration(BaseModel):
|
|
47
47
|
id: str
|
|
48
|
-
"""The ID of the checkout
|
|
48
|
+
"""The ID of the checkout configuration"""
|
|
49
49
|
|
|
50
|
-
affiliate_code: str
|
|
51
|
-
"""The affiliate code to use for the checkout
|
|
50
|
+
affiliate_code: Optional[str] = None
|
|
51
|
+
"""The affiliate code to use for the checkout configuration"""
|
|
52
52
|
|
|
53
53
|
company_id: str
|
|
54
|
-
"""The ID of the company to use for the checkout
|
|
54
|
+
"""The ID of the company to use for the checkout configuration"""
|
|
55
55
|
|
|
56
56
|
metadata: Dict[str, object]
|
|
57
|
-
"""The metadata to use for the checkout
|
|
57
|
+
"""The metadata to use for the checkout configuration"""
|
|
58
58
|
|
|
59
59
|
plan: Plan
|
|
60
|
-
"""The plan to use for the checkout
|
|
60
|
+
"""The plan to use for the checkout configuration"""
|
|
61
61
|
|
|
62
62
|
purchase_url: str
|
|
63
|
-
"""
|
|
63
|
+
"""A URL you can send to customers to complete a checkout.
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
"""
|
|
65
|
+
It looks like `/checkout/plan_xxxx?session={id}`
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
redirect_url: Optional[str] = None
|
|
69
|
+
"""The URL to redirect the user to after the checkout configuration is created"""
|
whop_sdk/types/shared/company.py
CHANGED
|
@@ -8,7 +8,15 @@ from ..._models import BaseModel
|
|
|
8
8
|
from .business_types import BusinessTypes
|
|
9
9
|
from .industry_types import IndustryTypes
|
|
10
10
|
|
|
11
|
-
__all__ = ["Company", "OwnerUser", "SocialLink"]
|
|
11
|
+
__all__ = ["Company", "Logo", "OwnerUser", "SocialLink"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Logo(BaseModel):
|
|
15
|
+
url: Optional[str] = None
|
|
16
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
17
|
+
|
|
18
|
+
This should be used for apps.
|
|
19
|
+
"""
|
|
12
20
|
|
|
13
21
|
|
|
14
22
|
class OwnerUser(BaseModel):
|
|
@@ -43,9 +51,15 @@ class Company(BaseModel):
|
|
|
43
51
|
created_at: datetime
|
|
44
52
|
"""When the company was created (signed up)"""
|
|
45
53
|
|
|
54
|
+
description: Optional[str] = None
|
|
55
|
+
"""The creator pitch for the company."""
|
|
56
|
+
|
|
46
57
|
industry_type: Optional[IndustryTypes] = None
|
|
47
58
|
"""The different industry types a company can be in."""
|
|
48
59
|
|
|
60
|
+
logo: Optional[Logo] = None
|
|
61
|
+
"""The company's logo."""
|
|
62
|
+
|
|
49
63
|
member_count: int
|
|
50
64
|
"""The number of members in the company."""
|
|
51
65
|
|
|
@@ -5,7 +5,23 @@ from datetime import datetime
|
|
|
5
5
|
|
|
6
6
|
from ..._models import BaseModel
|
|
7
7
|
|
|
8
|
-
__all__ = ["CourseLessonInteraction", "Lesson", "User"]
|
|
8
|
+
__all__ = ["CourseLessonInteraction", "Course", "CourseExperience", "Lesson", "User"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseExperience(BaseModel):
|
|
12
|
+
id: str
|
|
13
|
+
"""The unique ID representing this experience"""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class Course(BaseModel):
|
|
17
|
+
id: str
|
|
18
|
+
"""The ID of the course. Looks like cors_XXX"""
|
|
19
|
+
|
|
20
|
+
experience: CourseExperience
|
|
21
|
+
"""The experience that the course belongs to"""
|
|
22
|
+
|
|
23
|
+
title: Optional[str] = None
|
|
24
|
+
"""The title of the course"""
|
|
9
25
|
|
|
10
26
|
|
|
11
27
|
class Lesson(BaseModel):
|
|
@@ -34,6 +50,9 @@ class CourseLessonInteraction(BaseModel):
|
|
|
34
50
|
completed: bool
|
|
35
51
|
"""Whether the lesson has been completed by the user"""
|
|
36
52
|
|
|
53
|
+
course: Course
|
|
54
|
+
"""The course for this lesson interaction"""
|
|
55
|
+
|
|
37
56
|
created_at: datetime
|
|
38
57
|
"""When the interaction was created"""
|
|
39
58
|
|
|
@@ -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__ = ["EmailNotificationPreferences"]
|
|
6
|
+
|
|
7
|
+
EmailNotificationPreferences: TypeAlias = Literal["all_admin_posts", "only_weekly_summary", "none"]
|
|
@@ -5,13 +5,28 @@ from datetime import datetime
|
|
|
5
5
|
|
|
6
6
|
from ..._models import BaseModel
|
|
7
7
|
|
|
8
|
-
__all__ = ["Experience", "App", "Company", "Product"]
|
|
8
|
+
__all__ = ["Experience", "App", "AppIcon", "Company", "Image", "Product"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AppIcon(BaseModel):
|
|
12
|
+
url: Optional[str] = None
|
|
13
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
14
|
+
|
|
15
|
+
This should be used for apps.
|
|
16
|
+
"""
|
|
9
17
|
|
|
10
18
|
|
|
11
19
|
class App(BaseModel):
|
|
12
20
|
id: str
|
|
13
21
|
"""The ID of the app"""
|
|
14
22
|
|
|
23
|
+
icon: Optional[AppIcon] = None
|
|
24
|
+
"""The icon for the app.
|
|
25
|
+
|
|
26
|
+
This icon is shown on discovery, on the product page, on checkout, and as a
|
|
27
|
+
default icon for the experiences.
|
|
28
|
+
"""
|
|
29
|
+
|
|
15
30
|
name: str
|
|
16
31
|
"""The name of the app"""
|
|
17
32
|
|
|
@@ -27,6 +42,14 @@ class Company(BaseModel):
|
|
|
27
42
|
"""The title of the company."""
|
|
28
43
|
|
|
29
44
|
|
|
45
|
+
class Image(BaseModel):
|
|
46
|
+
url: Optional[str] = None
|
|
47
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
48
|
+
|
|
49
|
+
This should be used for apps.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
|
|
30
53
|
class Product(BaseModel):
|
|
31
54
|
id: str
|
|
32
55
|
"""The internal ID of the public product."""
|
|
@@ -51,6 +74,9 @@ class Experience(BaseModel):
|
|
|
51
74
|
created_at: datetime
|
|
52
75
|
"""The timestamp of when this experience was created."""
|
|
53
76
|
|
|
77
|
+
image: Optional[Image] = None
|
|
78
|
+
"""The logo for the experience."""
|
|
79
|
+
|
|
54
80
|
name: str
|
|
55
81
|
"""The written name of the description."""
|
|
56
82
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
from .who_can_post_types import WhoCanPostTypes
|
|
5
|
+
from .who_can_comment_types import WhoCanCommentTypes
|
|
6
|
+
from .email_notification_preferences import EmailNotificationPreferences
|
|
7
|
+
|
|
8
|
+
__all__ = ["Forum", "Experience"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Experience(BaseModel):
|
|
12
|
+
id: str
|
|
13
|
+
"""The unique ID representing this experience"""
|
|
14
|
+
|
|
15
|
+
name: str
|
|
16
|
+
"""The written name of the description."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Forum(BaseModel):
|
|
20
|
+
id: str
|
|
21
|
+
"""The unique identifier for the entity"""
|
|
22
|
+
|
|
23
|
+
email_notification_preference: EmailNotificationPreferences
|
|
24
|
+
"""The email notification preference for this forum"""
|
|
25
|
+
|
|
26
|
+
experience: Experience
|
|
27
|
+
"""The experience for this forum"""
|
|
28
|
+
|
|
29
|
+
who_can_comment: WhoCanCommentTypes
|
|
30
|
+
"""Who can comment on this forum"""
|
|
31
|
+
|
|
32
|
+
who_can_post: WhoCanPostTypes
|
|
33
|
+
"""Who can post on this forum"""
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
3
|
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
4
5
|
|
|
5
6
|
from ..._models import BaseModel
|
|
6
7
|
|
|
@@ -28,6 +29,9 @@ class ForumPost(BaseModel):
|
|
|
28
29
|
content: Optional[str] = None
|
|
29
30
|
"""The content of the forum post in Markdown format"""
|
|
30
31
|
|
|
32
|
+
created_at: datetime
|
|
33
|
+
"""The timestamp when the post was created"""
|
|
34
|
+
|
|
31
35
|
is_edited: bool
|
|
32
36
|
"""Whether the forum post has been edited"""
|
|
33
37
|
|
|
@@ -46,6 +50,9 @@ class ForumPost(BaseModel):
|
|
|
46
50
|
title: Optional[str] = None
|
|
47
51
|
"""The title of the forum post"""
|
|
48
52
|
|
|
53
|
+
updated_at: datetime
|
|
54
|
+
"""The timestamp when the post was last updated"""
|
|
55
|
+
|
|
49
56
|
user: User
|
|
50
57
|
"""The user who created this forum post"""
|
|
51
58
|
|
whop_sdk/types/shared/invoice.py
CHANGED
|
@@ -49,7 +49,10 @@ class Invoice(BaseModel):
|
|
|
49
49
|
"""The email address that the invoice was created for."""
|
|
50
50
|
|
|
51
51
|
fetch_invoice_token: str
|
|
52
|
-
"""
|
|
52
|
+
"""
|
|
53
|
+
A signed token that allows fetching the invoice data publically without being
|
|
54
|
+
authenticated.
|
|
55
|
+
"""
|
|
53
56
|
|
|
54
57
|
number: str
|
|
55
58
|
"""The number of the invoice."""
|
|
@@ -49,7 +49,10 @@ class InvoiceListItem(BaseModel):
|
|
|
49
49
|
"""The email address that the invoice was created for."""
|
|
50
50
|
|
|
51
51
|
fetch_invoice_token: str
|
|
52
|
-
"""
|
|
52
|
+
"""
|
|
53
|
+
A signed token that allows fetching the invoice data publically without being
|
|
54
|
+
authenticated.
|
|
55
|
+
"""
|
|
53
56
|
|
|
54
57
|
number: str
|
|
55
58
|
"""The number of the invoice."""
|