whop-sdk 0.0.1__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 (212) hide show
  1. whop_sdk/__init__.py +94 -0
  2. whop_sdk/_base_client.py +1995 -0
  3. whop_sdk/_client.py +664 -0
  4. whop_sdk/_compat.py +219 -0
  5. whop_sdk/_constants.py +14 -0
  6. whop_sdk/_exceptions.py +112 -0
  7. whop_sdk/_files.py +123 -0
  8. whop_sdk/_models.py +835 -0
  9. whop_sdk/_qs.py +150 -0
  10. whop_sdk/_resource.py +43 -0
  11. whop_sdk/_response.py +830 -0
  12. whop_sdk/_streaming.py +333 -0
  13. whop_sdk/_types.py +260 -0
  14. whop_sdk/_utils/__init__.py +64 -0
  15. whop_sdk/_utils/_compat.py +45 -0
  16. whop_sdk/_utils/_datetime_parse.py +136 -0
  17. whop_sdk/_utils/_logs.py +25 -0
  18. whop_sdk/_utils/_proxy.py +65 -0
  19. whop_sdk/_utils/_reflection.py +42 -0
  20. whop_sdk/_utils/_resources_proxy.py +24 -0
  21. whop_sdk/_utils/_streams.py +12 -0
  22. whop_sdk/_utils/_sync.py +86 -0
  23. whop_sdk/_utils/_transform.py +457 -0
  24. whop_sdk/_utils/_typing.py +156 -0
  25. whop_sdk/_utils/_utils.py +421 -0
  26. whop_sdk/_version.py +4 -0
  27. whop_sdk/lib/.keep +4 -0
  28. whop_sdk/pagination.py +61 -0
  29. whop_sdk/py.typed +0 -0
  30. whop_sdk/resources/__init__.py +316 -0
  31. whop_sdk/resources/app_builds.py +562 -0
  32. whop_sdk/resources/apps.py +665 -0
  33. whop_sdk/resources/authorized_users.py +336 -0
  34. whop_sdk/resources/chat_channels.py +469 -0
  35. whop_sdk/resources/checkout_configurations.py +464 -0
  36. whop_sdk/resources/companies.py +171 -0
  37. whop_sdk/resources/course_lesson_interactions.py +343 -0
  38. whop_sdk/resources/entries.py +539 -0
  39. whop_sdk/resources/experiences.py +859 -0
  40. whop_sdk/resources/forum_posts.py +512 -0
  41. whop_sdk/resources/invoices.py +633 -0
  42. whop_sdk/resources/ledger_accounts.py +171 -0
  43. whop_sdk/resources/memberships.py +810 -0
  44. whop_sdk/resources/messages.py +446 -0
  45. whop_sdk/resources/payments.py +761 -0
  46. whop_sdk/resources/plans.py +906 -0
  47. whop_sdk/resources/products.py +969 -0
  48. whop_sdk/resources/reactions.py +423 -0
  49. whop_sdk/resources/shipments.py +451 -0
  50. whop_sdk/resources/support_channels.py +455 -0
  51. whop_sdk/resources/transfers.py +488 -0
  52. whop_sdk/resources/users.py +248 -0
  53. whop_sdk/resources/webhooks.py +69 -0
  54. whop_sdk/types/__init__.py +135 -0
  55. whop_sdk/types/app_build_create_params.py +59 -0
  56. whop_sdk/types/app_build_list_params.py +34 -0
  57. whop_sdk/types/app_build_list_response.py +50 -0
  58. whop_sdk/types/app_create_params.py +19 -0
  59. whop_sdk/types/app_list_params.py +54 -0
  60. whop_sdk/types/app_list_response.py +91 -0
  61. whop_sdk/types/app_update_params.py +58 -0
  62. whop_sdk/types/authorized_user_list_params.py +33 -0
  63. whop_sdk/types/authorized_user_list_response.py +33 -0
  64. whop_sdk/types/authorized_user_retrieve_response.py +33 -0
  65. whop_sdk/types/chat_channel_list_params.py +28 -0
  66. whop_sdk/types/chat_channel_list_response.py +43 -0
  67. whop_sdk/types/chat_channel_update_params.py +32 -0
  68. whop_sdk/types/checkout_configuration_create_params.py +129 -0
  69. whop_sdk/types/checkout_configuration_list_params.py +33 -0
  70. whop_sdk/types/checkout_configuration_list_response.py +66 -0
  71. whop_sdk/types/course_lesson_interaction_list_params.py +34 -0
  72. whop_sdk/types/entry_approve_response.py +10 -0
  73. whop_sdk/types/entry_list_params.py +44 -0
  74. whop_sdk/types/entry_list_response.py +56 -0
  75. whop_sdk/types/experience_attach_params.py +12 -0
  76. whop_sdk/types/experience_create_params.py +22 -0
  77. whop_sdk/types/experience_delete_response.py +7 -0
  78. whop_sdk/types/experience_detach_params.py +12 -0
  79. whop_sdk/types/experience_list_params.py +31 -0
  80. whop_sdk/types/experience_list_response.py +47 -0
  81. whop_sdk/types/experience_update_params.py +41 -0
  82. whop_sdk/types/forum_post_create_params.py +85 -0
  83. whop_sdk/types/forum_post_list_params.py +31 -0
  84. whop_sdk/types/forum_post_list_response.py +53 -0
  85. whop_sdk/types/invoice_create_params.py +137 -0
  86. whop_sdk/types/invoice_create_response.py +16 -0
  87. whop_sdk/types/invoice_created_webhook_event.py +26 -0
  88. whop_sdk/types/invoice_list_params.py +50 -0
  89. whop_sdk/types/invoice_paid_webhook_event.py +26 -0
  90. whop_sdk/types/invoice_past_due_webhook_event.py +26 -0
  91. whop_sdk/types/invoice_void_response.py +7 -0
  92. whop_sdk/types/invoice_voided_webhook_event.py +26 -0
  93. whop_sdk/types/ledger_account_retrieve_response.py +78 -0
  94. whop_sdk/types/membership_cancel_params.py +13 -0
  95. whop_sdk/types/membership_list_params.py +70 -0
  96. whop_sdk/types/membership_list_response.py +117 -0
  97. whop_sdk/types/membership_pause_params.py +16 -0
  98. whop_sdk/types/membership_update_params.py +13 -0
  99. whop_sdk/types/message_create_params.py +51 -0
  100. whop_sdk/types/message_list_params.py +30 -0
  101. whop_sdk/types/message_list_response.py +90 -0
  102. whop_sdk/types/payment_list_params.py +72 -0
  103. whop_sdk/types/payment_list_response.py +221 -0
  104. whop_sdk/types/payment_refund_params.py +13 -0
  105. whop_sdk/types/plan_create_params.py +106 -0
  106. whop_sdk/types/plan_delete_response.py +7 -0
  107. whop_sdk/types/plan_list_params.py +49 -0
  108. whop_sdk/types/plan_list_response.py +92 -0
  109. whop_sdk/types/plan_update_params.py +95 -0
  110. whop_sdk/types/product_create_params.py +170 -0
  111. whop_sdk/types/product_delete_response.py +7 -0
  112. whop_sdk/types/product_list_params.py +41 -0
  113. whop_sdk/types/product_update_params.py +90 -0
  114. whop_sdk/types/reaction_create_params.py +19 -0
  115. whop_sdk/types/reaction_list_params.py +25 -0
  116. whop_sdk/types/reaction_list_response.py +32 -0
  117. whop_sdk/types/shared/__init__.py +55 -0
  118. whop_sdk/types/shared/access_pass_type.py +7 -0
  119. whop_sdk/types/shared/app.py +159 -0
  120. whop_sdk/types/shared/app_build.py +50 -0
  121. whop_sdk/types/shared/app_build_platforms.py +7 -0
  122. whop_sdk/types/shared/app_build_statuses.py +7 -0
  123. whop_sdk/types/shared/app_statuses.py +7 -0
  124. whop_sdk/types/shared/app_view_type.py +7 -0
  125. whop_sdk/types/shared/authorized_user_roles.py +9 -0
  126. whop_sdk/types/shared/business_types.py +22 -0
  127. whop_sdk/types/shared/chat_channel.py +43 -0
  128. whop_sdk/types/shared/checkout_configuration.py +66 -0
  129. whop_sdk/types/shared/collection_method.py +7 -0
  130. whop_sdk/types/shared/company.py +71 -0
  131. whop_sdk/types/shared/course_lesson_interaction.py +44 -0
  132. whop_sdk/types/shared/course_lesson_interaction_list_item.py +44 -0
  133. whop_sdk/types/shared/currency.py +92 -0
  134. whop_sdk/types/shared/custom_cta.py +21 -0
  135. whop_sdk/types/shared/direction.py +7 -0
  136. whop_sdk/types/shared/dms_post_types.py +7 -0
  137. whop_sdk/types/shared/entry.py +70 -0
  138. whop_sdk/types/shared/entry_status.py +7 -0
  139. whop_sdk/types/shared/experience.py +66 -0
  140. whop_sdk/types/shared/forum_post.py +53 -0
  141. whop_sdk/types/shared/friendly_receipt_status.py +24 -0
  142. whop_sdk/types/shared/global_affiliate_status.py +7 -0
  143. whop_sdk/types/shared/industry_types.py +67 -0
  144. whop_sdk/types/shared/invoice.py +61 -0
  145. whop_sdk/types/shared/invoice_list_item.py +61 -0
  146. whop_sdk/types/shared/invoice_status.py +7 -0
  147. whop_sdk/types/shared/membership.py +117 -0
  148. whop_sdk/types/shared/membership_status.py +9 -0
  149. whop_sdk/types/shared/message.py +90 -0
  150. whop_sdk/types/shared/page_info.py +21 -0
  151. whop_sdk/types/shared/payment.py +211 -0
  152. whop_sdk/types/shared/plan.py +123 -0
  153. whop_sdk/types/shared/plan_type.py +7 -0
  154. whop_sdk/types/shared/product.py +124 -0
  155. whop_sdk/types/shared/product_list_item.py +49 -0
  156. whop_sdk/types/shared/promo_type.py +7 -0
  157. whop_sdk/types/shared/reaction.py +32 -0
  158. whop_sdk/types/shared/receipt_status.py +7 -0
  159. whop_sdk/types/shared/release_method.py +7 -0
  160. whop_sdk/types/shared/shipment.py +48 -0
  161. whop_sdk/types/shared/shipment_carrier.py +84 -0
  162. whop_sdk/types/shared/shipment_status.py +18 -0
  163. whop_sdk/types/shared/shipment_substatus.py +36 -0
  164. whop_sdk/types/shared/support_channel.py +39 -0
  165. whop_sdk/types/shared/tax_type.py +7 -0
  166. whop_sdk/types/shared/transfer.py +109 -0
  167. whop_sdk/types/shared/visibility.py +7 -0
  168. whop_sdk/types/shared/visibility_filter.py +9 -0
  169. whop_sdk/types/shared/who_can_post.py +7 -0
  170. whop_sdk/types/shared/who_can_react.py +7 -0
  171. whop_sdk/types/shared_params/__init__.py +27 -0
  172. whop_sdk/types/shared_params/access_pass_type.py +9 -0
  173. whop_sdk/types/shared_params/app_build_platforms.py +9 -0
  174. whop_sdk/types/shared_params/app_build_statuses.py +9 -0
  175. whop_sdk/types/shared_params/app_statuses.py +9 -0
  176. whop_sdk/types/shared_params/app_view_type.py +9 -0
  177. whop_sdk/types/shared_params/authorized_user_roles.py +11 -0
  178. whop_sdk/types/shared_params/business_types.py +24 -0
  179. whop_sdk/types/shared_params/collection_method.py +9 -0
  180. whop_sdk/types/shared_params/currency.py +94 -0
  181. whop_sdk/types/shared_params/custom_cta.py +23 -0
  182. whop_sdk/types/shared_params/direction.py +9 -0
  183. whop_sdk/types/shared_params/entry_status.py +9 -0
  184. whop_sdk/types/shared_params/friendly_receipt_status.py +26 -0
  185. whop_sdk/types/shared_params/global_affiliate_status.py +9 -0
  186. whop_sdk/types/shared_params/industry_types.py +69 -0
  187. whop_sdk/types/shared_params/invoice_status.py +9 -0
  188. whop_sdk/types/shared_params/membership_status.py +11 -0
  189. whop_sdk/types/shared_params/plan_type.py +9 -0
  190. whop_sdk/types/shared_params/receipt_status.py +9 -0
  191. whop_sdk/types/shared_params/release_method.py +9 -0
  192. whop_sdk/types/shared_params/tax_type.py +9 -0
  193. whop_sdk/types/shared_params/visibility.py +9 -0
  194. whop_sdk/types/shared_params/visibility_filter.py +11 -0
  195. whop_sdk/types/shared_params/who_can_post.py +9 -0
  196. whop_sdk/types/shared_params/who_can_react.py +9 -0
  197. whop_sdk/types/shipment_create_params.py +18 -0
  198. whop_sdk/types/shipment_list_params.py +31 -0
  199. whop_sdk/types/shipment_list_response.py +48 -0
  200. whop_sdk/types/support_channel_create_params.py +15 -0
  201. whop_sdk/types/support_channel_list_params.py +40 -0
  202. whop_sdk/types/support_channel_list_response.py +39 -0
  203. whop_sdk/types/transfer_create_params.py +36 -0
  204. whop_sdk/types/transfer_list_params.py +42 -0
  205. whop_sdk/types/transfer_list_response.py +35 -0
  206. whop_sdk/types/unwrap_webhook_event.py +15 -0
  207. whop_sdk/types/user_check_access_response.py +15 -0
  208. whop_sdk/types/user_retrieve_response.py +25 -0
  209. whop_sdk-0.0.1.dist-info/METADATA +522 -0
  210. whop_sdk-0.0.1.dist-info/RECORD +212 -0
  211. whop_sdk-0.0.1.dist-info/WHEEL +4 -0
  212. whop_sdk-0.0.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,91 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from .._models import BaseModel
