airbyte-agent-slack 0.1.20__py3-none-any.whl → 0.1.22__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.
- airbyte_agent_slack/__init__.py +32 -4
- airbyte_agent_slack/_vendored/connector_sdk/connector_model_loader.py +84 -0
- airbyte_agent_slack/_vendored/connector_sdk/executor/local_executor.py +3 -1
- airbyte_agent_slack/_vendored/connector_sdk/introspection.py +222 -10
- airbyte_agent_slack/_vendored/connector_sdk/schema/components.py +5 -0
- airbyte_agent_slack/_vendored/connector_sdk/types.py +1 -0
- airbyte_agent_slack/connector.py +265 -32
- airbyte_agent_slack/connector_model.py +101 -1
- airbyte_agent_slack/models.py +181 -21
- airbyte_agent_slack/types.py +785 -0
- {airbyte_agent_slack-0.1.20.dist-info → airbyte_agent_slack-0.1.22.dist-info}/METADATA +6 -6
- {airbyte_agent_slack-0.1.20.dist-info → airbyte_agent_slack-0.1.22.dist-info}/RECORD +13 -13
- {airbyte_agent_slack-0.1.20.dist-info → airbyte_agent_slack-0.1.22.dist-info}/WHEEL +0 -0
airbyte_agent_slack/types.py
CHANGED
|
@@ -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]]
|