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,429 @@
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
8
+
9
+ import httpx
10
+
11
+ from ..types import member_list_params
12
+ from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
13
+ from .._utils import maybe_transform
14
+ from .._compat import cached_property
15
+ from .._resource import SyncAPIResource, AsyncAPIResource
16
+ from .._response import (
17
+ to_raw_response_wrapper,
18
+ to_streamed_response_wrapper,
19
+ async_to_raw_response_wrapper,
20
+ async_to_streamed_response_wrapper,
21
+ )
22
+ from ..pagination import SyncCursorPage, AsyncCursorPage
23
+ from .._base_client import AsyncPaginator, make_request_options
24
+ from ..types.shared.direction import Direction
25
+ from ..types.shared.access_level import AccessLevel
26
+ from ..types.member_list_response import MemberListResponse
27
+ from ..types.shared.member_statuses import MemberStatuses
28
+ from ..types.member_retrieve_response import MemberRetrieveResponse
29
+ from ..types.shared.member_most_recent_actions import MemberMostRecentActions
30
+
31
+ __all__ = ["MembersResource", "AsyncMembersResource"]
32
+
33
+
34
+ class MembersResource(SyncAPIResource):
35
+ @cached_property
36
+ def with_raw_response(self) -> MembersResourceWithRawResponse:
37
+ """
38
+ This property can be used as a prefix for any HTTP method call to return
39
+ the raw response object instead of the parsed content.
40
+
41
+ For more information, see https://www.github.com/whopio/whopsdk-python#accessing-raw-response-data-eg-headers
42
+ """
43
+ return MembersResourceWithRawResponse(self)
44
+
45
+ @cached_property
46
+ def with_streaming_response(self) -> MembersResourceWithStreamingResponse:
47
+ """
48
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
49
+
50
+ For more information, see https://www.github.com/whopio/whopsdk-python#with_streaming_response
51
+ """
52
+ return MembersResourceWithStreamingResponse(self)
53
+
54
+ def retrieve(
55
+ self,
56
+ id: str,
57
+ *,
58
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
59
+ # The extra values given here take precedence over values defined on the client or passed to this method.
60
+ extra_headers: Headers | None = None,
61
+ extra_query: Query | None = None,
62
+ extra_body: Body | None = None,
63
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
64
+ ) -> MemberRetrieveResponse:
65
+ """
66
+ Retrieves a member of a company by ID
67
+
68
+ Required permissions:
69
+
70
+ - `member:basic:read`
71
+ - `member:email:read`
72
+ - `member:phone:read`
73
+
74
+ Args:
75
+ extra_headers: Send extra headers
76
+
77
+ extra_query: Add additional query parameters to the request
78
+
79
+ extra_body: Add additional JSON properties to the request
80
+
81
+ timeout: Override the client-level default timeout for this request, in seconds
82
+ """
83
+ if not id:
84
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
85
+ return self._get(
86
+ f"/members/{id}",
87
+ options=make_request_options(
88
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
89
+ ),
90
+ cast_to=MemberRetrieveResponse,
91
+ )
92
+
93
+ def list(
94
+ self,
95
+ *,
96
+ company_id: str,
97
+ access_level: Optional[AccessLevel] | Omit = omit,
98
+ access_pass_ids: Optional[SequenceNotStr[str]] | Omit = omit,
99
+ after: Optional[str] | Omit = omit,
100
+ before: Optional[str] | Omit = omit,
101
+ created_after: Union[str, datetime, None] | Omit = omit,
102
+ created_before: Union[str, datetime, None] | Omit = omit,
103
+ direction: Optional[Direction] | Omit = omit,
104
+ first: Optional[int] | Omit = omit,
105
+ last: Optional[int] | Omit = omit,
106
+ most_recent_actions: Optional[List[MemberMostRecentActions]] | Omit = omit,
107
+ order: Optional[Literal["id", "usd_total_spent", "created_at", "joined_at", "most_recent_action"]]
108
+ | Omit = omit,
109
+ plan_ids: Optional[SequenceNotStr[str]] | Omit = omit,
110
+ promo_code_ids: Optional[SequenceNotStr[str]] | Omit = omit,
111
+ query: Optional[str] | Omit = omit,
112
+ statuses: Optional[List[MemberStatuses]] | Omit = omit,
113
+ user_ids: Optional[SequenceNotStr[str]] | Omit = omit,
114
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
115
+ # The extra values given here take precedence over values defined on the client or passed to this method.
116
+ extra_headers: Headers | None = None,
117
+ extra_query: Query | None = None,
118
+ extra_body: Body | None = None,
119
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
120
+ ) -> SyncCursorPage[MemberListResponse]:
121
+ """
122
+ List the members of a company
123
+
124
+ Required permissions:
125
+
126
+ - `member:basic:read`
127
+ - `member:email:read`
128
+ - `member:phone:read`
129
+
130
+ Args:
131
+ company_id: The ID of the company to list members for
132
+
133
+ access_level: The access level a given user (or company) has to an access pass or company.
134
+
135
+ access_pass_ids: The access pass IDs to filter the members by
136
+
137
+ after: Returns the elements in the list that come after the specified cursor.
138
+
139
+ before: Returns the elements in the list that come before the specified cursor.
140
+
141
+ created_after: The minimum creation date to filter by
142
+
143
+ created_before: The maximum creation date to filter by
144
+
145
+ direction: The direction of the sort.
146
+
147
+ first: Returns the first _n_ elements from the list.
148
+
149
+ last: Returns the last _n_ elements from the list.
150
+
151
+ most_recent_actions: The most recent actions to filter the members by
152
+
153
+ order: Which columns can be used to sort.
154
+
155
+ plan_ids: The plan IDs to filter the members by
156
+
157
+ promo_code_ids: The promo code IDs to filter the members by
158
+
159
+ query: The name, username, or email to filter the members by. The email filter will
160
+ only apply if the current actor has the `member:email:read` permission.
161
+
162
+ statuses: The statuses to filter the members by
163
+
164
+ user_ids: The user IDs to filter the members by
165
+
166
+ extra_headers: Send extra headers
167
+
168
+ extra_query: Add additional query parameters to the request
169
+
170
+ extra_body: Add additional JSON properties to the request
171
+
172
+ timeout: Override the client-level default timeout for this request, in seconds
173
+ """
174
+ return self._get_api_list(
175
+ "/members",
176
+ page=SyncCursorPage[MemberListResponse],
177
+ options=make_request_options(
178
+ extra_headers=extra_headers,
179
+ extra_query=extra_query,
180
+ extra_body=extra_body,
181
+ timeout=timeout,
182
+ query=maybe_transform(
183
+ {
184
+ "company_id": company_id,
185
+ "access_level": access_level,
186
+ "access_pass_ids": access_pass_ids,
187
+ "after": after,
188
+ "before": before,
189
+ "created_after": created_after,
190
+ "created_before": created_before,
191
+ "direction": direction,
192
+ "first": first,
193
+ "last": last,
194
+ "most_recent_actions": most_recent_actions,
195
+ "order": order,
196
+ "plan_ids": plan_ids,
197
+ "promo_code_ids": promo_code_ids,
198
+ "query": query,
199
+ "statuses": statuses,
200
+ "user_ids": user_ids,
201
+ },
202
+ member_list_params.MemberListParams,
203
+ ),
204
+ ),
205
+ model=MemberListResponse,
206
+ )
207
+
208
+
209
+ class AsyncMembersResource(AsyncAPIResource):
210
+ @cached_property
211
+ def with_raw_response(self) -> AsyncMembersResourceWithRawResponse:
212
+ """
213
+ This property can be used as a prefix for any HTTP method call to return
214
+ the raw response object instead of the parsed content.
215
+
216
+ For more information, see https://www.github.com/whopio/whopsdk-python#accessing-raw-response-data-eg-headers
217
+ """
218
+ return AsyncMembersResourceWithRawResponse(self)
219
+
220
+ @cached_property
221
+ def with_streaming_response(self) -> AsyncMembersResourceWithStreamingResponse:
222
+ """
223
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
224
+
225
+ For more information, see https://www.github.com/whopio/whopsdk-python#with_streaming_response
226
+ """
227
+ return AsyncMembersResourceWithStreamingResponse(self)
228
+
229
+ async def retrieve(
230
+ self,
231
+ id: str,
232
+ *,
233
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
234
+ # The extra values given here take precedence over values defined on the client or passed to this method.
235
+ extra_headers: Headers | None = None,
236
+ extra_query: Query | None = None,
237
+ extra_body: Body | None = None,
238
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
239
+ ) -> MemberRetrieveResponse:
240
+ """
241
+ Retrieves a member of a company by ID
242
+
243
+ Required permissions:
244
+
245
+ - `member:basic:read`
246
+ - `member:email:read`
247
+ - `member:phone:read`
248
+
249
+ Args:
250
+ extra_headers: Send extra headers
251
+
252
+ extra_query: Add additional query parameters to the request
253
+
254
+ extra_body: Add additional JSON properties to the request
255
+
256
+ timeout: Override the client-level default timeout for this request, in seconds
257
+ """
258
+ if not id:
259
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
260
+ return await self._get(
261
+ f"/members/{id}",
262
+ options=make_request_options(
263
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
264
+ ),
265
+ cast_to=MemberRetrieveResponse,
266
+ )
267
+
268
+ def list(
269
+ self,
270
+ *,
271
+ company_id: str,
272
+ access_level: Optional[AccessLevel] | Omit = omit,
273
+ access_pass_ids: Optional[SequenceNotStr[str]] | Omit = omit,
274
+ after: Optional[str] | Omit = omit,
275
+ before: Optional[str] | Omit = omit,
276
+ created_after: Union[str, datetime, None] | Omit = omit,
277
+ created_before: Union[str, datetime, None] | Omit = omit,
278
+ direction: Optional[Direction] | Omit = omit,
279
+ first: Optional[int] | Omit = omit,
280
+ last: Optional[int] | Omit = omit,
281
+ most_recent_actions: Optional[List[MemberMostRecentActions]] | Omit = omit,
282
+ order: Optional[Literal["id", "usd_total_spent", "created_at", "joined_at", "most_recent_action"]]
283
+ | Omit = omit,
284
+ plan_ids: Optional[SequenceNotStr[str]] | Omit = omit,
285
+ promo_code_ids: Optional[SequenceNotStr[str]] | Omit = omit,
286
+ query: Optional[str] | Omit = omit,
287
+ statuses: Optional[List[MemberStatuses]] | Omit = omit,
288
+ user_ids: Optional[SequenceNotStr[str]] | Omit = omit,
289
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
290
+ # The extra values given here take precedence over values defined on the client or passed to this method.
291
+ extra_headers: Headers | None = None,
292
+ extra_query: Query | None = None,
293
+ extra_body: Body | None = None,
294
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
295
+ ) -> AsyncPaginator[MemberListResponse, AsyncCursorPage[MemberListResponse]]:
296
+ """
297
+ List the members of a company
298
+
299
+ Required permissions:
300
+
301
+ - `member:basic:read`
302
+ - `member:email:read`
303
+ - `member:phone:read`
304
+
305
+ Args:
306
+ company_id: The ID of the company to list members for
307
+
308
+ access_level: The access level a given user (or company) has to an access pass or company.
309
+
310
+ access_pass_ids: The access pass IDs to filter the members by
311
+
312
+ after: Returns the elements in the list that come after the specified cursor.
313
+
314
+ before: Returns the elements in the list that come before the specified cursor.
315
+
316
+ created_after: The minimum creation date to filter by
317
+
318
+ created_before: The maximum creation date to filter by
319
+
320
+ direction: The direction of the sort.
321
+
322
+ first: Returns the first _n_ elements from the list.
323
+
324
+ last: Returns the last _n_ elements from the list.
325
+
326
+ most_recent_actions: The most recent actions to filter the members by
327
+
328
+ order: Which columns can be used to sort.
329
+
330
+ plan_ids: The plan IDs to filter the members by
331
+
332
+ promo_code_ids: The promo code IDs to filter the members by
333
+
334
+ query: The name, username, or email to filter the members by. The email filter will
335
+ only apply if the current actor has the `member:email:read` permission.
336
+
337
+ statuses: The statuses to filter the members by
338
+
339
+ user_ids: The user IDs to filter the members by
340
+
341
+ extra_headers: Send extra headers
342
+
343
+ extra_query: Add additional query parameters to the request
344
+
345
+ extra_body: Add additional JSON properties to the request
346
+
347
+ timeout: Override the client-level default timeout for this request, in seconds
348
+ """
349
+ return self._get_api_list(
350
+ "/members",
351
+ page=AsyncCursorPage[MemberListResponse],
352
+ options=make_request_options(
353
+ extra_headers=extra_headers,
354
+ extra_query=extra_query,
355
+ extra_body=extra_body,
356
+ timeout=timeout,
357
+ query=maybe_transform(
358
+ {
359
+ "company_id": company_id,
360
+ "access_level": access_level,
361
+ "access_pass_ids": access_pass_ids,
362
+ "after": after,
363
+ "before": before,
364
+ "created_after": created_after,
365
+ "created_before": created_before,
366
+ "direction": direction,
367
+ "first": first,
368
+ "last": last,
369
+ "most_recent_actions": most_recent_actions,
370
+ "order": order,
371
+ "plan_ids": plan_ids,
372
+ "promo_code_ids": promo_code_ids,
373
+ "query": query,
374
+ "statuses": statuses,
375
+ "user_ids": user_ids,
376
+ },
377
+ member_list_params.MemberListParams,
378
+ ),
379
+ ),
380
+ model=MemberListResponse,
381
+ )
382
+
383
+
384
+ class MembersResourceWithRawResponse:
385
+ def __init__(self, members: MembersResource) -> None:
386
+ self._members = members
387
+
388
+ self.retrieve = to_raw_response_wrapper(
389
+ members.retrieve,
390
+ )
391
+ self.list = to_raw_response_wrapper(
392
+ members.list,
393
+ )
394
+
395
+
396
+ class AsyncMembersResourceWithRawResponse:
397
+ def __init__(self, members: AsyncMembersResource) -> None:
398
+ self._members = members
399
+
400
+ self.retrieve = async_to_raw_response_wrapper(
401
+ members.retrieve,
402
+ )
403
+ self.list = async_to_raw_response_wrapper(
404
+ members.list,
405
+ )
406
+
407
+
408
+ class MembersResourceWithStreamingResponse:
409
+ def __init__(self, members: MembersResource) -> None:
410
+ self._members = members
411
+
412
+ self.retrieve = to_streamed_response_wrapper(
413
+ members.retrieve,
414
+ )
415
+ self.list = to_streamed_response_wrapper(
416
+ members.list,
417
+ )
418
+
419
+
420
+ class AsyncMembersResourceWithStreamingResponse:
421
+ def __init__(self, members: AsyncMembersResource) -> None:
422
+ self._members = members
423
+
424
+ self.retrieve = async_to_streamed_response_wrapper(
425
+ members.retrieve,
426
+ )
427
+ self.list = async_to_streamed_response_wrapper(
428
+ members.list,
429
+ )
@@ -136,7 +136,6 @@ class MembershipsResource(SyncAPIResource):
136
136
  def list(
137
137
  self,
138
138
  *,
139
- company_id: str,
140
139
  access_pass_ids: Optional[SequenceNotStr[str]] | Omit = omit,
141
140
  after: Optional[str] | Omit = omit,
142
141
  before: Optional[str] | Omit = omit,
@@ -154,6 +153,7 @@ class MembershipsResource(SyncAPIResource):
154
153
  ]
