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,77 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .languages import Languages
|
|
8
|
+
|
|
9
|
+
__all__ = ["CourseListResponse", "Thumbnail"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Thumbnail(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
|
+
optimized_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
|
+
source_url: Optional[str] = None
|
|
29
|
+
"""The original URL of the attachment, such as a direct link to S3.
|
|
30
|
+
|
|
31
|
+
This should never be displayed on the client and always passed to an Imgproxy
|
|
32
|
+
transformer.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class CourseListResponse(BaseModel):
|
|
37
|
+
id: str
|
|
38
|
+
"""The ID of the course. Looks like cors_XXX"""
|
|
39
|
+
|
|
40
|
+
certificate_after_completion_enabled: Optional[bool] = None
|
|
41
|
+
"""
|
|
42
|
+
Whether the course will award its students a PDF certificate after completing
|
|
43
|
+
all lessons
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
created_at: datetime
|
|
47
|
+
"""The timestamp of when the course was created"""
|
|
48
|
+
|
|
49
|
+
description: Optional[str] = None
|
|
50
|
+
"""A short description of the course"""
|
|
51
|
+
|
|
52
|
+
language: Languages
|
|
53
|
+
"""
|
|
54
|
+
The language spoken in the video content of the course, used to generate closed
|
|
55
|
+
captions in the right language
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
require_completing_lessons_in_order: bool
|
|
59
|
+
"""
|
|
60
|
+
Whether the course requires students to complete the previous lesson before
|
|
61
|
+
moving on to the next one
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
tagline: Optional[str] = None
|
|
65
|
+
"""A short tagline for the course.
|
|
66
|
+
|
|
67
|
+
It is displayed under the course title in the UI
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
thumbnail: Optional[Thumbnail] = None
|
|
71
|
+
"""The thumbnail for the course"""
|
|
72
|
+
|
|
73
|
+
title: Optional[str] = None
|
|
74
|
+
"""The title of the course"""
|
|
75
|
+
|
|
76
|
+
updated_at: datetime
|
|
77
|
+
"""The timestamp of when the course was last updated"""
|
|
@@ -0,0 +1,89 @@
|
|
|
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 Iterable, Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from .languages import Languages
|
|
9
|
+
|
|
10
|
+
__all__ = ["CourseUpdateParams", "Chapter", "ChapterLesson", "Thumbnail"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CourseUpdateParams(TypedDict, total=False):
|
|
14
|
+
certificate_after_completion_enabled: Optional[bool]
|
|
15
|
+
"""
|
|
16
|
+
Whether the course will award its students a PDF certificate after completing
|
|
17
|
+
all lessons
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
chapters: Optional[Iterable[Chapter]]
|
|
21
|
+
"""The chapters and lessons to update"""
|
|
22
|
+
|
|
23
|
+
cover_image: Optional[str]
|
|
24
|
+
"""The cover image URL of the course"""
|
|
25
|
+
|
|
26
|
+
description: Optional[str]
|
|
27
|
+
"""A short description of the course"""
|
|
28
|
+
|
|
29
|
+
language: Optional[Languages]
|
|
30
|
+
"""The available languages for a course"""
|
|
31
|
+
|
|
32
|
+
require_completing_lessons_in_order: Optional[bool]
|
|
33
|
+
"""
|
|
34
|
+
Whether the course requires students to complete the previous lesson before
|
|
35
|
+
moving on to the next one
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
tagline: Optional[str]
|
|
39
|
+
"""A short tagline for the course"""
|
|
40
|
+
|
|
41
|
+
thumbnail: Optional[Thumbnail]
|
|
42
|
+
"""The thumbnail for the course in png, jpeg, or gif format"""
|
|
43
|
+
|
|
44
|
+
title: Optional[str]
|
|
45
|
+
"""The title of the course"""
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ChapterLesson(TypedDict, total=False):
|
|
49
|
+
id: Required[str]
|
|
50
|
+
"""The ID of the lesson to update"""
|
|
51
|
+
|
|
52
|
+
chapter_id: Required[str]
|
|
53
|
+
"""The ID of the chapter this lesson belongs to (for moving between chapters)"""
|
|
54
|
+
|
|
55
|
+
order: Required[int]
|
|
56
|
+
"""The order of the lesson within its chapter"""
|
|
57
|
+
|
|
58
|
+
title: Required[str]
|
|
59
|
+
"""The title of the lesson"""
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class Chapter(TypedDict, total=False):
|
|
63
|
+
id: Required[str]
|
|
64
|
+
"""The ID of the chapter to update"""
|
|
65
|
+
|
|
66
|
+
order: Required[int]
|
|
67
|
+
"""The order of the chapter within its course"""
|
|
68
|
+
|
|
69
|
+
title: Required[str]
|
|
70
|
+
"""The title of the chapter"""
|
|
71
|
+
|
|
72
|
+
lessons: Optional[Iterable[ChapterLesson]]
|
|
73
|
+
"""The lessons to update within this chapter"""
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class Thumbnail(TypedDict, total=False):
|
|
77
|
+
id: Optional[str]
|
|
78
|
+
"""The ID of an existing attachment object.
|
|
79
|
+
|
|
80
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
81
|
+
use this unless you know what you're doing.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
direct_upload_id: Optional[str]
|
|
85
|
+
"""This ID should be used the first time you upload an attachment.
|
|
86
|
+
|
|
87
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
88
|
+
via the mediaDirectUpload mutation.
|
|
89
|
+
"""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .shared.entry import Entry
|
|
8
|
+
|
|
9
|
+
__all__ = ["EntryApprovedWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EntryApprovedWebhookEvent(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""A unique ID for every single webhook request"""
|
|
15
|
+
|
|
16
|
+
api_version: Literal["v1"]
|
|
17
|
+
"""The API version for this webhook"""
|
|
18
|
+
|
|
19
|
+
data: Entry
|
|
20
|
+
"""An object representing an entry in a waitlist."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["entry.approved"]
|
|
26
|
+
"""The webhook event type"""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .shared.entry import Entry
|
|
8
|
+
|
|
9
|
+
__all__ = ["EntryCreatedWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EntryCreatedWebhookEvent(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""A unique ID for every single webhook request"""
|
|
15
|
+
|
|
16
|
+
api_version: Literal["v1"]
|
|
17
|
+
"""The API version for this webhook"""
|
|
18
|
+
|
|
19
|
+
data: Entry
|
|
20
|
+
"""An object representing an entry in a waitlist."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["entry.created"]
|
|
26
|
+
"""The webhook event type"""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .shared.entry import Entry
|
|
8
|
+
|
|
9
|
+
__all__ = ["EntryDeletedWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EntryDeletedWebhookEvent(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""A unique ID for every single webhook request"""
|
|
15
|
+
|
|
16
|
+
api_version: Literal["v1"]
|
|
17
|
+
"""The API version for this webhook"""
|
|
18
|
+
|
|
19
|
+
data: Entry
|
|
20
|
+
"""An object representing an entry in a waitlist."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["entry.deleted"]
|
|
26
|
+
"""The webhook event type"""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .shared.entry import Entry
|
|
8
|
+
|
|
9
|
+
__all__ = ["EntryDeniedWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EntryDeniedWebhookEvent(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""A unique ID for every single webhook request"""
|
|
15
|
+
|
|
16
|
+
api_version: Literal["v1"]
|
|
17
|
+
"""The API version for this webhook"""
|
|
18
|
+
|
|
19
|
+
data: Entry
|
|
20
|
+
"""An object representing an entry in a waitlist."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["entry.denied"]
|
|
26
|
+
"""The webhook event type"""
|
|
@@ -0,0 +1,13 @@
|
|
|
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 TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["ExperienceDuplicateParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ExperienceDuplicateParams(TypedDict, total=False):
|
|
12
|
+
name: Optional[str]
|
|
13
|
+
"""The name of the new experience"""
|
|
@@ -5,13 +5,28 @@ from datetime import datetime
|
|
|
5
5
|
|
|
6
6
|
from .._models import BaseModel
|
|
7
7
|
|
|
8
|
-
__all__ = ["ExperienceListResponse", "App", "Company"]
|
|
8
|
+
__all__ = ["ExperienceListResponse", "App", "AppIcon", "Company", "Image"]
|
|
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 ExperienceListResponse(BaseModel):
|
|
31
54
|
id: str
|
|
32
55
|
"""The unique ID representing this experience"""
|
|
@@ -40,6 +63,9 @@ class ExperienceListResponse(BaseModel):
|
|
|
40
63
|
created_at: datetime
|
|
41
64
|
"""The timestamp of when this experience was created."""
|
|
42
65
|
|
|
66
|
+
image: Optional[Image] = None
|
|
67
|
+
"""The logo for the experience."""
|
|
68
|
+
|
|
43
69
|
name: str
|
|
44
70
|
"""The written name of the description."""
|
|
45
71
|
|
|
@@ -0,0 +1,28 @@
|
|
|
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__ = ["ForumListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ForumListParams(TypedDict, total=False):
|
|
12
|
+
company_id: Required[str]
|
|
13
|
+
"""The ID of the company to list forums for"""
|
|
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
|
+
product_id: Optional[str]
|
|
28
|
+
"""If provided, only forums connected to this product are returned"""
|
|
@@ -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 .shared.who_can_post_types import WhoCanPostTypes
|
|
5
|
+
from .shared.who_can_comment_types import WhoCanCommentTypes
|
|
6
|
+
from .shared.email_notification_preferences import EmailNotificationPreferences
|
|
7
|
+
|
|
8
|
+
__all__ = ["ForumListResponse", "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 ForumListResponse(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 ForumPostListResponse(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 ForumPostListResponse(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
|
|
|
@@ -0,0 +1,41 @@
|
|
|
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 Iterable, Optional
|
|
6
|
+
from typing_extensions import TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["ForumPostUpdateParams", "Attachment"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ForumPostUpdateParams(TypedDict, total=False):
|
|
12
|
+
attachments: Optional[Iterable[Attachment]]
|
|
13
|
+
"""The attachments for this post"""
|
|
14
|
+
|
|
15
|
+
content: Optional[str]
|
|
16
|
+
"""This is the main body of the post in Markdown format.
|
|
17
|
+
|
|
18
|
+
Hidden if paywalled and user hasn't purchased access to it.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
is_pinned: Optional[bool]
|
|
22
|
+
"""Whether the post is pinned. You can only pin a top level posts (not comments)."""
|
|
23
|
+
|
|
24
|
+
title: Optional[str]
|
|
25
|
+
"""The title of the post. Only visible if paywalled."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Attachment(TypedDict, total=False):
|
|
29
|
+
id: Optional[str]
|
|
30
|
+
"""The ID of an existing attachment object.
|
|
31
|
+
|
|
32
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
33
|
+
use this unless you know what you're doing.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
direct_upload_id: Optional[str]
|
|
37
|
+
"""This ID should be used the first time you upload an attachment.
|
|
38
|
+
|
|
39
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
40
|
+
via the mediaDirectUpload mutation.
|
|
41
|
+
"""
|
|
@@ -0,0 +1,23 @@
|
|
|
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 TypedDict
|
|
7
|
+
|
|
8
|
+
from .shared.who_can_post_types import WhoCanPostTypes
|
|
9
|
+
from .shared.who_can_comment_types import WhoCanCommentTypes
|
|
10
|
+
from .shared.email_notification_preferences import EmailNotificationPreferences
|
|
11
|
+
|
|
12
|
+
__all__ = ["ForumUpdateParams"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ForumUpdateParams(TypedDict, total=False):
|
|
16
|
+
email_notification_preference: Optional[EmailNotificationPreferences]
|
|
17
|
+
"""Email notification preference option for a forum feed"""
|
|
18
|
+
|
|
19
|
+
who_can_comment: Optional[WhoCanCommentTypes]
|
|
20
|
+
"""Who can comment on a forum feed"""
|
|
21
|
+
|
|
22
|
+
who_can_post: Optional[WhoCanPostTypes]
|
|
23
|
+
"""Who can post on a forum feed"""
|
|
@@ -108,7 +108,11 @@ class Plan(TypedDict, total=False):
|
|
|
108
108
|
"""The interval at which the plan charges (expiration plans)."""
|
|
109
109
|
|
|
110
110
|
initial_price: Optional[float]
|
|
111
|
-
"""An additional amount charged upon first purchase.
|
|
111
|
+
"""An additional amount charged upon first purchase.
|
|
112
|
+
|
|
113
|
+
Use only if a one time payment OR you want to charge an additional amount on top
|
|
114
|
+
of the renewal price. Provided as a number in dollars. Eg: 10.43 for $10.43
|
|
115
|
+
"""
|
|
112
116
|
|
|
113
117
|
internal_notes: Optional[str]
|
|
114
118
|
"""A personal description or notes section for the business."""
|
|
@@ -120,7 +124,11 @@ class Plan(TypedDict, total=False):
|
|
|
120
124
|
"""The methods of how a plan can be released."""
|
|
121
125
|
|
|
122
126
|
renewal_price: Optional[float]
|
|
123
|
-
"""The amount the customer is charged every billing period.
|
|
127
|
+
"""The amount the customer is charged every billing period.
|
|
128
|
+
|
|
129
|
+
Use only if a recurring payment. Provided as a number in dollars. Eg: 10.43 for
|
|
130
|
+
$10.43
|
|
131
|
+
"""
|
|
124
132
|
|
|
125
133
|
trial_period_days: Optional[int]
|
|
126
134
|
"""The number of free trial days added before a renewal plan."""
|
|
@@ -0,0 +1,30 @@
|
|
|
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__ = ["Languages"]
|
|
6
|
+
|
|
7
|
+
Languages: TypeAlias = Literal[
|
|
8
|
+
"en",
|
|
9
|
+
"es",
|
|
10
|
+
"it",
|
|
11
|
+
"pt",
|
|
12
|
+
"de",
|
|
13
|
+
"fr",
|
|
14
|
+
"pl",
|
|
15
|
+
"ru",
|
|
16
|
+
"nl",
|
|
17
|
+
"ca",
|
|
18
|
+
"tr",
|
|
19
|
+
"sv",
|
|
20
|
+
"uk",
|
|
21
|
+
"no",
|
|
22
|
+
"fi",
|
|
23
|
+
"sk",
|
|
24
|
+
"el",
|
|
25
|
+
"cs",
|
|
26
|
+
"hr",
|
|
27
|
+
"da",
|
|
28
|
+
"ro",
|
|
29
|
+
"bg",
|
|
30
|
+
]
|
|
@@ -62,7 +62,21 @@ class LedgerAccountRetrieveResponse(BaseModel):
|
|
|
62
62
|
balances: List[Balance]
|
|
63
63
|
"""The balances associated with the account."""
|
|
64
64
|
|
|
65
|
-
ledger_account_audit_status: Optional[
|
|
65
|
+
ledger_account_audit_status: Optional[
|
|
66
|
+
Literal[
|
|
67
|
+
"pending",
|
|
68
|
+
"approved",
|
|
69
|
+
"reserves_imposed",
|
|
70
|
+
"suspended",
|
|
71
|
+
"ignored",
|
|
72
|
+
"rejected",
|
|
73
|
+
"requested_more_information",
|
|
74
|
+
"information_submitted",
|
|
75
|
+
"requested_tos_violation_correction",
|
|
76
|
+
"clawback_attempted",
|
|
77
|
+
"awaiting_sales_review",
|
|
78
|
+
]
|
|
79
|
+
] = None
|
|
66
80
|
"""The different statuses a LedgerAccountAudit can be"""
|
|
67
81
|
|
|
68
82
|
ledger_type: Literal["primary", "pool"]
|