studyfetch-sdk 0.1.0a1__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.
Files changed (165) hide show
  1. studyfetch_sdk/__init__.py +100 -0
  2. studyfetch_sdk/_base_client.py +1992 -0
  3. studyfetch_sdk/_client.py +403 -0
  4. studyfetch_sdk/_compat.py +219 -0
  5. studyfetch_sdk/_constants.py +14 -0
  6. studyfetch_sdk/_exceptions.py +108 -0
  7. studyfetch_sdk/_files.py +123 -0
  8. studyfetch_sdk/_models.py +808 -0
  9. studyfetch_sdk/_qs.py +150 -0
  10. studyfetch_sdk/_resource.py +43 -0
  11. studyfetch_sdk/_response.py +832 -0
  12. studyfetch_sdk/_streaming.py +333 -0
  13. studyfetch_sdk/_types.py +219 -0
  14. studyfetch_sdk/_utils/__init__.py +57 -0
  15. studyfetch_sdk/_utils/_logs.py +25 -0
  16. studyfetch_sdk/_utils/_proxy.py +65 -0
  17. studyfetch_sdk/_utils/_reflection.py +42 -0
  18. studyfetch_sdk/_utils/_resources_proxy.py +24 -0
  19. studyfetch_sdk/_utils/_streams.py +12 -0
  20. studyfetch_sdk/_utils/_sync.py +86 -0
  21. studyfetch_sdk/_utils/_transform.py +447 -0
  22. studyfetch_sdk/_utils/_typing.py +151 -0
  23. studyfetch_sdk/_utils/_utils.py +422 -0
  24. studyfetch_sdk/_version.py +4 -0
  25. studyfetch_sdk/lib/.keep +4 -0
  26. studyfetch_sdk/py.typed +0 -0
  27. studyfetch_sdk/resources/__init__.py +19 -0
  28. studyfetch_sdk/resources/v1/__init__.py +215 -0
  29. studyfetch_sdk/resources/v1/audio_recaps/__init__.py +33 -0
  30. studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +328 -0
  31. studyfetch_sdk/resources/v1/audio_recaps/sections.py +250 -0
  32. studyfetch_sdk/resources/v1/auth/__init__.py +61 -0
  33. studyfetch_sdk/resources/v1/auth/auth.py +620 -0
  34. studyfetch_sdk/resources/v1/auth/login.py +374 -0
  35. studyfetch_sdk/resources/v1/auth/number_2fa.py +457 -0
  36. studyfetch_sdk/resources/v1/auth/organization_invites.py +160 -0
  37. studyfetch_sdk/resources/v1/chat/__init__.py +47 -0
  38. studyfetch_sdk/resources/v1/chat/chat.py +576 -0
  39. studyfetch_sdk/resources/v1/chat/sessions.py +222 -0
  40. studyfetch_sdk/resources/v1/chat/test.py +190 -0
  41. studyfetch_sdk/resources/v1/components.py +943 -0
  42. studyfetch_sdk/resources/v1/embed/__init__.py +33 -0
  43. studyfetch_sdk/resources/v1/embed/component.py +278 -0
  44. studyfetch_sdk/resources/v1/embed/embed.py +346 -0
  45. studyfetch_sdk/resources/v1/explainers.py +216 -0
  46. studyfetch_sdk/resources/v1/flashcards.py +783 -0
  47. studyfetch_sdk/resources/v1/folders.py +744 -0
  48. studyfetch_sdk/resources/v1/materials/__init__.py +61 -0
  49. studyfetch_sdk/resources/v1/materials/bulk.py +134 -0
  50. studyfetch_sdk/resources/v1/materials/materials.py +1029 -0
  51. studyfetch_sdk/resources/v1/materials/test.py +290 -0
  52. studyfetch_sdk/resources/v1/materials/upload.py +410 -0
  53. studyfetch_sdk/resources/v1/organizations/__init__.py +103 -0
  54. studyfetch_sdk/resources/v1/organizations/api_keys.py +260 -0
  55. studyfetch_sdk/resources/v1/organizations/logo/__init__.py +33 -0
  56. studyfetch_sdk/resources/v1/organizations/logo/logo.py +166 -0
  57. studyfetch_sdk/resources/v1/organizations/logo/upload.py +184 -0
  58. studyfetch_sdk/resources/v1/organizations/organizations.py +428 -0
  59. studyfetch_sdk/resources/v1/organizations/profile/__init__.py +47 -0
  60. studyfetch_sdk/resources/v1/organizations/profile/models.py +134 -0
  61. studyfetch_sdk/resources/v1/organizations/profile/profile.py +248 -0
  62. studyfetch_sdk/resources/v1/organizations/profile/team.py +462 -0
  63. studyfetch_sdk/resources/v1/organizations/team/__init__.py +33 -0
  64. studyfetch_sdk/resources/v1/organizations/team/invite.py +236 -0
  65. studyfetch_sdk/resources/v1/organizations/team/team.py +564 -0
  66. studyfetch_sdk/resources/v1/organizations/theme.py +184 -0
  67. studyfetch_sdk/resources/v1/organizations/usage.py +160 -0
  68. studyfetch_sdk/resources/v1/scenarios/__init__.py +61 -0
  69. studyfetch_sdk/resources/v1/scenarios/component.py +330 -0
  70. studyfetch_sdk/resources/v1/scenarios/scenarios.py +708 -0
  71. studyfetch_sdk/resources/v1/scenarios/sessions.py +236 -0
  72. studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +33 -0
  73. studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +102 -0
  74. studyfetch_sdk/resources/v1/scenarios/submissions/user.py +210 -0
  75. studyfetch_sdk/resources/v1/tests/__init__.py +33 -0
  76. studyfetch_sdk/resources/v1/tests/component.py +160 -0
  77. studyfetch_sdk/resources/v1/tests/tests.py +682 -0
  78. studyfetch_sdk/resources/v1/upload/__init__.py +33 -0
  79. studyfetch_sdk/resources/v1/upload/component.py +388 -0
  80. studyfetch_sdk/resources/v1/upload/upload.py +102 -0
  81. studyfetch_sdk/resources/v1/usage.py +1126 -0
  82. studyfetch_sdk/resources/v1/v1.py +518 -0
  83. studyfetch_sdk/types/__init__.py +3 -0
  84. studyfetch_sdk/types/v1/__init__.py +52 -0
  85. studyfetch_sdk/types/v1/admin/__init__.py +3 -0
  86. studyfetch_sdk/types/v1/admin/organizations/__init__.py +3 -0
  87. studyfetch_sdk/types/v1/admin/organizations/models/__init__.py +3 -0
  88. studyfetch_sdk/types/v1/audio_recaps/__init__.py +3 -0
  89. studyfetch_sdk/types/v1/auth/__init__.py +13 -0
  90. studyfetch_sdk/types/v1/auth/login_authenticate_params.py +15 -0
  91. studyfetch_sdk/types/v1/auth/login_verify_2fa_params.py +15 -0
  92. studyfetch_sdk/types/v1/auth/login_verify_backup_code_params.py +17 -0
  93. studyfetch_sdk/types/v1/auth/number_2fa_disable_params.py +12 -0
  94. studyfetch_sdk/types/v1/auth/number_2fa_enable_params.py +12 -0
  95. studyfetch_sdk/types/v1/auth/number_2fa_regenerate_backup_codes_params.py +12 -0
  96. studyfetch_sdk/types/v1/auth/number_2fa_send_code_params.py +12 -0
  97. studyfetch_sdk/types/v1/auth_register_new_user_params.py +23 -0
  98. studyfetch_sdk/types/v1/auth_request_password_reset_params.py +12 -0
  99. studyfetch_sdk/types/v1/auth_reset_password_params.py +17 -0
  100. studyfetch_sdk/types/v1/chat/__init__.py +5 -0
  101. studyfetch_sdk/types/v1/chat/session_retrieve_params.py +11 -0
  102. studyfetch_sdk/types/v1/chat_retrieve_session_params.py +13 -0
  103. studyfetch_sdk/types/v1/chat_send_message_params.py +54 -0
  104. studyfetch_sdk/types/v1/chat_stream_params.py +28 -0
  105. studyfetch_sdk/types/v1/component_create_params.py +29 -0
  106. studyfetch_sdk/types/v1/component_create_response.py +46 -0
  107. studyfetch_sdk/types/v1/component_embed_params.py +99 -0
  108. studyfetch_sdk/types/v1/component_embed_response.py +38 -0
  109. studyfetch_sdk/types/v1/component_list_params.py +14 -0
  110. studyfetch_sdk/types/v1/component_list_response.py +49 -0
  111. studyfetch_sdk/types/v1/component_retrieve_response.py +46 -0
  112. studyfetch_sdk/types/v1/component_update_params.py +12 -0
  113. studyfetch_sdk/types/v1/component_update_response.py +46 -0
  114. studyfetch_sdk/types/v1/embed/__init__.py +6 -0
  115. studyfetch_sdk/types/v1/embed/component_interact_params.py +14 -0
  116. studyfetch_sdk/types/v1/embed/component_retrieve_params.py +12 -0
  117. studyfetch_sdk/types/v1/embed_get_theme_params.py +12 -0
  118. studyfetch_sdk/types/v1/embed_verify_params.py +12 -0
  119. studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +11 -0
  120. studyfetch_sdk/types/v1/flashcard_batch_process_params.py +36 -0
  121. studyfetch_sdk/types/v1/flashcard_batch_process_response.py +39 -0
  122. studyfetch_sdk/types/v1/flashcard_get_algorithm_info_response.py +37 -0
  123. studyfetch_sdk/types/v1/flashcard_get_all_params.py +23 -0
  124. studyfetch_sdk/types/v1/flashcard_get_due_params.py +19 -0
  125. studyfetch_sdk/types/v1/flashcard_get_stats_params.py +17 -0
  126. studyfetch_sdk/types/v1/flashcard_get_types_response.py +14 -0
  127. studyfetch_sdk/types/v1/flashcard_rate_params.py +23 -0
  128. studyfetch_sdk/types/v1/folder_create_params.py +17 -0
  129. studyfetch_sdk/types/v1/folder_list_params.py +14 -0
  130. studyfetch_sdk/types/v1/folder_update_params.py +17 -0
  131. studyfetch_sdk/types/v1/material_create_params.py +34 -0
  132. studyfetch_sdk/types/v1/material_create_response.py +62 -0
  133. studyfetch_sdk/types/v1/material_get_download_url_params.py +13 -0
  134. studyfetch_sdk/types/v1/material_list_params.py +14 -0
  135. studyfetch_sdk/types/v1/material_list_response.py +65 -0
  136. studyfetch_sdk/types/v1/material_retrieve_response.py +62 -0
  137. studyfetch_sdk/types/v1/materials/__init__.py +8 -0
  138. studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +20 -0
  139. studyfetch_sdk/types/v1/materials/upload_upload_file_response.py +62 -0
  140. studyfetch_sdk/types/v1/materials/upload_upload_from_url_params.py +20 -0
  141. studyfetch_sdk/types/v1/materials/upload_upload_from_url_response.py +62 -0
  142. studyfetch_sdk/types/v1/organizations/__init__.py +3 -0
  143. studyfetch_sdk/types/v1/organizations/logo/__init__.py +3 -0
  144. studyfetch_sdk/types/v1/organizations/profile/__init__.py +3 -0
  145. studyfetch_sdk/types/v1/organizations/team/__init__.py +3 -0
  146. studyfetch_sdk/types/v1/scenario_create_params.py +11 -0
  147. studyfetch_sdk/types/v1/scenario_update_params.py +11 -0
  148. studyfetch_sdk/types/v1/scenarios/__init__.py +5 -0
  149. studyfetch_sdk/types/v1/scenarios/component_update_params.py +11 -0
  150. studyfetch_sdk/types/v1/scenarios/submissions/__init__.py +3 -0
  151. studyfetch_sdk/types/v1/test_create_params.py +20 -0
  152. studyfetch_sdk/types/v1/test_retake_params.py +14 -0
  153. studyfetch_sdk/types/v1/test_submit_answer_params.py +20 -0
  154. studyfetch_sdk/types/v1/test_submit_params.py +14 -0
  155. studyfetch_sdk/types/v1/tests/__init__.py +3 -0
  156. studyfetch_sdk/types/v1/upload/__init__.py +3 -0
  157. studyfetch_sdk/types/v1/usage_get_stats_params.py +23 -0
  158. studyfetch_sdk/types/v1/usage_get_summary_params.py +23 -0
  159. studyfetch_sdk/types/v1/usage_list_events_params.py +61 -0
  160. studyfetch_sdk/types/v1/usage_track_chat_params.py +54 -0
  161. studyfetch_sdk/types/v1/usage_track_event_params.py +128 -0
  162. studyfetch_sdk-0.1.0a1.dist-info/METADATA +453 -0
  163. studyfetch_sdk-0.1.0a1.dist-info/RECORD +165 -0
  164. studyfetch_sdk-0.1.0a1.dist-info/WHEEL +4 -0
  165. studyfetch_sdk-0.1.0a1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,708 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import httpx