155
154
  ]
156
155
  | Omit = omit,
156
+ company_id: Optional[str] | Omit = omit,
157
157
  created_after: Union[str, datetime, None] | Omit = omit,
158
158
  created_before: Union[str, datetime, None] | Omit = omit,
159
159
  direction: Optional[Direction] | Omit = omit,
@@ -164,6 +164,7 @@ class MembershipsResource(SyncAPIResource):
164
164
  plan_ids: Optional[SequenceNotStr[str]] | Omit = omit,
165
165
  promo_code_ids: Optional[SequenceNotStr[str]] | Omit = omit,
166
166
  statuses: Optional[List[MembershipStatus]] | Omit = omit,
167
+ user_ids: Optional[SequenceNotStr[str]] | Omit = omit,
167
168
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
168
169
  # The extra values given here take precedence over values defined on the client or passed to this method.
169
170
  extra_headers: Headers | None = None,
@@ -179,8 +180,6 @@ class MembershipsResource(SyncAPIResource):
179
180
  - `member:basic:read`
180
181
 
181
182
  Args:
182
- company_id: The ID of the company to list memberships for
183
-
184
183
  access_pass_ids: The access pass IDs to filter the memberships by
185
184
 
186
185
  after: Returns the elements in the list that come after the specified cursor.
