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,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.invoice import Invoice
|
|
8
|
+
|
|
9
|
+
__all__ = ["InvoicePaidWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class InvoicePaidWebhookEvent(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: Invoice
|
|
20
|
+
"""A statement that defines an amount due by a customer."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["invoice.paid"]
|
|
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.invoice import Invoice
|
|
8
|
+
|
|
9
|
+
__all__ = ["InvoicePastDueWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class InvoicePastDueWebhookEvent(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: Invoice
|
|
20
|
+
"""A statement that defines an amount due by a customer."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["invoice.past_due"]
|
|
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.invoice import Invoice
|
|
8
|
+
|
|
9
|
+
__all__ = ["InvoiceVoidedWebhookEvent"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class InvoiceVoidedWebhookEvent(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: Invoice
|
|
20
|
+
"""A statement that defines an amount due by a customer."""
|
|
21
|
+
|
|
22
|
+
timestamp: datetime
|
|
23
|
+
"""The timestamp in ISO 8601 format that the webhook was sent at on the server"""
|
|
24
|
+
|
|
25
|
+
type: Literal["invoice.voided"]
|
|
26
|
+
"""The webhook event type"""
|
|
@@ -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
|
+
]
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Union, Optional
|
|
4
|
+
from typing_extensions import Literal, Annotated, TypeAlias
|
|
5
|
+
|
|
6
|
+
from .._utils import PropertyInfo
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
from .shared.currency import Currency
|
|
9
|
+
|
|
10
|
+
__all__ = ["LedgerAccountRetrieveResponse", "Balance", "Owner", "OwnerUser", "OwnerCompany"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Balance(BaseModel):
|
|
14
|
+
balance: float
|
|
15
|
+
"""The amount of the balance."""
|
|
16
|
+
|
|
17
|
+
currency: Currency
|
|
18
|
+
"""The currency of the balance."""
|
|
19
|
+
|
|
20
|
+
pending_balance: float
|
|
21
|
+
"""The amount of the balance that is pending."""
|
|
22
|
+
|
|
23
|
+
reserve_balance: float
|
|
24
|
+
"""The amount of the balance that is reserved."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class OwnerUser(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
|
+
typename: Literal["User"]
|
|
35
|
+
"""The typename of this object"""
|
|
36
|
+
|
|
37
|
+
username: str
|
|
38
|
+
"""The username of the user from their Whop account."""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class OwnerCompany(BaseModel):
|
|
42
|
+
id: str
|
|
43
|
+
"""The ID (tag) of the company."""
|
|
44
|
+
|
|
45
|
+
route: str
|
|
46
|
+
"""The slug/route of the company on the Whop site."""
|
|
47
|
+
|
|
48
|
+
title: str
|
|
49
|
+
"""The title of the company."""
|
|
50
|
+
|
|
51
|
+
typename: Literal["Company"]
|
|
52
|
+
"""The typename of this object"""
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
Owner: TypeAlias = Annotated[Union[Optional[OwnerUser], Optional[OwnerCompany]], PropertyInfo(discriminator="typename")]
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class LedgerAccountRetrieveResponse(BaseModel):
|
|
59
|
+
id: str
|
|
60
|
+
"""The ID of the LedgerAccount."""
|
|
61
|
+
|
|
62
|
+
balances: List[Balance]
|
|
63
|
+
"""The balances associated with the account."""
|
|
64
|
+
|
|
65
|
+
ledger_account_audit_status: Optional[
|
|
66
|
+
Literal[
|
|
67
|
+
"pending",
|
|
68
|
+
"pending_ai_review",
|
|
69
|
+
"approved",
|
|
70
|
+
"reserves_imposed",
|
|
71
|
+
"suspended",
|
|
72
|
+
"ignored",
|
|
73
|
+
"rejected",
|
|
74
|
+
"requested_more_information",
|
|
75
|
+
"information_submitted",
|
|
76
|
+
"requested_tos_violation_correction",
|
|
77
|
+
"clawback_attempted",
|
|
78
|
+
"awaiting_sales_review",
|
|
79
|
+
]
|
|
80
|
+
] = None
|
|
81
|
+
"""The different statuses a LedgerAccountAudit can be"""
|
|
82
|
+
|
|
83
|
+
ledger_type: Literal["primary", "pool"]
|
|
84
|
+
"""The type of ledger account."""
|
|
85
|
+
|
|
86
|
+
owner: Owner
|
|
87
|
+
"""The owner of the ledger account."""
|
|
88
|
+
|
|
89
|
+
payments_approval_status: Optional[Literal["pending", "approved", "monitoring", "rejected"]] = None
|
|
90
|
+
"""The different approval statuses an account can have."""
|
|
91
|
+
|
|
92
|
+
transfer_fee: Optional[float] = None
|
|
93
|
+
"""The fee for transfers, if applicable."""
|
whop_sdk/types/lesson.py
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from .._models import BaseModel
|
|
8
|
+
from .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
|
+
"Lesson",
|
|
15
|
+
"AssessmentQuestion",
|
|
16
|
+
"AssessmentQuestionImage",
|
|
17
|
+
"AssessmentQuestionOption",
|
|
18
|
+
"Attachment",
|
|
19
|
+
"MainPdf",
|
|
20
|
+
"Thumbnail",
|
|
21
|
+
"VideoAsset",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class AssessmentQuestionImage(BaseModel):
|
|
26
|
+
id: str
|
|
27
|
+
"""The ID of the attachment"""
|
|
28
|
+
|
|
29
|
+
content_type: Optional[str] = None
|
|
30
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
31
|
+
|
|
32
|
+
filename: Optional[str] = None
|
|
33
|
+
"""The name of the file"""
|
|
34
|
+
|
|
35
|
+
url: Optional[str] = None
|
|
36
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
37
|
+
|
|
38
|
+
This should be used for apps.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class AssessmentQuestionOption(BaseModel):
|
|
43
|
+
id: str
|
|
44
|
+
"""The ID of the assessment question option"""
|
|
45
|
+
|
|
46
|
+
is_correct: Optional[bool] = None
|
|
47
|
+
"""Whether this option is a correct answer.
|
|
48
|
+
|
|
49
|
+
Only visible to admins (users with courses:update permission)
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
option_text: str
|
|
53
|
+
"""The text of the answer option"""
|
|
54
|
+
|
|
55
|
+
order: int
|
|
56
|
+
"""The order of this option within the question"""
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class AssessmentQuestion(BaseModel):
|
|
60
|
+
id: str
|
|
61
|
+
"""The ID of the assessment question"""
|
|
62
|
+
|
|
63
|
+
correct_answer: Optional[str] = None
|
|
64
|
+
"""The correct answer for the question.
|
|
65
|
+
|
|
66
|
+
Used for short answer questions. Only visible to admins (users with
|
|
67
|
+
courses:update permission)
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
created_at: datetime
|
|
71
|
+
"""When the question was created"""
|
|
72
|
+
|
|
73
|
+
image: Optional[AssessmentQuestionImage] = None
|
|
74
|
+
"""Optional image attachment for the question"""
|
|
75
|
+
|
|
76
|
+
options: List[AssessmentQuestionOption]
|
|
77
|
+
"""The answer options for multiple choice/select questions"""
|
|
78
|
+
|
|
79
|
+
order: int
|
|
80
|
+
"""The order of the question within its lesson"""
|
|
81
|
+
|
|
82
|
+
question_text: str
|
|
83
|
+
"""The text of the question"""
|
|
84
|
+
|
|
85
|
+
question_type: AssessmentQuestionTypes
|
|
86
|
+
"""The type of the question"""
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class Attachment(BaseModel):
|
|
90
|
+
id: str
|
|
91
|
+
"""The ID of the attachment"""
|
|
92
|
+
|
|
93
|
+
content_type: Optional[str] = None
|
|
94
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
95
|
+
|
|
96
|
+
filename: Optional[str] = None
|
|
97
|
+
"""The name of the file"""
|
|
98
|
+
|
|
99
|
+
url: Optional[str] = None
|
|
100
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
101
|
+
|
|
102
|
+
This should be used for apps.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class MainPdf(BaseModel):
|
|
107
|
+
id: str
|
|
108
|
+
"""The ID of the attachment"""
|
|
109
|
+
|
|
110
|
+
content_type: Optional[str] = None
|
|
111
|
+
"""The attachment's content type (e.g., image/jpg, video/mp4)"""
|
|
112
|
+
|
|
113
|
+
filename: Optional[str] = None
|
|
114
|
+
"""The name of the file"""
|
|
115
|
+
|
|
116
|
+
url: Optional[str] = None
|
|
117
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
118
|
+
|
|
119
|
+
This should be used for apps.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class Thumbnail(BaseModel):
|
|
124
|
+
url: Optional[str] = None
|
|
125
|
+
"""This is the URL you use to render optimized attachments on the client.
|
|
126
|
+
|
|
127
|
+
This should be used for apps.
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class VideoAsset(BaseModel):
|
|
132
|
+
id: str
|
|
133
|
+
"""The ID of the Mux asset"""
|
|
134
|
+
|
|
135
|
+
asset_id: Optional[str] = None
|
|
136
|
+
"""The Mux-provided ID of the asset"""
|
|
137
|
+
|
|
138
|
+
audio_only: bool
|
|
139
|
+
"""Whether this asset contains only audio"""
|
|
140
|
+
|
|
141
|
+
created_at: datetime
|
|
142
|
+
"""The time at which the Mux asset was created"""
|
|
143
|
+
|
|
144
|
+
duration_seconds: Optional[int] = None
|
|
145
|
+
"""The duration of the video in seconds"""
|
|
146
|
+
|
|
147
|
+
finished_uploading_at: Optional[datetime] = None
|
|
148
|
+
"""The time at which the video finished uploading"""
|
|
149
|
+
|
|
150
|
+
playback_id: Optional[str] = None
|
|
151
|
+
"""The public playback ID of the Mux asset"""
|
|
152
|
+
|
|
153
|
+
signed_playback_id: Optional[str] = None
|
|
154
|
+
"""The signed playback ID of the Mux asset"""
|
|
155
|
+
|
|
156
|
+
signed_storyboard_playback_token: Optional[str] = None
|
|
157
|
+
"""The signed storyboard playback token of the Mux asset"""
|
|
158
|
+
|
|
159
|
+
signed_thumbnail_playback_token: Optional[str] = None
|
|
160
|
+
"""The signed thumbnail playback token of the Mux asset"""
|
|
161
|
+
|
|
162
|
+
signed_video_playback_token: Optional[str] = None
|
|
163
|
+
"""The signed video playback token of the Mux asset"""
|
|
164
|
+
|
|
165
|
+
status: Literal["uploading", "created", "ready"]
|
|
166
|
+
"""The status of the Mux asset"""
|
|
167
|
+
|
|
168
|
+
updated_at: datetime
|
|
169
|
+
"""The time at which the Mux asset was last updated"""
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class Lesson(BaseModel):
|
|
173
|
+
id: str
|
|
174
|
+
"""The ID of the lesson"""
|
|
175
|
+
|
|
176
|
+
assessment_questions: List[AssessmentQuestion]
|
|
177
|
+
"""Assessment questions for quiz/knowledge check lessons"""
|
|
178
|
+
|
|
179
|
+
attachments: List[Attachment]
|
|
180
|
+
"""The attached files in this lesson as a flat array"""
|
|
181
|
+
|
|
182
|
+
content: Optional[str] = None
|
|
183
|
+
"""The content of the lesson"""
|
|
184
|
+
|
|
185
|
+
created_at: datetime
|
|
186
|
+
"""The timestamp of when the lesson was created"""
|
|
187
|
+
|
|
188
|
+
days_from_course_start_until_unlock: Optional[int] = None
|
|
189
|
+
"""Number of days from course start until the lesson is unlocked"""
|
|
190
|
+
|
|
191
|
+
embed_id: Optional[str] = None
|
|
192
|
+
"""ID for the embed (YouTube video ID or Loom share ID)"""
|
|
193
|
+
|
|
194
|
+
embed_type: Optional[EmbedType] = None
|
|
195
|
+
"""The type of embed for a lesson"""
|
|
196
|
+
|
|
197
|
+
lesson_type: LessonTypes
|
|
198
|
+
"""The type of the lesson (text, video, pdf, multi, quiz, knowledge_check)"""
|
|
199
|
+
|
|
200
|
+
main_pdf: Optional[MainPdf] = None
|
|
201
|
+
"""The main PDF file for this lesson"""
|
|
202
|
+
|
|
203
|
+
order: int
|
|
204
|
+
"""The order of the lesson within its chapter"""
|
|
205
|
+
|
|
206
|
+
thumbnail: Optional[Thumbnail] = None
|
|
207
|
+
"""The thumbnail for the lesson"""
|
|
208
|
+
|
|
209
|
+
title: str
|
|
210
|
+
"""The title of the lesson"""
|
|
211
|
+
|
|
212
|
+
video_asset: Optional[VideoAsset] = None
|
|
213
|
+
"""The associated Mux asset for video lessons"""
|
|
214
|
+
|
|
215
|
+
visibility: LessonVisibilities
|
|
216
|
+
"""The visibility of the lesson.
|
|
217
|
+
|
|
218
|
+
Determines how / whether this lesson is visible to users.
|
|
219
|
+
"""
|
|
@@ -0,0 +1,73 @@
|
|
|
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 List, Union, Optional
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
8
|
+
|
|
9
|
+
from .._types import SequenceNotStr
|
|
10
|
+
from .._utils import PropertyInfo
|
|
11
|
+
from .shared.direction import Direction
|
|
12
|
+
from .shared.access_level import AccessLevel
|
|
13
|
+
from .shared.member_statuses import MemberStatuses
|
|
14
|
+
from .shared.member_most_recent_actions import MemberMostRecentActions
|
|
15
|
+
|
|
16
|
+
__all__ = ["MemberListParams"]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class MemberListParams(TypedDict, total=False):
|
|
20
|
+
company_id: Required[str]
|
|
21
|
+
"""The ID of the company to list members for"""
|
|
22
|
+
|
|
23
|
+
access_level: Optional[AccessLevel]
|
|
24
|
+
"""The access level a given user (or company) has to a product or company."""
|
|
25
|
+
|
|
26
|
+
after: Optional[str]
|
|
27
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
28
|
+
|
|
29
|
+
before: Optional[str]
|
|
30
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
31
|
+
|
|
32
|
+
created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
33
|
+
"""The minimum creation date to filter by"""
|
|
34
|
+
|
|
35
|
+
created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
36
|
+
"""The maximum creation date to filter by"""
|
|
37
|
+
|
|
38
|
+
direction: Optional[Direction]
|
|
39
|
+
"""The direction of the sort."""
|
|
40
|
+
|
|
41
|
+
first: Optional[int]
|
|
42
|
+
"""Returns the first _n_ elements from the list."""
|
|
43
|
+
|
|
44
|
+
last: Optional[int]
|
|
45
|
+
"""Returns the last _n_ elements from the list."""
|
|
46
|
+
|
|
47
|
+
most_recent_actions: Optional[List[MemberMostRecentActions]]
|
|
48
|
+
"""The most recent actions to filter the members by"""
|
|
49
|
+
|
|
50
|
+
order: Optional[Literal["id", "usd_total_spent", "created_at", "joined_at", "most_recent_action"]]
|
|
51
|
+
"""Which columns can be used to sort."""
|
|
52
|
+
|
|
53
|
+
plan_ids: Optional[SequenceNotStr[str]]
|
|
54
|
+
"""The plan IDs to filter the members by"""
|
|
55
|
+
|
|
56
|
+
product_ids: Optional[SequenceNotStr[str]]
|
|
57
|
+
"""The product IDs to filter the members by"""
|
|
58
|
+
|
|
59
|
+
promo_code_ids: Optional[SequenceNotStr[str]]
|
|
60
|
+
"""The promo code IDs to filter the members by"""
|
|
61
|
+
|
|
62
|
+
query: Optional[str]
|
|
63
|
+
"""The name, username, or email to filter the members by.
|
|
64
|
+
|
|
65
|
+
The email filter will only apply if the current actor has the
|
|
66
|
+
`member:email:read` permission.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
statuses: Optional[List[MemberStatuses]]
|
|
70
|
+
"""The statuses to filter the members by"""
|
|
71
|
+
|
|
72
|
+
user_ids: Optional[SequenceNotStr[str]]
|
|
73
|
+
"""The user IDs to filter the members by"""
|
|
@@ -0,0 +1,65 @@
|
|
|
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 .shared.access_level import AccessLevel
|
|
8
|
+
from .shared.member_statuses import MemberStatuses
|
|
9
|
+
from .shared.member_most_recent_actions import MemberMostRecentActions
|
|
10
|
+
|
|
11
|
+
__all__ = ["MemberListResponse", "User"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class User(BaseModel):
|
|
15
|
+
id: str
|
|
16
|
+
"""The internal ID of the user account."""
|
|
17
|
+
|
|
18
|
+
email: Optional[str] = None
|
|
19
|
+
"""The digital mailing address of the user."""
|
|
20
|
+
|
|
21
|
+
name: Optional[str] = None
|
|
22
|
+
"""The user's full name."""
|
|
23
|
+
|
|
24
|
+
username: str
|
|
25
|
+
"""The whop username."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class MemberListResponse(BaseModel):
|
|
29
|
+
id: str
|
|
30
|
+
"""The ID of the member"""
|
|
31
|
+
|
|
32
|
+
access_level: AccessLevel
|
|
33
|
+
"""The access level of the product member.
|
|
34
|
+
|
|
35
|
+
If its admin, the member is an authorized user of the company. If its customer,
|
|
36
|
+
the member has a valid membership to any product on the company. If its
|
|
37
|
+
no_access, the member does not have access to the product.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
created_at: datetime
|
|
41
|
+
"""When the member was created"""
|
|
42
|
+
|
|
43
|
+
joined_at: datetime
|
|
44
|
+
"""When the member joined the company"""
|
|
45
|
+
|
|
46
|
+
most_recent_action: Optional[MemberMostRecentActions] = None
|
|
47
|
+
"""The different most recent actions a member can have."""
|
|
48
|
+
|
|
49
|
+
most_recent_action_at: Optional[datetime] = None
|
|
50
|
+
"""The time for the most recent action, if applicable."""
|
|
51
|
+
|
|
52
|
+
phone: Optional[str] = None
|
|
53
|
+
"""The phone number for the member, if available."""
|
|
54
|
+
|
|
55
|
+
status: MemberStatuses
|
|
56
|
+
"""The status of the member"""
|
|
57
|
+
|
|
58
|
+
updated_at: datetime
|
|
59
|
+
"""The timestamp of when this member was last updated"""
|
|
60
|
+
|
|
61
|
+
usd_total_spent: float
|
|
62
|
+
"""How much money this customer has spent on the company's products and plans"""
|
|
63
|
+
|
|
64
|
+
user: Optional[User] = None
|
|
65
|
+
"""The user for this member, if any."""
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .shared.access_level import AccessLevel
|
|
8
|
+
from .shared.member_statuses import MemberStatuses
|
|
9
|
+
from .shared.member_most_recent_actions import MemberMostRecentActions
|
|
10
|
+
|
|
11
|
+
__all__ = ["MemberRetrieveResponse", "Company", "User"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Company(BaseModel):
|
|
15
|
+
id: str
|
|
16
|
+
"""The ID of the company"""
|
|
17
|
+
|
|
18
|
+
route: str
|
|
19
|
+
"""The slug/route of the company on the Whop site."""
|
|
20
|
+
|
|
21
|
+
title: str
|
|
22
|
+
"""The written name of the company."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class User(BaseModel):
|
|
26
|
+
id: str
|
|
27
|
+
"""The internal ID of the user account."""
|
|
28
|
+
|
|
29
|
+
email: Optional[str] = None
|
|
30
|
+
"""The digital mailing address of the user."""
|
|
31
|
+
|
|
32
|
+
name: Optional[str] = None
|
|
33
|
+
"""The user's full name."""
|
|
34
|
+
|
|
35
|
+
username: str
|
|
36
|
+
"""The whop username."""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class MemberRetrieveResponse(BaseModel):
|
|
40
|
+
id: str
|
|
41
|
+
"""The ID of the member"""
|
|
42
|
+
|
|
43
|
+
access_level: AccessLevel
|
|
44
|
+
"""The access level of the product member.
|
|
45
|
+
|
|
46
|
+
If its admin, the member is an authorized user of the company. If its customer,
|
|
47
|
+
the member has a valid membership to any product on the company. If its
|
|
48
|
+
no_access, the member does not have access to the product.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
company: Company
|
|
52
|
+
"""The company for the member."""
|
|
53
|
+
|
|
54
|
+
created_at: datetime
|
|
55
|
+
"""When the member was created"""
|
|
56
|
+
|
|
57
|
+
joined_at: datetime
|
|
58
|
+
"""When the member joined the company"""
|
|
59
|
+
|
|
60
|
+
most_recent_action: Optional[MemberMostRecentActions] = None
|
|
61
|
+
"""The different most recent actions a member can have."""
|
|
62
|
+
|
|
63
|
+
most_recent_action_at: Optional[datetime] = None
|
|
64
|
+
"""The time for the most recent action, if applicable."""
|
|
65
|
+
|
|
66
|
+
phone: Optional[str] = None
|
|
67
|
+
"""The phone number for the member, if available."""
|
|
68
|
+
|
|
69
|
+
status: MemberStatuses
|
|
70
|
+
"""The status of the member"""
|
|
71
|
+
|
|
72
|
+
updated_at: datetime
|
|
73
|
+
"""The timestamp of when this member was last updated"""
|
|
74
|
+
|
|
75
|
+
usd_total_spent: float
|
|
76
|
+
"""How much money this customer has spent on the company's products and plans"""
|
|
77
|
+
|
|
78
|
+
user: Optional[User] = None
|
|
79
|
+
"""The user for this member, if any."""
|