whop-sdk 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of whop-sdk might be problematic. Click here for more details.

Files changed (126) hide show
  1. whop_sdk/_client.py +65 -2
  2. whop_sdk/_version.py +1 -1
  3. whop_sdk/resources/__init__.py +98 -0
  4. whop_sdk/resources/checkout_configurations.py +16 -12
  5. whop_sdk/resources/course_chapters.py +602 -0
  6. whop_sdk/resources/course_lessons.py +722 -0
  7. whop_sdk/resources/courses.py +713 -0
  8. whop_sdk/resources/experiences.py +107 -0
  9. whop_sdk/resources/forum_posts.py +123 -1
  10. whop_sdk/resources/forums.py +446 -0
  11. whop_sdk/resources/members.py +429 -0
  12. whop_sdk/resources/memberships.py +16 -8
  13. whop_sdk/resources/messages.py +113 -1
  14. whop_sdk/resources/payments.py +3 -26
  15. whop_sdk/resources/plans.py +84 -6
  16. whop_sdk/resources/products.py +8 -16
  17. whop_sdk/resources/promo_codes.py +652 -0
  18. whop_sdk/resources/reviews.py +315 -0
  19. whop_sdk/types/__init__.py +64 -0
  20. whop_sdk/types/app_list_response.py +16 -1
  21. whop_sdk/types/assessment_question_types.py +7 -0
  22. whop_sdk/types/billing_reasons.py +9 -0
  23. whop_sdk/types/card_brands.py +24 -0
  24. whop_sdk/types/checkout_configuration_create_params.py +70 -7
  25. whop_sdk/types/checkout_configuration_list_response.py +12 -9
  26. whop_sdk/types/course.py +109 -0
  27. whop_sdk/types/course_chapter.py +32 -0
  28. whop_sdk/types/course_chapter_create_params.py +16 -0
  29. whop_sdk/types/course_chapter_delete_response.py +7 -0
  30. whop_sdk/types/course_chapter_list_params.py +25 -0
  31. whop_sdk/types/course_chapter_list_response.py +16 -0
  32. whop_sdk/types/course_chapter_update_params.py +12 -0
  33. whop_sdk/types/course_create_params.py +41 -0
  34. whop_sdk/types/course_delete_response.py +7 -0
  35. whop_sdk/types/course_lesson_create_params.py +27 -0
  36. whop_sdk/types/course_lesson_delete_response.py +7 -0
  37. whop_sdk/types/course_lesson_interaction_completed_webhook_event.py +26 -0
  38. whop_sdk/types/course_lesson_list_params.py +28 -0
  39. whop_sdk/types/course_lesson_list_response.py +35 -0
  40. whop_sdk/types/course_lesson_update_params.py +144 -0
  41. whop_sdk/types/course_list_params.py +28 -0
  42. whop_sdk/types/course_list_response.py +77 -0
  43. whop_sdk/types/course_update_params.py +89 -0
  44. whop_sdk/types/entry_approved_webhook_event.py +26 -0
  45. whop_sdk/types/entry_created_webhook_event.py +26 -0
  46. whop_sdk/types/entry_deleted_webhook_event.py +26 -0
  47. whop_sdk/types/entry_denied_webhook_event.py +26 -0
  48. whop_sdk/types/experience_duplicate_params.py +13 -0
  49. whop_sdk/types/experience_list_response.py +27 -1
  50. whop_sdk/types/forum_list_params.py +28 -0
  51. whop_sdk/types/forum_list_response.py +33 -0
  52. whop_sdk/types/forum_post_list_response.py +7 -0
  53. whop_sdk/types/forum_post_update_params.py +41 -0
  54. whop_sdk/types/forum_update_params.py +23 -0
  55. whop_sdk/types/invoice_create_params.py +10 -2
  56. whop_sdk/types/languages.py +30 -0
  57. whop_sdk/types/ledger_account_retrieve_response.py +15 -1
  58. whop_sdk/types/lesson.py +159 -0
  59. whop_sdk/types/lesson_types.py +7 -0
  60. whop_sdk/types/lesson_visibilities.py +7 -0
  61. whop_sdk/types/member_list_params.py +73 -0
  62. whop_sdk/types/member_list_response.py +65 -0
  63. whop_sdk/types/member_retrieve_response.py +79 -0
  64. whop_sdk/types/membership_activated_webhook_event.py +29 -0
  65. whop_sdk/types/membership_deactivated_webhook_event.py +29 -0
  66. whop_sdk/types/membership_list_params.py +7 -4
  67. whop_sdk/types/membership_list_response.py +12 -1
  68. whop_sdk/types/message_update_params.py +35 -0
  69. whop_sdk/types/payment_failed_webhook_event.py +26 -0
  70. whop_sdk/types/payment_list_params.py +2 -7
  71. whop_sdk/types/payment_list_response.py +23 -13
  72. whop_sdk/types/payment_method_types.py +92 -0
  73. whop_sdk/types/payment_pending_webhook_event.py +26 -0
  74. whop_sdk/types/payment_succeeded_webhook_event.py +26 -0
  75. whop_sdk/types/plan_create_params.py +29 -3
  76. whop_sdk/types/plan_list_response.py +9 -0
  77. whop_sdk/types/plan_update_params.py +18 -0
  78. whop_sdk/types/product_create_params.py +1 -24
  79. whop_sdk/types/product_update_params.py +12 -1
  80. whop_sdk/types/promo_code.py +90 -0
  81. whop_sdk/types/promo_code_create_params.py +70 -0
  82. whop_sdk/types/promo_code_delete_response.py +7 -0
  83. whop_sdk/types/promo_code_list_params.py +37 -0
  84. whop_sdk/types/promo_code_list_response.py +79 -0
  85. whop_sdk/types/promo_code_status.py +7 -0
  86. whop_sdk/types/promo_duration.py +7 -0
  87. whop_sdk/types/review_list_params.py +31 -0
  88. whop_sdk/types/review_list_response.py +78 -0
  89. whop_sdk/types/review_retrieve_response.py +103 -0
  90. whop_sdk/types/review_status.py +7 -0
  91. whop_sdk/types/shared/__init__.py +7 -0
  92. whop_sdk/types/shared/access_level.py +7 -0
  93. whop_sdk/types/shared/app.py +25 -1
  94. whop_sdk/types/shared/checkout_configuration.py +12 -9
  95. whop_sdk/types/shared/company.py +15 -1
  96. whop_sdk/types/shared/course_lesson_interaction.py +20 -1
  97. whop_sdk/types/shared/email_notification_preferences.py +7 -0
  98. whop_sdk/types/shared/experience.py +27 -1
  99. whop_sdk/types/shared/forum.py +33 -0
  100. whop_sdk/types/shared/forum_post.py +7 -0
  101. whop_sdk/types/shared/invoice.py +4 -1
  102. whop_sdk/types/shared/invoice_list_item.py +4 -1
  103. whop_sdk/types/shared/member_most_recent_actions.py +22 -0
  104. whop_sdk/types/shared/member_statuses.py +7 -0
  105. whop_sdk/types/shared/membership.py +12 -1
  106. whop_sdk/types/shared/payment.py +23 -13
  107. whop_sdk/types/shared/plan.py +9 -0
  108. whop_sdk/types/shared/product.py +8 -0
  109. whop_sdk/types/shared/product_list_item.py +8 -0
  110. whop_sdk/types/shared/who_can_comment_types.py +7 -0
  111. whop_sdk/types/shared/who_can_post_types.py +7 -0
  112. whop_sdk/types/shared_params/__init__.py +7 -0
  113. whop_sdk/types/shared_params/access_level.py +9 -0
  114. whop_sdk/types/shared_params/email_notification_preferences.py +9 -0
  115. whop_sdk/types/shared_params/member_most_recent_actions.py +24 -0
  116. whop_sdk/types/shared_params/member_statuses.py +9 -0
  117. whop_sdk/types/shared_params/promo_type.py +9 -0
  118. whop_sdk/types/shared_params/who_can_comment_types.py +9 -0
  119. whop_sdk/types/shared_params/who_can_post_types.py +9 -0
  120. whop_sdk/types/unwrap_webhook_event.py +24 -1
  121. whop_sdk/types/user_check_access_response.py +2 -3
  122. whop_sdk/types/user_retrieve_response.py +12 -1
  123. {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/METADATA +2 -2
  124. {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/RECORD +126 -50
  125. {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/WHEEL +0 -0
  126. {whop_sdk-0.0.1.dist-info → whop_sdk-0.0.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,77 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+ from .languages import Languages
8
+
9
+ __all__ = ["CourseListResponse", "Thumbnail"]
10
+
11
+
12
+ class Thumbnail(BaseModel):
13
+ id: str
14
+ """The ID of the attachment"""
15
+
16
+ content_type: Optional[str] = None
17
+ """The attachment's content type (e.g., image/jpg, video/mp4)"""
18
+
19
+ filename: Optional[str] = None
20
+ """The name of the file"""
21
+
22
+ optimized_url: Optional[str] = None
23
+ """This is the URL you use to render optimized attachments on the client.
24
+
25
+ This should be used for apps.
26
+ """
27
+
28
+ source_url: Optional[str] = None
29
+ """The original URL of the attachment, such as a direct link to S3.
30
+
31
+ This should never be displayed on the client and always passed to an Imgproxy
32
+ transformer.
33
+ """
34
+
35
+
36
+ class CourseListResponse(BaseModel):
37
+ id: str
38
+ """The ID of the course. Looks like cors_XXX"""
39
+
40
+ certificate_after_completion_enabled: Optional[bool] = None
41
+ """
42
+ Whether the course will award its students a PDF certificate after completing
43
+ all lessons
44
+ """
45
+
46
+ created_at: datetime
47
+ """The timestamp of when the course was created"""
48
+
49
+ description: Optional[str] = None
50
+ """A short description of the course"""
51
+
52
+ language: Languages
53
+ """
54
+ The language spoken in the video content of the course, used to generate closed
55
+ captions in the right language
56
+ """
57
+
58
+ require_completing_lessons_in_order: bool
59
+ """
60
+ Whether the course requires students to complete the previous lesson before
61
+ moving on to the next one
62
+ """
63
+
64
+ tagline: Optional[str] = None
65
+ """A short tagline for the course.
66
+
67
+ It is displayed under the course title in the UI
68
+ """
69
+
70
+ thumbnail: Optional[Thumbnail] = None
71
+ """The thumbnail for the course"""
72
+
73
+ title: Optional[str] = None
74
+ """The title of the course"""
75
+
76
+ updated_at: datetime
77
+ """The timestamp of when the course was last updated"""
@@ -0,0 +1,89 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable, Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ from .languages import Languages
9
+
10
+ __all__ = ["CourseUpdateParams", "Chapter", "ChapterLesson", "Thumbnail"]
11
+
12
+
13
+ class CourseUpdateParams(TypedDict, total=False):
14
+ certificate_after_completion_enabled: Optional[bool]
15
+ """
16
+ Whether the course will award its students a PDF certificate after completing
17
+ all lessons
18
+ """
19
+
20
+ chapters: Optional[Iterable[Chapter]]
21
+ """The chapters and lessons to update"""
22
+
23
+ cover_image: Optional[str]
24
+ """The cover image URL of the course"""
25
+
26
+ description: Optional[str]
27
+ """A short description of the course"""
28
+
29
+ language: Optional[Languages]
30
+ """The available languages for a course"""
31
+
32
+ require_completing_lessons_in_order: Optional[bool]
33
+ """
34
+ Whether the course requires students to complete the previous lesson before
35
+ moving on to the next one
36
+ """
37
+
38
+ tagline: Optional[str]
39
+ """A short tagline for the course"""
40
+
41
+ thumbnail: Optional[Thumbnail]
42
+ """The thumbnail for the course in png, jpeg, or gif format"""
43
+
44
+ title: Optional[str]
45
+ """The title of the course"""
46
+
47
+
48
+ class ChapterLesson(TypedDict, total=False):
49
+ id: Required[str]
50
+ """The ID of the lesson to update"""
51
+
52
+ chapter_id: Required[str]
53
+ """The ID of the chapter this lesson belongs to (for moving between chapters)"""
54
+
55
+ order: Required[int]
56
+ """The order of the lesson within its chapter"""
57
+
58
+ title: Required[str]
59
+ """The title of the lesson"""
60
+
61
+
62
+ class Chapter(TypedDict, total=False):
63
+ id: Required[str]
64
+ """The ID of the chapter to update"""
65
+
66
+ order: Required[int]
67
+ """The order of the chapter within its course"""
68
+
69
+ title: Required[str]
70
+ """The title of the chapter"""
71
+
72
+ lessons: Optional[Iterable[ChapterLesson]]
73
+ """The lessons to update within this chapter"""
74
+
75
+
76
+ class Thumbnail(TypedDict, total=False):
77
+ id: Optional[str]
78
+ """The ID of an existing attachment object.
79
+
80
+ Use this when updating a resource and keeping a subset of the attachments. Don't
81
+ use this unless you know what you're doing.
82
+ """
83
+
84
+ direct_upload_id: Optional[str]
85
+ """This ID should be used the first time you upload an attachment.
86
+
87
+ It is the ID of the direct upload that was created when uploading the file to S3
88
+ via the mediaDirectUpload mutation.
89
+ """
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryApprovedWebhookEvent"]
10
+
11
+
12
+ class EntryApprovedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.approved"]
26
+ """The webhook event type"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryCreatedWebhookEvent"]
10
+
11
+
12
+ class EntryCreatedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.created"]
26
+ """The webhook event type"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryDeletedWebhookEvent"]
10
+
11
+
12
+ class EntryDeletedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.deleted"]
26
+ """The webhook event type"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.entry import Entry
8
+
9
+ __all__ = ["EntryDeniedWebhookEvent"]
10
+
11
+
12
+ class EntryDeniedWebhookEvent(BaseModel):
13
+ id: str
14
+ """A unique ID for every single webhook request"""
15
+
16
+ api_version: Literal["v1"]
17
+ """The API version for this webhook"""
18
+
19
+ data: Entry
20
+ """An object representing an entry in a waitlist."""
21
+
22
+ timestamp: datetime
23
+ """The timestamp in ISO 8601 format that the webhook was sent at on the server"""
24
+
25
+ type: Literal["entry.denied"]
26
+ """The webhook event type"""
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
7
+
8
+ __all__ = ["ExperienceDuplicateParams"]
9
+
10
+
11
+ class ExperienceDuplicateParams(TypedDict, total=False):
12
+ name: Optional[str]
13
+ """The name of the new experience"""
@@ -5,13 +5,28 @@ from datetime import datetime
5
5
 
6
6
  from .._models import BaseModel
7
7
 
8
- __all__ = ["ExperienceListResponse", "App", "Company"]
8
+ __all__ = ["ExperienceListResponse", "App", "AppIcon", "Company", "Image"]
9
+
10
+
11
+ class AppIcon(BaseModel):
12
+ url: Optional[str] = None
13
+ """This is the URL you use to render optimized attachments on the client.
14
+
15
+ This should be used for apps.
16
+ """
9
17
 
10
18
 
11
19
  class App(BaseModel):
12
20
  id: str
13
21
  """The ID of the app"""
14
22
 
23
+ icon: Optional[AppIcon] = None
24
+ """The icon for the app.
25
+
26
+ This icon is shown on discovery, on the product page, on checkout, and as a
27
+ default icon for the experiences.
28
+ """
29
+
15
30
  name: str
16
31
  """The name of the app"""
17
32
 
@@ -27,6 +42,14 @@ class Company(BaseModel):
27
42
  """The title of the company."""
28
43
 
29
44
 
45
+ class Image(BaseModel):
46
+ url: Optional[str] = None
47
+ """This is the URL you use to render optimized attachments on the client.
48
+
49
+ This should be used for apps.
50
+ """
51
+
52
+
30
53
  class ExperienceListResponse(BaseModel):
31
54
  id: str
32
55
  """The unique ID representing this experience"""
@@ -40,6 +63,9 @@ class ExperienceListResponse(BaseModel):
40
63
  created_at: datetime
41
64
  """The timestamp of when this experience was created."""
42
65
 
66
+ image: Optional[Image] = None
67
+ """The logo for the experience."""
68
+
43
69
  name: str
44
70
  """The written name of the description."""
45
71
 
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ __all__ = ["ForumListParams"]
9
+
10
+
11
+ class ForumListParams(TypedDict, total=False):
12
+ company_id: Required[str]
13
+ """The ID of the company to list forums for"""
14
+
15
+ after: Optional[str]
16
+ """Returns the elements in the list that come after the specified cursor."""
17
+
18
+ before: Optional[str]
19
+ """Returns the elements in the list that come before the specified cursor."""
20
+
21
+ first: Optional[int]
22
+ """Returns the first _n_ elements from the list."""
23
+
24
+ last: Optional[int]
25
+ """Returns the last _n_ elements from the list."""
26
+
27
+ product_id: Optional[str]
28
+ """If provided, only forums connected to this product are returned"""
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+ from .shared.who_can_post_types import WhoCanPostTypes
5
+ from .shared.who_can_comment_types import WhoCanCommentTypes
6
+ from .shared.email_notification_preferences import EmailNotificationPreferences
7
+
8
+ __all__ = ["ForumListResponse", "Experience"]
9
+
10
+
11
+ class Experience(BaseModel):
12
+ id: str
13
+ """The unique ID representing this experience"""
14
+
15
+ name: str
16
+ """The written name of the description."""
17
+
18
+
19
+ class ForumListResponse(BaseModel):
20
+ id: str
21
+ """The unique identifier for the entity"""
22
+
23
+ email_notification_preference: EmailNotificationPreferences
24
+ """The email notification preference for this forum"""
25
+
26
+ experience: Experience
27
+ """The experience for this forum"""
28
+
29
+ who_can_comment: WhoCanCommentTypes
30
+ """Who can comment on this forum"""
31
+
32
+ who_can_post: WhoCanPostTypes
33
+ """Who can post on this forum"""
@@ -1,6 +1,7 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from typing import Optional
4
+ from datetime import datetime
4
5
 
5
6
  from .._models import BaseModel
6
7
 
@@ -28,6 +29,9 @@ class ForumPostListResponse(BaseModel):
28
29
  content: Optional[str] = None
29
30
  """The content of the forum post in Markdown format"""
30
31
 
32
+ created_at: datetime
33
+ """The timestamp when the post was created"""
34
+
31
35
  is_edited: bool
32
36
  """Whether the forum post has been edited"""
33
37
 
@@ -46,6 +50,9 @@ class ForumPostListResponse(BaseModel):
46
50
  title: Optional[str] = None
47
51
  """The title of the forum post"""
48
52
 
53
+ updated_at: datetime
54
+ """The timestamp when the post was last updated"""
55
+
49
56
  user: User
50
57
  """The user who created this forum post"""
51
58
 
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable, Optional
6
+ from typing_extensions import TypedDict
7
+
8
+ __all__ = ["ForumPostUpdateParams", "Attachment"]
9
+
10
+
11
+ class ForumPostUpdateParams(TypedDict, total=False):
12
+ attachments: Optional[Iterable[Attachment]]
13
+ """The attachments for this post"""
14
+
15
+ content: Optional[str]
16
+ """This is the main body of the post in Markdown format.
17
+
18
+ Hidden if paywalled and user hasn't purchased access to it.
19
+ """
20
+
21
+ is_pinned: Optional[bool]
22
+ """Whether the post is pinned. You can only pin a top level posts (not comments)."""
23
+
24
+ title: Optional[str]
25
+ """The title of the post. Only visible if paywalled."""
26
+
27
+
28
+ class Attachment(TypedDict, total=False):
29
+ id: Optional[str]
30
+ """The ID of an existing attachment object.
31
+
32
+ Use this when updating a resource and keeping a subset of the attachments. Don't
33
+ use this unless you know what you're doing.
34
+ """
35
+
36
+ direct_upload_id: Optional[str]
37
+ """This ID should be used the first time you upload an attachment.
38
+
39
+ It is the ID of the direct upload that was created when uploading the file to S3
40
+ via the mediaDirectUpload mutation.
41
+ """
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
7
+
8
+ from .shared.who_can_post_types import WhoCanPostTypes
9
+ from .shared.who_can_comment_types import WhoCanCommentTypes
10
+ from .shared.email_notification_preferences import EmailNotificationPreferences
11
+
12
+ __all__ = ["ForumUpdateParams"]
13
+
14
+
15
+ class ForumUpdateParams(TypedDict, total=False):
16
+ email_notification_preference: Optional[EmailNotificationPreferences]
17
+ """Email notification preference option for a forum feed"""
18
+
19
+ who_can_comment: Optional[WhoCanCommentTypes]
20
+ """Who can comment on a forum feed"""
21
+
22
+ who_can_post: Optional[WhoCanPostTypes]
23
+ """Who can post on a forum feed"""
@@ -108,7 +108,11 @@ class Plan(TypedDict, total=False):
108
108
  """The interval at which the plan charges (expiration plans)."""
109
109
 
110
110
  initial_price: Optional[float]
111
- """An additional amount charged upon first purchase."""
111
+ """An additional amount charged upon first purchase.
112
+
113
+ Use only if a one time payment OR you want to charge an additional amount on top
114
+ of the renewal price. Provided as a number in dollars. Eg: 10.43 for $10.43
115
+ """
112
116
 
113
117
  internal_notes: Optional[str]
114
118
  """A personal description or notes section for the business."""
@@ -120,7 +124,11 @@ class Plan(TypedDict, total=False):
120
124
  """The methods of how a plan can be released."""
121
125
 
122
126
  renewal_price: Optional[float]
123
- """The amount the customer is charged every billing period."""
127
+ """The amount the customer is charged every billing period.
128
+
129
+ Use only if a recurring payment. Provided as a number in dollars. Eg: 10.43 for
130
+ $10.43
131
+ """
124
132
 
125
133
  trial_period_days: Optional[int]
126
134
  """The number of free trial days added before a renewal plan."""
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["Languages"]
6
+
7
+ Languages: TypeAlias = Literal[
8
+ "en",
9
+ "es",
10
+ "it",
11
+ "pt",
12
+ "de",
13
+ "fr",
14
+ "pl",
15
+ "ru",
16
+ "nl",
17
+ "ca",
18
+ "tr",
19
+ "sv",
20
+ "uk",
21
+ "no",
22
+ "fi",
23
+ "sk",
24
+ "el",
25
+ "cs",
26
+ "hr",
27
+ "da",
28
+ "ro",
29
+ "bg",
30
+ ]
@@ -62,7 +62,21 @@ class LedgerAccountRetrieveResponse(BaseModel):
62
62
  balances: List[Balance]
63
63
  """The balances associated with the account."""
64
64
 
65
- ledger_account_audit_status: Optional[Literal["reserves_imposed", "requested_more_information"]] = None
65
+ ledger_account_audit_status: Optional[
66
+ Literal[
67
+ "pending",
68
+ "approved",
69
+ "reserves_imposed",
70
+ "suspended",
71
+ "ignored",
72
+ "rejected",
73
+ "requested_more_information",
74
+ "information_submitted",
75
+ "requested_tos_violation_correction",
76
+ "clawback_attempted",
77
+ "awaiting_sales_review",
78
+ ]
79
+ ] = None
66
80
  """The different statuses a LedgerAccountAudit can be"""
67
81
 
68
82
  ledger_type: Literal["primary", "pool"]