@@ -189,6 +188,8 @@ class MembershipsResource(SyncAPIResource):
189
188
 
190
189
  cancel_options: The cancel options to filter the memberships by
191
190
 
191
+ company_id: The ID of the company to list memberships for
192
+
192
193
  created_after: The minimum creation date to filter by
193
194
 
194
195
  created_before: The maximum creation date to filter by
@@ -207,6 +208,8 @@ class MembershipsResource(SyncAPIResource):
207
208
 
208
209
  statuses: The membership status to filter the memberships by
209
210
 
211
+ user_ids: Only return memberships from these whop user ids
212
+
210
213
  extra_headers: Send extra headers
211
214
 
212
215
  extra_query: Add additional query parameters to the request
@@ -225,11 +228,11 @@ class MembershipsResource(SyncAPIResource):
225
228
  timeout=timeout,
226
229
  query=maybe_transform(
227
230
  {
228
- "company_id": company_id,
229
231
  "access_pass_ids": access_pass_ids,
230
232
  "after": after,
231
233
  "before": before,
232
234
  "cancel_options": cancel_options,
235
+ "company_id": company_id,
233
236
  "created_after": created_after,
234
237
  "created_before": created_before,
235
238
  "direction": direction,
@@ -239,6 +242,7 @@ class MembershipsResource(SyncAPIResource):
239
242
  "plan_ids": plan_ids,
240
243
  "promo_code_ids": promo_code_ids,
241
244
  "statuses": statuses,
245
+ "user_ids": user_ids,
242
246
  },
243
247
  membership_list_params.MembershipListParams,
244
248
  ),
