airbyte-agent-zendesk-support 0.18.18__py3-none-any.whl → 0.18.39__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 (33) hide show
  1. airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_strategies.py +2 -5
  2. airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_template.py +1 -1
  3. airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
  4. airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/client.py +213 -0
  5. airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py +32 -6
  6. airbyte_agent_zendesk_support/_vendored/connector_sdk/constants.py +1 -1
  7. airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/hosted_executor.py +92 -84
  8. airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py +94 -25
  9. airbyte_agent_zendesk_support/_vendored/connector_sdk/extensions.py +43 -5
  10. airbyte_agent_zendesk_support/_vendored/connector_sdk/http/response.py +2 -0
  11. airbyte_agent_zendesk_support/_vendored/connector_sdk/http_client.py +50 -43
  12. airbyte_agent_zendesk_support/_vendored/connector_sdk/introspection.py +262 -0
  13. airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/logger.py +9 -9
  14. airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/types.py +10 -10
  15. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/config.py +179 -0
  16. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/models.py +6 -6
  17. airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/session.py +41 -32
  18. airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/metrics.py +3 -3
  19. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py +18 -17
  20. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/components.py +59 -58
  21. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/extensions.py +9 -9
  22. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/operations.py +32 -32
  23. airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/security.py +44 -34
  24. airbyte_agent_zendesk_support/_vendored/connector_sdk/secrets.py +2 -2
  25. airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/events.py +9 -8
  26. airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/tracker.py +9 -5
  27. airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py +9 -3
  28. airbyte_agent_zendesk_support/connector.py +98 -15
  29. airbyte_agent_zendesk_support/connector_model.py +7 -1
  30. airbyte_agent_zendesk_support/types.py +1 -1
  31. {airbyte_agent_zendesk_support-0.18.18.dist-info → airbyte_agent_zendesk_support-0.18.39.dist-info}/METADATA +47 -26
  32. {airbyte_agent_zendesk_support-0.18.18.dist-info → airbyte_agent_zendesk_support-0.18.39.dist-info}/RECORD +33 -29
  33. {airbyte_agent_zendesk_support-0.18.18.dist-info → airbyte_agent_zendesk_support-0.18.39.dist-info}/WHEEL +0 -0
@@ -1,8 +1,8 @@
1
1
  """Telemetry event models."""
2
2
 
3
- from dataclasses import asdict, dataclass
3
+ from dataclasses import asdict, dataclass, field
4
4
  from datetime import datetime
5
- from typing import Any, Dict, Optional
5
+ from typing import Any, Dict
6
6
 
7
7
 
8
8
  @dataclass
@@ -13,6 +13,7 @@ class BaseEvent:
13
13
  session_id: str
14
14
  user_id: str
15
15
  execution_context: str
16
+ is_internal_user: bool = field(default=False, kw_only=True)
16
17
 
17
18
  def to_dict(self) -> Dict[str, Any]:
18
19
  """Convert event to dictionary with ISO formatted timestamp."""
@@ -29,8 +30,8 @@ class ConnectorInitEvent(BaseEvent):
29
30
  python_version: str
30
31
  os_name: str
31
32
  os_version: str
32
- public_ip: Optional[str] = None
33
- connector_version: Optional[str] = None
33
+ public_ip: str | None = None
34
+ connector_version: str | None = None
34
35
 
35
36
 
36
37
  @dataclass
@@ -41,9 +42,9 @@ class OperationEvent(BaseEvent):
41
42
  entity: str
42
43
  action: str
43
44
  timing_ms: float
44
- public_ip: Optional[str] = None
45
- status_code: Optional[int] = None
46
- error_type: Optional[str] = None
45
+ public_ip: str | None = None
46
+ status_code: int | None = None
47
+ error_type: str | None = None
47
48
 
48
49
 
49
50
  @dataclass
@@ -55,4 +56,4 @@ class SessionEndEvent(BaseEvent):
55
56
  operation_count: int
56
57
  success_count: int
57
58
  failure_count: int
58
- public_ip: Optional[str] = None
59
+ public_ip: str | None = None
@@ -4,7 +4,6 @@ import logging
4
4
  import platform
5
5
  import sys
6
6
  from datetime import datetime
7
- from typing import Optional
8
7
 
9
8
  from ..observability import ObservabilitySession
10
9
 
@@ -20,7 +19,7 @@ class SegmentTracker:
20
19
  def __init__(
21
20
  self,
22
21
  session: ObservabilitySession,
23
- mode: Optional[TelemetryMode] = None,
22
+ mode: TelemetryMode | None = None,
24
23
  ):
25
24
  self.session = session
26
25
  self.mode = mode or TelemetryConfig.get_mode()
@@ -31,6 +30,8 @@ class SegmentTracker:
31
30
 
32
31
  if self.enabled:
33
32
  try:
33
+ # NOTE: Import here intentionally - segment is an optional dependency.
34
+ # This allows the SDK to work without telemetry if segment is not installed.
34
35
  import segment.analytics as analytics
35
36
 
