airbyte-agent-zendesk-support 0.18.47__py3-none-any.whl → 0.18.57__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_zendesk_support/__init__.py +130 -2
- airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_strategies.py +55 -4
- airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py +29 -8
- airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py +152 -22
- airbyte_agent_zendesk_support/_vendored/connector_sdk/http_client.py +13 -6
- airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/logger.py +10 -1
- airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/types.py +1 -0
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py +7 -2
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/security.py +14 -0
- airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py +9 -0
- airbyte_agent_zendesk_support/_vendored/connector_sdk/validation.py +12 -6
- airbyte_agent_zendesk_support/connector.py +920 -1
- airbyte_agent_zendesk_support/connector_model.py +1 -1
- airbyte_agent_zendesk_support/models.py +606 -0
- airbyte_agent_zendesk_support/types.py +3715 -0
- {airbyte_agent_zendesk_support-0.18.47.dist-info → airbyte_agent_zendesk_support-0.18.57.dist-info}/METADATA +35 -22
- {airbyte_agent_zendesk_support-0.18.47.dist-info → airbyte_agent_zendesk_support-0.18.57.dist-info}/RECORD +18 -18
- {airbyte_agent_zendesk_support-0.18.47.dist-info → airbyte_agent_zendesk_support-0.18.57.dist-info}/WHEEL +0 -0
|
@@ -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 =====
|
|
@@ -215,3 +216,3717 @@ class ArticleAttachmentsDownloadParams(TypedDict):
|
|
|
215
216
|
attachment_id: str
|
|
216
217
|
range_header: NotRequired[str]
|
|
217
218
|
|
|
219
|
+
# ===== SEARCH TYPES =====
|
|
220
|
+
|
|
221
|
+
# Sort specification
|
|
222
|
+
AirbyteSortOrder = Literal["asc", "desc"]
|
|
223
|
+
|
|
224
|
+
# ===== BRANDS SEARCH TYPES =====
|
|
225
|
+
|
|
226
|
+
class BrandsSearchFilter(TypedDict, total=False):
|
|
227
|
+
"""Available fields for filtering brands search queries."""
|
|
228
|
+
active: bool | None
|
|
229
|
+
"""Indicates whether the brand is set as active"""
|
|
230
|
+
brand_url: str | None
|
|
231
|
+
"""The public URL of the brand"""
|
|
232
|
+
created_at: str | None
|
|
233
|
+
"""Timestamp when the brand was created"""
|
|
234
|
+
default: bool | None
|
|
235
|
+
"""Indicates whether the brand is the default brand for tickets generated from non-branded channels"""
|
|
236
|
+
has_help_center: bool | None
|
|
237
|
+
"""Indicates whether the brand has a Help Center enabled"""
|
|
238
|
+
help_center_state: str | None
|
|
239
|
+
"""The state of the Help Center, with allowed values of enabled, disabled, or restricted"""
|
|
240
|
+
host_mapping: str | None
|
|
241
|
+
"""The host mapping configuration for the brand, visible only to administrators"""
|
|
242
|
+
id: int | None
|
|
243
|
+
"""Unique identifier automatically assigned when the brand is created"""
|
|
244
|
+
is_deleted: bool | None
|
|
245
|
+
"""Indicates whether the brand has been deleted"""
|
|
246
|
+
logo: str | None
|
|
247
|
+
"""Brand logo image file represented as an Attachment object"""
|
|
248
|
+
name: str | None
|
|
249
|
+
"""The name of the brand"""
|
|
250
|
+
signature_template: str | None
|
|
251
|
+
"""The signature template used for the brand"""
|
|
252
|
+
subdomain: str | None
|
|
253
|
+
"""The subdomain associated with the brand"""
|
|
254
|
+
ticket_form_ids: list[Any] | None
|
|
255
|
+
"""Array of ticket form IDs that are available for use by this brand"""
|
|
256
|
+
updated_at: str | None
|
|
257
|
+
"""Timestamp when the brand was last updated"""
|
|
258
|
+
url: str | None
|
|
259
|
+
"""The API URL for accessing this brand resource"""
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
class BrandsInFilter(TypedDict, total=False):
|
|
263
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
264
|
+
active: list[bool]
|
|
265
|
+
"""Indicates whether the brand is set as active"""
|
|
266
|
+
brand_url: list[str]
|
|
267
|
+
"""The public URL of the brand"""
|
|
268
|
+
created_at: list[str]
|
|
269
|
+
"""Timestamp when the brand was created"""
|
|
270
|
+
default: list[bool]
|
|
271
|
+
"""Indicates whether the brand is the default brand for tickets generated from non-branded channels"""
|
|
272
|
+
has_help_center: list[bool]
|
|
273
|
+
"""Indicates whether the brand has a Help Center enabled"""
|
|
274
|
+
help_center_state: list[str]
|
|
275
|
+
"""The state of the Help Center, with allowed values of enabled, disabled, or restricted"""
|
|
276
|
+
host_mapping: list[str]
|
|
277
|
+
"""The host mapping configuration for the brand, visible only to administrators"""
|
|
278
|
+
id: list[int]
|
|
279
|
+
"""Unique identifier automatically assigned when the brand is created"""
|
|
280
|
+
is_deleted: list[bool]
|
|
281
|
+
"""Indicates whether the brand has been deleted"""
|
|
282
|
+
logo: list[str]
|
|
283
|
+
"""Brand logo image file represented as an Attachment object"""
|
|
284
|
+
name: list[str]
|
|
285
|
+
"""The name of the brand"""
|
|
286
|
+
signature_template: list[str]
|
|
287
|
+
"""The signature template used for the brand"""
|
|
288
|
+
subdomain: list[str]
|
|
289
|
+
"""The subdomain associated with the brand"""
|
|
290
|
+
ticket_form_ids: list[list[Any]]
|
|
291
|
+
"""Array of ticket form IDs that are available for use by this brand"""
|
|
292
|
+
updated_at: list[str]
|
|
293
|
+
"""Timestamp when the brand was last updated"""
|
|
294
|
+
url: list[str]
|
|
295
|
+
"""The API URL for accessing this brand resource"""
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
class BrandsAnyValueFilter(TypedDict, total=False):
|
|
299
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
300
|
+
active: Any
|
|
301
|
+
"""Indicates whether the brand is set as active"""
|
|
302
|
+
brand_url: Any
|
|
303
|
+
"""The public URL of the brand"""
|
|
304
|
+
created_at: Any
|
|
305
|
+
"""Timestamp when the brand was created"""
|
|
306
|
+
default: Any
|
|
307
|
+
"""Indicates whether the brand is the default brand for tickets generated from non-branded channels"""
|
|
308
|
+
has_help_center: Any
|
|
309
|
+
"""Indicates whether the brand has a Help Center enabled"""
|
|
310
|
+
help_center_state: Any
|
|
311
|
+
"""The state of the Help Center, with allowed values of enabled, disabled, or restricted"""
|
|
312
|
+
host_mapping: Any
|
|
313
|
+
"""The host mapping configuration for the brand, visible only to administrators"""
|
|
314
|
+
id: Any
|
|
315
|
+
"""Unique identifier automatically assigned when the brand is created"""
|
|
316
|
+
is_deleted: Any
|
|
317
|
+
"""Indicates whether the brand has been deleted"""
|
|
318
|
+
logo: Any
|
|
319
|
+
"""Brand logo image file represented as an Attachment object"""
|
|
320
|
+
name: Any
|
|
321
|
+
"""The name of the brand"""
|
|
322
|
+
signature_template: Any
|
|
323
|
+
"""The signature template used for the brand"""
|
|
324
|
+
subdomain: Any
|
|
325
|
+
"""The subdomain associated with the brand"""
|
|
326
|
+
ticket_form_ids: Any
|
|
327
|
+
"""Array of ticket form IDs that are available for use by this brand"""
|
|
328
|
+
updated_at: Any
|
|
329
|
+
"""Timestamp when the brand was last updated"""
|
|
330
|
+
url: Any
|
|
331
|
+
"""The API URL for accessing this brand resource"""
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
class BrandsStringFilter(TypedDict, total=False):
|
|
335
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
336
|
+
active: str
|
|
337
|
+
"""Indicates whether the brand is set as active"""
|
|
338
|
+
brand_url: str
|
|
339
|
+
"""The public URL of the brand"""
|
|
340
|
+
created_at: str
|
|
341
|
+
"""Timestamp when the brand was created"""
|
|
342
|
+
default: str
|
|
343
|
+
"""Indicates whether the brand is the default brand for tickets generated from non-branded channels"""
|
|
344
|
+
has_help_center: str
|
|
345
|
+
"""Indicates whether the brand has a Help Center enabled"""
|
|
346
|
+
help_center_state: str
|
|
347
|
+
"""The state of the Help Center, with allowed values of enabled, disabled, or restricted"""
|
|
348
|
+
host_mapping: str
|
|
349
|
+
"""The host mapping configuration for the brand, visible only to administrators"""
|
|
350
|
+
id: str
|
|
351
|
+
"""Unique identifier automatically assigned when the brand is created"""
|
|
352
|
+
is_deleted: str
|
|
353
|
+
"""Indicates whether the brand has been deleted"""
|
|
354
|
+
logo: str
|
|
355
|
+
"""Brand logo image file represented as an Attachment object"""
|
|
356
|
+
name: str
|
|
357
|
+
"""The name of the brand"""
|
|
358
|
+
signature_template: str
|
|
359
|
+
"""The signature template used for the brand"""
|
|
360
|
+
subdomain: str
|
|
361
|
+
"""The subdomain associated with the brand"""
|
|
362
|
+
ticket_form_ids: str
|
|
363
|
+
"""Array of ticket form IDs that are available for use by this brand"""
|
|
364
|
+
updated_at: str
|
|
365
|
+
"""Timestamp when the brand was last updated"""
|
|
366
|
+
url: str
|
|
367
|
+
"""The API URL for accessing this brand resource"""
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
class BrandsSortFilter(TypedDict, total=False):
|
|
371
|
+
"""Available fields for sorting brands search results."""
|
|
372
|
+
active: AirbyteSortOrder
|
|
373
|
+
"""Indicates whether the brand is set as active"""
|
|
374
|
+
brand_url: AirbyteSortOrder
|
|
375
|
+
"""The public URL of the brand"""
|
|
376
|
+
created_at: AirbyteSortOrder
|
|
377
|
+
"""Timestamp when the brand was created"""
|
|
378
|
+
default: AirbyteSortOrder
|
|
379
|
+
"""Indicates whether the brand is the default brand for tickets generated from non-branded channels"""
|
|
380
|
+
has_help_center: AirbyteSortOrder
|
|
381
|
+
"""Indicates whether the brand has a Help Center enabled"""
|
|
382
|
+
help_center_state: AirbyteSortOrder
|
|
383
|
+
"""The state of the Help Center, with allowed values of enabled, disabled, or restricted"""
|
|
384
|
+
host_mapping: AirbyteSortOrder
|
|
385
|
+
"""The host mapping configuration for the brand, visible only to administrators"""
|
|
386
|
+
id: AirbyteSortOrder
|
|
387
|
+
"""Unique identifier automatically assigned when the brand is created"""
|
|
388
|
+
is_deleted: AirbyteSortOrder
|
|
389
|
+
"""Indicates whether the brand has been deleted"""
|
|
390
|
+
logo: AirbyteSortOrder
|
|
391
|
+
"""Brand logo image file represented as an Attachment object"""
|
|
392
|
+
name: AirbyteSortOrder
|
|
393
|
+
"""The name of the brand"""
|
|
394
|
+
signature_template: AirbyteSortOrder
|
|
395
|
+
"""The signature template used for the brand"""
|
|
396
|
+
subdomain: AirbyteSortOrder
|
|
397
|
+
"""The subdomain associated with the brand"""
|
|
398
|
+
ticket_form_ids: AirbyteSortOrder
|
|
399
|
+
"""Array of ticket form IDs that are available for use by this brand"""
|
|
400
|
+
updated_at: AirbyteSortOrder
|
|
401
|
+
"""Timestamp when the brand was last updated"""
|
|
402
|
+
url: AirbyteSortOrder
|
|
403
|
+
"""The API URL for accessing this brand resource"""
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
# Entity-specific condition types for brands
|
|
407
|
+
class BrandsEqCondition(TypedDict, total=False):
|
|
408
|
+
"""Equal to: field equals value."""
|
|
409
|
+
eq: BrandsSearchFilter
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
class BrandsNeqCondition(TypedDict, total=False):
|
|
413
|
+
"""Not equal to: field does not equal value."""
|
|
414
|
+
neq: BrandsSearchFilter
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
class BrandsGtCondition(TypedDict, total=False):
|
|
418
|
+
"""Greater than: field > value."""
|
|
419
|
+
gt: BrandsSearchFilter
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
class BrandsGteCondition(TypedDict, total=False):
|
|
423
|
+
"""Greater than or equal: field >= value."""
|
|
424
|
+
gte: BrandsSearchFilter
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
class BrandsLtCondition(TypedDict, total=False):
|
|
428
|
+
"""Less than: field < value."""
|
|
429
|
+
lt: BrandsSearchFilter
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
class BrandsLteCondition(TypedDict, total=False):
|
|
433
|
+
"""Less than or equal: field <= value."""
|
|
434
|
+
lte: BrandsSearchFilter
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
class BrandsLikeCondition(TypedDict, total=False):
|
|
438
|
+
"""Partial string match with % wildcards."""
|
|
439
|
+
like: BrandsStringFilter
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
class BrandsFuzzyCondition(TypedDict, total=False):
|
|
443
|
+
"""Ordered word text match (case-insensitive)."""
|
|
444
|
+
fuzzy: BrandsStringFilter
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
class BrandsKeywordCondition(TypedDict, total=False):
|
|
448
|
+
"""Keyword text match (any word present)."""
|
|
449
|
+
keyword: BrandsStringFilter
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
class BrandsContainsCondition(TypedDict, total=False):
|
|
453
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
454
|
+
contains: BrandsAnyValueFilter
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
458
|
+
BrandsInCondition = TypedDict("BrandsInCondition", {"in": BrandsInFilter}, total=False)
|
|
459
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
460
|
+
|
|
461
|
+
BrandsNotCondition = TypedDict("BrandsNotCondition", {"not": "BrandsCondition"}, total=False)
|
|
462
|
+
"""Negates the nested condition."""
|
|
463
|
+
|
|
464
|
+
BrandsAndCondition = TypedDict("BrandsAndCondition", {"and": "list[BrandsCondition]"}, total=False)
|
|
465
|
+
"""True if all nested conditions are true."""
|
|
466
|
+
|
|
467
|
+
BrandsOrCondition = TypedDict("BrandsOrCondition", {"or": "list[BrandsCondition]"}, total=False)
|
|
468
|
+
"""True if any nested condition is true."""
|
|
469
|
+
|
|
470
|
+
BrandsAnyCondition = TypedDict("BrandsAnyCondition", {"any": BrandsAnyValueFilter}, total=False)
|
|
471
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
472
|
+
|
|
473
|
+
# Union of all brands condition types
|
|
474
|
+
BrandsCondition = (
|
|
475
|
+
BrandsEqCondition
|
|
476
|
+
| BrandsNeqCondition
|
|
477
|
+
| BrandsGtCondition
|
|
478
|
+
| BrandsGteCondition
|
|
479
|
+
| BrandsLtCondition
|
|
480
|
+
| BrandsLteCondition
|
|
481
|
+
| BrandsInCondition
|
|
482
|
+
| BrandsLikeCondition
|
|
483
|
+
| BrandsFuzzyCondition
|
|
484
|
+
| BrandsKeywordCondition
|
|
485
|
+
| BrandsContainsCondition
|
|
486
|
+
| BrandsNotCondition
|
|
487
|
+
| BrandsAndCondition
|
|
488
|
+
| BrandsOrCondition
|
|
489
|
+
| BrandsAnyCondition
|
|
490
|
+
)
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
class BrandsSearchQuery(TypedDict, total=False):
|
|
494
|
+
"""Search query for brands entity."""
|
|
495
|
+
filter: BrandsCondition
|
|
496
|
+
sort: list[BrandsSortFilter]
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
# ===== GROUPS SEARCH TYPES =====
|
|
500
|
+
|
|
501
|
+
class GroupsSearchFilter(TypedDict, total=False):
|
|
502
|
+
"""Available fields for filtering groups search queries."""
|
|
503
|
+
created_at: str | None
|
|
504
|
+
"""Timestamp indicating when the group was created"""
|
|
505
|
+
default: bool | None
|
|
506
|
+
"""Indicates if the group is the default one for the account"""
|
|
507
|
+
deleted: bool | None
|
|
508
|
+
"""Indicates whether the group has been deleted"""
|
|
509
|
+
description: str | None
|
|
510
|
+
"""The description of the group"""
|
|
511
|
+
id: int | None
|
|
512
|
+
"""Unique identifier automatically assigned when creating groups"""
|
|
513
|
+
is_public: bool | None
|
|
514
|
+
"""Indicates if the group is public (true) or private (false)"""
|
|
515
|
+
name: str | None
|
|
516
|
+
"""The name of the group"""
|
|
517
|
+
updated_at: str | None
|
|
518
|
+
"""Timestamp indicating when the group was last updated"""
|
|
519
|
+
url: str | None
|
|
520
|
+
"""The API URL of the group"""
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
class GroupsInFilter(TypedDict, total=False):
|
|
524
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
525
|
+
created_at: list[str]
|
|
526
|
+
"""Timestamp indicating when the group was created"""
|
|
527
|
+
default: list[bool]
|
|
528
|
+
"""Indicates if the group is the default one for the account"""
|
|
529
|
+
deleted: list[bool]
|
|
530
|
+
"""Indicates whether the group has been deleted"""
|
|
531
|
+
description: list[str]
|
|
532
|
+
"""The description of the group"""
|
|
533
|
+
id: list[int]
|
|
534
|
+
"""Unique identifier automatically assigned when creating groups"""
|
|
535
|
+
is_public: list[bool]
|
|
536
|
+
"""Indicates if the group is public (true) or private (false)"""
|
|
537
|
+
name: list[str]
|
|
538
|
+
"""The name of the group"""
|
|
539
|
+
updated_at: list[str]
|
|
540
|
+
"""Timestamp indicating when the group was last updated"""
|
|
541
|
+
url: list[str]
|
|
542
|
+
"""The API URL of the group"""
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
class GroupsAnyValueFilter(TypedDict, total=False):
|
|
546
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
547
|
+
created_at: Any
|
|
548
|
+
"""Timestamp indicating when the group was created"""
|
|
549
|
+
default: Any
|
|
550
|
+
"""Indicates if the group is the default one for the account"""
|
|
551
|
+
deleted: Any
|
|
552
|
+
"""Indicates whether the group has been deleted"""
|
|
553
|
+
description: Any
|
|
554
|
+
"""The description of the group"""
|
|
555
|
+
id: Any
|
|
556
|
+
"""Unique identifier automatically assigned when creating groups"""
|
|
557
|
+
is_public: Any
|
|
558
|
+
"""Indicates if the group is public (true) or private (false)"""
|
|
559
|
+
name: Any
|
|
560
|
+
"""The name of the group"""
|
|
561
|
+
updated_at: Any
|
|
562
|
+
"""Timestamp indicating when the group was last updated"""
|
|
563
|
+
url: Any
|
|
564
|
+
"""The API URL of the group"""
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
class GroupsStringFilter(TypedDict, total=False):
|
|
568
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
569
|
+
created_at: str
|
|
570
|
+
"""Timestamp indicating when the group was created"""
|
|
571
|
+
default: str
|
|
572
|
+
"""Indicates if the group is the default one for the account"""
|
|
573
|
+
deleted: str
|
|
574
|
+
"""Indicates whether the group has been deleted"""
|
|
575
|
+
description: str
|
|
576
|
+
"""The description of the group"""
|
|
577
|
+
id: str
|
|
578
|
+
"""Unique identifier automatically assigned when creating groups"""
|
|
579
|
+
is_public: str
|
|
580
|
+
"""Indicates if the group is public (true) or private (false)"""
|
|
581
|
+
name: str
|
|
582
|
+
"""The name of the group"""
|
|
583
|
+
updated_at: str
|
|
584
|
+
"""Timestamp indicating when the group was last updated"""
|
|
585
|
+
url: str
|
|
586
|
+
"""The API URL of the group"""
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
class GroupsSortFilter(TypedDict, total=False):
|
|
590
|
+
"""Available fields for sorting groups search results."""
|
|
591
|
+
created_at: AirbyteSortOrder
|
|
592
|
+
"""Timestamp indicating when the group was created"""
|
|
593
|
+
default: AirbyteSortOrder
|
|
594
|
+
"""Indicates if the group is the default one for the account"""
|
|
595
|
+
deleted: AirbyteSortOrder
|
|
596
|
+
"""Indicates whether the group has been deleted"""
|
|
597
|
+
description: AirbyteSortOrder
|
|
598
|
+
"""The description of the group"""
|
|
599
|
+
id: AirbyteSortOrder
|
|
600
|
+
"""Unique identifier automatically assigned when creating groups"""
|
|
601
|
+
is_public: AirbyteSortOrder
|
|
602
|
+
"""Indicates if the group is public (true) or private (false)"""
|
|
603
|
+
name: AirbyteSortOrder
|
|
604
|
+
"""The name of the group"""
|
|
605
|
+
updated_at: AirbyteSortOrder
|
|
606
|
+
"""Timestamp indicating when the group was last updated"""
|
|
607
|
+
url: AirbyteSortOrder
|
|
608
|
+
"""The API URL of the group"""
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
# Entity-specific condition types for groups
|
|
612
|
+
class GroupsEqCondition(TypedDict, total=False):
|
|
613
|
+
"""Equal to: field equals value."""
|
|
614
|
+
eq: GroupsSearchFilter
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
class GroupsNeqCondition(TypedDict, total=False):
|
|
618
|
+
"""Not equal to: field does not equal value."""
|
|
619
|
+
neq: GroupsSearchFilter
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
class GroupsGtCondition(TypedDict, total=False):
|
|
623
|
+
"""Greater than: field > value."""
|
|
624
|
+
gt: GroupsSearchFilter
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
class GroupsGteCondition(TypedDict, total=False):
|
|
628
|
+
"""Greater than or equal: field >= value."""
|
|
629
|
+
gte: GroupsSearchFilter
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
class GroupsLtCondition(TypedDict, total=False):
|
|
633
|
+
"""Less than: field < value."""
|
|
634
|
+
lt: GroupsSearchFilter
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
class GroupsLteCondition(TypedDict, total=False):
|
|
638
|
+
"""Less than or equal: field <= value."""
|
|
639
|
+
lte: GroupsSearchFilter
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
class GroupsLikeCondition(TypedDict, total=False):
|
|
643
|
+
"""Partial string match with % wildcards."""
|
|
644
|
+
like: GroupsStringFilter
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
class GroupsFuzzyCondition(TypedDict, total=False):
|
|
648
|
+
"""Ordered word text match (case-insensitive)."""
|
|
649
|
+
fuzzy: GroupsStringFilter
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
class GroupsKeywordCondition(TypedDict, total=False):
|
|
653
|
+
"""Keyword text match (any word present)."""
|
|
654
|
+
keyword: GroupsStringFilter
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
class GroupsContainsCondition(TypedDict, total=False):
|
|
658
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
659
|
+
contains: GroupsAnyValueFilter
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
663
|
+
GroupsInCondition = TypedDict("GroupsInCondition", {"in": GroupsInFilter}, total=False)
|
|
664
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
665
|
+
|
|
666
|
+
GroupsNotCondition = TypedDict("GroupsNotCondition", {"not": "GroupsCondition"}, total=False)
|
|
667
|
+
"""Negates the nested condition."""
|
|
668
|
+
|
|
669
|
+
GroupsAndCondition = TypedDict("GroupsAndCondition", {"and": "list[GroupsCondition]"}, total=False)
|
|
670
|
+
"""True if all nested conditions are true."""
|
|
671
|
+
|
|
672
|
+
GroupsOrCondition = TypedDict("GroupsOrCondition", {"or": "list[GroupsCondition]"}, total=False)
|
|
673
|
+
"""True if any nested condition is true."""
|
|
674
|
+
|
|
675
|
+
GroupsAnyCondition = TypedDict("GroupsAnyCondition", {"any": GroupsAnyValueFilter}, total=False)
|
|
676
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
677
|
+
|
|
678
|
+
# Union of all groups condition types
|
|
679
|
+
GroupsCondition = (
|
|
680
|
+
GroupsEqCondition
|
|
681
|
+
| GroupsNeqCondition
|
|
682
|
+
| GroupsGtCondition
|
|
683
|
+
| GroupsGteCondition
|
|
684
|
+
| GroupsLtCondition
|
|
685
|
+
| GroupsLteCondition
|
|
686
|
+
| GroupsInCondition
|
|
687
|
+
| GroupsLikeCondition
|
|
688
|
+
| GroupsFuzzyCondition
|
|
689
|
+
| GroupsKeywordCondition
|
|
690
|
+
| GroupsContainsCondition
|
|
691
|
+
| GroupsNotCondition
|
|
692
|
+
| GroupsAndCondition
|
|
693
|
+
| GroupsOrCondition
|
|
694
|
+
| GroupsAnyCondition
|
|
695
|
+
)
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
class GroupsSearchQuery(TypedDict, total=False):
|
|
699
|
+
"""Search query for groups entity."""
|
|
700
|
+
filter: GroupsCondition
|
|
701
|
+
sort: list[GroupsSortFilter]
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
# ===== ORGANIZATIONS SEARCH TYPES =====
|
|
705
|
+
|
|
706
|
+
class OrganizationsSearchFilter(TypedDict, total=False):
|
|
707
|
+
"""Available fields for filtering organizations search queries."""
|
|
708
|
+
created_at: str | None
|
|
709
|
+
"""Timestamp when the organization was created"""
|
|
710
|
+
deleted_at: str | None
|
|
711
|
+
"""Timestamp when the organization was deleted"""
|
|
712
|
+
details: str | None
|
|
713
|
+
"""Details about the organization, such as the address"""
|
|
714
|
+
domain_names: list[Any] | None
|
|
715
|
+
"""Array of domain names associated with this organization for automatic user assignment"""
|
|
716
|
+
external_id: str | None
|
|
717
|
+
"""Unique external identifier to associate the organization to an external record (case-insensitive)"""
|
|
718
|
+
group_id: int | None
|
|
719
|
+
"""ID of the group where new tickets from users in this organization are automatically assigned"""
|
|
720
|
+
id: int | None
|
|
721
|
+
"""Unique identifier automatically assigned when the organization is created"""
|
|
722
|
+
name: str | None
|
|
723
|
+
"""Unique name for the organization (mandatory field)"""
|
|
724
|
+
notes: str | None
|
|
725
|
+
"""Notes about the organization"""
|
|
726
|
+
organization_fields: dict[str, Any] | None
|
|
727
|
+
"""Key-value object for custom organization fields"""
|
|
728
|
+
shared_comments: bool | None
|
|
729
|
+
"""Boolean indicating whether end users in this organization can comment on each other's tickets"""
|
|
730
|
+
shared_tickets: bool | None
|
|
731
|
+
"""Boolean indicating whether end users in this organization can see each other's tickets"""
|
|
732
|
+
tags: list[Any] | None
|
|
733
|
+
"""Array of tags associated with the organization"""
|
|
734
|
+
updated_at: str | None
|
|
735
|
+
"""Timestamp of the last update to the organization"""
|
|
736
|
+
url: str | None
|
|
737
|
+
"""The API URL of this organization"""
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
class OrganizationsInFilter(TypedDict, total=False):
|
|
741
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
742
|
+
created_at: list[str]
|
|
743
|
+
"""Timestamp when the organization was created"""
|
|
744
|
+
deleted_at: list[str]
|
|
745
|
+
"""Timestamp when the organization was deleted"""
|
|
746
|
+
details: list[str]
|
|
747
|
+
"""Details about the organization, such as the address"""
|
|
748
|
+
domain_names: list[list[Any]]
|
|
749
|
+
"""Array of domain names associated with this organization for automatic user assignment"""
|
|
750
|
+
external_id: list[str]
|
|
751
|
+
"""Unique external identifier to associate the organization to an external record (case-insensitive)"""
|
|
752
|
+
group_id: list[int]
|
|
753
|
+
"""ID of the group where new tickets from users in this organization are automatically assigned"""
|
|
754
|
+
id: list[int]
|
|
755
|
+
"""Unique identifier automatically assigned when the organization is created"""
|
|
756
|
+
name: list[str]
|
|
757
|
+
"""Unique name for the organization (mandatory field)"""
|
|
758
|
+
notes: list[str]
|
|
759
|
+
"""Notes about the organization"""
|
|
760
|
+
organization_fields: list[dict[str, Any]]
|
|
761
|
+
"""Key-value object for custom organization fields"""
|
|
762
|
+
shared_comments: list[bool]
|
|
763
|
+
"""Boolean indicating whether end users in this organization can comment on each other's tickets"""
|
|
764
|
+
shared_tickets: list[bool]
|
|
765
|
+
"""Boolean indicating whether end users in this organization can see each other's tickets"""
|
|
766
|
+
tags: list[list[Any]]
|
|
767
|
+
"""Array of tags associated with the organization"""
|
|
768
|
+
updated_at: list[str]
|
|
769
|
+
"""Timestamp of the last update to the organization"""
|
|
770
|
+
url: list[str]
|
|
771
|
+
"""The API URL of this organization"""
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
class OrganizationsAnyValueFilter(TypedDict, total=False):
|
|
775
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
776
|
+
created_at: Any
|
|
777
|
+
"""Timestamp when the organization was created"""
|
|
778
|
+
deleted_at: Any
|
|
779
|
+
"""Timestamp when the organization was deleted"""
|
|
780
|
+
details: Any
|
|
781
|
+
"""Details about the organization, such as the address"""
|
|
782
|
+
domain_names: Any
|
|
783
|
+
"""Array of domain names associated with this organization for automatic user assignment"""
|
|
784
|
+
external_id: Any
|
|
785
|
+
"""Unique external identifier to associate the organization to an external record (case-insensitive)"""
|
|
786
|
+
group_id: Any
|
|
787
|
+
"""ID of the group where new tickets from users in this organization are automatically assigned"""
|
|
788
|
+
id: Any
|
|
789
|
+
"""Unique identifier automatically assigned when the organization is created"""
|
|
790
|
+
name: Any
|
|
791
|
+
"""Unique name for the organization (mandatory field)"""
|
|
792
|
+
notes: Any
|
|
793
|
+
"""Notes about the organization"""
|
|
794
|
+
organization_fields: Any
|
|
795
|
+
"""Key-value object for custom organization fields"""
|
|
796
|
+
shared_comments: Any
|
|
797
|
+
"""Boolean indicating whether end users in this organization can comment on each other's tickets"""
|
|
798
|
+
shared_tickets: Any
|
|
799
|
+
"""Boolean indicating whether end users in this organization can see each other's tickets"""
|
|
800
|
+
tags: Any
|
|
801
|
+
"""Array of tags associated with the organization"""
|
|
802
|
+
updated_at: Any
|
|
803
|
+
"""Timestamp of the last update to the organization"""
|
|
804
|
+
url: Any
|
|
805
|
+
"""The API URL of this organization"""
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
class OrganizationsStringFilter(TypedDict, total=False):
|
|
809
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
810
|
+
created_at: str
|
|
811
|
+
"""Timestamp when the organization was created"""
|
|
812
|
+
deleted_at: str
|
|
813
|
+
"""Timestamp when the organization was deleted"""
|
|
814
|
+
details: str
|
|
815
|
+
"""Details about the organization, such as the address"""
|
|
816
|
+
domain_names: str
|
|
817
|
+
"""Array of domain names associated with this organization for automatic user assignment"""
|
|
818
|
+
external_id: str
|
|
819
|
+
"""Unique external identifier to associate the organization to an external record (case-insensitive)"""
|
|
820
|
+
group_id: str
|
|
821
|
+
"""ID of the group where new tickets from users in this organization are automatically assigned"""
|
|
822
|
+
id: str
|
|
823
|
+
"""Unique identifier automatically assigned when the organization is created"""
|
|
824
|
+
name: str
|
|
825
|
+
"""Unique name for the organization (mandatory field)"""
|
|
826
|
+
notes: str
|
|
827
|
+
"""Notes about the organization"""
|
|
828
|
+
organization_fields: str
|
|
829
|
+
"""Key-value object for custom organization fields"""
|
|
830
|
+
shared_comments: str
|
|
831
|
+
"""Boolean indicating whether end users in this organization can comment on each other's tickets"""
|
|
832
|
+
shared_tickets: str
|
|
833
|
+
"""Boolean indicating whether end users in this organization can see each other's tickets"""
|
|
834
|
+
tags: str
|
|
835
|
+
"""Array of tags associated with the organization"""
|
|
836
|
+
updated_at: str
|
|
837
|
+
"""Timestamp of the last update to the organization"""
|
|
838
|
+
url: str
|
|
839
|
+
"""The API URL of this organization"""
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
class OrganizationsSortFilter(TypedDict, total=False):
|
|
843
|
+
"""Available fields for sorting organizations search results."""
|
|
844
|
+
created_at: AirbyteSortOrder
|
|
845
|
+
"""Timestamp when the organization was created"""
|
|
846
|
+
deleted_at: AirbyteSortOrder
|
|
847
|
+
"""Timestamp when the organization was deleted"""
|
|
848
|
+
details: AirbyteSortOrder
|
|
849
|
+
"""Details about the organization, such as the address"""
|
|
850
|
+
domain_names: AirbyteSortOrder
|
|
851
|
+
"""Array of domain names associated with this organization for automatic user assignment"""
|
|
852
|
+
external_id: AirbyteSortOrder
|
|
853
|
+
"""Unique external identifier to associate the organization to an external record (case-insensitive)"""
|
|
854
|
+
group_id: AirbyteSortOrder
|
|
855
|
+
"""ID of the group where new tickets from users in this organization are automatically assigned"""
|
|
856
|
+
id: AirbyteSortOrder
|
|
857
|
+
"""Unique identifier automatically assigned when the organization is created"""
|
|
858
|
+
name: AirbyteSortOrder
|
|
859
|
+
"""Unique name for the organization (mandatory field)"""
|
|
860
|
+
notes: AirbyteSortOrder
|
|
861
|
+
"""Notes about the organization"""
|
|
862
|
+
organization_fields: AirbyteSortOrder
|
|
863
|
+
"""Key-value object for custom organization fields"""
|
|
864
|
+
shared_comments: AirbyteSortOrder
|
|
865
|
+
"""Boolean indicating whether end users in this organization can comment on each other's tickets"""
|
|
866
|
+
shared_tickets: AirbyteSortOrder
|
|
867
|
+
"""Boolean indicating whether end users in this organization can see each other's tickets"""
|
|
868
|
+
tags: AirbyteSortOrder
|
|
869
|
+
"""Array of tags associated with the organization"""
|
|
870
|
+
updated_at: AirbyteSortOrder
|
|
871
|
+
"""Timestamp of the last update to the organization"""
|
|
872
|
+
url: AirbyteSortOrder
|
|
873
|
+
"""The API URL of this organization"""
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
# Entity-specific condition types for organizations
|
|
877
|
+
class OrganizationsEqCondition(TypedDict, total=False):
|
|
878
|
+
"""Equal to: field equals value."""
|
|
879
|
+
eq: OrganizationsSearchFilter
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
class OrganizationsNeqCondition(TypedDict, total=False):
|
|
883
|
+
"""Not equal to: field does not equal value."""
|
|
884
|
+
neq: OrganizationsSearchFilter
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
class OrganizationsGtCondition(TypedDict, total=False):
|
|
888
|
+
"""Greater than: field > value."""
|
|
889
|
+
gt: OrganizationsSearchFilter
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
class OrganizationsGteCondition(TypedDict, total=False):
|
|
893
|
+
"""Greater than or equal: field >= value."""
|
|
894
|
+
gte: OrganizationsSearchFilter
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
class OrganizationsLtCondition(TypedDict, total=False):
|
|
898
|
+
"""Less than: field < value."""
|
|
899
|
+
lt: OrganizationsSearchFilter
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class OrganizationsLteCondition(TypedDict, total=False):
|
|
903
|
+
"""Less than or equal: field <= value."""
|
|
904
|
+
lte: OrganizationsSearchFilter
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
class OrganizationsLikeCondition(TypedDict, total=False):
|
|
908
|
+
"""Partial string match with % wildcards."""
|
|
909
|
+
like: OrganizationsStringFilter
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class OrganizationsFuzzyCondition(TypedDict, total=False):
|
|
913
|
+
"""Ordered word text match (case-insensitive)."""
|
|
914
|
+
fuzzy: OrganizationsStringFilter
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
class OrganizationsKeywordCondition(TypedDict, total=False):
|
|
918
|
+
"""Keyword text match (any word present)."""
|
|
919
|
+
keyword: OrganizationsStringFilter
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
class OrganizationsContainsCondition(TypedDict, total=False):
|
|
923
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
924
|
+
contains: OrganizationsAnyValueFilter
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
928
|
+
OrganizationsInCondition = TypedDict("OrganizationsInCondition", {"in": OrganizationsInFilter}, total=False)
|
|
929
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
930
|
+
|
|
931
|
+
OrganizationsNotCondition = TypedDict("OrganizationsNotCondition", {"not": "OrganizationsCondition"}, total=False)
|
|
932
|
+
"""Negates the nested condition."""
|
|
933
|
+
|
|
934
|
+
OrganizationsAndCondition = TypedDict("OrganizationsAndCondition", {"and": "list[OrganizationsCondition]"}, total=False)
|
|
935
|
+
"""True if all nested conditions are true."""
|
|
936
|
+
|
|
937
|
+
OrganizationsOrCondition = TypedDict("OrganizationsOrCondition", {"or": "list[OrganizationsCondition]"}, total=False)
|
|
938
|
+
"""True if any nested condition is true."""
|
|
939
|
+
|
|
940
|
+
OrganizationsAnyCondition = TypedDict("OrganizationsAnyCondition", {"any": OrganizationsAnyValueFilter}, total=False)
|
|
941
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
942
|
+
|
|
943
|
+
# Union of all organizations condition types
|
|
944
|
+
OrganizationsCondition = (
|
|
945
|
+
OrganizationsEqCondition
|
|
946
|
+
| OrganizationsNeqCondition
|
|
947
|
+
| OrganizationsGtCondition
|
|
948
|
+
| OrganizationsGteCondition
|
|
949
|
+
| OrganizationsLtCondition
|
|
950
|
+
| OrganizationsLteCondition
|
|
951
|
+
| OrganizationsInCondition
|
|
952
|
+
| OrganizationsLikeCondition
|
|
953
|
+
| OrganizationsFuzzyCondition
|
|
954
|
+
| OrganizationsKeywordCondition
|
|
955
|
+
| OrganizationsContainsCondition
|
|
956
|
+
| OrganizationsNotCondition
|
|
957
|
+
| OrganizationsAndCondition
|
|
958
|
+
| OrganizationsOrCondition
|
|
959
|
+
| OrganizationsAnyCondition
|
|
960
|
+
)
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
class OrganizationsSearchQuery(TypedDict, total=False):
|
|
964
|
+
"""Search query for organizations entity."""
|
|
965
|
+
filter: OrganizationsCondition
|
|
966
|
+
sort: list[OrganizationsSortFilter]
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
# ===== SATISFACTION_RATINGS SEARCH TYPES =====
|
|
970
|
+
|
|
971
|
+
class SatisfactionRatingsSearchFilter(TypedDict, total=False):
|
|
972
|
+
"""Available fields for filtering satisfaction_ratings search queries."""
|
|
973
|
+
assignee_id: int | None
|
|
974
|
+
"""The identifier of the agent assigned to the ticket at the time the rating was submitted"""
|
|
975
|
+
comment: str | None
|
|
976
|
+
"""Optional comment provided by the requester with the rating"""
|
|
977
|
+
created_at: str | None
|
|
978
|
+
"""Timestamp indicating when the satisfaction rating was created"""
|
|
979
|
+
group_id: int | None
|
|
980
|
+
"""The identifier of the group assigned to the ticket at the time the rating was submitted"""
|
|
981
|
+
id: int | None
|
|
982
|
+
"""Unique identifier for the satisfaction rating, automatically assigned upon creation"""
|
|
983
|
+
reason: str | None
|
|
984
|
+
"""Free-text reason for a bad rating provided by the requester in a follow-up question"""
|
|
985
|
+
reason_id: int | None
|
|
986
|
+
"""Identifier for the predefined reason given for a negative rating, only applicable when score is '..."""
|
|
987
|
+
requester_id: int | None
|
|
988
|
+
"""The identifier of the ticket requester who submitted the satisfaction rating"""
|
|
989
|
+
score: str | None
|
|
990
|
+
"""The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'"""
|
|
991
|
+
ticket_id: int | None
|
|
992
|
+
"""The identifier of the ticket being rated"""
|
|
993
|
+
updated_at: str | None
|
|
994
|
+
"""Timestamp indicating when the satisfaction rating was last updated"""
|
|
995
|
+
url: str | None
|
|
996
|
+
"""The API URL of this satisfaction rating resource"""
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
class SatisfactionRatingsInFilter(TypedDict, total=False):
|
|
1000
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
1001
|
+
assignee_id: list[int]
|
|
1002
|
+
"""The identifier of the agent assigned to the ticket at the time the rating was submitted"""
|
|
1003
|
+
comment: list[str]
|
|
1004
|
+
"""Optional comment provided by the requester with the rating"""
|
|
1005
|
+
created_at: list[str]
|
|
1006
|
+
"""Timestamp indicating when the satisfaction rating was created"""
|
|
1007
|
+
group_id: list[int]
|
|
1008
|
+
"""The identifier of the group assigned to the ticket at the time the rating was submitted"""
|
|
1009
|
+
id: list[int]
|
|
1010
|
+
"""Unique identifier for the satisfaction rating, automatically assigned upon creation"""
|
|
1011
|
+
reason: list[str]
|
|
1012
|
+
"""Free-text reason for a bad rating provided by the requester in a follow-up question"""
|
|
1013
|
+
reason_id: list[int]
|
|
1014
|
+
"""Identifier for the predefined reason given for a negative rating, only applicable when score is '..."""
|
|
1015
|
+
requester_id: list[int]
|
|
1016
|
+
"""The identifier of the ticket requester who submitted the satisfaction rating"""
|
|
1017
|
+
score: list[str]
|
|
1018
|
+
"""The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'"""
|
|
1019
|
+
ticket_id: list[int]
|
|
1020
|
+
"""The identifier of the ticket being rated"""
|
|
1021
|
+
updated_at: list[str]
|
|
1022
|
+
"""Timestamp indicating when the satisfaction rating was last updated"""
|
|
1023
|
+
url: list[str]
|
|
1024
|
+
"""The API URL of this satisfaction rating resource"""
|
|
1025
|
+
|
|
1026
|
+
|
|
1027
|
+
class SatisfactionRatingsAnyValueFilter(TypedDict, total=False):
|
|
1028
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
1029
|
+
assignee_id: Any
|
|
1030
|
+
"""The identifier of the agent assigned to the ticket at the time the rating was submitted"""
|
|
1031
|
+
comment: Any
|
|
1032
|
+
"""Optional comment provided by the requester with the rating"""
|
|
1033
|
+
created_at: Any
|
|
1034
|
+
"""Timestamp indicating when the satisfaction rating was created"""
|
|
1035
|
+
group_id: Any
|
|
1036
|
+
"""The identifier of the group assigned to the ticket at the time the rating was submitted"""
|
|
1037
|
+
id: Any
|
|
1038
|
+
"""Unique identifier for the satisfaction rating, automatically assigned upon creation"""
|
|
1039
|
+
reason: Any
|
|
1040
|
+
"""Free-text reason for a bad rating provided by the requester in a follow-up question"""
|
|
1041
|
+
reason_id: Any
|
|
1042
|
+
"""Identifier for the predefined reason given for a negative rating, only applicable when score is '..."""
|
|
1043
|
+
requester_id: Any
|
|
1044
|
+
"""The identifier of the ticket requester who submitted the satisfaction rating"""
|
|
1045
|
+
score: Any
|
|
1046
|
+
"""The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'"""
|
|
1047
|
+
ticket_id: Any
|
|
1048
|
+
"""The identifier of the ticket being rated"""
|
|
1049
|
+
updated_at: Any
|
|
1050
|
+
"""Timestamp indicating when the satisfaction rating was last updated"""
|
|
1051
|
+
url: Any
|
|
1052
|
+
"""The API URL of this satisfaction rating resource"""
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
class SatisfactionRatingsStringFilter(TypedDict, total=False):
|
|
1056
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
1057
|
+
assignee_id: str
|
|
1058
|
+
"""The identifier of the agent assigned to the ticket at the time the rating was submitted"""
|
|
1059
|
+
comment: str
|
|
1060
|
+
"""Optional comment provided by the requester with the rating"""
|
|
1061
|
+
created_at: str
|
|
1062
|
+
"""Timestamp indicating when the satisfaction rating was created"""
|
|
1063
|
+
group_id: str
|
|
1064
|
+
"""The identifier of the group assigned to the ticket at the time the rating was submitted"""
|
|
1065
|
+
id: str
|
|
1066
|
+
"""Unique identifier for the satisfaction rating, automatically assigned upon creation"""
|
|
1067
|
+
reason: str
|
|
1068
|
+
"""Free-text reason for a bad rating provided by the requester in a follow-up question"""
|
|
1069
|
+
reason_id: str
|
|
1070
|
+
"""Identifier for the predefined reason given for a negative rating, only applicable when score is '..."""
|
|
1071
|
+
requester_id: str
|
|
1072
|
+
"""The identifier of the ticket requester who submitted the satisfaction rating"""
|
|
1073
|
+
score: str
|
|
1074
|
+
"""The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'"""
|
|
1075
|
+
ticket_id: str
|
|
1076
|
+
"""The identifier of the ticket being rated"""
|
|
1077
|
+
updated_at: str
|
|
1078
|
+
"""Timestamp indicating when the satisfaction rating was last updated"""
|
|
1079
|
+
url: str
|
|
1080
|
+
"""The API URL of this satisfaction rating resource"""
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
class SatisfactionRatingsSortFilter(TypedDict, total=False):
|
|
1084
|
+
"""Available fields for sorting satisfaction_ratings search results."""
|
|
1085
|
+
assignee_id: AirbyteSortOrder
|
|
1086
|
+
"""The identifier of the agent assigned to the ticket at the time the rating was submitted"""
|
|
1087
|
+
comment: AirbyteSortOrder
|
|
1088
|
+
"""Optional comment provided by the requester with the rating"""
|
|
1089
|
+
created_at: AirbyteSortOrder
|
|
1090
|
+
"""Timestamp indicating when the satisfaction rating was created"""
|
|
1091
|
+
group_id: AirbyteSortOrder
|
|
1092
|
+
"""The identifier of the group assigned to the ticket at the time the rating was submitted"""
|
|
1093
|
+
id: AirbyteSortOrder
|
|
1094
|
+
"""Unique identifier for the satisfaction rating, automatically assigned upon creation"""
|
|
1095
|
+
reason: AirbyteSortOrder
|
|
1096
|
+
"""Free-text reason for a bad rating provided by the requester in a follow-up question"""
|
|
1097
|
+
reason_id: AirbyteSortOrder
|
|
1098
|
+
"""Identifier for the predefined reason given for a negative rating, only applicable when score is '..."""
|
|
1099
|
+
requester_id: AirbyteSortOrder
|
|
1100
|
+
"""The identifier of the ticket requester who submitted the satisfaction rating"""
|
|
1101
|
+
score: AirbyteSortOrder
|
|
1102
|
+
"""The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'"""
|
|
1103
|
+
ticket_id: AirbyteSortOrder
|
|
1104
|
+
"""The identifier of the ticket being rated"""
|
|
1105
|
+
updated_at: AirbyteSortOrder
|
|
1106
|
+
"""Timestamp indicating when the satisfaction rating was last updated"""
|
|
1107
|
+
url: AirbyteSortOrder
|
|
1108
|
+
"""The API URL of this satisfaction rating resource"""
|
|
1109
|
+
|
|
1110
|
+
|
|
1111
|
+
# Entity-specific condition types for satisfaction_ratings
|
|
1112
|
+
class SatisfactionRatingsEqCondition(TypedDict, total=False):
|
|
1113
|
+
"""Equal to: field equals value."""
|
|
1114
|
+
eq: SatisfactionRatingsSearchFilter
|
|
1115
|
+
|
|
1116
|
+
|
|
1117
|
+
class SatisfactionRatingsNeqCondition(TypedDict, total=False):
|
|
1118
|
+
"""Not equal to: field does not equal value."""
|
|
1119
|
+
neq: SatisfactionRatingsSearchFilter
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
class SatisfactionRatingsGtCondition(TypedDict, total=False):
|
|
1123
|
+
"""Greater than: field > value."""
|
|
1124
|
+
gt: SatisfactionRatingsSearchFilter
|
|
1125
|
+
|
|
1126
|
+
|
|
1127
|
+
class SatisfactionRatingsGteCondition(TypedDict, total=False):
|
|
1128
|
+
"""Greater than or equal: field >= value."""
|
|
1129
|
+
gte: SatisfactionRatingsSearchFilter
|
|
1130
|
+
|
|
1131
|
+
|
|
1132
|
+
class SatisfactionRatingsLtCondition(TypedDict, total=False):
|
|
1133
|
+
"""Less than: field < value."""
|
|
1134
|
+
lt: SatisfactionRatingsSearchFilter
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
class SatisfactionRatingsLteCondition(TypedDict, total=False):
|
|
1138
|
+
"""Less than or equal: field <= value."""
|
|
1139
|
+
lte: SatisfactionRatingsSearchFilter
|
|
1140
|
+
|
|
1141
|
+
|
|
1142
|
+
class SatisfactionRatingsLikeCondition(TypedDict, total=False):
|
|
1143
|
+
"""Partial string match with % wildcards."""
|
|
1144
|
+
like: SatisfactionRatingsStringFilter
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
class SatisfactionRatingsFuzzyCondition(TypedDict, total=False):
|
|
1148
|
+
"""Ordered word text match (case-insensitive)."""
|
|
1149
|
+
fuzzy: SatisfactionRatingsStringFilter
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
class SatisfactionRatingsKeywordCondition(TypedDict, total=False):
|
|
1153
|
+
"""Keyword text match (any word present)."""
|
|
1154
|
+
keyword: SatisfactionRatingsStringFilter
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
class SatisfactionRatingsContainsCondition(TypedDict, total=False):
|
|
1158
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
1159
|
+
contains: SatisfactionRatingsAnyValueFilter
|
|
1160
|
+
|
|
1161
|
+
|
|
1162
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
1163
|
+
SatisfactionRatingsInCondition = TypedDict("SatisfactionRatingsInCondition", {"in": SatisfactionRatingsInFilter}, total=False)
|
|
1164
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
1165
|
+
|
|
1166
|
+
SatisfactionRatingsNotCondition = TypedDict("SatisfactionRatingsNotCondition", {"not": "SatisfactionRatingsCondition"}, total=False)
|
|
1167
|
+
"""Negates the nested condition."""
|
|
1168
|
+
|
|
1169
|
+
SatisfactionRatingsAndCondition = TypedDict("SatisfactionRatingsAndCondition", {"and": "list[SatisfactionRatingsCondition]"}, total=False)
|
|
1170
|
+
"""True if all nested conditions are true."""
|
|
1171
|
+
|
|
1172
|
+
SatisfactionRatingsOrCondition = TypedDict("SatisfactionRatingsOrCondition", {"or": "list[SatisfactionRatingsCondition]"}, total=False)
|
|
1173
|
+
"""True if any nested condition is true."""
|
|
1174
|
+
|
|
1175
|
+
SatisfactionRatingsAnyCondition = TypedDict("SatisfactionRatingsAnyCondition", {"any": SatisfactionRatingsAnyValueFilter}, total=False)
|
|
1176
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
1177
|
+
|
|
1178
|
+
# Union of all satisfaction_ratings condition types
|
|
1179
|
+
SatisfactionRatingsCondition = (
|
|
1180
|
+
SatisfactionRatingsEqCondition
|
|
1181
|
+
| SatisfactionRatingsNeqCondition
|
|
1182
|
+
| SatisfactionRatingsGtCondition
|
|
1183
|
+
| SatisfactionRatingsGteCondition
|
|
1184
|
+
| SatisfactionRatingsLtCondition
|
|
1185
|
+
| SatisfactionRatingsLteCondition
|
|
1186
|
+
| SatisfactionRatingsInCondition
|
|
1187
|
+
| SatisfactionRatingsLikeCondition
|
|
1188
|
+
| SatisfactionRatingsFuzzyCondition
|
|
1189
|
+
| SatisfactionRatingsKeywordCondition
|
|
1190
|
+
| SatisfactionRatingsContainsCondition
|
|
1191
|
+
| SatisfactionRatingsNotCondition
|
|
1192
|
+
| SatisfactionRatingsAndCondition
|
|
1193
|
+
| SatisfactionRatingsOrCondition
|
|
1194
|
+
| SatisfactionRatingsAnyCondition
|
|
1195
|
+
)
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
class SatisfactionRatingsSearchQuery(TypedDict, total=False):
|
|
1199
|
+
"""Search query for satisfaction_ratings entity."""
|
|
1200
|
+
filter: SatisfactionRatingsCondition
|
|
1201
|
+
sort: list[SatisfactionRatingsSortFilter]
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
# ===== TAGS SEARCH TYPES =====
|
|
1205
|
+
|
|
1206
|
+
class TagsSearchFilter(TypedDict, total=False):
|
|
1207
|
+
"""Available fields for filtering tags search queries."""
|
|
1208
|
+
count: int | None
|
|
1209
|
+
"""The number of times this tag has been used across resources"""
|
|
1210
|
+
name: str | None
|
|
1211
|
+
"""The tag name string used to label and categorize resources"""
|
|
1212
|
+
|
|
1213
|
+
|
|
1214
|
+
class TagsInFilter(TypedDict, total=False):
|
|
1215
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
1216
|
+
count: list[int]
|
|
1217
|
+
"""The number of times this tag has been used across resources"""
|
|
1218
|
+
name: list[str]
|
|
1219
|
+
"""The tag name string used to label and categorize resources"""
|
|
1220
|
+
|
|
1221
|
+
|
|
1222
|
+
class TagsAnyValueFilter(TypedDict, total=False):
|
|
1223
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
1224
|
+
count: Any
|
|
1225
|
+
"""The number of times this tag has been used across resources"""
|
|
1226
|
+
name: Any
|
|
1227
|
+
"""The tag name string used to label and categorize resources"""
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
class TagsStringFilter(TypedDict, total=False):
|
|
1231
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
1232
|
+
count: str
|
|
1233
|
+
"""The number of times this tag has been used across resources"""
|
|
1234
|
+
name: str
|
|
1235
|
+
"""The tag name string used to label and categorize resources"""
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
class TagsSortFilter(TypedDict, total=False):
|
|
1239
|
+
"""Available fields for sorting tags search results."""
|
|
1240
|
+
count: AirbyteSortOrder
|
|
1241
|
+
"""The number of times this tag has been used across resources"""
|
|
1242
|
+
name: AirbyteSortOrder
|
|
1243
|
+
"""The tag name string used to label and categorize resources"""
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
# Entity-specific condition types for tags
|
|
1247
|
+
class TagsEqCondition(TypedDict, total=False):
|
|
1248
|
+
"""Equal to: field equals value."""
|
|
1249
|
+
eq: TagsSearchFilter
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
class TagsNeqCondition(TypedDict, total=False):
|
|
1253
|
+
"""Not equal to: field does not equal value."""
|
|
1254
|
+
neq: TagsSearchFilter
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
class TagsGtCondition(TypedDict, total=False):
|
|
1258
|
+
"""Greater than: field > value."""
|
|
1259
|
+
gt: TagsSearchFilter
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
class TagsGteCondition(TypedDict, total=False):
|
|
1263
|
+
"""Greater than or equal: field >= value."""
|
|
1264
|
+
gte: TagsSearchFilter
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
class TagsLtCondition(TypedDict, total=False):
|
|
1268
|
+
"""Less than: field < value."""
|
|
1269
|
+
lt: TagsSearchFilter
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
class TagsLteCondition(TypedDict, total=False):
|
|
1273
|
+
"""Less than or equal: field <= value."""
|
|
1274
|
+
lte: TagsSearchFilter
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
class TagsLikeCondition(TypedDict, total=False):
|
|
1278
|
+
"""Partial string match with % wildcards."""
|
|
1279
|
+
like: TagsStringFilter
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
class TagsFuzzyCondition(TypedDict, total=False):
|
|
1283
|
+
"""Ordered word text match (case-insensitive)."""
|
|
1284
|
+
fuzzy: TagsStringFilter
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
class TagsKeywordCondition(TypedDict, total=False):
|
|
1288
|
+
"""Keyword text match (any word present)."""
|
|
1289
|
+
keyword: TagsStringFilter
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
class TagsContainsCondition(TypedDict, total=False):
|
|
1293
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
1294
|
+
contains: TagsAnyValueFilter
|
|
1295
|
+
|
|
1296
|
+
|
|
1297
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
1298
|
+
TagsInCondition = TypedDict("TagsInCondition", {"in": TagsInFilter}, total=False)
|
|
1299
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
1300
|
+
|
|
1301
|
+
TagsNotCondition = TypedDict("TagsNotCondition", {"not": "TagsCondition"}, total=False)
|
|
1302
|
+
"""Negates the nested condition."""
|
|
1303
|
+
|
|
1304
|
+
TagsAndCondition = TypedDict("TagsAndCondition", {"and": "list[TagsCondition]"}, total=False)
|
|
1305
|
+
"""True if all nested conditions are true."""
|
|
1306
|
+
|
|
1307
|
+
TagsOrCondition = TypedDict("TagsOrCondition", {"or": "list[TagsCondition]"}, total=False)
|
|
1308
|
+
"""True if any nested condition is true."""
|
|
1309
|
+
|
|
1310
|
+
TagsAnyCondition = TypedDict("TagsAnyCondition", {"any": TagsAnyValueFilter}, total=False)
|
|
1311
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
1312
|
+
|
|
1313
|
+
# Union of all tags condition types
|
|
1314
|
+
TagsCondition = (
|
|
1315
|
+
TagsEqCondition
|
|
1316
|
+
| TagsNeqCondition
|
|
1317
|
+
| TagsGtCondition
|
|
1318
|
+
| TagsGteCondition
|
|
1319
|
+
| TagsLtCondition
|
|
1320
|
+
| TagsLteCondition
|
|
1321
|
+
| TagsInCondition
|
|
1322
|
+
| TagsLikeCondition
|
|
1323
|
+
| TagsFuzzyCondition
|
|
1324
|
+
| TagsKeywordCondition
|
|
1325
|
+
| TagsContainsCondition
|
|
1326
|
+
| TagsNotCondition
|
|
1327
|
+
| TagsAndCondition
|
|
1328
|
+
| TagsOrCondition
|
|
1329
|
+
| TagsAnyCondition
|
|
1330
|
+
)
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
class TagsSearchQuery(TypedDict, total=False):
|
|
1334
|
+
"""Search query for tags entity."""
|
|
1335
|
+
filter: TagsCondition
|
|
1336
|
+
sort: list[TagsSortFilter]
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
# ===== TICKET_AUDITS SEARCH TYPES =====
|
|
1340
|
+
|
|
1341
|
+
class TicketAuditsSearchFilter(TypedDict, total=False):
|
|
1342
|
+
"""Available fields for filtering ticket_audits search queries."""
|
|
1343
|
+
attachments: list[Any] | None
|
|
1344
|
+
"""Files or documents attached to the audit"""
|
|
1345
|
+
author_id: int | None
|
|
1346
|
+
"""The unique identifier of the user who created the audit"""
|
|
1347
|
+
created_at: str | None
|
|
1348
|
+
"""Timestamp indicating when the audit was created"""
|
|
1349
|
+
events: list[Any] | None
|
|
1350
|
+
"""Array of events that occurred in this audit, such as field changes, comments, or tag updates"""
|
|
1351
|
+
id: int | None
|
|
1352
|
+
"""Unique identifier for the audit record, automatically assigned when the audit is created"""
|
|
1353
|
+
metadata: dict[str, Any] | None
|
|
1354
|
+
"""Custom and system data associated with the audit"""
|
|
1355
|
+
ticket_id: int | None
|
|
1356
|
+
"""The unique identifier of the ticket associated with this audit"""
|
|
1357
|
+
via: dict[str, Any] | None
|
|
1358
|
+
"""Describes how the audit was created, providing context about the creation source"""
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
class TicketAuditsInFilter(TypedDict, total=False):
|
|
1362
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
1363
|
+
attachments: list[list[Any]]
|
|
1364
|
+
"""Files or documents attached to the audit"""
|
|
1365
|
+
author_id: list[int]
|
|
1366
|
+
"""The unique identifier of the user who created the audit"""
|
|
1367
|
+
created_at: list[str]
|
|
1368
|
+
"""Timestamp indicating when the audit was created"""
|
|
1369
|
+
events: list[list[Any]]
|
|
1370
|
+
"""Array of events that occurred in this audit, such as field changes, comments, or tag updates"""
|
|
1371
|
+
id: list[int]
|
|
1372
|
+
"""Unique identifier for the audit record, automatically assigned when the audit is created"""
|
|
1373
|
+
metadata: list[dict[str, Any]]
|
|
1374
|
+
"""Custom and system data associated with the audit"""
|
|
1375
|
+
ticket_id: list[int]
|
|
1376
|
+
"""The unique identifier of the ticket associated with this audit"""
|
|
1377
|
+
via: list[dict[str, Any]]
|
|
1378
|
+
"""Describes how the audit was created, providing context about the creation source"""
|
|
1379
|
+
|
|
1380
|
+
|
|
1381
|
+
class TicketAuditsAnyValueFilter(TypedDict, total=False):
|
|
1382
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
1383
|
+
attachments: Any
|
|
1384
|
+
"""Files or documents attached to the audit"""
|
|
1385
|
+
author_id: Any
|
|
1386
|
+
"""The unique identifier of the user who created the audit"""
|
|
1387
|
+
created_at: Any
|
|
1388
|
+
"""Timestamp indicating when the audit was created"""
|
|
1389
|
+
events: Any
|
|
1390
|
+
"""Array of events that occurred in this audit, such as field changes, comments, or tag updates"""
|
|
1391
|
+
id: Any
|
|
1392
|
+
"""Unique identifier for the audit record, automatically assigned when the audit is created"""
|
|
1393
|
+
metadata: Any
|
|
1394
|
+
"""Custom and system data associated with the audit"""
|
|
1395
|
+
ticket_id: Any
|
|
1396
|
+
"""The unique identifier of the ticket associated with this audit"""
|
|
1397
|
+
via: Any
|
|
1398
|
+
"""Describes how the audit was created, providing context about the creation source"""
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
class TicketAuditsStringFilter(TypedDict, total=False):
|
|
1402
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
1403
|
+
attachments: str
|
|
1404
|
+
"""Files or documents attached to the audit"""
|
|
1405
|
+
author_id: str
|
|
1406
|
+
"""The unique identifier of the user who created the audit"""
|
|
1407
|
+
created_at: str
|
|
1408
|
+
"""Timestamp indicating when the audit was created"""
|
|
1409
|
+
events: str
|
|
1410
|
+
"""Array of events that occurred in this audit, such as field changes, comments, or tag updates"""
|
|
1411
|
+
id: str
|
|
1412
|
+
"""Unique identifier for the audit record, automatically assigned when the audit is created"""
|
|
1413
|
+
metadata: str
|
|
1414
|
+
"""Custom and system data associated with the audit"""
|
|
1415
|
+
ticket_id: str
|
|
1416
|
+
"""The unique identifier of the ticket associated with this audit"""
|
|
1417
|
+
via: str
|
|
1418
|
+
"""Describes how the audit was created, providing context about the creation source"""
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
class TicketAuditsSortFilter(TypedDict, total=False):
|
|
1422
|
+
"""Available fields for sorting ticket_audits search results."""
|
|
1423
|
+
attachments: AirbyteSortOrder
|
|
1424
|
+
"""Files or documents attached to the audit"""
|
|
1425
|
+
author_id: AirbyteSortOrder
|
|
1426
|
+
"""The unique identifier of the user who created the audit"""
|
|
1427
|
+
created_at: AirbyteSortOrder
|
|
1428
|
+
"""Timestamp indicating when the audit was created"""
|
|
1429
|
+
events: AirbyteSortOrder
|
|
1430
|
+
"""Array of events that occurred in this audit, such as field changes, comments, or tag updates"""
|
|
1431
|
+
id: AirbyteSortOrder
|
|
1432
|
+
"""Unique identifier for the audit record, automatically assigned when the audit is created"""
|
|
1433
|
+
metadata: AirbyteSortOrder
|
|
1434
|
+
"""Custom and system data associated with the audit"""
|
|
1435
|
+
ticket_id: AirbyteSortOrder
|
|
1436
|
+
"""The unique identifier of the ticket associated with this audit"""
|
|
1437
|
+
via: AirbyteSortOrder
|
|
1438
|
+
"""Describes how the audit was created, providing context about the creation source"""
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
# Entity-specific condition types for ticket_audits
|
|
1442
|
+
class TicketAuditsEqCondition(TypedDict, total=False):
|
|
1443
|
+
"""Equal to: field equals value."""
|
|
1444
|
+
eq: TicketAuditsSearchFilter
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
class TicketAuditsNeqCondition(TypedDict, total=False):
|
|
1448
|
+
"""Not equal to: field does not equal value."""
|
|
1449
|
+
neq: TicketAuditsSearchFilter
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
class TicketAuditsGtCondition(TypedDict, total=False):
|
|
1453
|
+
"""Greater than: field > value."""
|
|
1454
|
+
gt: TicketAuditsSearchFilter
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
class TicketAuditsGteCondition(TypedDict, total=False):
|
|
1458
|
+
"""Greater than or equal: field >= value."""
|
|
1459
|
+
gte: TicketAuditsSearchFilter
|
|
1460
|
+
|
|
1461
|
+
|
|
1462
|
+
class TicketAuditsLtCondition(TypedDict, total=False):
|
|
1463
|
+
"""Less than: field < value."""
|
|
1464
|
+
lt: TicketAuditsSearchFilter
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
class TicketAuditsLteCondition(TypedDict, total=False):
|
|
1468
|
+
"""Less than or equal: field <= value."""
|
|
1469
|
+
lte: TicketAuditsSearchFilter
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
class TicketAuditsLikeCondition(TypedDict, total=False):
|
|
1473
|
+
"""Partial string match with % wildcards."""
|
|
1474
|
+
like: TicketAuditsStringFilter
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
class TicketAuditsFuzzyCondition(TypedDict, total=False):
|
|
1478
|
+
"""Ordered word text match (case-insensitive)."""
|
|
1479
|
+
fuzzy: TicketAuditsStringFilter
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
class TicketAuditsKeywordCondition(TypedDict, total=False):
|
|
1483
|
+
"""Keyword text match (any word present)."""
|
|
1484
|
+
keyword: TicketAuditsStringFilter
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
class TicketAuditsContainsCondition(TypedDict, total=False):
|
|
1488
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
1489
|
+
contains: TicketAuditsAnyValueFilter
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
1493
|
+
TicketAuditsInCondition = TypedDict("TicketAuditsInCondition", {"in": TicketAuditsInFilter}, total=False)
|
|
1494
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
1495
|
+
|
|
1496
|
+
TicketAuditsNotCondition = TypedDict("TicketAuditsNotCondition", {"not": "TicketAuditsCondition"}, total=False)
|
|
1497
|
+
"""Negates the nested condition."""
|
|
1498
|
+
|
|
1499
|
+
TicketAuditsAndCondition = TypedDict("TicketAuditsAndCondition", {"and": "list[TicketAuditsCondition]"}, total=False)
|
|
1500
|
+
"""True if all nested conditions are true."""
|
|
1501
|
+
|
|
1502
|
+
TicketAuditsOrCondition = TypedDict("TicketAuditsOrCondition", {"or": "list[TicketAuditsCondition]"}, total=False)
|
|
1503
|
+
"""True if any nested condition is true."""
|
|
1504
|
+
|
|
1505
|
+
TicketAuditsAnyCondition = TypedDict("TicketAuditsAnyCondition", {"any": TicketAuditsAnyValueFilter}, total=False)
|
|
1506
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
1507
|
+
|
|
1508
|
+
# Union of all ticket_audits condition types
|
|
1509
|
+
TicketAuditsCondition = (
|
|
1510
|
+
TicketAuditsEqCondition
|
|
1511
|
+
| TicketAuditsNeqCondition
|
|
1512
|
+
| TicketAuditsGtCondition
|
|
1513
|
+
| TicketAuditsGteCondition
|
|
1514
|
+
| TicketAuditsLtCondition
|
|
1515
|
+
| TicketAuditsLteCondition
|
|
1516
|
+
| TicketAuditsInCondition
|
|
1517
|
+
| TicketAuditsLikeCondition
|
|
1518
|
+
| TicketAuditsFuzzyCondition
|
|
1519
|
+
| TicketAuditsKeywordCondition
|
|
1520
|
+
| TicketAuditsContainsCondition
|
|
1521
|
+
| TicketAuditsNotCondition
|
|
1522
|
+
| TicketAuditsAndCondition
|
|
1523
|
+
| TicketAuditsOrCondition
|
|
1524
|
+
| TicketAuditsAnyCondition
|
|
1525
|
+
)
|
|
1526
|
+
|
|
1527
|
+
|
|
1528
|
+
class TicketAuditsSearchQuery(TypedDict, total=False):
|
|
1529
|
+
"""Search query for ticket_audits entity."""
|
|
1530
|
+
filter: TicketAuditsCondition
|
|
1531
|
+
sort: list[TicketAuditsSortFilter]
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
# ===== TICKET_COMMENTS SEARCH TYPES =====
|
|
1535
|
+
|
|
1536
|
+
class TicketCommentsSearchFilter(TypedDict, total=False):
|
|
1537
|
+
"""Available fields for filtering ticket_comments search queries."""
|
|
1538
|
+
attachments: list[Any] | None
|
|
1539
|
+
"""List of files or media attached to the comment"""
|
|
1540
|
+
audit_id: int | None
|
|
1541
|
+
"""Identifier of the audit record associated with this comment event"""
|
|
1542
|
+
author_id: int | None
|
|
1543
|
+
"""Identifier of the user who created the comment"""
|
|
1544
|
+
body: str | None
|
|
1545
|
+
"""Content of the comment in its original format"""
|
|
1546
|
+
created_at: str | None
|
|
1547
|
+
"""Timestamp when the comment was created"""
|
|
1548
|
+
event_type: str | None
|
|
1549
|
+
"""Specific classification of the event within the ticket event stream"""
|
|
1550
|
+
html_body: str | None
|
|
1551
|
+
"""HTML-formatted content of the comment"""
|
|
1552
|
+
id: int | None
|
|
1553
|
+
"""Unique identifier for the comment event"""
|
|
1554
|
+
metadata: dict[str, Any] | None
|
|
1555
|
+
"""Additional structured information about the comment not covered by standard fields"""
|
|
1556
|
+
plain_body: str | None
|
|
1557
|
+
"""Plain text content of the comment without formatting"""
|
|
1558
|
+
public: bool | None
|
|
1559
|
+
"""Boolean indicating whether the comment is visible to end users or is an internal note"""
|
|
1560
|
+
ticket_id: int | None
|
|
1561
|
+
"""Identifier of the ticket to which this comment belongs"""
|
|
1562
|
+
timestamp: int | None
|
|
1563
|
+
"""Timestamp of when the event occurred in the incremental export stream"""
|
|
1564
|
+
type: str | None
|
|
1565
|
+
"""Type of event, typically indicating this is a comment event"""
|
|
1566
|
+
uploads: list[Any] | None
|
|
1567
|
+
"""Array of upload tokens or identifiers for files being attached to the comment"""
|
|
1568
|
+
via: dict[str, Any] | None
|
|
1569
|
+
"""Channel or method through which the comment was submitted"""
|
|
1570
|
+
via_reference_id: int | None
|
|
1571
|
+
"""Reference identifier for the channel through which the comment was created"""
|
|
1572
|
+
|
|
1573
|
+
|
|
1574
|
+
class TicketCommentsInFilter(TypedDict, total=False):
|
|
1575
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
1576
|
+
attachments: list[list[Any]]
|
|
1577
|
+
"""List of files or media attached to the comment"""
|
|
1578
|
+
audit_id: list[int]
|
|
1579
|
+
"""Identifier of the audit record associated with this comment event"""
|
|
1580
|
+
author_id: list[int]
|
|
1581
|
+
"""Identifier of the user who created the comment"""
|
|
1582
|
+
body: list[str]
|
|
1583
|
+
"""Content of the comment in its original format"""
|
|
1584
|
+
created_at: list[str]
|
|
1585
|
+
"""Timestamp when the comment was created"""
|
|
1586
|
+
event_type: list[str]
|
|
1587
|
+
"""Specific classification of the event within the ticket event stream"""
|
|
1588
|
+
html_body: list[str]
|
|
1589
|
+
"""HTML-formatted content of the comment"""
|
|
1590
|
+
id: list[int]
|
|
1591
|
+
"""Unique identifier for the comment event"""
|
|
1592
|
+
metadata: list[dict[str, Any]]
|
|
1593
|
+
"""Additional structured information about the comment not covered by standard fields"""
|
|
1594
|
+
plain_body: list[str]
|
|
1595
|
+
"""Plain text content of the comment without formatting"""
|
|
1596
|
+
public: list[bool]
|
|
1597
|
+
"""Boolean indicating whether the comment is visible to end users or is an internal note"""
|
|
1598
|
+
ticket_id: list[int]
|
|
1599
|
+
"""Identifier of the ticket to which this comment belongs"""
|
|
1600
|
+
timestamp: list[int]
|
|
1601
|
+
"""Timestamp of when the event occurred in the incremental export stream"""
|
|
1602
|
+
type: list[str]
|
|
1603
|
+
"""Type of event, typically indicating this is a comment event"""
|
|
1604
|
+
uploads: list[list[Any]]
|
|
1605
|
+
"""Array of upload tokens or identifiers for files being attached to the comment"""
|
|
1606
|
+
via: list[dict[str, Any]]
|
|
1607
|
+
"""Channel or method through which the comment was submitted"""
|
|
1608
|
+
via_reference_id: list[int]
|
|
1609
|
+
"""Reference identifier for the channel through which the comment was created"""
|
|
1610
|
+
|
|
1611
|
+
|
|
1612
|
+
class TicketCommentsAnyValueFilter(TypedDict, total=False):
|
|
1613
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
1614
|
+
attachments: Any
|
|
1615
|
+
"""List of files or media attached to the comment"""
|
|
1616
|
+
audit_id: Any
|
|
1617
|
+
"""Identifier of the audit record associated with this comment event"""
|
|
1618
|
+
author_id: Any
|
|
1619
|
+
"""Identifier of the user who created the comment"""
|
|
1620
|
+
body: Any
|
|
1621
|
+
"""Content of the comment in its original format"""
|
|
1622
|
+
created_at: Any
|
|
1623
|
+
"""Timestamp when the comment was created"""
|
|
1624
|
+
event_type: Any
|
|
1625
|
+
"""Specific classification of the event within the ticket event stream"""
|
|
1626
|
+
html_body: Any
|
|
1627
|
+
"""HTML-formatted content of the comment"""
|
|
1628
|
+
id: Any
|
|
1629
|
+
"""Unique identifier for the comment event"""
|
|
1630
|
+
metadata: Any
|
|
1631
|
+
"""Additional structured information about the comment not covered by standard fields"""
|
|
1632
|
+
plain_body: Any
|
|
1633
|
+
"""Plain text content of the comment without formatting"""
|
|
1634
|
+
public: Any
|
|
1635
|
+
"""Boolean indicating whether the comment is visible to end users or is an internal note"""
|
|
1636
|
+
ticket_id: Any
|
|
1637
|
+
"""Identifier of the ticket to which this comment belongs"""
|
|
1638
|
+
timestamp: Any
|
|
1639
|
+
"""Timestamp of when the event occurred in the incremental export stream"""
|
|
1640
|
+
type: Any
|
|
1641
|
+
"""Type of event, typically indicating this is a comment event"""
|
|
1642
|
+
uploads: Any
|
|
1643
|
+
"""Array of upload tokens or identifiers for files being attached to the comment"""
|
|
1644
|
+
via: Any
|
|
1645
|
+
"""Channel or method through which the comment was submitted"""
|
|
1646
|
+
via_reference_id: Any
|
|
1647
|
+
"""Reference identifier for the channel through which the comment was created"""
|
|
1648
|
+
|
|
1649
|
+
|
|
1650
|
+
class TicketCommentsStringFilter(TypedDict, total=False):
|
|
1651
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
1652
|
+
attachments: str
|
|
1653
|
+
"""List of files or media attached to the comment"""
|
|
1654
|
+
audit_id: str
|
|
1655
|
+
"""Identifier of the audit record associated with this comment event"""
|
|
1656
|
+
author_id: str
|
|
1657
|
+
"""Identifier of the user who created the comment"""
|
|
1658
|
+
body: str
|
|
1659
|
+
"""Content of the comment in its original format"""
|
|
1660
|
+
created_at: str
|
|
1661
|
+
"""Timestamp when the comment was created"""
|
|
1662
|
+
event_type: str
|
|
1663
|
+
"""Specific classification of the event within the ticket event stream"""
|
|
1664
|
+
html_body: str
|
|
1665
|
+
"""HTML-formatted content of the comment"""
|
|
1666
|
+
id: str
|
|
1667
|
+
"""Unique identifier for the comment event"""
|
|
1668
|
+
metadata: str
|
|
1669
|
+
"""Additional structured information about the comment not covered by standard fields"""
|
|
1670
|
+
plain_body: str
|
|
1671
|
+
"""Plain text content of the comment without formatting"""
|
|
1672
|
+
public: str
|
|
1673
|
+
"""Boolean indicating whether the comment is visible to end users or is an internal note"""
|
|
1674
|
+
ticket_id: str
|
|
1675
|
+
"""Identifier of the ticket to which this comment belongs"""
|
|
1676
|
+
timestamp: str
|
|
1677
|
+
"""Timestamp of when the event occurred in the incremental export stream"""
|
|
1678
|
+
type: str
|
|
1679
|
+
"""Type of event, typically indicating this is a comment event"""
|
|
1680
|
+
uploads: str
|
|
1681
|
+
"""Array of upload tokens or identifiers for files being attached to the comment"""
|
|
1682
|
+
via: str
|
|
1683
|
+
"""Channel or method through which the comment was submitted"""
|
|
1684
|
+
via_reference_id: str
|
|
1685
|
+
"""Reference identifier for the channel through which the comment was created"""
|
|
1686
|
+
|
|
1687
|
+
|
|
1688
|
+
class TicketCommentsSortFilter(TypedDict, total=False):
|
|
1689
|
+
"""Available fields for sorting ticket_comments search results."""
|
|
1690
|
+
attachments: AirbyteSortOrder
|
|
1691
|
+
"""List of files or media attached to the comment"""
|
|
1692
|
+
audit_id: AirbyteSortOrder
|
|
1693
|
+
"""Identifier of the audit record associated with this comment event"""
|
|
1694
|
+
author_id: AirbyteSortOrder
|
|
1695
|
+
"""Identifier of the user who created the comment"""
|
|
1696
|
+
body: AirbyteSortOrder
|
|
1697
|
+
"""Content of the comment in its original format"""
|
|
1698
|
+
created_at: AirbyteSortOrder
|
|
1699
|
+
"""Timestamp when the comment was created"""
|
|
1700
|
+
event_type: AirbyteSortOrder
|
|
1701
|
+
"""Specific classification of the event within the ticket event stream"""
|
|
1702
|
+
html_body: AirbyteSortOrder
|
|
1703
|
+
"""HTML-formatted content of the comment"""
|
|
1704
|
+
id: AirbyteSortOrder
|
|
1705
|
+
"""Unique identifier for the comment event"""
|
|
1706
|
+
metadata: AirbyteSortOrder
|
|
1707
|
+
"""Additional structured information about the comment not covered by standard fields"""
|
|
1708
|
+
plain_body: AirbyteSortOrder
|
|
1709
|
+
"""Plain text content of the comment without formatting"""
|
|
1710
|
+
public: AirbyteSortOrder
|
|
1711
|
+
"""Boolean indicating whether the comment is visible to end users or is an internal note"""
|
|
1712
|
+
ticket_id: AirbyteSortOrder
|
|
1713
|
+
"""Identifier of the ticket to which this comment belongs"""
|
|
1714
|
+
timestamp: AirbyteSortOrder
|
|
1715
|
+
"""Timestamp of when the event occurred in the incremental export stream"""
|
|
1716
|
+
type: AirbyteSortOrder
|
|
1717
|
+
"""Type of event, typically indicating this is a comment event"""
|
|
1718
|
+
uploads: AirbyteSortOrder
|
|
1719
|
+
"""Array of upload tokens or identifiers for files being attached to the comment"""
|
|
1720
|
+
via: AirbyteSortOrder
|
|
1721
|
+
"""Channel or method through which the comment was submitted"""
|
|
1722
|
+
via_reference_id: AirbyteSortOrder
|
|
1723
|
+
"""Reference identifier for the channel through which the comment was created"""
|
|
1724
|
+
|
|
1725
|
+
|
|
1726
|
+
# Entity-specific condition types for ticket_comments
|
|
1727
|
+
class TicketCommentsEqCondition(TypedDict, total=False):
|
|
1728
|
+
"""Equal to: field equals value."""
|
|
1729
|
+
eq: TicketCommentsSearchFilter
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
class TicketCommentsNeqCondition(TypedDict, total=False):
|
|
1733
|
+
"""Not equal to: field does not equal value."""
|
|
1734
|
+
neq: TicketCommentsSearchFilter
|
|
1735
|
+
|
|
1736
|
+
|
|
1737
|
+
class TicketCommentsGtCondition(TypedDict, total=False):
|
|
1738
|
+
"""Greater than: field > value."""
|
|
1739
|
+
gt: TicketCommentsSearchFilter
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
class TicketCommentsGteCondition(TypedDict, total=False):
|
|
1743
|
+
"""Greater than or equal: field >= value."""
|
|
1744
|
+
gte: TicketCommentsSearchFilter
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
class TicketCommentsLtCondition(TypedDict, total=False):
|
|
1748
|
+
"""Less than: field < value."""
|
|
1749
|
+
lt: TicketCommentsSearchFilter
|
|
1750
|
+
|
|
1751
|
+
|
|
1752
|
+
class TicketCommentsLteCondition(TypedDict, total=False):
|
|
1753
|
+
"""Less than or equal: field <= value."""
|
|
1754
|
+
lte: TicketCommentsSearchFilter
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
class TicketCommentsLikeCondition(TypedDict, total=False):
|
|
1758
|
+
"""Partial string match with % wildcards."""
|
|
1759
|
+
like: TicketCommentsStringFilter
|
|
1760
|
+
|
|
1761
|
+
|
|
1762
|
+
class TicketCommentsFuzzyCondition(TypedDict, total=False):
|
|
1763
|
+
"""Ordered word text match (case-insensitive)."""
|
|
1764
|
+
fuzzy: TicketCommentsStringFilter
|
|
1765
|
+
|
|
1766
|
+
|
|
1767
|
+
class TicketCommentsKeywordCondition(TypedDict, total=False):
|
|
1768
|
+
"""Keyword text match (any word present)."""
|
|
1769
|
+
keyword: TicketCommentsStringFilter
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
class TicketCommentsContainsCondition(TypedDict, total=False):
|
|
1773
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
1774
|
+
contains: TicketCommentsAnyValueFilter
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
1778
|
+
TicketCommentsInCondition = TypedDict("TicketCommentsInCondition", {"in": TicketCommentsInFilter}, total=False)
|
|
1779
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
1780
|
+
|
|
1781
|
+
TicketCommentsNotCondition = TypedDict("TicketCommentsNotCondition", {"not": "TicketCommentsCondition"}, total=False)
|
|
1782
|
+
"""Negates the nested condition."""
|
|
1783
|
+
|
|
1784
|
+
TicketCommentsAndCondition = TypedDict("TicketCommentsAndCondition", {"and": "list[TicketCommentsCondition]"}, total=False)
|
|
1785
|
+
"""True if all nested conditions are true."""
|
|
1786
|
+
|
|
1787
|
+
TicketCommentsOrCondition = TypedDict("TicketCommentsOrCondition", {"or": "list[TicketCommentsCondition]"}, total=False)
|
|
1788
|
+
"""True if any nested condition is true."""
|
|
1789
|
+
|
|
1790
|
+
TicketCommentsAnyCondition = TypedDict("TicketCommentsAnyCondition", {"any": TicketCommentsAnyValueFilter}, total=False)
|
|
1791
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
1792
|
+
|
|
1793
|
+
# Union of all ticket_comments condition types
|
|
1794
|
+
TicketCommentsCondition = (
|
|
1795
|
+
TicketCommentsEqCondition
|
|
1796
|
+
| TicketCommentsNeqCondition
|
|
1797
|
+
| TicketCommentsGtCondition
|
|
1798
|
+
| TicketCommentsGteCondition
|
|
1799
|
+
| TicketCommentsLtCondition
|
|
1800
|
+
| TicketCommentsLteCondition
|
|
1801
|
+
| TicketCommentsInCondition
|
|
1802
|
+
| TicketCommentsLikeCondition
|
|
1803
|
+
| TicketCommentsFuzzyCondition
|
|
1804
|
+
| TicketCommentsKeywordCondition
|
|
1805
|
+
| TicketCommentsContainsCondition
|
|
1806
|
+
| TicketCommentsNotCondition
|
|
1807
|
+
| TicketCommentsAndCondition
|
|
1808
|
+
| TicketCommentsOrCondition
|
|
1809
|
+
| TicketCommentsAnyCondition
|
|
1810
|
+
)
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
class TicketCommentsSearchQuery(TypedDict, total=False):
|
|
1814
|
+
"""Search query for ticket_comments entity."""
|
|
1815
|
+
filter: TicketCommentsCondition
|
|
1816
|
+
sort: list[TicketCommentsSortFilter]
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
# ===== TICKET_FIELDS SEARCH TYPES =====
|
|
1820
|
+
|
|
1821
|
+
class TicketFieldsSearchFilter(TypedDict, total=False):
|
|
1822
|
+
"""Available fields for filtering ticket_fields search queries."""
|
|
1823
|
+
active: bool | None
|
|
1824
|
+
"""Whether this field is currently available for use"""
|
|
1825
|
+
agent_description: str | None
|
|
1826
|
+
"""A description of the ticket field that only agents can see"""
|
|
1827
|
+
collapsed_for_agents: bool | None
|
|
1828
|
+
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently u..."""
|
|
1829
|
+
created_at: str | None
|
|
1830
|
+
"""Timestamp when the custom ticket field was created"""
|
|
1831
|
+
custom_field_options: list[Any] | None
|
|
1832
|
+
"""Array of option objects for custom ticket fields of type multiselect or tagger, containing name a..."""
|
|
1833
|
+
custom_statuses: list[Any] | None
|
|
1834
|
+
"""List of customized ticket statuses, only present for system ticket fields of type custom_status"""
|
|
1835
|
+
description: str | None
|
|
1836
|
+
"""Text describing the purpose of the ticket field to users"""
|
|
1837
|
+
editable_in_portal: bool | None
|
|
1838
|
+
"""Whether this field is editable by end users in Help Center"""
|
|
1839
|
+
id: int | None
|
|
1840
|
+
"""Unique identifier for the ticket field, automatically assigned when created"""
|
|
1841
|
+
key: str | None
|
|
1842
|
+
"""Internal identifier or reference key for the field"""
|
|
1843
|
+
position: int | None
|
|
1844
|
+
"""The relative position of the ticket field on a ticket, controlling display order"""
|
|
1845
|
+
raw_description: str | None
|
|
1846
|
+
"""The dynamic content placeholder if present, or the description value if not"""
|
|
1847
|
+
raw_title: str | None
|
|
1848
|
+
"""The dynamic content placeholder if present, or the title value if not"""
|
|
1849
|
+
raw_title_in_portal: str | None
|
|
1850
|
+
"""The dynamic content placeholder if present, or the title_in_portal value if not"""
|
|
1851
|
+
regexp_for_validation: str | None
|
|
1852
|
+
"""For regexp fields only, the validation pattern for a field value to be deemed valid"""
|
|
1853
|
+
removable: bool | None
|
|
1854
|
+
"""If false, this field is a system field that must be present on all tickets"""
|
|
1855
|
+
required: bool | None
|
|
1856
|
+
"""If true, agents must enter a value in the field to change the ticket status to solved"""
|
|
1857
|
+
required_in_portal: bool | None
|
|
1858
|
+
"""If true, end users must enter a value in the field to create a request"""
|
|
1859
|
+
sub_type_id: int | None
|
|
1860
|
+
"""For system ticket fields of type priority and status, controlling available options"""
|
|
1861
|
+
system_field_options: list[Any] | None
|
|
1862
|
+
"""Array of options for system ticket fields of type tickettype, priority, or status"""
|
|
1863
|
+
tag: str | None
|
|
1864
|
+
"""For checkbox fields only, a tag added to tickets when the checkbox field is selected"""
|
|
1865
|
+
title: str | None
|
|
1866
|
+
"""The title of the ticket field displayed to agents"""
|
|
1867
|
+
title_in_portal: str | None
|
|
1868
|
+
"""The title of the ticket field displayed to end users in Help Center"""
|
|
1869
|
+
type: str | None
|
|
1870
|
+
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger,..."""
|
|
1871
|
+
updated_at: str | None
|
|
1872
|
+
"""Timestamp when the custom ticket field was last updated"""
|
|
1873
|
+
url: str | None
|
|
1874
|
+
"""The API URL for this ticket field resource"""
|
|
1875
|
+
visible_in_portal: bool | None
|
|
1876
|
+
"""Whether this field is visible to end users in Help Center"""
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
class TicketFieldsInFilter(TypedDict, total=False):
|
|
1880
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
1881
|
+
active: list[bool]
|
|
1882
|
+
"""Whether this field is currently available for use"""
|
|
1883
|
+
agent_description: list[str]
|
|
1884
|
+
"""A description of the ticket field that only agents can see"""
|
|
1885
|
+
collapsed_for_agents: list[bool]
|
|
1886
|
+
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently u..."""
|
|
1887
|
+
created_at: list[str]
|
|
1888
|
+
"""Timestamp when the custom ticket field was created"""
|
|
1889
|
+
custom_field_options: list[list[Any]]
|
|
1890
|
+
"""Array of option objects for custom ticket fields of type multiselect or tagger, containing name a..."""
|
|
1891
|
+
custom_statuses: list[list[Any]]
|
|
1892
|
+
"""List of customized ticket statuses, only present for system ticket fields of type custom_status"""
|
|
1893
|
+
description: list[str]
|
|
1894
|
+
"""Text describing the purpose of the ticket field to users"""
|
|
1895
|
+
editable_in_portal: list[bool]
|
|
1896
|
+
"""Whether this field is editable by end users in Help Center"""
|
|
1897
|
+
id: list[int]
|
|
1898
|
+
"""Unique identifier for the ticket field, automatically assigned when created"""
|
|
1899
|
+
key: list[str]
|
|
1900
|
+
"""Internal identifier or reference key for the field"""
|
|
1901
|
+
position: list[int]
|
|
1902
|
+
"""The relative position of the ticket field on a ticket, controlling display order"""
|
|
1903
|
+
raw_description: list[str]
|
|
1904
|
+
"""The dynamic content placeholder if present, or the description value if not"""
|
|
1905
|
+
raw_title: list[str]
|
|
1906
|
+
"""The dynamic content placeholder if present, or the title value if not"""
|
|
1907
|
+
raw_title_in_portal: list[str]
|
|
1908
|
+
"""The dynamic content placeholder if present, or the title_in_portal value if not"""
|
|
1909
|
+
regexp_for_validation: list[str]
|
|
1910
|
+
"""For regexp fields only, the validation pattern for a field value to be deemed valid"""
|
|
1911
|
+
removable: list[bool]
|
|
1912
|
+
"""If false, this field is a system field that must be present on all tickets"""
|
|
1913
|
+
required: list[bool]
|
|
1914
|
+
"""If true, agents must enter a value in the field to change the ticket status to solved"""
|
|
1915
|
+
required_in_portal: list[bool]
|
|
1916
|
+
"""If true, end users must enter a value in the field to create a request"""
|
|
1917
|
+
sub_type_id: list[int]
|
|
1918
|
+
"""For system ticket fields of type priority and status, controlling available options"""
|
|
1919
|
+
system_field_options: list[list[Any]]
|
|
1920
|
+
"""Array of options for system ticket fields of type tickettype, priority, or status"""
|
|
1921
|
+
tag: list[str]
|
|
1922
|
+
"""For checkbox fields only, a tag added to tickets when the checkbox field is selected"""
|
|
1923
|
+
title: list[str]
|
|
1924
|
+
"""The title of the ticket field displayed to agents"""
|
|
1925
|
+
title_in_portal: list[str]
|
|
1926
|
+
"""The title of the ticket field displayed to end users in Help Center"""
|
|
1927
|
+
type: list[str]
|
|
1928
|
+
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger,..."""
|
|
1929
|
+
updated_at: list[str]
|
|
1930
|
+
"""Timestamp when the custom ticket field was last updated"""
|
|
1931
|
+
url: list[str]
|
|
1932
|
+
"""The API URL for this ticket field resource"""
|
|
1933
|
+
visible_in_portal: list[bool]
|
|
1934
|
+
"""Whether this field is visible to end users in Help Center"""
|
|
1935
|
+
|
|
1936
|
+
|
|
1937
|
+
class TicketFieldsAnyValueFilter(TypedDict, total=False):
|
|
1938
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
1939
|
+
active: Any
|
|
1940
|
+
"""Whether this field is currently available for use"""
|
|
1941
|
+
agent_description: Any
|
|
1942
|
+
"""A description of the ticket field that only agents can see"""
|
|
1943
|
+
collapsed_for_agents: Any
|
|
1944
|
+
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently u..."""
|
|
1945
|
+
created_at: Any
|
|
1946
|
+
"""Timestamp when the custom ticket field was created"""
|
|
1947
|
+
custom_field_options: Any
|
|
1948
|
+
"""Array of option objects for custom ticket fields of type multiselect or tagger, containing name a..."""
|
|
1949
|
+
custom_statuses: Any
|
|
1950
|
+
"""List of customized ticket statuses, only present for system ticket fields of type custom_status"""
|
|
1951
|
+
description: Any
|
|
1952
|
+
"""Text describing the purpose of the ticket field to users"""
|
|
1953
|
+
editable_in_portal: Any
|
|
1954
|
+
"""Whether this field is editable by end users in Help Center"""
|
|
1955
|
+
id: Any
|
|
1956
|
+
"""Unique identifier for the ticket field, automatically assigned when created"""
|
|
1957
|
+
key: Any
|
|
1958
|
+
"""Internal identifier or reference key for the field"""
|
|
1959
|
+
position: Any
|
|
1960
|
+
"""The relative position of the ticket field on a ticket, controlling display order"""
|
|
1961
|
+
raw_description: Any
|
|
1962
|
+
"""The dynamic content placeholder if present, or the description value if not"""
|
|
1963
|
+
raw_title: Any
|
|
1964
|
+
"""The dynamic content placeholder if present, or the title value if not"""
|
|
1965
|
+
raw_title_in_portal: Any
|
|
1966
|
+
"""The dynamic content placeholder if present, or the title_in_portal value if not"""
|
|
1967
|
+
regexp_for_validation: Any
|
|
1968
|
+
"""For regexp fields only, the validation pattern for a field value to be deemed valid"""
|
|
1969
|
+
removable: Any
|
|
1970
|
+
"""If false, this field is a system field that must be present on all tickets"""
|
|
1971
|
+
required: Any
|
|
1972
|
+
"""If true, agents must enter a value in the field to change the ticket status to solved"""
|
|
1973
|
+
required_in_portal: Any
|
|
1974
|
+
"""If true, end users must enter a value in the field to create a request"""
|
|
1975
|
+
sub_type_id: Any
|
|
1976
|
+
"""For system ticket fields of type priority and status, controlling available options"""
|
|
1977
|
+
system_field_options: Any
|
|
1978
|
+
"""Array of options for system ticket fields of type tickettype, priority, or status"""
|
|
1979
|
+
tag: Any
|
|
1980
|
+
"""For checkbox fields only, a tag added to tickets when the checkbox field is selected"""
|
|
1981
|
+
title: Any
|
|
1982
|
+
"""The title of the ticket field displayed to agents"""
|
|
1983
|
+
title_in_portal: Any
|
|
1984
|
+
"""The title of the ticket field displayed to end users in Help Center"""
|
|
1985
|
+
type: Any
|
|
1986
|
+
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger,..."""
|
|
1987
|
+
updated_at: Any
|
|
1988
|
+
"""Timestamp when the custom ticket field was last updated"""
|
|
1989
|
+
url: Any
|
|
1990
|
+
"""The API URL for this ticket field resource"""
|
|
1991
|
+
visible_in_portal: Any
|
|
1992
|
+
"""Whether this field is visible to end users in Help Center"""
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
class TicketFieldsStringFilter(TypedDict, total=False):
|
|
1996
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
1997
|
+
active: str
|
|
1998
|
+
"""Whether this field is currently available for use"""
|
|
1999
|
+
agent_description: str
|
|
2000
|
+
"""A description of the ticket field that only agents can see"""
|
|
2001
|
+
collapsed_for_agents: str
|
|
2002
|
+
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently u..."""
|
|
2003
|
+
created_at: str
|
|
2004
|
+
"""Timestamp when the custom ticket field was created"""
|
|
2005
|
+
custom_field_options: str
|
|
2006
|
+
"""Array of option objects for custom ticket fields of type multiselect or tagger, containing name a..."""
|
|
2007
|
+
custom_statuses: str
|
|
2008
|
+
"""List of customized ticket statuses, only present for system ticket fields of type custom_status"""
|
|
2009
|
+
description: str
|
|
2010
|
+
"""Text describing the purpose of the ticket field to users"""
|
|
2011
|
+
editable_in_portal: str
|
|
2012
|
+
"""Whether this field is editable by end users in Help Center"""
|
|
2013
|
+
id: str
|
|
2014
|
+
"""Unique identifier for the ticket field, automatically assigned when created"""
|
|
2015
|
+
key: str
|
|
2016
|
+
"""Internal identifier or reference key for the field"""
|
|
2017
|
+
position: str
|
|
2018
|
+
"""The relative position of the ticket field on a ticket, controlling display order"""
|
|
2019
|
+
raw_description: str
|
|
2020
|
+
"""The dynamic content placeholder if present, or the description value if not"""
|
|
2021
|
+
raw_title: str
|
|
2022
|
+
"""The dynamic content placeholder if present, or the title value if not"""
|
|
2023
|
+
raw_title_in_portal: str
|
|
2024
|
+
"""The dynamic content placeholder if present, or the title_in_portal value if not"""
|
|
2025
|
+
regexp_for_validation: str
|
|
2026
|
+
"""For regexp fields only, the validation pattern for a field value to be deemed valid"""
|
|
2027
|
+
removable: str
|
|
2028
|
+
"""If false, this field is a system field that must be present on all tickets"""
|
|
2029
|
+
required: str
|
|
2030
|
+
"""If true, agents must enter a value in the field to change the ticket status to solved"""
|
|
2031
|
+
required_in_portal: str
|
|
2032
|
+
"""If true, end users must enter a value in the field to create a request"""
|
|
2033
|
+
sub_type_id: str
|
|
2034
|
+
"""For system ticket fields of type priority and status, controlling available options"""
|
|
2035
|
+
system_field_options: str
|
|
2036
|
+
"""Array of options for system ticket fields of type tickettype, priority, or status"""
|
|
2037
|
+
tag: str
|
|
2038
|
+
"""For checkbox fields only, a tag added to tickets when the checkbox field is selected"""
|
|
2039
|
+
title: str
|
|
2040
|
+
"""The title of the ticket field displayed to agents"""
|
|
2041
|
+
title_in_portal: str
|
|
2042
|
+
"""The title of the ticket field displayed to end users in Help Center"""
|
|
2043
|
+
type: str
|
|
2044
|
+
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger,..."""
|
|
2045
|
+
updated_at: str
|
|
2046
|
+
"""Timestamp when the custom ticket field was last updated"""
|
|
2047
|
+
url: str
|
|
2048
|
+
"""The API URL for this ticket field resource"""
|
|
2049
|
+
visible_in_portal: str
|
|
2050
|
+
"""Whether this field is visible to end users in Help Center"""
|
|
2051
|
+
|
|
2052
|
+
|
|
2053
|
+
class TicketFieldsSortFilter(TypedDict, total=False):
|
|
2054
|
+
"""Available fields for sorting ticket_fields search results."""
|
|
2055
|
+
active: AirbyteSortOrder
|
|
2056
|
+
"""Whether this field is currently available for use"""
|
|
2057
|
+
agent_description: AirbyteSortOrder
|
|
2058
|
+
"""A description of the ticket field that only agents can see"""
|
|
2059
|
+
collapsed_for_agents: AirbyteSortOrder
|
|
2060
|
+
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently u..."""
|
|
2061
|
+
created_at: AirbyteSortOrder
|
|
2062
|
+
"""Timestamp when the custom ticket field was created"""
|
|
2063
|
+
custom_field_options: AirbyteSortOrder
|
|
2064
|
+
"""Array of option objects for custom ticket fields of type multiselect or tagger, containing name a..."""
|
|
2065
|
+
custom_statuses: AirbyteSortOrder
|
|
2066
|
+
"""List of customized ticket statuses, only present for system ticket fields of type custom_status"""
|
|
2067
|
+
description: AirbyteSortOrder
|
|
2068
|
+
"""Text describing the purpose of the ticket field to users"""
|
|
2069
|
+
editable_in_portal: AirbyteSortOrder
|
|
2070
|
+
"""Whether this field is editable by end users in Help Center"""
|
|
2071
|
+
id: AirbyteSortOrder
|
|
2072
|
+
"""Unique identifier for the ticket field, automatically assigned when created"""
|
|
2073
|
+
key: AirbyteSortOrder
|
|
2074
|
+
"""Internal identifier or reference key for the field"""
|
|
2075
|
+
position: AirbyteSortOrder
|
|
2076
|
+
"""The relative position of the ticket field on a ticket, controlling display order"""
|
|
2077
|
+
raw_description: AirbyteSortOrder
|
|
2078
|
+
"""The dynamic content placeholder if present, or the description value if not"""
|
|
2079
|
+
raw_title: AirbyteSortOrder
|
|
2080
|
+
"""The dynamic content placeholder if present, or the title value if not"""
|
|
2081
|
+
raw_title_in_portal: AirbyteSortOrder
|
|
2082
|
+
"""The dynamic content placeholder if present, or the title_in_portal value if not"""
|
|
2083
|
+
regexp_for_validation: AirbyteSortOrder
|
|
2084
|
+
"""For regexp fields only, the validation pattern for a field value to be deemed valid"""
|
|
2085
|
+
removable: AirbyteSortOrder
|
|
2086
|
+
"""If false, this field is a system field that must be present on all tickets"""
|
|
2087
|
+
required: AirbyteSortOrder
|
|
2088
|
+
"""If true, agents must enter a value in the field to change the ticket status to solved"""
|
|
2089
|
+
required_in_portal: AirbyteSortOrder
|
|
2090
|
+
"""If true, end users must enter a value in the field to create a request"""
|
|
2091
|
+
sub_type_id: AirbyteSortOrder
|
|
2092
|
+
"""For system ticket fields of type priority and status, controlling available options"""
|
|
2093
|
+
system_field_options: AirbyteSortOrder
|
|
2094
|
+
"""Array of options for system ticket fields of type tickettype, priority, or status"""
|
|
2095
|
+
tag: AirbyteSortOrder
|
|
2096
|
+
"""For checkbox fields only, a tag added to tickets when the checkbox field is selected"""
|
|
2097
|
+
title: AirbyteSortOrder
|
|
2098
|
+
"""The title of the ticket field displayed to agents"""
|
|
2099
|
+
title_in_portal: AirbyteSortOrder
|
|
2100
|
+
"""The title of the ticket field displayed to end users in Help Center"""
|
|
2101
|
+
type: AirbyteSortOrder
|
|
2102
|
+
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger,..."""
|
|
2103
|
+
updated_at: AirbyteSortOrder
|
|
2104
|
+
"""Timestamp when the custom ticket field was last updated"""
|
|
2105
|
+
url: AirbyteSortOrder
|
|
2106
|
+
"""The API URL for this ticket field resource"""
|
|
2107
|
+
visible_in_portal: AirbyteSortOrder
|
|
2108
|
+
"""Whether this field is visible to end users in Help Center"""
|
|
2109
|
+
|
|
2110
|
+
|
|
2111
|
+
# Entity-specific condition types for ticket_fields
|
|
2112
|
+
class TicketFieldsEqCondition(TypedDict, total=False):
|
|
2113
|
+
"""Equal to: field equals value."""
|
|
2114
|
+
eq: TicketFieldsSearchFilter
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
class TicketFieldsNeqCondition(TypedDict, total=False):
|
|
2118
|
+
"""Not equal to: field does not equal value."""
|
|
2119
|
+
neq: TicketFieldsSearchFilter
|
|
2120
|
+
|
|
2121
|
+
|
|
2122
|
+
class TicketFieldsGtCondition(TypedDict, total=False):
|
|
2123
|
+
"""Greater than: field > value."""
|
|
2124
|
+
gt: TicketFieldsSearchFilter
|
|
2125
|
+
|
|
2126
|
+
|
|
2127
|
+
class TicketFieldsGteCondition(TypedDict, total=False):
|
|
2128
|
+
"""Greater than or equal: field >= value."""
|
|
2129
|
+
gte: TicketFieldsSearchFilter
|
|
2130
|
+
|
|
2131
|
+
|
|
2132
|
+
class TicketFieldsLtCondition(TypedDict, total=False):
|
|
2133
|
+
"""Less than: field < value."""
|
|
2134
|
+
lt: TicketFieldsSearchFilter
|
|
2135
|
+
|
|
2136
|
+
|
|
2137
|
+
class TicketFieldsLteCondition(TypedDict, total=False):
|
|
2138
|
+
"""Less than or equal: field <= value."""
|
|
2139
|
+
lte: TicketFieldsSearchFilter
|
|
2140
|
+
|
|
2141
|
+
|
|
2142
|
+
class TicketFieldsLikeCondition(TypedDict, total=False):
|
|
2143
|
+
"""Partial string match with % wildcards."""
|
|
2144
|
+
like: TicketFieldsStringFilter
|
|
2145
|
+
|
|
2146
|
+
|
|
2147
|
+
class TicketFieldsFuzzyCondition(TypedDict, total=False):
|
|
2148
|
+
"""Ordered word text match (case-insensitive)."""
|
|
2149
|
+
fuzzy: TicketFieldsStringFilter
|
|
2150
|
+
|
|
2151
|
+
|
|
2152
|
+
class TicketFieldsKeywordCondition(TypedDict, total=False):
|
|
2153
|
+
"""Keyword text match (any word present)."""
|
|
2154
|
+
keyword: TicketFieldsStringFilter
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
class TicketFieldsContainsCondition(TypedDict, total=False):
|
|
2158
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
2159
|
+
contains: TicketFieldsAnyValueFilter
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
2163
|
+
TicketFieldsInCondition = TypedDict("TicketFieldsInCondition", {"in": TicketFieldsInFilter}, total=False)
|
|
2164
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
2165
|
+
|
|
2166
|
+
TicketFieldsNotCondition = TypedDict("TicketFieldsNotCondition", {"not": "TicketFieldsCondition"}, total=False)
|
|
2167
|
+
"""Negates the nested condition."""
|
|
2168
|
+
|
|
2169
|
+
TicketFieldsAndCondition = TypedDict("TicketFieldsAndCondition", {"and": "list[TicketFieldsCondition]"}, total=False)
|
|
2170
|
+
"""True if all nested conditions are true."""
|
|
2171
|
+
|
|
2172
|
+
TicketFieldsOrCondition = TypedDict("TicketFieldsOrCondition", {"or": "list[TicketFieldsCondition]"}, total=False)
|
|
2173
|
+
"""True if any nested condition is true."""
|
|
2174
|
+
|
|
2175
|
+
TicketFieldsAnyCondition = TypedDict("TicketFieldsAnyCondition", {"any": TicketFieldsAnyValueFilter}, total=False)
|
|
2176
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
2177
|
+
|
|
2178
|
+
# Union of all ticket_fields condition types
|
|
2179
|
+
TicketFieldsCondition = (
|
|
2180
|
+
TicketFieldsEqCondition
|
|
2181
|
+
| TicketFieldsNeqCondition
|
|
2182
|
+
| TicketFieldsGtCondition
|
|
2183
|
+
| TicketFieldsGteCondition
|
|
2184
|
+
| TicketFieldsLtCondition
|
|
2185
|
+
| TicketFieldsLteCondition
|
|
2186
|
+
| TicketFieldsInCondition
|
|
2187
|
+
| TicketFieldsLikeCondition
|
|
2188
|
+
| TicketFieldsFuzzyCondition
|
|
2189
|
+
| TicketFieldsKeywordCondition
|
|
2190
|
+
| TicketFieldsContainsCondition
|
|
2191
|
+
| TicketFieldsNotCondition
|
|
2192
|
+
| TicketFieldsAndCondition
|
|
2193
|
+
| TicketFieldsOrCondition
|
|
2194
|
+
| TicketFieldsAnyCondition
|
|
2195
|
+
)
|
|
2196
|
+
|
|
2197
|
+
|
|
2198
|
+
class TicketFieldsSearchQuery(TypedDict, total=False):
|
|
2199
|
+
"""Search query for ticket_fields entity."""
|
|
2200
|
+
filter: TicketFieldsCondition
|
|
2201
|
+
sort: list[TicketFieldsSortFilter]
|
|
2202
|
+
|
|
2203
|
+
|
|
2204
|
+
# ===== TICKET_FORMS SEARCH TYPES =====
|
|
2205
|
+
|
|
2206
|
+
class TicketFormsSearchFilter(TypedDict, total=False):
|
|
2207
|
+
"""Available fields for filtering ticket_forms search queries."""
|
|
2208
|
+
active: bool | None
|
|
2209
|
+
"""Indicates if the form is set as active"""
|
|
2210
|
+
agent_conditions: list[Any] | None
|
|
2211
|
+
"""Array of condition sets for agent workspaces"""
|
|
2212
|
+
created_at: str | None
|
|
2213
|
+
"""Timestamp when the ticket form was created"""
|
|
2214
|
+
default: bool | None
|
|
2215
|
+
"""Indicates if the form is the default form for this account"""
|
|
2216
|
+
display_name: str | None
|
|
2217
|
+
"""The name of the form that is displayed to an end user"""
|
|
2218
|
+
end_user_conditions: list[Any] | None
|
|
2219
|
+
"""Array of condition sets for end user products"""
|
|
2220
|
+
end_user_visible: bool | None
|
|
2221
|
+
"""Indicates if the form is visible to the end user"""
|
|
2222
|
+
id: int | None
|
|
2223
|
+
"""Unique identifier for the ticket form, automatically assigned when creating the form"""
|
|
2224
|
+
in_all_brands: bool | None
|
|
2225
|
+
"""Indicates if the form is available for use in all brands on this account"""
|
|
2226
|
+
name: str | None
|
|
2227
|
+
"""The name of the ticket form"""
|
|
2228
|
+
position: int | None
|
|
2229
|
+
"""The position of this form among other forms in the account, such as in a dropdown"""
|
|
2230
|
+
raw_display_name: str | None
|
|
2231
|
+
"""The dynamic content placeholder if present, or the display_name value if not"""
|
|
2232
|
+
raw_name: str | None
|
|
2233
|
+
"""The dynamic content placeholder if present, or the name value if not"""
|
|
2234
|
+
restricted_brand_ids: list[Any] | None
|
|
2235
|
+
"""IDs of all brands that this ticket form is restricted to"""
|
|
2236
|
+
ticket_field_ids: list[Any] | None
|
|
2237
|
+
"""IDs of all ticket fields included in this ticket form, ordered to determine field display sequenc..."""
|
|
2238
|
+
updated_at: str | None
|
|
2239
|
+
"""Timestamp of the last update to the ticket form"""
|
|
2240
|
+
url: str | None
|
|
2241
|
+
"""URL of the ticket form"""
|
|
2242
|
+
|
|
2243
|
+
|
|
2244
|
+
class TicketFormsInFilter(TypedDict, total=False):
|
|
2245
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
2246
|
+
active: list[bool]
|
|
2247
|
+
"""Indicates if the form is set as active"""
|
|
2248
|
+
agent_conditions: list[list[Any]]
|
|
2249
|
+
"""Array of condition sets for agent workspaces"""
|
|
2250
|
+
created_at: list[str]
|
|
2251
|
+
"""Timestamp when the ticket form was created"""
|
|
2252
|
+
default: list[bool]
|
|
2253
|
+
"""Indicates if the form is the default form for this account"""
|
|
2254
|
+
display_name: list[str]
|
|
2255
|
+
"""The name of the form that is displayed to an end user"""
|
|
2256
|
+
end_user_conditions: list[list[Any]]
|
|
2257
|
+
"""Array of condition sets for end user products"""
|
|
2258
|
+
end_user_visible: list[bool]
|
|
2259
|
+
"""Indicates if the form is visible to the end user"""
|
|
2260
|
+
id: list[int]
|
|
2261
|
+
"""Unique identifier for the ticket form, automatically assigned when creating the form"""
|
|
2262
|
+
in_all_brands: list[bool]
|
|
2263
|
+
"""Indicates if the form is available for use in all brands on this account"""
|
|
2264
|
+
name: list[str]
|
|
2265
|
+
"""The name of the ticket form"""
|
|
2266
|
+
position: list[int]
|
|
2267
|
+
"""The position of this form among other forms in the account, such as in a dropdown"""
|
|
2268
|
+
raw_display_name: list[str]
|
|
2269
|
+
"""The dynamic content placeholder if present, or the display_name value if not"""
|
|
2270
|
+
raw_name: list[str]
|
|
2271
|
+
"""The dynamic content placeholder if present, or the name value if not"""
|
|
2272
|
+
restricted_brand_ids: list[list[Any]]
|
|
2273
|
+
"""IDs of all brands that this ticket form is restricted to"""
|
|
2274
|
+
ticket_field_ids: list[list[Any]]
|
|
2275
|
+
"""IDs of all ticket fields included in this ticket form, ordered to determine field display sequenc..."""
|
|
2276
|
+
updated_at: list[str]
|
|
2277
|
+
"""Timestamp of the last update to the ticket form"""
|
|
2278
|
+
url: list[str]
|
|
2279
|
+
"""URL of the ticket form"""
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
class TicketFormsAnyValueFilter(TypedDict, total=False):
|
|
2283
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
2284
|
+
active: Any
|
|
2285
|
+
"""Indicates if the form is set as active"""
|
|
2286
|
+
agent_conditions: Any
|
|
2287
|
+
"""Array of condition sets for agent workspaces"""
|
|
2288
|
+
created_at: Any
|
|
2289
|
+
"""Timestamp when the ticket form was created"""
|
|
2290
|
+
default: Any
|
|
2291
|
+
"""Indicates if the form is the default form for this account"""
|
|
2292
|
+
display_name: Any
|
|
2293
|
+
"""The name of the form that is displayed to an end user"""
|
|
2294
|
+
end_user_conditions: Any
|
|
2295
|
+
"""Array of condition sets for end user products"""
|
|
2296
|
+
end_user_visible: Any
|
|
2297
|
+
"""Indicates if the form is visible to the end user"""
|
|
2298
|
+
id: Any
|
|
2299
|
+
"""Unique identifier for the ticket form, automatically assigned when creating the form"""
|
|
2300
|
+
in_all_brands: Any
|
|
2301
|
+
"""Indicates if the form is available for use in all brands on this account"""
|
|
2302
|
+
name: Any
|
|
2303
|
+
"""The name of the ticket form"""
|
|
2304
|
+
position: Any
|
|
2305
|
+
"""The position of this form among other forms in the account, such as in a dropdown"""
|
|
2306
|
+
raw_display_name: Any
|
|
2307
|
+
"""The dynamic content placeholder if present, or the display_name value if not"""
|
|
2308
|
+
raw_name: Any
|
|
2309
|
+
"""The dynamic content placeholder if present, or the name value if not"""
|
|
2310
|
+
restricted_brand_ids: Any
|
|
2311
|
+
"""IDs of all brands that this ticket form is restricted to"""
|
|
2312
|
+
ticket_field_ids: Any
|
|
2313
|
+
"""IDs of all ticket fields included in this ticket form, ordered to determine field display sequenc..."""
|
|
2314
|
+
updated_at: Any
|
|
2315
|
+
"""Timestamp of the last update to the ticket form"""
|
|
2316
|
+
url: Any
|
|
2317
|
+
"""URL of the ticket form"""
|
|
2318
|
+
|
|
2319
|
+
|
|
2320
|
+
class TicketFormsStringFilter(TypedDict, total=False):
|
|
2321
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
2322
|
+
active: str
|
|
2323
|
+
"""Indicates if the form is set as active"""
|
|
2324
|
+
agent_conditions: str
|
|
2325
|
+
"""Array of condition sets for agent workspaces"""
|
|
2326
|
+
created_at: str
|
|
2327
|
+
"""Timestamp when the ticket form was created"""
|
|
2328
|
+
default: str
|
|
2329
|
+
"""Indicates if the form is the default form for this account"""
|
|
2330
|
+
display_name: str
|
|
2331
|
+
"""The name of the form that is displayed to an end user"""
|
|
2332
|
+
end_user_conditions: str
|
|
2333
|
+
"""Array of condition sets for end user products"""
|
|
2334
|
+
end_user_visible: str
|
|
2335
|
+
"""Indicates if the form is visible to the end user"""
|
|
2336
|
+
id: str
|
|
2337
|
+
"""Unique identifier for the ticket form, automatically assigned when creating the form"""
|
|
2338
|
+
in_all_brands: str
|
|
2339
|
+
"""Indicates if the form is available for use in all brands on this account"""
|
|
2340
|
+
name: str
|
|
2341
|
+
"""The name of the ticket form"""
|
|
2342
|
+
position: str
|
|
2343
|
+
"""The position of this form among other forms in the account, such as in a dropdown"""
|
|
2344
|
+
raw_display_name: str
|
|
2345
|
+
"""The dynamic content placeholder if present, or the display_name value if not"""
|
|
2346
|
+
raw_name: str
|
|
2347
|
+
"""The dynamic content placeholder if present, or the name value if not"""
|
|
2348
|
+
restricted_brand_ids: str
|
|
2349
|
+
"""IDs of all brands that this ticket form is restricted to"""
|
|
2350
|
+
ticket_field_ids: str
|
|
2351
|
+
"""IDs of all ticket fields included in this ticket form, ordered to determine field display sequenc..."""
|
|
2352
|
+
updated_at: str
|
|
2353
|
+
"""Timestamp of the last update to the ticket form"""
|
|
2354
|
+
url: str
|
|
2355
|
+
"""URL of the ticket form"""
|
|
2356
|
+
|
|
2357
|
+
|
|
2358
|
+
class TicketFormsSortFilter(TypedDict, total=False):
|
|
2359
|
+
"""Available fields for sorting ticket_forms search results."""
|
|
2360
|
+
active: AirbyteSortOrder
|
|
2361
|
+
"""Indicates if the form is set as active"""
|
|
2362
|
+
agent_conditions: AirbyteSortOrder
|
|
2363
|
+
"""Array of condition sets for agent workspaces"""
|
|
2364
|
+
created_at: AirbyteSortOrder
|
|
2365
|
+
"""Timestamp when the ticket form was created"""
|
|
2366
|
+
default: AirbyteSortOrder
|
|
2367
|
+
"""Indicates if the form is the default form for this account"""
|
|
2368
|
+
display_name: AirbyteSortOrder
|
|
2369
|
+
"""The name of the form that is displayed to an end user"""
|
|
2370
|
+
end_user_conditions: AirbyteSortOrder
|
|
2371
|
+
"""Array of condition sets for end user products"""
|
|
2372
|
+
end_user_visible: AirbyteSortOrder
|
|
2373
|
+
"""Indicates if the form is visible to the end user"""
|
|
2374
|
+
id: AirbyteSortOrder
|
|
2375
|
+
"""Unique identifier for the ticket form, automatically assigned when creating the form"""
|
|
2376
|
+
in_all_brands: AirbyteSortOrder
|
|
2377
|
+
"""Indicates if the form is available for use in all brands on this account"""
|
|
2378
|
+
name: AirbyteSortOrder
|
|
2379
|
+
"""The name of the ticket form"""
|
|
2380
|
+
position: AirbyteSortOrder
|
|
2381
|
+
"""The position of this form among other forms in the account, such as in a dropdown"""
|
|
2382
|
+
raw_display_name: AirbyteSortOrder
|
|
2383
|
+
"""The dynamic content placeholder if present, or the display_name value if not"""
|
|
2384
|
+
raw_name: AirbyteSortOrder
|
|
2385
|
+
"""The dynamic content placeholder if present, or the name value if not"""
|
|
2386
|
+
restricted_brand_ids: AirbyteSortOrder
|
|
2387
|
+
"""IDs of all brands that this ticket form is restricted to"""
|
|
2388
|
+
ticket_field_ids: AirbyteSortOrder
|
|
2389
|
+
"""IDs of all ticket fields included in this ticket form, ordered to determine field display sequenc..."""
|
|
2390
|
+
updated_at: AirbyteSortOrder
|
|
2391
|
+
"""Timestamp of the last update to the ticket form"""
|
|
2392
|
+
url: AirbyteSortOrder
|
|
2393
|
+
"""URL of the ticket form"""
|
|
2394
|
+
|
|
2395
|
+
|
|
2396
|
+
# Entity-specific condition types for ticket_forms
|
|
2397
|
+
class TicketFormsEqCondition(TypedDict, total=False):
|
|
2398
|
+
"""Equal to: field equals value."""
|
|
2399
|
+
eq: TicketFormsSearchFilter
|
|
2400
|
+
|
|
2401
|
+
|
|
2402
|
+
class TicketFormsNeqCondition(TypedDict, total=False):
|
|
2403
|
+
"""Not equal to: field does not equal value."""
|
|
2404
|
+
neq: TicketFormsSearchFilter
|
|
2405
|
+
|
|
2406
|
+
|
|
2407
|
+
class TicketFormsGtCondition(TypedDict, total=False):
|
|
2408
|
+
"""Greater than: field > value."""
|
|
2409
|
+
gt: TicketFormsSearchFilter
|
|
2410
|
+
|
|
2411
|
+
|
|
2412
|
+
class TicketFormsGteCondition(TypedDict, total=False):
|
|
2413
|
+
"""Greater than or equal: field >= value."""
|
|
2414
|
+
gte: TicketFormsSearchFilter
|
|
2415
|
+
|
|
2416
|
+
|
|
2417
|
+
class TicketFormsLtCondition(TypedDict, total=False):
|
|
2418
|
+
"""Less than: field < value."""
|
|
2419
|
+
lt: TicketFormsSearchFilter
|
|
2420
|
+
|
|
2421
|
+
|
|
2422
|
+
class TicketFormsLteCondition(TypedDict, total=False):
|
|
2423
|
+
"""Less than or equal: field <= value."""
|
|
2424
|
+
lte: TicketFormsSearchFilter
|
|
2425
|
+
|
|
2426
|
+
|
|
2427
|
+
class TicketFormsLikeCondition(TypedDict, total=False):
|
|
2428
|
+
"""Partial string match with % wildcards."""
|
|
2429
|
+
like: TicketFormsStringFilter
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
class TicketFormsFuzzyCondition(TypedDict, total=False):
|
|
2433
|
+
"""Ordered word text match (case-insensitive)."""
|
|
2434
|
+
fuzzy: TicketFormsStringFilter
|
|
2435
|
+
|
|
2436
|
+
|
|
2437
|
+
class TicketFormsKeywordCondition(TypedDict, total=False):
|
|
2438
|
+
"""Keyword text match (any word present)."""
|
|
2439
|
+
keyword: TicketFormsStringFilter
|
|
2440
|
+
|
|
2441
|
+
|
|
2442
|
+
class TicketFormsContainsCondition(TypedDict, total=False):
|
|
2443
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
2444
|
+
contains: TicketFormsAnyValueFilter
|
|
2445
|
+
|
|
2446
|
+
|
|
2447
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
2448
|
+
TicketFormsInCondition = TypedDict("TicketFormsInCondition", {"in": TicketFormsInFilter}, total=False)
|
|
2449
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
2450
|
+
|
|
2451
|
+
TicketFormsNotCondition = TypedDict("TicketFormsNotCondition", {"not": "TicketFormsCondition"}, total=False)
|
|
2452
|
+
"""Negates the nested condition."""
|
|
2453
|
+
|
|
2454
|
+
TicketFormsAndCondition = TypedDict("TicketFormsAndCondition", {"and": "list[TicketFormsCondition]"}, total=False)
|
|
2455
|
+
"""True if all nested conditions are true."""
|
|
2456
|
+
|
|
2457
|
+
TicketFormsOrCondition = TypedDict("TicketFormsOrCondition", {"or": "list[TicketFormsCondition]"}, total=False)
|
|
2458
|
+
"""True if any nested condition is true."""
|
|
2459
|
+
|
|
2460
|
+
TicketFormsAnyCondition = TypedDict("TicketFormsAnyCondition", {"any": TicketFormsAnyValueFilter}, total=False)
|
|
2461
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
2462
|
+
|
|
2463
|
+
# Union of all ticket_forms condition types
|
|
2464
|
+
TicketFormsCondition = (
|
|
2465
|
+
TicketFormsEqCondition
|
|
2466
|
+
| TicketFormsNeqCondition
|
|
2467
|
+
| TicketFormsGtCondition
|
|
2468
|
+
| TicketFormsGteCondition
|
|
2469
|
+
| TicketFormsLtCondition
|
|
2470
|
+
| TicketFormsLteCondition
|
|
2471
|
+
| TicketFormsInCondition
|
|
2472
|
+
| TicketFormsLikeCondition
|
|
2473
|
+
| TicketFormsFuzzyCondition
|
|
2474
|
+
| TicketFormsKeywordCondition
|
|
2475
|
+
| TicketFormsContainsCondition
|
|
2476
|
+
| TicketFormsNotCondition
|
|
2477
|
+
| TicketFormsAndCondition
|
|
2478
|
+
| TicketFormsOrCondition
|
|
2479
|
+
| TicketFormsAnyCondition
|
|
2480
|
+
)
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
class TicketFormsSearchQuery(TypedDict, total=False):
|
|
2484
|
+
"""Search query for ticket_forms entity."""
|
|
2485
|
+
filter: TicketFormsCondition
|
|
2486
|
+
sort: list[TicketFormsSortFilter]
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
# ===== TICKET_METRICS SEARCH TYPES =====
|
|
2490
|
+
|
|
2491
|
+
class TicketMetricsSearchFilter(TypedDict, total=False):
|
|
2492
|
+
"""Available fields for filtering ticket_metrics search queries."""
|
|
2493
|
+
agent_wait_time_in_minutes: dict[str, Any] | None
|
|
2494
|
+
"""Number of minutes the agent spent waiting during calendar and business hours"""
|
|
2495
|
+
assigned_at: str | None
|
|
2496
|
+
"""Timestamp when the ticket was assigned"""
|
|
2497
|
+
assignee_stations: int | None
|
|
2498
|
+
"""Number of assignees the ticket had"""
|
|
2499
|
+
assignee_updated_at: str | None
|
|
2500
|
+
"""Timestamp when the assignee last updated the ticket"""
|
|
2501
|
+
created_at: str | None
|
|
2502
|
+
"""Timestamp when the metric record was created"""
|
|
2503
|
+
custom_status_updated_at: str | None
|
|
2504
|
+
"""Timestamp when the ticket's custom status was last updated"""
|
|
2505
|
+
first_resolution_time_in_minutes: dict[str, Any] | None
|
|
2506
|
+
"""Number of minutes to the first resolution time during calendar and business hours"""
|
|
2507
|
+
full_resolution_time_in_minutes: dict[str, Any] | None
|
|
2508
|
+
"""Number of minutes to the full resolution during calendar and business hours"""
|
|
2509
|
+
generated_timestamp: int | None
|
|
2510
|
+
"""Timestamp of when record was last updated"""
|
|
2511
|
+
group_stations: int | None
|
|
2512
|
+
"""Number of groups the ticket passed through"""
|
|
2513
|
+
id: int | None
|
|
2514
|
+
"""Unique identifier for the ticket metric record"""
|
|
2515
|
+
initially_assigned_at: str | None
|
|
2516
|
+
"""Timestamp when the ticket was initially assigned"""
|
|
2517
|
+
instance_id: int | None
|
|
2518
|
+
"""ID of the Zendesk instance associated with the ticket"""
|
|
2519
|
+
latest_comment_added_at: str | None
|
|
2520
|
+
"""Timestamp when the latest comment was added"""
|
|
2521
|
+
metric: str | None
|
|
2522
|
+
"""Ticket metrics data"""
|
|
2523
|
+
on_hold_time_in_minutes: dict[str, Any] | None
|
|
2524
|
+
"""Number of minutes on hold"""
|
|
2525
|
+
reopens: int | None
|
|
2526
|
+
"""Total number of times the ticket was reopened"""
|
|
2527
|
+
replies: int | None
|
|
2528
|
+
"""The number of public replies added to a ticket by an agent"""
|
|
2529
|
+
reply_time_in_minutes: dict[str, Any] | None
|
|
2530
|
+
"""Number of minutes to the first reply during calendar and business hours"""
|
|
2531
|
+
reply_time_in_seconds: dict[str, Any] | None
|
|
2532
|
+
"""Number of seconds to the first reply during calendar hours, only available for Messaging tickets"""
|
|
2533
|
+
requester_updated_at: str | None
|
|
2534
|
+
"""Timestamp when the requester last updated the ticket"""
|
|
2535
|
+
requester_wait_time_in_minutes: dict[str, Any] | None
|
|
2536
|
+
"""Number of minutes the requester spent waiting during calendar and business hours"""
|
|
2537
|
+
solved_at: str | None
|
|
2538
|
+
"""Timestamp when the ticket was solved"""
|
|
2539
|
+
status: dict[str, Any] | None
|
|
2540
|
+
"""The current status of the ticket (open, pending, solved, etc.)."""
|
|
2541
|
+
status_updated_at: str | None
|
|
2542
|
+
"""Timestamp when the status of the ticket was last updated"""
|
|
2543
|
+
ticket_id: int | None
|
|
2544
|
+
"""Identifier of the associated ticket"""
|
|
2545
|
+
time: str | None
|
|
2546
|
+
"""Time related to the ticket"""
|
|
2547
|
+
type: str | None
|
|
2548
|
+
"""Type of ticket"""
|
|
2549
|
+
updated_at: str | None
|
|
2550
|
+
"""Timestamp when the metric record was last updated"""
|
|
2551
|
+
url: str | None
|
|
2552
|
+
"""The API url of the ticket metric"""
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
class TicketMetricsInFilter(TypedDict, total=False):
|
|
2556
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
2557
|
+
agent_wait_time_in_minutes: list[dict[str, Any]]
|
|
2558
|
+
"""Number of minutes the agent spent waiting during calendar and business hours"""
|
|
2559
|
+
assigned_at: list[str]
|
|
2560
|
+
"""Timestamp when the ticket was assigned"""
|
|
2561
|
+
assignee_stations: list[int]
|
|
2562
|
+
"""Number of assignees the ticket had"""
|
|
2563
|
+
assignee_updated_at: list[str]
|
|
2564
|
+
"""Timestamp when the assignee last updated the ticket"""
|
|
2565
|
+
created_at: list[str]
|
|
2566
|
+
"""Timestamp when the metric record was created"""
|
|
2567
|
+
custom_status_updated_at: list[str]
|
|
2568
|
+
"""Timestamp when the ticket's custom status was last updated"""
|
|
2569
|
+
first_resolution_time_in_minutes: list[dict[str, Any]]
|
|
2570
|
+
"""Number of minutes to the first resolution time during calendar and business hours"""
|
|
2571
|
+
full_resolution_time_in_minutes: list[dict[str, Any]]
|
|
2572
|
+
"""Number of minutes to the full resolution during calendar and business hours"""
|
|
2573
|
+
generated_timestamp: list[int]
|
|
2574
|
+
"""Timestamp of when record was last updated"""
|
|
2575
|
+
group_stations: list[int]
|
|
2576
|
+
"""Number of groups the ticket passed through"""
|
|
2577
|
+
id: list[int]
|
|
2578
|
+
"""Unique identifier for the ticket metric record"""
|
|
2579
|
+
initially_assigned_at: list[str]
|
|
2580
|
+
"""Timestamp when the ticket was initially assigned"""
|
|
2581
|
+
instance_id: list[int]
|
|
2582
|
+
"""ID of the Zendesk instance associated with the ticket"""
|
|
2583
|
+
latest_comment_added_at: list[str]
|
|
2584
|
+
"""Timestamp when the latest comment was added"""
|
|
2585
|
+
metric: list[str]
|
|
2586
|
+
"""Ticket metrics data"""
|
|
2587
|
+
on_hold_time_in_minutes: list[dict[str, Any]]
|
|
2588
|
+
"""Number of minutes on hold"""
|
|
2589
|
+
reopens: list[int]
|
|
2590
|
+
"""Total number of times the ticket was reopened"""
|
|
2591
|
+
replies: list[int]
|
|
2592
|
+
"""The number of public replies added to a ticket by an agent"""
|
|
2593
|
+
reply_time_in_minutes: list[dict[str, Any]]
|
|
2594
|
+
"""Number of minutes to the first reply during calendar and business hours"""
|
|
2595
|
+
reply_time_in_seconds: list[dict[str, Any]]
|
|
2596
|
+
"""Number of seconds to the first reply during calendar hours, only available for Messaging tickets"""
|
|
2597
|
+
requester_updated_at: list[str]
|
|
2598
|
+
"""Timestamp when the requester last updated the ticket"""
|
|
2599
|
+
requester_wait_time_in_minutes: list[dict[str, Any]]
|
|
2600
|
+
"""Number of minutes the requester spent waiting during calendar and business hours"""
|
|
2601
|
+
solved_at: list[str]
|
|
2602
|
+
"""Timestamp when the ticket was solved"""
|
|
2603
|
+
status: list[dict[str, Any]]
|
|
2604
|
+
"""The current status of the ticket (open, pending, solved, etc.)."""
|
|
2605
|
+
status_updated_at: list[str]
|
|
2606
|
+
"""Timestamp when the status of the ticket was last updated"""
|
|
2607
|
+
ticket_id: list[int]
|
|
2608
|
+
"""Identifier of the associated ticket"""
|
|
2609
|
+
time: list[str]
|
|
2610
|
+
"""Time related to the ticket"""
|
|
2611
|
+
type: list[str]
|
|
2612
|
+
"""Type of ticket"""
|
|
2613
|
+
updated_at: list[str]
|
|
2614
|
+
"""Timestamp when the metric record was last updated"""
|
|
2615
|
+
url: list[str]
|
|
2616
|
+
"""The API url of the ticket metric"""
|
|
2617
|
+
|
|
2618
|
+
|
|
2619
|
+
class TicketMetricsAnyValueFilter(TypedDict, total=False):
|
|
2620
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
2621
|
+
agent_wait_time_in_minutes: Any
|
|
2622
|
+
"""Number of minutes the agent spent waiting during calendar and business hours"""
|
|
2623
|
+
assigned_at: Any
|
|
2624
|
+
"""Timestamp when the ticket was assigned"""
|
|
2625
|
+
assignee_stations: Any
|
|
2626
|
+
"""Number of assignees the ticket had"""
|
|
2627
|
+
assignee_updated_at: Any
|
|
2628
|
+
"""Timestamp when the assignee last updated the ticket"""
|
|
2629
|
+
created_at: Any
|
|
2630
|
+
"""Timestamp when the metric record was created"""
|
|
2631
|
+
custom_status_updated_at: Any
|
|
2632
|
+
"""Timestamp when the ticket's custom status was last updated"""
|
|
2633
|
+
first_resolution_time_in_minutes: Any
|
|
2634
|
+
"""Number of minutes to the first resolution time during calendar and business hours"""
|
|
2635
|
+
full_resolution_time_in_minutes: Any
|
|
2636
|
+
"""Number of minutes to the full resolution during calendar and business hours"""
|
|
2637
|
+
generated_timestamp: Any
|
|
2638
|
+
"""Timestamp of when record was last updated"""
|
|
2639
|
+
group_stations: Any
|
|
2640
|
+
"""Number of groups the ticket passed through"""
|
|
2641
|
+
id: Any
|
|
2642
|
+
"""Unique identifier for the ticket metric record"""
|
|
2643
|
+
initially_assigned_at: Any
|
|
2644
|
+
"""Timestamp when the ticket was initially assigned"""
|
|
2645
|
+
instance_id: Any
|
|
2646
|
+
"""ID of the Zendesk instance associated with the ticket"""
|
|
2647
|
+
latest_comment_added_at: Any
|
|
2648
|
+
"""Timestamp when the latest comment was added"""
|
|
2649
|
+
metric: Any
|
|
2650
|
+
"""Ticket metrics data"""
|
|
2651
|
+
on_hold_time_in_minutes: Any
|
|
2652
|
+
"""Number of minutes on hold"""
|
|
2653
|
+
reopens: Any
|
|
2654
|
+
"""Total number of times the ticket was reopened"""
|
|
2655
|
+
replies: Any
|
|
2656
|
+
"""The number of public replies added to a ticket by an agent"""
|
|
2657
|
+
reply_time_in_minutes: Any
|
|
2658
|
+
"""Number of minutes to the first reply during calendar and business hours"""
|
|
2659
|
+
reply_time_in_seconds: Any
|
|
2660
|
+
"""Number of seconds to the first reply during calendar hours, only available for Messaging tickets"""
|
|
2661
|
+
requester_updated_at: Any
|
|
2662
|
+
"""Timestamp when the requester last updated the ticket"""
|
|
2663
|
+
requester_wait_time_in_minutes: Any
|
|
2664
|
+
"""Number of minutes the requester spent waiting during calendar and business hours"""
|
|
2665
|
+
solved_at: Any
|
|
2666
|
+
"""Timestamp when the ticket was solved"""
|
|
2667
|
+
status: Any
|
|
2668
|
+
"""The current status of the ticket (open, pending, solved, etc.)."""
|
|
2669
|
+
status_updated_at: Any
|
|
2670
|
+
"""Timestamp when the status of the ticket was last updated"""
|
|
2671
|
+
ticket_id: Any
|
|
2672
|
+
"""Identifier of the associated ticket"""
|
|
2673
|
+
time: Any
|
|
2674
|
+
"""Time related to the ticket"""
|
|
2675
|
+
type: Any
|
|
2676
|
+
"""Type of ticket"""
|
|
2677
|
+
updated_at: Any
|
|
2678
|
+
"""Timestamp when the metric record was last updated"""
|
|
2679
|
+
url: Any
|
|
2680
|
+
"""The API url of the ticket metric"""
|
|
2681
|
+
|
|
2682
|
+
|
|
2683
|
+
class TicketMetricsStringFilter(TypedDict, total=False):
|
|
2684
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
2685
|
+
agent_wait_time_in_minutes: str
|
|
2686
|
+
"""Number of minutes the agent spent waiting during calendar and business hours"""
|
|
2687
|
+
assigned_at: str
|
|
2688
|
+
"""Timestamp when the ticket was assigned"""
|
|
2689
|
+
assignee_stations: str
|
|
2690
|
+
"""Number of assignees the ticket had"""
|
|
2691
|
+
assignee_updated_at: str
|
|
2692
|
+
"""Timestamp when the assignee last updated the ticket"""
|
|
2693
|
+
created_at: str
|
|
2694
|
+
"""Timestamp when the metric record was created"""
|
|
2695
|
+
custom_status_updated_at: str
|
|
2696
|
+
"""Timestamp when the ticket's custom status was last updated"""
|
|
2697
|
+
first_resolution_time_in_minutes: str
|
|
2698
|
+
"""Number of minutes to the first resolution time during calendar and business hours"""
|
|
2699
|
+
full_resolution_time_in_minutes: str
|
|
2700
|
+
"""Number of minutes to the full resolution during calendar and business hours"""
|
|
2701
|
+
generated_timestamp: str
|
|
2702
|
+
"""Timestamp of when record was last updated"""
|
|
2703
|
+
group_stations: str
|
|
2704
|
+
"""Number of groups the ticket passed through"""
|
|
2705
|
+
id: str
|
|
2706
|
+
"""Unique identifier for the ticket metric record"""
|
|
2707
|
+
initially_assigned_at: str
|
|
2708
|
+
"""Timestamp when the ticket was initially assigned"""
|
|
2709
|
+
instance_id: str
|
|
2710
|
+
"""ID of the Zendesk instance associated with the ticket"""
|
|
2711
|
+
latest_comment_added_at: str
|
|
2712
|
+
"""Timestamp when the latest comment was added"""
|
|
2713
|
+
metric: str
|
|
2714
|
+
"""Ticket metrics data"""
|
|
2715
|
+
on_hold_time_in_minutes: str
|
|
2716
|
+
"""Number of minutes on hold"""
|
|
2717
|
+
reopens: str
|
|
2718
|
+
"""Total number of times the ticket was reopened"""
|
|
2719
|
+
replies: str
|
|
2720
|
+
"""The number of public replies added to a ticket by an agent"""
|
|
2721
|
+
reply_time_in_minutes: str
|
|
2722
|
+
"""Number of minutes to the first reply during calendar and business hours"""
|
|
2723
|
+
reply_time_in_seconds: str
|
|
2724
|
+
"""Number of seconds to the first reply during calendar hours, only available for Messaging tickets"""
|
|
2725
|
+
requester_updated_at: str
|
|
2726
|
+
"""Timestamp when the requester last updated the ticket"""
|
|
2727
|
+
requester_wait_time_in_minutes: str
|
|
2728
|
+
"""Number of minutes the requester spent waiting during calendar and business hours"""
|
|
2729
|
+
solved_at: str
|
|
2730
|
+
"""Timestamp when the ticket was solved"""
|
|
2731
|
+
status: str
|
|
2732
|
+
"""The current status of the ticket (open, pending, solved, etc.)."""
|
|
2733
|
+
status_updated_at: str
|
|
2734
|
+
"""Timestamp when the status of the ticket was last updated"""
|
|
2735
|
+
ticket_id: str
|
|
2736
|
+
"""Identifier of the associated ticket"""
|
|
2737
|
+
time: str
|
|
2738
|
+
"""Time related to the ticket"""
|
|
2739
|
+
type: str
|
|
2740
|
+
"""Type of ticket"""
|
|
2741
|
+
updated_at: str
|
|
2742
|
+
"""Timestamp when the metric record was last updated"""
|
|
2743
|
+
url: str
|
|
2744
|
+
"""The API url of the ticket metric"""
|
|
2745
|
+
|
|
2746
|
+
|
|
2747
|
+
class TicketMetricsSortFilter(TypedDict, total=False):
|
|
2748
|
+
"""Available fields for sorting ticket_metrics search results."""
|
|
2749
|
+
agent_wait_time_in_minutes: AirbyteSortOrder
|
|
2750
|
+
"""Number of minutes the agent spent waiting during calendar and business hours"""
|
|
2751
|
+
assigned_at: AirbyteSortOrder
|
|
2752
|
+
"""Timestamp when the ticket was assigned"""
|
|
2753
|
+
assignee_stations: AirbyteSortOrder
|
|
2754
|
+
"""Number of assignees the ticket had"""
|
|
2755
|
+
assignee_updated_at: AirbyteSortOrder
|
|
2756
|
+
"""Timestamp when the assignee last updated the ticket"""
|
|
2757
|
+
created_at: AirbyteSortOrder
|
|
2758
|
+
"""Timestamp when the metric record was created"""
|
|
2759
|
+
custom_status_updated_at: AirbyteSortOrder
|
|
2760
|
+
"""Timestamp when the ticket's custom status was last updated"""
|
|
2761
|
+
first_resolution_time_in_minutes: AirbyteSortOrder
|
|
2762
|
+
"""Number of minutes to the first resolution time during calendar and business hours"""
|
|
2763
|
+
full_resolution_time_in_minutes: AirbyteSortOrder
|
|
2764
|
+
"""Number of minutes to the full resolution during calendar and business hours"""
|
|
2765
|
+
generated_timestamp: AirbyteSortOrder
|
|
2766
|
+
"""Timestamp of when record was last updated"""
|
|
2767
|
+
group_stations: AirbyteSortOrder
|
|
2768
|
+
"""Number of groups the ticket passed through"""
|
|
2769
|
+
id: AirbyteSortOrder
|
|
2770
|
+
"""Unique identifier for the ticket metric record"""
|
|
2771
|
+
initially_assigned_at: AirbyteSortOrder
|
|
2772
|
+
"""Timestamp when the ticket was initially assigned"""
|
|
2773
|
+
instance_id: AirbyteSortOrder
|
|
2774
|
+
"""ID of the Zendesk instance associated with the ticket"""
|
|
2775
|
+
latest_comment_added_at: AirbyteSortOrder
|
|
2776
|
+
"""Timestamp when the latest comment was added"""
|
|
2777
|
+
metric: AirbyteSortOrder
|
|
2778
|
+
"""Ticket metrics data"""
|
|
2779
|
+
on_hold_time_in_minutes: AirbyteSortOrder
|
|
2780
|
+
"""Number of minutes on hold"""
|
|
2781
|
+
reopens: AirbyteSortOrder
|
|
2782
|
+
"""Total number of times the ticket was reopened"""
|
|
2783
|
+
replies: AirbyteSortOrder
|
|
2784
|
+
"""The number of public replies added to a ticket by an agent"""
|
|
2785
|
+
reply_time_in_minutes: AirbyteSortOrder
|
|
2786
|
+
"""Number of minutes to the first reply during calendar and business hours"""
|
|
2787
|
+
reply_time_in_seconds: AirbyteSortOrder
|
|
2788
|
+
"""Number of seconds to the first reply during calendar hours, only available for Messaging tickets"""
|
|
2789
|
+
requester_updated_at: AirbyteSortOrder
|
|
2790
|
+
"""Timestamp when the requester last updated the ticket"""
|
|
2791
|
+
requester_wait_time_in_minutes: AirbyteSortOrder
|
|
2792
|
+
"""Number of minutes the requester spent waiting during calendar and business hours"""
|
|
2793
|
+
solved_at: AirbyteSortOrder
|
|
2794
|
+
"""Timestamp when the ticket was solved"""
|
|
2795
|
+
status: AirbyteSortOrder
|
|
2796
|
+
"""The current status of the ticket (open, pending, solved, etc.)."""
|
|
2797
|
+
status_updated_at: AirbyteSortOrder
|
|
2798
|
+
"""Timestamp when the status of the ticket was last updated"""
|
|
2799
|
+
ticket_id: AirbyteSortOrder
|
|
2800
|
+
"""Identifier of the associated ticket"""
|
|
2801
|
+
time: AirbyteSortOrder
|
|
2802
|
+
"""Time related to the ticket"""
|
|
2803
|
+
type: AirbyteSortOrder
|
|
2804
|
+
"""Type of ticket"""
|
|
2805
|
+
updated_at: AirbyteSortOrder
|
|
2806
|
+
"""Timestamp when the metric record was last updated"""
|
|
2807
|
+
url: AirbyteSortOrder
|
|
2808
|
+
"""The API url of the ticket metric"""
|
|
2809
|
+
|
|
2810
|
+
|
|
2811
|
+
# Entity-specific condition types for ticket_metrics
|
|
2812
|
+
class TicketMetricsEqCondition(TypedDict, total=False):
|
|
2813
|
+
"""Equal to: field equals value."""
|
|
2814
|
+
eq: TicketMetricsSearchFilter
|
|
2815
|
+
|
|
2816
|
+
|
|
2817
|
+
class TicketMetricsNeqCondition(TypedDict, total=False):
|
|
2818
|
+
"""Not equal to: field does not equal value."""
|
|
2819
|
+
neq: TicketMetricsSearchFilter
|
|
2820
|
+
|
|
2821
|
+
|
|
2822
|
+
class TicketMetricsGtCondition(TypedDict, total=False):
|
|
2823
|
+
"""Greater than: field > value."""
|
|
2824
|
+
gt: TicketMetricsSearchFilter
|
|
2825
|
+
|
|
2826
|
+
|
|
2827
|
+
class TicketMetricsGteCondition(TypedDict, total=False):
|
|
2828
|
+
"""Greater than or equal: field >= value."""
|
|
2829
|
+
gte: TicketMetricsSearchFilter
|
|
2830
|
+
|
|
2831
|
+
|
|
2832
|
+
class TicketMetricsLtCondition(TypedDict, total=False):
|
|
2833
|
+
"""Less than: field < value."""
|
|
2834
|
+
lt: TicketMetricsSearchFilter
|
|
2835
|
+
|
|
2836
|
+
|
|
2837
|
+
class TicketMetricsLteCondition(TypedDict, total=False):
|
|
2838
|
+
"""Less than or equal: field <= value."""
|
|
2839
|
+
lte: TicketMetricsSearchFilter
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
class TicketMetricsLikeCondition(TypedDict, total=False):
|
|
2843
|
+
"""Partial string match with % wildcards."""
|
|
2844
|
+
like: TicketMetricsStringFilter
|
|
2845
|
+
|
|
2846
|
+
|
|
2847
|
+
class TicketMetricsFuzzyCondition(TypedDict, total=False):
|
|
2848
|
+
"""Ordered word text match (case-insensitive)."""
|
|
2849
|
+
fuzzy: TicketMetricsStringFilter
|
|
2850
|
+
|
|
2851
|
+
|
|
2852
|
+
class TicketMetricsKeywordCondition(TypedDict, total=False):
|
|
2853
|
+
"""Keyword text match (any word present)."""
|
|
2854
|
+
keyword: TicketMetricsStringFilter
|
|
2855
|
+
|
|
2856
|
+
|
|
2857
|
+
class TicketMetricsContainsCondition(TypedDict, total=False):
|
|
2858
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
2859
|
+
contains: TicketMetricsAnyValueFilter
|
|
2860
|
+
|
|
2861
|
+
|
|
2862
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
2863
|
+
TicketMetricsInCondition = TypedDict("TicketMetricsInCondition", {"in": TicketMetricsInFilter}, total=False)
|
|
2864
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
2865
|
+
|
|
2866
|
+
TicketMetricsNotCondition = TypedDict("TicketMetricsNotCondition", {"not": "TicketMetricsCondition"}, total=False)
|
|
2867
|
+
"""Negates the nested condition."""
|
|
2868
|
+
|
|
2869
|
+
TicketMetricsAndCondition = TypedDict("TicketMetricsAndCondition", {"and": "list[TicketMetricsCondition]"}, total=False)
|
|
2870
|
+
"""True if all nested conditions are true."""
|
|
2871
|
+
|
|
2872
|
+
TicketMetricsOrCondition = TypedDict("TicketMetricsOrCondition", {"or": "list[TicketMetricsCondition]"}, total=False)
|
|
2873
|
+
"""True if any nested condition is true."""
|
|
2874
|
+
|
|
2875
|
+
TicketMetricsAnyCondition = TypedDict("TicketMetricsAnyCondition", {"any": TicketMetricsAnyValueFilter}, total=False)
|
|
2876
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
2877
|
+
|
|
2878
|
+
# Union of all ticket_metrics condition types
|
|
2879
|
+
TicketMetricsCondition = (
|
|
2880
|
+
TicketMetricsEqCondition
|
|
2881
|
+
| TicketMetricsNeqCondition
|
|
2882
|
+
| TicketMetricsGtCondition
|
|
2883
|
+
| TicketMetricsGteCondition
|
|
2884
|
+
| TicketMetricsLtCondition
|
|
2885
|
+
| TicketMetricsLteCondition
|
|
2886
|
+
| TicketMetricsInCondition
|
|
2887
|
+
| TicketMetricsLikeCondition
|
|
2888
|
+
| TicketMetricsFuzzyCondition
|
|
2889
|
+
| TicketMetricsKeywordCondition
|
|
2890
|
+
| TicketMetricsContainsCondition
|
|
2891
|
+
| TicketMetricsNotCondition
|
|
2892
|
+
| TicketMetricsAndCondition
|
|
2893
|
+
| TicketMetricsOrCondition
|
|
2894
|
+
| TicketMetricsAnyCondition
|
|
2895
|
+
)
|
|
2896
|
+
|
|
2897
|
+
|
|
2898
|
+
class TicketMetricsSearchQuery(TypedDict, total=False):
|
|
2899
|
+
"""Search query for ticket_metrics entity."""
|
|
2900
|
+
filter: TicketMetricsCondition
|
|
2901
|
+
sort: list[TicketMetricsSortFilter]
|
|
2902
|
+
|
|
2903
|
+
|
|
2904
|
+
# ===== TICKETS SEARCH TYPES =====
|
|
2905
|
+
|
|
2906
|
+
class TicketsSearchFilter(TypedDict, total=False):
|
|
2907
|
+
"""Available fields for filtering tickets search queries."""
|
|
2908
|
+
allow_attachments: bool | None
|
|
2909
|
+
"""Boolean indicating whether attachments are allowed on the ticket"""
|
|
2910
|
+
allow_channelback: bool | None
|
|
2911
|
+
"""Boolean indicating whether agents can reply to the ticket through the original channel"""
|
|
2912
|
+
assignee_id: int | None
|
|
2913
|
+
"""Unique identifier of the agent currently assigned to the ticket"""
|
|
2914
|
+
brand_id: int | None
|
|
2915
|
+
"""Unique identifier of the brand associated with the ticket in multi-brand accounts"""
|
|
2916
|
+
collaborator_ids: list[Any] | None
|
|
2917
|
+
"""Array of user identifiers who are collaborating on the ticket"""
|
|
2918
|
+
created_at: str | None
|
|
2919
|
+
"""Timestamp indicating when the ticket was created"""
|
|
2920
|
+
custom_fields: list[Any] | None
|
|
2921
|
+
"""Array of custom field values specific to the account's ticket configuration"""
|
|
2922
|
+
custom_status_id: int | None
|
|
2923
|
+
"""Unique identifier of the custom status applied to the ticket"""
|
|
2924
|
+
deleted_ticket_form_id: int | None
|
|
2925
|
+
"""Unique identifier of the ticket form if it was deleted after the ticket was created"""
|
|
2926
|
+
description: str | None
|
|
2927
|
+
"""Initial description or content of the ticket when it was created"""
|
|
2928
|
+
due_at: str | None
|
|
2929
|
+
"""Timestamp indicating when the ticket is due for completion or resolution"""
|
|
2930
|
+
email_cc_ids: list[Any] | None
|
|
2931
|
+
"""Array of user identifiers who are CC'd on ticket email notifications"""
|
|
2932
|
+
external_id: str | None
|
|
2933
|
+
"""External identifier for the ticket, used for integrations with other systems"""
|
|
2934
|
+
fields: list[Any] | None
|
|
2935
|
+
"""Array of ticket field values including both system and custom fields"""
|
|
2936
|
+
follower_ids: list[Any] | None
|
|
2937
|
+
"""Array of user identifiers who are following the ticket for updates"""
|
|
2938
|
+
followup_ids: list[Any] | None
|
|
2939
|
+
"""Array of identifiers for follow-up tickets related to this ticket"""
|
|
2940
|
+
forum_topic_id: int | None
|
|
2941
|
+
"""Unique identifier linking the ticket to a forum topic if applicable"""
|
|
2942
|
+
from_messaging_channel: bool | None
|
|
2943
|
+
"""Boolean indicating whether the ticket originated from a messaging channel"""
|
|
2944
|
+
generated_timestamp: int | None
|
|
2945
|
+
"""Timestamp updated for all ticket updates including system changes, used for incremental export co..."""
|
|
2946
|
+
group_id: int | None
|
|
2947
|
+
"""Unique identifier of the agent group assigned to handle the ticket"""
|
|
2948
|
+
has_incidents: bool | None
|
|
2949
|
+
"""Boolean indicating whether this problem ticket has related incident tickets"""
|
|
2950
|
+
id: int | None
|
|
2951
|
+
"""Unique identifier for the ticket"""
|
|
2952
|
+
is_public: bool | None
|
|
2953
|
+
"""Boolean indicating whether the ticket is publicly visible"""
|
|
2954
|
+
organization_id: int | None
|
|
2955
|
+
"""Unique identifier of the organization associated with the ticket"""
|
|
2956
|
+
priority: str | None
|
|
2957
|
+
"""Priority level assigned to the ticket (e.g., urgent, high, normal, low)"""
|
|
2958
|
+
problem_id: int | None
|
|
2959
|
+
"""Unique identifier of the problem ticket if this is an incident ticket"""
|
|
2960
|
+
raw_subject: str | None
|
|
2961
|
+
"""Original unprocessed subject line before any system modifications"""
|
|
2962
|
+
recipient: str | None
|
|
2963
|
+
"""Email address or identifier of the ticket recipient"""
|
|
2964
|
+
requester_id: int | None
|
|
2965
|
+
"""Unique identifier of the user who requested or created the ticket"""
|
|
2966
|
+
satisfaction_rating: Any
|
|
2967
|
+
"""Object containing customer satisfaction rating data for the ticket"""
|
|
2968
|
+
sharing_agreement_ids: list[Any] | None
|
|
2969
|
+
"""Array of sharing agreement identifiers if the ticket is shared across Zendesk instances"""
|
|
2970
|
+
status: str | None
|
|
2971
|
+
"""Current status of the ticket (e.g., new, open, pending, solved, closed)"""
|
|
2972
|
+
subject: str | None
|
|
2973
|
+
"""Subject line of the ticket describing the issue or request"""
|
|
2974
|
+
submitter_id: int | None
|
|
2975
|
+
"""Unique identifier of the user who submitted the ticket on behalf of the requester"""
|
|
2976
|
+
tags: list[Any] | None
|
|
2977
|
+
"""Array of tags applied to the ticket for categorization and filtering"""
|
|
2978
|
+
ticket_form_id: int | None
|
|
2979
|
+
"""Unique identifier of the ticket form used when creating the ticket"""
|
|
2980
|
+
type: str | None
|
|
2981
|
+
"""Type of ticket (e.g., problem, incident, question, task)"""
|
|
2982
|
+
updated_at: str | None
|
|
2983
|
+
"""Timestamp indicating when the ticket was last updated with a ticket event"""
|
|
2984
|
+
url: str | None
|
|
2985
|
+
"""API URL to access the full ticket resource"""
|
|
2986
|
+
via: dict[str, Any] | None
|
|
2987
|
+
"""Object describing the channel and method through which the ticket was created"""
|
|
2988
|
+
|
|
2989
|
+
|
|
2990
|
+
class TicketsInFilter(TypedDict, total=False):
|
|
2991
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
2992
|
+
allow_attachments: list[bool]
|
|
2993
|
+
"""Boolean indicating whether attachments are allowed on the ticket"""
|
|
2994
|
+
allow_channelback: list[bool]
|
|
2995
|
+
"""Boolean indicating whether agents can reply to the ticket through the original channel"""
|
|
2996
|
+
assignee_id: list[int]
|
|
2997
|
+
"""Unique identifier of the agent currently assigned to the ticket"""
|
|
2998
|
+
brand_id: list[int]
|
|
2999
|
+
"""Unique identifier of the brand associated with the ticket in multi-brand accounts"""
|
|
3000
|
+
collaborator_ids: list[list[Any]]
|
|
3001
|
+
"""Array of user identifiers who are collaborating on the ticket"""
|
|
3002
|
+
created_at: list[str]
|
|
3003
|
+
"""Timestamp indicating when the ticket was created"""
|
|
3004
|
+
custom_fields: list[list[Any]]
|
|
3005
|
+
"""Array of custom field values specific to the account's ticket configuration"""
|
|
3006
|
+
custom_status_id: list[int]
|
|
3007
|
+
"""Unique identifier of the custom status applied to the ticket"""
|
|
3008
|
+
deleted_ticket_form_id: list[int]
|
|
3009
|
+
"""Unique identifier of the ticket form if it was deleted after the ticket was created"""
|
|
3010
|
+
description: list[str]
|
|
3011
|
+
"""Initial description or content of the ticket when it was created"""
|
|
3012
|
+
due_at: list[str]
|
|
3013
|
+
"""Timestamp indicating when the ticket is due for completion or resolution"""
|
|
3014
|
+
email_cc_ids: list[list[Any]]
|
|
3015
|
+
"""Array of user identifiers who are CC'd on ticket email notifications"""
|
|
3016
|
+
external_id: list[str]
|
|
3017
|
+
"""External identifier for the ticket, used for integrations with other systems"""
|
|
3018
|
+
fields: list[list[Any]]
|
|
3019
|
+
"""Array of ticket field values including both system and custom fields"""
|
|
3020
|
+
follower_ids: list[list[Any]]
|
|
3021
|
+
"""Array of user identifiers who are following the ticket for updates"""
|
|
3022
|
+
followup_ids: list[list[Any]]
|
|
3023
|
+
"""Array of identifiers for follow-up tickets related to this ticket"""
|
|
3024
|
+
forum_topic_id: list[int]
|
|
3025
|
+
"""Unique identifier linking the ticket to a forum topic if applicable"""
|
|
3026
|
+
from_messaging_channel: list[bool]
|
|
3027
|
+
"""Boolean indicating whether the ticket originated from a messaging channel"""
|
|
3028
|
+
generated_timestamp: list[int]
|
|
3029
|
+
"""Timestamp updated for all ticket updates including system changes, used for incremental export co..."""
|
|
3030
|
+
group_id: list[int]
|
|
3031
|
+
"""Unique identifier of the agent group assigned to handle the ticket"""
|
|
3032
|
+
has_incidents: list[bool]
|
|
3033
|
+
"""Boolean indicating whether this problem ticket has related incident tickets"""
|
|
3034
|
+
id: list[int]
|
|
3035
|
+
"""Unique identifier for the ticket"""
|
|
3036
|
+
is_public: list[bool]
|
|
3037
|
+
"""Boolean indicating whether the ticket is publicly visible"""
|
|
3038
|
+
organization_id: list[int]
|
|
3039
|
+
"""Unique identifier of the organization associated with the ticket"""
|
|
3040
|
+
priority: list[str]
|
|
3041
|
+
"""Priority level assigned to the ticket (e.g., urgent, high, normal, low)"""
|
|
3042
|
+
problem_id: list[int]
|
|
3043
|
+
"""Unique identifier of the problem ticket if this is an incident ticket"""
|
|
3044
|
+
raw_subject: list[str]
|
|
3045
|
+
"""Original unprocessed subject line before any system modifications"""
|
|
3046
|
+
recipient: list[str]
|
|
3047
|
+
"""Email address or identifier of the ticket recipient"""
|
|
3048
|
+
requester_id: list[int]
|
|
3049
|
+
"""Unique identifier of the user who requested or created the ticket"""
|
|
3050
|
+
satisfaction_rating: list[Any]
|
|
3051
|
+
"""Object containing customer satisfaction rating data for the ticket"""
|
|
3052
|
+
sharing_agreement_ids: list[list[Any]]
|
|
3053
|
+
"""Array of sharing agreement identifiers if the ticket is shared across Zendesk instances"""
|
|
3054
|
+
status: list[str]
|
|
3055
|
+
"""Current status of the ticket (e.g., new, open, pending, solved, closed)"""
|
|
3056
|
+
subject: list[str]
|
|
3057
|
+
"""Subject line of the ticket describing the issue or request"""
|
|
3058
|
+
submitter_id: list[int]
|
|
3059
|
+
"""Unique identifier of the user who submitted the ticket on behalf of the requester"""
|
|
3060
|
+
tags: list[list[Any]]
|
|
3061
|
+
"""Array of tags applied to the ticket for categorization and filtering"""
|
|
3062
|
+
ticket_form_id: list[int]
|
|
3063
|
+
"""Unique identifier of the ticket form used when creating the ticket"""
|
|
3064
|
+
type: list[str]
|
|
3065
|
+
"""Type of ticket (e.g., problem, incident, question, task)"""
|
|
3066
|
+
updated_at: list[str]
|
|
3067
|
+
"""Timestamp indicating when the ticket was last updated with a ticket event"""
|
|
3068
|
+
url: list[str]
|
|
3069
|
+
"""API URL to access the full ticket resource"""
|
|
3070
|
+
via: list[dict[str, Any]]
|
|
3071
|
+
"""Object describing the channel and method through which the ticket was created"""
|
|
3072
|
+
|
|
3073
|
+
|
|
3074
|
+
class TicketsAnyValueFilter(TypedDict, total=False):
|
|
3075
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
3076
|
+
allow_attachments: Any
|
|
3077
|
+
"""Boolean indicating whether attachments are allowed on the ticket"""
|
|
3078
|
+
allow_channelback: Any
|
|
3079
|
+
"""Boolean indicating whether agents can reply to the ticket through the original channel"""
|
|
3080
|
+
assignee_id: Any
|
|
3081
|
+
"""Unique identifier of the agent currently assigned to the ticket"""
|
|
3082
|
+
brand_id: Any
|
|
3083
|
+
"""Unique identifier of the brand associated with the ticket in multi-brand accounts"""
|
|
3084
|
+
collaborator_ids: Any
|
|
3085
|
+
"""Array of user identifiers who are collaborating on the ticket"""
|
|
3086
|
+
created_at: Any
|
|
3087
|
+
"""Timestamp indicating when the ticket was created"""
|
|
3088
|
+
custom_fields: Any
|
|
3089
|
+
"""Array of custom field values specific to the account's ticket configuration"""
|
|
3090
|
+
custom_status_id: Any
|
|
3091
|
+
"""Unique identifier of the custom status applied to the ticket"""
|
|
3092
|
+
deleted_ticket_form_id: Any
|
|
3093
|
+
"""Unique identifier of the ticket form if it was deleted after the ticket was created"""
|
|
3094
|
+
description: Any
|
|
3095
|
+
"""Initial description or content of the ticket when it was created"""
|
|
3096
|
+
due_at: Any
|
|
3097
|
+
"""Timestamp indicating when the ticket is due for completion or resolution"""
|
|
3098
|
+
email_cc_ids: Any
|
|
3099
|
+
"""Array of user identifiers who are CC'd on ticket email notifications"""
|
|
3100
|
+
external_id: Any
|
|
3101
|
+
"""External identifier for the ticket, used for integrations with other systems"""
|
|
3102
|
+
fields: Any
|
|
3103
|
+
"""Array of ticket field values including both system and custom fields"""
|
|
3104
|
+
follower_ids: Any
|
|
3105
|
+
"""Array of user identifiers who are following the ticket for updates"""
|
|
3106
|
+
followup_ids: Any
|
|
3107
|
+
"""Array of identifiers for follow-up tickets related to this ticket"""
|
|
3108
|
+
forum_topic_id: Any
|
|
3109
|
+
"""Unique identifier linking the ticket to a forum topic if applicable"""
|
|
3110
|
+
from_messaging_channel: Any
|
|
3111
|
+
"""Boolean indicating whether the ticket originated from a messaging channel"""
|
|
3112
|
+
generated_timestamp: Any
|
|
3113
|
+
"""Timestamp updated for all ticket updates including system changes, used for incremental export co..."""
|
|
3114
|
+
group_id: Any
|
|
3115
|
+
"""Unique identifier of the agent group assigned to handle the ticket"""
|
|
3116
|
+
has_incidents: Any
|
|
3117
|
+
"""Boolean indicating whether this problem ticket has related incident tickets"""
|
|
3118
|
+
id: Any
|
|
3119
|
+
"""Unique identifier for the ticket"""
|
|
3120
|
+
is_public: Any
|
|
3121
|
+
"""Boolean indicating whether the ticket is publicly visible"""
|
|
3122
|
+
organization_id: Any
|
|
3123
|
+
"""Unique identifier of the organization associated with the ticket"""
|
|
3124
|
+
priority: Any
|
|
3125
|
+
"""Priority level assigned to the ticket (e.g., urgent, high, normal, low)"""
|
|
3126
|
+
problem_id: Any
|
|
3127
|
+
"""Unique identifier of the problem ticket if this is an incident ticket"""
|
|
3128
|
+
raw_subject: Any
|
|
3129
|
+
"""Original unprocessed subject line before any system modifications"""
|
|
3130
|
+
recipient: Any
|
|
3131
|
+
"""Email address or identifier of the ticket recipient"""
|
|
3132
|
+
requester_id: Any
|
|
3133
|
+
"""Unique identifier of the user who requested or created the ticket"""
|
|
3134
|
+
satisfaction_rating: Any
|
|
3135
|
+
"""Object containing customer satisfaction rating data for the ticket"""
|
|
3136
|
+
sharing_agreement_ids: Any
|
|
3137
|
+
"""Array of sharing agreement identifiers if the ticket is shared across Zendesk instances"""
|
|
3138
|
+
status: Any
|
|
3139
|
+
"""Current status of the ticket (e.g., new, open, pending, solved, closed)"""
|
|
3140
|
+
subject: Any
|
|
3141
|
+
"""Subject line of the ticket describing the issue or request"""
|
|
3142
|
+
submitter_id: Any
|
|
3143
|
+
"""Unique identifier of the user who submitted the ticket on behalf of the requester"""
|
|
3144
|
+
tags: Any
|
|
3145
|
+
"""Array of tags applied to the ticket for categorization and filtering"""
|
|
3146
|
+
ticket_form_id: Any
|
|
3147
|
+
"""Unique identifier of the ticket form used when creating the ticket"""
|
|
3148
|
+
type: Any
|
|
3149
|
+
"""Type of ticket (e.g., problem, incident, question, task)"""
|
|
3150
|
+
updated_at: Any
|
|
3151
|
+
"""Timestamp indicating when the ticket was last updated with a ticket event"""
|
|
3152
|
+
url: Any
|
|
3153
|
+
"""API URL to access the full ticket resource"""
|
|
3154
|
+
via: Any
|
|
3155
|
+
"""Object describing the channel and method through which the ticket was created"""
|
|
3156
|
+
|
|
3157
|
+
|
|
3158
|
+
class TicketsStringFilter(TypedDict, total=False):
|
|
3159
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
3160
|
+
allow_attachments: str
|
|
3161
|
+
"""Boolean indicating whether attachments are allowed on the ticket"""
|
|
3162
|
+
allow_channelback: str
|
|
3163
|
+
"""Boolean indicating whether agents can reply to the ticket through the original channel"""
|
|
3164
|
+
assignee_id: str
|
|
3165
|
+
"""Unique identifier of the agent currently assigned to the ticket"""
|
|
3166
|
+
brand_id: str
|
|
3167
|
+
"""Unique identifier of the brand associated with the ticket in multi-brand accounts"""
|
|
3168
|
+
collaborator_ids: str
|
|
3169
|
+
"""Array of user identifiers who are collaborating on the ticket"""
|
|
3170
|
+
created_at: str
|
|
3171
|
+
"""Timestamp indicating when the ticket was created"""
|
|
3172
|
+
custom_fields: str
|
|
3173
|
+
"""Array of custom field values specific to the account's ticket configuration"""
|
|
3174
|
+
custom_status_id: str
|
|
3175
|
+
"""Unique identifier of the custom status applied to the ticket"""
|
|
3176
|
+
deleted_ticket_form_id: str
|
|
3177
|
+
"""Unique identifier of the ticket form if it was deleted after the ticket was created"""
|
|
3178
|
+
description: str
|
|
3179
|
+
"""Initial description or content of the ticket when it was created"""
|
|
3180
|
+
due_at: str
|
|
3181
|
+
"""Timestamp indicating when the ticket is due for completion or resolution"""
|
|
3182
|
+
email_cc_ids: str
|
|
3183
|
+
"""Array of user identifiers who are CC'd on ticket email notifications"""
|
|
3184
|
+
external_id: str
|
|
3185
|
+
"""External identifier for the ticket, used for integrations with other systems"""
|
|
3186
|
+
fields: str
|
|
3187
|
+
"""Array of ticket field values including both system and custom fields"""
|
|
3188
|
+
follower_ids: str
|
|
3189
|
+
"""Array of user identifiers who are following the ticket for updates"""
|
|
3190
|
+
followup_ids: str
|
|
3191
|
+
"""Array of identifiers for follow-up tickets related to this ticket"""
|
|
3192
|
+
forum_topic_id: str
|
|
3193
|
+
"""Unique identifier linking the ticket to a forum topic if applicable"""
|
|
3194
|
+
from_messaging_channel: str
|
|
3195
|
+
"""Boolean indicating whether the ticket originated from a messaging channel"""
|
|
3196
|
+
generated_timestamp: str
|
|
3197
|
+
"""Timestamp updated for all ticket updates including system changes, used for incremental export co..."""
|
|
3198
|
+
group_id: str
|
|
3199
|
+
"""Unique identifier of the agent group assigned to handle the ticket"""
|
|
3200
|
+
has_incidents: str
|
|
3201
|
+
"""Boolean indicating whether this problem ticket has related incident tickets"""
|
|
3202
|
+
id: str
|
|
3203
|
+
"""Unique identifier for the ticket"""
|
|
3204
|
+
is_public: str
|
|
3205
|
+
"""Boolean indicating whether the ticket is publicly visible"""
|
|
3206
|
+
organization_id: str
|
|
3207
|
+
"""Unique identifier of the organization associated with the ticket"""
|
|
3208
|
+
priority: str
|
|
3209
|
+
"""Priority level assigned to the ticket (e.g., urgent, high, normal, low)"""
|
|
3210
|
+
problem_id: str
|
|
3211
|
+
"""Unique identifier of the problem ticket if this is an incident ticket"""
|
|
3212
|
+
raw_subject: str
|
|
3213
|
+
"""Original unprocessed subject line before any system modifications"""
|
|
3214
|
+
recipient: str
|
|
3215
|
+
"""Email address or identifier of the ticket recipient"""
|
|
3216
|
+
requester_id: str
|
|
3217
|
+
"""Unique identifier of the user who requested or created the ticket"""
|
|
3218
|
+
satisfaction_rating: str
|
|
3219
|
+
"""Object containing customer satisfaction rating data for the ticket"""
|
|
3220
|
+
sharing_agreement_ids: str
|
|
3221
|
+
"""Array of sharing agreement identifiers if the ticket is shared across Zendesk instances"""
|
|
3222
|
+
status: str
|
|
3223
|
+
"""Current status of the ticket (e.g., new, open, pending, solved, closed)"""
|
|
3224
|
+
subject: str
|
|
3225
|
+
"""Subject line of the ticket describing the issue or request"""
|
|
3226
|
+
submitter_id: str
|
|
3227
|
+
"""Unique identifier of the user who submitted the ticket on behalf of the requester"""
|
|
3228
|
+
tags: str
|
|
3229
|
+
"""Array of tags applied to the ticket for categorization and filtering"""
|
|
3230
|
+
ticket_form_id: str
|
|
3231
|
+
"""Unique identifier of the ticket form used when creating the ticket"""
|
|
3232
|
+
type: str
|
|
3233
|
+
"""Type of ticket (e.g., problem, incident, question, task)"""
|
|
3234
|
+
updated_at: str
|
|
3235
|
+
"""Timestamp indicating when the ticket was last updated with a ticket event"""
|
|
3236
|
+
url: str
|
|
3237
|
+
"""API URL to access the full ticket resource"""
|
|
3238
|
+
via: str
|
|
3239
|
+
"""Object describing the channel and method through which the ticket was created"""
|
|
3240
|
+
|
|
3241
|
+
|
|
3242
|
+
class TicketsSortFilter(TypedDict, total=False):
|
|
3243
|
+
"""Available fields for sorting tickets search results."""
|
|
3244
|
+
allow_attachments: AirbyteSortOrder
|
|
3245
|
+
"""Boolean indicating whether attachments are allowed on the ticket"""
|
|
3246
|
+
allow_channelback: AirbyteSortOrder
|
|
3247
|
+
"""Boolean indicating whether agents can reply to the ticket through the original channel"""
|
|
3248
|
+
assignee_id: AirbyteSortOrder
|
|
3249
|
+
"""Unique identifier of the agent currently assigned to the ticket"""
|
|
3250
|
+
brand_id: AirbyteSortOrder
|
|
3251
|
+
"""Unique identifier of the brand associated with the ticket in multi-brand accounts"""
|
|
3252
|
+
collaborator_ids: AirbyteSortOrder
|
|
3253
|
+
"""Array of user identifiers who are collaborating on the ticket"""
|
|
3254
|
+
created_at: AirbyteSortOrder
|
|
3255
|
+
"""Timestamp indicating when the ticket was created"""
|
|
3256
|
+
custom_fields: AirbyteSortOrder
|
|
3257
|
+
"""Array of custom field values specific to the account's ticket configuration"""
|
|
3258
|
+
custom_status_id: AirbyteSortOrder
|
|
3259
|
+
"""Unique identifier of the custom status applied to the ticket"""
|
|
3260
|
+
deleted_ticket_form_id: AirbyteSortOrder
|
|
3261
|
+
"""Unique identifier of the ticket form if it was deleted after the ticket was created"""
|
|
3262
|
+
description: AirbyteSortOrder
|
|
3263
|
+
"""Initial description or content of the ticket when it was created"""
|
|
3264
|
+
due_at: AirbyteSortOrder
|
|
3265
|
+
"""Timestamp indicating when the ticket is due for completion or resolution"""
|
|
3266
|
+
email_cc_ids: AirbyteSortOrder
|
|
3267
|
+
"""Array of user identifiers who are CC'd on ticket email notifications"""
|
|
3268
|
+
external_id: AirbyteSortOrder
|
|
3269
|
+
"""External identifier for the ticket, used for integrations with other systems"""
|
|
3270
|
+
fields: AirbyteSortOrder
|
|
3271
|
+
"""Array of ticket field values including both system and custom fields"""
|
|
3272
|
+
follower_ids: AirbyteSortOrder
|
|
3273
|
+
"""Array of user identifiers who are following the ticket for updates"""
|
|
3274
|
+
followup_ids: AirbyteSortOrder
|
|
3275
|
+
"""Array of identifiers for follow-up tickets related to this ticket"""
|
|
3276
|
+
forum_topic_id: AirbyteSortOrder
|
|
3277
|
+
"""Unique identifier linking the ticket to a forum topic if applicable"""
|
|
3278
|
+
from_messaging_channel: AirbyteSortOrder
|
|
3279
|
+
"""Boolean indicating whether the ticket originated from a messaging channel"""
|
|
3280
|
+
generated_timestamp: AirbyteSortOrder
|
|
3281
|
+
"""Timestamp updated for all ticket updates including system changes, used for incremental export co..."""
|
|
3282
|
+
group_id: AirbyteSortOrder
|
|
3283
|
+
"""Unique identifier of the agent group assigned to handle the ticket"""
|
|
3284
|
+
has_incidents: AirbyteSortOrder
|
|
3285
|
+
"""Boolean indicating whether this problem ticket has related incident tickets"""
|
|
3286
|
+
id: AirbyteSortOrder
|
|
3287
|
+
"""Unique identifier for the ticket"""
|
|
3288
|
+
is_public: AirbyteSortOrder
|
|
3289
|
+
"""Boolean indicating whether the ticket is publicly visible"""
|
|
3290
|
+
organization_id: AirbyteSortOrder
|
|
3291
|
+
"""Unique identifier of the organization associated with the ticket"""
|
|
3292
|
+
priority: AirbyteSortOrder
|
|
3293
|
+
"""Priority level assigned to the ticket (e.g., urgent, high, normal, low)"""
|
|
3294
|
+
problem_id: AirbyteSortOrder
|
|
3295
|
+
"""Unique identifier of the problem ticket if this is an incident ticket"""
|
|
3296
|
+
raw_subject: AirbyteSortOrder
|
|
3297
|
+
"""Original unprocessed subject line before any system modifications"""
|
|
3298
|
+
recipient: AirbyteSortOrder
|
|
3299
|
+
"""Email address or identifier of the ticket recipient"""
|
|
3300
|
+
requester_id: AirbyteSortOrder
|
|
3301
|
+
"""Unique identifier of the user who requested or created the ticket"""
|
|
3302
|
+
satisfaction_rating: AirbyteSortOrder
|
|
3303
|
+
"""Object containing customer satisfaction rating data for the ticket"""
|
|
3304
|
+
sharing_agreement_ids: AirbyteSortOrder
|
|
3305
|
+
"""Array of sharing agreement identifiers if the ticket is shared across Zendesk instances"""
|
|
3306
|
+
status: AirbyteSortOrder
|
|
3307
|
+
"""Current status of the ticket (e.g., new, open, pending, solved, closed)"""
|
|
3308
|
+
subject: AirbyteSortOrder
|
|
3309
|
+
"""Subject line of the ticket describing the issue or request"""
|
|
3310
|
+
submitter_id: AirbyteSortOrder
|
|
3311
|
+
"""Unique identifier of the user who submitted the ticket on behalf of the requester"""
|
|
3312
|
+
tags: AirbyteSortOrder
|
|
3313
|
+
"""Array of tags applied to the ticket for categorization and filtering"""
|
|
3314
|
+
ticket_form_id: AirbyteSortOrder
|
|
3315
|
+
"""Unique identifier of the ticket form used when creating the ticket"""
|
|
3316
|
+
type: AirbyteSortOrder
|
|
3317
|
+
"""Type of ticket (e.g., problem, incident, question, task)"""
|
|
3318
|
+
updated_at: AirbyteSortOrder
|
|
3319
|
+
"""Timestamp indicating when the ticket was last updated with a ticket event"""
|
|
3320
|
+
url: AirbyteSortOrder
|
|
3321
|
+
"""API URL to access the full ticket resource"""
|
|
3322
|
+
via: AirbyteSortOrder
|
|
3323
|
+
"""Object describing the channel and method through which the ticket was created"""
|
|
3324
|
+
|
|
3325
|
+
|
|
3326
|
+
# Entity-specific condition types for tickets
|
|
3327
|
+
class TicketsEqCondition(TypedDict, total=False):
|
|
3328
|
+
"""Equal to: field equals value."""
|
|
3329
|
+
eq: TicketsSearchFilter
|
|
3330
|
+
|
|
3331
|
+
|
|
3332
|
+
class TicketsNeqCondition(TypedDict, total=False):
|
|
3333
|
+
"""Not equal to: field does not equal value."""
|
|
3334
|
+
neq: TicketsSearchFilter
|
|
3335
|
+
|
|
3336
|
+
|
|
3337
|
+
class TicketsGtCondition(TypedDict, total=False):
|
|
3338
|
+
"""Greater than: field > value."""
|
|
3339
|
+
gt: TicketsSearchFilter
|
|
3340
|
+
|
|
3341
|
+
|
|
3342
|
+
class TicketsGteCondition(TypedDict, total=False):
|
|
3343
|
+
"""Greater than or equal: field >= value."""
|
|
3344
|
+
gte: TicketsSearchFilter
|
|
3345
|
+
|
|
3346
|
+
|
|
3347
|
+
class TicketsLtCondition(TypedDict, total=False):
|
|
3348
|
+
"""Less than: field < value."""
|
|
3349
|
+
lt: TicketsSearchFilter
|
|
3350
|
+
|
|
3351
|
+
|
|
3352
|
+
class TicketsLteCondition(TypedDict, total=False):
|
|
3353
|
+
"""Less than or equal: field <= value."""
|
|
3354
|
+
lte: TicketsSearchFilter
|
|
3355
|
+
|
|
3356
|
+
|
|
3357
|
+
class TicketsLikeCondition(TypedDict, total=False):
|
|
3358
|
+
"""Partial string match with % wildcards."""
|
|
3359
|
+
like: TicketsStringFilter
|
|
3360
|
+
|
|
3361
|
+
|
|
3362
|
+
class TicketsFuzzyCondition(TypedDict, total=False):
|
|
3363
|
+
"""Ordered word text match (case-insensitive)."""
|
|
3364
|
+
fuzzy: TicketsStringFilter
|
|
3365
|
+
|
|
3366
|
+
|
|
3367
|
+
class TicketsKeywordCondition(TypedDict, total=False):
|
|
3368
|
+
"""Keyword text match (any word present)."""
|
|
3369
|
+
keyword: TicketsStringFilter
|
|
3370
|
+
|
|
3371
|
+
|
|
3372
|
+
class TicketsContainsCondition(TypedDict, total=False):
|
|
3373
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
3374
|
+
contains: TicketsAnyValueFilter
|
|
3375
|
+
|
|
3376
|
+
|
|
3377
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
3378
|
+
TicketsInCondition = TypedDict("TicketsInCondition", {"in": TicketsInFilter}, total=False)
|
|
3379
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
3380
|
+
|
|
3381
|
+
TicketsNotCondition = TypedDict("TicketsNotCondition", {"not": "TicketsCondition"}, total=False)
|
|
3382
|
+
"""Negates the nested condition."""
|
|
3383
|
+
|
|
3384
|
+
TicketsAndCondition = TypedDict("TicketsAndCondition", {"and": "list[TicketsCondition]"}, total=False)
|
|
3385
|
+
"""True if all nested conditions are true."""
|
|
3386
|
+
|
|
3387
|
+
TicketsOrCondition = TypedDict("TicketsOrCondition", {"or": "list[TicketsCondition]"}, total=False)
|
|
3388
|
+
"""True if any nested condition is true."""
|
|
3389
|
+
|
|
3390
|
+
TicketsAnyCondition = TypedDict("TicketsAnyCondition", {"any": TicketsAnyValueFilter}, total=False)
|
|
3391
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
3392
|
+
|
|
3393
|
+
# Union of all tickets condition types
|
|
3394
|
+
TicketsCondition = (
|
|
3395
|
+
TicketsEqCondition
|
|
3396
|
+
| TicketsNeqCondition
|
|
3397
|
+
| TicketsGtCondition
|
|
3398
|
+
| TicketsGteCondition
|
|
3399
|
+
| TicketsLtCondition
|
|
3400
|
+
| TicketsLteCondition
|
|
3401
|
+
| TicketsInCondition
|
|
3402
|
+
| TicketsLikeCondition
|
|
3403
|
+
| TicketsFuzzyCondition
|
|
3404
|
+
| TicketsKeywordCondition
|
|
3405
|
+
| TicketsContainsCondition
|
|
3406
|
+
| TicketsNotCondition
|
|
3407
|
+
| TicketsAndCondition
|
|
3408
|
+
| TicketsOrCondition
|
|
3409
|
+
| TicketsAnyCondition
|
|
3410
|
+
)
|
|
3411
|
+
|
|
3412
|
+
|
|
3413
|
+
class TicketsSearchQuery(TypedDict, total=False):
|
|
3414
|
+
"""Search query for tickets entity."""
|
|
3415
|
+
filter: TicketsCondition
|
|
3416
|
+
sort: list[TicketsSortFilter]
|
|
3417
|
+
|
|
3418
|
+
|
|
3419
|
+
# ===== USERS SEARCH TYPES =====
|
|
3420
|
+
|
|
3421
|
+
class UsersSearchFilter(TypedDict, total=False):
|
|
3422
|
+
"""Available fields for filtering users search queries."""
|
|
3423
|
+
active: bool | None
|
|
3424
|
+
"""Indicates if the user account is currently active"""
|
|
3425
|
+
alias: str | None
|
|
3426
|
+
"""Alternative name or nickname for the user"""
|
|
3427
|
+
chat_only: bool | None
|
|
3428
|
+
"""Indicates if the user can only interact via chat"""
|
|
3429
|
+
created_at: str | None
|
|
3430
|
+
"""Timestamp indicating when the user was created"""
|
|
3431
|
+
custom_role_id: int | None
|
|
3432
|
+
"""Identifier for a custom role assigned to the user"""
|
|
3433
|
+
default_group_id: int | None
|
|
3434
|
+
"""Identifier of the default group assigned to the user"""
|
|
3435
|
+
details: str | None
|
|
3436
|
+
"""Additional descriptive information about the user"""
|
|
3437
|
+
email: str | None
|
|
3438
|
+
"""Email address of the user"""
|
|
3439
|
+
external_id: str | None
|
|
3440
|
+
"""External system identifier for the user, used for integrations"""
|
|
3441
|
+
iana_time_zone: str | None
|
|
3442
|
+
"""IANA standard time zone identifier for the user"""
|
|
3443
|
+
id: int | None
|
|
3444
|
+
"""Unique identifier for the user"""
|
|
3445
|
+
last_login_at: str | None
|
|
3446
|
+
"""Timestamp of the user's most recent login"""
|
|
3447
|
+
locale: str | None
|
|
3448
|
+
"""Locale setting determining language and regional format preferences"""
|
|
3449
|
+
locale_id: int | None
|
|
3450
|
+
"""Identifier for the user's locale preference"""
|
|
3451
|
+
moderator: bool | None
|
|
3452
|
+
"""Indicates if the user has moderator privileges"""
|
|
3453
|
+
name: str | None
|
|
3454
|
+
"""Display name of the user"""
|
|
3455
|
+
notes: str | None
|
|
3456
|
+
"""Internal notes about the user, visible only to agents"""
|
|
3457
|
+
only_private_comments: bool | None
|
|
3458
|
+
"""Indicates if the user can only make private comments on tickets"""
|
|
3459
|
+
organization_id: int | None
|
|
3460
|
+
"""Identifier of the organization the user belongs to"""
|
|
3461
|
+
permanently_deleted: bool | None
|
|
3462
|
+
"""Indicates if the user has been permanently deleted from the system"""
|
|
3463
|
+
phone: str | None
|
|
3464
|
+
"""Phone number of the user"""
|
|
3465
|
+
photo: dict[str, Any] | None
|
|
3466
|
+
"""Profile photo or avatar of the user"""
|
|
3467
|
+
report_csv: bool | None
|
|
3468
|
+
"""Indicates if the user receives reports in CSV format"""
|
|
3469
|
+
restricted_agent: bool | None
|
|
3470
|
+
"""Indicates if the agent has restricted access permissions"""
|
|
3471
|
+
role: str | None
|
|
3472
|
+
"""Role assigned to the user defining their permissions level"""
|
|
3473
|
+
role_type: int | None
|
|
3474
|
+
"""Type classification of the user's role"""
|
|
3475
|
+
shared: bool | None
|
|
3476
|
+
"""Indicates if the user is shared across multiple accounts"""
|
|
3477
|
+
shared_agent: bool | None
|
|
3478
|
+
"""Indicates if the user is a shared agent across multiple brands or accounts"""
|
|
3479
|
+
shared_phone_number: bool | None
|
|
3480
|
+
"""Indicates if the phone number is shared with other users"""
|
|
3481
|
+
signature: str | None
|
|
3482
|
+
"""Email signature text for the user"""
|
|
3483
|
+
suspended: bool | None
|
|
3484
|
+
"""Indicates if the user account is suspended"""
|
|
3485
|
+
tags: list[Any] | None
|
|
3486
|
+
"""Labels or tags associated with the user for categorization"""
|
|
3487
|
+
ticket_restriction: str | None
|
|
3488
|
+
"""Defines which tickets the user can access based on restrictions"""
|
|
3489
|
+
time_zone: str | None
|
|
3490
|
+
"""Time zone setting for the user"""
|
|
3491
|
+
two_factor_auth_enabled: bool | None
|
|
3492
|
+
"""Indicates if two-factor authentication is enabled for the user"""
|
|
3493
|
+
updated_at: str | None
|
|
3494
|
+
"""Timestamp indicating when the user was last updated"""
|
|
3495
|
+
url: str | None
|
|
3496
|
+
"""API endpoint URL for accessing the user's detailed information"""
|
|
3497
|
+
user_fields: dict[str, Any] | None
|
|
3498
|
+
"""Custom field values specific to the user, stored as key-value pairs"""
|
|
3499
|
+
verified: bool | None
|
|
3500
|
+
"""Indicates if the user's identity has been verified"""
|
|
3501
|
+
|
|
3502
|
+
|
|
3503
|
+
class UsersInFilter(TypedDict, total=False):
|
|
3504
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
3505
|
+
active: list[bool]
|
|
3506
|
+
"""Indicates if the user account is currently active"""
|
|
3507
|
+
alias: list[str]
|
|
3508
|
+
"""Alternative name or nickname for the user"""
|
|
3509
|
+
chat_only: list[bool]
|
|
3510
|
+
"""Indicates if the user can only interact via chat"""
|
|
3511
|
+
created_at: list[str]
|
|
3512
|
+
"""Timestamp indicating when the user was created"""
|
|
3513
|
+
custom_role_id: list[int]
|
|
3514
|
+
"""Identifier for a custom role assigned to the user"""
|
|
3515
|
+
default_group_id: list[int]
|
|
3516
|
+
"""Identifier of the default group assigned to the user"""
|
|
3517
|
+
details: list[str]
|
|
3518
|
+
"""Additional descriptive information about the user"""
|
|
3519
|
+
email: list[str]
|
|
3520
|
+
"""Email address of the user"""
|
|
3521
|
+
external_id: list[str]
|
|
3522
|
+
"""External system identifier for the user, used for integrations"""
|
|
3523
|
+
iana_time_zone: list[str]
|
|
3524
|
+
"""IANA standard time zone identifier for the user"""
|
|
3525
|
+
id: list[int]
|
|
3526
|
+
"""Unique identifier for the user"""
|
|
3527
|
+
last_login_at: list[str]
|
|
3528
|
+
"""Timestamp of the user's most recent login"""
|
|
3529
|
+
locale: list[str]
|
|
3530
|
+
"""Locale setting determining language and regional format preferences"""
|
|
3531
|
+
locale_id: list[int]
|
|
3532
|
+
"""Identifier for the user's locale preference"""
|
|
3533
|
+
moderator: list[bool]
|
|
3534
|
+
"""Indicates if the user has moderator privileges"""
|
|
3535
|
+
name: list[str]
|
|
3536
|
+
"""Display name of the user"""
|
|
3537
|
+
notes: list[str]
|
|
3538
|
+
"""Internal notes about the user, visible only to agents"""
|
|
3539
|
+
only_private_comments: list[bool]
|
|
3540
|
+
"""Indicates if the user can only make private comments on tickets"""
|
|
3541
|
+
organization_id: list[int]
|
|
3542
|
+
"""Identifier of the organization the user belongs to"""
|
|
3543
|
+
permanently_deleted: list[bool]
|
|
3544
|
+
"""Indicates if the user has been permanently deleted from the system"""
|
|
3545
|
+
phone: list[str]
|
|
3546
|
+
"""Phone number of the user"""
|
|
3547
|
+
photo: list[dict[str, Any]]
|
|
3548
|
+
"""Profile photo or avatar of the user"""
|
|
3549
|
+
report_csv: list[bool]
|
|
3550
|
+
"""Indicates if the user receives reports in CSV format"""
|
|
3551
|
+
restricted_agent: list[bool]
|
|
3552
|
+
"""Indicates if the agent has restricted access permissions"""
|
|
3553
|
+
role: list[str]
|
|
3554
|
+
"""Role assigned to the user defining their permissions level"""
|
|
3555
|
+
role_type: list[int]
|
|
3556
|
+
"""Type classification of the user's role"""
|
|
3557
|
+
shared: list[bool]
|
|
3558
|
+
"""Indicates if the user is shared across multiple accounts"""
|
|
3559
|
+
shared_agent: list[bool]
|
|
3560
|
+
"""Indicates if the user is a shared agent across multiple brands or accounts"""
|
|
3561
|
+
shared_phone_number: list[bool]
|
|
3562
|
+
"""Indicates if the phone number is shared with other users"""
|
|
3563
|
+
signature: list[str]
|
|
3564
|
+
"""Email signature text for the user"""
|
|
3565
|
+
suspended: list[bool]
|
|
3566
|
+
"""Indicates if the user account is suspended"""
|
|
3567
|
+
tags: list[list[Any]]
|
|
3568
|
+
"""Labels or tags associated with the user for categorization"""
|
|
3569
|
+
ticket_restriction: list[str]
|
|
3570
|
+
"""Defines which tickets the user can access based on restrictions"""
|
|
3571
|
+
time_zone: list[str]
|
|
3572
|
+
"""Time zone setting for the user"""
|
|
3573
|
+
two_factor_auth_enabled: list[bool]
|
|
3574
|
+
"""Indicates if two-factor authentication is enabled for the user"""
|
|
3575
|
+
updated_at: list[str]
|
|
3576
|
+
"""Timestamp indicating when the user was last updated"""
|
|
3577
|
+
url: list[str]
|
|
3578
|
+
"""API endpoint URL for accessing the user's detailed information"""
|
|
3579
|
+
user_fields: list[dict[str, Any]]
|
|
3580
|
+
"""Custom field values specific to the user, stored as key-value pairs"""
|
|
3581
|
+
verified: list[bool]
|
|
3582
|
+
"""Indicates if the user's identity has been verified"""
|
|
3583
|
+
|
|
3584
|
+
|
|
3585
|
+
class UsersAnyValueFilter(TypedDict, total=False):
|
|
3586
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
3587
|
+
active: Any
|
|
3588
|
+
"""Indicates if the user account is currently active"""
|
|
3589
|
+
alias: Any
|
|
3590
|
+
"""Alternative name or nickname for the user"""
|
|
3591
|
+
chat_only: Any
|
|
3592
|
+
"""Indicates if the user can only interact via chat"""
|
|
3593
|
+
created_at: Any
|
|
3594
|
+
"""Timestamp indicating when the user was created"""
|
|
3595
|
+
custom_role_id: Any
|
|
3596
|
+
"""Identifier for a custom role assigned to the user"""
|
|
3597
|
+
default_group_id: Any
|
|
3598
|
+
"""Identifier of the default group assigned to the user"""
|
|
3599
|
+
details: Any
|
|
3600
|
+
"""Additional descriptive information about the user"""
|
|
3601
|
+
email: Any
|
|
3602
|
+
"""Email address of the user"""
|
|
3603
|
+
external_id: Any
|
|
3604
|
+
"""External system identifier for the user, used for integrations"""
|
|
3605
|
+
iana_time_zone: Any
|
|
3606
|
+
"""IANA standard time zone identifier for the user"""
|
|
3607
|
+
id: Any
|
|
3608
|
+
"""Unique identifier for the user"""
|
|
3609
|
+
last_login_at: Any
|
|
3610
|
+
"""Timestamp of the user's most recent login"""
|
|
3611
|
+
locale: Any
|
|
3612
|
+
"""Locale setting determining language and regional format preferences"""
|
|
3613
|
+
locale_id: Any
|
|
3614
|
+
"""Identifier for the user's locale preference"""
|
|
3615
|
+
moderator: Any
|
|
3616
|
+
"""Indicates if the user has moderator privileges"""
|
|
3617
|
+
name: Any
|
|
3618
|
+
"""Display name of the user"""
|
|
3619
|
+
notes: Any
|
|
3620
|
+
"""Internal notes about the user, visible only to agents"""
|
|
3621
|
+
only_private_comments: Any
|
|
3622
|
+
"""Indicates if the user can only make private comments on tickets"""
|
|
3623
|
+
organization_id: Any
|
|
3624
|
+
"""Identifier of the organization the user belongs to"""
|
|
3625
|
+
permanently_deleted: Any
|
|
3626
|
+
"""Indicates if the user has been permanently deleted from the system"""
|
|
3627
|
+
phone: Any
|
|
3628
|
+
"""Phone number of the user"""
|
|
3629
|
+
photo: Any
|
|
3630
|
+
"""Profile photo or avatar of the user"""
|
|
3631
|
+
report_csv: Any
|
|
3632
|
+
"""Indicates if the user receives reports in CSV format"""
|
|
3633
|
+
restricted_agent: Any
|
|
3634
|
+
"""Indicates if the agent has restricted access permissions"""
|
|
3635
|
+
role: Any
|
|
3636
|
+
"""Role assigned to the user defining their permissions level"""
|
|
3637
|
+
role_type: Any
|
|
3638
|
+
"""Type classification of the user's role"""
|
|
3639
|
+
shared: Any
|
|
3640
|
+
"""Indicates if the user is shared across multiple accounts"""
|
|
3641
|
+
shared_agent: Any
|
|
3642
|
+
"""Indicates if the user is a shared agent across multiple brands or accounts"""
|
|
3643
|
+
shared_phone_number: Any
|
|
3644
|
+
"""Indicates if the phone number is shared with other users"""
|
|
3645
|
+
signature: Any
|
|
3646
|
+
"""Email signature text for the user"""
|
|
3647
|
+
suspended: Any
|
|
3648
|
+
"""Indicates if the user account is suspended"""
|
|
3649
|
+
tags: Any
|
|
3650
|
+
"""Labels or tags associated with the user for categorization"""
|
|
3651
|
+
ticket_restriction: Any
|
|
3652
|
+
"""Defines which tickets the user can access based on restrictions"""
|
|
3653
|
+
time_zone: Any
|
|
3654
|
+
"""Time zone setting for the user"""
|
|
3655
|
+
two_factor_auth_enabled: Any
|
|
3656
|
+
"""Indicates if two-factor authentication is enabled for the user"""
|
|
3657
|
+
updated_at: Any
|
|
3658
|
+
"""Timestamp indicating when the user was last updated"""
|
|
3659
|
+
url: Any
|
|
3660
|
+
"""API endpoint URL for accessing the user's detailed information"""
|
|
3661
|
+
user_fields: Any
|
|
3662
|
+
"""Custom field values specific to the user, stored as key-value pairs"""
|
|
3663
|
+
verified: Any
|
|
3664
|
+
"""Indicates if the user's identity has been verified"""
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
class UsersStringFilter(TypedDict, total=False):
|
|
3668
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
3669
|
+
active: str
|
|
3670
|
+
"""Indicates if the user account is currently active"""
|
|
3671
|
+
alias: str
|
|
3672
|
+
"""Alternative name or nickname for the user"""
|
|
3673
|
+
chat_only: str
|
|
3674
|
+
"""Indicates if the user can only interact via chat"""
|
|
3675
|
+
created_at: str
|
|
3676
|
+
"""Timestamp indicating when the user was created"""
|
|
3677
|
+
custom_role_id: str
|
|
3678
|
+
"""Identifier for a custom role assigned to the user"""
|
|
3679
|
+
default_group_id: str
|
|
3680
|
+
"""Identifier of the default group assigned to the user"""
|
|
3681
|
+
details: str
|
|
3682
|
+
"""Additional descriptive information about the user"""
|
|
3683
|
+
email: str
|
|
3684
|
+
"""Email address of the user"""
|
|
3685
|
+
external_id: str
|
|
3686
|
+
"""External system identifier for the user, used for integrations"""
|
|
3687
|
+
iana_time_zone: str
|
|
3688
|
+
"""IANA standard time zone identifier for the user"""
|
|
3689
|
+
id: str
|
|
3690
|
+
"""Unique identifier for the user"""
|
|
3691
|
+
last_login_at: str
|
|
3692
|
+
"""Timestamp of the user's most recent login"""
|
|
3693
|
+
locale: str
|
|
3694
|
+
"""Locale setting determining language and regional format preferences"""
|
|
3695
|
+
locale_id: str
|
|
3696
|
+
"""Identifier for the user's locale preference"""
|
|
3697
|
+
moderator: str
|
|
3698
|
+
"""Indicates if the user has moderator privileges"""
|
|
3699
|
+
name: str
|
|
3700
|
+
"""Display name of the user"""
|
|
3701
|
+
notes: str
|
|
3702
|
+
"""Internal notes about the user, visible only to agents"""
|
|
3703
|
+
only_private_comments: str
|
|
3704
|
+
"""Indicates if the user can only make private comments on tickets"""
|
|
3705
|
+
organization_id: str
|
|
3706
|
+
"""Identifier of the organization the user belongs to"""
|
|
3707
|
+
permanently_deleted: str
|
|
3708
|
+
"""Indicates if the user has been permanently deleted from the system"""
|
|
3709
|
+
phone: str
|
|
3710
|
+
"""Phone number of the user"""
|
|
3711
|
+
photo: str
|
|
3712
|
+
"""Profile photo or avatar of the user"""
|
|
3713
|
+
report_csv: str
|
|
3714
|
+
"""Indicates if the user receives reports in CSV format"""
|
|
3715
|
+
restricted_agent: str
|
|
3716
|
+
"""Indicates if the agent has restricted access permissions"""
|
|
3717
|
+
role: str
|
|
3718
|
+
"""Role assigned to the user defining their permissions level"""
|
|
3719
|
+
role_type: str
|
|
3720
|
+
"""Type classification of the user's role"""
|
|
3721
|
+
shared: str
|
|
3722
|
+
"""Indicates if the user is shared across multiple accounts"""
|
|
3723
|
+
shared_agent: str
|
|
3724
|
+
"""Indicates if the user is a shared agent across multiple brands or accounts"""
|
|
3725
|
+
shared_phone_number: str
|
|
3726
|
+
"""Indicates if the phone number is shared with other users"""
|
|
3727
|
+
signature: str
|
|
3728
|
+
"""Email signature text for the user"""
|
|
3729
|
+
suspended: str
|
|
3730
|
+
"""Indicates if the user account is suspended"""
|
|
3731
|
+
tags: str
|
|
3732
|
+
"""Labels or tags associated with the user for categorization"""
|
|
3733
|
+
ticket_restriction: str
|
|
3734
|
+
"""Defines which tickets the user can access based on restrictions"""
|
|
3735
|
+
time_zone: str
|
|
3736
|
+
"""Time zone setting for the user"""
|
|
3737
|
+
two_factor_auth_enabled: str
|
|
3738
|
+
"""Indicates if two-factor authentication is enabled for the user"""
|
|
3739
|
+
updated_at: str
|
|
3740
|
+
"""Timestamp indicating when the user was last updated"""
|
|
3741
|
+
url: str
|
|
3742
|
+
"""API endpoint URL for accessing the user's detailed information"""
|
|
3743
|
+
user_fields: str
|
|
3744
|
+
"""Custom field values specific to the user, stored as key-value pairs"""
|
|
3745
|
+
verified: str
|
|
3746
|
+
"""Indicates if the user's identity has been verified"""
|
|
3747
|
+
|
|
3748
|
+
|
|
3749
|
+
class UsersSortFilter(TypedDict, total=False):
|
|
3750
|
+
"""Available fields for sorting users search results."""
|
|
3751
|
+
active: AirbyteSortOrder
|
|
3752
|
+
"""Indicates if the user account is currently active"""
|
|
3753
|
+
alias: AirbyteSortOrder
|
|
3754
|
+
"""Alternative name or nickname for the user"""
|
|
3755
|
+
chat_only: AirbyteSortOrder
|
|
3756
|
+
"""Indicates if the user can only interact via chat"""
|
|
3757
|
+
created_at: AirbyteSortOrder
|
|
3758
|
+
"""Timestamp indicating when the user was created"""
|
|
3759
|
+
custom_role_id: AirbyteSortOrder
|
|
3760
|
+
"""Identifier for a custom role assigned to the user"""
|
|
3761
|
+
default_group_id: AirbyteSortOrder
|
|
3762
|
+
"""Identifier of the default group assigned to the user"""
|
|
3763
|
+
details: AirbyteSortOrder
|
|
3764
|
+
"""Additional descriptive information about the user"""
|
|
3765
|
+
email: AirbyteSortOrder
|
|
3766
|
+
"""Email address of the user"""
|
|
3767
|
+
external_id: AirbyteSortOrder
|
|
3768
|
+
"""External system identifier for the user, used for integrations"""
|
|
3769
|
+
iana_time_zone: AirbyteSortOrder
|
|
3770
|
+
"""IANA standard time zone identifier for the user"""
|
|
3771
|
+
id: AirbyteSortOrder
|
|
3772
|
+
"""Unique identifier for the user"""
|
|
3773
|
+
last_login_at: AirbyteSortOrder
|
|
3774
|
+
"""Timestamp of the user's most recent login"""
|
|
3775
|
+
locale: AirbyteSortOrder
|
|
3776
|
+
"""Locale setting determining language and regional format preferences"""
|
|
3777
|
+
locale_id: AirbyteSortOrder
|
|
3778
|
+
"""Identifier for the user's locale preference"""
|
|
3779
|
+
moderator: AirbyteSortOrder
|
|
3780
|
+
"""Indicates if the user has moderator privileges"""
|
|
3781
|
+
name: AirbyteSortOrder
|
|
3782
|
+
"""Display name of the user"""
|
|
3783
|
+
notes: AirbyteSortOrder
|
|
3784
|
+
"""Internal notes about the user, visible only to agents"""
|
|
3785
|
+
only_private_comments: AirbyteSortOrder
|
|
3786
|
+
"""Indicates if the user can only make private comments on tickets"""
|
|
3787
|
+
organization_id: AirbyteSortOrder
|
|
3788
|
+
"""Identifier of the organization the user belongs to"""
|
|
3789
|
+
permanently_deleted: AirbyteSortOrder
|
|
3790
|
+
"""Indicates if the user has been permanently deleted from the system"""
|
|
3791
|
+
phone: AirbyteSortOrder
|
|
3792
|
+
"""Phone number of the user"""
|
|
3793
|
+
photo: AirbyteSortOrder
|
|
3794
|
+
"""Profile photo or avatar of the user"""
|
|
3795
|
+
report_csv: AirbyteSortOrder
|
|
3796
|
+
"""Indicates if the user receives reports in CSV format"""
|
|
3797
|
+
restricted_agent: AirbyteSortOrder
|
|
3798
|
+
"""Indicates if the agent has restricted access permissions"""
|
|
3799
|
+
role: AirbyteSortOrder
|
|
3800
|
+
"""Role assigned to the user defining their permissions level"""
|
|
3801
|
+
role_type: AirbyteSortOrder
|
|
3802
|
+
"""Type classification of the user's role"""
|
|
3803
|
+
shared: AirbyteSortOrder
|
|
3804
|
+
"""Indicates if the user is shared across multiple accounts"""
|
|
3805
|
+
shared_agent: AirbyteSortOrder
|
|
3806
|
+
"""Indicates if the user is a shared agent across multiple brands or accounts"""
|
|
3807
|
+
shared_phone_number: AirbyteSortOrder
|
|
3808
|
+
"""Indicates if the phone number is shared with other users"""
|
|
3809
|
+
signature: AirbyteSortOrder
|
|
3810
|
+
"""Email signature text for the user"""
|
|
3811
|
+
suspended: AirbyteSortOrder
|
|
3812
|
+
"""Indicates if the user account is suspended"""
|
|
3813
|
+
tags: AirbyteSortOrder
|
|
3814
|
+
"""Labels or tags associated with the user for categorization"""
|
|
3815
|
+
ticket_restriction: AirbyteSortOrder
|
|
3816
|
+
"""Defines which tickets the user can access based on restrictions"""
|
|
3817
|
+
time_zone: AirbyteSortOrder
|
|
3818
|
+
"""Time zone setting for the user"""
|
|
3819
|
+
two_factor_auth_enabled: AirbyteSortOrder
|
|
3820
|
+
"""Indicates if two-factor authentication is enabled for the user"""
|
|
3821
|
+
updated_at: AirbyteSortOrder
|
|
3822
|
+
"""Timestamp indicating when the user was last updated"""
|
|
3823
|
+
url: AirbyteSortOrder
|
|
3824
|
+
"""API endpoint URL for accessing the user's detailed information"""
|
|
3825
|
+
user_fields: AirbyteSortOrder
|
|
3826
|
+
"""Custom field values specific to the user, stored as key-value pairs"""
|
|
3827
|
+
verified: AirbyteSortOrder
|
|
3828
|
+
"""Indicates if the user's identity has been verified"""
|
|
3829
|
+
|
|
3830
|
+
|
|
3831
|
+
# Entity-specific condition types for users
|
|
3832
|
+
class UsersEqCondition(TypedDict, total=False):
|
|
3833
|
+
"""Equal to: field equals value."""
|
|
3834
|
+
eq: UsersSearchFilter
|
|
3835
|
+
|
|
3836
|
+
|
|
3837
|
+
class UsersNeqCondition(TypedDict, total=False):
|
|
3838
|
+
"""Not equal to: field does not equal value."""
|
|
3839
|
+
neq: UsersSearchFilter
|
|
3840
|
+
|
|
3841
|
+
|
|
3842
|
+
class UsersGtCondition(TypedDict, total=False):
|
|
3843
|
+
"""Greater than: field > value."""
|
|
3844
|
+
gt: UsersSearchFilter
|
|
3845
|
+
|
|
3846
|
+
|
|
3847
|
+
class UsersGteCondition(TypedDict, total=False):
|
|
3848
|
+
"""Greater than or equal: field >= value."""
|
|
3849
|
+
gte: UsersSearchFilter
|
|
3850
|
+
|
|
3851
|
+
|
|
3852
|
+
class UsersLtCondition(TypedDict, total=False):
|
|
3853
|
+
"""Less than: field < value."""
|
|
3854
|
+
lt: UsersSearchFilter
|
|
3855
|
+
|
|
3856
|
+
|
|
3857
|
+
class UsersLteCondition(TypedDict, total=False):
|
|
3858
|
+
"""Less than or equal: field <= value."""
|
|
3859
|
+
lte: UsersSearchFilter
|
|
3860
|
+
|
|
3861
|
+
|
|
3862
|
+
class UsersLikeCondition(TypedDict, total=False):
|
|
3863
|
+
"""Partial string match with % wildcards."""
|
|
3864
|
+
like: UsersStringFilter
|
|
3865
|
+
|
|
3866
|
+
|
|
3867
|
+
class UsersFuzzyCondition(TypedDict, total=False):
|
|
3868
|
+
"""Ordered word text match (case-insensitive)."""
|
|
3869
|
+
fuzzy: UsersStringFilter
|
|
3870
|
+
|
|
3871
|
+
|
|
3872
|
+
class UsersKeywordCondition(TypedDict, total=False):
|
|
3873
|
+
"""Keyword text match (any word present)."""
|
|
3874
|
+
keyword: UsersStringFilter
|
|
3875
|
+
|
|
3876
|
+
|
|
3877
|
+
class UsersContainsCondition(TypedDict, total=False):
|
|
3878
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
3879
|
+
contains: UsersAnyValueFilter
|
|
3880
|
+
|
|
3881
|
+
|
|
3882
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
3883
|
+
UsersInCondition = TypedDict("UsersInCondition", {"in": UsersInFilter}, total=False)
|
|
3884
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
3885
|
+
|
|
3886
|
+
UsersNotCondition = TypedDict("UsersNotCondition", {"not": "UsersCondition"}, total=False)
|
|
3887
|
+
"""Negates the nested condition."""
|
|
3888
|
+
|
|
3889
|
+
UsersAndCondition = TypedDict("UsersAndCondition", {"and": "list[UsersCondition]"}, total=False)
|
|
3890
|
+
"""True if all nested conditions are true."""
|
|
3891
|
+
|
|
3892
|
+
UsersOrCondition = TypedDict("UsersOrCondition", {"or": "list[UsersCondition]"}, total=False)
|
|
3893
|
+
"""True if any nested condition is true."""
|
|
3894
|
+
|
|
3895
|
+
UsersAnyCondition = TypedDict("UsersAnyCondition", {"any": UsersAnyValueFilter}, total=False)
|
|
3896
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
3897
|
+
|
|
3898
|
+
# Union of all users condition types
|
|
3899
|
+
UsersCondition = (
|
|
3900
|
+
UsersEqCondition
|
|
3901
|
+
| UsersNeqCondition
|
|
3902
|
+
| UsersGtCondition
|
|
3903
|
+
| UsersGteCondition
|
|
3904
|
+
| UsersLtCondition
|
|
3905
|
+
| UsersLteCondition
|
|
3906
|
+
| UsersInCondition
|
|
3907
|
+
| UsersLikeCondition
|
|
3908
|
+
| UsersFuzzyCondition
|
|
3909
|
+
| UsersKeywordCondition
|
|
3910
|
+
| UsersContainsCondition
|
|
3911
|
+
| UsersNotCondition
|
|
3912
|
+
| UsersAndCondition
|
|
3913
|
+
| UsersOrCondition
|
|
3914
|
+
| UsersAnyCondition
|
|
3915
|
+
)
|
|
3916
|
+
|
|
3917
|
+
|
|
3918
|
+
class UsersSearchQuery(TypedDict, total=False):
|
|
3919
|
+
"""Search query for users entity."""
|
|
3920
|
+
filter: UsersCondition
|
|
3921
|
+
sort: list[UsersSortFilter]
|
|
3922
|
+
|
|
3923
|
+
|
|
3924
|
+
|
|
3925
|
+
# ===== SEARCH PARAMS =====
|
|
3926
|
+
|
|
3927
|
+
class AirbyteSearchParams(TypedDict, total=False):
|
|
3928
|
+
"""Parameters for Airbyte cache search operations (generic, use entity-specific query types for better type hints)."""
|
|
3929
|
+
query: dict[str, Any]
|
|
3930
|
+
limit: int
|
|
3931
|
+
cursor: str
|
|
3932
|
+
fields: list[list[str]]
|