whop-sdk 0.0.10__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- whop_sdk/__init__.py +94 -0
- whop_sdk/_base_client.py +1995 -0
- whop_sdk/_client.py +800 -0
- whop_sdk/_compat.py +219 -0
- whop_sdk/_constants.py +14 -0
- whop_sdk/_exceptions.py +112 -0
- whop_sdk/_files.py +123 -0
- whop_sdk/_models.py +857 -0
- whop_sdk/_qs.py +150 -0
- whop_sdk/_resource.py +43 -0
- whop_sdk/_response.py +830 -0
- whop_sdk/_streaming.py +333 -0
- whop_sdk/_types.py +260 -0
- whop_sdk/_utils/__init__.py +64 -0
- whop_sdk/_utils/_compat.py +45 -0
- whop_sdk/_utils/_datetime_parse.py +136 -0
- whop_sdk/_utils/_logs.py +25 -0
- whop_sdk/_utils/_proxy.py +65 -0
- whop_sdk/_utils/_reflection.py +42 -0
- whop_sdk/_utils/_resources_proxy.py +24 -0
- whop_sdk/_utils/_streams.py +12 -0
- whop_sdk/_utils/_sync.py +58 -0
- whop_sdk/_utils/_transform.py +457 -0
- whop_sdk/_utils/_typing.py +156 -0
- whop_sdk/_utils/_utils.py +421 -0
- whop_sdk/_version.py +4 -0
- whop_sdk/lib/.keep +4 -0
- whop_sdk/pagination.py +61 -0
- whop_sdk/py.typed +0 -0
- whop_sdk/resources/__init__.py +540 -0
- whop_sdk/resources/access_tokens.py +341 -0
- whop_sdk/resources/account_links.py +211 -0
- whop_sdk/resources/app_builds.py +587 -0
- whop_sdk/resources/apps.py +684 -0
- whop_sdk/resources/authorized_users.py +353 -0
- whop_sdk/resources/chat_channels.py +469 -0
- whop_sdk/resources/checkout_configurations.py +776 -0
- whop_sdk/resources/companies.py +465 -0
- whop_sdk/resources/course_chapters.py +602 -0
- whop_sdk/resources/course_lesson_interactions.py +343 -0
- whop_sdk/resources/course_lessons.py +1040 -0
- whop_sdk/resources/course_students.py +327 -0
- whop_sdk/resources/courses.py +776 -0
- whop_sdk/resources/disputes.py +693 -0
- whop_sdk/resources/entries.py +556 -0
- whop_sdk/resources/experiences.py +983 -0
- whop_sdk/resources/forum_posts.py +656 -0
- whop_sdk/resources/forums.py +446 -0
- whop_sdk/resources/invoices.py +1099 -0
- whop_sdk/resources/ledger_accounts.py +171 -0
- whop_sdk/resources/members.py +429 -0
- whop_sdk/resources/memberships.py +818 -0
- whop_sdk/resources/messages.py +558 -0
- whop_sdk/resources/notifications.py +388 -0
- whop_sdk/resources/payment_tokens.py +359 -0
- whop_sdk/resources/payments.py +1040 -0
- whop_sdk/resources/plans.py +1001 -0
- whop_sdk/resources/products.py +970 -0
- whop_sdk/resources/promo_codes.py +668 -0
- whop_sdk/resources/reactions.py +423 -0
- whop_sdk/resources/refunds.py +347 -0
- whop_sdk/resources/reviews.py +332 -0
- whop_sdk/resources/setup_intents.py +349 -0
- whop_sdk/resources/shipments.py +451 -0
- whop_sdk/resources/support_channels.py +455 -0
- whop_sdk/resources/transfers.py +513 -0
- whop_sdk/resources/users.py +248 -0
- whop_sdk/resources/webhooks.py +69 -0
- whop_sdk/resources/withdrawals.py +341 -0
- whop_sdk/types/__init__.py +262 -0
- whop_sdk/types/access_token_create_params.py +64 -0
- whop_sdk/types/access_token_create_response.py +15 -0
- whop_sdk/types/account_link_create_params.py +27 -0
- whop_sdk/types/account_link_create_response.py +15 -0
- whop_sdk/types/app_build_create_params.py +72 -0
- whop_sdk/types/app_build_list_params.py +42 -0
- whop_sdk/types/app_build_list_response.py +50 -0
- whop_sdk/types/app_create_params.py +19 -0
- whop_sdk/types/app_list_params.py +59 -0
- whop_sdk/types/app_list_response.py +110 -0
- whop_sdk/types/app_type.py +7 -0
- whop_sdk/types/app_update_params.py +67 -0
- whop_sdk/types/assessment_question_types.py +7 -0
- whop_sdk/types/authorized_user_list_params.py +41 -0
- whop_sdk/types/authorized_user_list_response.py +33 -0
- whop_sdk/types/authorized_user_retrieve_response.py +33 -0
- whop_sdk/types/billing_reasons.py +9 -0
- whop_sdk/types/card_brands.py +25 -0
- whop_sdk/types/chat_channel_list_params.py +28 -0
- whop_sdk/types/chat_channel_list_response.py +43 -0
- whop_sdk/types/chat_channel_update_params.py +32 -0
- whop_sdk/types/checkout_configuration_create_params.py +373 -0
- whop_sdk/types/checkout_configuration_list_params.py +41 -0
- whop_sdk/types/checkout_configuration_list_response.py +104 -0
- whop_sdk/types/checkout_modes.py +7 -0
- whop_sdk/types/company_create_params.py +22 -0
- whop_sdk/types/company_list_params.py +38 -0
- whop_sdk/types/company_list_response.py +76 -0
- whop_sdk/types/course.py +122 -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 +78 -0
- whop_sdk/types/course_delete_response.py +7 -0
- whop_sdk/types/course_lesson_create_params.py +63 -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_interaction_list_params.py +34 -0
- whop_sdk/types/course_lesson_list_params.py +28 -0
- whop_sdk/types/course_lesson_list_response.py +57 -0
- whop_sdk/types/course_lesson_mark_as_completed_response.py +7 -0
- whop_sdk/types/course_lesson_start_response.py +7 -0
- whop_sdk/types/course_lesson_submit_assessment_params.py +26 -0
- whop_sdk/types/course_lesson_submit_assessment_response.py +62 -0
- whop_sdk/types/course_lesson_update_params.py +222 -0
- whop_sdk/types/course_list_params.py +28 -0
- whop_sdk/types/course_list_response.py +90 -0
- whop_sdk/types/course_student_list_params.py +28 -0
- whop_sdk/types/course_student_list_response.py +42 -0
- whop_sdk/types/course_student_retrieve_response.py +61 -0
- whop_sdk/types/course_update_params.py +114 -0
- whop_sdk/types/course_visibilities.py +7 -0
- whop_sdk/types/dispute.py +284 -0
- whop_sdk/types/dispute_created_webhook_event.py +26 -0
- whop_sdk/types/dispute_list_params.py +38 -0
- whop_sdk/types/dispute_list_response.py +77 -0
- whop_sdk/types/dispute_statuses.py +17 -0
- whop_sdk/types/dispute_update_evidence_params.py +159 -0
- whop_sdk/types/dispute_updated_webhook_event.py +26 -0
- whop_sdk/types/embed_type.py +7 -0
- whop_sdk/types/entry_approve_response.py +10 -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/entry_list_params.py +52 -0
- whop_sdk/types/entry_list_response.py +56 -0
- whop_sdk/types/experience_attach_params.py +12 -0
- whop_sdk/types/experience_create_params.py +22 -0
- whop_sdk/types/experience_delete_response.py +7 -0
- whop_sdk/types/experience_detach_params.py +12 -0
- whop_sdk/types/experience_duplicate_params.py +13 -0
- whop_sdk/types/experience_list_params.py +40 -0
- whop_sdk/types/experience_list_response.py +73 -0
- whop_sdk/types/experience_update_params.py +46 -0
- whop_sdk/types/forum_list_params.py +28 -0
- whop_sdk/types/forum_list_response.py +33 -0
- whop_sdk/types/forum_post_create_params.py +101 -0
- whop_sdk/types/forum_post_list_params.py +31 -0
- whop_sdk/types/forum_post_list_response.py +60 -0
- whop_sdk/types/forum_post_update_params.py +56 -0
- whop_sdk/types/forum_post_visibility_type.py +7 -0
- whop_sdk/types/forum_update_params.py +23 -0
- whop_sdk/types/invoice_create_params.py +515 -0
- whop_sdk/types/invoice_created_webhook_event.py +26 -0
- whop_sdk/types/invoice_list_params.py +53 -0
- whop_sdk/types/invoice_paid_webhook_event.py +26 -0
- whop_sdk/types/invoice_past_due_webhook_event.py +26 -0
- whop_sdk/types/invoice_void_response.py +7 -0
- whop_sdk/types/invoice_voided_webhook_event.py +26 -0
- whop_sdk/types/languages.py +30 -0
- whop_sdk/types/ledger_account_retrieve_response.py +93 -0
- whop_sdk/types/lesson.py +219 -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_cancel_params.py +13 -0
- whop_sdk/types/membership_deactivated_webhook_event.py +29 -0
- whop_sdk/types/membership_list_params.py +73 -0
- whop_sdk/types/membership_list_response.py +128 -0
- whop_sdk/types/membership_pause_params.py +16 -0
- whop_sdk/types/membership_update_params.py +13 -0
- whop_sdk/types/message_create_params.py +63 -0
- whop_sdk/types/message_list_params.py +30 -0
- whop_sdk/types/message_list_response.py +90 -0
- whop_sdk/types/message_update_params.py +45 -0
- whop_sdk/types/notification_create_params.py +93 -0
- whop_sdk/types/notification_create_response.py +10 -0
- whop_sdk/types/payment_create_params.py +162 -0
- whop_sdk/types/payment_failed_webhook_event.py +26 -0
- whop_sdk/types/payment_list_params.py +67 -0
- whop_sdk/types/payment_list_response.py +273 -0
- whop_sdk/types/payment_method_types.py +94 -0
- whop_sdk/types/payment_pending_webhook_event.py +26 -0
- whop_sdk/types/payment_provider.py +9 -0
- whop_sdk/types/payment_refund_params.py +13 -0
- whop_sdk/types/payment_succeeded_webhook_event.py +26 -0
- whop_sdk/types/payment_token_list_params.py +38 -0
- whop_sdk/types/payment_token_list_response.py +41 -0
- whop_sdk/types/payment_token_retrieve_params.py +12 -0
- whop_sdk/types/payment_token_retrieve_response.py +41 -0
- whop_sdk/types/plan_create_params.py +162 -0
- whop_sdk/types/plan_delete_response.py +7 -0
- whop_sdk/types/plan_list_params.py +57 -0
- whop_sdk/types/plan_list_response.py +128 -0
- whop_sdk/types/plan_update_params.py +155 -0
- whop_sdk/types/product_create_params.py +147 -0
- whop_sdk/types/product_delete_response.py +7 -0
- whop_sdk/types/product_list_params.py +49 -0
- whop_sdk/types/product_update_params.py +82 -0
- 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 +45 -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/reaction_create_params.py +19 -0
- whop_sdk/types/reaction_list_params.py +25 -0
- whop_sdk/types/reaction_list_response.py +32 -0
- whop_sdk/types/refund_created_webhook_event.py +154 -0
- whop_sdk/types/refund_list_params.py +38 -0
- whop_sdk/types/refund_list_response.py +53 -0
- whop_sdk/types/refund_reference_status.py +7 -0
- whop_sdk/types/refund_reference_type.py +9 -0
- whop_sdk/types/refund_retrieve_response.py +129 -0
- whop_sdk/types/refund_status.py +7 -0
- whop_sdk/types/refund_updated_webhook_event.py +154 -0
- whop_sdk/types/review_list_params.py +40 -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/setup_intent.py +111 -0
- whop_sdk/types/setup_intent_canceled_webhook_event.py +29 -0
- whop_sdk/types/setup_intent_list_params.py +38 -0
- whop_sdk/types/setup_intent_list_response.py +111 -0
- whop_sdk/types/setup_intent_requires_action_webhook_event.py +29 -0
- whop_sdk/types/setup_intent_status.py +7 -0
- whop_sdk/types/setup_intent_succeeded_webhook_event.py +29 -0
- whop_sdk/types/shared/__init__.py +62 -0
- whop_sdk/types/shared/access_level.py +7 -0
- whop_sdk/types/shared/access_pass_type.py +7 -0
- whop_sdk/types/shared/app.py +187 -0
- whop_sdk/types/shared/app_build.py +50 -0
- whop_sdk/types/shared/app_build_platforms.py +7 -0
- whop_sdk/types/shared/app_build_statuses.py +7 -0
- whop_sdk/types/shared/app_statuses.py +7 -0
- whop_sdk/types/shared/app_view_type.py +7 -0
- whop_sdk/types/shared/authorized_user_roles.py +9 -0
- whop_sdk/types/shared/business_types.py +22 -0
- whop_sdk/types/shared/chat_channel.py +43 -0
- whop_sdk/types/shared/checkout_configuration.py +104 -0
- whop_sdk/types/shared/collection_method.py +7 -0
- whop_sdk/types/shared/company.py +91 -0
- whop_sdk/types/shared/course_lesson_interaction.py +63 -0
- whop_sdk/types/shared/course_lesson_interaction_list_item.py +44 -0
- whop_sdk/types/shared/currency.py +93 -0
- whop_sdk/types/shared/custom_cta.py +21 -0
- whop_sdk/types/shared/direction.py +7 -0
- whop_sdk/types/shared/dms_post_types.py +7 -0
- whop_sdk/types/shared/email_notification_preferences.py +7 -0
- whop_sdk/types/shared/entry.py +70 -0
- whop_sdk/types/shared/entry_status.py +7 -0
- whop_sdk/types/shared/experience.py +91 -0
- whop_sdk/types/shared/forum.py +33 -0
- whop_sdk/types/shared/forum_post.py +60 -0
- whop_sdk/types/shared/friendly_receipt_status.py +24 -0
- whop_sdk/types/shared/global_affiliate_status.py +7 -0
- whop_sdk/types/shared/industry_types.py +67 -0
- whop_sdk/types/shared/invoice.py +64 -0
- whop_sdk/types/shared/invoice_list_item.py +64 -0
- whop_sdk/types/shared/invoice_status.py +7 -0
- 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 +128 -0
- whop_sdk/types/shared/membership_status.py +9 -0
- whop_sdk/types/shared/message.py +90 -0
- whop_sdk/types/shared/page_info.py +21 -0
- whop_sdk/types/shared/payment.py +273 -0
- whop_sdk/types/shared/plan.py +159 -0
- whop_sdk/types/shared/plan_type.py +7 -0
- whop_sdk/types/shared/product.py +132 -0
- whop_sdk/types/shared/product_list_item.py +57 -0
- whop_sdk/types/shared/promo_type.py +7 -0
- whop_sdk/types/shared/reaction.py +32 -0
- whop_sdk/types/shared/receipt_status.py +7 -0
- whop_sdk/types/shared/release_method.py +7 -0
- whop_sdk/types/shared/shipment.py +48 -0
- whop_sdk/types/shared/shipment_carrier.py +84 -0
- whop_sdk/types/shared/shipment_status.py +18 -0
- whop_sdk/types/shared/shipment_substatus.py +36 -0
- whop_sdk/types/shared/support_channel.py +39 -0
- whop_sdk/types/shared/tax_type.py +7 -0
- whop_sdk/types/shared/transfer.py +112 -0
- whop_sdk/types/shared/visibility.py +7 -0
- whop_sdk/types/shared/visibility_filter.py +9 -0
- whop_sdk/types/shared/who_can_comment_types.py +7 -0
- whop_sdk/types/shared/who_can_post.py +7 -0
- whop_sdk/types/shared/who_can_post_types.py +7 -0
- whop_sdk/types/shared/who_can_react.py +7 -0
- whop_sdk/types/shared_params/__init__.py +34 -0
- whop_sdk/types/shared_params/access_level.py +9 -0
- whop_sdk/types/shared_params/access_pass_type.py +9 -0
- whop_sdk/types/shared_params/app_build_platforms.py +9 -0
- whop_sdk/types/shared_params/app_build_statuses.py +9 -0
- whop_sdk/types/shared_params/app_statuses.py +9 -0
- whop_sdk/types/shared_params/app_view_type.py +9 -0
- whop_sdk/types/shared_params/authorized_user_roles.py +11 -0
- whop_sdk/types/shared_params/business_types.py +24 -0
- whop_sdk/types/shared_params/collection_method.py +9 -0
- whop_sdk/types/shared_params/currency.py +95 -0
- whop_sdk/types/shared_params/custom_cta.py +23 -0
- whop_sdk/types/shared_params/direction.py +9 -0
- whop_sdk/types/shared_params/email_notification_preferences.py +9 -0
- whop_sdk/types/shared_params/entry_status.py +9 -0
- whop_sdk/types/shared_params/friendly_receipt_status.py +26 -0
- whop_sdk/types/shared_params/global_affiliate_status.py +9 -0
- whop_sdk/types/shared_params/industry_types.py +69 -0
- whop_sdk/types/shared_params/invoice_status.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/membership_status.py +11 -0
- whop_sdk/types/shared_params/plan_type.py +9 -0
- whop_sdk/types/shared_params/promo_type.py +9 -0
- whop_sdk/types/shared_params/receipt_status.py +9 -0
- whop_sdk/types/shared_params/release_method.py +9 -0
- whop_sdk/types/shared_params/tax_type.py +9 -0
- whop_sdk/types/shared_params/visibility.py +9 -0
- whop_sdk/types/shared_params/visibility_filter.py +11 -0
- whop_sdk/types/shared_params/who_can_comment_types.py +9 -0
- whop_sdk/types/shared_params/who_can_post.py +9 -0
- whop_sdk/types/shared_params/who_can_post_types.py +9 -0
- whop_sdk/types/shared_params/who_can_react.py +9 -0
- whop_sdk/types/shipment_create_params.py +18 -0
- whop_sdk/types/shipment_list_params.py +31 -0
- whop_sdk/types/shipment_list_response.py +48 -0
- whop_sdk/types/support_channel_create_params.py +15 -0
- whop_sdk/types/support_channel_list_params.py +40 -0
- whop_sdk/types/support_channel_list_response.py +39 -0
- whop_sdk/types/transfer_create_params.py +39 -0
- whop_sdk/types/transfer_list_params.py +50 -0
- whop_sdk/types/transfer_list_response.py +38 -0
- whop_sdk/types/unwrap_webhook_event.py +52 -0
- whop_sdk/types/user_check_access_response.py +14 -0
- whop_sdk/types/user_retrieve_response.py +36 -0
- whop_sdk/types/withdrawal_fee_types.py +7 -0
- whop_sdk/types/withdrawal_list_params.py +38 -0
- whop_sdk/types/withdrawal_list_response.py +45 -0
- whop_sdk/types/withdrawal_retrieve_response.py +154 -0
- whop_sdk/types/withdrawal_speeds.py +7 -0
- whop_sdk/types/withdrawal_status.py +9 -0
- whop_sdk/types/withdrawal_types.py +7 -0
- whop_sdk-0.0.10.dist-info/METADATA +509 -0
- whop_sdk-0.0.10.dist-info/RECORD +352 -0
- whop_sdk-0.0.10.dist-info/WHEEL +4 -0
- whop_sdk-0.0.10.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,222 @@
|
|
|
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 Union, Iterable, Optional
|
|
6
|
+
from typing_extensions import Required, TypeAlias, TypedDict
|
|
7
|
+
|
|
8
|
+
from .embed_type import EmbedType
|
|
9
|
+
from .lesson_types import LessonTypes
|
|
10
|
+
from .lesson_visibilities import LessonVisibilities
|
|
11
|
+
from .assessment_question_types import AssessmentQuestionTypes
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"CourseLessonUpdateParams",
|
|
15
|
+
"AssessmentCompletionRequirement",
|
|
16
|
+
"AssessmentQuestion",
|
|
17
|
+
"AssessmentQuestionImage",
|
|
18
|
+
"AssessmentQuestionImageAttachmentInputWithDirectUploadID",
|
|
19
|
+
"AssessmentQuestionImageAttachmentInputWithID",
|
|
20
|
+
"AssessmentQuestionOption",
|
|
21
|
+
"Attachment",
|
|
22
|
+
"AttachmentAttachmentInputWithDirectUploadID",
|
|
23
|
+
"AttachmentAttachmentInputWithID",
|
|
24
|
+
"MainPdf",
|
|
25
|
+
"MainPdfAttachmentInputWithDirectUploadID",
|
|
26
|
+
"MainPdfAttachmentInputWithID",
|
|
27
|
+
"Thumbnail",
|
|
28
|
+
"ThumbnailAttachmentInputWithDirectUploadID",
|
|
29
|
+
"ThumbnailAttachmentInputWithID",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class CourseLessonUpdateParams(TypedDict, total=False):
|
|
34
|
+
assessment_completion_requirement: Optional[AssessmentCompletionRequirement]
|
|
35
|
+
"""Completion requirements for quiz/knowledge check lessons"""
|
|
36
|
+
|
|
37
|
+
assessment_questions: Optional[Iterable[AssessmentQuestion]]
|
|
38
|
+
"""Assessment questions for quiz/knowledge check lessons.
|
|
39
|
+
|
|
40
|
+
Replaces all existing questions.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
attachments: Optional[Iterable[Attachment]]
|
|
44
|
+
"""General attachments for the lesson (PDFs, files, etc).
|
|
45
|
+
|
|
46
|
+
Replaces all existing attachments.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
content: Optional[str]
|
|
50
|
+
"""The content of the lesson"""
|
|
51
|
+
|
|
52
|
+
days_from_course_start_until_unlock: Optional[int]
|
|
53
|
+
"""Days from course start until unlock"""
|
|
54
|
+
|
|
55
|
+
embed_id: Optional[str]
|
|
56
|
+
"""ID for the embed (YouTube video ID or Loom share ID)"""
|
|
57
|
+
|
|
58
|
+
embed_type: Optional[EmbedType]
|
|
59
|
+
"""The type of embed for a lesson"""
|
|
60
|
+
|
|
61
|
+
lesson_type: Optional[LessonTypes]
|
|
62
|
+
"""The available types for a lesson"""
|
|
63
|
+
|
|
64
|
+
main_pdf: Optional[MainPdf]
|
|
65
|
+
"""The main PDF file for this lesson"""
|
|
66
|
+
|
|
67
|
+
max_attempts: Optional[int]
|
|
68
|
+
"""Maximum number of attempts allowed for assessments"""
|
|
69
|
+
|
|
70
|
+
mux_asset_id: Optional[str]
|
|
71
|
+
"""The ID of the Mux asset to attach to this lesson for video lessons"""
|
|
72
|
+
|
|
73
|
+
thumbnail: Optional[Thumbnail]
|
|
74
|
+
"""The thumbnail for the lesson in png, jpeg, or gif format"""
|
|
75
|
+
|
|
76
|
+
title: Optional[str]
|
|
77
|
+
"""The title of the lesson"""
|
|
78
|
+
|
|
79
|
+
visibility: Optional[LessonVisibilities]
|
|
80
|
+
"""The available visibilities for a lesson.
|
|
81
|
+
|
|
82
|
+
Determines how / whether a lesson is visible to users.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class AssessmentCompletionRequirement(TypedDict, total=False):
|
|
87
|
+
minimum_grade_percent: Optional[float]
|
|
88
|
+
"""The minimum grade percentage required to pass (0-100).
|
|
89
|
+
|
|
90
|
+
Cannot be set together with minimum_questions_correct.
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
minimum_questions_correct: Optional[int]
|
|
94
|
+
"""The minimum number of questions that must be answered correctly.
|
|
95
|
+
|
|
96
|
+
Cannot be set together with minimum_grade_percent.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class AssessmentQuestionImageAttachmentInputWithDirectUploadID(TypedDict, total=False):
|
|
101
|
+
direct_upload_id: Required[str]
|
|
102
|
+
"""This ID should be used the first time you upload an attachment.
|
|
103
|
+
|
|
104
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
105
|
+
via the mediaDirectUpload mutation.
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class AssessmentQuestionImageAttachmentInputWithID(TypedDict, total=False):
|
|
110
|
+
id: Required[str]
|
|
111
|
+
"""The ID of an existing attachment object.
|
|
112
|
+
|
|
113
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
114
|
+
use this unless you know what you're doing.
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
AssessmentQuestionImage: TypeAlias = Union[
|
|
119
|
+
AssessmentQuestionImageAttachmentInputWithDirectUploadID, AssessmentQuestionImageAttachmentInputWithID
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class AssessmentQuestionOption(TypedDict, total=False):
|
|
124
|
+
is_correct: Required[bool]
|
|
125
|
+
"""Whether this option is a correct answer"""
|
|
126
|
+
|
|
127
|
+
option_text: Required[str]
|
|
128
|
+
"""The text of the answer option"""
|
|
129
|
+
|
|
130
|
+
id: Optional[str]
|
|
131
|
+
"""The ID of an existing option.
|
|
132
|
+
|
|
133
|
+
If provided, the option will be updated. If not provided, a new option will be
|
|
134
|
+
created.
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class AssessmentQuestion(TypedDict, total=False):
|
|
139
|
+
correct_answer: Required[str]
|
|
140
|
+
"""The correct answer for the question. Used for short answer questions"""
|
|
141
|
+
|
|
142
|
+
question_text: Required[str]
|
|
143
|
+
"""The text of the question"""
|
|
144
|
+
|
|
145
|
+
question_type: Required[AssessmentQuestionTypes]
|
|
146
|
+
"""The type of the question"""
|
|
147
|
+
|
|
148
|
+
id: Optional[str]
|
|
149
|
+
"""The ID of an existing question.
|
|
150
|
+
|
|
151
|
+
If provided, the question will be updated. If not provided, a new question will
|
|
152
|
+
be created.
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
image: Optional[AssessmentQuestionImage]
|
|
156
|
+
"""Optional image attachment for the question"""
|
|
157
|
+
|
|
158
|
+
options: Optional[Iterable[AssessmentQuestionOption]]
|
|
159
|
+
"""The answer options for multiple choice/select questions"""
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
class AttachmentAttachmentInputWithDirectUploadID(TypedDict, total=False):
|
|
163
|
+
direct_upload_id: Required[str]
|
|
164
|
+
"""This ID should be used the first time you upload an attachment.
|
|
165
|
+
|
|
166
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
167
|
+
via the mediaDirectUpload mutation.
|
|
168
|
+
"""
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class AttachmentAttachmentInputWithID(TypedDict, total=False):
|
|
172
|
+
id: Required[str]
|
|
173
|
+
"""The ID of an existing attachment object.
|
|
174
|
+
|
|
175
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
176
|
+
use this unless you know what you're doing.
|
|
177
|
+
"""
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
Attachment: TypeAlias = Union[AttachmentAttachmentInputWithDirectUploadID, AttachmentAttachmentInputWithID]
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
class MainPdfAttachmentInputWithDirectUploadID(TypedDict, total=False):
|
|
184
|
+
direct_upload_id: Required[str]
|
|
185
|
+
"""This ID should be used the first time you upload an attachment.
|
|
186
|
+
|
|
187
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
188
|
+
via the mediaDirectUpload mutation.
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class MainPdfAttachmentInputWithID(TypedDict, total=False):
|
|
193
|
+
id: Required[str]
|
|
194
|
+
"""The ID of an existing attachment object.
|
|
195
|
+
|
|
196
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
197
|
+
use this unless you know what you're doing.
|
|
198
|
+
"""
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
MainPdf: TypeAlias = Union[MainPdfAttachmentInputWithDirectUploadID, MainPdfAttachmentInputWithID]
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class ThumbnailAttachmentInputWithDirectUploadID(TypedDict, total=False):
|
|
205
|
+
direct_upload_id: Required[str]
|
|
206
|
+
"""This ID should be used the first time you upload an attachment.
|
|
207
|
+
|
|
208
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
209
|
+
via the mediaDirectUpload mutation.
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
class ThumbnailAttachmentInputWithID(TypedDict, total=False):
|
|
214
|
+
id: Required[str]
|
|
215
|
+
"""The ID of an existing attachment object.
|
|
216
|
+
|
|
217
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
218
|
+
use this unless you know what you're doing.
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
Thumbnail: TypeAlias = Union[ThumbnailAttachmentInputWithDirectUploadID, ThumbnailAttachmentInputWithID]
|
|
@@ -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."""
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
from .course_visibilities import CourseVisibilities
|
|
9
|
+
|
|
10
|
+
__all__ = ["CourseListResponse", "Thumbnail"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Thumbnail(BaseModel):
|
|
14
|
+
id: str
|
|
15
|
+
"""The ID of the attachment"""
|
|
16
|
+
|
|
17
|
+
content_type: Optional[str] = None
|
|
18
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
19
|
+
|
|
20
|
+
filename: Optional[str] = None
|
|
21
|
+
"""The name of the file"""
|
|
22
|
+
|
|
23
|
+
optimized_url: Optional[str] = None
|
|
24
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
25
|
+
|
|
26
|
+
This should be used for apps.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
source_url: Optional[str] = None
|
|
30
|
+
"""The original URL of the attachment, such as a direct link to S3.
|
|
31
|
+
|
|
32
|
+
This should never be displayed on the client and always passed to an Imgproxy
|
|
33
|
+
transformer.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class CourseListResponse(BaseModel):
|
|
38
|
+
id: str
|
|
39
|
+
"""The ID of the course. Looks like cors_XXX"""
|
|
40
|
+
|
|
41
|
+
certificate_after_completion_enabled: Optional[bool] = None
|
|
42
|
+
"""
|
|
43
|
+
Whether the course will award its students a PDF certificate after completing
|
|
44
|
+
all lessons
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
cover_image: Optional[str] = None
|
|
48
|
+
"""The URL of the course's cover image, which is shown in course preview cards"""
|
|
49
|
+
|
|
50
|
+
created_at: datetime
|
|
51
|
+
"""The timestamp of when the course was created"""
|
|
52
|
+
|
|
53
|
+
description: Optional[str] = None
|
|
54
|
+
"""A short description of the course"""
|
|
55
|
+
|
|
56
|
+
language: Languages
|
|
57
|
+
"""
|
|
58
|
+
The language spoken in the video content of the course, used to generate closed
|
|
59
|
+
captions in the right language
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
order: str
|
|
63
|
+
"""The order of the course within its experience"""
|
|
64
|
+
|
|
65
|
+
require_completing_lessons_in_order: bool
|
|
66
|
+
"""
|
|
67
|
+
Whether the course requires students to complete the previous lesson before
|
|
68
|
+
moving on to the next one
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
tagline: Optional[str] = None
|
|
72
|
+
"""A short tagline for the course.
|
|
73
|
+
|
|
74
|
+
It is displayed under the course title in the UI
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
thumbnail: Optional[Thumbnail] = None
|
|
78
|
+
"""The thumbnail for the course"""
|
|
79
|
+
|
|
80
|
+
title: Optional[str] = None
|
|
81
|
+
"""The title of the course"""
|
|
82
|
+
|
|
83
|
+
updated_at: datetime
|
|
84
|
+
"""The timestamp of when the course was last updated"""
|
|
85
|
+
|
|
86
|
+
visibility: CourseVisibilities
|
|
87
|
+
"""The visibility of the course.
|
|
88
|
+
|
|
89
|
+
Determines how / whether this course is visible to users.
|
|
90
|
+
"""
|
|
@@ -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__ = ["CourseStudentListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CourseStudentListParams(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
|
+
keyword: Optional[str]
|
|
25
|
+
"""Filter students by name - returns students whose names match the keyword"""
|
|
26
|
+
|
|
27
|
+
last: Optional[int]
|
|
28
|
+
"""Returns the last _n_ elements from the list."""
|
|
@@ -0,0 +1,42 @@
|
|
|
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__ = ["CourseStudentListResponse", "User"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class User(BaseModel):
|
|
12
|
+
id: str
|
|
13
|
+
"""The internal ID of the user."""
|
|
14
|
+
|
|
15
|
+
name: Optional[str] = None
|
|
16
|
+
"""The name of the user from their Whop account."""
|
|
17
|
+
|
|
18
|
+
username: str
|
|
19
|
+
"""The username of the user from their Whop account."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class CourseStudentListResponse(BaseModel):
|
|
23
|
+
id: str
|
|
24
|
+
"""The ID of the course student. Looks like crsi_XXX"""
|
|
25
|
+
|
|
26
|
+
completed_lessons_count: int
|
|
27
|
+
"""The number of lessons the student has completed"""
|
|
28
|
+
|
|
29
|
+
completion_rate: float
|
|
30
|
+
"""The percentage of lessons completed (0-100)"""
|
|
31
|
+
|
|
32
|
+
first_interaction_at: datetime
|
|
33
|
+
"""When the student first interacted with the course"""
|
|
34
|
+
|
|
35
|
+
last_interaction_at: datetime
|
|
36
|
+
"""When the student last interacted with the course"""
|
|
37
|
+
|
|
38
|
+
total_lessons_count: int
|
|
39
|
+
"""The total number of lessons the student has access to"""
|
|
40
|
+
|
|
41
|
+
user: User
|
|
42
|
+
"""The user who is enrolled in the course"""
|
|
@@ -0,0 +1,61 @@
|
|
|
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__ = ["CourseStudentRetrieveResponse", "Course", "CourseExperience", "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"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class User(BaseModel):
|
|
28
|
+
id: str
|
|
29
|
+
"""The internal ID of the user."""
|
|
30
|
+
|
|
31
|
+
name: Optional[str] = None
|
|
32
|
+
"""The name of the user from their Whop account."""
|
|
33
|
+
|
|
34
|
+
username: str
|
|
35
|
+
"""The username of the user from their Whop account."""
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class CourseStudentRetrieveResponse(BaseModel):
|
|
39
|
+
id: str
|
|
40
|
+
"""The ID of the course student. Looks like crsi_XXX"""
|
|
41
|
+
|
|
42
|
+
completed_lessons_count: int
|
|
43
|
+
"""The number of lessons the student has completed"""
|
|
44
|
+
|
|
45
|
+
completion_rate: float
|
|
46
|
+
"""The percentage of lessons completed (0-100)"""
|
|
47
|
+
|
|
48
|
+
course: Course
|
|
49
|
+
"""The course the student is enrolled in"""
|
|
50
|
+
|
|
51
|
+
first_interaction_at: datetime
|
|
52
|
+
"""When the student first interacted with the course"""
|
|
53
|
+
|
|
54
|
+
last_interaction_at: datetime
|
|
55
|
+
"""When the student last interacted with the course"""
|
|
56
|
+
|
|
57
|
+
total_lessons_count: int
|
|
58
|
+
"""The total number of lessons the student has access to"""
|
|
59
|
+
|
|
60
|
+
user: User
|
|
61
|
+
"""The user who is enrolled in the course"""
|
|
@@ -0,0 +1,114 @@
|
|
|
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 Union, Iterable, Optional
|
|
6
|
+
from typing_extensions import Required, TypeAlias, TypedDict
|
|
7
|
+
|
|
8
|
+
from .languages import Languages
|
|
9
|
+
from .course_visibilities import CourseVisibilities
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"CourseUpdateParams",
|
|
13
|
+
"Chapter",
|
|
14
|
+
"ChapterLesson",
|
|
15
|
+
"Thumbnail",
|
|
16
|
+
"ThumbnailAttachmentInputWithDirectUploadID",
|
|
17
|
+
"ThumbnailAttachmentInputWithID",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class CourseUpdateParams(TypedDict, total=False):
|
|
22
|
+
certificate_after_completion_enabled: Optional[bool]
|
|
23
|
+
"""
|
|
24
|
+
Whether the course will award its students a PDF certificate after completing
|
|
25
|
+
all lessons
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
chapters: Optional[Iterable[Chapter]]
|
|
29
|
+
"""The chapters and lessons to update"""
|
|
30
|
+
|
|
31
|
+
cover_image: Optional[str]
|
|
32
|
+
"""The cover image URL of the course"""
|
|
33
|
+
|
|
34
|
+
description: Optional[str]
|
|
35
|
+
"""A short description of the course"""
|
|
36
|
+
|
|
37
|
+
language: Optional[Languages]
|
|
38
|
+
"""The available languages for a course"""
|
|
39
|
+
|
|
40
|
+
order: Optional[str]
|
|
41
|
+
"""The decimal order position of the course within its experience.
|
|
42
|
+
|
|
43
|
+
Use fractional values (e.g., 1.5) to place between existing courses.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
require_completing_lessons_in_order: Optional[bool]
|
|
47
|
+
"""
|
|
48
|
+
Whether the course requires students to complete the previous lesson before
|
|
49
|
+
moving on to the next one
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
tagline: Optional[str]
|
|
53
|
+
"""A short tagline for the course"""
|
|
54
|
+
|
|
55
|
+
thumbnail: Optional[Thumbnail]
|
|
56
|
+
"""The thumbnail for the course in png, jpeg, or gif format"""
|
|
57
|
+
|
|
58
|
+
title: Optional[str]
|
|
59
|
+
"""The title of the course"""
|
|
60
|
+
|
|
61
|
+
visibility: Optional[CourseVisibilities]
|
|
62
|
+
"""The available visibilities for a course.
|
|
63
|
+
|
|
64
|
+
Determines how / whether a course is visible to users.
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class ChapterLesson(TypedDict, total=False):
|
|
69
|
+
id: Required[str]
|
|
70
|
+
"""The ID of the lesson to update"""
|
|
71
|
+
|
|
72
|
+
chapter_id: Required[str]
|
|
73
|
+
"""The ID of the chapter this lesson belongs to (for moving between chapters)"""
|
|
74
|
+
|
|
75
|
+
order: Required[int]
|
|
76
|
+
"""The order of the lesson within its chapter"""
|
|
77
|
+
|
|
78
|
+
title: Required[str]
|
|
79
|
+
"""The title of the lesson"""
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class Chapter(TypedDict, total=False):
|
|
83
|
+
id: Required[str]
|
|
84
|
+
"""The ID of the chapter to update"""
|
|
85
|
+
|
|
86
|
+
order: Required[int]
|
|
87
|
+
"""The order of the chapter within its course"""
|
|
88
|
+
|
|
89
|
+
title: Required[str]
|
|
90
|
+
"""The title of the chapter"""
|
|
91
|
+
|
|
92
|
+
lessons: Optional[Iterable[ChapterLesson]]
|
|
93
|
+
"""The lessons to update within this chapter"""
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class ThumbnailAttachmentInputWithDirectUploadID(TypedDict, total=False):
|
|
97
|
+
direct_upload_id: Required[str]
|
|
98
|
+
"""This ID should be used the first time you upload an attachment.
|
|
99
|
+
|
|
100
|
+
It is the ID of the direct upload that was created when uploading the file to S3
|
|
101
|
+
via the mediaDirectUpload mutation.
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class ThumbnailAttachmentInputWithID(TypedDict, total=False):
|
|
106
|
+
id: Required[str]
|
|
107
|
+
"""The ID of an existing attachment object.
|
|
108
|
+
|
|
109
|
+
Use this when updating a resource and keeping a subset of the attachments. Don't
|
|
110
|
+
use this unless you know what you're doing.
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
Thumbnail: TypeAlias = Union[ThumbnailAttachmentInputWithDirectUploadID, ThumbnailAttachmentInputWithID]
|