36
37
  analytics.write_key = SEGMENT_WRITE_KEY
@@ -47,7 +48,7 @@ class SegmentTracker:
47
48
 
48
49
  def track_connector_init(
49
50
  self,
50
- connector_version: Optional[str] = None,
51
+ connector_version: str | None = None,
51
52
  ) -> None:
52
53
  """Track connector initialization."""
53
54
  if not self.enabled or not self._analytics:
@@ -59,6 +60,7 @@ class SegmentTracker:
59
60
  session_id=self.session.session_id,
60
61
  user_id=self.session.user_id,
61
62
  execution_context=self.session.execution_context,
63
+ is_internal_user=self.session.is_internal_user,
62
64
  public_ip=self.session.public_ip,
63
65
  connector_name=self.session.connector_name,
64
66
  connector_version=connector_version,
@@ -81,9 +83,9 @@ class SegmentTracker:
81
83
  self,
82
84
  entity: str,
83
85
  action: str,
84
- status_code: Optional[int],
86
+ status_code: int | None,
85
87
  timing_ms: float,
86
- error_type: Optional[str] = None,
88
+ error_type: str | None = None,
87
89
  ) -> None:
88
90
  """Track API operation."""
89
91
  # Always track success/failure counts (useful even when tracking is disabled)
@@ -101,6 +103,7 @@ class SegmentTracker:
101
103
  session_id=self.session.session_id,
102
104
  user_id=self.session.user_id,
103
105
  execution_context=self.session.execution_context,
106
+ is_internal_user=self.session.is_internal_user,
104
107
  public_ip=self.session.public_ip,
105
108
  connector_name=self.session.connector_name,
106
109
  entity=entity,
@@ -130,6 +133,7 @@ class SegmentTracker:
130
133
  session_id=self.session.session_id,
131
134
  user_id=self.session.user_id,
132
135
  execution_context=self.session.execution_context,
136
+ is_internal_user=self.session.is_internal_user,
133
137
  public_ip=self.session.public_ip,
134
138
  connector_name=self.session.connector_name,
135
139
  duration_seconds=self.session.duration_seconds(),
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from enum import Enum
6
6
  from typing import Any
7
+ from uuid import UUID
7
8
 
8
9
  from pydantic import BaseModel, ConfigDict, Field
9
10
 
@@ -21,7 +22,7 @@ class Action(str, Enum):
21
22
  UPDATE = "update"
22
23
  DELETE = "delete"
23
24
  LIST = "list"
24
- SEARCH = "search"
25
+ API_SEARCH = "api_search"
25
26
  DOWNLOAD = "download"
26
27
  AUTHORIZE = "authorize"
27
28
 
@@ -139,7 +140,7 @@ class AuthConfig(BaseModel):
139
140
  ValueError: If this is a multi-auth config or invalid
140
141
  """
141
142
  if self.is_multi_auth():
142
- raise ValueError("Cannot call get_single_option() on multi-auth config. " "Use options list instead.")
143
+ raise ValueError("Cannot call get_single_option() on multi-auth config. Use options list instead.")
143
144
 
144
145
  if self.type is None:
145
146
  raise ValueError("Invalid AuthConfig: neither single-auth nor multi-auth")
@@ -160,7 +161,7 @@ class EndpointDefinition(BaseModel):
160
161
  path: str # e.g., /v1/customers/{id} (OpenAPI path)
161
162
  path_override: PathOverrideConfig | None = Field(
162
163
  None,
163
- description=("Path override config from x-airbyte-path-override. " "When set, overrides the path for actual HTTP requests."),
164
+ description=("Path override config from x-airbyte-path-override. When set, overrides the path for actual HTTP requests."),
164
165
  )
165
166
  action: Action | None = None # Semantic action (get, list, create, update, delete)
166
167
  description: str | None = None
@@ -220,6 +221,10 @@ class EntityDefinition(BaseModel):
220
221
  model_config = {"populate_by_name": True}
221
222
 
222
223
  name: str
224
+ stream_name: str | None = Field(
225
+ default=None,
226
+ description="Airbyte stream name for cache lookup (from x-airbyte-stream-name schema extension)",
227
+ )
223
228
  actions: list[Action]
224
229
  endpoints: dict[Action, EndpointDefinition]
225
230
  entity_schema: dict[str, Any] | None = Field(default=None, alias="schema")
@@ -230,6 +235,7 @@ class ConnectorModel(BaseModel):
230
235
 
231
236
  model_config = ConfigDict(use_enum_values=True)
232
237
 
238
+ id: UUID
233
239
  name: str
234
240
  version: str = OPENAPI_DEFAULT_VERSION
235
241
  base_url: str
@@ -4,14 +4,15 @@ zendesk-support connector.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from typing import TYPE_CHECKING, Any, AsyncIterator, overload
7
+ import logging
8
+ from typing import TYPE_CHECKING, Any, Callable, TypeVar, AsyncIterator, overload
8
9
  try:
9
10
  from typing import Literal
10
11
  except ImportError:
11
12
  from typing_extensions import Literal
12
13
 
13
14
  from .connector_model import ZendeskSupportConnectorModel
14
-
15
+ from ._vendored.connector_sdk.introspection import describe_entities, generate_tool_description
15
16
  from .types import (
16
17
  ArticleAttachmentsDownloadParams,
17
18
  ArticleAttachmentsGetParams,
@@ -53,7 +54,6 @@ from .types import (
53
54
  ViewsGetParams,
54
55
  ViewsListParams,
55
56
  )
56
-
57
57
  if TYPE_CHECKING:
58
58
  from .models import ZendeskSupportAuthConfig
59
59
  # Import specific auth config classes for multi-auth isinstance checks
@@ -102,6 +102,9 @@ from .models import (
102
102
  ArticleAttachmentsGetResult,
103
103
  )
104
104
 
105
+ # TypeVar for decorator type preservation
106
+ _F = TypeVar("_F", bound=Callable[..., Any])
107
+
105
108
 
106
109
  class ZendeskSupportConnector:
107
110
  """
