airbyte-agent-zendesk-chat 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of airbyte-agent-zendesk-chat might be problematic. Click here for more details.

Files changed (57) hide show
  1. airbyte_agent_zendesk_chat/__init__.py +193 -0
  2. airbyte_agent_zendesk_chat/_vendored/__init__.py +1 -0
  3. airbyte_agent_zendesk_chat/_vendored/connector_sdk/__init__.py +82 -0
  4. airbyte_agent_zendesk_chat/_vendored/connector_sdk/auth_strategies.py +1120 -0
  5. airbyte_agent_zendesk_chat/_vendored/connector_sdk/auth_template.py +135 -0
  6. airbyte_agent_zendesk_chat/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
  7. airbyte_agent_zendesk_chat/_vendored/connector_sdk/cloud_utils/client.py +213 -0
  8. airbyte_agent_zendesk_chat/_vendored/connector_sdk/connector_model_loader.py +965 -0
  9. airbyte_agent_zendesk_chat/_vendored/connector_sdk/constants.py +78 -0
  10. airbyte_agent_zendesk_chat/_vendored/connector_sdk/exceptions.py +23 -0
  11. airbyte_agent_zendesk_chat/_vendored/connector_sdk/executor/__init__.py +31 -0
  12. airbyte_agent_zendesk_chat/_vendored/connector_sdk/executor/hosted_executor.py +196 -0
  13. airbyte_agent_zendesk_chat/_vendored/connector_sdk/executor/local_executor.py +1724 -0
  14. airbyte_agent_zendesk_chat/_vendored/connector_sdk/executor/models.py +190 -0
  15. airbyte_agent_zendesk_chat/_vendored/connector_sdk/extensions.py +693 -0
  16. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/__init__.py +37 -0
  17. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
  18. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/adapters/httpx_adapter.py +251 -0
  19. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/config.py +98 -0
  20. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/exceptions.py +119 -0
  21. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/protocols.py +114 -0
  22. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http/response.py +104 -0
  23. airbyte_agent_zendesk_chat/_vendored/connector_sdk/http_client.py +693 -0
  24. airbyte_agent_zendesk_chat/_vendored/connector_sdk/introspection.py +262 -0
  25. airbyte_agent_zendesk_chat/_vendored/connector_sdk/logging/__init__.py +11 -0
  26. airbyte_agent_zendesk_chat/_vendored/connector_sdk/logging/logger.py +273 -0
  27. airbyte_agent_zendesk_chat/_vendored/connector_sdk/logging/types.py +93 -0
  28. airbyte_agent_zendesk_chat/_vendored/connector_sdk/observability/__init__.py +11 -0
  29. airbyte_agent_zendesk_chat/_vendored/connector_sdk/observability/config.py +179 -0
  30. airbyte_agent_zendesk_chat/_vendored/connector_sdk/observability/models.py +19 -0
  31. airbyte_agent_zendesk_chat/_vendored/connector_sdk/observability/redactor.py +81 -0
  32. airbyte_agent_zendesk_chat/_vendored/connector_sdk/observability/session.py +103 -0
  33. airbyte_agent_zendesk_chat/_vendored/connector_sdk/performance/__init__.py +6 -0
  34. airbyte_agent_zendesk_chat/_vendored/connector_sdk/performance/instrumentation.py +57 -0
  35. airbyte_agent_zendesk_chat/_vendored/connector_sdk/performance/metrics.py +93 -0
  36. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/__init__.py +75 -0
  37. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/base.py +164 -0
  38. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/components.py +239 -0
  39. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/connector.py +120 -0
  40. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/extensions.py +230 -0
  41. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/operations.py +146 -0
  42. airbyte_agent_zendesk_chat/_vendored/connector_sdk/schema/security.py +223 -0
  43. airbyte_agent_zendesk_chat/_vendored/connector_sdk/secrets.py +182 -0
  44. airbyte_agent_zendesk_chat/_vendored/connector_sdk/telemetry/__init__.py +10 -0
  45. airbyte_agent_zendesk_chat/_vendored/connector_sdk/telemetry/config.py +32 -0
  46. airbyte_agent_zendesk_chat/_vendored/connector_sdk/telemetry/events.py +59 -0
  47. airbyte_agent_zendesk_chat/_vendored/connector_sdk/telemetry/tracker.py +155 -0
  48. airbyte_agent_zendesk_chat/_vendored/connector_sdk/types.py +245 -0
  49. airbyte_agent_zendesk_chat/_vendored/connector_sdk/utils.py +60 -0
  50. airbyte_agent_zendesk_chat/_vendored/connector_sdk/validation.py +828 -0
  51. airbyte_agent_zendesk_chat/connector.py +1465 -0
  52. airbyte_agent_zendesk_chat/connector_model.py +2424 -0
  53. airbyte_agent_zendesk_chat/models.py +582 -0
  54. airbyte_agent_zendesk_chat/types.py +984 -0
  55. airbyte_agent_zendesk_chat-0.1.1.dist-info/METADATA +130 -0
  56. airbyte_agent_zendesk_chat-0.1.1.dist-info/RECORD +57 -0
  57. airbyte_agent_zendesk_chat-0.1.1.dist-info/WHEEL +4 -0