6
+ from .shared.app_statuses import AppStatuses
7
+
8
+ __all__ = ["AppListResponse", "Company", "Creator"]
9
+
10
+
11
+ class Company(BaseModel):
12
+ id: str
13
+ """The ID (tag) of the company."""
14
+
15
+ title: str
16
+ """The title of the company."""
17
+
18
+
19
+ class Creator(BaseModel):
20
+ id: str
21
+ """The internal ID of the user."""
22
+
23
+ name: Optional[str] = None
24
+ """The name of the user from their Whop account."""
25
+
26
+ username: str
27
+ """The username of the user from their Whop account."""
28
+
29
+
30
+ class AppListResponse(BaseModel):
31
+ id: str
32
+ """The ID of the app"""
33
+
34
+ base_url: Optional[str] = None
35
+ """The base url of the app"""
36
+
37
+ company: Company
38
+ """The company that owns the app"""
39
+
40
+ creator: Creator
41
+ """The creator of the app"""
42
+
43
+ dashboard_path: Optional[str] = None
44
+ """The path part for a specific view of the app.
45
+
46
+ This is the template part of the url after the base domain. Eg:
47
+ /experiences/[experienceId]
48
+ """
49
+
50
+ description: Optional[str] = None
51
+ """The description of the app"""
52
+
53
+ discover_path: Optional[str] = None
54
+ """The path part for a specific view of the app.
55
+
56
+ This is the template part of the url after the base domain. Eg:
57
+ /experiences/[experienceId]
58
+ """
59
+
60
+ domain_id: str
61
+ """The unique part of the proxied domain for this app.
62
+
63
+ Used to generate the base url used to display the app inside the whop platform.
64
+ Refers to the id part in the final url: https://{domain_id}.apps.whop.com
65
+ """
66
+
67
+ experience_path: Optional[str] = None
68
+ """The path part for a specific view of the app.
69
+
70
+ This is the template part of the url after the base domain. Eg:
71
+ /experiences/[experienceId]
72
+ """
73
+
74
+ name: str
75
+ """The name of the app"""
76
+
77
+ status: AppStatuses
78
+ """If the status is live, the app is visible on Whop discovery.
79
+
80
+ In order to be live, you need to set the name, icon, and description. Being
81
+ unlisted or hidden means it's not visible on Whop but you can still install the
82
+ app via direct link. To remove the app from whop discovery, you should set the
83
+ status to unlisted.
84
+ """
85
+
86
+ verified: bool
87
+ """Whether this app has been verified by Whop.
88
+
89
+ Verified apps are endorsed by whop and are shown in the 'featured apps' section
90
+ of the app store.
91
+ """
@@ -0,0 +1,58 @@
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, Optional
6
+ from typing_extensions import Literal, TypedDict
7
+
8
+ from .shared.app_statuses import AppStatuses
9
+
10
+ __all__ = ["AppUpdateParams", "Icon"]
11
+
12
+
13
+ class AppUpdateParams(TypedDict, total=False):
14
+ app_store_description: Optional[str]
15
+ """The description of the app for the app store in-depth app view."""
16
+
17
+ base_url: Optional[str]
18
+ """The base production url of the app"""
19
+
20
+ dashboard_path: Optional[str]
21
+ """The path for the dashboard view of the app"""
22
+
23
+ description: Optional[str]
24
+ """The description of the app"""
25
+
26
+ discover_path: Optional[str]
27
+ """The path for the discover view of the app"""
28
+
29
+ experience_path: Optional[str]
30
+ """The path for the hub view of the app"""
31
+
32
+ icon: Optional[Icon]
33
+ """The icon for the app"""
34
+
35
+ name: Optional[str]
36
+ """The name of the app"""
37
+
38
+ required_scopes: Optional[List[Literal["read_user"]]]
39
+ """The scopes that the app will request off of users when a user installs the app."""
40
+
41
+ status: Optional[AppStatuses]
42
+ """The status of an experience interface"""
43
+
44
+
45
+ class Icon(TypedDict, total=False):
46
+ id: Optional[str]
47
+ """The ID of an existing attachment object.
48
+
49
+ Use this when updating a resource and keeping a subset of the attachments. Don't
50
+ use this unless you know what you're doing.
51
+ """
52
+
53
+ direct_upload_id: Optional[str]
54
+ """This ID should be used the first time you upload an attachment.
55
+
56
+ It is the ID of the direct upload that was created when uploading the file to S3
57
+ via the mediaDirectUpload mutation.
58
+ """
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ from .shared.authorized_user_roles import AuthorizedUserRoles
9
+
10
+ __all__ = ["AuthorizedUserListParams"]
11
+
12
+
13
+ class AuthorizedUserListParams(TypedDict, total=False):
14
+ company_id: Required[str]
15
+ """The ID of the company to list authorized users for"""
16
+
17
+ after: Optional[str]
18
+ """Returns the elements in the list that come after the specified cursor."""
19
+
20
+ before: Optional[str]
21
+ """Returns the elements in the list that come before the specified cursor."""
22
+
23
+ first: Optional[int]
24
+ """Returns the first _n_ elements from the list."""
25
+
26
+ last: Optional[int]
27
+ """Returns the last _n_ elements from the list."""
28
+
29
+ role: Optional[AuthorizedUserRoles]
30
+ """Possible roles an authorized user can have"""
31
+
32
+ user_id: Optional[str]
33
+ """Filter by the user ID to check if the user is an authorized user"""
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from .._models import BaseModel
6
+ from .shared.authorized_user_roles import AuthorizedUserRoles
7
+
8
+ __all__ = ["AuthorizedUserListResponse", "User"]
9
+
10
+
11
+ class User(BaseModel):
12
+ id: str
13
+ """The internal ID of the user."""
14
+
15
+ email: Optional[str] = None
16
+ """The email of the user"""
17
+
18
+ name: Optional[str] = None
19
+ """The name of the user from their Whop account."""
20
+
21
+ username: str
22
+ """The username of the user from their Whop account."""
23
+
24
+
25
+ class AuthorizedUserListResponse(BaseModel):
26
+ id: str
27
+ """A unique ID representing the authorized user object."""
28
+
29
+ role: AuthorizedUserRoles
30
+ """The role of the authorized user in the company."""
31
+
32
+ user: User
33
+ """The user associated with the authorized user."""
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from .._models import BaseModel
6
+ from .shared.authorized_user_roles import AuthorizedUserRoles
7
+
8
+ __all__ = ["AuthorizedUserRetrieveResponse", "User"]
9
+
10
+
11
+ class User(BaseModel):
12
+ id: str
13
+ """The internal ID of the user."""
14
+
15
+ email: Optional[str] = None
16
+ """The email of the user"""
17
+
18
+ name: Optional[str] = None
19
+ """The name of the user from their Whop account."""
20
+
21
+ username: str
22
+ """The username of the user from their Whop account."""
23
+
24
+
25
+ class AuthorizedUserRetrieveResponse(BaseModel):
26
+ id: str
27
+ """A unique ID representing the authorized user object."""
28
+
29
+ role: AuthorizedUserRoles
30
+ """The role of the authorized user in the company."""
31
+
32
+ user: User
33
+ """The user associated with the authorized user."""
@@ -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__ = ["ChatChannelListParams"]
9
+
10
+
11
+ class ChatChannelListParams(TypedDict, total=False):
12
+ company_id: Required[str]
13
+ """The ID of the company to list chat channels 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 chat channels connected to this product are returned"""
@@ -0,0 +1,43 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from .._models import BaseModel
6
+ from .shared.who_can_post import WhoCanPost
7
+ from .shared.who_can_react import WhoCanReact
8
+
9
+ __all__ = ["ChatChannelListResponse", "Experience"]
10
+
11
+
12
+ class Experience(BaseModel):
13
+ id: str
14
+ """The unique ID representing this experience"""
15
+
16
+ name: str
17
+ """The written name of the description."""
18
+
19
+
20
+ class ChatChannelListResponse(BaseModel):
21
+ id: str
22
+ """The unique identifier for the entity"""
23
+
24
+ ban_media: bool
25
+ """Whether or not media is banned in this chat"""
26
+
27
+ ban_urls: bool
28
+ """Whether or not URLs are banned in this chat"""
29
+
30
+ banned_words: List[str]
31
+ """List of banned words in this chat"""
32
+
33
+ experience: Experience
34
+ """The experience for this chat"""
35
+
36
+ user_posts_cooldown_seconds: Optional[int] = None
37
+ """The number of seconds a user needs to wait before posting again, if any"""
38
+
39
+ who_can_post: WhoCanPost
40
+ """Who can post on this chat"""
41
+
42
+ who_can_react: WhoCanReact
43
+ """Who can react on this chat"""
@@ -0,0 +1,32 @@
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 .._types import SequenceNotStr
9
+ from .shared.who_can_post import WhoCanPost
10
+ from .shared.who_can_react import WhoCanReact
11
+
12
+ __all__ = ["ChatChannelUpdateParams"]
13
+
14
+
15
+ class ChatChannelUpdateParams(TypedDict, total=False):
16
+ ban_media: Optional[bool]
17
+ """Whether media uploads are banned in this chat"""
18
+
19
+ ban_urls: Optional[bool]
20
+ """Whether URLs are banned in this chat"""
21
+
22
+ banned_words: Optional[SequenceNotStr[str]]
23
+ """List of banned words for this chat"""
24
+
25
+ user_posts_cooldown_seconds: Optional[int]
26
+ """The cooldown period in seconds between user posts"""
27
+
28
+ who_can_post: Optional[WhoCanPost]
29
+ """Who can post on a chat feed"""
30
+
31
+ who_can_react: Optional[WhoCanReact]
32
+ """Who can react on a chat feed"""
@@ -0,0 +1,129 @@
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 Dict, Iterable, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from .shared.currency import Currency
9
+ from .shared.tax_type import TaxType
10
+ from .shared.plan_type import PlanType
11
+ from .shared.visibility import Visibility
12
+ from .shared.release_method import ReleaseMethod
13
+
14
+ __all__ = ["CheckoutConfigurationCreateParams", "Plan", "PlanCustomField", "PlanImage"]
15
+
16
+
17
+ class CheckoutConfigurationCreateParams(TypedDict, total=False):
18
+ affiliate_code: Optional[str]
19
+ """The affiliate code to use for the checkout session"""
20
+
21
+ metadata: Optional[Dict[str, object]]
22
+ """The metadata to use for the checkout session"""
23
+
24
+ plan: Optional[Plan]
25
+ """Pass this object to create a new plan for this checkout session"""
26
+
27
+ plan_id: Optional[str]
28
+ """The ID of the plan to use for the checkout session"""
29
+
30
+ redirect_url: Optional[str]
31
+ """The URL to redirect the user to after the checkout session is created"""
32
+
33
+
34
+ class PlanCustomField(TypedDict, total=False):
35
+ field_type: Required[Literal["text"]]
36
+ """The type of the custom field."""
37
+
38
+ name: Required[str]
39
+ """The name of the custom field."""
40
+
41
+ id: Optional[str]
42
+ """The ID of the custom field (if being updated)"""
43
+
44
+ order: Optional[int]
45
+ """The order of the field."""
46
+
47
+ placeholder: Optional[str]
48
+ """The placeholder value of the field."""
49
+
50
+ required: Optional[bool]
51
+ """Whether or not the field is required."""
52
+
53
+
54
+ class PlanImage(TypedDict, total=False):
55
+ id: Optional[str]
56
+ """The ID of an existing attachment object.
57
+
58
+ Use this when updating a resource and keeping a subset of the attachments. Don't
59
+ use this unless you know what you're doing.
60
+ """
61
+
62
+ direct_upload_id: Optional[str]
63
+ """This ID should be used the first time you upload an attachment.
64
+
65
+ It is the ID of the direct upload that was created when uploading the file to S3
66
+ via the mediaDirectUpload mutation.
67
+ """
68
+
69
+
70
+ class Plan(TypedDict, total=False):
71
+ company_id: Required[str]
72
+ """The company the plan should be created for."""
73
+
74
+ billing_period: Optional[int]
75
+ """The interval at which the plan charges (renewal plans)."""
76
+
77
+ currency: Optional[Currency]
78
+ """The available currencies on the platform"""
79
+
80
+ custom_fields: Optional[Iterable[PlanCustomField]]
81
+ """An array of custom field objects."""
82
+
83
+ description: Optional[str]
84
+ """The description of the plan."""
85
+
86
+ expiration_days: Optional[int]
87
+ """The interval at which the plan charges (expiration plans)."""
88
+
89
+ force_create_new_plan: Optional[bool]
90
+ """
91
+ Whether to force the creation of a new plan even if one with the same attributes
92
+ already exists.
93
+ """
94
+
95
+ image: Optional[PlanImage]
96
+ """An image for the plan. This will be visible on the product page to customers."""
97
+
98
+ initial_price: Optional[float]
99
+ """An additional amount charged upon first purchase."""
100
+
101
+ internal_notes: Optional[str]
102
+ """A personal description or notes section for the business."""
103
+
104
+ override_tax_type: Optional[TaxType]
105
+ """
106
+ Whether or not the tax is included in a plan's price (or if it hasn't been set
107
+ up)
108
+ """
109
+
110
+ plan_type: Optional[PlanType]
111
+ """The type of plan that can be attached to an access pass"""
112
+
113
+ product_id: Optional[str]
114
+ """The product the plan is related to."""
115
+
116
+ release_method: Optional[ReleaseMethod]
117
+ """The methods of how a plan can be released."""
118
+
119
+ renewal_price: Optional[float]
120
+ """The amount the customer is charged every billing period."""
121
+
122
+ title: Optional[str]
123
+ """The title of the plan. This will be visible on the product page to customers."""
124
+
125
+ trial_period_days: Optional[int]
126
+ """The number of free trial days added before a renewal plan."""
127
+
128
+ visibility: Optional[Visibility]
129
+ """Visibility of a resource"""
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ from .shared.direction import Direction
9
+
10
+ __all__ = ["CheckoutConfigurationListParams"]
11
+
12
+
13
+ class CheckoutConfigurationListParams(TypedDict, total=False):
14
+ company_id: Required[str]
15
+ """The ID of the company to list checkout configurations for"""
16
+
17
+ after: Optional[str]
18
+ """Returns the elements in the list that come after the specified cursor."""
19
+
20
+ before: Optional[str]
21
+ """Returns the elements in the list that come before the specified cursor."""
22
+
23
+ direction: Optional[Direction]
24
+ """The direction of the sort."""
25
+
26
+ first: Optional[int]
27
+ """Returns the first _n_ elements from the list."""
28
+
29
+ last: Optional[int]
30
+ """Returns the last _n_ elements from the list."""
31
+
32
+ plan_id: Optional[str]
33
+ """The ID of the plan to filter checkout configurations by"""
@@ -0,0 +1,66 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Optional
4
+
5
+ from .._models import BaseModel
6
+ from .shared.currency import Currency
7
+ from .shared.plan_type import PlanType
8
+ from .shared.visibility import Visibility
9
+ from .shared.release_method import ReleaseMethod
10
+
11
+ __all__ = ["CheckoutConfigurationListResponse", "Plan"]
12
+
13
+
14
+ class Plan(BaseModel):
15
+ id: str
16
+ """The internal ID of the plan."""
17
+
18
+ billing_period: Optional[int] = None
19
+ """The interval at which the plan charges (renewal plans)."""
20
+
21
+ currency: Currency
22
+ """The respective currency identifier for the plan."""
23
+
24
+ expiration_days: Optional[int] = None
25
+ """The interval at which the plan charges (expiration plans)."""
26
+
27
+ initial_price: float
28
+ """The price a person has to pay for a plan on the initial purchase."""
29
+
30
+ plan_type: PlanType
31
+ """Indicates if the plan is a one time payment or recurring."""
32
+
33
+ release_method: ReleaseMethod
34
+ """This is the release method the business uses to sell this plan."""
35
+
36
+ renewal_price: float
37
+ """The price a person has to pay for a plan on the renewal purchase."""
38
+
39
+ trial_period_days: Optional[int] = None
40
+ """The number of free trial days added before a renewal plan."""
41
+
42
+ visibility: Visibility
43
+ """Shows or hides the plan from public/business view."""
44
+
45
+
46
+ class CheckoutConfigurationListResponse(BaseModel):
47
+ id: str
48
+ """The ID of the checkout session"""
49
+
50
+ affiliate_code: str
51
+ """The affiliate code to use for the checkout session"""
52
+
53
+ company_id: str
54
+ """The ID of the company to use for the checkout session"""
55
+
56
+ metadata: Dict[str, object]
57
+ """The metadata to use for the checkout session"""
58
+
59
+ plan: Plan
60
+ """The plan to use for the checkout session"""
61
+
62
+ purchase_url: str
63
+ """The URL to redirect the user to after the checkout session is created"""
64
+
65
+ redirect_url: str
66
+ """The URL to redirect the user to after the checkout session is created"""
@@ -0,0 +1,34 @@
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__ = ["CourseLessonInteractionListParams"]
9
+
10
+
11
+ class CourseLessonInteractionListParams(TypedDict, total=False):
12
+ after: Optional[str]
13
+ """Returns the elements in the list that come after the specified cursor."""
14
+
15
+ before: Optional[str]
16
+ """Returns the elements in the list that come before the specified cursor."""
17
+
18
+ completed: Optional[bool]
19
+ """Whether the lesson has been completed by the user"""
20
+
21
+ course_id: Optional[str]
22
+ """The ID of the course to list course lesson interactions for"""
23
+
24
+ first: Optional[int]
25
+ """Returns the first _n_ elements from the list."""
26
+
27
+ last: Optional[int]
28
+ """Returns the last _n_ elements from the list."""
29
+
30
+ lesson_id: Optional[str]
31
+ """The ID of the lesson to list course lesson interactions for"""
32
+
33
+ user_id: Optional[str]
34
+ """The ID of the user to list course lesson interactions for"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+
5
+ __all__ = ["EntryApproveResponse"]
6
+
7
+
8
+ class EntryApproveResponse(BaseModel):
9
+ job_id: str
10
+ """The ID of the job."""
@@ -0,0 +1,44 @@
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, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+ from .shared.direction import Direction
10
+ from .shared.entry_status import EntryStatus
11
+
12
+ __all__ = ["EntryListParams"]
13
+
14
+
15
+ class EntryListParams(TypedDict, total=False):
16
+ company_id: Required[str]
17
+ """The ID of the company"""
18
+
19
+ after: Optional[str]
20
+ """Returns the elements in the list that come after the specified cursor."""
21
+
22
+ before: Optional[str]
23
+ """Returns the elements in the list that come before the specified cursor."""
24
+
25
+ direction: Optional[Direction]
26
+ """The direction of the sort."""
27
+
28
+ first: Optional[int]
29
+ """Returns the first _n_ elements from the list."""
30
+
31
+ last: Optional[int]
32
+ """Returns the last _n_ elements from the list."""
33
+
34
+ order: Optional[Literal["id", "created_at"]]
35
+ """Which columns can be used to sort."""
36
+
37
+ plan_ids: Optional[SequenceNotStr[str]]
38
+ """The plan IDs to filter the entries by"""
39
+
40
+ product_ids: Optional[SequenceNotStr[str]]
41
+ """The product IDs to filter the entries by"""
42
+
43
+ statuses: Optional[List[EntryStatus]]
44
+ """The statuses to filter the entries by"""