@@ -111,7 +114,7 @@ class ZendeskSupportConnector:
111
114
  """
112
115
 
113
116
  connector_name = "zendesk-support"
114
- connector_version = "0.1.3"
117
+ connector_version = "0.1.4"
115
118
  vendored_sdk_version = "0.1.0" # Version of vendored connector-sdk
116
119
 
117
120
  # Map of (entity, action) -> has_extractors for envelope wrapping decision
@@ -205,10 +208,9 @@ class ZendeskSupportConnector:
205
208
  def __init__(
206
209
  self,
207
210
  auth_config: ZendeskSupportAuthConfig | None = None,
208
- connector_id: str | None = None,
211
+ external_user_id: str | None = None,
209
212
  airbyte_client_id: str | None = None,
210
213
  airbyte_client_secret: str | None = None,
211
- airbyte_connector_api_url: str | None = None,
212
214
  on_token_refresh: Any | None = None,
213
215
  subdomain: str | None = None ):
214
216
  """
@@ -216,14 +218,13 @@ class ZendeskSupportConnector:
216
218
 
217
219
  Supports both local and hosted execution modes:
218
220
  - Local mode: Provide `auth_config` for direct API calls
219
- - Hosted mode: Provide `connector_id`, `airbyte_client_id`, and `airbyte_client_secret` for hosted execution
221
+ - Hosted mode: Provide `external_user_id`, `airbyte_client_id`, and `airbyte_client_secret` for hosted execution
220
222
 
221
223
  Args:
222
224
  auth_config: Typed authentication configuration (required for local mode)
223
- connector_id: Connector ID (required for hosted mode)
225
+ external_user_id: External user ID (required for hosted mode)
224
226
  airbyte_client_id: Airbyte OAuth client ID (required for hosted mode)
225
227
  airbyte_client_secret: Airbyte OAuth client secret (required for hosted mode)
226
- airbyte_connector_api_url: Airbyte connector API URL (defaults to Airbyte Cloud API URL)
227
228
  on_token_refresh: Optional callback for OAuth2 token refresh persistence.
228
229
  Called with new_tokens dict when tokens are refreshed. Can be sync or async.
229
230
  Example: lambda tokens: save_to_database(tokens) subdomain: Your Zendesk subdomain
@@ -232,7 +233,7 @@ class ZendeskSupportConnector:
232
233
  connector = ZendeskSupportConnector(auth_config=ZendeskSupportAuthConfig(access_token="...", refresh_token="..."))
233
234
  # Hosted mode (executed on Airbyte cloud)
234
235
  connector = ZendeskSupportConnector(
235
- connector_id="connector-456",
236
+ external_user_id="user-123",
236
237
  airbyte_client_id="client_abc123",
237
238
  airbyte_client_secret="secret_xyz789"
238
239
  )
@@ -248,20 +249,20 @@ class ZendeskSupportConnector:
248
249
  on_token_refresh=save_tokens
249
250
  )