@@ -475,7 +479,6 @@ class AsyncMembershipsResource(AsyncAPIResource):
475
479
  def list(
476
480
  self,
477
481
  *,
478
- company_id: str,
479
482
  access_pass_ids: Optional[SequenceNotStr[str]] | Omit = omit,
480
483
  after: Optional[str] | Omit = omit,
481
484
  before: Optional[str] | Omit = omit,
@@ -493,6 +496,7 @@ class AsyncMembershipsResource(AsyncAPIResource):
493
496
  ]
494
497
  ]
495
498
  | Omit = omit,
499
+ company_id: Optional[str] | Omit = omit,
496
500
  created_after: Union[str, datetime, None] | Omit = omit,
497
501
  created_before: Union[str, datetime, None] | Omit = omit,
498
502
  direction: Optional[Direction] | Omit = omit,
@@ -503,6 +507,7 @@ class AsyncMembershipsResource(AsyncAPIResource):
503
507
  plan_ids: Optional[SequenceNotStr[str]] | Omit = omit,
504
508
  promo_code_ids: Optional[SequenceNotStr[str]] | Omit = omit,
505
509
  statuses: Optional[List[MembershipStatus]] | Omit = omit,
510
+ user_ids: Optional[SequenceNotStr[str]] | Omit = omit,
506
511
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
507
512
  # The extra values given here take precedence over values defined on the client or passed to this method.