6
+
7
+ from .sessions import (
8
+ SessionsResource,
9
+ AsyncSessionsResource,
10
+ SessionsResourceWithRawResponse,
11
+ AsyncSessionsResourceWithRawResponse,
12
+ SessionsResourceWithStreamingResponse,
13
+ AsyncSessionsResourceWithStreamingResponse,
14
+ )
15
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
16
+ from ...._utils import maybe_transform, async_maybe_transform
17
+ from .component import (
18
+ ComponentResource,
19
+ AsyncComponentResource,
20
+ ComponentResourceWithRawResponse,
21
+ AsyncComponentResourceWithRawResponse,
22
+ ComponentResourceWithStreamingResponse,
23
+ AsyncComponentResourceWithStreamingResponse,
24
+ )
25
+ from ...._compat import cached_property
26
+ from ....types.v1 import scenario_create_params, scenario_update_params
27
+ from ...._resource import SyncAPIResource, AsyncAPIResource
28
+ from ...._response import (
29
+ to_raw_response_wrapper,
30
+ to_streamed_response_wrapper,
31
+ async_to_raw_response_wrapper,
32
+ async_to_streamed_response_wrapper,
33
+ )
34
+ from ...._base_client import make_request_options
35
+ from .submissions.submissions import (
36
+ SubmissionsResource,
37
+ AsyncSubmissionsResource,
38
+ SubmissionsResourceWithRawResponse,
39
+ AsyncSubmissionsResourceWithRawResponse,
40
+ SubmissionsResourceWithStreamingResponse,
41
+ AsyncSubmissionsResourceWithStreamingResponse,
42
+ )
43
+
44
+ __all__ = ["ScenariosResource", "AsyncScenariosResource"]
45
+
46
+
47
+ class ScenariosResource(SyncAPIResource):
48
+ @cached_property
49
+ def component(self) -> ComponentResource:
50
+ return ComponentResource(self._client)
51
+
52
+ @cached_property
53
+ def sessions(self) -> SessionsResource:
54
+ return SessionsResource(self._client)
55
+
56
+ @cached_property
57
+ def submissions(self) -> SubmissionsResource:
58
+ return SubmissionsResource(self._client)
59
+
60
+ @cached_property
61
+ def with_raw_response(self) -> ScenariosResourceWithRawResponse:
62
+ """
63
+ This property can be used as a prefix for any HTTP method call to return
64
+ the raw response object instead of the parsed content.
65
+
66
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
67
+ """
68
+ return ScenariosResourceWithRawResponse(self)
69
+
70
+ @cached_property
71
+ def with_streaming_response(self) -> ScenariosResourceWithStreamingResponse:
72
+ """
73
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
74
+
75
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
76
+ """
77
+ return ScenariosResourceWithStreamingResponse(self)
78
+
79
+ def create(
80
+ self,
81
+ *,
82
+ body: str,
83
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
84
+ # The extra values given here take precedence over values defined on the client or passed to this method.
85
+ extra_headers: Headers | None = None,
86
+ extra_query: Query | None = None,
87
+ extra_body: Body | None = None,
88
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
89
+ ) -> None:
90
+ """
91
+ Create a new scenario
92
+
93
+ Args:
94
+ extra_headers: Send extra headers
95
+
96
+ extra_query: Add additional query parameters to the request
97
+
98
+ extra_body: Add additional JSON properties to the request
99
+
100
+ timeout: Override the client-level default timeout for this request, in seconds
101
+ """
102
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
103
+ return self._post(
104
+ "/api/v1/scenarios",
105
+ body=maybe_transform(body, scenario_create_params.ScenarioCreateParams),
106
+ options=make_request_options(
107
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
108
+ ),
109
+ cast_to=NoneType,
110
+ )
111
+
112
+ def retrieve(
113
+ self,
114
+ id: str,
115
+ *,
116
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
117
+ # The extra values given here take precedence over values defined on the client or passed to this method.
118
+ extra_headers: Headers | None = None,
119
+ extra_query: Query | None = None,
120
+ extra_body: Body | None = None,
121
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
122
+ ) -> None:
123
+ """
124
+ Get scenario by ID
125
+
126
+ Args:
127
+ extra_headers: Send extra headers
128
+
129
+ extra_query: Add additional query parameters to the request
130
+
131
+ extra_body: Add additional JSON properties to the request
132
+
133
+ timeout: Override the client-level default timeout for this request, in seconds
134
+ """
135
+ if not id:
136
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
137
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
138
+ return self._get(
139
+ f"/api/v1/scenarios/{id}",
140
+ options=make_request_options(
141
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
142
+ ),
143
+ cast_to=NoneType,
144
+ )
145
+
146
+ def update(
147
+ self,
148
+ id: str,
149
+ *,
150
+ body: str,
151
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
152
+ # The extra values given here take precedence over values defined on the client or passed to this method.
153
+ extra_headers: Headers | None = None,
154
+ extra_query: Query | None = None,
155
+ extra_body: Body | None = None,
156
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
157
+ ) -> None:
158
+ """
159
+ Update scenario
160
+
161
+ Args:
162
+ extra_headers: Send extra headers
163
+
164
+ extra_query: Add additional query parameters to the request
165
+
166
+ extra_body: Add additional JSON properties to the request
167
+
168
+ timeout: Override the client-level default timeout for this request, in seconds
169
+ """
170
+ if not id:
171
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
172
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
173
+ return self._put(
174
+ f"/api/v1/scenarios/{id}",
175
+ body=maybe_transform(body, scenario_update_params.ScenarioUpdateParams),
176
+ options=make_request_options(
177
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
178
+ ),
179
+ cast_to=NoneType,
180
+ )
181
+
182
+ def list(
183
+ self,
184
+ *,
185
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
186
+ # The extra values given here take precedence over values defined on the client or passed to this method.
187
+ extra_headers: Headers | None = None,
188
+ extra_query: Query | None = None,
189
+ extra_body: Body | None = None,
190
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
191
+ ) -> None:
192
+ """Get all scenarios"""
193
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
194
+ return self._get(
195
+ "/api/v1/scenarios",
196
+ options=make_request_options(
197
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
198
+ ),
199
+ cast_to=NoneType,
200
+ )
201
+
202
+ def delete(
203
+ self,
204
+ id: str,
205
+ *,
206
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
207
+ # The extra values given here take precedence over values defined on the client or passed to this method.
208
+ extra_headers: Headers | None = None,
209
+ extra_query: Query | None = None,
210
+ extra_body: Body | None = None,
211
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
212
+ ) -> None:
213
+ """
214
+ Delete scenario
215
+
216
+ Args:
217
+ extra_headers: Send extra headers
218
+
219
+ extra_query: Add additional query parameters to the request
220
+
221
+ extra_body: Add additional JSON properties to the request
222
+
223
+ timeout: Override the client-level default timeout for this request, in seconds
224
+ """
225
+ if not id:
226
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
227
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
228
+ return self._delete(
229
+ f"/api/v1/scenarios/{id}",
230
+ options=make_request_options(
231
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
232
+ ),
233
+ cast_to=NoneType,
234
+ )
235
+
236
+ def get_stats(
237
+ self,
238
+ id: str,
239
+ *,
240
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
241
+ # The extra values given here take precedence over values defined on the client or passed to this method.
242
+ extra_headers: Headers | None = None,
243
+ extra_query: Query | None = None,
244
+ extra_body: Body | None = None,
245
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
246
+ ) -> None:
247
+ """
248
+ Args:
249
+ extra_headers: Send extra headers
250
+
251
+ extra_query: Add additional query parameters to the request
252
+
253
+ extra_body: Add additional JSON properties to the request
254
+
255
+ timeout: Override the client-level default timeout for this request, in seconds
256
+ """
257
+ if not id:
258
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
259
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
260
+ return self._get(
261
+ f"/api/v1/scenarios/{id}/stats",
262
+ options=make_request_options(
263
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
264
+ ),
265
+ cast_to=NoneType,
266
+ )
267
+
268
+ def submit(
269
+ self,
270
+ id: str,
271
+ *,
272
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
273
+ # The extra values given here take precedence over values defined on the client or passed to this method.
274
+ extra_headers: Headers | None = None,
275
+ extra_query: Query | None = None,
276
+ extra_body: Body | None = None,
277
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
278
+ ) -> None:
279
+ """
280
+ Args:
281
+ extra_headers: Send extra headers
282
+
283
+ extra_query: Add additional query parameters to the request
284
+
285
+ extra_body: Add additional JSON properties to the request
286
+
287
+ timeout: Override the client-level default timeout for this request, in seconds
288
+ """
289
+ if not id:
290
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
291
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
292
+ return self._post(
293
+ f"/api/v1/scenarios/{id}/submit",
294
+ options=make_request_options(
295
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
296
+ ),
297
+ cast_to=NoneType,
298
+ )
299
+
300
+
301
+ class AsyncScenariosResource(AsyncAPIResource):
302
+ @cached_property
303
+ def component(self) -> AsyncComponentResource:
304
+ return AsyncComponentResource(self._client)
305
+
306
+ @cached_property
307
+ def sessions(self) -> AsyncSessionsResource:
308
+ return AsyncSessionsResource(self._client)
309
+
310
+ @cached_property
311
+ def submissions(self) -> AsyncSubmissionsResource:
312
+ return AsyncSubmissionsResource(self._client)
313
+
314
+ @cached_property
315
+ def with_raw_response(self) -> AsyncScenariosResourceWithRawResponse:
316
+ """
317
+ This property can be used as a prefix for any HTTP method call to return
318
+ the raw response object instead of the parsed content.
319
+
320
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#accessing-raw-response-data-eg-headers
321
+ """
322
+ return AsyncScenariosResourceWithRawResponse(self)
323
+
324
+ @cached_property
325
+ def with_streaming_response(self) -> AsyncScenariosResourceWithStreamingResponse:
326
+ """
327
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
328
+
329
+ For more information, see https://www.github.com/GoStudyFetchGo/studyfetch-sdk-python#with_streaming_response
330
+ """
331
+ return AsyncScenariosResourceWithStreamingResponse(self)
332
+
333
+ async def create(
334
+ self,
335
+ *,
336
+ body: str,
337
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
338
+ # The extra values given here take precedence over values defined on the client or passed to this method.
339
+ extra_headers: Headers | None = None,
340
+ extra_query: Query | None = None,
341
+ extra_body: Body | None = None,
342
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
343
+ ) -> None:
344
+ """
345
+ Create a new scenario
346
+
347
+ Args:
348
+ extra_headers: Send extra headers
349
+
350
+ extra_query: Add additional query parameters to the request
351
+
352
+ extra_body: Add additional JSON properties to the request
353
+
354
+ timeout: Override the client-level default timeout for this request, in seconds
355
+ """
356
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
357
+ return await self._post(
358
+ "/api/v1/scenarios",
359
+ body=await async_maybe_transform(body, scenario_create_params.ScenarioCreateParams),
360
+ options=make_request_options(
361
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
362
+ ),
363
+ cast_to=NoneType,
364
+ )
365
+
366
+ async def retrieve(
367
+ self,
368
+ id: str,
369
+ *,
370
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
371
+ # The extra values given here take precedence over values defined on the client or passed to this method.
372
+ extra_headers: Headers | None = None,
373
+ extra_query: Query | None = None,
374
+ extra_body: Body | None = None,
375
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
376
+ ) -> None:
377
+ """
378
+ Get scenario by ID
379
+
380
+ Args:
381
+ extra_headers: Send extra headers
382
+
383
+ extra_query: Add additional query parameters to the request
384
+
385
+ extra_body: Add additional JSON properties to the request
386
+
387
+ timeout: Override the client-level default timeout for this request, in seconds
388
+ """
389
+ if not id:
390
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
391
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
392
+ return await self._get(
393
+ f"/api/v1/scenarios/{id}",
394
+ options=make_request_options(
395
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
396
+ ),
397
+ cast_to=NoneType,
398
+ )
399
+
400
+ async def update(
401
+ self,
402
+ id: str,
403
+ *,
404
+ body: str,
405
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
406
+ # The extra values given here take precedence over values defined on the client or passed to this method.
407
+ extra_headers: Headers | None = None,
408
+ extra_query: Query | None = None,
409
+ extra_body: Body | None = None,
410
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
411
+ ) -> None:
412
+ """
413
+ Update scenario
414
+
415
+ Args:
416
+ extra_headers: Send extra headers
417
+
418
+ extra_query: Add additional query parameters to the request
419
+
420
+ extra_body: Add additional JSON properties to the request
421
+
422
+ timeout: Override the client-level default timeout for this request, in seconds
423
+ """
424
+ if not id:
425
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
426
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
427
+ return await self._put(
428
+ f"/api/v1/scenarios/{id}",
429
+ body=await async_maybe_transform(body, scenario_update_params.ScenarioUpdateParams),
430
+ options=make_request_options(
431
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
432
+ ),
433
+ cast_to=NoneType,
434
+ )
435
+
436
+ async def list(
437
+ self,
438
+ *,
439
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
440
+ # The extra values given here take precedence over values defined on the client or passed to this method.
441
+ extra_headers: Headers | None = None,
442
+ extra_query: Query | None = None,
443
+ extra_body: Body | None = None,
444
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
445
+ ) -> None:
446
+ """Get all scenarios"""
447
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
448
+ return await self._get(
449
+ "/api/v1/scenarios",
450
+ options=make_request_options(
451
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
452
+ ),
453
+ cast_to=NoneType,
454
+ )
455
+
456
+ async def delete(
457
+ self,
458
+ id: str,
459
+ *,
460
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
461
+ # The extra values given here take precedence over values defined on the client or passed to this method.
462
+ extra_headers: Headers | None = None,
463
+ extra_query: Query | None = None,
464
+ extra_body: Body | None = None,
465
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
466
+ ) -> None:
467
+ """
468
+ Delete scenario
469
+
470
+ Args:
471
+ extra_headers: Send extra headers
472
+
473
+ extra_query: Add additional query parameters to the request
474
+
475
+ extra_body: Add additional JSON properties to the request
476
+
477
+ timeout: Override the client-level default timeout for this request, in seconds
478
+ """
479
+ if not id:
480
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
481
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
482
+ return await self._delete(
483
+ f"/api/v1/scenarios/{id}",
484
+ options=make_request_options(
485
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
486
+ ),
487
+ cast_to=NoneType,
488
+ )
489
+
490
+ async def get_stats(
491
+ self,
492
+ id: str,
493
+ *,
494
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
495
+ # The extra values given here take precedence over values defined on the client or passed to this method.
496
+ extra_headers: Headers | None = None,
497
+ extra_query: Query | None = None,
498
+ extra_body: Body | None = None,
499
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
500
+ ) -> None:
501
+ """
502
+ Args:
503
+ extra_headers: Send extra headers
504
+
505
+ extra_query: Add additional query parameters to the request
506
+
507
+ extra_body: Add additional JSON properties to the request
508
+
509
+ timeout: Override the client-level default timeout for this request, in seconds
510
+ """
511
+ if not id:
512
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
513
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
514
+ return await self._get(
515
+ f"/api/v1/scenarios/{id}/stats",
516
+ options=make_request_options(
517
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
518
+ ),
519
+ cast_to=NoneType,
520
+ )
521
+
522
+ async def submit(
523
+ self,
524
+ id: str,
525
+ *,
526
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
527
+ # The extra values given here take precedence over values defined on the client or passed to this method.
528
+ extra_headers: Headers | None = None,
529
+ extra_query: Query | None = None,
530
+ extra_body: Body | None = None,
531
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
532
+ ) -> None:
533
+ """
534
+ Args:
535
+ extra_headers: Send extra headers
536
+
537
+ extra_query: Add additional query parameters to the request
538
+
539
+ extra_body: Add additional JSON properties to the request
540
+
541
+ timeout: Override the client-level default timeout for this request, in seconds
542
+ """
543
+ if not id:
544
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
545
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
546
+ return await self._post(
547
+ f"/api/v1/scenarios/{id}/submit",
548
+ options=make_request_options(
549
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
550
+ ),
551
+ cast_to=NoneType,
552
+ )
553
+
554
+
555
+ class ScenariosResourceWithRawResponse:
556
+ def __init__(self, scenarios: ScenariosResource) -> None:
557
+ self._scenarios = scenarios
558
+
559
+ self.create = to_raw_response_wrapper(
560
+ scenarios.create,
561
+ )
562
+ self.retrieve = to_raw_response_wrapper(
563
+ scenarios.retrieve,
564
+ )
565
+ self.update = to_raw_response_wrapper(
566
+ scenarios.update,
567
+ )
568
+ self.list = to_raw_response_wrapper(
569
+ scenarios.list,
570
+ )
571
+ self.delete = to_raw_response_wrapper(
572
+ scenarios.delete,
573
+ )
574
+ self.get_stats = to_raw_response_wrapper(
575
+ scenarios.get_stats,
576
+ )
577
+ self.submit = to_raw_response_wrapper(
578
+ scenarios.submit,
579
+ )
580
+
581
+ @cached_property
582
+ def component(self) -> ComponentResourceWithRawResponse:
583
+ return ComponentResourceWithRawResponse(self._scenarios.component)
584
+
585
+ @cached_property
586
+ def sessions(self) -> SessionsResourceWithRawResponse:
587
+ return SessionsResourceWithRawResponse(self._scenarios.sessions)
588
+
589
+ @cached_property
590
+ def submissions(self) -> SubmissionsResourceWithRawResponse:
591
+ return SubmissionsResourceWithRawResponse(self._scenarios.submissions)
592
+
593
+
594
+ class AsyncScenariosResourceWithRawResponse:
595
+ def __init__(self, scenarios: AsyncScenariosResource) -> None:
596
+ self._scenarios = scenarios
597
+
598
+ self.create = async_to_raw_response_wrapper(
599
+ scenarios.create,
600
+ )
601
+ self.retrieve = async_to_raw_response_wrapper(
602
+ scenarios.retrieve,
603
+ )
604
+ self.update = async_to_raw_response_wrapper(
605
+ scenarios.update,
606
+ )
607
+ self.list = async_to_raw_response_wrapper(
608
+ scenarios.list,
609
+ )
610
+ self.delete = async_to_raw_response_wrapper(
611
+ scenarios.delete,
612
+ )
613
+ self.get_stats = async_to_raw_response_wrapper(
614
+ scenarios.get_stats,
615
+ )
616
+ self.submit = async_to_raw_response_wrapper(
617
+ scenarios.submit,
618
+ )
619
+
620
+ @cached_property
621
+ def component(self) -> AsyncComponentResourceWithRawResponse:
622
+ return AsyncComponentResourceWithRawResponse(self._scenarios.component)
623
+
624
+ @cached_property
625
+ def sessions(self) -> AsyncSessionsResourceWithRawResponse:
626
+ return AsyncSessionsResourceWithRawResponse(self._scenarios.sessions)
627
+
628
+ @cached_property
629
+ def submissions(self) -> AsyncSubmissionsResourceWithRawResponse:
630
+ return AsyncSubmissionsResourceWithRawResponse(self._scenarios.submissions)
631
+
632
+
633
+ class ScenariosResourceWithStreamingResponse:
634
+ def __init__(self, scenarios: ScenariosResource) -> None:
635
+ self._scenarios = scenarios
636
+
637
+ self.create = to_streamed_response_wrapper(
638
+ scenarios.create,
639
+ )
640
+ self.retrieve = to_streamed_response_wrapper(
641
+ scenarios.retrieve,
642
+ )
643
+ self.update = to_streamed_response_wrapper(
644
+ scenarios.update,
645
+ )
646
+ self.list = to_streamed_response_wrapper(
647
+ scenarios.list,
648
+ )
649
+ self.delete = to_streamed_response_wrapper(
650
+ scenarios.delete,
651
+ )
652
+ self.get_stats = to_streamed_response_wrapper(
653
+ scenarios.get_stats,
654
+ )
655
+ self.submit = to_streamed_response_wrapper(
656
+ scenarios.submit,
657
+ )
658
+
659
+ @cached_property
660
+ def component(self) -> ComponentResourceWithStreamingResponse:
661
+ return ComponentResourceWithStreamingResponse(self._scenarios.component)
662
+
663
+ @cached_property
664
+ def sessions(self) -> SessionsResourceWithStreamingResponse:
665
+ return SessionsResourceWithStreamingResponse(self._scenarios.sessions)
666
+
667
+ @cached_property
668
+ def submissions(self) -> SubmissionsResourceWithStreamingResponse:
669
+ return SubmissionsResourceWithStreamingResponse(self._scenarios.submissions)
670
+
671
+
672
+ class AsyncScenariosResourceWithStreamingResponse:
673
+ def __init__(self, scenarios: AsyncScenariosResource) -> None:
674
+ self._scenarios = scenarios
675
+
676
+ self.create = async_to_streamed_response_wrapper(
677
+ scenarios.create,
678
+ )
679
+ self.retrieve = async_to_streamed_response_wrapper(
680
+ scenarios.retrieve,
681
+ )
682
+ self.update = async_to_streamed_response_wrapper(
683
+ scenarios.update,
684
+ )
685
+ self.list = async_to_streamed_response_wrapper(
686
+ scenarios.list,
687
+ )
688
+ self.delete = async_to_streamed_response_wrapper(
689
+ scenarios.delete,
690
+ )
691
+ self.get_stats = async_to_streamed_response_wrapper(
692
+ scenarios.get_stats,
693
+ )
694
+ self.submit = async_to_streamed_response_wrapper(
695
+ scenarios.submit,
696
+ )
697
+
698
+ @cached_property
699
+ def component(self) -> AsyncComponentResourceWithStreamingResponse:
700
+ return AsyncComponentResourceWithStreamingResponse(self._scenarios.component)
701
+
702
+ @cached_property
703
+ def sessions(self) -> AsyncSessionsResourceWithStreamingResponse:
704
+ return AsyncSessionsResourceWithStreamingResponse(self._scenarios.sessions)
705
+
706
+ @cached_property
707
+ def submissions(self) -> AsyncSubmissionsResourceWithStreamingResponse:
708
+ return AsyncSubmissionsResourceWithStreamingResponse(self._scenarios.submissions)