250
251
  """
251
- # Hosted mode: connector_id, airbyte_client_id, and airbyte_client_secret provided
252
- if connector_id and airbyte_client_id and airbyte_client_secret:
252
+ # Hosted mode: external_user_id, airbyte_client_id, and airbyte_client_secret provided
253
+ if external_user_id and airbyte_client_id and airbyte_client_secret:
253
254
  from ._vendored.connector_sdk.executor import HostedExecutor
254
255
  self._executor = HostedExecutor(
255
- connector_id=connector_id,
256
+ external_user_id=external_user_id,
256
257
  airbyte_client_id=airbyte_client_id,
257
258
  airbyte_client_secret=airbyte_client_secret,
258
- api_url=airbyte_connector_api_url,
259
+ connector_definition_id=str(ZendeskSupportConnectorModel.id),
259
260
  )
260
261
  else:
261
262
  # Local mode: auth_config required
262
263
  if not auth_config:
263
264
  raise ValueError(
264
- "Either provide (connector_id, airbyte_client_id, airbyte_client_secret) for hosted mode "
265
+ "Either provide (external_user_id, airbyte_client_id, airbyte_client_secret) for hosted mode "
265
266
  "or auth_config for local mode"
266
267
  )
267
268
 
@@ -714,6 +715,88 @@ class ZendeskSupportConnector:
714
715
  # No extractors - return raw response data
715
716
  return result.data
716
717
 
718
+ # ===== INTROSPECTION METHODS =====
719
+
720
+ @classmethod
721
+ def describe(cls, func: _F) -> _F:
722
+ """
723
+ Decorator that populates a function's docstring with connector capabilities.
724
+
725
+ This class method can be used as a decorator to automatically generate
726
+ comprehensive documentation for AI tool functions.
727
+
728
+ Usage:
729
+ @mcp.tool()
730
+ @ZendeskSupportConnector.describe
731
+ async def execute(entity: str, action: str, params: dict):
732
+ '''Execute operations.'''
733
+ ...
734
+
735
+ The decorated function's __doc__ will be updated with:
736
+ - Available entities and their actions
737
+ - Parameter signatures with required (*) and optional (?) markers
738
+ - Response structure documentation
739
+ - Example questions (if available in OpenAPI spec)
740
+
741
+ Args:
742
+ func: The function to decorate
743
+
744
+ Returns:
745
+ The same function with updated __doc__
746
+ """
747
+ description = generate_tool_description(ZendeskSupportConnectorModel)
748
+
749
+ original_doc = func.__doc__ or ""
750
+ if original_doc.strip():
751
+ func.__doc__ = f"{original_doc.strip()}\n{description}"
752
+ else:
753
+ func.__doc__ = description
754
+
755
+ return func
756
+
757
+ def list_entities(self) -> list[dict[str, Any]]:
758
+ """
759
+ Get structured data about available entities, actions, and parameters.
760
+
761
+ Returns a list of entity descriptions with:
762
+ - entity_name: Name of the entity (e.g., "contacts", "deals")
763
+ - description: Entity description from the first endpoint
764
+ - available_actions: List of actions (e.g., ["list", "get", "create"])
765
+ - parameters: Dict mapping action -> list of parameter dicts
766
+
767
+ Example:
768
+ entities = connector.list_entities()
769
+ for entity in entities:
770
+ print(f"{entity['entity_name']}: {entity['available_actions']}")
771
+ """
772
+ return describe_entities(ZendeskSupportConnectorModel)
773
+
774
+ def entity_schema(self, entity: str) -> dict[str, Any] | None:
775
+ """
776
+ Get the JSON schema for an entity.
777
+
778
+ Args:
779
+ entity: Entity name (e.g., "contacts", "companies")
780
+
781
+ Returns:
782
+ JSON schema dict describing the entity structure, or None if not found.
783
+
784
+ Example:
785
+ schema = connector.entity_schema("contacts")
786
+ if schema:
787
+ print(f"Contact properties: {list(schema.get('properties', {}).keys())}")
788
+ """
789
+ entity_def = next(
790
+ (e for e in ZendeskSupportConnectorModel.entities if e.name == entity),
791
+ None
792
+ )
793
+ if entity_def is None:
794
+ logging.getLogger(__name__).warning(
795
+ f"Entity '{entity}' not found. Available entities: "
796
+ f"{[e.name for e in ZendeskSupportConnectorModel.entities]}"
797
+ )
798
+ return entity_def.entity_schema if entity_def else None
799
+
717
800
 
718
801
 
719
802
  class TicketsQuery:
@@ -23,10 +23,14 @@ from ._vendored.connector_sdk.schema.security import (
23
23
  from ._vendored.connector_sdk.schema.components import (
24
24
  PathOverrideConfig,
25
25
  )
26
+ from uuid import (
27
+ UUID,
28
+ )
26
29
 
27
30
  ZendeskSupportConnectorModel: ConnectorModel = ConnectorModel(
31
+ id=UUID('79c1aa37-dae3-42ae-b333-d1c105477715'),
28
32
  name='zendesk-support',
29
- version='0.1.3',
33
+ version='0.1.4',
30
34
  base_url='https://{subdomain}.zendesk.com/api/v2',
31
35
  auth=AuthConfig(
32
36
  options=[
@@ -56,6 +60,7 @@ ZendeskSupportConnectorModel: ConnectorModel = ConnectorModel(
56
60
  ),
57
61
  },
58
62
  auth_mapping={'access_token': '${access_token}', 'refresh_token': '${refresh_token}'},
63
+ replication_auth_key_mapping={'access_token': 'access_token'},
59
64
  ),
60
65
  ),
61
66
  AuthOption(
@@ -79,6 +84,7 @@ ZendeskSupportConnectorModel: ConnectorModel = ConnectorModel(
79
84
  ),
80
85
  },
81
86
  auth_mapping={'username': '${email}/token', 'password': '${api_token}'},
87
+ replication_auth_key_mapping={'email': 'email', 'api_token': 'api_token'},
82
88
  ),
83
89
  ),
84
90
  ],
@@ -3,7 +3,7 @@ Type definitions for zendesk-support connector.
3
3
  """
