airbyte-agent-slack 0.1.15__py3-none-any.whl → 0.1.24__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.
@@ -9,6 +9,7 @@ try:
9
9
  except ImportError:
10
10
  from typing import TypedDict, NotRequired # type: ignore[attr-defined]
11
11
 
12
+ from typing import Any, Literal
12
13
 
13
14
 
14
15
  # ===== NESTED PARAM TYPE DEFINITIONS =====
@@ -96,3 +97,787 @@ class ReactionsCreateParams(TypedDict):
96
97
  timestamp: str
97
98
  name: str
98
99
 
100
+ # ===== SEARCH TYPES =====
101
+
102
+ # Sort specification
103
+ AirbyteSortOrder = Literal["asc", "desc"]
104
+
105
+ # ===== CHANNELS SEARCH TYPES =====
106
+
107
+ class ChannelsSearchFilter(TypedDict, total=False):
108
+ """Available fields for filtering channels search queries."""
109
+ context_team_id: str | None
110
+ """The unique identifier of the team context in which the channel exists."""
111
+ created: int | None
112
+ """The timestamp when the channel was created."""
113
+ creator: str | None
114
+ """The ID of the user who created the channel."""
115
+ id: str | None
116
+ """The unique identifier of the channel."""
117
+ is_archived: bool | None
118
+ """Indicates if the channel is archived."""
119
+ is_channel: bool | None
120
+ """Indicates if the entity is a channel."""
121
+ is_ext_shared: bool | None
122
+ """Indicates if the channel is externally shared."""
123
+ is_general: bool | None
124
+ """Indicates if the channel is a general channel in the workspace."""
125
+ is_group: bool | None
126
+ """Indicates if the channel is a group (private channel) rather than a regular channel."""
127
+ is_im: bool | None
128
+ """Indicates if the entity is a direct message (IM) channel."""
129
+ is_member: bool | None
130
+ """Indicates if the calling user is a member of the channel."""
131
+ is_mpim: bool | None
132
+ """Indicates if the entity is a multiple person direct message (MPIM) channel."""
133
+ is_org_shared: bool | None
134
+ """Indicates if the channel is organization-wide shared."""
135
+ is_pending_ext_shared: bool | None
136
+ """Indicates if the channel is pending external shared."""
137
+ is_private: bool | None
138
+ """Indicates if the channel is a private channel."""
139
+ is_read_only: bool | None
140
+ """Indicates if the channel is read-only."""
141
+ is_shared: bool | None
142
+ """Indicates if the channel is shared."""
143
+ last_read: str | None
144
+ """The timestamp of the user's last read message in the channel."""
145
+ locale: str | None
146
+ """The locale of the channel."""
147
+ name: str | None
148
+ """The name of the channel."""
149
+ name_normalized: str | None
150
+ """The normalized name of the channel."""
151
+ num_members: int | None
152
+ """The number of members in the channel."""
153
+ parent_conversation: str | None
154
+ """The parent conversation of the channel."""
155
+ pending_connected_team_ids: list[Any] | None
156
+ """The IDs of teams that are pending to be connected to the channel."""
157
+ pending_shared: list[Any] | None
158
+ """The list of pending shared items of the channel."""
159
+ previous_names: list[Any] | None
160
+ """The previous names of the channel."""
161
+ purpose: dict[str, Any] | None
162
+ """The purpose of the channel."""
163
+ shared_team_ids: list[Any] | None
164
+ """The IDs of teams with which the channel is shared."""
165
+ topic: dict[str, Any] | None
166
+ """The topic of the channel."""
167
+ unlinked: int | None
168
+ """Indicates if the channel is unlinked."""
169
+ updated: int | None
170
+ """The timestamp when the channel was last updated."""
171
+
172
+
173
+ class ChannelsInFilter(TypedDict, total=False):
174
+ """Available fields for 'in' condition (values are lists)."""
175
+ context_team_id: list[str]
176
+ """The unique identifier of the team context in which the channel exists."""
177
+ created: list[int]
178
+ """The timestamp when the channel was created."""
179
+ creator: list[str]
180
+ """The ID of the user who created the channel."""
181
+ id: list[str]
182
+ """The unique identifier of the channel."""
183
+ is_archived: list[bool]
184
+ """Indicates if the channel is archived."""
185
+ is_channel: list[bool]
186
+ """Indicates if the entity is a channel."""
187
+ is_ext_shared: list[bool]
188
+ """Indicates if the channel is externally shared."""
189
+ is_general: list[bool]
190
+ """Indicates if the channel is a general channel in the workspace."""
191
+ is_group: list[bool]
192
+ """Indicates if the channel is a group (private channel) rather than a regular channel."""
193
+ is_im: list[bool]
194
+ """Indicates if the entity is a direct message (IM) channel."""
195
+ is_member: list[bool]
196
+ """Indicates if the calling user is a member of the channel."""
197
+ is_mpim: list[bool]
198
+ """Indicates if the entity is a multiple person direct message (MPIM) channel."""
199
+ is_org_shared: list[bool]
200
+ """Indicates if the channel is organization-wide shared."""
201
+ is_pending_ext_shared: list[bool]
202
+ """Indicates if the channel is pending external shared."""
203
+ is_private: list[bool]
204
+ """Indicates if the channel is a private channel."""
205
+ is_read_only: list[bool]
206
+ """Indicates if the channel is read-only."""
207
+ is_shared: list[bool]
208
+ """Indicates if the channel is shared."""
209
+ last_read: list[str]
210
+ """The timestamp of the user's last read message in the channel."""
211
+ locale: list[str]
212
+ """The locale of the channel."""
213
+ name: list[str]
214
+ """The name of the channel."""
215
+ name_normalized: list[str]
216
+ """The normalized name of the channel."""
217
+ num_members: list[int]
218
+ """The number of members in the channel."""
219
+ parent_conversation: list[str]
220
+ """The parent conversation of the channel."""
221
+ pending_connected_team_ids: list[list[Any]]
222
+ """The IDs of teams that are pending to be connected to the channel."""
223
+ pending_shared: list[list[Any]]
224
+ """The list of pending shared items of the channel."""
225
+ previous_names: list[list[Any]]
226
+ """The previous names of the channel."""
227
+ purpose: list[dict[str, Any]]
228
+ """The purpose of the channel."""
229
+ shared_team_ids: list[list[Any]]
230
+ """The IDs of teams with which the channel is shared."""
231
+ topic: list[dict[str, Any]]
232
+ """The topic of the channel."""
233
+ unlinked: list[int]
234
+ """Indicates if the channel is unlinked."""
235
+ updated: list[int]
236
+ """The timestamp when the channel was last updated."""
237
+
238
+
239
+ class ChannelsAnyValueFilter(TypedDict, total=False):
240
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
241
+ context_team_id: Any
242
+ """The unique identifier of the team context in which the channel exists."""
243
+ created: Any
244
+ """The timestamp when the channel was created."""
245
+ creator: Any
246
+ """The ID of the user who created the channel."""
247
+ id: Any
248
+ """The unique identifier of the channel."""
249
+ is_archived: Any
250
+ """Indicates if the channel is archived."""
251
+ is_channel: Any
252
+ """Indicates if the entity is a channel."""
253
+ is_ext_shared: Any
254
+ """Indicates if the channel is externally shared."""
255
+ is_general: Any
256
+ """Indicates if the channel is a general channel in the workspace."""
257
+ is_group: Any
258
+ """Indicates if the channel is a group (private channel) rather than a regular channel."""
259
+ is_im: Any
260
+ """Indicates if the entity is a direct message (IM) channel."""
261
+ is_member: Any
262
+ """Indicates if the calling user is a member of the channel."""
263
+ is_mpim: Any
264
+ """Indicates if the entity is a multiple person direct message (MPIM) channel."""
265
+ is_org_shared: Any
266
+ """Indicates if the channel is organization-wide shared."""
267
+ is_pending_ext_shared: Any
268
+ """Indicates if the channel is pending external shared."""
269
+ is_private: Any
270
+ """Indicates if the channel is a private channel."""
271
+ is_read_only: Any
272
+ """Indicates if the channel is read-only."""
273
+ is_shared: Any
274
+ """Indicates if the channel is shared."""
275
+ last_read: Any
276
+ """The timestamp of the user's last read message in the channel."""
277
+ locale: Any
278
+ """The locale of the channel."""
279
+ name: Any
280
+ """The name of the channel."""
281
+ name_normalized: Any
282
+ """The normalized name of the channel."""
283
+ num_members: Any
284
+ """The number of members in the channel."""
285
+ parent_conversation: Any
286
+ """The parent conversation of the channel."""
287
+ pending_connected_team_ids: Any
288
+ """The IDs of teams that are pending to be connected to the channel."""
289
+ pending_shared: Any
290
+ """The list of pending shared items of the channel."""
291
+ previous_names: Any
292
+ """The previous names of the channel."""
293
+ purpose: Any
294
+ """The purpose of the channel."""
295
+ shared_team_ids: Any
296
+ """The IDs of teams with which the channel is shared."""
297
+ topic: Any
298
+ """The topic of the channel."""
299
+ unlinked: Any
300
+ """Indicates if the channel is unlinked."""
301
+ updated: Any
302
+ """The timestamp when the channel was last updated."""
303
+
304
+
305
+ class ChannelsStringFilter(TypedDict, total=False):
306
+ """String fields for text search conditions (like, fuzzy, keyword)."""
307
+ context_team_id: str
308
+ """The unique identifier of the team context in which the channel exists."""
309
+ created: str
310
+ """The timestamp when the channel was created."""
311
+ creator: str
312
+ """The ID of the user who created the channel."""
313
+ id: str
314
+ """The unique identifier of the channel."""
315
+ is_archived: str
316
+ """Indicates if the channel is archived."""
317
+ is_channel: str
318
+ """Indicates if the entity is a channel."""
319
+ is_ext_shared: str
320
+ """Indicates if the channel is externally shared."""
321
+ is_general: str
322
+ """Indicates if the channel is a general channel in the workspace."""
323
+ is_group: str
324
+ """Indicates if the channel is a group (private channel) rather than a regular channel."""
325
+ is_im: str
326
+ """Indicates if the entity is a direct message (IM) channel."""
327
+ is_member: str
328
+ """Indicates if the calling user is a member of the channel."""
329
+ is_mpim: str
330
+ """Indicates if the entity is a multiple person direct message (MPIM) channel."""
331
+ is_org_shared: str
332
+ """Indicates if the channel is organization-wide shared."""
333
+ is_pending_ext_shared: str
334
+ """Indicates if the channel is pending external shared."""
335
+ is_private: str
336
+ """Indicates if the channel is a private channel."""
337
+ is_read_only: str
338
+ """Indicates if the channel is read-only."""
339
+ is_shared: str
340
+ """Indicates if the channel is shared."""
341
+ last_read: str
342
+ """The timestamp of the user's last read message in the channel."""
343
+ locale: str
344
+ """The locale of the channel."""
345
+ name: str
346
+ """The name of the channel."""
347
+ name_normalized: str
348
+ """The normalized name of the channel."""
349
+ num_members: str
350
+ """The number of members in the channel."""
351
+ parent_conversation: str
352
+ """The parent conversation of the channel."""
353
+ pending_connected_team_ids: str
354
+ """The IDs of teams that are pending to be connected to the channel."""
355
+ pending_shared: str
356
+ """The list of pending shared items of the channel."""
357
+ previous_names: str
358
+ """The previous names of the channel."""
359
+ purpose: str
360
+ """The purpose of the channel."""
361
+ shared_team_ids: str
362
+ """The IDs of teams with which the channel is shared."""
363
+ topic: str
364
+ """The topic of the channel."""
365
+ unlinked: str
366
+ """Indicates if the channel is unlinked."""
367
+ updated: str
368
+ """The timestamp when the channel was last updated."""
369
+
370
+
371
+ class ChannelsSortFilter(TypedDict, total=False):
372
+ """Available fields for sorting channels search results."""
373
+ context_team_id: AirbyteSortOrder
374
+ """The unique identifier of the team context in which the channel exists."""
375
+ created: AirbyteSortOrder
376
+ """The timestamp when the channel was created."""
377
+ creator: AirbyteSortOrder
378
+ """The ID of the user who created the channel."""
379
+ id: AirbyteSortOrder
380
+ """The unique identifier of the channel."""
381
+ is_archived: AirbyteSortOrder
382
+ """Indicates if the channel is archived."""
383
+ is_channel: AirbyteSortOrder
384
+ """Indicates if the entity is a channel."""
385
+ is_ext_shared: AirbyteSortOrder
386
+ """Indicates if the channel is externally shared."""
387
+ is_general: AirbyteSortOrder
388
+ """Indicates if the channel is a general channel in the workspace."""
389
+ is_group: AirbyteSortOrder
390
+ """Indicates if the channel is a group (private channel) rather than a regular channel."""
391
+ is_im: AirbyteSortOrder
392
+ """Indicates if the entity is a direct message (IM) channel."""
393
+ is_member: AirbyteSortOrder
394
+ """Indicates if the calling user is a member of the channel."""
395
+ is_mpim: AirbyteSortOrder
396
+ """Indicates if the entity is a multiple person direct message (MPIM) channel."""
397
+ is_org_shared: AirbyteSortOrder
398
+ """Indicates if the channel is organization-wide shared."""
399
+ is_pending_ext_shared: AirbyteSortOrder
400
+ """Indicates if the channel is pending external shared."""
401
+ is_private: AirbyteSortOrder
402
+ """Indicates if the channel is a private channel."""
403
+ is_read_only: AirbyteSortOrder
404
+ """Indicates if the channel is read-only."""
405
+ is_shared: AirbyteSortOrder
406
+ """Indicates if the channel is shared."""
407
+ last_read: AirbyteSortOrder
408
+ """The timestamp of the user's last read message in the channel."""
409
+ locale: AirbyteSortOrder
410
+ """The locale of the channel."""
411
+ name: AirbyteSortOrder
412
+ """The name of the channel."""
413
+ name_normalized: AirbyteSortOrder
414
+ """The normalized name of the channel."""
415
+ num_members: AirbyteSortOrder
416
+ """The number of members in the channel."""
417
+ parent_conversation: AirbyteSortOrder
418
+ """The parent conversation of the channel."""
419
+ pending_connected_team_ids: AirbyteSortOrder
420
+ """The IDs of teams that are pending to be connected to the channel."""
421
+ pending_shared: AirbyteSortOrder
422
+ """The list of pending shared items of the channel."""
423
+ previous_names: AirbyteSortOrder
424
+ """The previous names of the channel."""
425
+ purpose: AirbyteSortOrder
426
+ """The purpose of the channel."""
427
+ shared_team_ids: AirbyteSortOrder
428
+ """The IDs of teams with which the channel is shared."""
429
+ topic: AirbyteSortOrder
430
+ """The topic of the channel."""
431
+ unlinked: AirbyteSortOrder
432
+ """Indicates if the channel is unlinked."""
433
+ updated: AirbyteSortOrder
434
+ """The timestamp when the channel was last updated."""
435
+
436
+
437
+ # Entity-specific condition types for channels
438
+ class ChannelsEqCondition(TypedDict, total=False):
439
+ """Equal to: field equals value."""
440
+ eq: ChannelsSearchFilter
441
+
442
+
443
+ class ChannelsNeqCondition(TypedDict, total=False):
444
+ """Not equal to: field does not equal value."""
445
+ neq: ChannelsSearchFilter
446
+
447
+
448
+ class ChannelsGtCondition(TypedDict, total=False):
449
+ """Greater than: field > value."""
450
+ gt: ChannelsSearchFilter
451
+
452
+
453
+ class ChannelsGteCondition(TypedDict, total=False):
454
+ """Greater than or equal: field >= value."""
455
+ gte: ChannelsSearchFilter
456
+
457
+
458
+ class ChannelsLtCondition(TypedDict, total=False):
459
+ """Less than: field < value."""
460
+ lt: ChannelsSearchFilter
461
+
462
+
463
+ class ChannelsLteCondition(TypedDict, total=False):
464
+ """Less than or equal: field <= value."""
465
+ lte: ChannelsSearchFilter
466
+
467
+
468
+ class ChannelsLikeCondition(TypedDict, total=False):
469
+ """Partial string match with % wildcards."""
470
+ like: ChannelsStringFilter
471
+
472
+
473
+ class ChannelsFuzzyCondition(TypedDict, total=False):
474
+ """Ordered word text match (case-insensitive)."""
475
+ fuzzy: ChannelsStringFilter
476
+
477
+
478
+ class ChannelsKeywordCondition(TypedDict, total=False):
479
+ """Keyword text match (any word present)."""
480
+ keyword: ChannelsStringFilter
481
+
482
+
483
+ class ChannelsContainsCondition(TypedDict, total=False):
484
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
485
+ contains: ChannelsAnyValueFilter
486
+
487
+
488
+ # Reserved keyword conditions using functional TypedDict syntax
489
+ ChannelsInCondition = TypedDict("ChannelsInCondition", {"in": ChannelsInFilter}, total=False)
490
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
491
+
492
+ ChannelsNotCondition = TypedDict("ChannelsNotCondition", {"not": "ChannelsCondition"}, total=False)
493
+ """Negates the nested condition."""
494
+
495
+ ChannelsAndCondition = TypedDict("ChannelsAndCondition", {"and": "list[ChannelsCondition]"}, total=False)
496
+ """True if all nested conditions are true."""
497
+
498
+ ChannelsOrCondition = TypedDict("ChannelsOrCondition", {"or": "list[ChannelsCondition]"}, total=False)
499
+ """True if any nested condition is true."""
500
+
501
+ ChannelsAnyCondition = TypedDict("ChannelsAnyCondition", {"any": ChannelsAnyValueFilter}, total=False)
502
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
503
+
504
+ # Union of all channels condition types
505
+ ChannelsCondition = (
506
+ ChannelsEqCondition
507
+ | ChannelsNeqCondition
508
+ | ChannelsGtCondition
509
+ | ChannelsGteCondition
510
+ | ChannelsLtCondition
511
+ | ChannelsLteCondition
512
+ | ChannelsInCondition
513
+ | ChannelsLikeCondition
514
+ | ChannelsFuzzyCondition
515
+ | ChannelsKeywordCondition
516
+ | ChannelsContainsCondition
517
+ | ChannelsNotCondition
518
+ | ChannelsAndCondition
519
+ | ChannelsOrCondition
520
+ | ChannelsAnyCondition
521
+ )
522
+
523
+
524
+ class ChannelsSearchQuery(TypedDict, total=False):
525
+ """Search query for channels entity."""
526
+ filter: ChannelsCondition
527
+ sort: list[ChannelsSortFilter]
528
+
529
+
530
+ # ===== USERS SEARCH TYPES =====
531
+
532
+ class UsersSearchFilter(TypedDict, total=False):
533
+ """Available fields for filtering users search queries."""
534
+ color: str | None
535
+ """The color assigned to the user for visual purposes."""
536
+ deleted: bool | None
537
+ """Indicates if the user is deleted or not."""
538
+ has_2fa: bool | None
539
+ """Flag indicating if the user has two-factor authentication enabled."""
540
+ id: str | None
541
+ """Unique identifier for the user."""
542
+ is_admin: bool | None
543
+ """Flag specifying if the user is an admin or not."""
544
+ is_app_user: bool | None
545
+ """Specifies if the user is an app user."""
546
+ is_bot: bool | None
547
+ """Indicates if the user is a bot account."""
548
+ is_email_confirmed: bool | None
549
+ """Flag indicating if the user's email is confirmed."""
550
+ is_forgotten: bool | None
551
+ """Specifies if the user is marked as forgotten."""
552
+ is_invited_user: bool | None
553
+ """Indicates if the user is invited or not."""
554
+ is_owner: bool | None
555
+ """Flag indicating if the user is an owner."""
556
+ is_primary_owner: bool | None
557
+ """Specifies if the user is the primary owner."""
558
+ is_restricted: bool | None
559
+ """Flag specifying if the user is restricted."""
560
+ is_ultra_restricted: bool | None
561
+ """Indicates if the user has ultra-restricted access."""
562
+ name: str | None
563
+ """The username of the user."""
564
+ profile: dict[str, Any] | None
565
+ """User's profile information containing detailed details."""
566
+ real_name: str | None
567
+ """The real name of the user."""
568
+ team_id: str | None
569
+ """Unique identifier for the team the user belongs to."""
570
+ tz: str | None
571
+ """Timezone of the user."""
572
+ tz_label: str | None
573
+ """Label representing the timezone of the user."""
574
+ tz_offset: int | None
575
+ """Offset of the user's timezone."""
576
+ updated: int | None
577
+ """Timestamp of when the user's information was last updated."""
578
+ who_can_share_contact_card: str | None
579
+ """Specifies who can share the user's contact card."""
580
+
581
+
582
+ class UsersInFilter(TypedDict, total=False):
583
+ """Available fields for 'in' condition (values are lists)."""
584
+ color: list[str]
585
+ """The color assigned to the user for visual purposes."""
586
+ deleted: list[bool]
587
+ """Indicates if the user is deleted or not."""
588
+ has_2fa: list[bool]
589
+ """Flag indicating if the user has two-factor authentication enabled."""
590
+ id: list[str]
591
+ """Unique identifier for the user."""
592
+ is_admin: list[bool]
593
+ """Flag specifying if the user is an admin or not."""
594
+ is_app_user: list[bool]
595
+ """Specifies if the user is an app user."""
596
+ is_bot: list[bool]
597
+ """Indicates if the user is a bot account."""
598
+ is_email_confirmed: list[bool]
599
+ """Flag indicating if the user's email is confirmed."""
600
+ is_forgotten: list[bool]
601
+ """Specifies if the user is marked as forgotten."""
602
+ is_invited_user: list[bool]
603
+ """Indicates if the user is invited or not."""
604
+ is_owner: list[bool]
605
+ """Flag indicating if the user is an owner."""
606
+ is_primary_owner: list[bool]
607
+ """Specifies if the user is the primary owner."""
608
+ is_restricted: list[bool]
609
+ """Flag specifying if the user is restricted."""
610
+ is_ultra_restricted: list[bool]
611
+ """Indicates if the user has ultra-restricted access."""
612
+ name: list[str]
613
+ """The username of the user."""
614
+ profile: list[dict[str, Any]]
615
+ """User's profile information containing detailed details."""
616
+ real_name: list[str]
617
+ """The real name of the user."""
618
+ team_id: list[str]
619
+ """Unique identifier for the team the user belongs to."""
620
+ tz: list[str]
621
+ """Timezone of the user."""
622
+ tz_label: list[str]
623
+ """Label representing the timezone of the user."""
624
+ tz_offset: list[int]
625
+ """Offset of the user's timezone."""
626
+ updated: list[int]
627
+ """Timestamp of when the user's information was last updated."""
628
+ who_can_share_contact_card: list[str]
629
+ """Specifies who can share the user's contact card."""
630
+
631
+
632
+ class UsersAnyValueFilter(TypedDict, total=False):
633
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
634
+ color: Any
635
+ """The color assigned to the user for visual purposes."""
636
+ deleted: Any
637
+ """Indicates if the user is deleted or not."""
638
+ has_2fa: Any
639
+ """Flag indicating if the user has two-factor authentication enabled."""
640
+ id: Any
641
+ """Unique identifier for the user."""
642
+ is_admin: Any
643
+ """Flag specifying if the user is an admin or not."""
644
+ is_app_user: Any
645
+ """Specifies if the user is an app user."""
646
+ is_bot: Any
647
+ """Indicates if the user is a bot account."""
648
+ is_email_confirmed: Any
649
+ """Flag indicating if the user's email is confirmed."""
650
+ is_forgotten: Any
651
+ """Specifies if the user is marked as forgotten."""
652
+ is_invited_user: Any
653
+ """Indicates if the user is invited or not."""
654
+ is_owner: Any
655
+ """Flag indicating if the user is an owner."""
656
+ is_primary_owner: Any
657
+ """Specifies if the user is the primary owner."""
658
+ is_restricted: Any
659
+ """Flag specifying if the user is restricted."""
660
+ is_ultra_restricted: Any
661
+ """Indicates if the user has ultra-restricted access."""
662
+ name: Any
663
+ """The username of the user."""
664
+ profile: Any
665
+ """User's profile information containing detailed details."""
666
+ real_name: Any
667
+ """The real name of the user."""
668
+ team_id: Any
669
+ """Unique identifier for the team the user belongs to."""
670
+ tz: Any
671
+ """Timezone of the user."""
672
+ tz_label: Any
673
+ """Label representing the timezone of the user."""
674
+ tz_offset: Any
675
+ """Offset of the user's timezone."""
676
+ updated: Any
677
+ """Timestamp of when the user's information was last updated."""
678
+ who_can_share_contact_card: Any
679
+ """Specifies who can share the user's contact card."""
680
+
681
+
682
+ class UsersStringFilter(TypedDict, total=False):
683
+ """String fields for text search conditions (like, fuzzy, keyword)."""
684
+ color: str
685
+ """The color assigned to the user for visual purposes."""
686
+ deleted: str
687
+ """Indicates if the user is deleted or not."""
688
+ has_2fa: str
689
+ """Flag indicating if the user has two-factor authentication enabled."""
690
+ id: str
691
+ """Unique identifier for the user."""
692
+ is_admin: str
693
+ """Flag specifying if the user is an admin or not."""
694
+ is_app_user: str
695
+ """Specifies if the user is an app user."""
696
+ is_bot: str
697
+ """Indicates if the user is a bot account."""
698
+ is_email_confirmed: str
699
+ """Flag indicating if the user's email is confirmed."""
700
+ is_forgotten: str
701
+ """Specifies if the user is marked as forgotten."""
702
+ is_invited_user: str
703
+ """Indicates if the user is invited or not."""
704
+ is_owner: str
705
+ """Flag indicating if the user is an owner."""
706
+ is_primary_owner: str
707
+ """Specifies if the user is the primary owner."""
708
+ is_restricted: str
709
+ """Flag specifying if the user is restricted."""
710
+ is_ultra_restricted: str
711
+ """Indicates if the user has ultra-restricted access."""
712
+ name: str
713
+ """The username of the user."""
714
+ profile: str
715
+ """User's profile information containing detailed details."""
716
+ real_name: str
717
+ """The real name of the user."""
718
+ team_id: str
719
+ """Unique identifier for the team the user belongs to."""
720
+ tz: str
721
+ """Timezone of the user."""
722
+ tz_label: str
723
+ """Label representing the timezone of the user."""
724
+ tz_offset: str
725
+ """Offset of the user's timezone."""
726
+ updated: str
727
+ """Timestamp of when the user's information was last updated."""
728
+ who_can_share_contact_card: str
729
+ """Specifies who can share the user's contact card."""
730
+
731
+
732
+ class UsersSortFilter(TypedDict, total=False):
733
+ """Available fields for sorting users search results."""
734
+ color: AirbyteSortOrder
735
+ """The color assigned to the user for visual purposes."""
736
+ deleted: AirbyteSortOrder
737
+ """Indicates if the user is deleted or not."""
738
+ has_2fa: AirbyteSortOrder
739
+ """Flag indicating if the user has two-factor authentication enabled."""
740
+ id: AirbyteSortOrder
741
+ """Unique identifier for the user."""
742
+ is_admin: AirbyteSortOrder
743
+ """Flag specifying if the user is an admin or not."""
744
+ is_app_user: AirbyteSortOrder
745
+ """Specifies if the user is an app user."""
746
+ is_bot: AirbyteSortOrder
747
+ """Indicates if the user is a bot account."""
748
+ is_email_confirmed: AirbyteSortOrder
749
+ """Flag indicating if the user's email is confirmed."""
750
+ is_forgotten: AirbyteSortOrder
751
+ """Specifies if the user is marked as forgotten."""
752
+ is_invited_user: AirbyteSortOrder
753
+ """Indicates if the user is invited or not."""
754
+ is_owner: AirbyteSortOrder
755
+ """Flag indicating if the user is an owner."""
756
+ is_primary_owner: AirbyteSortOrder
757
+ """Specifies if the user is the primary owner."""
758
+ is_restricted: AirbyteSortOrder
759
+ """Flag specifying if the user is restricted."""
760
+ is_ultra_restricted: AirbyteSortOrder
761
+ """Indicates if the user has ultra-restricted access."""
762
+ name: AirbyteSortOrder
763
+ """The username of the user."""
764
+ profile: AirbyteSortOrder
765
+ """User's profile information containing detailed details."""
766
+ real_name: AirbyteSortOrder
767
+ """The real name of the user."""
768
+ team_id: AirbyteSortOrder
769
+ """Unique identifier for the team the user belongs to."""
770
+ tz: AirbyteSortOrder
771
+ """Timezone of the user."""
772
+ tz_label: AirbyteSortOrder
773
+ """Label representing the timezone of the user."""
774
+ tz_offset: AirbyteSortOrder
775
+ """Offset of the user's timezone."""
776
+ updated: AirbyteSortOrder
777
+ """Timestamp of when the user's information was last updated."""
778
+ who_can_share_contact_card: AirbyteSortOrder
779
+ """Specifies who can share the user's contact card."""
780
+
781
+
782
+ # Entity-specific condition types for users
783
+ class UsersEqCondition(TypedDict, total=False):
784
+ """Equal to: field equals value."""
785
+ eq: UsersSearchFilter
786
+
787
+
788
+ class UsersNeqCondition(TypedDict, total=False):
789
+ """Not equal to: field does not equal value."""
790
+ neq: UsersSearchFilter
791
+
792
+
793
+ class UsersGtCondition(TypedDict, total=False):
794
+ """Greater than: field > value."""
795
+ gt: UsersSearchFilter
796
+
797
+
798
+ class UsersGteCondition(TypedDict, total=False):
799
+ """Greater than or equal: field >= value."""
800
+ gte: UsersSearchFilter
801
+
802
+
803
+ class UsersLtCondition(TypedDict, total=False):
804
+ """Less than: field < value."""
805
+ lt: UsersSearchFilter
806
+
807
+
808
+ class UsersLteCondition(TypedDict, total=False):
809
+ """Less than or equal: field <= value."""
810
+ lte: UsersSearchFilter
811
+
812
+
813
+ class UsersLikeCondition(TypedDict, total=False):
814
+ """Partial string match with % wildcards."""
815
+ like: UsersStringFilter
816
+
817
+
818
+ class UsersFuzzyCondition(TypedDict, total=False):
819
+ """Ordered word text match (case-insensitive)."""
820
+ fuzzy: UsersStringFilter
821
+
822
+
823
+ class UsersKeywordCondition(TypedDict, total=False):
824
+ """Keyword text match (any word present)."""
825
+ keyword: UsersStringFilter
826
+
827
+
828
+ class UsersContainsCondition(TypedDict, total=False):
829
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
830
+ contains: UsersAnyValueFilter
831
+
832
+
833
+ # Reserved keyword conditions using functional TypedDict syntax
834
+ UsersInCondition = TypedDict("UsersInCondition", {"in": UsersInFilter}, total=False)
835
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
836
+
837
+ UsersNotCondition = TypedDict("UsersNotCondition", {"not": "UsersCondition"}, total=False)
838
+ """Negates the nested condition."""
839
+
840
+ UsersAndCondition = TypedDict("UsersAndCondition", {"and": "list[UsersCondition]"}, total=False)
841
+ """True if all nested conditions are true."""
842
+
843
+ UsersOrCondition = TypedDict("UsersOrCondition", {"or": "list[UsersCondition]"}, total=False)
844
+ """True if any nested condition is true."""
845
+
846
+ UsersAnyCondition = TypedDict("UsersAnyCondition", {"any": UsersAnyValueFilter}, total=False)
847
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
848
+
849
+ # Union of all users condition types
850
+ UsersCondition = (
851
+ UsersEqCondition
852
+ | UsersNeqCondition
853
+ | UsersGtCondition
854
+ | UsersGteCondition
855
+ | UsersLtCondition
856
+ | UsersLteCondition
857
+ | UsersInCondition
858
+ | UsersLikeCondition
859
+ | UsersFuzzyCondition
860
+ | UsersKeywordCondition
861
+ | UsersContainsCondition
862
+ | UsersNotCondition
863
+ | UsersAndCondition
864
+ | UsersOrCondition
865
+ | UsersAnyCondition
866
+ )
867
+
868
+
869
+ class UsersSearchQuery(TypedDict, total=False):
870
+ """Search query for users entity."""
871
+ filter: UsersCondition
872
+ sort: list[UsersSortFilter]
873
+
874
+
875
+
876
+ # ===== SEARCH PARAMS =====
877
+
878
+ class AirbyteSearchParams(TypedDict, total=False):
879
+ """Parameters for Airbyte cache search operations (generic, use entity-specific query types for better type hints)."""
880
+ query: dict[str, Any]
881
+ limit: int
882
+ cursor: str
883
+ fields: list[list[str]]