Module airbyte_agent_sdk.connectors.zendesk_support
Zendesk-Support connector for Airbyte SDK.
Auto-generated from OpenAPI specification.
Sub-modules
- airbyte_agent_sdk.connectors.zendesk_support.connector
- airbyte_agent_sdk.connectors.zendesk_support.connector_model
- airbyte_agent_sdk.connectors.zendesk_support.models
- airbyte_agent_sdk.connectors.zendesk_support.types
Classes
AirbyteAuthConfig(**data: Any)
: Authentication configuration for Airbyte hosted mode execution.
Pass this to the connector's auth_config parameter to use hosted mode,
where API credentials are stored securely in Airbyte Cloud.
For hosted mode execution, provide client credentials with either:
connector_id: Direct connector/source ID (skips lookup)workspace_name: Workspace name for connector lookup
Attributes: workspace_name: Workspace name for hosted mode connector lookup organization_id: Optional Airbyte organization ID for multi-org selection airbyte_client_id: Airbyte OAuth client ID (required for hosted mode) airbyte_client_secret: Airbyte OAuth client secret (required for hosted mode) connector_id: Specific connector/source ID (skips lookup if provided)
Examples:
Hosted mode with connector_id (no lookup needed)
connector = GongConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )
Hosted mode with workspace_name (lookup by workspace)
connector = GongConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
airbyte_client_id: str | None
: The type of the None singleton.
airbyte_client_secret: str | None
: The type of the None singleton.
connector_id: str | None
: The type of the None singleton.
model_config
: The type of the None singleton.
organization_id: str | None
: The type of the None singleton.
workspace_name: str | None
: The type of the None singleton.
AirbyteSearchMeta(**data: Any)
: Pagination metadata for search responses.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
cursor: str | None
: Cursor for fetching the next page of results.
has_more: bool
: Whether more results are available.
model_config
: The type of the None singleton.
took_ms: int | None
: Time taken to execute the search in milliseconds.
AirbyteSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
- typing.Generic
Descendants
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[BrandsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[DeletedTicketsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[GroupsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[OrganizationsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[SatisfactionRatingsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TagsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketAuditsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketCommentsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketFieldsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketFormsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketMetricsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketsSearchData]
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[UsersSearchData]
Class variables
data: list[~D]
: List of matching records.
meta: airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchMeta
: Pagination metadata.
model_config
: The type of the None singleton.
BrandsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
DeletedTicketsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
GroupsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
OrganizationsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
SatisfactionRatingsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TagsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TicketAuditsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TicketCommentsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TicketFieldsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TicketFormsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TicketMetricsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
TicketsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
UsersSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
BrandsSearchData(**data: Any)
: Search result data for brands entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
active: bool | None
: Indicates whether the brand is set as active
brand_url: str | None
: The public URL of the brand
created_at: str | None
: Timestamp when the brand was created
default: bool | None
: Indicates whether the brand is the default brand for tickets generated from non-branded channels
has_help_center: bool | None
: Indicates whether the brand has a Help Center enabled
help_center_state: str | None
: The state of the Help Center, with allowed values of enabled, disabled, or restricted
host_mapping: str | None
: The host mapping configuration for the brand, visible only to administrators
id: int | None
: Unique identifier automatically assigned when the brand is created
is_deleted: bool | None
: Indicates whether the brand has been deleted
logo: str | None
: Brand logo image file represented as an Attachment object
model_config
: The type of the None singleton.
name: str | None
: The name of the brand
signature_template: str | None
: The signature template used for the brand
subdomain: str | None
: The subdomain associated with the brand
ticket_form_ids: list[typing.Any] | None
: Array of ticket form IDs that are available for use by this brand
updated_at: str | None
: Timestamp when the brand was last updated
url: str | None
: The API URL for accessing this brand resource
DeletedTicketsSearchData(**data: Any)
: Search result data for deleted_tickets entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
actor: dict[str, typing.Any] | None
: The user who performed the deletion action
deleted_at: str | None
: The timestamp when the ticket was deleted
description: str | None
: Additional details or comments about the deleted ticket
id: int | None
: The unique identifier of the deleted ticket
model_config
: The type of the None singleton.
previous_state: str | None
: The state of the ticket before it was deleted
subject: str | None
: The subject or title of the deleted ticket
GroupsSearchData(**data: Any)
: Search result data for groups entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
created_at: str | None
: Timestamp indicating when the group was created
default: bool | None
: Indicates if the group is the default one for the account
deleted: bool | None
: Indicates whether the group has been deleted
description: str | None
: The description of the group
id: int | None
: Unique identifier automatically assigned when creating groups
is_public: bool | None
: Indicates if the group is public (true) or private (false)
model_config
: The type of the None singleton.
name: str | None
: The name of the group
updated_at: str | None
: Timestamp indicating when the group was last updated
url: str | None
: The API URL of the group
OrganizationsSearchData(**data: Any)
: Search result data for organizations entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
created_at: str | None
: Timestamp when the organization was created
deleted_at: str | None
: Timestamp when the organization was deleted
details: str | None
: Details about the organization, such as the address
domain_names: list[typing.Any] | None
: Array of domain names associated with this organization for automatic user assignment
external_id: str | None
: Unique external identifier to associate the organization to an external record (case-insensitive)
group_id: int | None
: ID of the group where new tickets from users in this organization are automatically assigned
id: int | None
: Unique identifier automatically assigned when the organization is created
model_config
: The type of the None singleton.
name: str | None
: Unique name for the organization (mandatory field)
notes: str | None
: Notes about the organization
organization_fields: dict[str, typing.Any] | None
: Key-value object for custom organization fields
shared_comments: bool | None
: Boolean indicating whether end users in this organization can comment on each other's tickets
shared_tickets: bool | None
: Boolean indicating whether end users in this organization can see each other's tickets
tags: list[typing.Any] | None
: Array of tags associated with the organization
updated_at: str | None
: Timestamp of the last update to the organization
url: str | None
: The API URL of this organization
SatisfactionRatingsSearchData(**data: Any)
: Search result data for satisfaction_ratings entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
assignee_id: int | None
: The identifier of the agent assigned to the ticket at the time the rating was submitted
comment: str | None
: Optional comment provided by the requester with the rating
created_at: str | None
: Timestamp indicating when the satisfaction rating was created
group_id: int | None
: The identifier of the group assigned to the ticket at the time the rating was submitted
id: int | None
: Unique identifier for the satisfaction rating, automatically assigned upon creation
model_config
: The type of the None singleton.
reason: str | None
: Free-text reason for a bad rating provided by the requester in a follow-up question
reason_id: int | None
: Identifier for the predefined reason given for a negative rating
requester_id: int | None
: The identifier of the ticket requester who submitted the satisfaction rating
score: str | None
: The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'
ticket_id: int | None
: The identifier of the ticket being rated
updated_at: str | None
: Timestamp indicating when the satisfaction rating was last updated
url: str | None
: The API URL of this satisfaction rating resource
TagsSearchData(**data: Any)
: Search result data for tags entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
count: int | None
: The number of times this tag has been used across resources
model_config
: The type of the None singleton.
name: str | None
: The tag name string used to label and categorize resources
TicketAuditsSearchData(**data: Any)
: Search result data for ticket_audits entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
attachments: list[typing.Any] | None
: Files or documents attached to the audit
author_id: int | None
: The unique identifier of the user who created the audit
created_at: str | None
: Timestamp indicating when the audit was created
events: list[typing.Any] | None
: Array of events that occurred in this audit, such as field changes, comments, or tag updates
id: int | None
: Unique identifier for the audit record, automatically assigned when the audit is created
metadata: dict[str, typing.Any] | None
: Custom and system data associated with the audit
model_config
: The type of the None singleton.
ticket_id: int | None
: The unique identifier of the ticket associated with this audit
via: dict[str, typing.Any] | None
: Describes how the audit was created, providing context about the creation source
TicketCommentsSearchData(**data: Any)
: Search result data for ticket_comments entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
attachments: list[typing.Any] | None
: List of files or media attached to the comment
audit_id: int | None
: Identifier of the audit record associated with this comment event
author_id: int | None
: Identifier of the user who created the comment
body: str | None
: Content of the comment in its original format
created_at: str | None
: Timestamp when the comment was created
event_type: str | None
: Specific classification of the event within the ticket event stream
html_body: str | None
: HTML-formatted content of the comment
id: int | None
: Unique identifier for the comment event
metadata: dict[str, typing.Any] | None
: Additional structured information about the comment not covered by standard fields
model_config
: The type of the None singleton.
plain_body: str | None
: Plain text content of the comment without formatting
public: bool | None
: Boolean indicating whether the comment is visible to end users or is an internal note
ticket_id: int | None
: Identifier of the ticket to which this comment belongs
timestamp: int | None
: Timestamp of when the event occurred in the incremental export stream
type_: str | None
: Type of event, typically indicating this is a comment event
uploads: list[typing.Any] | None
: Array of upload tokens or identifiers for files being attached to the comment
via: dict[str, typing.Any] | None
: Channel or method through which the comment was submitted
via_reference_id: int | None
: Reference identifier for the channel through which the comment was created
TicketFieldsSearchData(**data: Any)
: Search result data for ticket_fields entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
active: bool | None
: Whether this field is currently available for use
agent_description: str | None
: A description of the ticket field that only agents can see
collapsed_for_agents: bool | None
: If true, the field is shown to agents by default; if false, it is hidden alongside infrequently used fields
created_at: str | None
: Timestamp when the custom ticket field was created
custom_field_options: list[typing.Any] | None
: Array of option objects for custom ticket fields of type multiselect or tagger
custom_statuses: list[typing.Any] | None
: List of customized ticket statuses, only present for system ticket fields of type custom_status
description: str | None
: Text describing the purpose of the ticket field to users
editable_in_portal: bool | None
: Whether this field is editable by end users in Help Center
id: int | None
: Unique identifier for the ticket field, automatically assigned when created
key: str | None
: Internal identifier or reference key for the field
model_config
: The type of the None singleton.
position: int | None
: The relative position of the ticket field on a ticket, controlling display order
raw_description: str | None
: The dynamic content placeholder if present, or the description value if not
raw_title: str | None
: The dynamic content placeholder if present, or the title value if not
raw_title_in_portal: str | None
: The dynamic content placeholder if present, or the title_in_portal value if not
regexp_for_validation: str | None
: For regexp fields only, the validation pattern for a field value to be deemed valid
removable: bool | None
: If false, this field is a system field that must be present on all tickets
required: bool | None
: If true, agents must enter a value in the field to change the ticket status to solved
required_in_portal: bool | None
: If true, end users must enter a value in the field to create a request
sub_type_id: int | None
: For system ticket fields of type priority and status, controlling available options
system_field_options: list[typing.Any] | None
: Array of options for system ticket fields of type tickettype, priority, or status
tag: str | None
: For checkbox fields only, a tag added to tickets when the checkbox field is selected
title: str | None
: The title of the ticket field displayed to agents
title_in_portal: str | None
: The title of the ticket field displayed to end users in Help Center
type_: str | None
: Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, or tagger
updated_at: str | None
: Timestamp when the custom ticket field was last updated
url: str | None
: The API URL for this ticket field resource
visible_in_portal: bool | None
: Whether this field is visible to end users in Help Center
TicketFormsSearchData(**data: Any)
: Search result data for ticket_forms entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
active: bool | None
: Indicates if the form is set as active
agent_conditions: list[typing.Any] | None
: Array of condition sets for agent workspaces
created_at: str | None
: Timestamp when the ticket form was created
default: bool | None
: Indicates if the form is the default form for this account
display_name: str | None
: The name of the form that is displayed to an end user
end_user_conditions: list[typing.Any] | None
: Array of condition sets for end user products
end_user_visible: bool | None
: Indicates if the form is visible to the end user
id: int | None
: Unique identifier for the ticket form, automatically assigned when creating the form
in_all_brands: bool | None
: Indicates if the form is available for use in all brands on this account
model_config
: The type of the None singleton.
name: str | None
: The name of the ticket form
position: int | None
: The position of this form among other forms in the account, such as in a dropdown
raw_display_name: str | None
: The dynamic content placeholder if present, or the display_name value if not
raw_name: str | None
: The dynamic content placeholder if present, or the name value if not
restricted_brand_ids: list[typing.Any] | None
: IDs of all brands that this ticket form is restricted to
ticket_field_ids: list[typing.Any] | None
: IDs of all ticket fields included in this ticket form
updated_at: str | None
: Timestamp of the last update to the ticket form
url: str | None
: URL of the ticket form
TicketMetricsSearchData(**data: Any)
: Search result data for ticket_metrics entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
agent_wait_time_in_minutes: dict[str, typing.Any] | None
: Number of minutes the agent spent waiting during calendar and business hours
assigned_at: str | None
: Timestamp when the ticket was assigned
assignee_stations: int | None
: Number of assignees the ticket had
assignee_updated_at: str | None
: Timestamp when the assignee last updated the ticket
created_at: str | None
: Timestamp when the metric record was created
custom_status_updated_at: str | None
: Timestamp when the ticket's custom status was last updated
first_resolution_time_in_minutes: dict[str, typing.Any] | None
: Number of minutes to the first resolution time during calendar and business hours
full_resolution_time_in_minutes: dict[str, typing.Any] | None
: Number of minutes to the full resolution during calendar and business hours
generated_timestamp: int | None
: Timestamp of when record was last updated
group_stations: int | None
: Number of groups the ticket passed through
id: int | None
: Unique identifier for the ticket metric record
initially_assigned_at: str | None
: Timestamp when the ticket was initially assigned
instance_id: int | None
: ID of the Zendesk instance associated with the ticket
latest_comment_added_at: str | None
: Timestamp when the latest comment was added
metric: str | None
: Ticket metrics data
model_config
: The type of the None singleton.
on_hold_time_in_minutes: dict[str, typing.Any] | None
: Number of minutes on hold
reopens: int | None
: Total number of times the ticket was reopened
replies: int | None
: The number of public replies added to a ticket by an agent
reply_time_in_minutes: dict[str, typing.Any] | None
: Number of minutes to the first reply during calendar and business hours
reply_time_in_seconds: dict[str, typing.Any] | None
: Number of seconds to the first reply during calendar hours, only available for Messaging tickets
requester_updated_at: str | None
: Timestamp when the requester last updated the ticket
requester_wait_time_in_minutes: dict[str, typing.Any] | None
: Number of minutes the requester spent waiting during calendar and business hours
solved_at: str | None
: Timestamp when the ticket was solved
status: dict[str, typing.Any] | None
: The current status of the ticket (open, pending, solved, etc.).
status_updated_at: str | None
: Timestamp when the status of the ticket was last updated
ticket_id: int | None
: Identifier of the associated ticket
time: str | None
: Time related to the ticket
type_: str | None
: Type of ticket
updated_at: str | None
: Timestamp when the metric record was last updated
url: str | None
: The API url of the ticket metric
TicketsSearchData(**data: Any)
: Search result data for tickets entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
allow_attachments: bool | None
: Boolean indicating whether attachments are allowed on the ticket
allow_channelback: bool | None
: Boolean indicating whether agents can reply to the ticket through the original channel
assignee_id: int | None
: Unique identifier of the agent currently assigned to the ticket
brand_id: int | None
: Unique identifier of the brand associated with the ticket in multi-brand accounts
collaborator_ids: list[typing.Any] | None
: Array of user identifiers who are collaborating on the ticket
created_at: str | None
: Timestamp indicating when the ticket was created
custom_fields: list[typing.Any] | None
: Array of custom field values specific to the account's ticket configuration
custom_status_id: int | None
: Unique identifier of the custom status applied to the ticket
deleted_ticket_form_id: int | None
: The ID of the ticket form that was previously associated with this ticket but has since been deleted
description: str | None
: Initial description or content of the ticket when it was created
due_at: str | None
: Timestamp indicating when the ticket is due for completion or resolution
email_cc_ids: list[typing.Any] | None
: Array of user identifiers who are CC'd on ticket email notifications
external_id: str | None
: External identifier for the ticket, used for integrations with other systems
fields: list[typing.Any] | None
: Array of ticket field values including both system and custom fields
follower_ids: list[typing.Any] | None
: Array of user identifiers who are following the ticket for updates
followup_ids: list[typing.Any] | None
: Array of identifiers for follow-up tickets related to this ticket
forum_topic_id: int | None
: Unique identifier linking the ticket to a forum topic if applicable
from_messaging_channel: bool | None
: Boolean indicating whether the ticket originated from a messaging channel
generated_timestamp: int | None
: Timestamp updated for all ticket updates including system changes, used for incremental export
group_id: int | None
: Unique identifier of the agent group assigned to handle the ticket
has_incidents: bool | None
: Boolean indicating whether this problem ticket has related incident tickets
id: int | None
: Unique identifier for the ticket
is_public: bool | None
: Boolean indicating whether the ticket is publicly visible
model_config
: The type of the None singleton.
organization_id: int | None
: Unique identifier of the organization associated with the ticket
priority: str | None
: Priority level assigned to the ticket (e.g., urgent, high, normal, low)
problem_id: int | None
: Unique identifier of the problem ticket if this is an incident ticket
raw_subject: str | None
: Original unprocessed subject line before any system modifications
recipient: str | None
: Email address or identifier of the ticket recipient
requester_id: int | None
: Unique identifier of the user who requested or created the ticket
result_type: str | None
: The type of the search result (e.g. ticket) when returned from search endpoints
satisfaction_rating: Any
: Object containing customer satisfaction rating data for the ticket
sharing_agreement_ids: list[typing.Any] | None
: Array of sharing agreement identifiers if the ticket is shared across Zendesk instances
status: str | None
: Current status of the ticket (e.g., new, open, pending, solved, closed)
subject: str | None
: Subject line of the ticket describing the issue or request
submitter_id: int | None
: Unique identifier of the user who submitted the ticket on behalf of the requester
tags: list[typing.Any] | None
: Array of tags applied to the ticket for categorization and filtering
ticket_form_id: int | None
: Unique identifier of the ticket form used when creating the ticket
type_: str | None
: Type of ticket (e.g., problem, incident, question, task)
updated_at: str | None
: Timestamp indicating when the ticket was last updated with a ticket event
url: str | None
: API URL to access the full ticket resource
via: dict[str, typing.Any] | None
: Object describing the channel and method through which the ticket was created
UsersSearchData(**data: Any)
: Search result data for users entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
active: bool | None
: Indicates if the user account is currently active
alias: str | None
: Alternative name or nickname for the user
chat_only: bool | None
: Indicates if the user can only interact via chat
created_at: str | None
: Timestamp indicating when the user was created
custom_role_id: int | None
: Identifier for a custom role assigned to the user
default_group_id: int | None
: Identifier of the default group assigned to the user
details: str | None
: Additional descriptive information about the user
email: str | None
: Email address of the user
external_id: str | None
: External system identifier for the user, used for integrations
iana_time_zone: str | None
: IANA standard time zone identifier for the user
id: int | None
: Unique identifier for the user
last_login_at: str | None
: Timestamp of the user's most recent login
locale: str | None
: Locale setting determining language and regional format preferences
locale_id: int | None
: Identifier for the user's locale preference
model_config
: The type of the None singleton.
moderator: bool | None
: Indicates if the user has moderator privileges
name: str | None
: Display name of the user
notes: str | None
: Internal notes about the user, visible only to agents
only_private_comments: bool | None
: Indicates if the user can only make private comments on tickets
organization_id: int | None
: Identifier of the organization the user belongs to
permanently_deleted: bool | None
: Indicates if the user has been permanently deleted from the system
phone: str | None
: Phone number of the user
photo: dict[str, typing.Any] | None
: Profile photo or avatar of the user
report_csv: bool | None
: Indicates if the user receives reports in CSV format
restricted_agent: bool | None
: Indicates if the agent has restricted access permissions
role: str | None
: Role assigned to the user defining their permissions level
role_type: int | None
: Type classification of the user's role
shared: bool | None
: Indicates if the user is shared across multiple accounts
shared_agent: bool | None
: Indicates if the user is a shared agent across multiple brands or accounts
shared_phone_number: bool | None
: Indicates if the phone number is shared with other users
signature: str | None
: Email signature text for the user
suspended: bool | None
: Indicates if the user account is suspended
tags: list[typing.Any] | None
: Labels or tags associated with the user for categorization
ticket_restriction: str | None
: Defines which tickets the user can access based on restrictions
time_zone: str | None
: Time zone setting for the user
two_factor_auth_enabled: bool | None
: Indicates if two-factor authentication is enabled for the user
updated_at: str | None
: Timestamp indicating when the user was last updated
url: str | None
: API endpoint URL for accessing the user's detailed information
user_fields: dict[str, typing.Any] | None
: Custom field values specific to the user, stored as key-value pairs
verified: bool | None
: Indicates if the user's identity has been verified
ZendeskSupportConnector(auth_config: ZendeskSupportAuthConfig | AirbyteAuthConfig | BaseModel | None = None, on_token_refresh: Any | None = None, subdomain: str | None = None)
: Type-safe Zendesk-Support API connector.
Auto-generated from OpenAPI specification with full type safety.
Initialize a new zendesk-support connector instance.
Supports both local and hosted execution modes:
- Local mode: Provide connector-specific auth config (e.g., ZendeskSupportAuthConfig)
- Hosted mode: Provide
AirbyteAuthConfigwith client credentials and eitherconnector_idorworkspace_name
Args: auth_config: Either connector-specific auth config for local mode, or AirbyteAuthConfig for hosted mode on_token_refresh: Optional callback for OAuth2 token refresh persistence. Called with new_tokens dict when tokens are refreshed. Can be sync or async. Example: lambda tokens: save_to_database(tokens) subdomain: Your Zendesk subdomain Examples:
Local mode (direct API calls)
connector = ZendeskSupportConnector(auth_config=ZendeskSupportAuthConfig(access_token="...", refresh_token="..."))
Hosted mode with explicit connector_id (no lookup needed)
connector = ZendeskSupportConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )
Hosted mode with lookup by workspace_name
connector = ZendeskSupportConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )
Class variables
connector_name
: The type of the None singleton.
connector_version
: The type of the None singleton.
sdk_version
: The type of the None singleton.
Static methods
create(*, airbyte_config: AirbyteAuthConfig, auth_config: "'ZendeskSupportAuthConfig' | None" = None, server_side_oauth_secret_id: str | None = None, name: str | None = None, replication_config: dict[str, Any] | None = None, source_template_id: str | None = None)
: Create a new hosted connector on Airbyte Cloud.
This factory method:
- Creates a source on Airbyte Cloud with the provided credentials
- Returns a connector configured with the new connector_id
Supports two authentication modes:
- Direct credentials: Provide
auth_configwith typed credentials - Server-side OAuth: Provide
server_side_oauth_secret_idfrom OAuth flow
Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. auth_config: Typed auth config. Required unless using server_side_oauth_secret_id. server_side_oauth_secret_id: OAuth secret ID from get_consent_url redirect. When provided, auth_config is not required. name: Optional source name (defaults to connector name + workspace_name) replication_config: Optional replication settings dict. Required for connectors with x-airbyte-replication-config (REPLICATION mode sources). source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.
Returns: A ZendeskSupportConnector instance configured in hosted mode
Raises: ValueError: If neither or both auth_config and server_side_oauth_secret_id provided
Example:
Create a new hosted connector with API key auth
connector = await ZendeskSupportConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), auth_config=ZendeskSupportAuthConfig(access_token="...", refresh_token="..."), )
With server-side OAuth:
connector = await ZendeskSupportConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), server_side_oauth_secret_id="airbyte_oauth_...secret...", )
Use the connector
result = await connector.execute("entity", "list", {})
get_consent_url(*, airbyte_config: AirbyteAuthConfig, redirect_url: str, name: str | None = None, replication_config: dict[str, Any] | None = None, source_template_id: str | None = None) ‑> str
: Initiate server-side OAuth flow with auto-source creation.
Returns a consent URL where the end user should be redirected to grant access.
After completing consent, the source is automatically created and the user is
redirected to your redirect_url with a connector_id query parameter.
Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. redirect_url: URL where users will be redirected after OAuth consent. After consent, user arrives at: redirect_url?connector_id=... name: Optional name for the source. Defaults to connector name + workspace_name. replication_config: Optional replication settings dict. Merged with OAuth credentials. source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.
Returns: The OAuth consent URL
Example: consent_url = await ZendeskSupportConnector.get_consent_url( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), redirect_url="https://myapp.com/oauth/callback", name="My Zendesk-Support Source", )
Redirect user to: consent_url
After consent, user arrives at: https://myapp.com/oauth/callback?connector_id=...
tool_utils(func: _F | None = None, *, update_docstring: bool = True, max_output_chars: int | None = 100000, framework: FrameworkName | None = None, internal_retries: int = 0, should_internal_retry: Callable[[Exception, tuple[Any, ...], dict[str, Any]], bool] | None = None, exhausted_runtime_failure_message: Callable[[Exception, tuple[Any, ...], dict[str, Any]], str | None] | None = None) ‑> ~_F | Callable[[~_F], ~_F]
: Decorator that adds tool utilities like docstring augmentation and output limits.
Composes :func:airbyte_agent_sdk.translation.translate_exceptions for
runtime wrapping (sync/async branch + output-size check + framework
signal translation + optional internal retry loop), and adds
connector-specific docstring augmentation on top of it.
Usage: @mcp.tool() @ZendeskSupportConnector.tool_utils async def execute(entity: str, action: str, params: dict): ...
@mcp.tool() @ZendeskSupportConnector.tool_utils(update_docstring=False, max_output_chars=None) async def execute(entity: str, action: str, params: dict): ...
@mcp.tool() @ZendeskSupportConnector.tool_utils(framework="pydantic_ai", internal_retries=2) async def execute(entity: str, action: str, params: dict): ...
Args:
update_docstring: When True, append connector capabilities to doc.
max_output_chars: Max serialized output size before raising. Use None to disable.
framework: One of "pydantic_ai" | "langchain" | "openai_agents" | "mcp".
Defaults to None → auto-detect by attempting each framework's canonical
import in order. Explicit always wins.
internal_retries: How many transient runtime failures (429/5xx, network,
timeout) to retry silently before surfacing. Default 0. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
should_internal_retry: Optional predicate (error, args, kwargs) -> bool
further restricting which retryable errors are safe for this specific
tool. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
exhausted_runtime_failure_message: Optional callback
(error, args, kwargs) -> str | None. Invoked after internal retries
are exhausted OR were skipped via should_internal_retry returning
False. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
Instance variables
connector_id: str | None
: Get the connector/source ID (only available in hosted mode).
Returns: The connector ID if in hosted mode, None if in local mode.
Example: connector = await ZendeskSupportConnector.create(...) print(f"Created connector: {connector.connector_id}")
Methods
check(self) ‑> airbyte_agent_sdk.connectors.zendesk_support.models.ZendeskSupportCheckResult
: Perform a health check to verify connectivity and credentials.
Executes a lightweight list operation (limit=1) to validate that the connector can communicate with the API and credentials are valid.
Returns: ZendeskSupportCheckResult with status ("healthy" or "unhealthy") and optional error message
Example: result = await connector.check() if result.status == "healthy": print("Connection verified!") else: print(f"Check failed: {result.error}")
close(self)
: Close the connector and release resources.
entity_schema(self, entity: str) ‑> dict[str, typing.Any] | None
: Get the JSON schema for an entity.
Args: entity: Entity name (e.g., "contacts", "companies")
Returns: JSON schema dict describing the entity structure, or None if not found.
Example: schema = connector.entity_schema("contacts") if schema: print(f"Contact properties: {list(schema.get('properties', {}).keys())}")
execute(self, entity: str, action: "Literal['list', 'create', 'get', 'update', 'download', 'context_store_search']", params: Mapping[str, Any] | None = None) ‑> Any
: Execute an entity operation with full type safety.
This is the recommended interface for blessed connectors as it:
- Uses the same signature as non-blessed connectors
- Provides full IDE autocomplete for entity/action/params
- Makes migration from generic to blessed connectors seamless
Args: entity: Entity name (e.g., "customers") action: Operation action (e.g., "create", "get", "list") params: Operation parameters (typed based on entity+action)
Returns: Typed response based on the operation
Example: customer = await connector.execute( entity="customers", action="get", params={"id": "cus_123"} )
list_entities(self) ‑> list[dict[str, typing.Any]]
: Get structured data about available entities, actions, and parameters.
Returns a list of entity descriptions with:
- entity_name: Name of the entity (e.g., "contacts", "deals")
- description: Entity description from the first endpoint
- available_actions: List of actions (e.g., ["list", "get", "create"])
- parameters: Dict mapping action -> list of parameter dicts
Example: entities = connector.list_entities() for entity in entities: print(f"{entity['entity_name']}: {entity['available_actions']}")