airbyte-agent-zendesk-support 0.18.57__py3-none-any.whl → 0.18.61__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py +84 -0
- airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py +3 -1
- airbyte_agent_zendesk_support/_vendored/connector_sdk/introspection.py +222 -10
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py +34 -2
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/components.py +5 -0
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/extensions.py +71 -0
- airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py +1 -0
- airbyte_agent_zendesk_support/connector.py +101 -39
- airbyte_agent_zendesk_support/connector_model.py +287 -1
- airbyte_agent_zendesk_support/models.py +7 -7
- airbyte_agent_zendesk_support/types.py +35 -35
- {airbyte_agent_zendesk_support-0.18.57.dist-info → airbyte_agent_zendesk_support-0.18.61.dist-info}/METADATA +7 -6
- {airbyte_agent_zendesk_support-0.18.57.dist-info → airbyte_agent_zendesk_support-0.18.61.dist-info}/RECORD +14 -14
- {airbyte_agent_zendesk_support-0.18.57.dist-info → airbyte_agent_zendesk_support-0.18.61.dist-info}/WHEEL +0 -0
|
@@ -4,8 +4,11 @@ Zendesk-Support connector.
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
+
import inspect
|
|
8
|
+
import json
|
|
7
9
|
import logging
|
|
8
|
-
from
|
|
10
|
+
from functools import wraps
|
|
11
|
+
from typing import TYPE_CHECKING, Any, Callable, Mapping, TypeVar, AsyncIterator, overload
|
|
9
12
|
try:
|
|
10
13
|
from typing import Literal
|
|
11
14
|
except ImportError:
|
|
@@ -162,6 +165,38 @@ from .models import (
|
|
|
162
165
|
# TypeVar for decorator type preservation
|
|
163
166
|
_F = TypeVar("_F", bound=Callable[..., Any])
|
|
164
167
|
|
|
168
|
+
DEFAULT_MAX_OUTPUT_CHARS = 50_000 # ~50KB default, configurable per-tool
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def _raise_output_too_large(message: str) -> None:
|
|
172
|
+
try:
|
|
173
|
+
from pydantic_ai import ModelRetry # type: ignore[import-not-found]
|
|
174
|
+
except Exception as exc:
|
|
175
|
+
raise RuntimeError(message) from exc
|
|
176
|
+
raise ModelRetry(message)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def _check_output_size(result: Any, max_chars: int | None, tool_name: str) -> Any:
|
|
180
|
+
if max_chars is None or max_chars <= 0:
|
|
181
|
+
return result
|
|
182
|
+
|
|
183
|
+
try:
|
|
184
|
+
serialized = json.dumps(result, default=str)
|
|
185
|
+
except (TypeError, ValueError):
|
|
186
|
+
return result
|
|
187
|
+
|
|
188
|
+
if len(serialized) > max_chars:
|
|
189
|
+
truncated_preview = serialized[:500] + "..." if len(serialized) > 500 else serialized
|
|
190
|
+
_raise_output_too_large(
|
|
191
|
+
f"Tool '{tool_name}' output too large ({len(serialized):,} chars, limit {max_chars:,}). "
|
|
192
|
+
"Please narrow your query by: using the 'fields' parameter to select only needed fields, "
|
|
193
|
+
"adding filters, or reducing the 'limit'. "
|
|
194
|
+
f"Preview: {truncated_preview}"
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
return result
|
|
198
|
+
|
|
199
|
+
|
|
165
200
|
|
|
166
201
|
|
|
167
202
|
class ZendeskSupportConnector:
|
|
@@ -172,7 +207,7 @@ class ZendeskSupportConnector:
|
|
|
172
207
|
"""
|
|
173
208
|
|
|
174
209
|
connector_name = "zendesk-support"
|
|
175
|
-
connector_version = "0.1.
|
|
210
|
+
connector_version = "0.1.8"
|
|
176
211
|
vendored_sdk_version = "0.1.0" # Version of vendored connector-sdk
|
|
177
212
|
|
|
178
213
|
# Map of (entity, action) -> needs_envelope for envelope wrapping decision
|
|
@@ -704,15 +739,15 @@ class ZendeskSupportConnector:
|
|
|
704
739
|
async def execute(
|
|
705
740
|
self,
|
|
706
741
|
entity: str,
|
|
707
|
-
action:
|
|
708
|
-
params:
|
|
742
|
+
action: Literal["list", "get", "download", "search"],
|
|
743
|
+
params: Mapping[str, Any]
|
|
709
744
|
) -> ZendeskSupportExecuteResult[Any] | ZendeskSupportExecuteResultWithMeta[Any, Any] | Any: ...
|
|
710
745
|
|
|
711
746
|
async def execute(
|
|
712
747
|
self,
|
|
713
748
|
entity: str,
|
|
714
|
-
action:
|
|
715
|
-
params:
|
|
749
|
+
action: Literal["list", "get", "download", "search"],
|
|
750
|
+
params: Mapping[str, Any] | None = None
|
|
716
751
|
) -> Any:
|
|
717
752
|
"""
|
|
718
753
|
Execute an entity operation with full type safety.
|
|
@@ -740,16 +775,17 @@ class ZendeskSupportConnector:
|
|
|
740
775
|
from ._vendored.connector_sdk.executor import ExecutionConfig
|
|
741
776
|
|
|
742
777
|
# Remap parameter names from snake_case (TypedDict keys) to API parameter names
|
|
743
|
-
if params
|
|
778
|
+
resolved_params = dict(params) if params is not None else None
|
|
779
|
+
if resolved_params:
|
|
744
780
|
param_map = self._PARAM_MAP.get((entity, action), {})
|
|
745
781
|
if param_map:
|
|
746
|
-
|
|
782
|
+
resolved_params = {param_map.get(k, k): v for k, v in resolved_params.items()}
|
|
747
783
|
|
|
748
784
|
# Use ExecutionConfig for both local and hosted executors
|
|
749
785
|
config = ExecutionConfig(
|
|
750
786
|
entity=entity,
|
|
751
787
|
action=action,
|
|
752
|
-
params=
|
|
788
|
+
params=resolved_params
|
|
753
789
|
)
|
|
754
790
|
|
|
755
791
|
result = await self._executor.execute(config)
|
|
@@ -776,41 +812,67 @@ class ZendeskSupportConnector:
|
|
|
776
812
|
# ===== INTROSPECTION METHODS =====
|
|
777
813
|
|
|
778
814
|
@classmethod
|
|
779
|
-
def
|
|
815
|
+
def tool_utils(
|
|
816
|
+
cls,
|
|
817
|
+
func: _F | None = None,
|
|
818
|
+
*,
|
|
819
|
+
update_docstring: bool = True,
|
|
820
|
+
max_output_chars: int | None = DEFAULT_MAX_OUTPUT_CHARS,
|
|
821
|
+
) -> _F | Callable[[_F], _F]:
|
|
780
822
|
"""
|
|
781
|
-
Decorator that
|
|
782
|
-
|
|
783
|
-
This class method can be used as a decorator to automatically generate
|
|
784
|
-
comprehensive documentation for AI tool functions.
|
|
823
|
+
Decorator that adds tool utilities like docstring augmentation and output limits.
|
|
785
824
|
|
|
786
825
|
Usage:
|
|
787
826
|
@mcp.tool()
|
|
788
|
-
@ZendeskSupportConnector.
|
|
827
|
+
@ZendeskSupportConnector.tool_utils
|
|
789
828
|
async def execute(entity: str, action: str, params: dict):
|
|
790
|
-
'''Execute operations.'''
|
|
791
829
|
...
|
|
792
830
|
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
- Example questions (if available in OpenAPI spec)
|
|
831
|
+
@mcp.tool()
|
|
832
|
+
@ZendeskSupportConnector.tool_utils(update_docstring=False, max_output_chars=None)
|
|
833
|
+
async def execute(entity: str, action: str, params: dict):
|
|
834
|
+
...
|
|
798
835
|
|
|
799
836
|
Args:
|
|
800
|
-
|
|
837
|
+
update_docstring: When True, append connector capabilities to __doc__.
|
|
838
|
+
max_output_chars: Max serialized output size before raising. Use None to disable.
|
|
839
|
+
"""
|
|
840
|
+
|
|
841
|
+
def decorate(inner: _F) -> _F:
|
|
842
|
+
if update_docstring:
|
|
843
|
+
description = generate_tool_description(ZendeskSupportConnectorModel)
|
|
844
|
+
original_doc = inner.__doc__ or ""
|
|
845
|
+
if original_doc.strip():
|
|
846
|
+
full_doc = f"{original_doc.strip()}\n{description}"
|
|
847
|
+
else:
|
|
848
|
+
full_doc = description
|
|
849
|
+
else:
|
|
850
|
+
full_doc = ""
|
|
801
851
|
|
|
802
|
-
|
|
803
|
-
The same function with updated __doc__
|
|
804
|
-
"""
|
|
805
|
-
description = generate_tool_description(ZendeskSupportConnectorModel)
|
|
852
|
+
if inspect.iscoroutinefunction(inner):
|
|
806
853
|
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
854
|
+
@wraps(inner)
|
|
855
|
+
async def aw(*args: Any, **kwargs: Any) -> Any:
|
|
856
|
+
result = await inner(*args, **kwargs)
|
|
857
|
+
return _check_output_size(result, max_output_chars, inner.__name__)
|
|
858
|
+
|
|
859
|
+
wrapped = aw
|
|
860
|
+
else:
|
|
861
|
+
|
|
862
|
+
@wraps(inner)
|
|
863
|
+
def sw(*args: Any, **kwargs: Any) -> Any:
|
|
864
|
+
result = inner(*args, **kwargs)
|
|
865
|
+
return _check_output_size(result, max_output_chars, inner.__name__)
|
|
866
|
+
|
|
867
|
+
wrapped = sw
|
|
868
|
+
|
|
869
|
+
if update_docstring:
|
|
870
|
+
wrapped.__doc__ = full_doc
|
|
871
|
+
return wrapped # type: ignore[return-value]
|
|
812
872
|
|
|
813
|
-
|
|
873
|
+
if func is not None:
|
|
874
|
+
return decorate(func)
|
|
875
|
+
return decorate
|
|
814
876
|
|
|
815
877
|
def list_entities(self) -> list[dict[str, Any]]:
|
|
816
878
|
"""
|
|
@@ -948,7 +1010,7 @@ class TicketsQuery:
|
|
|
948
1010
|
- created_at: Timestamp indicating when the ticket was created
|
|
949
1011
|
- custom_fields: Array of custom field values specific to the account's ticket configuration
|
|
950
1012
|
- custom_status_id: Unique identifier of the custom status applied to the ticket
|
|
951
|
-
- deleted_ticket_form_id:
|
|
1013
|
+
- deleted_ticket_form_id: The ID of the ticket form that was previously associated with this ticket but has since been deleted
|
|
952
1014
|
- description: Initial description or content of the ticket when it was created
|
|
953
1015
|
- due_at: Timestamp indicating when the ticket is due for completion or resolution
|
|
954
1016
|
- email_cc_ids: Array of user identifiers who are CC'd on ticket email notifications
|
|
@@ -958,7 +1020,7 @@ class TicketsQuery:
|
|
|
958
1020
|
- followup_ids: Array of identifiers for follow-up tickets related to this ticket
|
|
959
1021
|
- forum_topic_id: Unique identifier linking the ticket to a forum topic if applicable
|
|
960
1022
|
- from_messaging_channel: Boolean indicating whether the ticket originated from a messaging channel
|
|
961
|
-
- generated_timestamp: Timestamp updated for all ticket updates including system changes, used for incremental export
|
|
1023
|
+
- generated_timestamp: Timestamp updated for all ticket updates including system changes, used for incremental export
|
|
962
1024
|
- group_id: Unique identifier of the agent group assigned to handle the ticket
|
|
963
1025
|
- has_incidents: Boolean indicating whether this problem ticket has related incident tickets
|
|
964
1026
|
- id: Unique identifier for the ticket
|
|
@@ -1982,9 +2044,9 @@ class TicketFieldsQuery:
|
|
|
1982
2044
|
Available filter fields (TicketFieldsSearchFilter):
|
|
1983
2045
|
- active: Whether this field is currently available for use
|
|
1984
2046
|
- agent_description: A description of the ticket field that only agents can see
|
|
1985
|
-
- collapsed_for_agents: If true, the field is shown to agents by default; if false, it is hidden alongside infrequently
|
|
2047
|
+
- collapsed_for_agents: If true, the field is shown to agents by default; if false, it is hidden alongside infrequently used fields
|
|
1986
2048
|
- created_at: Timestamp when the custom ticket field was created
|
|
1987
|
-
- custom_field_options: Array of option objects for custom ticket fields of type multiselect or tagger
|
|
2049
|
+
- custom_field_options: Array of option objects for custom ticket fields of type multiselect or tagger
|
|
1988
2050
|
- custom_statuses: List of customized ticket statuses, only present for system ticket fields of type custom_status
|
|
1989
2051
|
- description: Text describing the purpose of the ticket field to users
|
|
1990
2052
|
- editable_in_portal: Whether this field is editable by end users in Help Center
|
|
@@ -2003,7 +2065,7 @@ class TicketFieldsQuery:
|
|
|
2003
2065
|
- tag: For checkbox fields only, a tag added to tickets when the checkbox field is selected
|
|
2004
2066
|
- title: The title of the ticket field displayed to agents
|
|
2005
2067
|
- title_in_portal: The title of the ticket field displayed to end users in Help Center
|
|
2006
|
-
- type: Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger
|
|
2068
|
+
- type: Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, or tagger
|
|
2007
2069
|
- updated_at: Timestamp when the custom ticket field was last updated
|
|
2008
2070
|
- url: The API URL for this ticket field resource
|
|
2009
2071
|
- visible_in_portal: Whether this field is visible to end users in Help Center
|
|
@@ -2666,7 +2728,7 @@ class SatisfactionRatingsQuery:
|
|
|
2666
2728
|
- group_id: The identifier of the group assigned to the ticket at the time the rating was submitted
|
|
2667
2729
|
- id: Unique identifier for the satisfaction rating, automatically assigned upon creation
|
|
2668
2730
|
- reason: Free-text reason for a bad rating provided by the requester in a follow-up question
|
|
2669
|
-
- reason_id: Identifier for the predefined reason given for a negative rating
|
|
2731
|
+
- reason_id: Identifier for the predefined reason given for a negative rating
|
|
2670
2732
|
- requester_id: The identifier of the ticket requester who submitted the satisfaction rating
|
|
2671
2733
|
- score: The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'
|
|
2672
2734
|
- ticket_id: The identifier of the ticket being rated
|
|
@@ -2947,7 +3009,7 @@ class TicketFormsQuery:
|
|
|
2947
3009
|
- raw_display_name: The dynamic content placeholder if present, or the display_name value if not
|
|
2948
3010
|
- raw_name: The dynamic content placeholder if present, or the name value if not
|
|
2949
3011
|
- restricted_brand_ids: IDs of all brands that this ticket form is restricted to
|
|
2950
|
-
- ticket_field_ids: IDs of all ticket fields included in this ticket form
|
|
3012
|
+
- ticket_field_ids: IDs of all ticket fields included in this ticket form
|
|
2951
3013
|
- updated_at: Timestamp of the last update to the ticket form
|
|
2952
3014
|
- url: URL of the ticket form
|
|
2953
3015
|
|
|
@@ -30,7 +30,7 @@ from uuid import (
|
|
|
30
30
|
ZendeskSupportConnectorModel: ConnectorModel = ConnectorModel(
|
|
31
31
|
id=UUID('79c1aa37-dae3-42ae-b333-d1c105477715'),
|
|
32
32
|
name='zendesk-support',
|
|
33
|
-
version='0.1.
|
|
33
|
+
version='0.1.8',
|
|
34
34
|
base_url='https://{subdomain}.zendesk.com/api/v2',
|
|
35
35
|
auth=AuthConfig(
|
|
36
36
|
options=[
|
|
@@ -3945,4 +3945,290 @@ ZendeskSupportConnectorModel: ConnectorModel = ConnectorModel(
|
|
|
3945
3945
|
},
|
|
3946
3946
|
),
|
|
3947
3947
|
],
|
|
3948
|
+
search_field_paths={
|
|
3949
|
+
'brands': [
|
|
3950
|
+
'active',
|
|
3951
|
+
'brand_url',
|
|
3952
|
+
'created_at',
|
|
3953
|
+
'default',
|
|
3954
|
+
'has_help_center',
|
|
3955
|
+
'help_center_state',
|
|
3956
|
+
'host_mapping',
|
|
3957
|
+
'id',
|
|
3958
|
+
'is_deleted',
|
|
3959
|
+
'logo',
|
|
3960
|
+
'name',
|
|
3961
|
+
'signature_template',
|
|
3962
|
+
'subdomain',
|
|
3963
|
+
'ticket_form_ids',
|
|
3964
|
+
'ticket_form_ids[]',
|
|
3965
|
+
'updated_at',
|
|
3966
|
+
'url',
|
|
3967
|
+
],
|
|
3968
|
+
'groups': [
|
|
3969
|
+
'created_at',
|
|
3970
|
+
'default',
|
|
3971
|
+
'deleted',
|
|
3972
|
+
'description',
|
|
3973
|
+
'id',
|
|
3974
|
+
'is_public',
|
|
3975
|
+
'name',
|
|
3976
|
+
'updated_at',
|
|
3977
|
+
'url',
|
|
3978
|
+
],
|
|
3979
|
+
'organizations': [
|
|
3980
|
+
'created_at',
|
|
3981
|
+
'deleted_at',
|
|
3982
|
+
'details',
|
|
3983
|
+
'domain_names',
|
|
3984
|
+
'domain_names[]',
|
|
3985
|
+
'external_id',
|
|
3986
|
+
'group_id',
|
|
3987
|
+
'id',
|
|
3988
|
+
'name',
|
|
3989
|
+
'notes',
|
|
3990
|
+
'organization_fields',
|
|
3991
|
+
'shared_comments',
|
|
3992
|
+
'shared_tickets',
|
|
3993
|
+
'tags',
|
|
3994
|
+
'tags[]',
|
|
3995
|
+
'updated_at',
|
|
3996
|
+
'url',
|
|
3997
|
+
],
|
|
3998
|
+
'satisfaction_ratings': [
|
|
3999
|
+
'assignee_id',
|
|
4000
|
+
'comment',
|
|
4001
|
+
'created_at',
|
|
4002
|
+
'group_id',
|
|
4003
|
+
'id',
|
|
4004
|
+
'reason',
|
|
4005
|
+
'reason_id',
|
|
4006
|
+
'requester_id',
|
|
4007
|
+
'score',
|
|
4008
|
+
'ticket_id',
|
|
4009
|
+
'updated_at',
|
|
4010
|
+
'url',
|
|
4011
|
+
],
|
|
4012
|
+
'tags': ['count', 'name'],
|
|
4013
|
+
'ticket_audits': [
|
|
4014
|
+
'attachments',
|
|
4015
|
+
'attachments[]',
|
|
4016
|
+
'author_id',
|
|
4017
|
+
'created_at',
|
|
4018
|
+
'events',
|
|
4019
|
+
'events[]',
|
|
4020
|
+
'id',
|
|
4021
|
+
'metadata',
|
|
4022
|
+
'ticket_id',
|
|
4023
|
+
'via',
|
|
4024
|
+
],
|
|
4025
|
+
'ticket_comments': [
|
|
4026
|
+
'attachments',
|
|
4027
|
+
'attachments[]',
|
|
4028
|
+
'audit_id',
|
|
4029
|
+
'author_id',
|
|
4030
|
+
'body',
|
|
4031
|
+
'created_at',
|
|
4032
|
+
'event_type',
|
|
4033
|
+
'html_body',
|
|
4034
|
+
'id',
|
|
4035
|
+
'metadata',
|
|
4036
|
+
'plain_body',
|
|
4037
|
+
'public',
|
|
4038
|
+
'ticket_id',
|
|
4039
|
+
'timestamp',
|
|
4040
|
+
'type',
|
|
4041
|
+
'uploads',
|
|
4042
|
+
'uploads[]',
|
|
4043
|
+
'via',
|
|
4044
|
+
'via_reference_id',
|
|
4045
|
+
],
|
|
4046
|
+
'ticket_fields': [
|
|
4047
|
+
'active',
|
|
4048
|
+
'agent_description',
|
|
4049
|
+
'collapsed_for_agents',
|
|
4050
|
+
'created_at',
|
|
4051
|
+
'custom_field_options',
|
|
4052
|
+
'custom_field_options[]',
|
|
4053
|
+
'custom_statuses',
|
|
4054
|
+
'custom_statuses[]',
|
|
4055
|
+
'description',
|
|
4056
|
+
'editable_in_portal',
|
|
4057
|
+
'id',
|
|
4058
|
+
'key',
|
|
4059
|
+
'position',
|
|
4060
|
+
'raw_description',
|
|
4061
|
+
'raw_title',
|
|
4062
|
+
'raw_title_in_portal',
|
|
4063
|
+
'regexp_for_validation',
|
|
4064
|
+
'removable',
|
|
4065
|
+
'required',
|
|
4066
|
+
'required_in_portal',
|
|
4067
|
+
'sub_type_id',
|
|
4068
|
+
'system_field_options',
|
|
4069
|
+
'system_field_options[]',
|
|
4070
|
+
'tag',
|
|
4071
|
+
'title',
|
|
4072
|
+
'title_in_portal',
|
|
4073
|
+
'type',
|
|
4074
|
+
'updated_at',
|
|
4075
|
+
'url',
|
|
4076
|
+
'visible_in_portal',
|
|
4077
|
+
],
|
|
4078
|
+
'ticket_forms': [
|
|
4079
|
+
'active',
|
|
4080
|
+
'agent_conditions',
|
|
4081
|
+
'agent_conditions[]',
|
|
4082
|
+
'created_at',
|
|
4083
|
+
'default',
|
|
4084
|
+
'display_name',
|
|
4085
|
+
'end_user_conditions',
|
|
4086
|
+
'end_user_conditions[]',
|
|
4087
|
+
'end_user_visible',
|
|
4088
|
+
'id',
|
|
4089
|
+
'in_all_brands',
|
|
4090
|
+
'name',
|
|
4091
|
+
'position',
|
|
4092
|
+
'raw_display_name',
|
|
4093
|
+
'raw_name',
|
|
4094
|
+
'restricted_brand_ids',
|
|
4095
|
+
'restricted_brand_ids[]',
|
|
4096
|
+
'ticket_field_ids',
|
|
4097
|
+
'ticket_field_ids[]',
|
|
4098
|
+
'updated_at',
|
|
4099
|
+
'url',
|
|
4100
|
+
],
|
|
4101
|
+
'ticket_metric_events': [
|
|
4102
|
+
'id',
|
|
4103
|
+
'instance_id',
|
|
4104
|
+
'metric',
|
|
4105
|
+
'ticket_id',
|
|
4106
|
+
'time',
|
|
4107
|
+
'type',
|
|
4108
|
+
],
|
|
4109
|
+
'ticket_metrics': [
|
|
4110
|
+
'agent_wait_time_in_minutes',
|
|
4111
|
+
'assigned_at',
|
|
4112
|
+
'assignee_stations',
|
|
4113
|
+
'assignee_updated_at',
|
|
4114
|
+
'created_at',
|
|
4115
|
+
'custom_status_updated_at',
|
|
4116
|
+
'first_resolution_time_in_minutes',
|
|
4117
|
+
'full_resolution_time_in_minutes',
|
|
4118
|
+
'generated_timestamp',
|
|
4119
|
+
'group_stations',
|
|
4120
|
+
'id',
|
|
4121
|
+
'initially_assigned_at',
|
|
4122
|
+
'instance_id',
|
|
4123
|
+
'latest_comment_added_at',
|
|
4124
|
+
'metric',
|
|
4125
|
+
'on_hold_time_in_minutes',
|
|
4126
|
+
'reopens',
|
|
4127
|
+
'replies',
|
|
4128
|
+
'reply_time_in_minutes',
|
|
4129
|
+
'reply_time_in_seconds',
|
|
4130
|
+
'requester_updated_at',
|
|
4131
|
+
'requester_wait_time_in_minutes',
|
|
4132
|
+
'solved_at',
|
|
4133
|
+
'status',
|
|
4134
|
+
'status_updated_at',
|
|
4135
|
+
'ticket_id',
|
|
4136
|
+
'time',
|
|
4137
|
+
'type',
|
|
4138
|
+
'updated_at',
|
|
4139
|
+
'url',
|
|
4140
|
+
],
|
|
4141
|
+
'tickets': [
|
|
4142
|
+
'allow_attachments',
|
|
4143
|
+
'allow_channelback',
|
|
4144
|
+
'assignee_id',
|
|
4145
|
+
'brand_id',
|
|
4146
|
+
'collaborator_ids',
|
|
4147
|
+
'collaborator_ids[]',
|
|
4148
|
+
'created_at',
|
|
4149
|
+
'custom_fields',
|
|
4150
|
+
'custom_fields[]',
|
|
4151
|
+
'custom_status_id',
|
|
4152
|
+
'deleted_ticket_form_id',
|
|
4153
|
+
'description',
|
|
4154
|
+
'due_at',
|
|
4155
|
+
'email_cc_ids',
|
|
4156
|
+
'email_cc_ids[]',
|
|
4157
|
+
'external_id',
|
|
4158
|
+
'fields',
|
|
4159
|
+
'fields[]',
|
|
4160
|
+
'follower_ids',
|
|
4161
|
+
'follower_ids[]',
|
|
4162
|
+
'followup_ids',
|
|
4163
|
+
'followup_ids[]',
|
|
4164
|
+
'forum_topic_id',
|
|
4165
|
+
'from_messaging_channel',
|
|
4166
|
+
'generated_timestamp',
|
|
4167
|
+
'group_id',
|
|
4168
|
+
'has_incidents',
|
|
4169
|
+
'id',
|
|
4170
|
+
'is_public',
|
|
4171
|
+
'organization_id',
|
|
4172
|
+
'priority',
|
|
4173
|
+
'problem_id',
|
|
4174
|
+
'raw_subject',
|
|
4175
|
+
'recipient',
|
|
4176
|
+
'requester_id',
|
|
4177
|
+
'satisfaction_rating',
|
|
4178
|
+
'sharing_agreement_ids',
|
|
4179
|
+
'sharing_agreement_ids[]',
|
|
4180
|
+
'status',
|
|
4181
|
+
'subject',
|
|
4182
|
+
'submitter_id',
|
|
4183
|
+
'tags',
|
|
4184
|
+
'tags[]',
|
|
4185
|
+
'ticket_form_id',
|
|
4186
|
+
'type',
|
|
4187
|
+
'updated_at',
|
|
4188
|
+
'url',
|
|
4189
|
+
'via',
|
|
4190
|
+
],
|
|
4191
|
+
'users': [
|
|
4192
|
+
'active',
|
|
4193
|
+
'alias',
|
|
4194
|
+
'chat_only',
|
|
4195
|
+
'created_at',
|
|
4196
|
+
'custom_role_id',
|
|
4197
|
+
'default_group_id',
|
|
4198
|
+
'details',
|
|
4199
|
+
'email',
|
|
4200
|
+
'external_id',
|
|
4201
|
+
'iana_time_zone',
|
|
4202
|
+
'id',
|
|
4203
|
+
'last_login_at',
|
|
4204
|
+
'locale',
|
|
4205
|
+
'locale_id',
|
|
4206
|
+
'moderator',
|
|
4207
|
+
'name',
|
|
4208
|
+
'notes',
|
|
4209
|
+
'only_private_comments',
|
|
4210
|
+
'organization_id',
|
|
4211
|
+
'permanently_deleted',
|
|
4212
|
+
'phone',
|
|
4213
|
+
'photo',
|
|
4214
|
+
'report_csv',
|
|
4215
|
+
'restricted_agent',
|
|
4216
|
+
'role',
|
|
4217
|
+
'role_type',
|
|
4218
|
+
'shared',
|
|
4219
|
+
'shared_agent',
|
|
4220
|
+
'shared_phone_number',
|
|
4221
|
+
'signature',
|
|
4222
|
+
'suspended',
|
|
4223
|
+
'tags',
|
|
4224
|
+
'tags[]',
|
|
4225
|
+
'ticket_restriction',
|
|
4226
|
+
'time_zone',
|
|
4227
|
+
'two_factor_auth_enabled',
|
|
4228
|
+
'updated_at',
|
|
4229
|
+
'url',
|
|
4230
|
+
'user_fields',
|
|
4231
|
+
'verified',
|
|
4232
|
+
],
|
|
4233
|
+
},
|
|
3948
4234
|
)
|
|
@@ -789,7 +789,7 @@ class SatisfactionRatingsSearchData(BaseModel):
|
|
|
789
789
|
reason: str | None = None
|
|
790
790
|
"""Free-text reason for a bad rating provided by the requester in a follow-up question"""
|
|
791
791
|
reason_id: int | None = None
|
|
792
|
-
"""Identifier for the predefined reason given for a negative rating
|
|
792
|
+
"""Identifier for the predefined reason given for a negative rating"""
|
|
793
793
|
requester_id: int | None = None
|
|
794
794
|
"""The identifier of the ticket requester who submitted the satisfaction rating"""
|
|
795
795
|
score: str | None = None
|
|
@@ -883,11 +883,11 @@ class TicketFieldsSearchData(BaseModel):
|
|
|
883
883
|
agent_description: str | None = None
|
|
884
884
|
"""A description of the ticket field that only agents can see"""
|
|
885
885
|
collapsed_for_agents: bool | None = None
|
|
886
|
-
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently
|
|
886
|
+
"""If true, the field is shown to agents by default; if false, it is hidden alongside infrequently used fields"""
|
|
887
887
|
created_at: str | None = None
|
|
888
888
|
"""Timestamp when the custom ticket field was created"""
|
|
889
889
|
custom_field_options: list[Any] | None = None
|
|
890
|
-
"""Array of option objects for custom ticket fields of type multiselect or tagger
|
|
890
|
+
"""Array of option objects for custom ticket fields of type multiselect or tagger"""
|
|
891
891
|
custom_statuses: list[Any] | None = None
|
|
892
892
|
"""List of customized ticket statuses, only present for system ticket fields of type custom_status"""
|
|
893
893
|
description: str | None = None
|
|
@@ -925,7 +925,7 @@ class TicketFieldsSearchData(BaseModel):
|
|
|
925
925
|
title_in_portal: str | None = None
|
|
926
926
|
"""The title of the ticket field displayed to end users in Help Center"""
|
|
927
927
|
type: str | None = None
|
|
928
|
-
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, tagger
|
|
928
|
+
"""Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, or tagger"""
|
|
929
929
|
updated_at: str | None = None
|
|
930
930
|
"""Timestamp when the custom ticket field was last updated"""
|
|
931
931
|
url: str | None = None
|
|
@@ -967,7 +967,7 @@ class TicketFormsSearchData(BaseModel):
|
|
|
967
967
|
restricted_brand_ids: list[Any] | None = None
|
|
968
968
|
"""IDs of all brands that this ticket form is restricted to"""
|
|
969
969
|
ticket_field_ids: list[Any] | None = None
|
|
970
|
-
"""IDs of all ticket fields included in this ticket form
|
|
970
|
+
"""IDs of all ticket fields included in this ticket form"""
|
|
971
971
|
updated_at: str | None = None
|
|
972
972
|
"""Timestamp of the last update to the ticket form"""
|
|
973
973
|
url: str | None = None
|
|
@@ -1061,7 +1061,7 @@ class TicketsSearchData(BaseModel):
|
|
|
1061
1061
|
custom_status_id: int | None = None
|
|
1062
1062
|
"""Unique identifier of the custom status applied to the ticket"""
|
|
1063
1063
|
deleted_ticket_form_id: int | None = None
|
|
1064
|
-
"""
|
|
1064
|
+
"""The ID of the ticket form that was previously associated with this ticket but has since been deleted"""
|
|
1065
1065
|
description: str | None = None
|
|
1066
1066
|
"""Initial description or content of the ticket when it was created"""
|
|
1067
1067
|
due_at: str | None = None
|
|
@@ -1081,7 +1081,7 @@ class TicketsSearchData(BaseModel):
|
|
|
1081
1081
|
from_messaging_channel: bool | None = None
|
|
1082
1082
|
"""Boolean indicating whether the ticket originated from a messaging channel"""
|
|
1083
1083
|
generated_timestamp: int | None = None
|
|
1084
|
-
"""Timestamp updated for all ticket updates including system changes, used for incremental export
|
|
1084
|
+
"""Timestamp updated for all ticket updates including system changes, used for incremental export"""
|
|
1085
1085
|
group_id: int | None = None
|
|
1086
1086
|
"""Unique identifier of the agent group assigned to handle the ticket"""
|
|
1087
1087
|
has_incidents: bool | None = None
|