4
4
  from __future__ import annotations
5
5
 
6
- # Use typing_extensions.TypedDict for Pydantic compatibility on Python < 3.12
6
+ # Use typing_extensions.TypedDict for Pydantic compatibility
7
7
  try:
8
8
  from typing_extensions import TypedDict, NotRequired
9
9
  except ImportError:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-zendesk-support
3
- Version: 0.18.18
3
+ Version: 0.18.39
4
4
  Summary: Airbyte Zendesk-Support Connector for AI platforms
5
5
  Project-URL: Homepage, https://github.com/airbytehq/airbyte-embedded
6
6
  Project-URL: Documentation, https://github.com/airbytehq/airbyte-embedded/tree/main/integrations
@@ -13,13 +13,9 @@ Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: Other/Proprietary License
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.9
17
- Classifier: Programming Language :: Python :: 3.10
18
- Classifier: Programming Language :: Python :: 3.11
19
- Classifier: Programming Language :: Python :: 3.12
20
16
  Classifier: Programming Language :: Python :: 3.13
21
17
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
- Requires-Python: >=3.9
18
+ Requires-Python: >=3.13
23
19
  Requires-Dist: httpx>=0.24.0
24
20
  Requires-Dist: jinja2>=3.0.0
25
21
  Requires-Dist: jsonpath-ng>=1.6.1
@@ -32,7 +28,7 @@ Requires-Dist: pyyaml>=6.0
32
28
  Requires-Dist: segment-analytics-python>=2.2.0
33
29
  Description-Content-Type: text/markdown
34
30
 
35
- # Airbyte Zendesk-Support AI Connector
31
+ # Zendesk-Support agent connector
36
32
 
37
33
  Zendesk Support is a customer service platform that helps businesses manage support
38
34
  tickets, customer interactions, and help center content. This connector provides
@@ -41,24 +37,28 @@ triggers, macros, views, satisfaction ratings, SLA policies, and help center art
41
37
  for customer support analytics and service performance insights.
42
38
 
43
39
 
44
- ## Example Questions
40
+ ## Example questions
41
+
42
+ The Zendesk-Support connector is optimized to handle prompts like these.
45
43
 
46
44
  - Show me the tickets assigned to me last week
47
45
  - What are the top 5 support issues our organization has faced this month?
48
- - List all unresolved tickets for [customerX]
46
+ - List all unresolved tickets for \{customer\}
49
47
  - Analyze the satisfaction ratings for our support team in the last 30 days
50
48
  - Compare ticket resolution times across different support groups
51
- - Show me the details of recent tickets tagged with [specific tag]
49
+ - Show me the details of recent tickets tagged with \{tag\}
52
50
  - Identify the most common ticket fields used in our support workflow
53
51
  - Summarize the performance of our SLA policies this quarter
54
52
 
55
- ## Unsupported Questions
53
+ ## Unsupported questions
54
+
55
+ The Zendesk-Support connector isn't currently able to handle prompts like these.
56
56
 
57
- - Create a new support ticket for [customerX]
57
+ - Create a new support ticket for \{customer\}
58
58
  - Update the priority of this ticket
59
- - Assign this ticket to [teamMember]
59
+ - Assign this ticket to \{team_member\}
60
60
  - Delete these old support tickets
61
- - Send an automatic response to [customerX]
61
+ - Send an automatic response to \{customer\}
62
62
 
63
63
  ## Installation
64
64
 
@@ -68,19 +68,42 @@ uv pip install airbyte-agent-zendesk-support
68
68
 
69
69
  ## Usage
70
70
 
71
+ This connector supports multiple authentication methods:
72
+
73
+ ### OAuth 2.0
74
+
71
75
  ```python
72
- from airbyte_agent_zendesk_support import ZendeskSupportConnector, ZendeskSupportAuthConfig
76
+ from airbyte_agent_zendesk_support import ZendeskSupportConnector
77
+ from airbyte_agent_zendesk_support.models import ZendeskSupportOauth20AuthConfig
73
78
 
74
79
  connector = ZendeskSupportConnector(
75
- auth_config=ZendeskSupportAuthConfig(
80
+ auth_config=ZendeskSupportOauth20AuthConfig(
76
81
  access_token="...",
77
82
  refresh_token="..."
78
83
  )
79
84
  )
80
- result = connector.tickets.list()
85
+ result = await connector.tickets.list()
86
+ ```
87
+
88
+ ### API Token
89
+
90
+ ```python
91
+ from airbyte_agent_zendesk_support import ZendeskSupportConnector
92
+ from airbyte_agent_zendesk_support.models import ZendeskSupportApiTokenAuthConfig
93
+
94
+ connector = ZendeskSupportConnector(
95
+ auth_config=ZendeskSupportApiTokenAuthConfig(
96
+ email="...",
97
+ api_token="..."
98
+ )
99
+ )
100
+ result = await connector.tickets.list()
81
101
  ```