@@ -0,0 +1,984 @@
1
+ """
2
+ Type definitions for zendesk-chat connector.
3
+ """
4
+ from __future__ import annotations
5
+
6
+ # Use typing_extensions.TypedDict for Pydantic compatibility
7
+ try:
8
+ from typing_extensions import TypedDict, NotRequired
9
+ except ImportError:
10
+ from typing import TypedDict, NotRequired # type: ignore[attr-defined]
11
+
12
+ from typing import Any, Literal
13
+
14
+
15
+ # ===== NESTED PARAM TYPE DEFINITIONS =====
16
+ # Nested parameter schemas discovered during parameter extraction
17
+
18
+ # ===== OPERATION PARAMS TYPE DEFINITIONS =====
19
+
20
+ class AccountsGetParams(TypedDict):
21
+ """Parameters for accounts.get operation"""
22
+ pass
23
+
24
+ class AgentsListParams(TypedDict):
25
+ """Parameters for agents.list operation"""
26
+ limit: NotRequired[int]
27
+ since_id: NotRequired[int]
28
+
29
+ class AgentsGetParams(TypedDict):
30
+ """Parameters for agents.get operation"""
31
+ agent_id: str
32
+
33
+ class AgentTimelineListParams(TypedDict):
34
+ """Parameters for agent_timeline.list operation"""
35
+ start_time: NotRequired[int]
36
+ limit: NotRequired[int]
37
+ fields: NotRequired[str]
38
+
39
+ class BansListParams(TypedDict):
40
+ """Parameters for bans.list operation"""
41
+ limit: NotRequired[int]
42
+ since_id: NotRequired[int]
43
+
44
+ class BansGetParams(TypedDict):
45
+ """Parameters for bans.get operation"""
46
+ ban_id: str
47
+
48
+ class ChatsListParams(TypedDict):
49
+ """Parameters for chats.list operation"""
50
+ start_time: NotRequired[int]
51
+ limit: NotRequired[int]
52
+ fields: NotRequired[str]
53
+
54
+ class ChatsGetParams(TypedDict):
55
+ """Parameters for chats.get operation"""
56
+ chat_id: str
57
+
58
+ class DepartmentsListParams(TypedDict):
59
+ """Parameters for departments.list operation"""
60
+ pass
61
+
62
+ class DepartmentsGetParams(TypedDict):
63
+ """Parameters for departments.get operation"""
64
+ department_id: str
65
+
66
+ class GoalsListParams(TypedDict):
67
+ """Parameters for goals.list operation"""
68
+ pass
69
+
70
+ class GoalsGetParams(TypedDict):
71
+ """Parameters for goals.get operation"""
72
+ goal_id: str
73
+
74
+ class RolesListParams(TypedDict):
75
+ """Parameters for roles.list operation"""
76
+ pass
77
+
78
+ class RolesGetParams(TypedDict):
79
+ """Parameters for roles.get operation"""
80
+ role_id: str
81
+
82
+ class RoutingSettingsGetParams(TypedDict):
83
+ """Parameters for routing_settings.get operation"""
84
+ pass
85
+
86
+ class ShortcutsListParams(TypedDict):
87
+ """Parameters for shortcuts.list operation"""
88
+ pass
89
+
90
+ class ShortcutsGetParams(TypedDict):
91
+ """Parameters for shortcuts.get operation"""
92
+ shortcut_id: str
93
+
94
+ class SkillsListParams(TypedDict):
95
+ """Parameters for skills.list operation"""
96
+ pass
97
+
98
+ class SkillsGetParams(TypedDict):
99
+ """Parameters for skills.get operation"""
100
+ skill_id: str
101
+
102
+ class TriggersListParams(TypedDict):
103
+ """Parameters for triggers.list operation"""
104
+ pass
105
+
106
+ # ===== SEARCH TYPES =====
107
+
108
+ # Sort specification
109
+ AirbyteSortOrder = Literal["asc", "desc"]
110
+
111
+ # ===== AGENTS SEARCH TYPES =====
112
+
113
+ class AgentsSearchFilter(TypedDict, total=False):
114
+ """Available fields for filtering agents search queries."""
115
+ id: int
116
+ """Unique agent identifier"""
117
+ email: str | None
118
+ """Agent email address"""
119
+ display_name: str | None
120
+ """Agent display name"""
121
+ first_name: str | None
122
+ """Agent first name"""
123
+ last_name: str | None
124
+ """Agent last name"""
125
+ enabled: bool | None
126
+ """Whether agent is enabled"""
127
+ role_id: int | None
128
+ """Agent role ID"""
129
+ departments: list[Any] | None
130
+ """Department IDs agent belongs to"""
131
+ create_date: str | None
132
+ """When agent was created"""
133
+
134
+
135
+ class AgentsInFilter(TypedDict, total=False):
136
+ """Available fields for 'in' condition (values are lists)."""
137
+ id: list[int]
138
+ """Unique agent identifier"""
139
+ email: list[str]
140
+ """Agent email address"""
141
+ display_name: list[str]
142
+ """Agent display name"""
143
+ first_name: list[str]
144
+ """Agent first name"""
145
+ last_name: list[str]
146
+ """Agent last name"""
147
+ enabled: list[bool]
148
+ """Whether agent is enabled"""
149
+ role_id: list[int]
150
+ """Agent role ID"""
151
+ departments: list[list[Any]]
152
+ """Department IDs agent belongs to"""
153
+ create_date: list[str]
154
+ """When agent was created"""
155
+
156
+
157
+ class AgentsAnyValueFilter(TypedDict, total=False):
158
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
159
+ id: Any
160
+ """Unique agent identifier"""
161
+ email: Any
162
+ """Agent email address"""
163
+ display_name: Any
164
+ """Agent display name"""
165
+ first_name: Any
166
+ """Agent first name"""
167
+ last_name: Any
168
+ """Agent last name"""
169
+ enabled: Any
170
+ """Whether agent is enabled"""
171
+ role_id: Any
172
+ """Agent role ID"""
173
+ departments: Any
174
+ """Department IDs agent belongs to"""
175
+ create_date: Any
176
+ """When agent was created"""
177
+
178
+
179
+ class AgentsStringFilter(TypedDict, total=False):
180
+ """String fields for text search conditions (like, fuzzy, keyword)."""
181
+ id: str
182
+ """Unique agent identifier"""
183
+ email: str
184
+ """Agent email address"""
185
+ display_name: str
186
+ """Agent display name"""
187
+ first_name: str
188
+ """Agent first name"""
189
+ last_name: str
190
+ """Agent last name"""
191
+ enabled: str
192
+ """Whether agent is enabled"""
193
+ role_id: str
194
+ """Agent role ID"""
195
+ departments: str
196
+ """Department IDs agent belongs to"""
197
+ create_date: str
198
+ """When agent was created"""
199
+
200
+
201
+ class AgentsSortFilter(TypedDict, total=False):
202
+ """Available fields for sorting agents search results."""
203
+ id: AirbyteSortOrder
204
+ """Unique agent identifier"""
205
+ email: AirbyteSortOrder
206
+ """Agent email address"""
207
+ display_name: AirbyteSortOrder
208
+ """Agent display name"""
209
+ first_name: AirbyteSortOrder
210
+ """Agent first name"""
211
+ last_name: AirbyteSortOrder
212
+ """Agent last name"""
213
+ enabled: AirbyteSortOrder
214
+ """Whether agent is enabled"""
215
+ role_id: AirbyteSortOrder
216
+ """Agent role ID"""
217
+ departments: AirbyteSortOrder
218
+ """Department IDs agent belongs to"""
219
+ create_date: AirbyteSortOrder
220
+ """When agent was created"""
221
+
222
+
223
+ # Entity-specific condition types for agents
224
+ class AgentsEqCondition(TypedDict, total=False):
225
+ """Equal to: field equals value."""
226
+ eq: AgentsSearchFilter
227
+
228
+
229
+ class AgentsNeqCondition(TypedDict, total=False):
230
+ """Not equal to: field does not equal value."""
231
+ neq: AgentsSearchFilter
232
+
233
+
234
+ class AgentsGtCondition(TypedDict, total=False):
235
+ """Greater than: field > value."""
236
+ gt: AgentsSearchFilter
237
+
238
+
239
+ class AgentsGteCondition(TypedDict, total=False):
240
+ """Greater than or equal: field >= value."""
241
+ gte: AgentsSearchFilter
242
+
243
+
244
+ class AgentsLtCondition(TypedDict, total=False):
245
+ """Less than: field < value."""
246
+ lt: AgentsSearchFilter
247
+
248
+
249
+ class AgentsLteCondition(TypedDict, total=False):
250
+ """Less than or equal: field <= value."""
251
+ lte: AgentsSearchFilter
252
+
253
+
254
+ class AgentsLikeCondition(TypedDict, total=False):
255
+ """Partial string match with % wildcards."""
256
+ like: AgentsStringFilter
257
+
258
+
259
+ class AgentsFuzzyCondition(TypedDict, total=False):
260
+ """Ordered word text match (case-insensitive)."""
261
+ fuzzy: AgentsStringFilter
262
+
263
+
264
+ class AgentsKeywordCondition(TypedDict, total=False):
265
+ """Keyword text match (any word present)."""
266
+ keyword: AgentsStringFilter
267
+
268
+
269
+ class AgentsContainsCondition(TypedDict, total=False):
270
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
271
+ contains: AgentsAnyValueFilter
272
+
273
+
274
+ # Reserved keyword conditions using functional TypedDict syntax
275
+ AgentsInCondition = TypedDict("AgentsInCondition", {"in": AgentsInFilter}, total=False)
276
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
277
+
278
+ AgentsNotCondition = TypedDict("AgentsNotCondition", {"not": "AgentsCondition"}, total=False)
279
+ """Negates the nested condition."""
280
+
281
+ AgentsAndCondition = TypedDict("AgentsAndCondition", {"and": "list[AgentsCondition]"}, total=False)
282
+ """True if all nested conditions are true."""
283
+
284
+ AgentsOrCondition = TypedDict("AgentsOrCondition", {"or": "list[AgentsCondition]"}, total=False)
285
+ """True if any nested condition is true."""
286
+
287
+ AgentsAnyCondition = TypedDict("AgentsAnyCondition", {"any": AgentsAnyValueFilter}, total=False)
288
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
289
+
290
+ # Union of all agents condition types
291
+ AgentsCondition = (
292
+ AgentsEqCondition
293
+ | AgentsNeqCondition
294
+ | AgentsGtCondition
295
+ | AgentsGteCondition
296
+ | AgentsLtCondition
297
+ | AgentsLteCondition
298
+ | AgentsInCondition
299
+ | AgentsLikeCondition
300
+ | AgentsFuzzyCondition
301
+ | AgentsKeywordCondition
302
+ | AgentsContainsCondition
303
+ | AgentsNotCondition
304
+ | AgentsAndCondition
305
+ | AgentsOrCondition
306
+ | AgentsAnyCondition
307
+ )
308
+
309
+
310
+ class AgentsSearchQuery(TypedDict, total=False):
311
+ """Search query for agents entity."""
312
+ filter: AgentsCondition
313
+ sort: list[AgentsSortFilter]
314
+
315
+
316
+ # ===== CHATS SEARCH TYPES =====
317
+
318
+ class ChatsSearchFilter(TypedDict, total=False):
319
+ """Available fields for filtering chats search queries."""
320
+ id: str
321
+ """Unique chat identifier"""
322
+ timestamp: str | None
323
+ """Chat start timestamp"""
324
+ update_timestamp: str | None
325
+ """Last update timestamp"""
326
+ department_id: int | None
327
+ """Department ID"""
328
+ department_name: str | None
329
+ """Department name"""
330
+ duration: int | None
331
+ """Chat duration in seconds"""
332
+ rating: str | None
333
+ """Satisfaction rating"""
334
+ missed: bool | None
335
+ """Whether chat was missed"""
336
+ agent_ids: list[Any] | None
337
+ """IDs of agents in chat"""
338
+
339
+
340
+ class ChatsInFilter(TypedDict, total=False):
341
+ """Available fields for 'in' condition (values are lists)."""
342
+ id: list[str]
343
+ """Unique chat identifier"""
344
+ timestamp: list[str]
345
+ """Chat start timestamp"""
346
+ update_timestamp: list[str]
347
+ """Last update timestamp"""
348
+ department_id: list[int]
349
+ """Department ID"""
350
+ department_name: list[str]
351
+ """Department name"""
352
+ duration: list[int]
353
+ """Chat duration in seconds"""
354
+ rating: list[str]
355
+ """Satisfaction rating"""
356
+ missed: list[bool]
357
+ """Whether chat was missed"""
358
+ agent_ids: list[list[Any]]
359
+ """IDs of agents in chat"""
360
+
361
+
362
+ class ChatsAnyValueFilter(TypedDict, total=False):
363
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
364
+ id: Any
365
+ """Unique chat identifier"""
366
+ timestamp: Any
367
+ """Chat start timestamp"""
368
+ update_timestamp: Any
369
+ """Last update timestamp"""
370
+ department_id: Any
371
+ """Department ID"""
372
+ department_name: Any
373
+ """Department name"""
374
+ duration: Any
375
+ """Chat duration in seconds"""
376
+ rating: Any
377
+ """Satisfaction rating"""
378
+ missed: Any
379
+ """Whether chat was missed"""
380
+ agent_ids: Any
381
+ """IDs of agents in chat"""
382
+
383
+
384
+ class ChatsStringFilter(TypedDict, total=False):
385
+ """String fields for text search conditions (like, fuzzy, keyword)."""
386
+ id: str
387
+ """Unique chat identifier"""
388
+ timestamp: str
389
+ """Chat start timestamp"""
390
+ update_timestamp: str
391
+ """Last update timestamp"""
392
+ department_id: str
393
+ """Department ID"""
394
+ department_name: str
395
+ """Department name"""
396
+ duration: str
397
+ """Chat duration in seconds"""
398
+ rating: str
399
+ """Satisfaction rating"""
400
+ missed: str
401
+ """Whether chat was missed"""
402
+ agent_ids: str
403
+ """IDs of agents in chat"""
404
+
405
+
406
+ class ChatsSortFilter(TypedDict, total=False):
407
+ """Available fields for sorting chats search results."""
408
+ id: AirbyteSortOrder
409
+ """Unique chat identifier"""
410
+ timestamp: AirbyteSortOrder
411
+ """Chat start timestamp"""
412
+ update_timestamp: AirbyteSortOrder
413
+ """Last update timestamp"""
414
+ department_id: AirbyteSortOrder
415
+ """Department ID"""
416
+ department_name: AirbyteSortOrder
417
+ """Department name"""
418
+ duration: AirbyteSortOrder
419
+ """Chat duration in seconds"""
420
+ rating: AirbyteSortOrder
421
+ """Satisfaction rating"""
422
+ missed: AirbyteSortOrder
423
+ """Whether chat was missed"""
424
+ agent_ids: AirbyteSortOrder
425
+ """IDs of agents in chat"""
426
+
427
+
428
+ # Entity-specific condition types for chats
429
+ class ChatsEqCondition(TypedDict, total=False):
430
+ """Equal to: field equals value."""
431
+ eq: ChatsSearchFilter
432
+
433
+
434
+ class ChatsNeqCondition(TypedDict, total=False):
435
+ """Not equal to: field does not equal value."""
436
+ neq: ChatsSearchFilter
437
+
438
+
439
+ class ChatsGtCondition(TypedDict, total=False):
440
+ """Greater than: field > value."""
441
+ gt: ChatsSearchFilter
442
+
443
+
444
+ class ChatsGteCondition(TypedDict, total=False):
445
+ """Greater than or equal: field >= value."""
446
+ gte: ChatsSearchFilter
447
+
448
+
449
+ class ChatsLtCondition(TypedDict, total=False):
450
+ """Less than: field < value."""
451
+ lt: ChatsSearchFilter
452
+
453
+
454
+ class ChatsLteCondition(TypedDict, total=False):
455
+ """Less than or equal: field <= value."""
456
+ lte: ChatsSearchFilter
457
+
458
+
459
+ class ChatsLikeCondition(TypedDict, total=False):
460
+ """Partial string match with % wildcards."""
461
+ like: ChatsStringFilter
462
+
463
+
464
+ class ChatsFuzzyCondition(TypedDict, total=False):
465
+ """Ordered word text match (case-insensitive)."""
466
+ fuzzy: ChatsStringFilter
467
+
468
+
469
+ class ChatsKeywordCondition(TypedDict, total=False):
470
+ """Keyword text match (any word present)."""
471
+ keyword: ChatsStringFilter
472
+
473
+
474
+ class ChatsContainsCondition(TypedDict, total=False):
475
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
476
+ contains: ChatsAnyValueFilter
477
+
478
+
479
+ # Reserved keyword conditions using functional TypedDict syntax
480
+ ChatsInCondition = TypedDict("ChatsInCondition", {"in": ChatsInFilter}, total=False)
481
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
482
+
483
+ ChatsNotCondition = TypedDict("ChatsNotCondition", {"not": "ChatsCondition"}, total=False)
484
+ """Negates the nested condition."""
485
+
486
+ ChatsAndCondition = TypedDict("ChatsAndCondition", {"and": "list[ChatsCondition]"}, total=False)
487
+ """True if all nested conditions are true."""
488
+
489
+ ChatsOrCondition = TypedDict("ChatsOrCondition", {"or": "list[ChatsCondition]"}, total=False)
490
+ """True if any nested condition is true."""
491
+
492
+ ChatsAnyCondition = TypedDict("ChatsAnyCondition", {"any": ChatsAnyValueFilter}, total=False)
493
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
494
+
495
+ # Union of all chats condition types
496
+ ChatsCondition = (
497
+ ChatsEqCondition
498
+ | ChatsNeqCondition
499
+ | ChatsGtCondition
500
+ | ChatsGteCondition
501
+ | ChatsLtCondition
502
+ | ChatsLteCondition
503
+ | ChatsInCondition
504
+ | ChatsLikeCondition
505
+ | ChatsFuzzyCondition
506
+ | ChatsKeywordCondition
507
+ | ChatsContainsCondition
508
+ | ChatsNotCondition
509
+ | ChatsAndCondition
510
+ | ChatsOrCondition
511
+ | ChatsAnyCondition
512
+ )
513
+
514
+
515
+ class ChatsSearchQuery(TypedDict, total=False):
516
+ """Search query for chats entity."""
517
+ filter: ChatsCondition
518
+ sort: list[ChatsSortFilter]
519
+
520
+
521
+ # ===== DEPARTMENTS SEARCH TYPES =====
522
+
523
+ class DepartmentsSearchFilter(TypedDict, total=False):
524
+ """Available fields for filtering departments search queries."""
525
+ id: int
526
+ """Department ID"""
527
+ name: str | None
528
+ """Department name"""
529
+ enabled: bool | None
530
+ """Whether department is enabled"""
531
+ members: list[Any] | None
532
+ """Agent IDs in department"""
533
+
534
+
535
+ class DepartmentsInFilter(TypedDict, total=False):
536
+ """Available fields for 'in' condition (values are lists)."""
537
+ id: list[int]
538
+ """Department ID"""
539
+ name: list[str]
540
+ """Department name"""
541
+ enabled: list[bool]
542
+ """Whether department is enabled"""
543
+ members: list[list[Any]]
544
+ """Agent IDs in department"""
545
+
546
+
547
+ class DepartmentsAnyValueFilter(TypedDict, total=False):
548
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
549
+ id: Any
550
+ """Department ID"""
551
+ name: Any
552
+ """Department name"""
553
+ enabled: Any
554
+ """Whether department is enabled"""
555
+ members: Any
556
+ """Agent IDs in department"""
557
+
558
+
559
+ class DepartmentsStringFilter(TypedDict, total=False):
560
+ """String fields for text search conditions (like, fuzzy, keyword)."""
561
+ id: str
562
+ """Department ID"""
563
+ name: str
564
+ """Department name"""
565
+ enabled: str
566
+ """Whether department is enabled"""
567
+ members: str
568
+ """Agent IDs in department"""
569
+
570
+
571
+ class DepartmentsSortFilter(TypedDict, total=False):
572
+ """Available fields for sorting departments search results."""
573
+ id: AirbyteSortOrder
574
+ """Department ID"""
575
+ name: AirbyteSortOrder
576
+ """Department name"""
577
+ enabled: AirbyteSortOrder
578
+ """Whether department is enabled"""
579
+ members: AirbyteSortOrder
580
+ """Agent IDs in department"""
581
+
582
+
583
+ # Entity-specific condition types for departments
584
+ class DepartmentsEqCondition(TypedDict, total=False):
585
+ """Equal to: field equals value."""
586
+ eq: DepartmentsSearchFilter
587
+
588
+
589
+ class DepartmentsNeqCondition(TypedDict, total=False):
590
+ """Not equal to: field does not equal value."""
591
+ neq: DepartmentsSearchFilter
592
+
593
+
594
+ class DepartmentsGtCondition(TypedDict, total=False):
595
+ """Greater than: field > value."""
596
+ gt: DepartmentsSearchFilter
597
+
598
+
599
+ class DepartmentsGteCondition(TypedDict, total=False):
600
+ """Greater than or equal: field >= value."""
601
+ gte: DepartmentsSearchFilter
602
+
603
+
604
+ class DepartmentsLtCondition(TypedDict, total=False):
605
+ """Less than: field < value."""
606
+ lt: DepartmentsSearchFilter
607
+
608
+
609
+ class DepartmentsLteCondition(TypedDict, total=False):
610
+ """Less than or equal: field <= value."""
611
+ lte: DepartmentsSearchFilter
612
+
613
+
614
+ class DepartmentsLikeCondition(TypedDict, total=False):
615
+ """Partial string match with % wildcards."""
616
+ like: DepartmentsStringFilter
617
+
618
+
619
+ class DepartmentsFuzzyCondition(TypedDict, total=False):
620
+ """Ordered word text match (case-insensitive)."""
621
+ fuzzy: DepartmentsStringFilter
622
+
623
+
624
+ class DepartmentsKeywordCondition(TypedDict, total=False):
625
+ """Keyword text match (any word present)."""
626
+ keyword: DepartmentsStringFilter
627
+
628
+
629
+ class DepartmentsContainsCondition(TypedDict, total=False):
630
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
631
+ contains: DepartmentsAnyValueFilter
632
+
633
+
634
+ # Reserved keyword conditions using functional TypedDict syntax
635
+ DepartmentsInCondition = TypedDict("DepartmentsInCondition", {"in": DepartmentsInFilter}, total=False)
636
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
637
+
638
+ DepartmentsNotCondition = TypedDict("DepartmentsNotCondition", {"not": "DepartmentsCondition"}, total=False)
639
+ """Negates the nested condition."""
640
+
641
+ DepartmentsAndCondition = TypedDict("DepartmentsAndCondition", {"and": "list[DepartmentsCondition]"}, total=False)
642
+ """True if all nested conditions are true."""
643
+
644
+ DepartmentsOrCondition = TypedDict("DepartmentsOrCondition", {"or": "list[DepartmentsCondition]"}, total=False)
645
+ """True if any nested condition is true."""
646
+
647
+ DepartmentsAnyCondition = TypedDict("DepartmentsAnyCondition", {"any": DepartmentsAnyValueFilter}, total=False)
648
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
649
+
650
+ # Union of all departments condition types
651
+ DepartmentsCondition = (
652
+ DepartmentsEqCondition
653
+ | DepartmentsNeqCondition
654
+ | DepartmentsGtCondition
655
+ | DepartmentsGteCondition
656
+ | DepartmentsLtCondition
657
+ | DepartmentsLteCondition
658
+ | DepartmentsInCondition
659
+ | DepartmentsLikeCondition
660
+ | DepartmentsFuzzyCondition
661
+ | DepartmentsKeywordCondition
662
+ | DepartmentsContainsCondition
663
+ | DepartmentsNotCondition
664
+ | DepartmentsAndCondition
665
+ | DepartmentsOrCondition
666
+ | DepartmentsAnyCondition
667
+ )
668
+
669
+
670
+ class DepartmentsSearchQuery(TypedDict, total=False):
671
+ """Search query for departments entity."""
672
+ filter: DepartmentsCondition
673
+ sort: list[DepartmentsSortFilter]
674
+
675
+
676
+ # ===== SHORTCUTS SEARCH TYPES =====
677
+
678
+ class ShortcutsSearchFilter(TypedDict, total=False):
679
+ """Available fields for filtering shortcuts search queries."""
680
+ id: int
681
+ """Shortcut ID"""
682
+ name: str | None
683
+ """Shortcut name/trigger"""
684
+ message: str | None
685
+ """Shortcut message content"""
686
+ tags: list[Any] | None
687
+ """Tags applied when shortcut is used"""
688
+
689
+
690
+ class ShortcutsInFilter(TypedDict, total=False):
691
+ """Available fields for 'in' condition (values are lists)."""
692
+ id: list[int]
693
+ """Shortcut ID"""
694
+ name: list[str]
695
+ """Shortcut name/trigger"""
696
+ message: list[str]
697
+ """Shortcut message content"""
698
+ tags: list[list[Any]]
699
+ """Tags applied when shortcut is used"""
700
+
701
+
702
+ class ShortcutsAnyValueFilter(TypedDict, total=False):
703
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
704
+ id: Any
705
+ """Shortcut ID"""
706
+ name: Any
707
+ """Shortcut name/trigger"""
708
+ message: Any
709
+ """Shortcut message content"""
710
+ tags: Any
711
+ """Tags applied when shortcut is used"""
712
+
713
+
714
+ class ShortcutsStringFilter(TypedDict, total=False):
715
+ """String fields for text search conditions (like, fuzzy, keyword)."""
716
+ id: str
717
+ """Shortcut ID"""
718
+ name: str
719
+ """Shortcut name/trigger"""
720
+ message: str
721
+ """Shortcut message content"""
722
+ tags: str
723
+ """Tags applied when shortcut is used"""
724
+
725
+
726
+ class ShortcutsSortFilter(TypedDict, total=False):
727
+ """Available fields for sorting shortcuts search results."""
728
+ id: AirbyteSortOrder
729
+ """Shortcut ID"""
730
+ name: AirbyteSortOrder
731
+ """Shortcut name/trigger"""
732
+ message: AirbyteSortOrder
733
+ """Shortcut message content"""
734
+ tags: AirbyteSortOrder
735
+ """Tags applied when shortcut is used"""
736
+
737
+
738
+ # Entity-specific condition types for shortcuts
739
+ class ShortcutsEqCondition(TypedDict, total=False):
740
+ """Equal to: field equals value."""
741
+ eq: ShortcutsSearchFilter
742
+
743
+
744
+ class ShortcutsNeqCondition(TypedDict, total=False):
745
+ """Not equal to: field does not equal value."""
746
+ neq: ShortcutsSearchFilter
747
+
748
+
749
+ class ShortcutsGtCondition(TypedDict, total=False):
750
+ """Greater than: field > value."""
751
+ gt: ShortcutsSearchFilter
752
+
753
+
754
+ class ShortcutsGteCondition(TypedDict, total=False):
755
+ """Greater than or equal: field >= value."""
756
+ gte: ShortcutsSearchFilter
757
+
758
+
759
+ class ShortcutsLtCondition(TypedDict, total=False):
760
+ """Less than: field < value."""
761
+ lt: ShortcutsSearchFilter
762
+
763
+
764
+ class ShortcutsLteCondition(TypedDict, total=False):
765
+ """Less than or equal: field <= value."""
766
+ lte: ShortcutsSearchFilter
767
+
768
+
769
+ class ShortcutsLikeCondition(TypedDict, total=False):
770
+ """Partial string match with % wildcards."""
771
+ like: ShortcutsStringFilter
772
+
773
+
774
+ class ShortcutsFuzzyCondition(TypedDict, total=False):
775
+ """Ordered word text match (case-insensitive)."""
776
+ fuzzy: ShortcutsStringFilter
777
+
778
+
779
+ class ShortcutsKeywordCondition(TypedDict, total=False):
780
+ """Keyword text match (any word present)."""
781
+ keyword: ShortcutsStringFilter
782
+
783
+
784
+ class ShortcutsContainsCondition(TypedDict, total=False):
785
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
786
+ contains: ShortcutsAnyValueFilter
787
+
788
+
789
+ # Reserved keyword conditions using functional TypedDict syntax
790
+ ShortcutsInCondition = TypedDict("ShortcutsInCondition", {"in": ShortcutsInFilter}, total=False)
791
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
792
+
793
+ ShortcutsNotCondition = TypedDict("ShortcutsNotCondition", {"not": "ShortcutsCondition"}, total=False)
794
+ """Negates the nested condition."""
795
+
796
+ ShortcutsAndCondition = TypedDict("ShortcutsAndCondition", {"and": "list[ShortcutsCondition]"}, total=False)
797
+ """True if all nested conditions are true."""
798
+
799
+ ShortcutsOrCondition = TypedDict("ShortcutsOrCondition", {"or": "list[ShortcutsCondition]"}, total=False)
800
+ """True if any nested condition is true."""
801
+
802
+ ShortcutsAnyCondition = TypedDict("ShortcutsAnyCondition", {"any": ShortcutsAnyValueFilter}, total=False)
803
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
804
+
805
+ # Union of all shortcuts condition types
806
+ ShortcutsCondition = (
807
+ ShortcutsEqCondition
808
+ | ShortcutsNeqCondition
809
+ | ShortcutsGtCondition
810
+ | ShortcutsGteCondition
811
+ | ShortcutsLtCondition
812
+ | ShortcutsLteCondition
813
+ | ShortcutsInCondition
814
+ | ShortcutsLikeCondition
815
+ | ShortcutsFuzzyCondition
816
+ | ShortcutsKeywordCondition
817
+ | ShortcutsContainsCondition
818
+ | ShortcutsNotCondition
819
+ | ShortcutsAndCondition
820
+ | ShortcutsOrCondition
821
+ | ShortcutsAnyCondition
822
+ )
823
+
824
+
825
+ class ShortcutsSearchQuery(TypedDict, total=False):
826
+ """Search query for shortcuts entity."""
827
+ filter: ShortcutsCondition
828
+ sort: list[ShortcutsSortFilter]
829
+
830
+
831
+ # ===== TRIGGERS SEARCH TYPES =====
832
+
833
+ class TriggersSearchFilter(TypedDict, total=False):
834
+ """Available fields for filtering triggers search queries."""
835
+ id: int
836
+ """Trigger ID"""
837
+ name: str | None
838
+ """Trigger name"""
839
+ enabled: bool | None
840
+ """Whether trigger is enabled"""
841
+
842
+
843
+ class TriggersInFilter(TypedDict, total=False):
844
+ """Available fields for 'in' condition (values are lists)."""
845
+ id: list[int]
846
+ """Trigger ID"""
847
+ name: list[str]
848
+ """Trigger name"""
849
+ enabled: list[bool]
850
+ """Whether trigger is enabled"""
851
+
852
+
853
+ class TriggersAnyValueFilter(TypedDict, total=False):
854
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
855
+ id: Any
856
+ """Trigger ID"""
857
+ name: Any
858
+ """Trigger name"""
859
+ enabled: Any
860
+ """Whether trigger is enabled"""
861
+
862
+
863
+ class TriggersStringFilter(TypedDict, total=False):
864
+ """String fields for text search conditions (like, fuzzy, keyword)."""
865
+ id: str
866
+ """Trigger ID"""
867
+ name: str
868
+ """Trigger name"""
869
+ enabled: str
870
+ """Whether trigger is enabled"""
871
+
872
+
873
+ class TriggersSortFilter(TypedDict, total=False):
874
+ """Available fields for sorting triggers search results."""
875
+ id: AirbyteSortOrder
876
+ """Trigger ID"""
877
+ name: AirbyteSortOrder
878
+ """Trigger name"""
879
+ enabled: AirbyteSortOrder
880
+ """Whether trigger is enabled"""
881
+
882
+
883
+ # Entity-specific condition types for triggers
884
+ class TriggersEqCondition(TypedDict, total=False):
885
+ """Equal to: field equals value."""
886
+ eq: TriggersSearchFilter
887
+
888
+
889
+ class TriggersNeqCondition(TypedDict, total=False):
890
+ """Not equal to: field does not equal value."""
891
+ neq: TriggersSearchFilter
892
+
893
+
894
+ class TriggersGtCondition(TypedDict, total=False):
895
+ """Greater than: field > value."""
896
+ gt: TriggersSearchFilter
897
+
898
+
899
+ class TriggersGteCondition(TypedDict, total=False):
900
+ """Greater than or equal: field >= value."""
901
+ gte: TriggersSearchFilter
902
+
903
+
904
+ class TriggersLtCondition(TypedDict, total=False):
905
+ """Less than: field < value."""
906
+ lt: TriggersSearchFilter
907
+
908
+
909
+ class TriggersLteCondition(TypedDict, total=False):
910
+ """Less than or equal: field <= value."""
911
+ lte: TriggersSearchFilter
912
+
913
+
914
+ class TriggersLikeCondition(TypedDict, total=False):
915
+ """Partial string match with % wildcards."""
916
+ like: TriggersStringFilter
917
+
918
+
919
+ class TriggersFuzzyCondition(TypedDict, total=False):
920
+ """Ordered word text match (case-insensitive)."""
921
+ fuzzy: TriggersStringFilter
922
+
923
+
924
+ class TriggersKeywordCondition(TypedDict, total=False):
925
+ """Keyword text match (any word present)."""
926
+ keyword: TriggersStringFilter
927
+
928
+
929
+ class TriggersContainsCondition(TypedDict, total=False):
930
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
931
+ contains: TriggersAnyValueFilter
932
+
933
+
934
+ # Reserved keyword conditions using functional TypedDict syntax
935
+ TriggersInCondition = TypedDict("TriggersInCondition", {"in": TriggersInFilter}, total=False)
936
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
937
+
938
+ TriggersNotCondition = TypedDict("TriggersNotCondition", {"not": "TriggersCondition"}, total=False)
939
+ """Negates the nested condition."""
940
+
941
+ TriggersAndCondition = TypedDict("TriggersAndCondition", {"and": "list[TriggersCondition]"}, total=False)
942
+ """True if all nested conditions are true."""
943
+
944
+ TriggersOrCondition = TypedDict("TriggersOrCondition", {"or": "list[TriggersCondition]"}, total=False)
945
+ """True if any nested condition is true."""
946
+
947
+ TriggersAnyCondition = TypedDict("TriggersAnyCondition", {"any": TriggersAnyValueFilter}, total=False)
948
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
949
+
950
+ # Union of all triggers condition types
951
+ TriggersCondition = (
952
+ TriggersEqCondition
953
+ | TriggersNeqCondition
954
+ | TriggersGtCondition
955
+ | TriggersGteCondition
956
+ | TriggersLtCondition
957
+ | TriggersLteCondition
958
+ | TriggersInCondition
959
+ | TriggersLikeCondition
960
+ | TriggersFuzzyCondition
961
+ | TriggersKeywordCondition
962
+ | TriggersContainsCondition
963
+ | TriggersNotCondition
964
+ | TriggersAndCondition
965
+ | TriggersOrCondition
966
+ | TriggersAnyCondition
967
+ )
968
+
969
+
970
+ class TriggersSearchQuery(TypedDict, total=False):
971
+ """Search query for triggers entity."""
972
+ filter: TriggersCondition
973
+ sort: list[TriggersSortFilter]
974
+
975
+
976
+
977
+ # ===== SEARCH PARAMS =====
978
+
979
+ class AirbyteSearchParams(TypedDict, total=False):
980
+ """Parameters for Airbyte cache search operations (generic, use entity-specific query types for better type hints)."""
981
+ query: dict[str, Any]
982
+ limit: int
983
+ cursor: str
984
+ fields: list[list[str]]