airbyte-agent-zendesk-support 0.18.40__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.
Files changed (57) hide show
  1. airbyte_agent_zendesk_support/__init__.py +261 -0
  2. airbyte_agent_zendesk_support/_vendored/__init__.py +1 -0
  3. airbyte_agent_zendesk_support/_vendored/connector_sdk/__init__.py +82 -0
  4. airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_strategies.py +1120 -0
  5. airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_template.py +135 -0
  6. airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
  7. airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/client.py +213 -0
  8. airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py +964 -0
  9. airbyte_agent_zendesk_support/_vendored/connector_sdk/constants.py +78 -0
  10. airbyte_agent_zendesk_support/_vendored/connector_sdk/exceptions.py +23 -0
  11. airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/__init__.py +31 -0
  12. airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/hosted_executor.py +196 -0
  13. airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py +1573 -0
  14. airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/models.py +190 -0
  15. airbyte_agent_zendesk_support/_vendored/connector_sdk/extensions.py +693 -0
  16. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/__init__.py +37 -0
  17. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
  18. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/adapters/httpx_adapter.py +251 -0
  19. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/config.py +98 -0
  20. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/exceptions.py +119 -0
  21. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/protocols.py +114 -0
  22. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/response.py +104 -0
  23. airbyte_agent_zendesk_support/_vendored/connector_sdk/http_client.py +686 -0
  24. airbyte_agent_zendesk_support/_vendored/connector_sdk/introspection.py +262 -0
  25. airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/__init__.py +11 -0
  26. airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/logger.py +264 -0
  27. airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/types.py +92 -0
  28. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/__init__.py +11 -0
  29. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/config.py +179 -0
  30. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/models.py +19 -0
  31. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/redactor.py +81 -0
  32. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/session.py +103 -0
  33. airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/__init__.py +6 -0
  34. airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/instrumentation.py +57 -0
  35. airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/metrics.py +93 -0
  36. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/__init__.py +75 -0
  37. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py +161 -0
  38. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/components.py +239 -0
  39. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/connector.py +120 -0
  40. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/extensions.py +109 -0
  41. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/operations.py +146 -0
  42. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/security.py +223 -0
  43. airbyte_agent_zendesk_support/_vendored/connector_sdk/secrets.py +182 -0
  44. airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/__init__.py +10 -0
  45. airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/config.py +32 -0
  46. airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/events.py +59 -0
  47. airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/tracker.py +155 -0
  48. airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py +245 -0
  49. airbyte_agent_zendesk_support/_vendored/connector_sdk/utils.py +60 -0
  50. airbyte_agent_zendesk_support/_vendored/connector_sdk/validation.py +822 -0
  51. airbyte_agent_zendesk_support/connector.py +2276 -0
  52. airbyte_agent_zendesk_support/connector_model.py +3948 -0
  53. airbyte_agent_zendesk_support/models.py +790 -0
  54. airbyte_agent_zendesk_support/types.py +216 -0
  55. airbyte_agent_zendesk_support-0.18.40.dist-info/METADATA +145 -0
  56. airbyte_agent_zendesk_support-0.18.40.dist-info/RECORD +57 -0
  57. airbyte_agent_zendesk_support-0.18.40.dist-info/WHEEL +4 -0
