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,147 @@
|
|
|
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 Literal, Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from .._types import SequenceNotStr
|
|
9
|
+
from .shared.currency import Currency
|
|
10
|
+
from .shared.plan_type import PlanType
|
|
11
|
+
from .shared.custom_cta import CustomCta
|
|
12
|
+
from .shared.visibility import Visibility
|
|
13
|
+
from .shared.business_types import BusinessTypes
|
|
14
|
+
from .shared.industry_types import IndustryTypes
|
|
15
|
+
from .shared.release_method import ReleaseMethod
|
|
16
|
+
from .shared.global_affiliate_status import GlobalAffiliateStatus
|
|
17
|
+
|
|
18
|
+
__all__ = ["ProductCreateParams", "PlanOptions", "PlanOptionsCustomField", "ProductHighlight"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class ProductCreateParams(TypedDict, total=False):
|
|
22
|
+
company_id: Required[str]
|
|
23
|
+
"""The ID of the company to create the product for."""
|
|
24
|
+
|
|
25
|
+
title: Required[str]
|
|
26
|
+
"""The title of the product."""
|
|
27
|
+
|
|
28
|
+
business_type: Optional[BusinessTypes]
|
|
29
|
+
"""The different business types a company can be."""
|
|
30
|
+
|
|
31
|
+
collect_shipping_address: Optional[bool]
|
|
32
|
+
"""Whether or not to collect shipping information at checkout from the customer."""
|
|
33
|
+
|
|
34
|
+
custom_cta: Optional[CustomCta]
|
|
35
|
+
"""The different types of custom CTAs that can be selected."""
|
|
36
|
+
|
|
37
|
+
custom_cta_url: Optional[str]
|
|
38
|
+
"""The custom call to action URL for the product."""
|
|
39
|
+
|
|
40
|
+
custom_statement_descriptor: Optional[str]
|
|
41
|
+
"""The custom statement descriptor for the product i.e.
|
|
42
|
+
|
|
43
|
+
WHOP\\**SPORTS, must be between 5 and 22 characters, contain at least one letter,
|
|
44
|
+
and not contain any of the following characters: <, >, \\,, ', "
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
description: Optional[str]
|
|
48
|
+
"""A written description of the product."""
|
|
49
|
+
|
|
50
|
+
experience_ids: Optional[SequenceNotStr[str]]
|
|
51
|
+
"""An array of experience IDs that this pass has"""
|
|
52
|
+
|
|
53
|
+
global_affiliate_percentage: Optional[float]
|
|
54
|
+
"""The percentage of the revenue that goes to the global affiliate program."""
|
|
55
|
+
|
|
56
|
+
global_affiliate_status: Optional[GlobalAffiliateStatus]
|
|
57
|
+
"""The different statuses of the global affiliate program for a product."""
|
|
58
|
+
|
|
59
|
+
headline: Optional[str]
|
|
60
|
+
"""The headline of the product."""
|
|
61
|
+
|
|
62
|
+
industry_type: Optional[IndustryTypes]
|
|
63
|
+
"""The different industry types a company can be in."""
|
|
64
|
+
|
|
65
|
+
member_affiliate_percentage: Optional[float]
|
|
66
|
+
"""The percentage of the revenue that goes to the member affiliate program."""
|
|
67
|
+
|
|
68
|
+
member_affiliate_status: Optional[GlobalAffiliateStatus]
|
|
69
|
+
"""The different statuses of the global affiliate program for a product."""
|
|
70
|
+
|
|
71
|
+
plan_options: Optional[PlanOptions]
|
|
72
|
+
"""The details to assign an autogenerated plan."""
|
|
73
|
+
|
|
74
|
+
product_highlights: Optional[Iterable[ProductHighlight]]
|
|
75
|
+
"""The product highlights for the product."""
|
|
76
|
+
|
|
77
|
+
product_tax_code_id: Optional[str]
|
|
78
|
+
"""The ID of the product tax code to apply to this product."""
|
|
79
|
+
|
|
80
|
+
redirect_purchase_url: Optional[str]
|
|
81
|
+
"""The URL to redirect the customer to after a purchase."""
|
|
82
|
+
|
|
83
|
+
route: Optional[str]
|
|
84
|
+
"""The route of the product."""
|
|
85
|
+
|
|
86
|
+
visibility: Optional[Visibility]
|
|
87
|
+
"""Visibility of a resource"""
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class PlanOptionsCustomField(TypedDict, total=False):
|
|
91
|
+
field_type: Required[Literal["text"]]
|
|
92
|
+
"""The type of the custom field."""
|
|
93
|
+
|
|
94
|
+
name: Required[str]
|
|
95
|
+
"""The name of the custom field."""
|
|
96
|
+
|
|
97
|
+
id: Optional[str]
|
|
98
|
+
"""The ID of the custom field (if being updated)"""
|
|
99
|
+
|
|
100
|
+
order: Optional[int]
|
|
101
|
+
"""The order of the field."""
|
|
102
|
+
|
|
103
|
+
placeholder: Optional[str]
|
|
104
|
+
"""The placeholder value of the field."""
|
|
105
|
+
|
|
106
|
+
required: Optional[bool]
|
|
107
|
+
"""Whether or not the field is required."""
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class PlanOptions(TypedDict, total=False):
|
|
111
|
+
base_currency: Optional[Currency]
|
|
112
|
+
"""The available currencies on the platform"""
|
|
113
|
+
|
|
114
|
+
billing_period: Optional[int]
|
|
115
|
+
"""The interval at which the plan charges (renewal plans)."""
|
|
116
|
+
|
|
117
|
+
custom_fields: Optional[Iterable[PlanOptionsCustomField]]
|
|
118
|
+
"""An array of custom field objects."""
|
|
119
|
+
|
|
120
|
+
initial_price: Optional[float]
|
|
121
|
+
"""An additional amount charged upon first purchase."""
|
|
122
|
+
|
|
123
|
+
plan_type: Optional[PlanType]
|
|
124
|
+
"""The type of plan that can be attached to a product"""
|
|
125
|
+
|
|
126
|
+
release_method: Optional[ReleaseMethod]
|
|
127
|
+
"""The methods of how a plan can be released."""
|
|
128
|
+
|
|
129
|
+
renewal_price: Optional[float]
|
|
130
|
+
"""The amount the customer is charged every billing period."""
|
|
131
|
+
|
|
132
|
+
visibility: Optional[Visibility]
|
|
133
|
+
"""Visibility of a resource"""
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class ProductHighlight(TypedDict, total=False):
|
|
137
|
+
content: Required[str]
|
|
138
|
+
"""
|
|
139
|
+
Text to display to describe the product highlight (max length 250 for
|
|
140
|
+
qualification or benefits, 170 for who this is for, 140 for pricing features).
|
|
141
|
+
"""
|
|
142
|
+
|
|
143
|
+
highlight_type: Required[Literal["qualification", "benefit", "who_this_is_for", "pricing_feature"]]
|
|
144
|
+
"""The type of this highlight."""
|
|
145
|
+
|
|
146
|
+
title: Optional[str]
|
|
147
|
+
"""The title of the product highlight, if applicable."""
|
|
@@ -0,0 +1,49 @@
|
|
|
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 .._utils import PropertyInfo
|
|
10
|
+
from .shared.direction import Direction
|
|
11
|
+
from .shared.access_pass_type import AccessPassType
|
|
12
|
+
from .shared.visibility_filter import VisibilityFilter
|
|
13
|
+
|
|
14
|
+
__all__ = ["ProductListParams"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ProductListParams(TypedDict, total=False):
|
|
18
|
+
company_id: Required[str]
|
|
19
|
+
"""The ID of the company to filter products by"""
|
|
20
|
+
|
|
21
|
+
after: Optional[str]
|
|
22
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
23
|
+
|
|
24
|
+
before: Optional[str]
|
|
25
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
26
|
+
|
|
27
|
+
created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
28
|
+
"""The minimum creation date to filter by"""
|
|
29
|
+
|
|
30
|
+
created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
31
|
+
"""The maximum creation date to filter by"""
|
|
32
|
+
|
|
33
|
+
direction: Optional[Direction]
|
|
34
|
+
"""The direction of the sort."""
|
|
35
|
+
|
|
36
|
+
first: Optional[int]
|
|
37
|
+
"""Returns the first _n_ elements from the list."""
|
|
38
|
+
|
|
39
|
+
last: Optional[int]
|
|
40
|
+
"""Returns the last _n_ elements from the list."""
|
|
41
|
+
|
|
42
|
+
order: Optional[Literal["active_memberships_count", "created_at", "usd_gmv", "usd_gmv_30_days"]]
|
|
43
|
+
"""The ways a relation of AccessPasses can be ordered"""
|
|
44
|
+
|
|
45
|
+
product_types: Optional[List[AccessPassType]]
|
|
46
|
+
"""The type of products to filter by"""
|
|
47
|
+
|
|
48
|
+
visibilities: Optional[List[VisibilityFilter]]
|
|
49
|
+
"""The visibility of the products to filter by"""
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import TypedDict
|
|
7
|
+
|
|
8
|
+
from .shared.custom_cta import CustomCta
|
|
9
|
+
from .shared.visibility import Visibility
|
|
10
|
+
from .shared.business_types import BusinessTypes
|
|
11
|
+
from .shared.industry_types import IndustryTypes
|
|
12
|
+
from .shared.global_affiliate_status import GlobalAffiliateStatus
|
|
13
|
+
|
|
14
|
+
__all__ = ["ProductUpdateParams", "StorePageConfig"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ProductUpdateParams(TypedDict, total=False):
|
|
18
|
+
business_type: Optional[BusinessTypes]
|
|
19
|
+
"""The different business types a company can be."""
|
|
20
|
+
|
|
21
|
+
collect_shipping_address: Optional[bool]
|
|
22
|
+
"""Whether or not to collect shipping information at checkout from the customer."""
|
|
23
|
+
|
|
24
|
+
custom_cta: Optional[CustomCta]
|
|
25
|
+
"""The different types of custom CTAs that can be selected."""
|
|
26
|
+
|
|
27
|
+
custom_cta_url: Optional[str]
|
|
28
|
+
"""The custom call to action URL for the product."""
|
|
29
|
+
|
|
30
|
+
custom_statement_descriptor: Optional[str]
|
|
31
|
+
"""The custom statement descriptor for the product i.e.
|
|
32
|
+
|
|
33
|
+
WHOP\\**SPORTS, must be between 5 and 22 characters, contain at least one letter,
|
|
34
|
+
and not contain any of the following characters: <, >, \\,, ', "
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
description: Optional[str]
|
|
38
|
+
"""A written description of the product."""
|
|
39
|
+
|
|
40
|
+
global_affiliate_percentage: Optional[float]
|
|
41
|
+
"""The percentage of the revenue that goes to the global affiliate program."""
|
|
42
|
+
|
|
43
|
+
global_affiliate_status: Optional[GlobalAffiliateStatus]
|
|
44
|
+
"""The different statuses of the global affiliate program for a product."""
|
|
45
|
+
|
|
46
|
+
headline: Optional[str]
|
|
47
|
+
"""The headline of the product."""
|
|
48
|
+
|
|
49
|
+
industry_type: Optional[IndustryTypes]
|
|
50
|
+
"""The different industry types a company can be in."""
|
|
51
|
+
|
|
52
|
+
member_affiliate_percentage: Optional[float]
|
|
53
|
+
"""The percentage of the revenue that goes to the member affiliate program."""
|
|
54
|
+
|
|
55
|
+
member_affiliate_status: Optional[GlobalAffiliateStatus]
|
|
56
|
+
"""The different statuses of the global affiliate program for a product."""
|
|
57
|
+
|
|
58
|
+
product_tax_code_id: Optional[str]
|
|
59
|
+
"""The ID of the product tax code to apply to this product."""
|
|
60
|
+
|
|
61
|
+
redirect_purchase_url: Optional[str]
|
|
62
|
+
"""The URL to redirect the customer to after a purchase."""
|
|
63
|
+
|
|
64
|
+
route: Optional[str]
|
|
65
|
+
"""The route of the product."""
|
|
66
|
+
|
|
67
|
+
store_page_config: Optional[StorePageConfig]
|
|
68
|
+
"""Configuration for a product on the company's store page."""
|
|
69
|
+
|
|
70
|
+
title: Optional[str]
|
|
71
|
+
"""The title of the product."""
|
|
72
|
+
|
|
73
|
+
visibility: Optional[Visibility]
|
|
74
|
+
"""Visibility of a resource"""
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class StorePageConfig(TypedDict, total=False):
|
|
78
|
+
custom_cta: Optional[str]
|
|
79
|
+
"""Custom call-to-action text for the product's store page."""
|
|
80
|
+
|
|
81
|
+
show_price: Optional[bool]
|
|
82
|
+
"""Whether or not to show the price on the product's store page."""
|
|
@@ -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 .promo_duration import PromoDuration
|
|
8
|
+
from .shared.currency import Currency
|
|
9
|
+
from .promo_code_status import PromoCodeStatus
|
|
10
|
+
from .shared.promo_type import PromoType
|
|
11
|
+
|
|
12
|
+
__all__ = ["PromoCode", "Company", "Product"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Company(BaseModel):
|
|
16
|
+
id: str
|
|
17
|
+
"""The ID of the company"""
|
|
18
|
+
|
|
19
|
+
title: str
|
|
20
|
+
"""The written name of the company."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Product(BaseModel):
|
|
24
|
+
id: str
|
|
25
|
+
"""The internal ID of the public product."""
|
|
26
|
+
|
|
27
|
+
title: str
|
|
28
|
+
"""The title of the product. Use for Whop 4.0."""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class PromoCode(BaseModel):
|
|
32
|
+
id: str
|
|
33
|
+
"""The ID of the promo."""
|
|
34
|
+
|
|
35
|
+
amount_off: float
|
|
36
|
+
"""The amount off (% or flat amount) for the promo."""
|
|
37
|
+
|
|
38
|
+
churned_users_only: bool
|
|
39
|
+
"""Restricts promo use to only users who have churned from the company before."""
|
|
40
|
+
|
|
41
|
+
code: Optional[str] = None
|
|
42
|
+
"""The specific code used to apply the promo at checkout."""
|
|
43
|
+
|
|
44
|
+
company: Company
|
|
45
|
+
"""The company for the promo code."""
|
|
46
|
+
|
|
47
|
+
created_at: datetime
|
|
48
|
+
"""The timestamp of when the promo was created."""
|
|
49
|
+
|
|
50
|
+
currency: Currency
|
|
51
|
+
"""The monetary currency of the promo code."""
|
|
52
|
+
|
|
53
|
+
duration: Optional[PromoDuration] = None
|
|
54
|
+
"""The duration setting for the promo code"""
|
|
55
|
+
|
|
56
|
+
existing_memberships_only: bool
|
|
57
|
+
"""Restricts promo use to only be applied to already purchased memberships."""
|
|
58
|
+
|
|
59
|
+
expires_at: Optional[datetime] = None
|
|
60
|
+
"""The date/time of when the promo expires."""
|
|
61
|
+
|
|
62
|
+
new_users_only: bool
|
|
63
|
+
"""
|
|
64
|
+
Restricts promo use to only users who have never purchased from the company
|
|
65
|
+
before.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
one_per_customer: bool
|
|
69
|
+
"""Restricts promo use to only be applied once per customer."""
|
|
70
|
+
|
|
71
|
+
product: Optional[Product] = None
|
|
72
|
+
"""The product this promo code applies to"""
|
|
73
|
+
|
|
74
|
+
promo_duration_months: Optional[int] = None
|
|
75
|
+
"""The number of months the promo is applied for."""
|
|
76
|
+
|
|
77
|
+
promo_type: PromoType
|
|
78
|
+
"""The type (% or flat amount) of the promo."""
|
|
79
|
+
|
|
80
|
+
status: PromoCodeStatus
|
|
81
|
+
"""Indicates if the promo code is live or disabled."""
|
|
82
|
+
|
|
83
|
+
stock: int
|
|
84
|
+
"""The quantity limit on the number of uses."""
|
|
85
|
+
|
|
86
|
+
unlimited_stock: bool
|
|
87
|
+
"""Whether or not the promo code has unlimited stock."""
|
|
88
|
+
|
|
89
|
+
uses: int
|
|
90
|
+
"""The amount of times the promo codes has been used."""
|
|
@@ -0,0 +1,70 @@
|
|
|
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, Optional
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
8
|
+
|
|
9
|
+
from .._types import SequenceNotStr
|
|
10
|
+
from .._utils import PropertyInfo
|
|
11
|
+
from .shared.currency import Currency
|
|
12
|
+
from .shared.promo_type import PromoType
|
|
13
|
+
|
|
14
|
+
__all__ = ["PromoCodeCreateParams"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class PromoCodeCreateParams(TypedDict, total=False):
|
|
18
|
+
amount_off: Required[float]
|
|
19
|
+
"""The amount off (% or flat amount) for the promo."""
|
|
20
|
+
|
|
21
|
+
base_currency: Required[Currency]
|
|
22
|
+
"""The monetary currency of the promo code."""
|
|
23
|
+
|
|
24
|
+
code: Required[str]
|
|
25
|
+
"""The specific code used to apply the promo at checkout."""
|
|
26
|
+
|
|
27
|
+
company_id: Required[str]
|
|
28
|
+
"""The id of the company to create the promo code for."""
|
|
29
|
+
|
|
30
|
+
new_users_only: Required[bool]
|
|
31
|
+
"""
|
|
32
|
+
Restricts promo use to only users who have never purchased from the company
|
|
33
|
+
before.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
promo_duration_months: Required[int]
|
|
37
|
+
"""The number of months this promo code is applied and valid for."""
|
|
38
|
+
|
|
39
|
+
promo_type: Required[PromoType]
|
|
40
|
+
"""The type (% or flat amount) of the promo."""
|
|
41
|
+
|
|
42
|
+
churned_users_only: Optional[bool]
|
|
43
|
+
"""Restricts promo use to only users who have churned from the company before."""
|
|
44
|
+
|
|
45
|
+
existing_memberships_only: Optional[bool]
|
|
46
|
+
"""Whether this promo code is for existing memberships only (cancelations)"""
|
|
47
|
+
|
|
48
|
+
expires_at: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
49
|
+
"""The date/time of when the promo expires."""
|
|
50
|
+
|
|
51
|
+
one_per_customer: Optional[bool]
|
|
52
|
+
"""Restricts promo use to only be applied once per customer."""
|
|
53
|
+
|
|
54
|
+
plan_ids: Optional[SequenceNotStr[str]]
|
|
55
|
+
"""The IDs of the plans that the promo code applies to.
|
|
56
|
+
|
|
57
|
+
If product_id is provided, it will only apply to plans attached to that product
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
product_id: Optional[str]
|
|
61
|
+
"""The product to lock the promo code to, if any.
|
|
62
|
+
|
|
63
|
+
If provided will filter out any plan ids not attached to this product
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
stock: Optional[int]
|
|
67
|
+
"""The quantity limit on the number of uses."""
|
|
68
|
+
|
|
69
|
+
unlimited_stock: Optional[bool]
|
|
70
|
+
"""Whether or not the promo code should have unlimited stock."""
|
|
@@ -0,0 +1,45 @@
|
|
|
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, Optional
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
8
|
+
|
|
9
|
+
from .._types import SequenceNotStr
|
|
10
|
+
from .._utils import PropertyInfo
|
|
11
|
+
from .promo_code_status import PromoCodeStatus
|
|
12
|
+
|
|
13
|
+
__all__ = ["PromoCodeListParams"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class PromoCodeListParams(TypedDict, total=False):
|
|
17
|
+
company_id: Required[str]
|
|
18
|
+
"""The ID of the company to list promo codes for"""
|
|
19
|
+
|
|
20
|
+
after: Optional[str]
|
|
21
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
22
|
+
|
|
23
|
+
before: Optional[str]
|
|
24
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
25
|
+
|
|
26
|
+
created_after: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
27
|
+
"""The minimum creation date to filter by"""
|
|
28
|
+
|
|
29
|
+
created_before: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
|
30
|
+
"""The maximum creation date to filter by"""
|
|
31
|
+
|
|
32
|
+
first: Optional[int]
|
|
33
|
+
"""Returns the first _n_ elements from the list."""
|
|
34
|
+
|
|
35
|
+
last: Optional[int]
|
|
36
|
+
"""Returns the last _n_ elements from the list."""
|
|
37
|
+
|
|
38
|
+
plan_ids: Optional[SequenceNotStr[str]]
|
|
39
|
+
"""Filter promo codes by plan ID(s)"""
|
|
40
|
+
|
|
41
|
+
product_ids: Optional[SequenceNotStr[str]]
|
|
42
|
+
"""Filter promo codes by product ID(s)"""
|
|
43
|
+
|
|
44
|
+
status: Optional[PromoCodeStatus]
|
|
45
|
+
"""Statuses for promo codes"""
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .promo_duration import PromoDuration
|
|
8
|
+
from .shared.currency import Currency
|
|
9
|
+
from .promo_code_status import PromoCodeStatus
|
|
10
|
+
from .shared.promo_type import PromoType
|
|
11
|
+
|
|
12
|
+
__all__ = ["PromoCodeListResponse", "Product"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Product(BaseModel):
|
|
16
|
+
id: str
|
|
17
|
+
"""The internal ID of the public product."""
|
|
18
|
+
|
|
19
|
+
title: str
|
|
20
|
+
"""The title of the product. Use for Whop 4.0."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class PromoCodeListResponse(BaseModel):
|
|
24
|
+
id: str
|
|
25
|
+
"""The ID of the promo."""
|
|
26
|
+
|
|
27
|
+
amount_off: float
|
|
28
|
+
"""The amount off (% or flat amount) for the promo."""
|
|
29
|
+
|
|
30
|
+
churned_users_only: bool
|
|
31
|
+
"""Restricts promo use to only users who have churned from the company before."""
|
|
32
|
+
|
|
33
|
+
code: Optional[str] = None
|
|
34
|
+
"""The specific code used to apply the promo at checkout."""
|
|
35
|
+
|
|
36
|
+
created_at: datetime
|
|
37
|
+
"""The timestamp of when the promo was created."""
|
|
38
|
+
|
|
39
|
+
currency: Currency
|
|
40
|
+
"""The monetary currency of the promo code."""
|
|
41
|
+
|
|
42
|
+
duration: Optional[PromoDuration] = None
|
|
43
|
+
"""The duration setting for the promo code"""
|
|
44
|
+
|
|
45
|
+
existing_memberships_only: bool
|
|
46
|
+
"""Restricts promo use to only be applied to already purchased memberships."""
|
|
47
|
+
|
|
48
|
+
expires_at: Optional[datetime] = None
|
|
49
|
+
"""The date/time of when the promo expires."""
|
|
50
|
+
|
|
51
|
+
new_users_only: bool
|
|
52
|
+
"""
|
|
53
|
+
Restricts promo use to only users who have never purchased from the company
|
|
54
|
+
before.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
one_per_customer: bool
|
|
58
|
+
"""Restricts promo use to only be applied once per customer."""
|
|
59
|
+
|
|
60
|
+
product: Optional[Product] = None
|
|
61
|
+
"""The product this promo code applies to"""
|
|
62
|
+
|
|
63
|
+
promo_duration_months: Optional[int] = None
|
|
64
|
+
"""The number of months the promo is applied for."""
|
|
65
|
+
|
|
66
|
+
promo_type: PromoType
|
|
67
|
+
"""The type (% or flat amount) of the promo."""
|
|
68
|
+
|
|
69
|
+
status: PromoCodeStatus
|
|
70
|
+
"""Indicates if the promo code is live or disabled."""
|
|
71
|
+
|
|
72
|
+
stock: int
|
|
73
|
+
"""The quantity limit on the number of uses."""
|
|
74
|
+
|
|
75
|
+
unlimited_stock: bool
|
|
76
|
+
"""Whether or not the promo code has unlimited stock."""
|
|
77
|
+
|
|
78
|
+
uses: int
|
|
79
|
+
"""The amount of times the promo codes has been used."""
|
|
@@ -0,0 +1,19 @@
|
|
|
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__ = ["ReactionCreateParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ReactionCreateParams(TypedDict, total=False):
|
|
12
|
+
resource_id: Required[str]
|
|
13
|
+
"""The ID of the post or message to react to."""
|
|
14
|
+
|
|
15
|
+
emoji: Optional[str]
|
|
16
|
+
"""The emoji to react with (e.g., :heart: or '😀').
|
|
17
|
+
|
|
18
|
+
It will be ignored in forums, as everything will be :heart:
|
|
19
|
+
"""
|
|
@@ -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__ = ["ReactionListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ReactionListParams(TypedDict, total=False):
|
|
12
|
+
resource_id: Required[str]
|
|
13
|
+
"""The ID of the post or message to list reactions for"""
|
|
14
|
+
|
|
15
|
+
after: Optional[str]
|
|
16
|
+
"""Returns the elements in the list that come after the specified cursor."""
|
|
17
|
+
|
|
18
|
+
before: Optional[str]
|
|
19
|
+
"""Returns the elements in the list that come before the specified cursor."""
|
|
20
|
+
|
|
21
|
+
first: Optional[int]
|
|
22
|
+
"""Returns the first _n_ elements from the list."""
|
|
23
|
+
|
|
24
|
+
last: Optional[int]
|
|
25
|
+
"""Returns the last _n_ elements from the list."""
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
|
|
7
|
+
__all__ = ["ReactionListResponse", "User"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class User(BaseModel):
|
|
11
|
+
id: str
|
|
12
|
+
"""The internal ID of the user."""
|
|
13
|
+
|
|
14
|
+
name: Optional[str] = None
|
|
15
|
+
"""The name of the user from their Whop account."""
|
|
16
|
+
|
|
17
|
+
username: str
|
|
18
|
+
"""The username of the user from their Whop account."""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class ReactionListResponse(BaseModel):
|
|
22
|
+
id: str
|
|
23
|
+
"""The unique identifier for the entity"""
|
|
24
|
+
|
|
25
|
+
emoji: Optional[str] = None
|
|
26
|
+
"""The emoji that was used in shortcode format (:heart:)"""
|
|
27
|
+
|
|
28
|
+
resource_id: str
|
|
29
|
+
"""The ID of the post this reaction belongs to"""
|
|
30
|
+
|
|
31
|
+
user: User
|
|
32
|
+
"""The user who reacted to the post"""
|