airbyte-agent-zendesk-support 0.18.47__py3-none-any.whl → 0.18.48__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ try:
9
9
  except ImportError:
10
10
  from typing import TypedDict, NotRequired # type: ignore[attr-defined]
11
11
 
12
+ from typing import Any, Literal
12
13
 
13
14
 
14
15
  # ===== NESTED PARAM TYPE DEFINITIONS =====
@@ -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
+ SortOrder = 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: SortOrder
373
+ """Indicates whether the brand is set as active"""
374
+ brand_url: SortOrder
375
+ """The public URL of the brand"""
376
+ created_at: SortOrder
377
+ """Timestamp when the brand was created"""
378
+ default: SortOrder
379
+ """Indicates whether the brand is the default brand for tickets generated from non-branded channels"""
380
+ has_help_center: SortOrder
381
+ """Indicates whether the brand has a Help Center enabled"""
382
+ help_center_state: SortOrder
383
+ """The state of the Help Center, with allowed values of enabled, disabled, or restricted"""
384
+ host_mapping: SortOrder
385
+ """The host mapping configuration for the brand, visible only to administrators"""
386
+ id: SortOrder
387
+ """Unique identifier automatically assigned when the brand is created"""
388
+ is_deleted: SortOrder
389
+ """Indicates whether the brand has been deleted"""
390
+ logo: SortOrder
391
+ """Brand logo image file represented as an Attachment object"""
392
+ name: SortOrder
393
+ """The name of the brand"""
394
+ signature_template: SortOrder
395
+ """The signature template used for the brand"""
396
+ subdomain: SortOrder
397
+ """The subdomain associated with the brand"""
398
+ ticket_form_ids: SortOrder
399
+ """Array of ticket form IDs that are available for use by this brand"""
400
+ updated_at: SortOrder
401
+ """Timestamp when the brand was last updated"""
402
+ url: SortOrder
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: SortOrder
592
+ """Timestamp indicating when the group was created"""
593
+ default: SortOrder
594
+ """Indicates if the group is the default one for the account"""
595
+ deleted: SortOrder
596
+ """Indicates whether the group has been deleted"""
597
+ description: SortOrder
598
+ """The description of the group"""
599
+ id: SortOrder
600
+ """Unique identifier automatically assigned when creating groups"""
601
+ is_public: SortOrder
602
+ """Indicates if the group is public (true) or private (false)"""
603
+ name: SortOrder
604
+ """The name of the group"""
605
+ updated_at: SortOrder
606
+ """Timestamp indicating when the group was last updated"""
607
+ url: SortOrder
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: SortOrder
845
+ """Timestamp when the organization was created"""
846
+ deleted_at: SortOrder
847
+ """Timestamp when the organization was deleted"""
848
+ details: SortOrder
849
+ """Details about the organization, such as the address"""
850
+ domain_names: SortOrder
851
+ """Array of domain names associated with this organization for automatic user assignment"""
852
+ external_id: SortOrder
853
+ """Unique external identifier to associate the organization to an external record (case-insensitive)"""
854
+ group_id: SortOrder
855
+ """ID of the group where new tickets from users in this organization are automatically assigned"""
856
+ id: SortOrder
857
+ """Unique identifier automatically assigned when the organization is created"""
858
+ name: SortOrder
859
+ """Unique name for the organization (mandatory field)"""
860
+ notes: SortOrder
861
+ """Notes about the organization"""
862
+ organization_fields: SortOrder
863
+ """Key-value object for custom organization fields"""
864
+ shared_comments: SortOrder
865
+ """Boolean indicating whether end users in this organization can comment on each other's tickets"""
866
+ shared_tickets: SortOrder
867
+ """Boolean indicating whether end users in this organization can see each other's tickets"""
868
+ tags: SortOrder
869
+ """Array of tags associated with the organization"""
870
+ updated_at: SortOrder
871
+ """Timestamp of the last update to the organization"""
872
+ url: SortOrder
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: SortOrder
1086
+ """The identifier of the agent assigned to the ticket at the time the rating was submitted"""
1087
+ comment: SortOrder
1088
+ """Optional comment provided by the requester with the rating"""
1089
+ created_at: SortOrder
1090
+ """Timestamp indicating when the satisfaction rating was created"""
1091
+ group_id: SortOrder
1092
+ """The identifier of the group assigned to the ticket at the time the rating was submitted"""
1093
+ id: SortOrder
1094
+ """Unique identifier for the satisfaction rating, automatically assigned upon creation"""
1095
+ reason: SortOrder
1096
+ """Free-text reason for a bad rating provided by the requester in a follow-up question"""
1097
+ reason_id: SortOrder
1098
+ """Identifier for the predefined reason given for a negative rating, only applicable when score is '..."""
1099
+ requester_id: SortOrder
1100
+ """The identifier of the ticket requester who submitted the satisfaction rating"""
1101
+ score: SortOrder
1102
+ """The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'"""
1103
+ ticket_id: SortOrder
1104
+ """The identifier of the ticket being rated"""
1105
+ updated_at: SortOrder
1106
+ """Timestamp indicating when the satisfaction rating was last updated"""
1107
+ url: SortOrder
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: SortOrder
1241
+ """The number of times this tag has been used across resources"""
1242
+ name: SortOrder
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: SortOrder
1424
+ """Files or documents attached to the audit"""
1425
+ author_id: SortOrder
1426
+ """The unique identifier of the user who created the audit"""
1427
+ created_at: SortOrder
1428
+ """Timestamp indicating when the audit was created"""
1429
+ events: SortOrder
1430
+ """Array of events that occurred in this audit, such as field changes, comments, or tag updates"""
1431
+ id: SortOrder
1432
+ """Unique identifier for the audit record, automatically assigned when the audit is created"""
1433
+ metadata: SortOrder
1434
+ """Custom and system data associated with the audit"""
1435
+ ticket_id: SortOrder
1436
+ """The unique identifier of the ticket associated with this audit"""
1437
+ via: SortOrder
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: SortOrder
1691
+ """List of files or media attached to the comment"""
1692
+ audit_id: SortOrder
1693
+ """Identifier of the audit record associated with this comment event"""
1694
+ author_id: SortOrder
1695
+ """Identifier of the user who created the comment"""
1696
+ body: SortOrder
1697
+ """Content of the comment in its original format"""
1698
+ created_at: SortOrder
1699
+ """Timestamp when the comment was created"""
1700
+ event_type: SortOrder
1701
+ """Specific classification of the event within the ticket event stream"""
1702
+ html_body: SortOrder
1703
+ """HTML-formatted content of the comment"""
1704
+ id: SortOrder
1705
+ """Unique identifier for the comment event"""
1706
+ metadata: SortOrder
1707
+ """Additional structured information about the comment not covered by standard fields"""
1708
+ plain_body: SortOrder
1709
+ """Plain text content of the comment without formatting"""
1710
+ public: SortOrder
1711
+ """Boolean indicating whether the comment is visible to end users or is an internal note"""
1712
+ ticket_id: SortOrder
1713
+ """Identifier of the ticket to which this comment belongs"""
1714
+ timestamp: SortOrder
1715
+ """Timestamp of when the event occurred in the incremental export stream"""
1716
+ type: SortOrder
1717
+ """Type of event, typically indicating this is a comment event"""
1718
+ uploads: SortOrder
1719
+ """Array of upload tokens or identifiers for files being attached to the comment"""
1720
+ via: SortOrder
1721
+ """Channel or method through which the comment was submitted"""
1722
+ via_reference_id: SortOrder
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: SortOrder
2056
+ """Whether this field is currently available for use"""
2057
+ agent_description: SortOrder
2058
+ """A description of the ticket field that only agents can see"""
2059
+ collapsed_for_agents: SortOrder
2060
+ """If true, the field is shown to agents by default; if false, it is hidden alongside infrequently u..."""
2061
+ created_at: SortOrder
2062
+ """Timestamp when the custom ticket field was created"""
2063
+ custom_field_options: SortOrder
2064
+ """Array of option objects for custom ticket fields of type multiselect or tagger, containing name a..."""
2065
+ custom_statuses: SortOrder
2066
+ """List of customized ticket statuses, only present for system ticket fields of type custom_status"""
2067
+ description: SortOrder
2068
+ """Text describing the purpose of the ticket field to users"""
2069
+ editable_in_portal: SortOrder
2070
+ """Whether this field is editable by end users in Help Center"""
2071
+ id: SortOrder
2072
+ """Unique identifier for the ticket field, automatically assigned when created"""
2073
+ key: SortOrder
2074
+ """Internal identifier or reference key for the field"""
2075
+ position: SortOrder
2076
+ """The relative position of the ticket field on a ticket, controlling display order"""
2077
+ raw_description: SortOrder
2078
+ """The dynamic content placeholder if present, or the description value if not"""
2079
+ raw_title: SortOrder
2080
+ """The dynamic content placeholder if present, or the title value if not"""
2081
+ raw_title_in_portal: SortOrder
2082
+ """The dynamic content placeholder if present, or the title_in_portal value if not"""
2083
+ regexp_for_validation: SortOrder
2084
+ """For regexp fields only, the validation pattern for a field value to be deemed valid"""
2085
+ removable: SortOrder
2086
+ """If false, this field is a system field that must be present on all tickets"""
2087
+ required: SortOrder
2088
+ """If true, agents must enter a value in the field to change the ticket status to solved"""
2089
+ required_in_portal: SortOrder
2090
+ """If true, end users must enter a value in the field to create a request"""
2091
+ sub_type_id: SortOrder
2092
+ """For system ticket fields of type priority and status, controlling available options"""
2093
+ system_field_options: SortOrder
2094
+ """Array of options for system ticket fields of type tickettype, priority, or status"""
2095
+ tag: SortOrder
2096
+ """For checkbox fields only, a tag added to tickets when the checkbox field is selected"""
2097
+ title: SortOrder
2098
+ """The title of the ticket field displayed to agents"""
2099
+ title_in_portal: SortOrder
2100
+ """The title of the ticket field displayed to end users in Help Center"""
2101
+ type: SortOrder
2102
+ """Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger,..."""
2103
+ updated_at: SortOrder
2104
+ """Timestamp when the custom ticket field was last updated"""
2105
+ url: SortOrder
2106
+ """The API URL for this ticket field resource"""
2107
+ visible_in_portal: SortOrder
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: SortOrder
2361
+ """Indicates if the form is set as active"""
2362
+ agent_conditions: SortOrder
2363
+ """Array of condition sets for agent workspaces"""
2364
+ created_at: SortOrder
2365
+ """Timestamp when the ticket form was created"""
2366
+ default: SortOrder
2367
+ """Indicates if the form is the default form for this account"""
2368
+ display_name: SortOrder
2369
+ """The name of the form that is displayed to an end user"""
2370
+ end_user_conditions: SortOrder
2371
+ """Array of condition sets for end user products"""
2372
+ end_user_visible: SortOrder
2373
+ """Indicates if the form is visible to the end user"""
2374
+ id: SortOrder
2375
+ """Unique identifier for the ticket form, automatically assigned when creating the form"""
2376
+ in_all_brands: SortOrder
2377
+ """Indicates if the form is available for use in all brands on this account"""
2378
+ name: SortOrder
2379
+ """The name of the ticket form"""
2380
+ position: SortOrder
2381
+ """The position of this form among other forms in the account, such as in a dropdown"""
2382
+ raw_display_name: SortOrder
2383
+ """The dynamic content placeholder if present, or the display_name value if not"""
2384
+ raw_name: SortOrder
2385
+ """The dynamic content placeholder if present, or the name value if not"""
2386
+ restricted_brand_ids: SortOrder
2387
+ """IDs of all brands that this ticket form is restricted to"""
2388
+ ticket_field_ids: SortOrder
2389
+ """IDs of all ticket fields included in this ticket form, ordered to determine field display sequenc..."""
2390
+ updated_at: SortOrder
2391
+ """Timestamp of the last update to the ticket form"""
2392
+ url: SortOrder
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: SortOrder
2750
+ """Number of minutes the agent spent waiting during calendar and business hours"""
2751
+ assigned_at: SortOrder
2752
+ """Timestamp when the ticket was assigned"""
2753
+ assignee_stations: SortOrder
2754
+ """Number of assignees the ticket had"""
2755
+ assignee_updated_at: SortOrder
2756
+ """Timestamp when the assignee last updated the ticket"""
2757
+ created_at: SortOrder
2758
+ """Timestamp when the metric record was created"""
2759
+ custom_status_updated_at: SortOrder
2760
+ """Timestamp when the ticket's custom status was last updated"""
2761
+ first_resolution_time_in_minutes: SortOrder
2762
+ """Number of minutes to the first resolution time during calendar and business hours"""
2763
+ full_resolution_time_in_minutes: SortOrder
2764
+ """Number of minutes to the full resolution during calendar and business hours"""
2765
+ generated_timestamp: SortOrder
2766
+ """Timestamp of when record was last updated"""
2767
+ group_stations: SortOrder
2768
+ """Number of groups the ticket passed through"""
2769
+ id: SortOrder
2770
+ """Unique identifier for the ticket metric record"""
2771
+ initially_assigned_at: SortOrder
2772
+ """Timestamp when the ticket was initially assigned"""
2773
+ instance_id: SortOrder
2774
+ """ID of the Zendesk instance associated with the ticket"""
2775
+ latest_comment_added_at: SortOrder
2776
+ """Timestamp when the latest comment was added"""
2777
+ metric: SortOrder
2778
+ """Ticket metrics data"""
2779
+ on_hold_time_in_minutes: SortOrder
2780
+ """Number of minutes on hold"""
2781
+ reopens: SortOrder
2782
+ """Total number of times the ticket was reopened"""
2783
+ replies: SortOrder
2784
+ """The number of public replies added to a ticket by an agent"""
2785
+ reply_time_in_minutes: SortOrder
2786
+ """Number of minutes to the first reply during calendar and business hours"""
2787
+ reply_time_in_seconds: SortOrder
2788
+ """Number of seconds to the first reply during calendar hours, only available for Messaging tickets"""
2789
+ requester_updated_at: SortOrder
2790
+ """Timestamp when the requester last updated the ticket"""
2791
+ requester_wait_time_in_minutes: SortOrder
2792
+ """Number of minutes the requester spent waiting during calendar and business hours"""
2793
+ solved_at: SortOrder
2794
+ """Timestamp when the ticket was solved"""
2795
+ status: SortOrder
2796
+ """The current status of the ticket (open, pending, solved, etc.)."""
2797
+ status_updated_at: SortOrder
2798
+ """Timestamp when the status of the ticket was last updated"""
2799
+ ticket_id: SortOrder
2800
+ """Identifier of the associated ticket"""
2801
+ time: SortOrder
2802
+ """Time related to the ticket"""
2803
+ type: SortOrder
2804
+ """Type of ticket"""
2805
+ updated_at: SortOrder
2806
+ """Timestamp when the metric record was last updated"""
2807
+ url: SortOrder
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: SortOrder
3245
+ """Boolean indicating whether attachments are allowed on the ticket"""
3246
+ allow_channelback: SortOrder
3247
+ """Boolean indicating whether agents can reply to the ticket through the original channel"""
3248
+ assignee_id: SortOrder
3249
+ """Unique identifier of the agent currently assigned to the ticket"""
3250
+ brand_id: SortOrder
3251
+ """Unique identifier of the brand associated with the ticket in multi-brand accounts"""
3252
+ collaborator_ids: SortOrder
3253
+ """Array of user identifiers who are collaborating on the ticket"""
3254
+ created_at: SortOrder
3255
+ """Timestamp indicating when the ticket was created"""
3256
+ custom_fields: SortOrder
3257
+ """Array of custom field values specific to the account's ticket configuration"""
3258
+ custom_status_id: SortOrder
3259
+ """Unique identifier of the custom status applied to the ticket"""
3260
+ deleted_ticket_form_id: SortOrder
3261
+ """Unique identifier of the ticket form if it was deleted after the ticket was created"""
3262
+ description: SortOrder
3263
+ """Initial description or content of the ticket when it was created"""
3264
+ due_at: SortOrder
3265
+ """Timestamp indicating when the ticket is due for completion or resolution"""
3266
+ email_cc_ids: SortOrder
3267
+ """Array of user identifiers who are CC'd on ticket email notifications"""
3268
+ external_id: SortOrder
3269
+ """External identifier for the ticket, used for integrations with other systems"""
3270
+ fields: SortOrder
3271
+ """Array of ticket field values including both system and custom fields"""
3272
+ follower_ids: SortOrder
3273
+ """Array of user identifiers who are following the ticket for updates"""
3274
+ followup_ids: SortOrder
3275
+ """Array of identifiers for follow-up tickets related to this ticket"""
3276
+ forum_topic_id: SortOrder
3277
+ """Unique identifier linking the ticket to a forum topic if applicable"""
3278
+ from_messaging_channel: SortOrder
3279
+ """Boolean indicating whether the ticket originated from a messaging channel"""
3280
+ generated_timestamp: SortOrder
3281
+ """Timestamp updated for all ticket updates including system changes, used for incremental export co..."""
3282
+ group_id: SortOrder
3283
+ """Unique identifier of the agent group assigned to handle the ticket"""
3284
+ has_incidents: SortOrder
3285
+ """Boolean indicating whether this problem ticket has related incident tickets"""
3286
+ id: SortOrder
3287
+ """Unique identifier for the ticket"""
3288
+ is_public: SortOrder
3289
+ """Boolean indicating whether the ticket is publicly visible"""
3290
+ organization_id: SortOrder
3291
+ """Unique identifier of the organization associated with the ticket"""
3292
+ priority: SortOrder
3293
+ """Priority level assigned to the ticket (e.g., urgent, high, normal, low)"""
3294
+ problem_id: SortOrder
3295
+ """Unique identifier of the problem ticket if this is an incident ticket"""
3296
+ raw_subject: SortOrder
3297
+ """Original unprocessed subject line before any system modifications"""
3298
+ recipient: SortOrder
3299
+ """Email address or identifier of the ticket recipient"""
3300
+ requester_id: SortOrder
3301
+ """Unique identifier of the user who requested or created the ticket"""
3302
+ satisfaction_rating: SortOrder
3303
+ """Object containing customer satisfaction rating data for the ticket"""
3304
+ sharing_agreement_ids: SortOrder
3305
+ """Array of sharing agreement identifiers if the ticket is shared across Zendesk instances"""
3306
+ status: SortOrder
3307
+ """Current status of the ticket (e.g., new, open, pending, solved, closed)"""
3308
+ subject: SortOrder
3309
+ """Subject line of the ticket describing the issue or request"""
3310
+ submitter_id: SortOrder
3311
+ """Unique identifier of the user who submitted the ticket on behalf of the requester"""
3312
+ tags: SortOrder
3313
+ """Array of tags applied to the ticket for categorization and filtering"""
3314
+ ticket_form_id: SortOrder
3315
+ """Unique identifier of the ticket form used when creating the ticket"""
3316
+ type: SortOrder
3317
+ """Type of ticket (e.g., problem, incident, question, task)"""
3318
+ updated_at: SortOrder
3319
+ """Timestamp indicating when the ticket was last updated with a ticket event"""
3320
+ url: SortOrder
3321
+ """API URL to access the full ticket resource"""
3322
+ via: SortOrder
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: SortOrder
3752
+ """Indicates if the user account is currently active"""
3753
+ alias: SortOrder
3754
+ """Alternative name or nickname for the user"""
3755
+ chat_only: SortOrder
3756
+ """Indicates if the user can only interact via chat"""
3757
+ created_at: SortOrder
3758
+ """Timestamp indicating when the user was created"""
3759
+ custom_role_id: SortOrder
3760
+ """Identifier for a custom role assigned to the user"""
3761
+ default_group_id: SortOrder
3762
+ """Identifier of the default group assigned to the user"""
3763
+ details: SortOrder
3764
+ """Additional descriptive information about the user"""
3765
+ email: SortOrder
3766
+ """Email address of the user"""
3767
+ external_id: SortOrder
3768
+ """External system identifier for the user, used for integrations"""
3769
+ iana_time_zone: SortOrder
3770
+ """IANA standard time zone identifier for the user"""
3771
+ id: SortOrder
3772
+ """Unique identifier for the user"""
3773
+ last_login_at: SortOrder
3774
+ """Timestamp of the user's most recent login"""
3775
+ locale: SortOrder
3776
+ """Locale setting determining language and regional format preferences"""
3777
+ locale_id: SortOrder
3778
+ """Identifier for the user's locale preference"""
3779
+ moderator: SortOrder
3780
+ """Indicates if the user has moderator privileges"""
3781
+ name: SortOrder
3782
+ """Display name of the user"""
3783
+ notes: SortOrder
3784
+ """Internal notes about the user, visible only to agents"""
3785
+ only_private_comments: SortOrder
3786
+ """Indicates if the user can only make private comments on tickets"""
3787
+ organization_id: SortOrder
3788
+ """Identifier of the organization the user belongs to"""
3789
+ permanently_deleted: SortOrder
3790
+ """Indicates if the user has been permanently deleted from the system"""
3791
+ phone: SortOrder
3792
+ """Phone number of the user"""
3793
+ photo: SortOrder
3794
+ """Profile photo or avatar of the user"""
3795
+ report_csv: SortOrder
3796
+ """Indicates if the user receives reports in CSV format"""
3797
+ restricted_agent: SortOrder
3798
+ """Indicates if the agent has restricted access permissions"""
3799
+ role: SortOrder
3800
+ """Role assigned to the user defining their permissions level"""
3801
+ role_type: SortOrder
3802
+ """Type classification of the user's role"""
3803
+ shared: SortOrder
3804
+ """Indicates if the user is shared across multiple accounts"""
3805
+ shared_agent: SortOrder
3806
+ """Indicates if the user is a shared agent across multiple brands or accounts"""
3807
+ shared_phone_number: SortOrder
3808
+ """Indicates if the phone number is shared with other users"""
3809
+ signature: SortOrder
3810
+ """Email signature text for the user"""
3811
+ suspended: SortOrder
3812
+ """Indicates if the user account is suspended"""
3813
+ tags: SortOrder
3814
+ """Labels or tags associated with the user for categorization"""
3815
+ ticket_restriction: SortOrder
3816
+ """Defines which tickets the user can access based on restrictions"""
3817
+ time_zone: SortOrder
3818
+ """Time zone setting for the user"""
3819
+ two_factor_auth_enabled: SortOrder
3820
+ """Indicates if two-factor authentication is enabled for the user"""
3821
+ updated_at: SortOrder
3822
+ """Timestamp indicating when the user was last updated"""
3823
+ url: SortOrder
3824
+ """API endpoint URL for accessing the user's detailed information"""
3825
+ user_fields: SortOrder
3826
+ """Custom field values specific to the user, stored as key-value pairs"""
3827
+ verified: SortOrder
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 SearchParams(TypedDict, total=False):
3928
+ """Parameters for 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]]