@@ -0,0 +1,790 @@
1
+ """
2
+ Pydantic models for zendesk-support connector.
3
+
4
+ This module contains Pydantic models used for authentication configuration
5
+ and response envelope types.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from pydantic import BaseModel, ConfigDict, Field
11
+ from typing import TypeVar, Generic, Union, Any
12
+ from typing import Optional
13
+
14
+ # Authentication configuration - multiple options available
15
+
16
+ class ZendeskSupportOauth20AuthConfig(BaseModel):
17
+ """OAuth 2.0 - Zendesk OAuth 2.0 authentication"""
18
+
19
+ model_config = ConfigDict(extra="forbid")
20
+
21
+ access_token: str
22
+ """OAuth 2.0 access token"""
23
+ refresh_token: Optional[str] = None
24
+ """OAuth 2.0 refresh token (optional)"""
25
+
26
+ class ZendeskSupportApiTokenAuthConfig(BaseModel):
27
+ """API Token - Authenticate using email and API token"""
28
+
29
+ model_config = ConfigDict(extra="forbid")
30
+
31
+ email: str
32
+ """Your Zendesk account email address"""
33
+ api_token: str
34
+ """Your Zendesk API token from Admin Center"""
35
+
36
+ ZendeskSupportAuthConfig = ZendeskSupportOauth20AuthConfig | ZendeskSupportApiTokenAuthConfig
37
+
38
+ # ===== RESPONSE TYPE DEFINITIONS (PYDANTIC) =====
39
+
40
+ class Ticket(BaseModel):
41
+ """Zendesk Support ticket object"""
42
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
43
+
44
+ id: Union[int, Any] = Field(default=None)
45
+ url: Union[str, Any] = Field(default=None)
46
+ external_id: Union[str | None, Any] = Field(default=None)
47
+ type: Union[str | None, Any] = Field(default=None)
48
+ subject: Union[str | None, Any] = Field(default=None)
49
+ raw_subject: Union[str | None, Any] = Field(default=None)
50
+ description: Union[str, Any] = Field(default=None)
51
+ priority: Union[str | None, Any] = Field(default=None)
52
+ status: Union[str, Any] = Field(default=None)
53
+ recipient: Union[str | None, Any] = Field(default=None)
54
+ requester_id: Union[int, Any] = Field(default=None)
55
+ submitter_id: Union[int, Any] = Field(default=None)
56
+ assignee_id: Union[int | None, Any] = Field(default=None)
57
+ organization_id: Union[int | None, Any] = Field(default=None)
58
+ group_id: Union[int | None, Any] = Field(default=None)
59
+ collaborator_ids: Union[list[int], Any] = Field(default=None)
60
+ follower_ids: Union[list[int], Any] = Field(default=None)
61
+ email_cc_ids: Union[list[int], Any] = Field(default=None)
62
+ forum_topic_id: Union[int | None, Any] = Field(default=None)
63
+ problem_id: Union[int | None, Any] = Field(default=None)
64
+ has_incidents: Union[bool, Any] = Field(default=None)
65
+ is_public: Union[bool, Any] = Field(default=None)
66
+ due_at: Union[str | None, Any] = Field(default=None)
67
+ tags: Union[list[str], Any] = Field(default=None)
68
+ custom_fields: Union[list[dict[str, Any]], Any] = Field(default=None)
69
+ satisfaction_rating: Union[dict[str, Any], Any] = Field(default=None)
70
+ sharing_agreement_ids: Union[list[int], Any] = Field(default=None)
71
+ custom_status_id: Union[int, Any] = Field(default=None)
72
+ fields: Union[list[dict[str, Any]], Any] = Field(default=None)
73
+ followup_ids: Union[list[int], Any] = Field(default=None)
74
+ ticket_form_id: Union[int, Any] = Field(default=None)
75
+ brand_id: Union[int, Any] = Field(default=None)
76
+ allow_channelback: Union[bool, Any] = Field(default=None)
77
+ allow_attachments: Union[bool, Any] = Field(default=None)
78
+ from_messaging_channel: Union[bool, Any] = Field(default=None)
79
+ generated_timestamp: Union[int, Any] = Field(default=None)
80
+ created_at: Union[str, Any] = Field(default=None)
81
+ updated_at: Union[str, Any] = Field(default=None)
82
+ via: Union[dict[str, Any], Any] = Field(default=None)
83
+
84
+ class User(BaseModel):
85
+ """Zendesk Support user object"""
86
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
87
+
88
+ id: Union[int, Any] = Field(default=None)
89
+ url: Union[str, Any] = Field(default=None)
90
+ name: Union[str, Any] = Field(default=None)
91
+ email: Union[str | None, Any] = Field(default=None)
92
+ alias: Union[str | None, Any] = Field(default=None)
93
+ phone: Union[str | None, Any] = Field(default=None)
94
+ time_zone: Union[str, Any] = Field(default=None)
95
+ locale: Union[str, Any] = Field(default=None)
96
+ locale_id: Union[int, Any] = Field(default=None)
97
+ organization_id: Union[int | None, Any] = Field(default=None)
98
+ role: Union[str, Any] = Field(default=None)
99
+ role_type: Union[int | None, Any] = Field(default=None)
100
+ custom_role_id: Union[int | None, Any] = Field(default=None)
101
+ external_id: Union[str | None, Any] = Field(default=None)
102
+ tags: Union[list[str], Any] = Field(default=None)
103
+ active: Union[bool, Any] = Field(default=None)
104
+ verified: Union[bool, Any] = Field(default=None)
105
+ shared: Union[bool, Any] = Field(default=None)
106
+ shared_agent: Union[bool, Any] = Field(default=None)
107
+ shared_phone_number: Union[bool | None, Any] = Field(default=None)
108
+ signature: Union[str | None, Any] = Field(default=None)
109
+ details: Union[str | None, Any] = Field(default=None)
110
+ notes: Union[str | None, Any] = Field(default=None)
111
+ suspended: Union[bool, Any] = Field(default=None)
112
+ restricted_agent: Union[bool, Any] = Field(default=None)
113
+ only_private_comments: Union[bool, Any] = Field(default=None)
114
+ moderator: Union[bool, Any] = Field(default=None)
115
+ ticket_restriction: Union[str | None, Any] = Field(default=None)
116
+ default_group_id: Union[int | None, Any] = Field(default=None)
117
+ report_csv: Union[bool, Any] = Field(default=None)
118
+ photo: Union[dict[str, Any] | None, Any] = Field(default=None)
119
+ user_fields: Union[dict[str, Any], Any] = Field(default=None)
120
+ last_login_at: Union[str | None, Any] = Field(default=None)
121
+ two_factor_auth_enabled: Union[bool | None, Any] = Field(default=None)
122
+ iana_time_zone: Union[str, Any] = Field(default=None)
123
+ permanently_deleted: Union[bool, Any] = Field(default=None)
124
+ created_at: Union[str, Any] = Field(default=None)
125
+ updated_at: Union[str, Any] = Field(default=None)
126
+
127
+ class Organization(BaseModel):
128
+ """Zendesk Support organization object"""
129
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
130
+
131
+ id: Union[int, Any] = Field(default=None)
132
+ url: Union[str, Any] = Field(default=None)
133
+ name: Union[str, Any] = Field(default=None)
134
+ details: Union[str | None, Any] = Field(default=None)
135
+ notes: Union[str | None, Any] = Field(default=None)
136
+ group_id: Union[int | None, Any] = Field(default=None)
137
+ shared_tickets: Union[bool, Any] = Field(default=None)
138
+ shared_comments: Union[bool, Any] = Field(default=None)
139
+ external_id: Union[str | None, Any] = Field(default=None)
140
+ domain_names: Union[list[str], Any] = Field(default=None)
141
+ tags: Union[list[str], Any] = Field(default=None)
142
+ organization_fields: Union[dict[str, Any], Any] = Field(default=None)
143
+ created_at: Union[str, Any] = Field(default=None)
144
+ updated_at: Union[str, Any] = Field(default=None)
145
+
146
+ class Group(BaseModel):
147
+ """Zendesk Support group object"""
148
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
149
+
150
+ id: Union[int, Any] = Field(default=None)
151
+ url: Union[str, Any] = Field(default=None)
152
+ name: Union[str, Any] = Field(default=None)
153
+ description: Union[str, Any] = Field(default=None)
154
+ default: Union[bool, Any] = Field(default=None)
155
+ deleted: Union[bool, Any] = Field(default=None)
156
+ is_public: Union[bool, Any] = Field(default=None)
157
+ created_at: Union[str, Any] = Field(default=None)
158
+ updated_at: Union[str, Any] = Field(default=None)
159
+
160
+ class TicketComment(BaseModel):
161
+ """Zendesk Support ticket comment object"""
162
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
163
+
164
+ id: Union[int, Any] = Field(default=None)
165
+ type: Union[str, Any] = Field(default=None)
166
+ body: Union[str, Any] = Field(default=None)
167
+ html_body: Union[str, Any] = Field(default=None)
168
+ plain_body: Union[str, Any] = Field(default=None)
169
+ public: Union[bool, Any] = Field(default=None)
170
+ author_id: Union[int, Any] = Field(default=None)
171
+ attachments: Union[list[dict[str, Any]], Any] = Field(default=None)
172
+ audit_id: Union[int, Any] = Field(default=None)
173
+ via: Union[dict[str, Any], Any] = Field(default=None)
174
+ metadata: Union[dict[str, Any], Any] = Field(default=None)
175
+ created_at: Union[str, Any] = Field(default=None)
176
+
177
+ class Attachment(BaseModel):
178
+ """Zendesk Support attachment object"""
179
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
180
+
181
+ id: Union[int, Any] = Field(default=None)
182
+ file_name: Union[str, Any] = Field(default=None)
183
+ content_url: Union[str, Any] = Field(default=None)
184
+ mapped_content_url: Union[str, Any] = Field(default=None)
185
+ content_type: Union[str, Any] = Field(default=None)
186
+ size: Union[int, Any] = Field(default=None)
187
+ width: Union[int | None, Any] = Field(default=None)
188
+ height: Union[int | None, Any] = Field(default=None)
189
+ inline: Union[bool, Any] = Field(default=None)
190
+ deleted: Union[bool, Any] = Field(default=None)
191
+ malware_access_override: Union[bool, Any] = Field(default=None)
192
+ malware_scan_result: Union[str, Any] = Field(default=None)
193
+ url: Union[str, Any] = Field(default=None)
194
+ thumbnails: Union[list[dict[str, Any]], Any] = Field(default=None)
195
+
196
+ class TicketAudit(BaseModel):
197
+ """Zendesk Support ticket audit object"""
198
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
199
+
200
+ id: Union[int, Any] = Field(default=None)
201
+ ticket_id: Union[int, Any] = Field(default=None)
202
+ author_id: Union[int, Any] = Field(default=None)
203
+ metadata: Union[dict[str, Any], Any] = Field(default=None)
204
+ via: Union[dict[str, Any], Any] = Field(default=None)
205
+ events: Union[list[dict[str, Any]], Any] = Field(default=None)
206
+ created_at: Union[str, Any] = Field(default=None)
207
+
208
+ class TicketMetric(BaseModel):
209
+ """Zendesk Support ticket metric object"""
210
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
211
+
212
+ id: Union[int, Any] = Field(default=None)
213
+ url: Union[str, Any] = Field(default=None)
214
+ ticket_id: Union[int, Any] = Field(default=None)
215
+ group_stations: Union[int, Any] = Field(default=None)
216
+ assignee_stations: Union[int, Any] = Field(default=None)
217
+ reopens: Union[int, Any] = Field(default=None)
218
+ replies: Union[int, Any] = Field(default=None)
219
+ assignee_updated_at: Union[str | None, Any] = Field(default=None)
220
+ requester_updated_at: Union[str, Any] = Field(default=None)
221
+ status_updated_at: Union[str, Any] = Field(default=None)
222
+ initially_assigned_at: Union[str | None, Any] = Field(default=None)
223
+ assigned_at: Union[str | None, Any] = Field(default=None)
224
+ solved_at: Union[str | None, Any] = Field(default=None)
225
+ latest_comment_added_at: Union[str, Any] = Field(default=None)
226
+ reply_time_in_minutes: Union[dict[str, Any], Any] = Field(default=None)
227
+ first_resolution_time_in_minutes: Union[dict[str, Any], Any] = Field(default=None)
228
+ full_resolution_time_in_minutes: Union[dict[str, Any], Any] = Field(default=None)
229
+ agent_wait_time_in_minutes: Union[dict[str, Any], Any] = Field(default=None)
230
+ requester_wait_time_in_minutes: Union[dict[str, Any], Any] = Field(default=None)
231
+ on_hold_time_in_minutes: Union[dict[str, Any], Any] = Field(default=None)
232
+ created_at: Union[str, Any] = Field(default=None)
233
+ updated_at: Union[str, Any] = Field(default=None)
234
+
235
+ class TicketField(BaseModel):
236
+ """Zendesk Support ticket field object"""
237
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
238
+
239
+ id: Union[int, Any] = Field(default=None)
240
+ url: Union[str, Any] = Field(default=None)
241
+ type: Union[str, Any] = Field(default=None)
242
+ title: Union[str, Any] = Field(default=None)
243
+ raw_title: Union[str, Any] = Field(default=None)
244
+ description: Union[str, Any] = Field(default=None)
245
+ raw_description: Union[str, Any] = Field(default=None)
246
+ position: Union[int, Any] = Field(default=None)
247
+ active: Union[bool, Any] = Field(default=None)
248
+ required: Union[bool, Any] = Field(default=None)
249
+ collapsed_for_agents: Union[bool, Any] = Field(default=None)
250
+ regexp_for_validation: Union[str | None, Any] = Field(default=None)
251
+ title_in_portal: Union[str, Any] = Field(default=None)
252
+ raw_title_in_portal: Union[str, Any] = Field(default=None)
253
+ visible_in_portal: Union[bool, Any] = Field(default=None)
254
+ editable_in_portal: Union[bool, Any] = Field(default=None)
255
+ required_in_portal: Union[bool, Any] = Field(default=None)
256
+ tag: Union[str | None, Any] = Field(default=None)
257
+ custom_field_options: Union[list[dict[str, Any]], Any] = Field(default=None)
258
+ system_field_options: Union[list[dict[str, Any]], Any] = Field(default=None)
259
+ sub_type_id: Union[int, Any] = Field(default=None)
260
+ removable: Union[bool, Any] = Field(default=None)
261
+ agent_description: Union[str | None, Any] = Field(default=None)
262
+ created_at: Union[str, Any] = Field(default=None)
263
+ updated_at: Union[str, Any] = Field(default=None)
264
+
265
+ class Brand(BaseModel):
266
+ """Zendesk Support brand object"""
267
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
268
+
269
+ id: Union[int, Any] = Field(default=None)
270
+ url: Union[str, Any] = Field(default=None)
271
+ name: Union[str, Any] = Field(default=None)
272
+ brand_url: Union[str, Any] = Field(default=None)
273
+ subdomain: Union[str, Any] = Field(default=None)
274
+ host_mapping: Union[str | None, Any] = Field(default=None)
275
+ has_help_center: Union[bool, Any] = Field(default=None)
276
+ help_center_state: Union[str, Any] = Field(default=None)
277
+ active: Union[bool, Any] = Field(default=None)
278
+ default: Union[bool, Any] = Field(default=None)
279
+ is_deleted: Union[bool, Any] = Field(default=None)
280
+ logo: Union[dict[str, Any] | None, Any] = Field(default=None)
281
+ ticket_form_ids: Union[list[int], Any] = Field(default=None)
282
+ signature_template: Union[str, Any] = Field(default=None)
283
+ created_at: Union[str, Any] = Field(default=None)
284
+ updated_at: Union[str, Any] = Field(default=None)
285
+
286
+ class View(BaseModel):
287
+ """Zendesk Support view object"""
288
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
289
+
290
+ id: Union[int, Any] = Field(default=None)
291
+ url: Union[str, Any] = Field(default=None)
292
+ title: Union[str, Any] = Field(default=None)
293
+ active: Union[bool, Any] = Field(default=None)
294
+ position: Union[int, Any] = Field(default=None)
295
+ description: Union[str | None, Any] = Field(default=None)
296
+ execution: Union[dict[str, Any], Any] = Field(default=None)
297
+ conditions: Union[dict[str, Any], Any] = Field(default=None)
298
+ restriction: Union[dict[str, Any] | None, Any] = Field(default=None)
299
+ raw_title: Union[str, Any] = Field(default=None)
300
+ created_at: Union[str, Any] = Field(default=None)
301
+ updated_at: Union[str, Any] = Field(default=None)
302
+
303
+ class Macro(BaseModel):
304
+ """Zendesk Support macro object"""
305
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
306
+
307
+ id: Union[int, Any] = Field(default=None)
308
+ url: Union[str, Any] = Field(default=None)
309
+ title: Union[str, Any] = Field(default=None)
310
+ active: Union[bool, Any] = Field(default=None)
311
+ position: Union[int, Any] = Field(default=None)
312
+ description: Union[str, Any] = Field(default=None)
313
+ actions: Union[list[dict[str, Any]], Any] = Field(default=None)
314
+ restriction: Union[dict[str, Any] | None, Any] = Field(default=None)
315
+ raw_title: Union[str, Any] = Field(default=None)
316
+ created_at: Union[str, Any] = Field(default=None)
317
+ updated_at: Union[str, Any] = Field(default=None)
318
+
319
+ class Trigger(BaseModel):
320
+ """Zendesk Support trigger object"""
321
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
322
+
323
+ id: Union[int, Any] = Field(default=None)
324
+ url: Union[str, Any] = Field(default=None)
325
+ title: Union[str, Any] = Field(default=None)
326
+ active: Union[bool, Any] = Field(default=None)
327
+ position: Union[int, Any] = Field(default=None)
328
+ description: Union[str | None, Any] = Field(default=None)
329
+ conditions: Union[dict[str, Any], Any] = Field(default=None)
330
+ actions: Union[list[dict[str, Any]], Any] = Field(default=None)
331
+ raw_title: Union[str, Any] = Field(default=None)
332
+ category_id: Union[str, Any] = Field(default=None)
333
+ created_at: Union[str, Any] = Field(default=None)
334
+ updated_at: Union[str, Any] = Field(default=None)
335
+
336
+ class Automation(BaseModel):
337
+ """Zendesk Support automation object"""
338
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
339
+
340
+ id: Union[int, Any] = Field(default=None)
341
+ url: Union[str, Any] = Field(default=None)
342
+ title: Union[str, Any] = Field(default=None)
343
+ active: Union[bool, Any] = Field(default=None)
344
+ position: Union[int, Any] = Field(default=None)
345
+ conditions: Union[dict[str, Any], Any] = Field(default=None)
346
+ actions: Union[list[dict[str, Any]], Any] = Field(default=None)
347
+ raw_title: Union[str, Any] = Field(default=None)
348
+ created_at: Union[str, Any] = Field(default=None)
349
+ updated_at: Union[str, Any] = Field(default=None)
350
+
351
+ class Tag(BaseModel):
352
+ """Zendesk Support tag object"""
353
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
354
+
355
+ name: Union[str, Any] = Field(default=None)
356
+ count: Union[int, Any] = Field(default=None)
357
+
358
+ class SatisfactionRating(BaseModel):
359
+ """Zendesk Support satisfaction rating object"""
360
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
361
+
362
+ id: Union[int, Any] = Field(default=None)
363
+ url: Union[str, Any] = Field(default=None)
364
+ assignee_id: Union[int | None, Any] = Field(default=None)
365
+ group_id: Union[int | None, Any] = Field(default=None)
366
+ requester_id: Union[int, Any] = Field(default=None)
367
+ ticket_id: Union[int, Any] = Field(default=None)
368
+ score: Union[str, Any] = Field(default=None)
369
+ comment: Union[str | None, Any] = Field(default=None)
370
+ reason: Union[str | None, Any] = Field(default=None)
371
+ reason_id: Union[int | None, Any] = Field(default=None)
372
+ reason_code: Union[int | None, Any] = Field(default=None)
373
+ created_at: Union[str, Any] = Field(default=None)
374
+ updated_at: Union[str, Any] = Field(default=None)
375
+
376
+ class GroupMembership(BaseModel):
377
+ """Zendesk Support group membership object"""
378
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
379
+
380
+ id: Union[int, Any] = Field(default=None)
381
+ url: Union[str, Any] = Field(default=None)
382
+ user_id: Union[int, Any] = Field(default=None)
383
+ group_id: Union[int, Any] = Field(default=None)
384
+ default: Union[bool, Any] = Field(default=None)
385
+ created_at: Union[str, Any] = Field(default=None)
386
+ updated_at: Union[str, Any] = Field(default=None)
387
+
388
+ class OrganizationMembership(BaseModel):
389
+ """Zendesk Support organization membership object"""
390
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
391
+
392
+ id: Union[int, Any] = Field(default=None)
393
+ url: Union[str, Any] = Field(default=None)
394
+ user_id: Union[int, Any] = Field(default=None)
395
+ organization_id: Union[int, Any] = Field(default=None)
396
+ default: Union[bool, Any] = Field(default=None)
397
+ organization_name: Union[str, Any] = Field(default=None)
398
+ view_tickets: Union[bool, Any] = Field(default=None)
399
+ created_at: Union[str, Any] = Field(default=None)
400
+ updated_at: Union[str, Any] = Field(default=None)
401
+
402
+ class SLAPolicy(BaseModel):
403
+ """Zendesk Support SLA policy object"""
404
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
405
+
406
+ id: Union[int, Any] = Field(default=None)
407
+ url: Union[str, Any] = Field(default=None)
408
+ title: Union[str, Any] = Field(default=None)
409
+ description: Union[str, Any] = Field(default=None)
410
+ position: Union[int, Any] = Field(default=None)
411
+ filter: Union[dict[str, Any], Any] = Field(default=None)
412
+ policy_metrics: Union[list[dict[str, Any]], Any] = Field(default=None)
413
+ created_at: Union[str, Any] = Field(default=None)
414
+ updated_at: Union[str, Any] = Field(default=None)
415
+
416
+ class TicketForm(BaseModel):
417
+ """Zendesk Support ticket form object"""
418
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
419
+
420
+ id: Union[int, Any] = Field(default=None)
421
+ url: Union[str, Any] = Field(default=None)
422
+ name: Union[str, Any] = Field(default=None)
423
+ display_name: Union[str, Any] = Field(default=None)
424
+ raw_name: Union[str, Any] = Field(default=None)
425
+ raw_display_name: Union[str, Any] = Field(default=None)
426
+ position: Union[int, Any] = Field(default=None)
427
+ active: Union[bool, Any] = Field(default=None)
428
+ end_user_visible: Union[bool, Any] = Field(default=None)
429
+ default: Union[bool, Any] = Field(default=None)
430
+ in_all_brands: Union[bool, Any] = Field(default=None)
431
+ restricted_brand_ids: Union[list[int], Any] = Field(default=None)
432
+ ticket_field_ids: Union[list[int], Any] = Field(default=None)
433
+ agent_conditions: Union[list[dict[str, Any]], Any] = Field(default=None)
434
+ end_user_conditions: Union[list[dict[str, Any]], Any] = Field(default=None)
435
+ created_at: Union[str, Any] = Field(default=None)
436
+ updated_at: Union[str, Any] = Field(default=None)
437
+
438
+ class Article(BaseModel):
439
+ """Help Center article object"""
440
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
441
+
442
+ id: Union[int, Any] = Field(default=None)
443
+ url: Union[str, Any] = Field(default=None)
444
+ html_url: Union[str, Any] = Field(default=None)
445
+ title: Union[str, Any] = Field(default=None)
446
+ body: Union[str, Any] = Field(default=None)
447
+ locale: Union[str, Any] = Field(default=None)
448
+ author_id: Union[int, Any] = Field(default=None)
449
+ section_id: Union[int, Any] = Field(default=None)
450
+ created_at: Union[str, Any] = Field(default=None)
451
+ updated_at: Union[str, Any] = Field(default=None)
452
+ vote_sum: Union[int, Any] = Field(default=None)
453
+ vote_count: Union[int, Any] = Field(default=None)
454
+ label_names: Union[list[str], Any] = Field(default=None)
455
+ draft: Union[bool, Any] = Field(default=None)
456
+ promoted: Union[bool, Any] = Field(default=None)
457
+ position: Union[int, Any] = Field(default=None)
458
+
459
+ class ArticleAttachment(BaseModel):
460
+ """Article attachment object"""
461
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
462
+
463
+ id: Union[int, Any] = Field(default=None)
464
+ url: Union[str, Any] = Field(default=None)
465
+ article_id: Union[int, Any] = Field(default=None)
466
+ file_name: Union[str, Any] = Field(default=None)
467
+ content_type: Union[str, Any] = Field(default=None)
468
+ content_url: Union[str, Any] = Field(default=None)
469
+ size: Union[int, Any] = Field(default=None)
470
+ inline: Union[bool, Any] = Field(default=None)
471
+ created_at: Union[str, Any] = Field(default=None)
472
+ updated_at: Union[str, Any] = Field(default=None)
473
+
474
+ # ===== METADATA TYPE DEFINITIONS (PYDANTIC) =====
475
+ # Meta types for operations that extract metadata (e.g., pagination info)
476
+
477
+ class TicketsListResultMeta(BaseModel):
478
+ """Metadata for tickets.list operation"""
479
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
480
+
481
+ next_page: Union[str | None, Any] = Field(default=None)
482
+ previous_page: Union[str | None, Any] = Field(default=None)
483
+ count: Union[int, Any] = Field(default=None)
484
+
485
+ class UsersListResultMeta(BaseModel):
486
+ """Metadata for users.list operation"""
487
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
488
+
489
+ next_page: Union[str | None, Any] = Field(default=None)
490
+ previous_page: Union[str | None, Any] = Field(default=None)
491
+ count: Union[int, Any] = Field(default=None)
492
+
493
+ class OrganizationsListResultMeta(BaseModel):
494
+ """Metadata for organizations.list operation"""
495
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
496
+
497
+ next_page: Union[str | None, Any] = Field(default=None)
498
+ previous_page: Union[str | None, Any] = Field(default=None)
499
+ count: Union[int, Any] = Field(default=None)
500
+
501
+ class GroupsListResultMeta(BaseModel):
502
+ """Metadata for groups.list operation"""
503
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
504
+
505
+ next_page: Union[str | None, Any] = Field(default=None)
506
+ previous_page: Union[str | None, Any] = Field(default=None)
507
+ count: Union[int, Any] = Field(default=None)
508
+
509
+ class TicketCommentsListResultMeta(BaseModel):
510
+ """Metadata for ticket_comments.list operation"""
511
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
512
+
513
+ next_page: Union[str | None, Any] = Field(default=None)
514
+ previous_page: Union[str | None, Any] = Field(default=None)
515
+ count: Union[int, Any] = Field(default=None)
516
+
517
+ class TicketAuditsListResultMeta(BaseModel):
518
+ """Metadata for ticket_audits.list operation"""
519
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
520
+
521
+ next_page: Union[str | None, Any] = Field(default=None)
522
+ previous_page: Union[str | None, Any] = Field(default=None)
523
+ count: Union[int, Any] = Field(default=None)
524
+
525
+ class TicketMetricsListResultMeta(BaseModel):
526
+ """Metadata for ticket_metrics.list operation"""
527
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
528
+
529
+ next_page: Union[str | None, Any] = Field(default=None)
530
+ previous_page: Union[str | None, Any] = Field(default=None)
531
+ count: Union[int, Any] = Field(default=None)
532
+
533
+ class TicketFieldsListResultMeta(BaseModel):
534
+ """Metadata for ticket_fields.list operation"""
535
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
536
+
537
+ next_page: Union[str | None, Any] = Field(default=None)
538
+ previous_page: Union[str | None, Any] = Field(default=None)
539
+ count: Union[int, Any] = Field(default=None)
540
+
541
+ class BrandsListResultMeta(BaseModel):
542
+ """Metadata for brands.list operation"""
543
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
544
+
545
+ next_page: Union[str | None, Any] = Field(default=None)
546
+ previous_page: Union[str | None, Any] = Field(default=None)
547
+ count: Union[int, Any] = Field(default=None)
548
+
549
+ class ViewsListResultMeta(BaseModel):
550
+ """Metadata for views.list operation"""
551
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
552
+
553
+ next_page: Union[str | None, Any] = Field(default=None)
554
+ previous_page: Union[str | None, Any] = Field(default=None)
555
+ count: Union[int, Any] = Field(default=None)
556
+
557
+ class MacrosListResultMeta(BaseModel):
558
+ """Metadata for macros.list operation"""
559
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
560
+
561
+ next_page: Union[str | None, Any] = Field(default=None)
562
+ previous_page: Union[str | None, Any] = Field(default=None)
563
+ count: Union[int, Any] = Field(default=None)
564
+
565
+ class TriggersListResultMeta(BaseModel):
566
+ """Metadata for triggers.list operation"""
567
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
568
+
569
+ next_page: Union[str | None, Any] = Field(default=None)
570
+ previous_page: Union[str | None, Any] = Field(default=None)
571
+ count: Union[int, Any] = Field(default=None)
572
+
573
+ class AutomationsListResultMeta(BaseModel):
574
+ """Metadata for automations.list operation"""
575
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
576
+
577
+ next_page: Union[str | None, Any] = Field(default=None)
578
+ previous_page: Union[str | None, Any] = Field(default=None)
579
+ count: Union[int, Any] = Field(default=None)
580
+
581
+ class TagsListResultMeta(BaseModel):
582
+ """Metadata for tags.list operation"""
583
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
584
+
585
+ next_page: Union[str | None, Any] = Field(default=None)
586
+ previous_page: Union[str | None, Any] = Field(default=None)
587
+ count: Union[int, Any] = Field(default=None)
588
+
589
+ class SatisfactionRatingsListResultMeta(BaseModel):
590
+ """Metadata for satisfaction_ratings.list operation"""
591
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
592
+
593
+ next_page: Union[str | None, Any] = Field(default=None)
594
+ previous_page: Union[str | None, Any] = Field(default=None)
595
+ count: Union[int, Any] = Field(default=None)
596
+
597
+ class GroupMembershipsListResultMeta(BaseModel):
598
+ """Metadata for group_memberships.list operation"""
599
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
600
+
601
+ next_page: Union[str | None, Any] = Field(default=None)
602
+ previous_page: Union[str | None, Any] = Field(default=None)
603
+ count: Union[int, Any] = Field(default=None)
604
+
605
+ class OrganizationMembershipsListResultMeta(BaseModel):
606
+ """Metadata for organization_memberships.list operation"""
607
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
608
+
609
+ next_page: Union[str | None, Any] = Field(default=None)
610
+ previous_page: Union[str | None, Any] = Field(default=None)
611
+ count: Union[int, Any] = Field(default=None)
612
+
613
+ class SlaPoliciesListResultMeta(BaseModel):
614
+ """Metadata for sla_policies.list operation"""
615
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
616
+
617
+ next_page: Union[str | None, Any] = Field(default=None)
618
+ previous_page: Union[str | None, Any] = Field(default=None)
619
+ count: Union[int, Any] = Field(default=None)
620
+
621
+ class TicketFormsListResultMeta(BaseModel):
622
+ """Metadata for ticket_forms.list operation"""
623
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
624
+
625
+ next_page: Union[str | None, Any] = Field(default=None)
626
+ previous_page: Union[str | None, Any] = Field(default=None)
627
+ count: Union[int, Any] = Field(default=None)
628
+
629
+ class ArticlesListResultMeta(BaseModel):
630
+ """Metadata for articles.list operation"""
631
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
632
+
633
+ next_page: Union[str | None, Any] = Field(default=None)
634
+ previous_page: Union[str | None, Any] = Field(default=None)
635
+ count: Union[int, Any] = Field(default=None)
636
+
637
+ class ArticleAttachmentsListResultMeta(BaseModel):
638
+ """Metadata for article_attachments.list operation"""
639
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
640
+
641
+ next_page: Union[str | None, Any] = Field(default=None)
642
+ previous_page: Union[str | None, Any] = Field(default=None)
643
+ count: Union[int, Any] = Field(default=None)
644
+
645
+ # ===== RESPONSE ENVELOPE MODELS =====
646
+
647
+ # Type variables for generic envelope models
648
+ T = TypeVar('T')
649
+ S = TypeVar('S')
650
+
651
+
652
+ class ZendeskSupportExecuteResult(BaseModel, Generic[T]):
653
+ """Response envelope with data only.
654
+
655
+ Used for actions that return data without metadata.
656
+ """
657
+ model_config = ConfigDict(extra="forbid")
658
+
659
+ data: T
660
+ """Response data containing the result of the action."""
661
+
662
+
663
+ class ZendeskSupportExecuteResultWithMeta(ZendeskSupportExecuteResult[T], Generic[T, S]):
664
+ """Response envelope with data and metadata.
665
+
666
+ Used for actions that return both data and metadata (e.g., pagination info).
667
+ """
668
+ meta: S
669
+ """Metadata about the response (e.g., pagination cursors, record counts)."""
670
+
671
+
672
+ # ===== OPERATION RESULT TYPE ALIASES =====
673
+
674
+ # Concrete type aliases for each operation result.
675
+ # These provide simpler, more readable type annotations than using the generic forms.
676
+
677
+ TicketsListResult = ZendeskSupportExecuteResultWithMeta[list[Ticket], TicketsListResultMeta]
678
+ """Result type for tickets.list operation with data and metadata."""
679
+
680
+ TicketsGetResult = ZendeskSupportExecuteResult[Ticket]
681
+ """Result type for tickets.get operation."""
682
+
683
+ UsersListResult = ZendeskSupportExecuteResultWithMeta[list[User], UsersListResultMeta]
684
+ """Result type for users.list operation with data and metadata."""
685
+
686
+ UsersGetResult = ZendeskSupportExecuteResult[User]
687
+ """Result type for users.get operation."""
688
+
689
+ OrganizationsListResult = ZendeskSupportExecuteResultWithMeta[list[Organization], OrganizationsListResultMeta]
690
+ """Result type for organizations.list operation with data and metadata."""
691
+
692
+ OrganizationsGetResult = ZendeskSupportExecuteResult[Organization]
693
+ """Result type for organizations.get operation."""
694
+
695
+ GroupsListResult = ZendeskSupportExecuteResultWithMeta[list[Group], GroupsListResultMeta]
696
+ """Result type for groups.list operation with data and metadata."""
697
+
698
+ GroupsGetResult = ZendeskSupportExecuteResult[Group]
699
+ """Result type for groups.get operation."""
700
+
701
+ TicketCommentsListResult = ZendeskSupportExecuteResultWithMeta[list[TicketComment], TicketCommentsListResultMeta]
702
+ """Result type for ticket_comments.list operation with data and metadata."""
703
+
704
+ AttachmentsGetResult = ZendeskSupportExecuteResult[Attachment]
705
+ """Result type for attachments.get operation."""
706
+
707
+ TicketAuditsListResult = ZendeskSupportExecuteResultWithMeta[list[TicketAudit], TicketAuditsListResultMeta]
708
+ """Result type for ticket_audits.list operation with data and metadata."""
709
+
710
+ TicketAuditsListResult = ZendeskSupportExecuteResultWithMeta[list[TicketAudit], TicketAuditsListResultMeta]
711
+ """Result type for ticket_audits.list operation with data and metadata."""
712
+
713
+ TicketMetricsListResult = ZendeskSupportExecuteResultWithMeta[list[TicketMetric], TicketMetricsListResultMeta]
714
+ """Result type for ticket_metrics.list operation with data and metadata."""
715
+
716
+ TicketFieldsListResult = ZendeskSupportExecuteResultWithMeta[list[TicketField], TicketFieldsListResultMeta]
717
+ """Result type for ticket_fields.list operation with data and metadata."""
718
+
719
+ TicketFieldsGetResult = ZendeskSupportExecuteResult[TicketField]
720
+ """Result type for ticket_fields.get operation."""
721
+
722
+ BrandsListResult = ZendeskSupportExecuteResultWithMeta[list[Brand], BrandsListResultMeta]
723
+ """Result type for brands.list operation with data and metadata."""
724
+
725
+ BrandsGetResult = ZendeskSupportExecuteResult[Brand]
726
+ """Result type for brands.get operation."""
727
+
728
+ ViewsListResult = ZendeskSupportExecuteResultWithMeta[list[View], ViewsListResultMeta]
729
+ """Result type for views.list operation with data and metadata."""
730
+
731
+ ViewsGetResult = ZendeskSupportExecuteResult[View]
732
+ """Result type for views.get operation."""
733
+
734
+ MacrosListResult = ZendeskSupportExecuteResultWithMeta[list[Macro], MacrosListResultMeta]
735
+ """Result type for macros.list operation with data and metadata."""
736
+
737
+ MacrosGetResult = ZendeskSupportExecuteResult[Macro]
738
+ """Result type for macros.get operation."""
739
+
740
+ TriggersListResult = ZendeskSupportExecuteResultWithMeta[list[Trigger], TriggersListResultMeta]
741
+ """Result type for triggers.list operation with data and metadata."""
742
+
743
+ TriggersGetResult = ZendeskSupportExecuteResult[Trigger]
744
+ """Result type for triggers.get operation."""
745
+
746
+ AutomationsListResult = ZendeskSupportExecuteResultWithMeta[list[Automation], AutomationsListResultMeta]
747
+ """Result type for automations.list operation with data and metadata."""
748
+
749
+ AutomationsGetResult = ZendeskSupportExecuteResult[Automation]
750
+ """Result type for automations.get operation."""
751
+
752
+ TagsListResult = ZendeskSupportExecuteResultWithMeta[list[Tag], TagsListResultMeta]
753
+ """Result type for tags.list operation with data and metadata."""
754
+
755
+ SatisfactionRatingsListResult = ZendeskSupportExecuteResultWithMeta[list[SatisfactionRating], SatisfactionRatingsListResultMeta]
756
+ """Result type for satisfaction_ratings.list operation with data and metadata."""
757
+
758
+ SatisfactionRatingsGetResult = ZendeskSupportExecuteResult[SatisfactionRating]
759
+ """Result type for satisfaction_ratings.get operation."""
760
+
761
+ GroupMembershipsListResult = ZendeskSupportExecuteResultWithMeta[list[GroupMembership], GroupMembershipsListResultMeta]
762
+ """Result type for group_memberships.list operation with data and metadata."""
763
+
764
+ OrganizationMembershipsListResult = ZendeskSupportExecuteResultWithMeta[list[OrganizationMembership], OrganizationMembershipsListResultMeta]
765
+ """Result type for organization_memberships.list operation with data and metadata."""
766
+
767
+ SlaPoliciesListResult = ZendeskSupportExecuteResultWithMeta[list[SLAPolicy], SlaPoliciesListResultMeta]
768
+ """Result type for sla_policies.list operation with data and metadata."""
769
+
770
+ SlaPoliciesGetResult = ZendeskSupportExecuteResult[SLAPolicy]
771
+ """Result type for sla_policies.get operation."""
772
+
773
+ TicketFormsListResult = ZendeskSupportExecuteResultWithMeta[list[TicketForm], TicketFormsListResultMeta]
774
+ """Result type for ticket_forms.list operation with data and metadata."""
775
+
776
+ TicketFormsGetResult = ZendeskSupportExecuteResult[TicketForm]
777
+ """Result type for ticket_forms.get operation."""
778
+
779
+ ArticlesListResult = ZendeskSupportExecuteResultWithMeta[list[Article], ArticlesListResultMeta]
780
+ """Result type for articles.list operation with data and metadata."""
781
+
782
+ ArticlesGetResult = ZendeskSupportExecuteResult[Article]
783
+ """Result type for articles.get operation."""
784
+
785
+ ArticleAttachmentsListResult = ZendeskSupportExecuteResultWithMeta[list[ArticleAttachment], ArticleAttachmentsListResultMeta]
786
+ """Result type for article_attachments.list operation with data and metadata."""
787
+
788
+ ArticleAttachmentsGetResult = ZendeskSupportExecuteResult[ArticleAttachment]
789
+ """Result type for article_attachments.get operation."""
790
+