syllable-sdk 0.39.4__py3-none-any.whl → 0.40.9__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.
@@ -0,0 +1,1514 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from datetime import datetime
5
+ from syllable_sdk import errors, models, utils
6
+ from syllable_sdk._hooks import HookContext
7
+ from syllable_sdk.types import BaseModel, OptionalNullable, UNSET
8
+ from syllable_sdk.utils import get_security_from_env
9
+ from syllable_sdk.utils.unmarshal_json_response import unmarshal_json_response
10
+ from typing import Any, List, Mapping, Optional, Union, cast
11
+
12
+
13
+ class Directory(BaseSDK):
14
+ r"""Operations related to directory"""
15
+
16
+ def list(
17
+ self,
18
+ *,
19
+ page: OptionalNullable[int] = UNSET,
20
+ limit: Optional[int] = 25,
21
+ search_fields: Optional[List[models.DirectoryMemberProperties]] = None,
22
+ search_field_values: Optional[List[str]] = None,
23
+ order_by: OptionalNullable[models.DirectoryMemberProperties] = UNSET,
24
+ order_by_direction: OptionalNullable[models.OrderByDirection] = UNSET,
25
+ fields: OptionalNullable[List[models.DirectoryMemberProperties]] = UNSET,
26
+ start_datetime: OptionalNullable[str] = UNSET,
27
+ end_datetime: OptionalNullable[str] = UNSET,
28
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
29
+ server_url: Optional[str] = None,
30
+ timeout_ms: Optional[int] = None,
31
+ http_headers: Optional[Mapping[str, str]] = None,
32
+ ) -> models.ListResponseDirectoryMember:
33
+ r"""Directory Member List
34
+
35
+ List the existing directory_members
36
+
37
+ :param page: The page number from which to start (0-based)
38
+ :param limit: The maximum number of items to return
39
+ :param search_fields: String names of fields to search. Correspond by index to search field values
40
+ :param search_field_values: Values of fields to search. Correspond by index to search fields. Unless field name contains \"list\", an individual search field value cannot be a list
41
+ :param order_by: The field whose value should be used to order the results
42
+ :param order_by_direction: The direction in which to order the results
43
+ :param fields: The fields to include in the response
44
+ :param start_datetime: The start datetime for filtering results
45
+ :param end_datetime: The end datetime for filtering results
46
+ :param retries: Override the default retry configuration for this method
47
+ :param server_url: Override the default server URL for this method
48
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
49
+ :param http_headers: Additional headers to set or replace on requests.
50
+ """
51
+ base_url = None
52
+ url_variables = None
53
+ if timeout_ms is None:
54
+ timeout_ms = self.sdk_configuration.timeout_ms
55
+
56
+ if server_url is not None:
57
+ base_url = server_url
58
+ else:
59
+ base_url = self._get_url(base_url, url_variables)
60
+
61
+ request = models.DirectoryMemberListRequest(
62
+ page=page,
63
+ limit=limit,
64
+ search_fields=search_fields,
65
+ search_field_values=search_field_values,
66
+ order_by=order_by,
67
+ order_by_direction=order_by_direction,
68
+ fields=fields,
69
+ start_datetime=start_datetime,
70
+ end_datetime=end_datetime,
71
+ )
72
+
73
+ req = self._build_request(
74
+ method="GET",
75
+ path="/api/v1/directory_members/",
76
+ base_url=base_url,
77
+ url_variables=url_variables,
78
+ request=request,
79
+ request_body_required=False,
80
+ request_has_path_params=False,
81
+ request_has_query_params=True,
82
+ user_agent_header="user-agent",
83
+ accept_header_value="application/json",
84
+ http_headers=http_headers,
85
+ security=self.sdk_configuration.security,
86
+ timeout_ms=timeout_ms,
87
+ )
88
+
89
+ if retries == UNSET:
90
+ if self.sdk_configuration.retry_config is not UNSET:
91
+ retries = self.sdk_configuration.retry_config
92
+
93
+ retry_config = None
94
+ if isinstance(retries, utils.RetryConfig):
95
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
96
+
97
+ http_res = self.do_request(
98
+ hook_ctx=HookContext(
99
+ config=self.sdk_configuration,
100
+ base_url=base_url or "",
101
+ operation_id="directory_member_list",
102
+ oauth2_scopes=None,
103
+ security_source=get_security_from_env(
104
+ self.sdk_configuration.security, models.Security
105
+ ),
106
+ ),
107
+ request=req,
108
+ error_status_codes=["422", "4XX", "5XX"],
109
+ retry_config=retry_config,
110
+ )
111
+
112
+ response_data: Any = None
113
+ if utils.match_response(http_res, "200", "application/json"):
114
+ return unmarshal_json_response(models.ListResponseDirectoryMember, http_res)
115
+ if utils.match_response(http_res, "422", "application/json"):
116
+ response_data = unmarshal_json_response(
117
+ errors.HTTPValidationErrorData, http_res
118
+ )
119
+ raise errors.HTTPValidationError(response_data, http_res)
120
+ if utils.match_response(http_res, "4XX", "*"):
121
+ http_res_text = utils.stream_to_text(http_res)
122
+ raise errors.APIError("API error occurred", http_res, http_res_text)
123
+ if utils.match_response(http_res, "5XX", "*"):
124
+ http_res_text = utils.stream_to_text(http_res)
125
+ raise errors.APIError("API error occurred", http_res, http_res_text)
126
+
127
+ raise errors.APIError("Unexpected response received", http_res)
128
+
129
+ async def list_async(
130
+ self,
131
+ *,
132
+ page: OptionalNullable[int] = UNSET,
133
+ limit: Optional[int] = 25,
134
+ search_fields: Optional[List[models.DirectoryMemberProperties]] = None,
135
+ search_field_values: Optional[List[str]] = None,
136
+ order_by: OptionalNullable[models.DirectoryMemberProperties] = UNSET,
137
+ order_by_direction: OptionalNullable[models.OrderByDirection] = UNSET,
138
+ fields: OptionalNullable[List[models.DirectoryMemberProperties]] = UNSET,
139
+ start_datetime: OptionalNullable[str] = UNSET,
140
+ end_datetime: OptionalNullable[str] = UNSET,
141
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
142
+ server_url: Optional[str] = None,
143
+ timeout_ms: Optional[int] = None,
144
+ http_headers: Optional[Mapping[str, str]] = None,
145
+ ) -> models.ListResponseDirectoryMember:
146
+ r"""Directory Member List
147
+
148
+ List the existing directory_members
149
+
150
+ :param page: The page number from which to start (0-based)
151
+ :param limit: The maximum number of items to return
152
+ :param search_fields: String names of fields to search. Correspond by index to search field values
153
+ :param search_field_values: Values of fields to search. Correspond by index to search fields. Unless field name contains \"list\", an individual search field value cannot be a list
154
+ :param order_by: The field whose value should be used to order the results
155
+ :param order_by_direction: The direction in which to order the results
156
+ :param fields: The fields to include in the response
157
+ :param start_datetime: The start datetime for filtering results
158
+ :param end_datetime: The end datetime for filtering results
159
+ :param retries: Override the default retry configuration for this method
160
+ :param server_url: Override the default server URL for this method
161
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
162
+ :param http_headers: Additional headers to set or replace on requests.
163
+ """
164
+ base_url = None
165
+ url_variables = None
166
+ if timeout_ms is None:
167
+ timeout_ms = self.sdk_configuration.timeout_ms
168
+
169
+ if server_url is not None:
170
+ base_url = server_url
171
+ else:
172
+ base_url = self._get_url(base_url, url_variables)
173
+
174
+ request = models.DirectoryMemberListRequest(
175
+ page=page,
176
+ limit=limit,
177
+ search_fields=search_fields,
178
+ search_field_values=search_field_values,
179
+ order_by=order_by,
180
+ order_by_direction=order_by_direction,
181
+ fields=fields,
182
+ start_datetime=start_datetime,
183
+ end_datetime=end_datetime,
184
+ )
185
+
186
+ req = self._build_request_async(
187
+ method="GET",
188
+ path="/api/v1/directory_members/",
189
+ base_url=base_url,
190
+ url_variables=url_variables,
191
+ request=request,
192
+ request_body_required=False,
193
+ request_has_path_params=False,
194
+ request_has_query_params=True,
195
+ user_agent_header="user-agent",
196
+ accept_header_value="application/json",
197
+ http_headers=http_headers,
198
+ security=self.sdk_configuration.security,
199
+ timeout_ms=timeout_ms,
200
+ )
201
+
202
+ if retries == UNSET:
203
+ if self.sdk_configuration.retry_config is not UNSET:
204
+ retries = self.sdk_configuration.retry_config
205
+
206
+ retry_config = None
207
+ if isinstance(retries, utils.RetryConfig):
208
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
209
+
210
+ http_res = await self.do_request_async(
211
+ hook_ctx=HookContext(
212
+ config=self.sdk_configuration,
213
+ base_url=base_url or "",
214
+ operation_id="directory_member_list",
215
+ oauth2_scopes=None,
216
+ security_source=get_security_from_env(
217
+ self.sdk_configuration.security, models.Security
218
+ ),
219
+ ),
220
+ request=req,
221
+ error_status_codes=["422", "4XX", "5XX"],
222
+ retry_config=retry_config,
223
+ )
224
+
225
+ response_data: Any = None
226
+ if utils.match_response(http_res, "200", "application/json"):
227
+ return unmarshal_json_response(models.ListResponseDirectoryMember, http_res)
228
+ if utils.match_response(http_res, "422", "application/json"):
229
+ response_data = unmarshal_json_response(
230
+ errors.HTTPValidationErrorData, http_res
231
+ )
232
+ raise errors.HTTPValidationError(response_data, http_res)
233
+ if utils.match_response(http_res, "4XX", "*"):
234
+ http_res_text = await utils.stream_to_text_async(http_res)
235
+ raise errors.APIError("API error occurred", http_res, http_res_text)
236
+ if utils.match_response(http_res, "5XX", "*"):
237
+ http_res_text = await utils.stream_to_text_async(http_res)
238
+ raise errors.APIError("API error occurred", http_res, http_res_text)
239
+
240
+ raise errors.APIError("Unexpected response received", http_res)
241
+
242
+ def create(
243
+ self,
244
+ *,
245
+ request: Union[
246
+ models.DirectoryMemberCreate, models.DirectoryMemberCreateTypedDict
247
+ ],
248
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
249
+ server_url: Optional[str] = None,
250
+ timeout_ms: Optional[int] = None,
251
+ http_headers: Optional[Mapping[str, str]] = None,
252
+ ) -> models.DirectoryMember:
253
+ r"""Create Directory Member
254
+
255
+ Create a new member in the directory
256
+
257
+ :param request: The request object to send.
258
+ :param retries: Override the default retry configuration for this method
259
+ :param server_url: Override the default server URL for this method
260
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
261
+ :param http_headers: Additional headers to set or replace on requests.
262
+ """
263
+ base_url = None
264
+ url_variables = None
265
+ if timeout_ms is None:
266
+ timeout_ms = self.sdk_configuration.timeout_ms
267
+
268
+ if server_url is not None:
269
+ base_url = server_url
270
+ else:
271
+ base_url = self._get_url(base_url, url_variables)
272
+
273
+ if not isinstance(request, BaseModel):
274
+ request = utils.unmarshal(request, models.DirectoryMemberCreate)
275
+ request = cast(models.DirectoryMemberCreate, request)
276
+
277
+ req = self._build_request(
278
+ method="POST",
279
+ path="/api/v1/directory_members/",
280
+ base_url=base_url,
281
+ url_variables=url_variables,
282
+ request=request,
283
+ request_body_required=True,
284
+ request_has_path_params=False,
285
+ request_has_query_params=True,
286
+ user_agent_header="user-agent",
287
+ accept_header_value="application/json",
288
+ http_headers=http_headers,
289
+ security=self.sdk_configuration.security,
290
+ get_serialized_body=lambda: utils.serialize_request_body(
291
+ request, False, False, "json", models.DirectoryMemberCreate
292
+ ),
293
+ timeout_ms=timeout_ms,
294
+ )
295
+
296
+ if retries == UNSET:
297
+ if self.sdk_configuration.retry_config is not UNSET:
298
+ retries = self.sdk_configuration.retry_config
299
+
300
+ retry_config = None
301
+ if isinstance(retries, utils.RetryConfig):
302
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
303
+
304
+ http_res = self.do_request(
305
+ hook_ctx=HookContext(
306
+ config=self.sdk_configuration,
307
+ base_url=base_url or "",
308
+ operation_id="directory_member_create",
309
+ oauth2_scopes=None,
310
+ security_source=get_security_from_env(
311
+ self.sdk_configuration.security, models.Security
312
+ ),
313
+ ),
314
+ request=req,
315
+ error_status_codes=["422", "4XX", "5XX"],
316
+ retry_config=retry_config,
317
+ )
318
+
319
+ response_data: Any = None
320
+ if utils.match_response(http_res, "200", "application/json"):
321
+ return unmarshal_json_response(models.DirectoryMember, http_res)
322
+ if utils.match_response(http_res, "422", "application/json"):
323
+ response_data = unmarshal_json_response(
324
+ errors.HTTPValidationErrorData, http_res
325
+ )
326
+ raise errors.HTTPValidationError(response_data, http_res)
327
+ if utils.match_response(http_res, "4XX", "*"):
328
+ http_res_text = utils.stream_to_text(http_res)
329
+ raise errors.APIError("API error occurred", http_res, http_res_text)
330
+ if utils.match_response(http_res, "5XX", "*"):
331
+ http_res_text = utils.stream_to_text(http_res)
332
+ raise errors.APIError("API error occurred", http_res, http_res_text)
333
+
334
+ raise errors.APIError("Unexpected response received", http_res)
335
+
336
+ async def create_async(
337
+ self,
338
+ *,
339
+ request: Union[
340
+ models.DirectoryMemberCreate, models.DirectoryMemberCreateTypedDict
341
+ ],
342
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
343
+ server_url: Optional[str] = None,
344
+ timeout_ms: Optional[int] = None,
345
+ http_headers: Optional[Mapping[str, str]] = None,
346
+ ) -> models.DirectoryMember:
347
+ r"""Create Directory Member
348
+
349
+ Create a new member in the directory
350
+
351
+ :param request: The request object to send.
352
+ :param retries: Override the default retry configuration for this method
353
+ :param server_url: Override the default server URL for this method
354
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
355
+ :param http_headers: Additional headers to set or replace on requests.
356
+ """
357
+ base_url = None
358
+ url_variables = None
359
+ if timeout_ms is None:
360
+ timeout_ms = self.sdk_configuration.timeout_ms
361
+
362
+ if server_url is not None:
363
+ base_url = server_url
364
+ else:
365
+ base_url = self._get_url(base_url, url_variables)
366
+
367
+ if not isinstance(request, BaseModel):
368
+ request = utils.unmarshal(request, models.DirectoryMemberCreate)
369
+ request = cast(models.DirectoryMemberCreate, request)
370
+
371
+ req = self._build_request_async(
372
+ method="POST",
373
+ path="/api/v1/directory_members/",
374
+ base_url=base_url,
375
+ url_variables=url_variables,
376
+ request=request,
377
+ request_body_required=True,
378
+ request_has_path_params=False,
379
+ request_has_query_params=True,
380
+ user_agent_header="user-agent",
381
+ accept_header_value="application/json",
382
+ http_headers=http_headers,
383
+ security=self.sdk_configuration.security,
384
+ get_serialized_body=lambda: utils.serialize_request_body(
385
+ request, False, False, "json", models.DirectoryMemberCreate
386
+ ),
387
+ timeout_ms=timeout_ms,
388
+ )
389
+
390
+ if retries == UNSET:
391
+ if self.sdk_configuration.retry_config is not UNSET:
392
+ retries = self.sdk_configuration.retry_config
393
+
394
+ retry_config = None
395
+ if isinstance(retries, utils.RetryConfig):
396
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
397
+
398
+ http_res = await self.do_request_async(
399
+ hook_ctx=HookContext(
400
+ config=self.sdk_configuration,
401
+ base_url=base_url or "",
402
+ operation_id="directory_member_create",
403
+ oauth2_scopes=None,
404
+ security_source=get_security_from_env(
405
+ self.sdk_configuration.security, models.Security
406
+ ),
407
+ ),
408
+ request=req,
409
+ error_status_codes=["422", "4XX", "5XX"],
410
+ retry_config=retry_config,
411
+ )
412
+
413
+ response_data: Any = None
414
+ if utils.match_response(http_res, "200", "application/json"):
415
+ return unmarshal_json_response(models.DirectoryMember, http_res)
416
+ if utils.match_response(http_res, "422", "application/json"):
417
+ response_data = unmarshal_json_response(
418
+ errors.HTTPValidationErrorData, http_res
419
+ )
420
+ raise errors.HTTPValidationError(response_data, http_res)
421
+ if utils.match_response(http_res, "4XX", "*"):
422
+ http_res_text = await utils.stream_to_text_async(http_res)
423
+ raise errors.APIError("API error occurred", http_res, http_res_text)
424
+ if utils.match_response(http_res, "5XX", "*"):
425
+ http_res_text = await utils.stream_to_text_async(http_res)
426
+ raise errors.APIError("API error occurred", http_res, http_res_text)
427
+
428
+ raise errors.APIError("Unexpected response received", http_res)
429
+
430
+ def get_by_id(
431
+ self,
432
+ *,
433
+ member_id: int,
434
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
435
+ server_url: Optional[str] = None,
436
+ timeout_ms: Optional[int] = None,
437
+ http_headers: Optional[Mapping[str, str]] = None,
438
+ ) -> models.DirectoryMember:
439
+ r"""Get Directory Member By Id
440
+
441
+ Get a DirectoryMember by ID.
442
+
443
+ :param member_id:
444
+ :param retries: Override the default retry configuration for this method
445
+ :param server_url: Override the default server URL for this method
446
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
447
+ :param http_headers: Additional headers to set or replace on requests.
448
+ """
449
+ base_url = None
450
+ url_variables = None
451
+ if timeout_ms is None:
452
+ timeout_ms = self.sdk_configuration.timeout_ms
453
+
454
+ if server_url is not None:
455
+ base_url = server_url
456
+ else:
457
+ base_url = self._get_url(base_url, url_variables)
458
+
459
+ request = models.DirectoryMemberGetByIDRequest(
460
+ member_id=member_id,
461
+ )
462
+
463
+ req = self._build_request(
464
+ method="GET",
465
+ path="/api/v1/directory_members/{member_id}",
466
+ base_url=base_url,
467
+ url_variables=url_variables,
468
+ request=request,
469
+ request_body_required=False,
470
+ request_has_path_params=True,
471
+ request_has_query_params=True,
472
+ user_agent_header="user-agent",
473
+ accept_header_value="application/json",
474
+ http_headers=http_headers,
475
+ security=self.sdk_configuration.security,
476
+ timeout_ms=timeout_ms,
477
+ )
478
+
479
+ if retries == UNSET:
480
+ if self.sdk_configuration.retry_config is not UNSET:
481
+ retries = self.sdk_configuration.retry_config
482
+
483
+ retry_config = None
484
+ if isinstance(retries, utils.RetryConfig):
485
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
486
+
487
+ http_res = self.do_request(
488
+ hook_ctx=HookContext(
489
+ config=self.sdk_configuration,
490
+ base_url=base_url or "",
491
+ operation_id="directory_member_get_by_id",
492
+ oauth2_scopes=None,
493
+ security_source=get_security_from_env(
494
+ self.sdk_configuration.security, models.Security
495
+ ),
496
+ ),
497
+ request=req,
498
+ error_status_codes=["422", "4XX", "5XX"],
499
+ retry_config=retry_config,
500
+ )
501
+
502
+ response_data: Any = None
503
+ if utils.match_response(http_res, "200", "application/json"):
504
+ return unmarshal_json_response(models.DirectoryMember, http_res)
505
+ if utils.match_response(http_res, "422", "application/json"):
506
+ response_data = unmarshal_json_response(
507
+ errors.HTTPValidationErrorData, http_res
508
+ )
509
+ raise errors.HTTPValidationError(response_data, http_res)
510
+ if utils.match_response(http_res, "4XX", "*"):
511
+ http_res_text = utils.stream_to_text(http_res)
512
+ raise errors.APIError("API error occurred", http_res, http_res_text)
513
+ if utils.match_response(http_res, "5XX", "*"):
514
+ http_res_text = utils.stream_to_text(http_res)
515
+ raise errors.APIError("API error occurred", http_res, http_res_text)
516
+
517
+ raise errors.APIError("Unexpected response received", http_res)
518
+
519
+ async def get_by_id_async(
520
+ self,
521
+ *,
522
+ member_id: int,
523
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
524
+ server_url: Optional[str] = None,
525
+ timeout_ms: Optional[int] = None,
526
+ http_headers: Optional[Mapping[str, str]] = None,
527
+ ) -> models.DirectoryMember:
528
+ r"""Get Directory Member By Id
529
+
530
+ Get a DirectoryMember by ID.
531
+
532
+ :param member_id:
533
+ :param retries: Override the default retry configuration for this method
534
+ :param server_url: Override the default server URL for this method
535
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
536
+ :param http_headers: Additional headers to set or replace on requests.
537
+ """
538
+ base_url = None
539
+ url_variables = None
540
+ if timeout_ms is None:
541
+ timeout_ms = self.sdk_configuration.timeout_ms
542
+
543
+ if server_url is not None:
544
+ base_url = server_url
545
+ else:
546
+ base_url = self._get_url(base_url, url_variables)
547
+
548
+ request = models.DirectoryMemberGetByIDRequest(
549
+ member_id=member_id,
550
+ )
551
+
552
+ req = self._build_request_async(
553
+ method="GET",
554
+ path="/api/v1/directory_members/{member_id}",
555
+ base_url=base_url,
556
+ url_variables=url_variables,
557
+ request=request,
558
+ request_body_required=False,
559
+ request_has_path_params=True,
560
+ request_has_query_params=True,
561
+ user_agent_header="user-agent",
562
+ accept_header_value="application/json",
563
+ http_headers=http_headers,
564
+ security=self.sdk_configuration.security,
565
+ timeout_ms=timeout_ms,
566
+ )
567
+
568
+ if retries == UNSET:
569
+ if self.sdk_configuration.retry_config is not UNSET:
570
+ retries = self.sdk_configuration.retry_config
571
+
572
+ retry_config = None
573
+ if isinstance(retries, utils.RetryConfig):
574
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
575
+
576
+ http_res = await self.do_request_async(
577
+ hook_ctx=HookContext(
578
+ config=self.sdk_configuration,
579
+ base_url=base_url or "",
580
+ operation_id="directory_member_get_by_id",
581
+ oauth2_scopes=None,
582
+ security_source=get_security_from_env(
583
+ self.sdk_configuration.security, models.Security
584
+ ),
585
+ ),
586
+ request=req,
587
+ error_status_codes=["422", "4XX", "5XX"],
588
+ retry_config=retry_config,
589
+ )
590
+
591
+ response_data: Any = None
592
+ if utils.match_response(http_res, "200", "application/json"):
593
+ return unmarshal_json_response(models.DirectoryMember, http_res)
594
+ if utils.match_response(http_res, "422", "application/json"):
595
+ response_data = unmarshal_json_response(
596
+ errors.HTTPValidationErrorData, http_res
597
+ )
598
+ raise errors.HTTPValidationError(response_data, http_res)
599
+ if utils.match_response(http_res, "4XX", "*"):
600
+ http_res_text = await utils.stream_to_text_async(http_res)
601
+ raise errors.APIError("API error occurred", http_res, http_res_text)
602
+ if utils.match_response(http_res, "5XX", "*"):
603
+ http_res_text = await utils.stream_to_text_async(http_res)
604
+ raise errors.APIError("API error occurred", http_res, http_res_text)
605
+
606
+ raise errors.APIError("Unexpected response received", http_res)
607
+
608
+ def update(
609
+ self,
610
+ *,
611
+ member_id: int,
612
+ directory_member: Union[
613
+ models.DirectoryMember, models.DirectoryMemberTypedDict
614
+ ],
615
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
616
+ server_url: Optional[str] = None,
617
+ timeout_ms: Optional[int] = None,
618
+ http_headers: Optional[Mapping[str, str]] = None,
619
+ ) -> models.DirectoryMember:
620
+ r"""Update Directory Member
621
+
622
+ Update a DirectoryMember.
623
+
624
+ :param member_id:
625
+ :param directory_member:
626
+ :param retries: Override the default retry configuration for this method
627
+ :param server_url: Override the default server URL for this method
628
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
629
+ :param http_headers: Additional headers to set or replace on requests.
630
+ """
631
+ base_url = None
632
+ url_variables = None
633
+ if timeout_ms is None:
634
+ timeout_ms = self.sdk_configuration.timeout_ms
635
+
636
+ if server_url is not None:
637
+ base_url = server_url
638
+ else:
639
+ base_url = self._get_url(base_url, url_variables)
640
+
641
+ request = models.DirectoryMemberUpdateRequest(
642
+ member_id=member_id,
643
+ directory_member=utils.get_pydantic_model(
644
+ directory_member, models.DirectoryMember
645
+ ),
646
+ )
647
+
648
+ req = self._build_request(
649
+ method="PUT",
650
+ path="/api/v1/directory_members/{member_id}",
651
+ base_url=base_url,
652
+ url_variables=url_variables,
653
+ request=request,
654
+ request_body_required=True,
655
+ request_has_path_params=True,
656
+ request_has_query_params=True,
657
+ user_agent_header="user-agent",
658
+ accept_header_value="application/json",
659
+ http_headers=http_headers,
660
+ security=self.sdk_configuration.security,
661
+ get_serialized_body=lambda: utils.serialize_request_body(
662
+ request.directory_member, False, False, "json", models.DirectoryMember
663
+ ),
664
+ timeout_ms=timeout_ms,
665
+ )
666
+
667
+ if retries == UNSET:
668
+ if self.sdk_configuration.retry_config is not UNSET:
669
+ retries = self.sdk_configuration.retry_config
670
+
671
+ retry_config = None
672
+ if isinstance(retries, utils.RetryConfig):
673
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
674
+
675
+ http_res = self.do_request(
676
+ hook_ctx=HookContext(
677
+ config=self.sdk_configuration,
678
+ base_url=base_url or "",
679
+ operation_id="directory_member_update",
680
+ oauth2_scopes=None,
681
+ security_source=get_security_from_env(
682
+ self.sdk_configuration.security, models.Security
683
+ ),
684
+ ),
685
+ request=req,
686
+ error_status_codes=["400", "404", "412", "422", "4XX", "500", "5XX"],
687
+ retry_config=retry_config,
688
+ )
689
+
690
+ response_data: Any = None
691
+ if utils.match_response(http_res, "200", "application/json"):
692
+ return unmarshal_json_response(models.DirectoryMember, http_res)
693
+ if utils.match_response(http_res, "422", "application/json"):
694
+ response_data = unmarshal_json_response(
695
+ errors.HTTPValidationErrorData, http_res
696
+ )
697
+ raise errors.HTTPValidationError(response_data, http_res)
698
+ if utils.match_response(http_res, ["400", "404", "412", "4XX"], "*"):
699
+ http_res_text = utils.stream_to_text(http_res)
700
+ raise errors.APIError("API error occurred", http_res, http_res_text)
701
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
702
+ http_res_text = utils.stream_to_text(http_res)
703
+ raise errors.APIError("API error occurred", http_res, http_res_text)
704
+
705
+ raise errors.APIError("Unexpected response received", http_res)
706
+
707
+ async def update_async(
708
+ self,
709
+ *,
710
+ member_id: int,
711
+ directory_member: Union[
712
+ models.DirectoryMember, models.DirectoryMemberTypedDict
713
+ ],
714
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
715
+ server_url: Optional[str] = None,
716
+ timeout_ms: Optional[int] = None,
717
+ http_headers: Optional[Mapping[str, str]] = None,
718
+ ) -> models.DirectoryMember:
719
+ r"""Update Directory Member
720
+
721
+ Update a DirectoryMember.
722
+
723
+ :param member_id:
724
+ :param directory_member:
725
+ :param retries: Override the default retry configuration for this method
726
+ :param server_url: Override the default server URL for this method
727
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
728
+ :param http_headers: Additional headers to set or replace on requests.
729
+ """
730
+ base_url = None
731
+ url_variables = None
732
+ if timeout_ms is None:
733
+ timeout_ms = self.sdk_configuration.timeout_ms
734
+
735
+ if server_url is not None:
736
+ base_url = server_url
737
+ else:
738
+ base_url = self._get_url(base_url, url_variables)
739
+
740
+ request = models.DirectoryMemberUpdateRequest(
741
+ member_id=member_id,
742
+ directory_member=utils.get_pydantic_model(
743
+ directory_member, models.DirectoryMember
744
+ ),
745
+ )
746
+
747
+ req = self._build_request_async(
748
+ method="PUT",
749
+ path="/api/v1/directory_members/{member_id}",
750
+ base_url=base_url,
751
+ url_variables=url_variables,
752
+ request=request,
753
+ request_body_required=True,
754
+ request_has_path_params=True,
755
+ request_has_query_params=True,
756
+ user_agent_header="user-agent",
757
+ accept_header_value="application/json",
758
+ http_headers=http_headers,
759
+ security=self.sdk_configuration.security,
760
+ get_serialized_body=lambda: utils.serialize_request_body(
761
+ request.directory_member, False, False, "json", models.DirectoryMember
762
+ ),
763
+ timeout_ms=timeout_ms,
764
+ )
765
+
766
+ if retries == UNSET:
767
+ if self.sdk_configuration.retry_config is not UNSET:
768
+ retries = self.sdk_configuration.retry_config
769
+
770
+ retry_config = None
771
+ if isinstance(retries, utils.RetryConfig):
772
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
773
+
774
+ http_res = await self.do_request_async(
775
+ hook_ctx=HookContext(
776
+ config=self.sdk_configuration,
777
+ base_url=base_url or "",
778
+ operation_id="directory_member_update",
779
+ oauth2_scopes=None,
780
+ security_source=get_security_from_env(
781
+ self.sdk_configuration.security, models.Security
782
+ ),
783
+ ),
784
+ request=req,
785
+ error_status_codes=["400", "404", "412", "422", "4XX", "500", "5XX"],
786
+ retry_config=retry_config,
787
+ )
788
+
789
+ response_data: Any = None
790
+ if utils.match_response(http_res, "200", "application/json"):
791
+ return unmarshal_json_response(models.DirectoryMember, http_res)
792
+ if utils.match_response(http_res, "422", "application/json"):
793
+ response_data = unmarshal_json_response(
794
+ errors.HTTPValidationErrorData, http_res
795
+ )
796
+ raise errors.HTTPValidationError(response_data, http_res)
797
+ if utils.match_response(http_res, ["400", "404", "412", "4XX"], "*"):
798
+ http_res_text = await utils.stream_to_text_async(http_res)
799
+ raise errors.APIError("API error occurred", http_res, http_res_text)
800
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
801
+ http_res_text = await utils.stream_to_text_async(http_res)
802
+ raise errors.APIError("API error occurred", http_res, http_res_text)
803
+
804
+ raise errors.APIError("Unexpected response received", http_res)
805
+
806
+ def delete(
807
+ self,
808
+ *,
809
+ member_id: int,
810
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
811
+ server_url: Optional[str] = None,
812
+ timeout_ms: Optional[int] = None,
813
+ http_headers: Optional[Mapping[str, str]] = None,
814
+ ) -> Any:
815
+ r"""Delete Directory Member
816
+
817
+ Delete a DirectoryMember.
818
+
819
+ :param member_id:
820
+ :param retries: Override the default retry configuration for this method
821
+ :param server_url: Override the default server URL for this method
822
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
823
+ :param http_headers: Additional headers to set or replace on requests.
824
+ """
825
+ base_url = None
826
+ url_variables = None
827
+ if timeout_ms is None:
828
+ timeout_ms = self.sdk_configuration.timeout_ms
829
+
830
+ if server_url is not None:
831
+ base_url = server_url
832
+ else:
833
+ base_url = self._get_url(base_url, url_variables)
834
+
835
+ request = models.DirectoryMemberDeleteRequest(
836
+ member_id=member_id,
837
+ )
838
+
839
+ req = self._build_request(
840
+ method="DELETE",
841
+ path="/api/v1/directory_members/{member_id}",
842
+ base_url=base_url,
843
+ url_variables=url_variables,
844
+ request=request,
845
+ request_body_required=False,
846
+ request_has_path_params=True,
847
+ request_has_query_params=True,
848
+ user_agent_header="user-agent",
849
+ accept_header_value="application/json",
850
+ http_headers=http_headers,
851
+ security=self.sdk_configuration.security,
852
+ timeout_ms=timeout_ms,
853
+ )
854
+
855
+ if retries == UNSET:
856
+ if self.sdk_configuration.retry_config is not UNSET:
857
+ retries = self.sdk_configuration.retry_config
858
+
859
+ retry_config = None
860
+ if isinstance(retries, utils.RetryConfig):
861
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
862
+
863
+ http_res = self.do_request(
864
+ hook_ctx=HookContext(
865
+ config=self.sdk_configuration,
866
+ base_url=base_url or "",
867
+ operation_id="directory_member_delete",
868
+ oauth2_scopes=None,
869
+ security_source=get_security_from_env(
870
+ self.sdk_configuration.security, models.Security
871
+ ),
872
+ ),
873
+ request=req,
874
+ error_status_codes=["400", "404", "422", "4XX", "500", "5XX"],
875
+ retry_config=retry_config,
876
+ )
877
+
878
+ response_data: Any = None
879
+ if utils.match_response(http_res, "200", "application/json"):
880
+ return unmarshal_json_response(Any, http_res)
881
+ if utils.match_response(http_res, "422", "application/json"):
882
+ response_data = unmarshal_json_response(
883
+ errors.HTTPValidationErrorData, http_res
884
+ )
885
+ raise errors.HTTPValidationError(response_data, http_res)
886
+ if utils.match_response(http_res, ["400", "404", "4XX"], "*"):
887
+ http_res_text = utils.stream_to_text(http_res)
888
+ raise errors.APIError("API error occurred", http_res, http_res_text)
889
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
890
+ http_res_text = utils.stream_to_text(http_res)
891
+ raise errors.APIError("API error occurred", http_res, http_res_text)
892
+
893
+ raise errors.APIError("Unexpected response received", http_res)
894
+
895
+ async def delete_async(
896
+ self,
897
+ *,
898
+ member_id: int,
899
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
900
+ server_url: Optional[str] = None,
901
+ timeout_ms: Optional[int] = None,
902
+ http_headers: Optional[Mapping[str, str]] = None,
903
+ ) -> Any:
904
+ r"""Delete Directory Member
905
+
906
+ Delete a DirectoryMember.
907
+
908
+ :param member_id:
909
+ :param retries: Override the default retry configuration for this method
910
+ :param server_url: Override the default server URL for this method
911
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
912
+ :param http_headers: Additional headers to set or replace on requests.
913
+ """
914
+ base_url = None
915
+ url_variables = None
916
+ if timeout_ms is None:
917
+ timeout_ms = self.sdk_configuration.timeout_ms
918
+
919
+ if server_url is not None:
920
+ base_url = server_url
921
+ else:
922
+ base_url = self._get_url(base_url, url_variables)
923
+
924
+ request = models.DirectoryMemberDeleteRequest(
925
+ member_id=member_id,
926
+ )
927
+
928
+ req = self._build_request_async(
929
+ method="DELETE",
930
+ path="/api/v1/directory_members/{member_id}",
931
+ base_url=base_url,
932
+ url_variables=url_variables,
933
+ request=request,
934
+ request_body_required=False,
935
+ request_has_path_params=True,
936
+ request_has_query_params=True,
937
+ user_agent_header="user-agent",
938
+ accept_header_value="application/json",
939
+ http_headers=http_headers,
940
+ security=self.sdk_configuration.security,
941
+ timeout_ms=timeout_ms,
942
+ )
943
+
944
+ if retries == UNSET:
945
+ if self.sdk_configuration.retry_config is not UNSET:
946
+ retries = self.sdk_configuration.retry_config
947
+
948
+ retry_config = None
949
+ if isinstance(retries, utils.RetryConfig):
950
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
951
+
952
+ http_res = await self.do_request_async(
953
+ hook_ctx=HookContext(
954
+ config=self.sdk_configuration,
955
+ base_url=base_url or "",
956
+ operation_id="directory_member_delete",
957
+ oauth2_scopes=None,
958
+ security_source=get_security_from_env(
959
+ self.sdk_configuration.security, models.Security
960
+ ),
961
+ ),
962
+ request=req,
963
+ error_status_codes=["400", "404", "422", "4XX", "500", "5XX"],
964
+ retry_config=retry_config,
965
+ )
966
+
967
+ response_data: Any = None
968
+ if utils.match_response(http_res, "200", "application/json"):
969
+ return unmarshal_json_response(Any, http_res)
970
+ if utils.match_response(http_res, "422", "application/json"):
971
+ response_data = unmarshal_json_response(
972
+ errors.HTTPValidationErrorData, http_res
973
+ )
974
+ raise errors.HTTPValidationError(response_data, http_res)
975
+ if utils.match_response(http_res, ["400", "404", "4XX"], "*"):
976
+ http_res_text = await utils.stream_to_text_async(http_res)
977
+ raise errors.APIError("API error occurred", http_res, http_res_text)
978
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
979
+ http_res_text = await utils.stream_to_text_async(http_res)
980
+ raise errors.APIError("API error occurred", http_res, http_res_text)
981
+
982
+ raise errors.APIError("Unexpected response received", http_res)
983
+
984
+ def directory_member_test_extension(
985
+ self,
986
+ *,
987
+ member_id: int,
988
+ timestamp: datetime,
989
+ language_code: OptionalNullable[models.LanguageCode] = UNSET,
990
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
991
+ server_url: Optional[str] = None,
992
+ timeout_ms: Optional[int] = None,
993
+ http_headers: Optional[Mapping[str, str]] = None,
994
+ ) -> models.DirectoryMemberTestResponse:
995
+ r"""Test Directory Member Extension
996
+
997
+ Test directory member extension at a specific timestamp and language.
998
+
999
+ :param member_id:
1000
+ :param timestamp: Timestamp for test
1001
+ :param language_code: Optional language code for test
1002
+ :param retries: Override the default retry configuration for this method
1003
+ :param server_url: Override the default server URL for this method
1004
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1005
+ :param http_headers: Additional headers to set or replace on requests.
1006
+ """
1007
+ base_url = None
1008
+ url_variables = None
1009
+ if timeout_ms is None:
1010
+ timeout_ms = self.sdk_configuration.timeout_ms
1011
+
1012
+ if server_url is not None:
1013
+ base_url = server_url
1014
+ else:
1015
+ base_url = self._get_url(base_url, url_variables)
1016
+
1017
+ request = models.DirectoryMemberTestExtensionRequest(
1018
+ member_id=member_id,
1019
+ timestamp=timestamp,
1020
+ language_code=language_code,
1021
+ )
1022
+
1023
+ req = self._build_request(
1024
+ method="GET",
1025
+ path="/api/v1/directory_members/{member_id}/test",
1026
+ base_url=base_url,
1027
+ url_variables=url_variables,
1028
+ request=request,
1029
+ request_body_required=False,
1030
+ request_has_path_params=True,
1031
+ request_has_query_params=True,
1032
+ user_agent_header="user-agent",
1033
+ accept_header_value="application/json",
1034
+ http_headers=http_headers,
1035
+ security=self.sdk_configuration.security,
1036
+ timeout_ms=timeout_ms,
1037
+ )
1038
+
1039
+ if retries == UNSET:
1040
+ if self.sdk_configuration.retry_config is not UNSET:
1041
+ retries = self.sdk_configuration.retry_config
1042
+
1043
+ retry_config = None
1044
+ if isinstance(retries, utils.RetryConfig):
1045
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1046
+
1047
+ http_res = self.do_request(
1048
+ hook_ctx=HookContext(
1049
+ config=self.sdk_configuration,
1050
+ base_url=base_url or "",
1051
+ operation_id="directory_member_test_extension",
1052
+ oauth2_scopes=None,
1053
+ security_source=get_security_from_env(
1054
+ self.sdk_configuration.security, models.Security
1055
+ ),
1056
+ ),
1057
+ request=req,
1058
+ error_status_codes=["422", "4XX", "5XX"],
1059
+ retry_config=retry_config,
1060
+ )
1061
+
1062
+ response_data: Any = None
1063
+ if utils.match_response(http_res, "200", "application/json"):
1064
+ return unmarshal_json_response(models.DirectoryMemberTestResponse, http_res)
1065
+ if utils.match_response(http_res, "422", "application/json"):
1066
+ response_data = unmarshal_json_response(
1067
+ errors.HTTPValidationErrorData, http_res
1068
+ )
1069
+ raise errors.HTTPValidationError(response_data, http_res)
1070
+ if utils.match_response(http_res, "4XX", "*"):
1071
+ http_res_text = utils.stream_to_text(http_res)
1072
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1073
+ if utils.match_response(http_res, "5XX", "*"):
1074
+ http_res_text = utils.stream_to_text(http_res)
1075
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1076
+
1077
+ raise errors.APIError("Unexpected response received", http_res)
1078
+
1079
+ async def directory_member_test_extension_async(
1080
+ self,
1081
+ *,
1082
+ member_id: int,
1083
+ timestamp: datetime,
1084
+ language_code: OptionalNullable[models.LanguageCode] = UNSET,
1085
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1086
+ server_url: Optional[str] = None,
1087
+ timeout_ms: Optional[int] = None,
1088
+ http_headers: Optional[Mapping[str, str]] = None,
1089
+ ) -> models.DirectoryMemberTestResponse:
1090
+ r"""Test Directory Member Extension
1091
+
1092
+ Test directory member extension at a specific timestamp and language.
1093
+
1094
+ :param member_id:
1095
+ :param timestamp: Timestamp for test
1096
+ :param language_code: Optional language code for test
1097
+ :param retries: Override the default retry configuration for this method
1098
+ :param server_url: Override the default server URL for this method
1099
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1100
+ :param http_headers: Additional headers to set or replace on requests.
1101
+ """
1102
+ base_url = None
1103
+ url_variables = None
1104
+ if timeout_ms is None:
1105
+ timeout_ms = self.sdk_configuration.timeout_ms
1106
+
1107
+ if server_url is not None:
1108
+ base_url = server_url
1109
+ else:
1110
+ base_url = self._get_url(base_url, url_variables)
1111
+
1112
+ request = models.DirectoryMemberTestExtensionRequest(
1113
+ member_id=member_id,
1114
+ timestamp=timestamp,
1115
+ language_code=language_code,
1116
+ )
1117
+
1118
+ req = self._build_request_async(
1119
+ method="GET",
1120
+ path="/api/v1/directory_members/{member_id}/test",
1121
+ base_url=base_url,
1122
+ url_variables=url_variables,
1123
+ request=request,
1124
+ request_body_required=False,
1125
+ request_has_path_params=True,
1126
+ request_has_query_params=True,
1127
+ user_agent_header="user-agent",
1128
+ accept_header_value="application/json",
1129
+ http_headers=http_headers,
1130
+ security=self.sdk_configuration.security,
1131
+ timeout_ms=timeout_ms,
1132
+ )
1133
+
1134
+ if retries == UNSET:
1135
+ if self.sdk_configuration.retry_config is not UNSET:
1136
+ retries = self.sdk_configuration.retry_config
1137
+
1138
+ retry_config = None
1139
+ if isinstance(retries, utils.RetryConfig):
1140
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1141
+
1142
+ http_res = await self.do_request_async(
1143
+ hook_ctx=HookContext(
1144
+ config=self.sdk_configuration,
1145
+ base_url=base_url or "",
1146
+ operation_id="directory_member_test_extension",
1147
+ oauth2_scopes=None,
1148
+ security_source=get_security_from_env(
1149
+ self.sdk_configuration.security, models.Security
1150
+ ),
1151
+ ),
1152
+ request=req,
1153
+ error_status_codes=["422", "4XX", "5XX"],
1154
+ retry_config=retry_config,
1155
+ )
1156
+
1157
+ response_data: Any = None
1158
+ if utils.match_response(http_res, "200", "application/json"):
1159
+ return unmarshal_json_response(models.DirectoryMemberTestResponse, http_res)
1160
+ if utils.match_response(http_res, "422", "application/json"):
1161
+ response_data = unmarshal_json_response(
1162
+ errors.HTTPValidationErrorData, http_res
1163
+ )
1164
+ raise errors.HTTPValidationError(response_data, http_res)
1165
+ if utils.match_response(http_res, "4XX", "*"):
1166
+ http_res_text = await utils.stream_to_text_async(http_res)
1167
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1168
+ if utils.match_response(http_res, "5XX", "*"):
1169
+ http_res_text = await utils.stream_to_text_async(http_res)
1170
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1171
+
1172
+ raise errors.APIError("Unexpected response received", http_res)
1173
+
1174
+ def directory_member_bulk_load(
1175
+ self,
1176
+ *,
1177
+ request: Union[
1178
+ models.BodyDirectoryMemberBulkLoad,
1179
+ models.BodyDirectoryMemberBulkLoadTypedDict,
1180
+ ],
1181
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1182
+ server_url: Optional[str] = None,
1183
+ timeout_ms: Optional[int] = None,
1184
+ http_headers: Optional[Mapping[str, str]] = None,
1185
+ ) -> Any:
1186
+ r"""Bulk Load Directory Members
1187
+
1188
+ Update Directory Members in chunks of 100.
1189
+
1190
+ :param request: The request object to send.
1191
+ :param retries: Override the default retry configuration for this method
1192
+ :param server_url: Override the default server URL for this method
1193
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1194
+ :param http_headers: Additional headers to set or replace on requests.
1195
+ """
1196
+ base_url = None
1197
+ url_variables = None
1198
+ if timeout_ms is None:
1199
+ timeout_ms = self.sdk_configuration.timeout_ms
1200
+
1201
+ if server_url is not None:
1202
+ base_url = server_url
1203
+ else:
1204
+ base_url = self._get_url(base_url, url_variables)
1205
+
1206
+ if not isinstance(request, BaseModel):
1207
+ request = utils.unmarshal(request, models.BodyDirectoryMemberBulkLoad)
1208
+ request = cast(models.BodyDirectoryMemberBulkLoad, request)
1209
+
1210
+ req = self._build_request(
1211
+ method="PUT",
1212
+ path="/api/v1/directory_members/upload/",
1213
+ base_url=base_url,
1214
+ url_variables=url_variables,
1215
+ request=request,
1216
+ request_body_required=True,
1217
+ request_has_path_params=False,
1218
+ request_has_query_params=True,
1219
+ user_agent_header="user-agent",
1220
+ accept_header_value="application/json",
1221
+ http_headers=http_headers,
1222
+ security=self.sdk_configuration.security,
1223
+ get_serialized_body=lambda: utils.serialize_request_body(
1224
+ request, False, False, "multipart", models.BodyDirectoryMemberBulkLoad
1225
+ ),
1226
+ timeout_ms=timeout_ms,
1227
+ )
1228
+
1229
+ if retries == UNSET:
1230
+ if self.sdk_configuration.retry_config is not UNSET:
1231
+ retries = self.sdk_configuration.retry_config
1232
+
1233
+ retry_config = None
1234
+ if isinstance(retries, utils.RetryConfig):
1235
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1236
+
1237
+ http_res = self.do_request(
1238
+ hook_ctx=HookContext(
1239
+ config=self.sdk_configuration,
1240
+ base_url=base_url or "",
1241
+ operation_id="directory_member_bulk_load",
1242
+ oauth2_scopes=None,
1243
+ security_source=get_security_from_env(
1244
+ self.sdk_configuration.security, models.Security
1245
+ ),
1246
+ ),
1247
+ request=req,
1248
+ error_status_codes=["400", "404", "412", "422", "4XX", "500", "5XX"],
1249
+ retry_config=retry_config,
1250
+ )
1251
+
1252
+ response_data: Any = None
1253
+ if utils.match_response(http_res, "200", "application/json"):
1254
+ return unmarshal_json_response(Any, http_res)
1255
+ if utils.match_response(http_res, "422", "application/json"):
1256
+ response_data = unmarshal_json_response(
1257
+ errors.HTTPValidationErrorData, http_res
1258
+ )
1259
+ raise errors.HTTPValidationError(response_data, http_res)
1260
+ if utils.match_response(http_res, ["400", "404", "412", "4XX"], "*"):
1261
+ http_res_text = utils.stream_to_text(http_res)
1262
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1263
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
1264
+ http_res_text = utils.stream_to_text(http_res)
1265
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1266
+
1267
+ raise errors.APIError("Unexpected response received", http_res)
1268
+
1269
+ async def directory_member_bulk_load_async(
1270
+ self,
1271
+ *,
1272
+ request: Union[
1273
+ models.BodyDirectoryMemberBulkLoad,
1274
+ models.BodyDirectoryMemberBulkLoadTypedDict,
1275
+ ],
1276
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1277
+ server_url: Optional[str] = None,
1278
+ timeout_ms: Optional[int] = None,
1279
+ http_headers: Optional[Mapping[str, str]] = None,
1280
+ ) -> Any:
1281
+ r"""Bulk Load Directory Members
1282
+
1283
+ Update Directory Members in chunks of 100.
1284
+
1285
+ :param request: The request object to send.
1286
+ :param retries: Override the default retry configuration for this method
1287
+ :param server_url: Override the default server URL for this method
1288
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1289
+ :param http_headers: Additional headers to set or replace on requests.
1290
+ """
1291
+ base_url = None
1292
+ url_variables = None
1293
+ if timeout_ms is None:
1294
+ timeout_ms = self.sdk_configuration.timeout_ms
1295
+
1296
+ if server_url is not None:
1297
+ base_url = server_url
1298
+ else:
1299
+ base_url = self._get_url(base_url, url_variables)
1300
+
1301
+ if not isinstance(request, BaseModel):
1302
+ request = utils.unmarshal(request, models.BodyDirectoryMemberBulkLoad)
1303
+ request = cast(models.BodyDirectoryMemberBulkLoad, request)
1304
+
1305
+ req = self._build_request_async(
1306
+ method="PUT",
1307
+ path="/api/v1/directory_members/upload/",
1308
+ base_url=base_url,
1309
+ url_variables=url_variables,
1310
+ request=request,
1311
+ request_body_required=True,
1312
+ request_has_path_params=False,
1313
+ request_has_query_params=True,
1314
+ user_agent_header="user-agent",
1315
+ accept_header_value="application/json",
1316
+ http_headers=http_headers,
1317
+ security=self.sdk_configuration.security,
1318
+ get_serialized_body=lambda: utils.serialize_request_body(
1319
+ request, False, False, "multipart", models.BodyDirectoryMemberBulkLoad
1320
+ ),
1321
+ timeout_ms=timeout_ms,
1322
+ )
1323
+
1324
+ if retries == UNSET:
1325
+ if self.sdk_configuration.retry_config is not UNSET:
1326
+ retries = self.sdk_configuration.retry_config
1327
+
1328
+ retry_config = None
1329
+ if isinstance(retries, utils.RetryConfig):
1330
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1331
+
1332
+ http_res = await self.do_request_async(
1333
+ hook_ctx=HookContext(
1334
+ config=self.sdk_configuration,
1335
+ base_url=base_url or "",
1336
+ operation_id="directory_member_bulk_load",
1337
+ oauth2_scopes=None,
1338
+ security_source=get_security_from_env(
1339
+ self.sdk_configuration.security, models.Security
1340
+ ),
1341
+ ),
1342
+ request=req,
1343
+ error_status_codes=["400", "404", "412", "422", "4XX", "500", "5XX"],
1344
+ retry_config=retry_config,
1345
+ )
1346
+
1347
+ response_data: Any = None
1348
+ if utils.match_response(http_res, "200", "application/json"):
1349
+ return unmarshal_json_response(Any, http_res)
1350
+ if utils.match_response(http_res, "422", "application/json"):
1351
+ response_data = unmarshal_json_response(
1352
+ errors.HTTPValidationErrorData, http_res
1353
+ )
1354
+ raise errors.HTTPValidationError(response_data, http_res)
1355
+ if utils.match_response(http_res, ["400", "404", "412", "4XX"], "*"):
1356
+ http_res_text = await utils.stream_to_text_async(http_res)
1357
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1358
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
1359
+ http_res_text = await utils.stream_to_text_async(http_res)
1360
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1361
+
1362
+ raise errors.APIError("Unexpected response received", http_res)
1363
+
1364
+ def directory_member_download(
1365
+ self,
1366
+ *,
1367
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1368
+ server_url: Optional[str] = None,
1369
+ timeout_ms: Optional[int] = None,
1370
+ http_headers: Optional[Mapping[str, str]] = None,
1371
+ ) -> Any:
1372
+ r"""Download Directory Members
1373
+
1374
+ Download the entire directory as a JSON file.
1375
+
1376
+ :param retries: Override the default retry configuration for this method
1377
+ :param server_url: Override the default server URL for this method
1378
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1379
+ :param http_headers: Additional headers to set or replace on requests.
1380
+ """
1381
+ base_url = None
1382
+ url_variables = None
1383
+ if timeout_ms is None:
1384
+ timeout_ms = self.sdk_configuration.timeout_ms
1385
+
1386
+ if server_url is not None:
1387
+ base_url = server_url
1388
+ else:
1389
+ base_url = self._get_url(base_url, url_variables)
1390
+ req = self._build_request(
1391
+ method="GET",
1392
+ path="/api/v1/directory_members/download/",
1393
+ base_url=base_url,
1394
+ url_variables=url_variables,
1395
+ request=None,
1396
+ request_body_required=False,
1397
+ request_has_path_params=False,
1398
+ request_has_query_params=True,
1399
+ user_agent_header="user-agent",
1400
+ accept_header_value="application/json",
1401
+ http_headers=http_headers,
1402
+ security=self.sdk_configuration.security,
1403
+ timeout_ms=timeout_ms,
1404
+ )
1405
+
1406
+ if retries == UNSET:
1407
+ if self.sdk_configuration.retry_config is not UNSET:
1408
+ retries = self.sdk_configuration.retry_config
1409
+
1410
+ retry_config = None
1411
+ if isinstance(retries, utils.RetryConfig):
1412
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1413
+
1414
+ http_res = self.do_request(
1415
+ hook_ctx=HookContext(
1416
+ config=self.sdk_configuration,
1417
+ base_url=base_url or "",
1418
+ operation_id="directory_member_download",
1419
+ oauth2_scopes=None,
1420
+ security_source=get_security_from_env(
1421
+ self.sdk_configuration.security, models.Security
1422
+ ),
1423
+ ),
1424
+ request=req,
1425
+ error_status_codes=["4XX", "500", "5XX"],
1426
+ retry_config=retry_config,
1427
+ )
1428
+
1429
+ if utils.match_response(http_res, "200", "application/json"):
1430
+ return unmarshal_json_response(Any, http_res)
1431
+ if utils.match_response(http_res, "4XX", "*"):
1432
+ http_res_text = utils.stream_to_text(http_res)
1433
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1434
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
1435
+ http_res_text = utils.stream_to_text(http_res)
1436
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1437
+
1438
+ raise errors.APIError("Unexpected response received", http_res)
1439
+
1440
+ async def directory_member_download_async(
1441
+ self,
1442
+ *,
1443
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1444
+ server_url: Optional[str] = None,
1445
+ timeout_ms: Optional[int] = None,
1446
+ http_headers: Optional[Mapping[str, str]] = None,
1447
+ ) -> Any:
1448
+ r"""Download Directory Members
1449
+
1450
+ Download the entire directory as a JSON file.
1451
+
1452
+ :param retries: Override the default retry configuration for this method
1453
+ :param server_url: Override the default server URL for this method
1454
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1455
+ :param http_headers: Additional headers to set or replace on requests.
1456
+ """
1457
+ base_url = None
1458
+ url_variables = None
1459
+ if timeout_ms is None:
1460
+ timeout_ms = self.sdk_configuration.timeout_ms
1461
+
1462
+ if server_url is not None:
1463
+ base_url = server_url
1464
+ else:
1465
+ base_url = self._get_url(base_url, url_variables)
1466
+ req = self._build_request_async(
1467
+ method="GET",
1468
+ path="/api/v1/directory_members/download/",
1469
+ base_url=base_url,
1470
+ url_variables=url_variables,
1471
+ request=None,
1472
+ request_body_required=False,
1473
+ request_has_path_params=False,
1474
+ request_has_query_params=True,
1475
+ user_agent_header="user-agent",
1476
+ accept_header_value="application/json",
1477
+ http_headers=http_headers,
1478
+ security=self.sdk_configuration.security,
1479
+ timeout_ms=timeout_ms,
1480
+ )
1481
+
1482
+ if retries == UNSET:
1483
+ if self.sdk_configuration.retry_config is not UNSET:
1484
+ retries = self.sdk_configuration.retry_config
1485
+
1486
+ retry_config = None
1487
+ if isinstance(retries, utils.RetryConfig):
1488
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1489
+
1490
+ http_res = await self.do_request_async(
1491
+ hook_ctx=HookContext(
1492
+ config=self.sdk_configuration,
1493
+ base_url=base_url or "",
1494
+ operation_id="directory_member_download",
1495
+ oauth2_scopes=None,
1496
+ security_source=get_security_from_env(
1497
+ self.sdk_configuration.security, models.Security
1498
+ ),
1499
+ ),
1500
+ request=req,
1501
+ error_status_codes=["4XX", "500", "5XX"],
1502
+ retry_config=retry_config,
1503
+ )
1504
+
1505
+ if utils.match_response(http_res, "200", "application/json"):
1506
+ return unmarshal_json_response(Any, http_res)
1507
+ if utils.match_response(http_res, "4XX", "*"):
1508
+ http_res_text = await utils.stream_to_text_async(http_res)
1509
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1510
+ if utils.match_response(http_res, ["500", "5XX"], "*"):
1511
+ http_res_text = await utils.stream_to_text_async(http_res)
1512
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1513
+
1514
+ raise errors.APIError("Unexpected response received", http_res)