508
513
  extra_headers: Headers | None = None,
@@ -518,8 +523,6 @@ class AsyncMembershipsResource(AsyncAPIResource):
518
523
  - `member:basic:read`
519
524
 
520
525
  Args:
521
- company_id: The ID of the company to list memberships for
522
-
523
526
  access_pass_ids: The access pass IDs to filter the memberships by
524
527
 
525
528
  after: Returns the elements in the list that come after the specified cursor.
@@ -528,6 +531,8 @@ class AsyncMembershipsResource(AsyncAPIResource):
528
531
 
529
532
  cancel_options: The cancel options to filter the memberships by
530
533
 
534
+ company_id: The ID of the company to list memberships for
535
+
531
536
  created_after: The minimum creation date to filter by
532
537
 
533
538
  created_before: The maximum creation date to filter by
@@ -546,6 +551,8 @@ class AsyncMembershipsResource(AsyncAPIResource):
546
551
 
547
552
  statuses: The membership status to filter the memberships by
548
553
 
554
+ user_ids: Only return memberships from these whop user ids
555
+
549
556
  extra_headers: Send extra headers
550
557
 
551
558
  extra_query: Add additional query parameters to the request
@@ -564,11 +571,11 @@ class AsyncMembershipsResource(AsyncAPIResource):
564
571
  timeout=timeout,
565
572
  query=maybe_transform(
566
573
  {
567
- "company_id": company_id,
568
574
  "access_pass_ids": access_pass_ids,
569
575
  "after": after,
570
576
  "before": before,
571
577
  "cancel_options": cancel_options,
578
+ "company_id": company_id,
572
579
  "created_after": created_after,
573
580
  "created_before": created_before,
574
581
  "direction": direction,
@@ -578,6 +585,7 @@ class AsyncMembershipsResource(AsyncAPIResource):
578
585
  "plan_ids": plan_ids,
579
586
  "promo_code_ids": promo_code_ids,
580
587
  "statuses": statuses,
588
+ "user_ids": user_ids,
581
589
  },
582
590
  membership_list_params.MembershipListParams,
583
591
  ),