82
102
 
83
- ## Documentation
103
+
104
+ ## Full documentation
105
+
106
+ This connector supports the following entities and actions.
84
107
 
85
108
  | Entity | Actions |
86
109
  |--------|---------|
@@ -108,14 +131,12 @@ result = connector.tickets.list()
108
131
  | Article Attachments | [List](./REFERENCE.md#article-attachments-list), [Get](./REFERENCE.md#article-attachments-get), [Download](./REFERENCE.md#article-attachments-download) |
109
132
 
110
133
 
111
- For detailed documentation on available actions and parameters, see [REFERENCE.md](./REFERENCE.md).
112
-
113
- For the service's official API docs, see [Zendesk-Support API Reference](https://developer.zendesk.com/api-reference/ticketing/introduction/).
114
-
115
- ## Version Information
134
+ For detailed documentation on available actions and parameters, see this connector's [full reference documentation](./REFERENCE.md).
116
135
 
117
- **Package Version:** 0.18.18
136
+ For the service's official API docs, see the [Zendesk-Support API reference](https://developer.zendesk.com/api-reference/ticketing/introduction/).
118
137
 
119
- **Connector Version:** 0.1.3
138
+ ## Version information
120
139
 
121
- **Generated with connector-sdk:** c4c39c2797ecd929407c9417c728d425f77b37ed
140
+ - **Package version:** 0.18.39
141
+ - **Connector version:** 0.1.4
142
+ - **Generated with Connector SDK commit SHA:** a23d9e7ac2d9d416258f7a9a3b9a731782cd6bd8
@@ -1,53 +1,57 @@
1
1
  airbyte_agent_zendesk_support/__init__.py,sha256=MPz4HU055DRA3-1qgbGXh2E0YHmhcexQCFl-Tz21gm4,6227
2
- airbyte_agent_zendesk_support/connector.py,sha256=-LPmn1PIRQXv88xHRvBMs4mKXhxQqfOQwN5sT_ay3hU,63971
3
- airbyte_agent_zendesk_support/connector_model.py,sha256=Ccfavcm8fqVUB6orIrkBxbOIQDtsLUvDSncyrwNkvAU,241047
2
+ airbyte_agent_zendesk_support/connector.py,sha256=bW99aXhfnVwjoTPXr0tJ2kjr6Prl_5AqMRlC4cgn2Dg,67056
3
+ airbyte_agent_zendesk_support/connector_model.py,sha256=M1phs0lN_6nxKgEF4enlA2znIMIDOMPkQiHY6BYszeE,241309
4
4
  airbyte_agent_zendesk_support/models.py,sha256=31bsOmf4nBdf8EXN3JpYzXW8mx6gv1xaZjeuEBgSzws,36399
5
- airbyte_agent_zendesk_support/types.py,sha256=3CxJ8HosRMyzNEbVmRbybNCTVj9Ycxr7io25TP3YcCQ,6337
5
+ airbyte_agent_zendesk_support/types.py,sha256=vaWdcxDIJ8_nH7sv9PBsdWOKuTPVkskLur7fQF5Ln94,6320
6
6
  airbyte_agent_zendesk_support/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6axPWFWty80,38
7
7
  airbyte_agent_zendesk_support/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
8
- airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_strategies.py,sha256=0BfIISVzuvZTAYZjQFOOhKTpw0QuKDlLQBQ1PQo-V2M,39967
9
- airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_template.py,sha256=vKnyA21Jp33EuDjkIUAf1PGicwk4t9kZAPJuAgAZKzU,4458
10
- airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py,sha256=OEaXMI8lhjH-vAPfgaefrSijZJfttNqC6Ee3u2apYnA,33901
11
- airbyte_agent_zendesk_support/_vendored/connector_sdk/constants.py,sha256=uH4rjBX6WsBP8M0jt7AUJI9w5Adn4wvJwib7Gdfkr1M,2736
8
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_strategies.py,sha256=BdjAzFRTwXCmLFqYWqZ4Dx9RsqtI7pAkw-8NynSK4sQ,39914
9
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_template.py,sha256=nju4jqlFC_KI82ILNumNIyiUtRJcy7J94INIZ0QraI4,4454
10
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py,sha256=Cx9wPhKwWfzkc8i63IevL0EsN3iWUl_OA-_jA9EKNcE,34877
11
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/constants.py,sha256=AtzOvhDMWbRJgpsQNWl5tkogHD6mWgEY668PgRmgtOY,2737
12
12
  airbyte_agent_zendesk_support/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
13
- airbyte_agent_zendesk_support/_vendored/connector_sdk/extensions.py,sha256=iWA2i0kiiGZY84H8P25A6QmfbuZwu7euMcj4-Vx2DOQ,20185
14
- airbyte_agent_zendesk_support/_vendored/connector_sdk/http_client.py,sha256=Uv86Hye3uIs2F4TbXXFWnB4E6BHfvJQLBwak7J1_0kw,27073
15
- airbyte_agent_zendesk_support/_vendored/connector_sdk/secrets.py,sha256=UWcO9fP-vZwcfkAuvlZahlOCTOwdNN860BIwe8X4jxw,6868
16
- airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py,sha256=1yz4O8wjL5Aytzz0duluxJZ7ntEFIBlA4_6XSAlizpE,8079
13
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/extensions.py,sha256=XWRRoJOOrwUHSKbuQt5DU7CCu8ePzhd_HuP7c_uD77w,21376
14
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/http_client.py,sha256=NdccrrBHI5rW56XnXcP54arCwywIVKnMeSQPas6KlOM,27466
15
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/introspection.py,sha256=2CyKXZHT74-1Id97uw1RLeyOi6TV24_hoNbQ6-6y7uI,10335
16
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/secrets.py,sha256=J9ezMu4xNnLW11xY5RCre6DHP7YMKZCqwGJfk7ufHAM,6855
17
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py,sha256=CStkOsLtmZZdXylkdCsbYORDzughxygt1-Ucma0j-qE,8287
17
18
  airbyte_agent_zendesk_support/_vendored/connector_sdk/utils.py,sha256=G4LUXOC2HzPoND2v4tQW68R9uuPX9NQyCjaGxb7Kpl0,1958
18
19
  airbyte_agent_zendesk_support/_vendored/connector_sdk/validation.py,sha256=CDjCux1eg35a0Y4BegSivzIwZjiTqOxYWotWNLqTSVU,31792
20
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/__init__.py,sha256=4799Hv9f2zxDVj1aLyQ8JpTEuFTp_oOZMRz-NZCdBJg,134
21
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/client.py,sha256=YxdRpQr9XjDzih6csSseBVGn9kfMtaqbOCXP0TPuzFY,7189
19
22
  airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/__init__.py,sha256=EmG9YQNAjSuYCVB4D5VoLm4qpD1KfeiiOf7bpALj8p8,702
20
- airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/hosted_executor.py,sha256=FXlV4JgYbYMHVHMbeMH8LOdhsXuw-flEJjHXf7JmMtc,6756
21
- airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py,sha256=hHlBTtvykrUcfypzyW0e61fU4e3vlxc90mypCFzgSl0,61879
23
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/hosted_executor.py,sha256=ydHcG-biRS1ITT5ELwPShdJW-KYpvK--Fos1ipNgHho,6995
24
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py,sha256=bfvdObgQ6NsriDMf85Ykxx1TPvjr7tuURl_K12md1YA,65258
22
25
  airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/models.py,sha256=lYVT_bNcw-PoIks4WHNyl2VY-lJVf2FntzINSOBIheE,5845
23
26
  airbyte_agent_zendesk_support/_vendored/connector_sdk/http/__init__.py,sha256=y8fbzZn-3yV9OxtYz8Dy6FFGI5v6TOqADd1G3xHH3Hw,911
24
27
  airbyte_agent_zendesk_support/_vendored/connector_sdk/http/config.py,sha256=6J7YIIwHC6sRu9i-yKa5XvArwK2KU60rlnmxzDZq3lw,3283
25
28
  airbyte_agent_zendesk_support/_vendored/connector_sdk/http/exceptions.py,sha256=eYdYmxqcwA6pgrSoRXNfR6_nRBGRH6upp2-r1jcKaZo,3586
26
29
  airbyte_agent_zendesk_support/_vendored/connector_sdk/http/protocols.py,sha256=eV7NbBIQOcPLw-iu8mtkV2zCVgScDwP0ek1SbPNQo0g,3323
27
- airbyte_agent_zendesk_support/_vendored/connector_sdk/http/response.py,sha256=r7QFYRkw6is-Na7WozAyzZynpCQ90RBUhnX4pBSJ1Yc,3338
30
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/http/response.py,sha256=Q-RyM5D0D05ZhmZVJk4hVpmoS8YtyXNOTM5hqBt7rWI,3475
28
31
  airbyte_agent_zendesk_support/_vendored/connector_sdk/http/adapters/__init__.py,sha256=gjbWdU4LfzUG2PETI0TkfkukdzoCAhpL6FZtIEnkO-s,209
29
32
  airbyte_agent_zendesk_support/_vendored/connector_sdk/http/adapters/httpx_adapter.py,sha256=dkYhzBWiKBmzWZlc-cRTx50Hb6fy3OI8kOQvXRfS1CQ,8465
30
33
  airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/__init__.py,sha256=IZoE5yXhwSA0m3xQqh0FiCifjp1sB3S8jnnFPuJLYf8,227
31
- airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/logger.py,sha256=Nh0h3C0aO-rAqZhDIyeEXG6Jd7yj1Gk32ECMPth0wl8,8118
32
- airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/types.py,sha256=iI-xLoOg33OUGQOp3CeaxKtHh73WXE-oul6ZCNf3Nzc,3209
34
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/logger.py,sha256=GKm03UgDMNlvGuuH_c07jNcZmUccC3DISG269Ehj1Uo,8084
35
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/types.py,sha256=z0UiSdXP_r71mtwWkJydo0InsNpYOMyI7SVutzd2PEo,3172
33
36
  airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/__init__.py,sha256=ojx1n9vaWCXFFvb3-90Pwtg845trFdV2v6wcCoO75Ko,269
34
- airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/models.py,sha256=rF6-SoAAywqL8bhEv7yCbmr_W_w0vmApO-MCxcHq9RI,473
37
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/config.py,sha256=uWvRAPHnEusVKviQQncqcpnHKNhoZ4ZoFK6nUOSVClY,5372
38
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/models.py,sha256=IRGjlJia28_IU7BMSBb5RHWs47yAOLvE20JIIXHazLY,448
35
39
  airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/redactor.py,sha256=HRbSwGxsfQYbYlG4QBVvv8Qnw0d4SMowMv0dTFHsHqQ,2361
36
- airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/session.py,sha256=fLBgb9olATdoC0IMtd8MKe581t1HuK73MiGbghPzUHQ,3083
40
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/session.py,sha256=WYRIB3bVz9HhpElkUO9CILCRIrWs9p2MR2hmf8uJm3E,3086
37
41
  airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/__init__.py,sha256=Sp5fSd1LvtIQkv-fnrKqPsM7-6IWp0sSZSK0mhzal_A,200
38
42
  airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/instrumentation.py,sha256=_dXvNiqdndIBwDjeDKNViWzn_M5FkSUsMmJtFldrmsM,1504
39
- airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/metrics.py,sha256=3-wPwlJyfVLUIG3y7ESxk0avhkILk3z8K7zSrnlZf5U,2833
43
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/metrics.py,sha256=FRff7dKt4iwt_A7pxV5n9kAGBR756PC7q8-weWygPSM,2817
40
44
  airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/__init__.py,sha256=Uymu-QuzGJuMxexBagIvUxpVAigIuIhz3KeBl_Vu4Ko,1638
41
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py,sha256=le4UqbUrPFtWxIwmoTAyS0chYFO5ksEMYDyrkK5ORlI,4776
42
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/components.py,sha256=2ivMNhUAcovw88qvDkW221ILf1L63eXteztTDZL46us,7989
45
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py,sha256=swe27f6sWuuGmG54VAW9K8P5USuhmncpIqAliFcB-OU,4741
46
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/components.py,sha256=x3YCM1p2n_xHi50fMeOX0mXUiPqjGlLHs3Go8jXokb0,7895
43
47
  airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/connector.py,sha256=VFBOzIkLgYBR1XUTmyrPGqBkX8PP-zsG8avQcdJUqXs,3864
44
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/extensions.py,sha256=LdoCuMLNdCj68O47qAL4v8xmqGz5tJgRiNZL5JnL9uw,3311
45
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/operations.py,sha256=zInMjx9iOEVZo-CCWw06Uk2SFg7HtUAXXpO5kFGUwNk,5825
46
- airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/security.py,sha256=Jtrhb58d1zssN5yR7LhLJi-QK0PsZKT7uIvPqanF0co,8114
48
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/extensions.py,sha256=0SKtv1WaW2sHaSZF-gi5dI3p0heGbegphjU2PAyIe-M,3277
49
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/operations.py,sha256=RpzGtAI4yvAtMHAfMUMcUwgHv_qJojnKlNb75_agUF8,5729
50
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/security.py,sha256=zQ9RRuF3LBgLQi_4cItmjXbG_5WKlmCNM3nCil30H90,8470
47
51
  airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgkBU4dfxn1LC5Y0Q9rr2PJbrwjxvPgBLmq8_WafE,211
48
52
  airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
49
- airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/events.py,sha256=NvqjlUbkm6cbGh4ffKxYxtjdwwgzfPF4MKJ2GfgWeFg,1285
50
- airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/tracker.py,sha256=KacNdbHatvPPhnNrycp5YUuD5xpkp56AFcHd-zguBgk,5247
51
- airbyte_agent_zendesk_support-0.18.18.dist-info/METADATA,sha256=uAItn1WzsX2GEGSNlKnufbWc-jJoFJ4Et1JF6sVvDlE,5510
52
- airbyte_agent_zendesk_support-0.18.18.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
53
- airbyte_agent_zendesk_support-0.18.18.dist-info/RECORD,,
53
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/events.py,sha256=8Y1NbXiwISX-V_wRofY7PqcwEXD0dLMnntKkY6XFU2s,1328
54
+ airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/tracker.py,sha256=Ftrk0_ddfM7dZG8hF9xBuPwhbc9D6JZ7Q9qs5o3LEyA,5579
55
+ airbyte_agent_zendesk_support-0.18.39.dist-info/METADATA,sha256=xNilzfisqY_NNjlkxYfqxoIjLQrJxVp1KH5287uOmbE,6065
56
+ airbyte_agent_zendesk_support-0.18.39.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
57
+ airbyte_agent_zendesk_support-0.18.39.dist-info/RECORD,,