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
|
@@ -45,22 +45,25 @@ class Plan(BaseModel):
|
|
|
45
45
|
|
|
46
46
|
class CheckoutConfigurationListResponse(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/course.py
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
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 .languages import Languages
|
|
8
|
+
from .lesson_types import LessonTypes
|
|
9
|
+
|
|
10
|
+
__all__ = ["Course", "Chapter", "ChapterLesson", "Thumbnail"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ChapterLesson(BaseModel):
|
|
14
|
+
id: str
|
|
15
|
+
"""The ID of the lesson"""
|
|
16
|
+
|
|
17
|
+
lesson_type: LessonTypes
|
|
18
|
+
"""The type of the lesson (text, video, pdf, multi, quiz, knowledge_check)"""
|
|
19
|
+
|
|
20
|
+
order: int
|
|
21
|
+
"""The order of the lesson within its chapter"""
|
|
22
|
+
|
|
23
|
+
title: str
|
|
24
|
+
"""The title of the lesson"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Chapter(BaseModel):
|
|
28
|
+
id: str
|
|
29
|
+
"""The ID of the chapter. Looks like chap_XXX"""
|
|
30
|
+
|
|
31
|
+
lessons: List[ChapterLesson]
|
|
32
|
+
"""The lessons in this chapter"""
|
|
33
|
+
|
|
34
|
+
order: int
|
|
35
|
+
"""The order of the chapter within its course"""
|
|
36
|
+
|
|
37
|
+
title: str
|
|
38
|
+
"""The title of the chapter"""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Thumbnail(BaseModel):
|
|
42
|
+
id: str
|
|
43
|
+
"""The ID of the attachment"""
|
|
44
|
+
|
|
45
|
+
content_type: Optional[str] = None
|
|
46
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
47
|
+
|
|
48
|
+
filename: Optional[str] = None
|
|
49
|
+
"""The name of the file"""
|
|
50
|
+
|
|
51
|
+
optimized_url: Optional[str] = None
|
|
52
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
53
|
+
|
|
54
|
+
This should be used for apps.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
source_url: Optional[str] = None
|
|
58
|
+
"""The original URL of the attachment, such as a direct link to S3.
|
|
59
|
+
|
|
60
|
+
This should never be displayed on the client and always passed to an Imgproxy
|
|
61
|
+
transformer.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class Course(BaseModel):
|
|
66
|
+
id: str
|
|
67
|
+
"""The ID of the course. Looks like cors_XXX"""
|
|
68
|
+
|
|
69
|
+
certificate_after_completion_enabled: Optional[bool] = None
|
|
70
|
+
"""
|
|
71
|
+
Whether the course will award its students a PDF certificate after completing
|
|
72
|
+
all lessons
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
chapters: List[Chapter]
|
|
76
|
+
"""The chapters in this course"""
|
|
77
|
+
|
|
78
|
+
created_at: datetime
|
|
79
|
+
"""The timestamp of when the course was created"""
|
|
80
|
+
|
|
81
|
+
description: Optional[str] = None
|
|
82
|
+
"""A short description of the course"""
|
|
83
|
+
|
|
84
|
+
language: Languages
|
|
85
|
+
"""
|
|
86
|
+
The language spoken in the video content of the course, used to generate closed
|
|
87
|
+
captions in the right language
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
require_completing_lessons_in_order: bool
|
|
91
|
+
"""
|
|
92
|
+
Whether the course requires students to complete the previous lesson before
|
|
93
|
+
moving on to the next one
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
tagline: Optional[str] = None
|
|
97
|
+
"""A short tagline for the course.
|
|
98
|
+
|
|
99
|
+
It is displayed under the course title in the UI
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
thumbnail: Optional[Thumbnail] = None
|
|
103
|
+
"""The thumbnail for the course"""
|
|
104
|
+
|
|
105
|
+
title: Optional[str] = None
|
|
106
|
+
"""The title of the course"""
|
|
107
|
+
|
|
108
|
+
updated_at: datetime
|
|
109
|
+
"""The timestamp of when the course was last updated"""
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["CourseChapter", "Lesson"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Lesson(BaseModel):
|
|
11
|
+
id: str
|
|
12
|
+
"""The ID of the lesson"""
|
|
13
|
+
|
|
14
|
+
order: int
|
|
15
|
+
"""The order of the lesson within its chapter"""
|
|
16
|
+
|
|
17
|
+
title: str
|
|
18
|
+
"""The title of the lesson"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class CourseChapter(BaseModel):
|
|
22
|
+
id: str
|
|
23
|
+
"""The ID of the chapter. Looks like chap_XXX"""
|
|
24
|
+
|
|
25
|
+
lessons: List[Lesson]
|
|
26
|
+
"""The lessons in this chapter"""
|
|
27
|
+
|
|
28
|
+
order: int
|
|
29
|
+
"""The order of the chapter within its course"""
|
|
30
|
+
|
|
31
|
+
title: str
|
|
32
|
+
"""The title of the chapter"""
|
|
@@ -0,0 +1,16 @@
|
|
|
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__ = ["CourseChapterCreateParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseChapterCreateParams(TypedDict, total=False):
|
|
12
|
+
course_id: Required[str]
|
|
13
|
+
"""The ID of the course to create the chapter in"""
|
|
14
|
+
|
|
15
|
+
title: Optional[str]
|
|
16
|
+
"""The title of the chapter"""
|
|
@@ -0,0 +1,25 @@
|
|
|
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__ = ["CourseChapterListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseChapterListParams(TypedDict, total=False):
|
|
12
|
+
course_id: Required[str]
|
|
13
|
+
"""The ID of the course"""
|
|
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."""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from .._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["CourseChapterListResponse"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CourseChapterListResponse(BaseModel):
|
|
9
|
+
id: str
|
|
10
|
+
"""The ID of the chapter. Looks like chap_XXX"""
|
|
11
|
+
|
|
12
|
+
order: int
|
|
13
|
+
"""The order of the chapter within its course"""
|
|
14
|
+
|
|
15
|
+
title: str
|
|
16
|
+
"""The title of the chapter"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["CourseChapterUpdateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class CourseChapterUpdateParams(TypedDict, total=False):
|
|
11
|
+
title: Required[str]
|
|
12
|
+
"""The title of the chapter"""
|
|
@@ -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 Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["CourseCreateParams", "Thumbnail"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseCreateParams(TypedDict, total=False):
|
|
12
|
+
experience_id: Required[str]
|
|
13
|
+
"""The ID of the experience to create the course in"""
|
|
14
|
+
|
|
15
|
+
title: Required[str]
|
|
16
|
+
"""The title of the course"""
|
|
17
|
+
|
|
18
|
+
cover_image: Optional[str]
|
|
19
|
+
"""The cover image URL of the course"""
|
|
20
|
+
|
|
21
|
+
tagline: Optional[str]
|
|
22
|
+
"""The tagline of the course"""
|
|
23
|
+
|
|
24
|
+
thumbnail: Optional[Thumbnail]
|
|
25
|
+
"""The thumbnail for the course in png, jpeg, or gif format"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Thumbnail(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,27 @@
|
|
|
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
|
+
from .lesson_types import LessonTypes
|
|
9
|
+
|
|
10
|
+
__all__ = ["CourseLessonCreateParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CourseLessonCreateParams(TypedDict, total=False):
|
|
14
|
+
chapter_id: Required[str]
|
|
15
|
+
"""The ID of the chapter to create the lesson in"""
|
|
16
|
+
|
|
17
|
+
lesson_type: Required[LessonTypes]
|
|
18
|
+
"""The type of the lesson"""
|
|
19
|
+
|
|
20
|
+
content: Optional[str]
|
|
21
|
+
"""The content of the lesson"""
|
|
22
|
+
|
|
23
|
+
days_from_course_start_until_unlock: Optional[int]
|
|
24
|
+
"""Days from course start until unlock"""
|
|
25
|
+
|
|
26
|
+
title: Optional[str]
|
|
27
|
+
"""The title of the lesson"""
|
|
@@ -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.course_lesson_interaction import CourseLessonInteraction
|
|
8
|
+
|
|
9
|
+
__all__ = ["CourseLessonInteractionCompletedWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CourseLessonInteractionCompletedWebhookEvent(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: CourseLessonInteraction
|
|
20
|
+
"""A lesson interaction tracking user progress in courses"""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["course_lesson_interaction.completed"]
|
|
26
|
+
"""The webhook event type"""
|
|
@@ -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 TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["CourseLessonListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseLessonListParams(TypedDict, total=False):
|
|
12
|
+
after: Optional[str]
|
|
13
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
14
|
+
|
|
15
|
+
before: Optional[str]
|
|
16
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
17
|
+
|
|
18
|
+
chapter_id: Optional[str]
|
|
19
|
+
"""The ID of the chapter (returns lessons only for this chapter)"""
|
|
20
|
+
|
|
21
|
+
course_id: Optional[str]
|
|
22
|
+
"""The ID of the course (returns all lessons across all chapters)"""
|
|
23
|
+
|
|
24
|
+
first: Optional[int]
|
|
25
|
+
"""Returns the first _n_ elements from the list."""
|
|
26
|
+
|
|
27
|
+
last: Optional[int]
|
|
28
|
+
"""Returns the last _n_ elements from the list."""
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
from .lesson_types import LessonTypes
|
|
7
|
+
from .lesson_visibilities import LessonVisibilities
|
|
8
|
+
|
|
9
|
+
__all__ = ["CourseLessonListResponse"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CourseLessonListResponse(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""The ID of the lesson"""
|
|
15
|
+
|
|
16
|
+
content: Optional[str] = None
|
|
17
|
+
"""The content of the lesson"""
|
|
18
|
+
|
|
19
|
+
days_from_course_start_until_unlock: Optional[int] = None
|
|
20
|
+
"""Number of days from course start until the lesson is unlocked"""
|
|
21
|
+
|
|
22
|
+
lesson_type: LessonTypes
|
|
23
|
+
"""The type of the lesson (text, video, pdf, multi, quiz, knowledge_check)"""
|
|
24
|
+
|
|
25
|
+
order: int
|
|
26
|
+
"""The order of the lesson within its chapter"""
|
|
27
|
+
|
|
28
|
+
title: str
|
|
29
|
+
"""The title of the lesson"""
|
|
30
|
+
|
|
31
|
+
visibility: LessonVisibilities
|
|
32
|
+
"""The visibility of the lesson.
|
|
33
|
+
|
|
34
|
+
Determines how / whether this lesson is visible to users.
|
|
35
|
+
"""
|
|
@@ -0,0 +1,144 @@
|
|
|
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 .lesson_types import LessonTypes
|
|
9
|
+
from .lesson_visibilities import LessonVisibilities
|
|
10
|
+
from .assessment_question_types import AssessmentQuestionTypes
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"CourseLessonUpdateParams",
|
|
14
|
+
"AssessmentQuestion",
|
|
15
|
+
"AssessmentQuestionImage",
|
|
16
|
+
"AssessmentQuestionOption",
|
|
17
|
+
"Attachment",
|
|
18
|
+
"MainPdf",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class CourseLessonUpdateParams(TypedDict, total=False):
|
|
23
|
+
assessment_questions: Optional[Iterable[AssessmentQuestion]]
|
|
24
|
+
"""Assessment questions for quiz/knowledge check lessons.
|
|
25
|
+
|
|
26
|
+
Replaces all existing questions.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
attachments: Optional[Iterable[Attachment]]
|
|
30
|
+
"""General attachments for the lesson (PDFs, files, etc).
|
|
31
|
+
|
|
32
|
+
Replaces all existing attachments.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
content: Optional[str]
|
|
36
|
+
"""The content of the lesson"""
|
|
37
|
+
|
|
38
|
+
days_from_course_start_until_unlock: Optional[int]
|
|
39
|
+
"""Days from course start until unlock"""
|
|
40
|
+
|
|
41
|
+
lesson_type: Optional[LessonTypes]
|
|
42
|
+
"""The available types for a lesson"""
|
|
43
|
+
|
|
44
|
+
main_pdf: Optional[MainPdf]
|
|
45
|
+
"""The main PDF file for this lesson"""
|
|
46
|
+
|
|
47
|
+
mux_asset_id: Optional[str]
|
|
48
|
+
"""The ID of the Mux asset to attach to this lesson for video lessons"""
|
|
49
|
+
|
|
50
|
+
title: Optional[str]
|
|
51
|
+
"""The title of the lesson"""
|
|
52
|
+
|
|
53
|
+
visibility: Optional[LessonVisibilities]
|
|
54
|
+
"""The available visibilities for a lesson.
|
|
55
|
+
|
|
56
|
+
Determines how / whether a lesson is visible to users.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class AssessmentQuestionImage(TypedDict, total=False):
|
|
61
|
+
id: Optional[str]
|
|
62
|
+
"""The ID of an existing attachment object.
|
|
63
|
+
|
|
64
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
65
|
+
use this unless you know what you're doing.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
direct_upload_id: Optional[str]
|
|
69
|
+
"""This ID should be used the first time you upload an attachment.
|
|
70
|
+
|
|
71
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
72
|
+
via the mediaDirectUpload mutation.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class AssessmentQuestionOption(TypedDict, total=False):
|
|
77
|
+
is_correct: Required[bool]
|
|
78
|
+
"""Whether this option is a correct answer"""
|
|
79
|
+
|
|
80
|
+
option_text: Required[str]
|
|
81
|
+
"""The text of the answer option"""
|
|
82
|
+
|
|
83
|
+
id: Optional[str]
|
|
84
|
+
"""The ID of an existing option.
|
|
85
|
+
|
|
86
|
+
If provided, the option will be updated. If not provided, a new option will be
|
|
87
|
+
created.
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class AssessmentQuestion(TypedDict, total=False):
|
|
92
|
+
correct_answer: Required[str]
|
|
93
|
+
"""The correct answer for the question. Used for short answer questions"""
|
|
94
|
+
|
|
95
|
+
question_text: Required[str]
|
|
96
|
+
"""The text of the question"""
|
|
97
|
+
|
|
98
|
+
question_type: Required[AssessmentQuestionTypes]
|
|
99
|
+
"""The type of the question"""
|
|
100
|
+
|
|
101
|
+
id: Optional[str]
|
|
102
|
+
"""The ID of an existing question.
|
|
103
|
+
|
|
104
|
+
If provided, the question will be updated. If not provided, a new question will
|
|
105
|
+
be created.
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
image: Optional[AssessmentQuestionImage]
|
|
109
|
+
"""Optional image attachment for the question"""
|
|
110
|
+
|
|
111
|
+
options: Optional[Iterable[AssessmentQuestionOption]]
|
|
112
|
+
"""The answer options for multiple choice/select questions"""
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class Attachment(TypedDict, total=False):
|
|
116
|
+
id: Optional[str]
|
|
117
|
+
"""The ID of an existing attachment object.
|
|
118
|
+
|
|
119
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
120
|
+
use this unless you know what you're doing.
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
direct_upload_id: Optional[str]
|
|
124
|
+
"""This ID should be used the first time you upload an attachment.
|
|
125
|
+
|
|
126
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
127
|
+
via the mediaDirectUpload mutation.
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class MainPdf(TypedDict, total=False):
|
|
132
|
+
id: Optional[str]
|
|
133
|
+
"""The ID of an existing attachment object.
|
|
134
|
+
|
|
135
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
136
|
+
use this unless you know what you're doing.
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
direct_upload_id: Optional[str]
|
|
140
|
+
"""This ID should be used the first time you upload an attachment.
|
|
141
|
+
|
|
142
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
143
|
+
via the mediaDirectUpload mutation.
|
|
144
|
+
"""
|
|
@@ -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 TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["CourseListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseListParams(TypedDict, total=False):
|
|
12
|
+
after: Optional[str]
|
|
13
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
14
|
+
|
|
15
|
+
before: Optional[str]
|
|
16
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
17
|
+
|
|
18
|
+
company_id: Optional[str]
|
|
19
|
+
"""The ID of the company"""
|
|
20
|
+
|
|
21
|
+
experience_id: Optional[str]
|
|
22
|
+
"""The ID of the experience"""
|
|
23
|
+
|
|
24
|
+
first: Optional[int]
|
|
25
|
+
"""Returns the first _n_ elements from the list."""
|
|
26
|
+
|
|
27
|
+
last: Optional[int]
|
|
28
|
+
"""Returns the last _n_ elements from the list."""
|