zendesk

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2024 License: MIT Imports: 15 Imported by: 21

Documentation

Index

Constants

View Source
const (
	// ActionFieldStatus status
	ActionFieldStatus = iota
	// ActionFieldType type
	ActionFieldType
	// ActionFieldPriority priority
	ActionFieldPriority
	// ActionFieldGroupID group_id
	ActionFieldGroupID
	// ActionFieldAssigneeID assignee_id
	ActionFieldAssigneeID
	// ActionFieldSetTags set_tags
	ActionFieldSetTags
	// ActionFieldCurrentTags current_tags
	ActionFieldCurrentTags
	// ActionFieldRemoveTags remove_tags
	ActionFieldRemoveTags
	// ActionFieldSatisfactionScore satisfaction_score
	ActionFieldSatisfactionScore
	// ActionFieldNotificationUser notification_user
	ActionFieldNotificationUser
	// ActionFieldNotificationGroup notification_group
	ActionFieldNotificationGroup
	// ActionFieldNotificationTarget notification_target
	ActionFieldNotificationTarget
	// ActionFieldTweetRequester tweet_requester
	ActionFieldTweetRequester
	// ActionFieldCC cc
	ActionFieldCC
	// ActionFieldLocaleID locale_id
	ActionFieldLocaleID
	// ActionFieldSubject subject
	ActionFieldSubject
	// ActionFieldCommentValue comment_value
	ActionFieldCommentValue
	// ActionFieldCommentValueHTML comment_value_html
	ActionFieldCommentValueHTML
	// ActionFieldCommentModeIsPublic comment_mode_is_public
	ActionFieldCommentModeIsPublic
	// ActionFieldTicketFormID ticket_form_id
	ActionFieldTicketFormID
)

action field types which defined by system https://developer.zendesk.com/rest_api/docs/core/triggers#actions-reference

View Source
const (
	// ConditionFieldGroupID group_id
	ConditionFieldGroupID = iota
	// ConditionFieldAssigneeID assignee_id
	ConditionFieldAssigneeID
	// ConditionFieldRequesterID requester_id
	ConditionFieldRequesterID
	// ConditionFieldOrganizationID organization_id
	ConditionFieldOrganizationID
	// ConditionFieldCurrentTags current_tags
	ConditionFieldCurrentTags
	// ConditionFieldViaID via_id
	ConditionFieldViaID
	// ConditionFieldRecipient recipient
	ConditionFieldRecipient
	// ConditionFieldType type
	ConditionFieldType
	// ConditionFieldStatus status
	ConditionFieldStatus
	// ConditionFieldPriority priority
	ConditionFieldPriority
	// ConditionFieldDescriptionIncludesWord description_includes_word
	ConditionFieldDescriptionIncludesWord
	// ConditionFieldLocaleID locale_id
	ConditionFieldLocaleID
	// ConditionFieldSatisfactionScore satisfaction_score
	ConditionFieldSatisfactionScore
	// ConditionFieldSubjectIncludesWord subject_includes_word
	ConditionFieldSubjectIncludesWord
	// ConditionFieldCommentIncludesWord comment_includes_word
	ConditionFieldCommentIncludesWord
	// ConditionFieldCurrentViaID current_via_id
	ConditionFieldCurrentViaID
	// ConditionFieldUpdateType update_type
	ConditionFieldUpdateType
	// ConditionFieldCommentIsPublic comment_is_public
	ConditionFieldCommentIsPublic
	// ConditionFieldTicketIsPublic ticket_is_public
	ConditionFieldTicketIsPublic
	// ConditionFieldReopens reopens
	ConditionFieldReopens
	// ConditionFieldReplies
	ConditionFieldReplies
	// ConditionFieldAgentStations agent_stations
	ConditionFieldAgentStations
	// ConditionFieldGroupStations group_stations
	ConditionFieldGroupStations
	// ConditionFieldInBusinessHours in_business_hours
	ConditionFieldInBusinessHours
	// ConditionFieldRequesterTwitterFollowersCount requester_twitter_followers_count
	ConditionFieldRequesterTwitterFollowersCount
	// ConditionFieldRequesterTwitterStatusesCount requester_twitter_statuses_count
	ConditionFieldRequesterTwitterStatusesCount
	// ConditionFieldRequesterTwitterVerified requester_twitter_verified
	ConditionFieldRequesterTwitterVerified
	// ConditionFieldTicketTypeID ticket_type_id
	ConditionFieldTicketTypeID
	// ConditionFieldExactCreatedAt exact_created_at
	ConditionFieldExactCreatedAt
	// ConditionFieldNew NEW
	ConditionFieldNew
	// ConditionFieldOpen OPEN
	ConditionFieldOpen
	// ConditionFieldPending PENDING
	ConditionFieldPending
	// ConditionFieldSolved SOLVED
	ConditionFieldSolved
	// ConditionFieldClosed CLOSED
	ConditionFieldClosed
	// ConditionFieldAssignedAt assigned_at
	ConditionFieldAssignedAt
	// ConditionFieldUpdatedAt updated_at
	ConditionFieldUpdatedAt
	// ConditionFieldRequesterUpdatedAt requester_updated_at
	ConditionFieldRequesterUpdatedAt
	// ConditionFieldAssigneeUpdatedAt
	ConditionFieldAssigneeUpdatedAt
	// ConditionFieldDueDate due_date
	ConditionFieldDueDate
	// ConditionFieldUntilDueDate until_due_date
	ConditionFieldUntilDueDate
)

condition field types which are defined by system https://developer.zendesk.com/rest_api/docs/core/triggers#conditions-reference

View Source
const (
	// LocaleENUS English (United States)
	LocaleENUS = 1
	// LocaleES Spanish - español
	LocaleES = 2
	// LocaleDE German - Deutsch
	LocaleDE = 8
	// LocaleZHTW Chinese (Traditional) - 中文(繁體)
	LocaleZHTW = 9
	// LocaleZHCN Chinese (Simplified) - 中文(简体)
	LocaleZHCN = 10
	// LocalePL Polish - polski
	LocalePL = 13
	// LocaleFR French - français
	LocaleFR = 16
	// LocalePTBR Portuguese (Brazil) - português (Brasil)
	LocalePTBR = 19
	// LocaleIT Italian - italiano
	LocaleIT = 22
	// LocaleRO Romanian - română
	LocaleRO = 23
	// LocaleIS Icelandic - íslenska
	LocaleIS = 24
	// LocaleVI Vietnamese - Tiếng Việt
	LocaleVI = 26
	// LocaleRU Russian - русский
	LocaleRU = 27
	// LocaleHE Hebrew - עברית
	LocaleHE = 30
	// LocaleNO Norwegian - norsk
	LocaleNO = 34
	// LocaleFIL Filipino
	LocaleFIL = 47
	// LocaleAR Arabic - العربية
	LocaleAR = 66
	// LocaleJA Japanese - 日本語
	LocaleJA = 67
	// LocaleKO Korean - 한국어
	LocaleKO = 69
	// LocaleSL Slovenian - slovenščina
	LocaleSL = 72
	// LocaleHR Croatian - hrvatski
	LocaleHR = 74
	// LocaleID Indonesian - Indonesia
	LocaleID = 77
	// LocaleCS Czech - čeština
	LocaleCS = 78
	// LocaleTH Thai - ไทย
	LocaleTH = 81
	// LocaleFI Finnish - suomi
	LocaleFI = 84
	// LocaleTR Turkish - Türkçe
	LocaleTR = 88
	// LocaleSV Swedish - svenska
	LocaleSV = 92
	// LocaleEL Greek - Ελληνικά
	LocaleEL = 93
	// LocaleBG Bulgarian - български
	LocaleBG = 94
	// LocaleET Estonian - eesti
	LocaleET = 101
	// LocaleDA Danish - dansk
	LocaleDA = 1000
	// LocaleSK Slovak - slovenčina
	LocaleSK = 1003
	// LocaleNL Dutch - Nederlands
	LocaleNL = 1005
	// LocaleHU Hungarian - magyar
	LocaleHU = 1009
	// LocalePT Portuguese - português
	LocalePT = 1011
	// LocaleFA Persian - فارسی
	LocaleFA = 1016
	// LocaleCA Catalan - català
	LocaleCA = 1075
	// LocaleLT Lithuanian - lietuvių
	LocaleLT = 1092
	// LocaleLV Latvian - latviešu
	LocaleLV = 1101
	// LocaleSR Serbian - српски
	LocaleSR = 1150
	// LocaleUK Ukrainian - українська
	LocaleUK = 1173
	// LocaleENGB English (United Kingdom)
	LocaleENGB = 1176
	// LocaleENCA English (Canada)
	LocaleENCA = 1181
	// LocaleESES Spanish (Spain) - español (España)
	LocaleESES = 1186
	// LocaleFRCA French (Canada) - français (Canada)
	LocaleFRCA = 1187
	// LocaleES419 Spanish (Latin America) - español (Latinoamérica)
	LocaleES419 = 1194
	// LocaleENAU English (Australia)
	LocaleENAU = 1277
	// LocaleENIN English (India)
	LocaleENIN = 1278
	// LocaleENIE English (Ireland)
	LocaleENIE = 1279
	// LocaleENSG English (Singapore)
	LocaleENSG = 1281
	// LocaleENNZ English (New Zealand)
	LocaleENNZ = 1288
	// LocaleENZA English (South Africa)
	LocaleENZA = 1289
	// LocaleFRBE French (Belgium) - français (Belgique)
	LocaleFRBE = 1291
	// LocaleFRCH French (Switzerland) - français (Suisse)
	LocaleFRCH = 1292
	// LocaleNLBE Dutch (Belgium) - Nederlands (België)
	LocaleNLBE = 1293
	// LocaleDEAT German (Austria) - Deutsch (Österreich)
	LocaleDEAT = 1294
	// LocaleDECH German (Switzerland) - Deutsch (Schweiz)
	LocaleDECH = 1295
	// LocaleHI Hindi - हिन्दी
	LocaleHI = 1303
	// LocaleMS Malay - Melayu
	LocaleMS = 1307
	// LocaleENBE English (Belgium)
	LocaleENBE = 1350
	// LocaleESMX Spanish (Mexico) - español (México)
	LocaleESMX = 1364
	// LocaleFRFR French (France) - français (France)
	LocaleFRFR = 1365
	// LocaleENPH English (Philippines)
	LocaleENPH = 1392
)
View Source
const (
	AgentWorkTimeMetric      = "agent_work_time"
	FirstReplyTimeMetric     = "first_reply_time"
	NextReplyTimeMetric      = "next_reply_time"
	PausableUpdateTimeMetric = "pausable_update_time"
	PeriodicUpdateTimeMetric = "periodic_update_time"
	RequesterWaitTimeMetric  = "requester_wait_time"
)

SLA Policy metric values

ref: https://developer.zendesk.com/rest_api/docs/support/sla_policies#metrics

View Source
const (
	// TicketCommentCreatedAtAsc defines ASC sort val.
	TicketCommentCreatedAtAsc listTicketCommentsSort = "created_at"

	// TicketCommentCreatedAtDesc defines DESC sort val.
	TicketCommentCreatedAtDesc listTicketCommentsSort = "-created_at"

	// ListTicketCommentsMaxPageSize contains the max page size.
	ListTicketCommentsMaxPageSize int = 100
)
View Source
const (
	// UserRoleEndUser end-user
	UserRoleEndUser = iota
	// UserRoleAgent agent
	UserRoleAgent
	// UserRoleAdmin admin
	UserRoleAdmin
)
View Source
const (
	// ViaWebForm : Web form
	ViaWebForm = 0
	// ViaMail : Email
	ViaMail = 4
	// ViaChat : Chat
	ViaChat = 29
	// ViaTwitter : Twitter
	ViaTwitter = 30
	// ViaTwitterDM : Twitter DM
	ViaTwitterDM = 26
	// TwitterFavorite : Twitter like
	ViaTwitterFavorite = 23
	// ViaVoicemail : Voicemail
	ViaVoicemail = 33
	// ViaPhoneCallInbound : Phone call (incoming)
	ViaPhoneCallInbound = 34
	// ViaPhoneCallOutbound : Phone call (outbound)
	ViaPhoneCallOutbound = 35
	// ViaAPIVoicemail : CTI voicemail
	ViaAPIVoicemail = 44
	// ViaAPIPhoneCallInbound : CTI phone call (inbound)
	ViaAPIPhoneCallInbound = 45
	// ViaAPIPhoneCallOutbound : CTI phone call (outbound)
	ViaAPIPhoneCallOutbound = 46
	// ViaSMS : SMS
	ViaSMS = 57
	// ViaGetSatisfaction : Get Satisfaction
	ViaGetSatisfaction = 16
	// ViaWebWidget : Web Widget
	ViaWebWidget = 48
	// ViaMobileSDK : Mobile SDK
	ViaMobileSDK = 49
	// ViaMobile : Mobile
	ViaMobile = 56
	// ViaHelpCenter : Help Center post
	ViaHelpCenter = 50
	// ViaWebService : Web service (API)
	ViaWebService = 5
	// ViaRule : Trigger, automation
	ViaRule = 8
	// ViaClosedTicket : Closed ticket
	ViaClosedTicket = 27
	// ViaTicketSharing : Ticket Sharing
	ViaTicketSharing = 31
	// ViaFacebookPost : Facebook post
	ViaFacebookPost = 38
	// ViaFacebookMessage : Facebook private message
	ViaFacebookMessage = 41
	// ViaSatisfactionPrediction : Satisfaction prediction
	ViaSatisfactionPrediction = 54
	// ViaAnyChannel : Channel framework
	ViaAnyChannel = 55
)

https://developer.zendesk.com/rest_api/docs/support/triggers#via-types

Variables

This section is empty.

Functions

func ActionFieldText

func ActionFieldText(fieldType int) string

ActionFieldText takes field type and returns field name string

func ConditionFieldText

func ConditionFieldText(fieldType int) string

ConditionFieldText takes field type and returns field name string

func LocaleTypeText added in v0.1.0

func LocaleTypeText(loc int) string

LocaleTypeText returns locale type text

func UserRoleText added in v0.1.0

func UserRoleText(role int) string

UserRoleText takes role type and returns role name string

func ViaTypeText

func ViaTypeText(viaID int) string

ViaTypeText takes via_id and returns via_type

Types

type APITokenCredential

type APITokenCredential struct {
	// contains filtered or unexported fields
}

APITokenCredential is type of credential for API token authentication

func NewAPITokenCredential

func NewAPITokenCredential(email string, apiToken string) *APITokenCredential

NewAPITokenCredential creates APITokenCredential and returns its pointer

func (APITokenCredential) Bearer added in v0.13.2

func (c APITokenCredential) Bearer() bool

Bearer is accessor which returns whether the credential is a bearer token

func (APITokenCredential) Email

func (c APITokenCredential) Email() string

Email is accessor which returns email address

func (APITokenCredential) Secret

func (c APITokenCredential) Secret() string

Secret is accessor which returns API token

type AppAPI added in v0.13.4

type AppAPI interface {
	ListInstallations(ctx context.Context) ([]AppInstallation, error)
}

AppAPI is an interface containing all methods associated with zendesk apps

type AppInstallation added in v0.13.4

type AppInstallation struct {
	ID       int64  `json:"id"`
	AppID    int64  `json:"app_id"`
	Product  string `json:"product"`
	Settings struct {
		Name  string `json:"name"`
		Title string `json:"title"`
	} `json:"settings"`
	SettingsObjects []struct {
		Name  string `json:"name"`
		Value string `json:"value"`
	} `json:"settings_objects"`
	Enabled                   bool      `json:"enabled"`
	Updated                   string    `json:"updated"`
	UpdatedAt                 time.Time `json:"updated_at"`
	CreatedAt                 time.Time `json:"created_at"`
	RecurringPayment          bool      `json:"recurring_payment"`
	Collapsible               bool      `json:"collapsible"`
	Paid                      bool      `json:"paid"`
	HasUnpaidSubscription     bool      `json:"has_unpaid_subscription"`
	HasIncompleteSubscription bool      `json:"has_incomplete_subscription"`
}

AppInstallation is a struct representing an app that has been installed from the Zendesk Marketplace. https://developer.zendesk.com/api-reference/ticketing/apps/apps/#example-responses-11

type Attachment added in v0.2.0

type Attachment struct {
	ID          int64   `json:"id,omitempty"`
	FileName    string  `json:"file_name,omitempty"`
	ContentURL  string  `json:"content_url,omitempty"`
	ContentType string  `json:"content_type,omitempty"`
	Size        int64   `json:"size,omitempty"`
	Thumbnails  []Photo `json:"thumbnails,omitempty"`
	Inline      bool    `json:"inline,omitempty"`
}

Attachment is struct for attachment payload https://developer.zendesk.com/rest_api/docs/support/attachments.html

type AttachmentAPI added in v0.2.0

type AttachmentAPI interface {
	UploadAttachment(ctx context.Context, filename string, token string) UploadWriter
	DeleteUpload(ctx context.Context, token string) error
	GetAttachment(ctx context.Context, id int64) (Attachment, error)
}

AttachmentAPI an interface containing all of the attachment related zendesk methods

type Automation added in v0.5.0

type Automation struct {
	ID         int64  `json:"id,omitempty"`
	Title      string `json:"title"`
	Active     bool   `json:"active,omitempty"`
	Position   int64  `json:"position,omitempty"`
	Conditions struct {
		All []AutomationCondition `json:"all"`
		Any []AutomationCondition `json:"any"`
	} `json:"conditions"`
	Actions   []AutomationAction `json:"actions"`
	RawTitle  string             `json:"raw_title,omitempty"`
	CreatedAt *time.Time         `json:"created_at,omitempty"`
	UpdatedAt *time.Time         `json:"updated_at,omitempty"`
}

Automation is zendesk automation JSON payload format

ref: https://developer.zendesk.com/rest_api/docs/core/automations#json-format

type AutomationAPI added in v0.5.0

type AutomationAPI interface {
	GetAutomations(ctx context.Context, opts *AutomationListOptions) ([]Automation, Page, error)
	CreateAutomation(ctx context.Context, automation Automation) (Automation, error)
	GetAutomation(ctx context.Context, id int64) (Automation, error)
	UpdateAutomation(ctx context.Context, id int64, automation Automation) (Automation, error)
	DeleteAutomation(ctx context.Context, id int64) error
	GetAutomationsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Automation]
	GetAutomationsOBP(ctx context.Context, opts *OBPOptions) ([]Automation, Page, error)
	GetAutomationsCBP(ctx context.Context, opts *CBPOptions) ([]Automation, CursorPaginationMeta, error)
}

AutomationAPI an interface containing all automation related methods

type AutomationAction added in v0.5.0

type AutomationAction struct {
	Field string      `json:"field"`
	Value interface{} `json:"value"`
}

AutomationAction is zendesk automation action

ref: https://developer.zendesk.com/rest_api/docs/core/automations#actions

type AutomationCondition added in v0.5.0

type AutomationCondition struct {
	Field    string `json:"field"`
	Operator string `json:"operator"`
	Value    string `json:"value"`
}

AutomationCondition zendesk automation condition

ref: https://developer.zendesk.com/rest_api/docs/core/automations#conditions-reference

type AutomationListOptions added in v0.5.0

type AutomationListOptions struct {
	PageOptions
	Active    bool   `url:"active,omitempty"`
	SortBy    string `url:"sort_by,omitempty"`
	SortOrder string `url:"sort_order,omitempty"`
}

AutomationListOptions is options for GetAutomations

ref: https://developer.zendesk.com/rest_api/docs/support/automations#list-automations

type BaseAPI added in v0.10.1

type BaseAPI interface {
	Get(ctx context.Context, path string) ([]byte, error)
	Post(ctx context.Context, path string, data interface{}) ([]byte, error)
	Put(ctx context.Context, path string, data interface{}) ([]byte, error)
	Delete(ctx context.Context, path string) error
}

BaseAPI encapsulates base methods for zendesk client

type BasicAuthCredential

type BasicAuthCredential struct {
	// contains filtered or unexported fields
}

BasicAuthCredential is type of credential for Basic authentication

func NewBasicAuthCredential

func NewBasicAuthCredential(email string, password string) *BasicAuthCredential

NewBasicAuthCredential creates BasicAuthCredential and returns its pointer

func (BasicAuthCredential) Bearer added in v0.13.2

func (c BasicAuthCredential) Bearer() bool

Bearer is accessor which returns whether the credential is a bearer token

func (BasicAuthCredential) Email

func (c BasicAuthCredential) Email() string

Email is accessor which returns email address

func (BasicAuthCredential) Secret

func (c BasicAuthCredential) Secret() string

Secret is accessor which returns password

type BearerTokenCredential added in v0.13.2

type BearerTokenCredential struct {
	// contains filtered or unexported fields
}

BearerTokenCredential can be used to authenticate OAuth tokens issued by Zendesk.

func NewBearerTokenCredential added in v0.13.2

func NewBearerTokenCredential(token string) *BearerTokenCredential

NewBearerTokenCredential returns a pointer to a new BearerTokenCredential. Bearer tokens are issued by Zendesk OAuth clients.

func (BearerTokenCredential) Bearer added in v0.13.2

func (c BearerTokenCredential) Bearer() bool

Bearer is accessor which returns whether the credential is a bearer token

func (BearerTokenCredential) Email added in v0.13.2

func (c BearerTokenCredential) Email() string

Email is accessor which returns email address

func (BearerTokenCredential) Secret added in v0.13.2

func (c BearerTokenCredential) Secret() string

Secret is accessor which returns API token

type Brand added in v0.2.0

type Brand struct {
	ID                int64      `json:"id,omitempty"`
	URL               string     `json:"url,omitempty"`
	Name              string     `json:"name"`
	BrandURL          string     `json:"brand_url,omitempty"`
	HasHelpCenter     bool       `json:"has_help_center,omitempty"`
	HelpCenterState   string     `json:"help_center_state,omitempty"`
	Active            bool       `json:"active,omitempty"`
	Default           bool       `json:"default,omitempty"`
	TicketFormIDs     []int64    `json:"ticket_form_ids,omitempty"`
	Subdomain         string     `json:"subdomain"`
	HostMapping       string     `json:"host_mapping,omitempty"`
	SignatureTemplate string     `json:"signature_template"`
	CreatedAt         time.Time  `json:"created_at,omitempty"`
	UpdatedAt         time.Time  `json:"updated_at,omitempty"`
}

Brand is struct for brand payload https://developer.zendesk.com/rest_api/docs/support/brands

type BrandAPI added in v0.2.0

type BrandAPI interface {
	CreateBrand(ctx context.Context, brand Brand) (Brand, error)
	GetBrand(ctx context.Context, brandID int64) (Brand, error)
	UpdateBrand(ctx context.Context, brandID int64, brand Brand) (Brand, error)
	DeleteBrand(ctx context.Context, brandID int64) error
}

BrandAPI an interface containing all methods associated with zendesk brands

type CBPOptions added in v0.18.0

type CBPOptions struct {
	CursorPagination
	CommonOptions
}

CBPOptions struct is used to specify options for listing objects in CBP (Cursor Based Pagination). It embeds the CursorPagination struct for pagination and provides an option Sort for sorting the result.

type CbpFunc added in v0.18.0

type CbpFunc[T any] func(ctx context.Context, opts *CBPOptions) ([]T, CursorPaginationMeta, error)

CbpFunc defines the signature of the function used to list objects in CBP.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client of Zendesk API

func NewClient

func NewClient(httpClient *http.Client) (*Client, error)

NewClient creates new Zendesk API client

func (*Client) AddOrganizationTags added in v0.8.0

func (z *Client) AddOrganizationTags(ctx context.Context, organizationID int64, tags []Tag) ([]Tag, error)

AddOrganizationTags add tags to organization

ref: https://developer.zendesk.com/rest_api/docs/support/tags#add-tags

func (*Client) AddTicketTags added in v0.8.0

func (z *Client) AddTicketTags(ctx context.Context, ticketID int64, tags []Tag) ([]Tag, error)

AddTicketTags add tags to ticket

ref: https://developer.zendesk.com/rest_api/docs/support/tags#add-tags

func (*Client) AddUserTags added in v0.8.0

func (z *Client) AddUserTags(ctx context.Context, userID int64, tags []Tag) ([]Tag, error)

AddUserTags add tags to user

ref: https://developer.zendesk.com/rest_api/docs/support/tags#add-tags

func (*Client) AutocompleteSearchCustomObjectRecords added in v0.17.0

func (z *Client) AutocompleteSearchCustomObjectRecords(
	ctx context.Context, customObjectKey string, opts *CustomObjectAutocompleteOptions,
) ([]CustomObjectRecord, Page, error)

AutocompleteSearchCustomObjectRecords search for a custom object record by the name field https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#autocomplete-custom-object-record-search

func (*Client) CreateAutomation added in v0.5.0

func (z *Client) CreateAutomation(ctx context.Context, automation Automation) (Automation, error)

CreateAutomation creates new automation

ref: https://developer.zendesk.com/rest_api/docs/support/automations#create-automation

func (*Client) CreateBrand added in v0.2.0

func (z *Client) CreateBrand(ctx context.Context, brand Brand) (Brand, error)

CreateBrand creates new brand https://developer.zendesk.com/rest_api/docs/support/brands#create-brand

func (*Client) CreateCustomObjectRecord added in v0.16.0

func (z *Client) CreateCustomObjectRecord(
	ctx context.Context, record CustomObjectRecord, customObjectKey string,
) (CustomObjectRecord, error)

CreateCustomObjectRecord CreateCustomObject create a custom object record

func (*Client) CreateDynamicContentItem added in v0.1.0

func (z *Client) CreateDynamicContentItem(ctx context.Context, item DynamicContentItem) (DynamicContentItem, error)

CreateDynamicContentItem creates new dynamic content item

https://developer.zendesk.com/rest_api/docs/support/dynamic_content#create-item

func (*Client) CreateGroup added in v0.1.0

func (z *Client) CreateGroup(ctx context.Context, group Group) (Group, error)

CreateGroup creates new group https://developer.zendesk.com/rest_api/docs/support/groups#create-group

func (*Client) CreateMacro added in v0.9.2

func (z *Client) CreateMacro(ctx context.Context, macro Macro) (Macro, error)

CreateMacro create a new macro

ref: https://developer.zendesk.com/rest_api/docs/support/macros#create-macro

func (*Client) CreateOrUpdateUser added in v0.10.2

func (z *Client) CreateOrUpdateUser(ctx context.Context, user User) (User, error)

CreateOrUpdateUser creates new user or updates a matching user ref: https://developer.zendesk.com/api-reference/ticketing/users/users/#create-or-update-user

func (*Client) CreateOrganization added in v0.4.2

func (z *Client) CreateOrganization(ctx context.Context, org Organization) (Organization, error)

CreateOrganization creates new organization https://developer.zendesk.com/rest_api/docs/support/organizations#create-organization

func (*Client) CreateOrganizationField added in v0.15.0

func (z *Client) CreateOrganizationField(ctx context.Context, organizationField OrganizationField) (OrganizationField, error)

CreateOrganizationField creates new organization field ref: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_fields/#create-organization-field

func (*Client) CreateOrganizationMembership added in v0.13.2

func (z *Client) CreateOrganizationMembership(ctx context.Context, opts OrganizationMembershipOptions) (OrganizationMembership, error)

CreateOrganizationMembership creates an organization membership for an existing user and org https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#create-membership

func (*Client) CreateSLAPolicy added in v0.6.0

func (z *Client) CreateSLAPolicy(ctx context.Context, slaPolicy SLAPolicy) (SLAPolicy, error)

CreateSLAPolicy creates new slaPolicy

ref: https://developer.zendesk.com/rest_api/docs/support/slas/policies#create-slaPolicy

func (*Client) CreateTarget added in v0.4.2

func (z *Client) CreateTarget(ctx context.Context, target Target) (Target, error)

CreateTarget creates new target ref: https://developer.zendesk.com/rest_api/docs/core/targets#create-target

func (*Client) CreateTicket added in v0.4.2

func (z *Client) CreateTicket(ctx context.Context, ticket Ticket) (Ticket, error)

CreateTicket create a new ticket

ref: https://developer.zendesk.com/rest_api/docs/support/tickets#create-ticket

func (*Client) CreateTicketComment added in v0.7.2

func (z *Client) CreateTicketComment(ctx context.Context, ticketID int64, ticketComment TicketComment) (TicketComment, error)

CreateTicketComment creates a comment on a ticket

ref: https://developer.zendesk.com/rest_api/docs/support/ticket_comments#create-ticket-comment

func (*Client) CreateTicketField

func (z *Client) CreateTicketField(ctx context.Context, ticketField TicketField) (TicketField, error)

CreateTicketField creates new ticket field ref: https://developer.zendesk.com/rest_api/docs/core/ticket_fields#create-ticket-field

func (*Client) CreateTicketForm

func (z *Client) CreateTicketForm(ctx context.Context, ticketForm TicketForm) (TicketForm, error)

CreateTicketForm creates new ticket form ref: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#create-ticket-forms

func (*Client) CreateTrigger

func (z *Client) CreateTrigger(ctx context.Context, trigger Trigger) (Trigger, error)

CreateTrigger creates new trigger

ref: https://developer.zendesk.com/rest_api/docs/support/triggers#create-trigger

func (*Client) CreateUser added in v0.1.0

func (z *Client) CreateUser(ctx context.Context, user User) (User, error)

CreateUser creates new user ref: https://developer.zendesk.com/api-reference/ticketing/users/users/#create-user

func (*Client) CreateUserField added in v0.15.0

func (z *Client) CreateUserField(ctx context.Context, userField UserField) (UserField, error)

CreateUserField creates new user field ref: https://developer.zendesk.com/api-reference/ticketing/users/user_fields/#create-user-field

func (*Client) CreateWebhook added in v0.12.0

func (z *Client) CreateWebhook(ctx context.Context, hook *Webhook) (*Webhook, error)

CreateWebhook creates new webhook.

https://developer.zendesk.com/api-reference/event-connectors/webhooks/webhooks/#create-or-clone-webhook

func (*Client) Delete added in v0.1.3

func (z *Client) Delete(ctx context.Context, path string) error

Delete allows users to send requests not yet implemented

func (*Client) DeleteAutomation added in v0.5.0

func (z *Client) DeleteAutomation(ctx context.Context, id int64) error

DeleteAutomation deletes the specified automation

ref: https://developer.zendesk.com/rest_api/docs/support/automations#delete-automation

func (*Client) DeleteBrand added in v0.2.0

func (z *Client) DeleteBrand(ctx context.Context, brandID int64) error

DeleteBrand deletes the specified brand ref: https://developer.zendesk.com/rest_api/docs/support/brands#delete-brand

func (*Client) DeleteDynamicContentItem added in v0.11.0

func (z *Client) DeleteDynamicContentItem(ctx context.Context, id int64) error

DeleteDynamicContentItem deletes the specified dynamic content item.

ref: https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#delete-item

func (*Client) DeleteGroup added in v0.2.0

func (z *Client) DeleteGroup(ctx context.Context, groupID int64) error

DeleteGroup deletes the specified group ref: https://developer.zendesk.com/rest_api/docs/support/groups#delete-group

func (*Client) DeleteMacro added in v0.9.2

func (z *Client) DeleteMacro(ctx context.Context, macroID int64) error

DeleteMacro deletes the specified macro ref: https://developer.zendesk.com/rest_api/docs/support/macros#delete-macro

func (*Client) DeleteOrganization added in v0.4.2

func (z *Client) DeleteOrganization(ctx context.Context, orgID int64) error

DeleteOrganization deletes the specified organization ref: https://developer.zendesk.com/rest_api/docs/support/organizations#delete-organization

func (*Client) DeleteSLAPolicy added in v0.6.0

func (z *Client) DeleteSLAPolicy(ctx context.Context, id int64) error

DeleteSLAPolicy deletes the specified slaPolicy

ref: https://developer.zendesk.com/rest_api/docs/support/slas/policies#delete-slaPolicy

func (*Client) DeleteTarget added in v0.4.2

func (z *Client) DeleteTarget(ctx context.Context, targetID int64) error

DeleteTarget deletes the specified target ref: https://developer.zendesk.com/rest_api/docs/support/targets#delete-target

func (*Client) DeleteTicket added in v0.7.6

func (z *Client) DeleteTicket(ctx context.Context, ticketID int64) error

DeleteTicket deletes the specified ticket ref: https://developer.zendesk.com/rest_api/docs/support/tickets#delete-ticket

func (*Client) DeleteTicketField added in v0.2.0

func (z *Client) DeleteTicketField(ctx context.Context, ticketID int64) error

DeleteTicketField deletes the specified ticket field ref: https://developer.zendesk.com/rest_api/docs/support/ticket_fields#delete-ticket-field

func (*Client) DeleteTicketForm added in v0.2.0

func (z *Client) DeleteTicketForm(ctx context.Context, id int64) error

DeleteTicketForm deletes the specified ticket form ref: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#delete-ticket-form

func (*Client) DeleteTrigger added in v0.2.0

func (z *Client) DeleteTrigger(ctx context.Context, id int64) error

DeleteTrigger deletes the specified trigger

ref: https://developer.zendesk.com/rest_api/docs/support/triggers#delete-trigger

func (*Client) DeleteUpload added in v0.2.0

func (z *Client) DeleteUpload(ctx context.Context, token string) error

DeleteUpload deletes a previously uploaded file ref: https://developer.zendesk.com/rest_api/docs/support/attachments#delete-upload

func (*Client) DeleteWebhook added in v0.12.0

func (z *Client) DeleteWebhook(ctx context.Context, webhookID string) error

DeleteWebhook deletes the specified webhook.

https://developer.zendesk.com/api-reference/event-connectors/webhooks/webhooks/#delete-webhook

func (*Client) Get added in v0.1.0

func (z *Client) Get(ctx context.Context, path string) ([]byte, error)

Get allows users to send requests not yet implemented

func (*Client) GetAllTicketAudits added in v0.8.1

func (z *Client) GetAllTicketAudits(ctx context.Context, opts CursorOption) ([]TicketAudit, Cursor, error)

GetAllTicketAudits list all ticket audits ref: https://developer.zendesk.com/rest_api/docs/support/ticket_audits#list-all-ticket-audits

func (*Client) GetAllTicketAuditsCBP added in v0.18.0

func (z *Client) GetAllTicketAuditsCBP(ctx context.Context, opts *CBPOptions) ([]TicketAudit, CursorPaginationMeta, error)

func (*Client) GetAllTicketAuditsIterator added in v0.18.0

func (z *Client) GetAllTicketAuditsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketAudit]

func (*Client) GetAllTicketAuditsOBP added in v0.18.0

func (z *Client) GetAllTicketAuditsOBP(ctx context.Context, opts *OBPOptions) ([]TicketAudit, Page, error)

func (*Client) GetAttachment added in v0.2.0

func (z *Client) GetAttachment(ctx context.Context, id int64) (Attachment, error)

GetAttachment returns the current state of an uploaded attachment ref: https://developer.zendesk.com/rest_api/docs/support/attachments#show-attachment

func (*Client) GetAutomation added in v0.5.0

func (z *Client) GetAutomation(ctx context.Context, id int64) (Automation, error)

GetAutomation returns the specified automation

ref: https://developer.zendesk.com/rest_api/docs/support/automations#getting-automations

func (*Client) GetAutomations added in v0.5.0

func (z *Client) GetAutomations(ctx context.Context, opts *AutomationListOptions) ([]Automation, Page, error)

GetAutomations fetch automation list

ref: https://developer.zendesk.com/rest_api/docs/support/automations#getting-automations

func (*Client) GetAutomationsCBP added in v0.18.0

func (z *Client) GetAutomationsCBP(ctx context.Context, opts *CBPOptions) ([]Automation, CursorPaginationMeta, error)

func (*Client) GetAutomationsIterator added in v0.18.0

func (z *Client) GetAutomationsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Automation]

func (*Client) GetAutomationsOBP added in v0.18.0

func (z *Client) GetAutomationsOBP(ctx context.Context, opts *OBPOptions) ([]Automation, Page, error)

func (*Client) GetBrand added in v0.2.0

func (z *Client) GetBrand(ctx context.Context, brandID int64) (Brand, error)

GetBrand gets a specified brand ref: https://developer.zendesk.com/rest_api/docs/support/brands#show-brand

func (*Client) GetCountTicketsInViews added in v0.18.0

func (z *Client) GetCountTicketsInViews(ctx context.Context, ids []string) ([]ViewCount, error)

GetCountTicketsInViews count tickets in views using views ids ref https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#count-tickets-in-views

func (*Client) GetCustomRoles added in v0.11.0

func (z *Client) GetCustomRoles(ctx context.Context) ([]CustomRole, error)

GetRoles fetch CustomRoles list

func (*Client) GetDynamicContentItem added in v0.11.0

func (z *Client) GetDynamicContentItem(ctx context.Context, id int64) (DynamicContentItem, error)

GetDynamicContentItem returns the specified dynamic content item.

ref: https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#show-item

func (*Client) GetDynamicContentItems added in v0.1.0

func (z *Client) GetDynamicContentItems(ctx context.Context) ([]DynamicContentItem, Page, error)

GetDynamicContentItems fetches dynamic content item list

https://developer.zendesk.com/rest_api/docs/support/dynamic_content#list-items

func (*Client) GetDynamicContentItemsCBP added in v0.18.0

func (z *Client) GetDynamicContentItemsCBP(ctx context.Context, opts *CBPOptions) ([]DynamicContentItem, CursorPaginationMeta, error)

func (*Client) GetDynamicContentItemsIterator added in v0.18.0

func (z *Client) GetDynamicContentItemsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[DynamicContentItem]

func (*Client) GetDynamicContentItemsOBP added in v0.18.0

func (z *Client) GetDynamicContentItemsOBP(ctx context.Context, opts *OBPOptions) ([]DynamicContentItem, Page, error)

func (*Client) GetGroup added in v0.2.0

func (z *Client) GetGroup(ctx context.Context, groupID int64) (Group, error)

GetGroup gets a specified group ref: https://developer.zendesk.com/rest_api/docs/support/groups#show-group

func (*Client) GetGroupMemberships added in v0.10.0

func (z *Client) GetGroupMemberships(ctx context.Context, opts *GroupMembershipListOptions) ([]GroupMembership, Page, error)

GetGroupMemberships gets the memberships of the specified group ref: https://developer.zendesk.com/api-reference/ticketing/groups/group_memberships/

func (*Client) GetGroupMembershipsCBP added in v0.18.0

func (z *Client) GetGroupMembershipsCBP(ctx context.Context, opts *CBPOptions) ([]GroupMembership, CursorPaginationMeta, error)

func (*Client) GetGroupMembershipsIterator added in v0.18.0

func (z *Client) GetGroupMembershipsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[GroupMembership]

func (*Client) GetGroupMembershipsOBP added in v0.18.0

func (z *Client) GetGroupMembershipsOBP(ctx context.Context, opts *OBPOptions) ([]GroupMembership, Page, error)

func (*Client) GetGroups added in v0.1.0

func (z *Client) GetGroups(ctx context.Context, opts *GroupListOptions) ([]Group, Page, error)

GetGroups fetches group list https://developer.zendesk.com/rest_api/docs/support/groups#list-groups

func (*Client) GetGroupsCBP added in v0.18.0

func (z *Client) GetGroupsCBP(ctx context.Context, opts *CBPOptions) ([]Group, CursorPaginationMeta, error)

func (*Client) GetGroupsIterator added in v0.18.0

func (z *Client) GetGroupsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Group]

func (*Client) GetGroupsOBP added in v0.18.0

func (z *Client) GetGroupsOBP(ctx context.Context, opts *OBPOptions) ([]Group, Page, error)

func (*Client) GetLocales added in v0.1.0

func (z *Client) GetLocales(ctx context.Context) ([]Locale, error)

GetLocales lists the translation locales available for the account. https://developer.zendesk.com/rest_api/docs/support/locales#list-locales

func (*Client) GetMacro added in v0.9.2

func (z *Client) GetMacro(ctx context.Context, macroID int64) (Macro, error)

GetMacro gets a specified macro

ref: https://developer.zendesk.com/rest_api/docs/support/macros#show-macro

func (*Client) GetMacros added in v0.9.2

func (z *Client) GetMacros(ctx context.Context, opts *MacroListOptions) ([]Macro, Page, error)

GetMacros get macro list

ref: https://developer.zendesk.com/rest_api/docs/support/macros#list-macros

func (*Client) GetMacrosCBP added in v0.18.0

func (z *Client) GetMacrosCBP(ctx context.Context, opts *CBPOptions) ([]Macro, CursorPaginationMeta, error)

func (*Client) GetMacrosIterator added in v0.18.0

func (z *Client) GetMacrosIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Macro]

func (*Client) GetMacrosOBP added in v0.18.0

func (z *Client) GetMacrosOBP(ctx context.Context, opts *OBPOptions) ([]Macro, Page, error)

func (*Client) GetManyUsers added in v0.10.0

func (z *Client) GetManyUsers(ctx context.Context, opts *GetManyUsersOptions) ([]User, Page, error)

GetManyUsers fetch user list https://developer.zendesk.com/api-reference/ticketing/users/users/#show-many-users

func (*Client) GetMultipleTickets added in v0.4.2

func (z *Client) GetMultipleTickets(ctx context.Context, ticketIDs []int64) ([]Ticket, error)

GetMultipleTickets gets multiple specified tickets

ref: https://developer.zendesk.com/rest_api/docs/support/tickets#show-multiple-tickets

func (*Client) GetOrganization added in v0.4.2

func (z *Client) GetOrganization(ctx context.Context, orgID int64) (Organization, error)

GetOrganization gets a specified organization ref: https://developer.zendesk.com/rest_api/docs/support/organizations#show-organization

func (*Client) GetOrganizationByExternalID added in v0.14.0

func (z *Client) GetOrganizationByExternalID(ctx context.Context, externalID string) ([]Organization, Page, error)

GetOrganizationByExternalID gets a specified organization by external ID ref: https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/#search-organizations-by-external-id

func (*Client) GetOrganizationFields added in v0.15.0

func (z *Client) GetOrganizationFields(ctx context.Context) ([]OrganizationField, Page, error)

GetOrganizationFields fetches organization field list ref: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_fields/#list-organization-fields

func (*Client) GetOrganizationFieldsCBP added in v0.18.0

func (z *Client) GetOrganizationFieldsCBP(ctx context.Context, opts *CBPOptions) ([]OrganizationField, CursorPaginationMeta, error)

func (*Client) GetOrganizationFieldsIterator added in v0.18.0

func (z *Client) GetOrganizationFieldsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[OrganizationField]

func (*Client) GetOrganizationFieldsOBP added in v0.18.0

func (z *Client) GetOrganizationFieldsOBP(ctx context.Context, opts *OBPOptions) ([]OrganizationField, Page, error)

func (*Client) GetOrganizationMemberships added in v0.11.0

func (z *Client) GetOrganizationMemberships(ctx context.Context, opts *OrganizationMembershipListOptions) ([]OrganizationMembership, Page, error)

GetOrganizationMemberships gets the memberships of the specified organization ref: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/

func (*Client) GetOrganizationMembershipsCBP added in v0.18.0

func (z *Client) GetOrganizationMembershipsCBP(ctx context.Context, opts *CBPOptions) ([]OrganizationMembership, CursorPaginationMeta, error)

func (*Client) GetOrganizationMembershipsIterator added in v0.18.0

func (z *Client) GetOrganizationMembershipsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[OrganizationMembership]

func (*Client) GetOrganizationMembershipsOBP added in v0.18.0

func (z *Client) GetOrganizationMembershipsOBP(ctx context.Context, opts *OBPOptions) ([]OrganizationMembership, Page, error)

func (*Client) GetOrganizationTags added in v0.8.0

func (z *Client) GetOrganizationTags(ctx context.Context, organizationID int64) ([]Tag, error)

GetOrganizationTags get organization tag list

ref: https://developer.zendesk.com/rest_api/docs/support/tags#show-tags

func (*Client) GetOrganizationTickets added in v0.15.1

func (z *Client) GetOrganizationTickets(
	ctx context.Context, organizationID int64, opts *TicketListOptions,
) ([]Ticket, Page, error)

GetOrganizationTickets get organization ticket list

ref: https://developer.zendesk.com/rest_api/docs/support/tickets#list-tickets

func (*Client) GetOrganizationTicketsCBP added in v0.18.0

func (z *Client) GetOrganizationTicketsCBP(ctx context.Context, opts *CBPOptions) ([]Ticket, CursorPaginationMeta, error)

func (*Client) GetOrganizationTicketsIterator added in v0.18.0

func (z *Client) GetOrganizationTicketsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Ticket]

func (*Client) GetOrganizationTicketsOBP added in v0.18.0

func (z *Client) GetOrganizationTicketsOBP(ctx context.Context, opts *OBPOptions) ([]Ticket, Page, error)

func (*Client) GetOrganizationUsers added in v0.15.0

func (z *Client) GetOrganizationUsers(ctx context.Context, orgID int64, opts *UserListOptions) ([]User, Page, error)

GetOrganizationUsers fetch organization users list https://developer.zendesk.com/api-reference/ticketing/users/users/#list-users /api/v2/organizations/{organization_id}/users

func (*Client) GetOrganizationUsersCBP added in v0.18.0

func (z *Client) GetOrganizationUsersCBP(ctx context.Context, opts *CBPOptions) ([]User, CursorPaginationMeta, error)

func (*Client) GetOrganizationUsersIterator added in v0.18.0

func (z *Client) GetOrganizationUsersIterator(ctx context.Context, opts *PaginationOptions) *Iterator[User]

func (*Client) GetOrganizationUsersOBP added in v0.18.0

func (z *Client) GetOrganizationUsersOBP(ctx context.Context, opts *OBPOptions) ([]User, Page, error)

func (*Client) GetOrganizations added in v0.8.2

func (z *Client) GetOrganizations(ctx context.Context, opts *OrganizationListOptions) ([]Organization, Page, error)

GetOrganizations fetch organization list

ref: https://developer.zendesk.com/rest_api/docs/support/organizations#getting-organizations

func (*Client) GetOrganizationsCBP added in v0.18.0

func (z *Client) GetOrganizationsCBP(ctx context.Context, opts *CBPOptions) ([]Organization, CursorPaginationMeta, error)

func (*Client) GetOrganizationsIterator added in v0.18.0

func (z *Client) GetOrganizationsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Organization]

func (*Client) GetOrganizationsOBP added in v0.18.0

func (z *Client) GetOrganizationsOBP(ctx context.Context, opts *OBPOptions) ([]Organization, Page, error)

func (*Client) GetSLAPolicies added in v0.6.0

func (z *Client) GetSLAPolicies(ctx context.Context, opts *SLAPolicyListOptions) ([]SLAPolicy, Page, error)

GetSLAPolicies fetch slaPolicy list

ref: https://developer.zendesk.com/rest_api/docs/support/slas/policies#getting-slas/policies

func (*Client) GetSLAPoliciesCBP added in v0.18.0

func (z *Client) GetSLAPoliciesCBP(ctx context.Context, opts *CBPOptions) ([]SLAPolicy, CursorPaginationMeta, error)

func (*Client) GetSLAPoliciesIterator added in v0.18.0

func (z *Client) GetSLAPoliciesIterator(ctx context.Context, opts *PaginationOptions) *Iterator[SLAPolicy]

func (*Client) GetSLAPoliciesOBP added in v0.18.0

func (z *Client) GetSLAPoliciesOBP(ctx context.Context, opts *OBPOptions) ([]SLAPolicy, Page, error)

func (*Client) GetSLAPolicy added in v0.6.0

func (z *Client) GetSLAPolicy(ctx context.Context, id int64) (SLAPolicy, error)

GetSLAPolicy returns the specified slaPolicy

ref: https://developer.zendesk.com/rest_api/docs/support/slas/policies#getting-slas/policies

func (*Client) GetSearchCBP added in v0.18.0

func (z *Client) GetSearchCBP(ctx context.Context, opts *CBPOptions) ([]SearchResults, CursorPaginationMeta, error)

func (*Client) GetSearchIterator added in v0.18.0

func (z *Client) GetSearchIterator(ctx context.Context, opts *PaginationOptions) *Iterator[SearchResults]

func (*Client) GetSearchOBP added in v0.18.0

func (z *Client) GetSearchOBP(ctx context.Context, opts *OBPOptions) ([]SearchResults, Page, error)

func (*Client) GetTarget added in v0.4.2

func (z *Client) GetTarget(ctx context.Context, targetID int64) (Target, error)

GetTarget gets a specified target ref: https://developer.zendesk.com/rest_api/docs/support/targets#show-target

func (*Client) GetTargets added in v0.4.2

func (z *Client) GetTargets(ctx context.Context) ([]Target, Page, error)

GetTargets fetches target list ref: https://developer.zendesk.com/rest_api/docs/core/targets#list-targets

func (*Client) GetTicket added in v0.4.2

func (z *Client) GetTicket(ctx context.Context, ticketID int64) (Ticket, error)

GetTicket gets a specified ticket

ref: https://developer.zendesk.com/rest_api/docs/support/tickets#show-ticket

func (*Client) GetTicketAudit added in v0.8.1

func (z *Client) GetTicketAudit(ctx context.Context, ticketID, ID int64) (TicketAudit, error)

GetTicketAudit show audit ref: https://developer.zendesk.com/rest_api/docs/support/ticket_audits#show-audit

func (*Client) GetTicketAudits added in v0.8.1

func (z *Client) GetTicketAudits(ctx context.Context, ticketID int64, opts PageOptions) ([]TicketAudit, Page, error)

GetTicketAudits list audits for a ticket ref: https://developer.zendesk.com/rest_api/docs/support/ticket_audits#list-audits-for-a-ticket

func (*Client) GetTicketAuditsCBP added in v0.18.0

func (z *Client) GetTicketAuditsCBP(ctx context.Context, opts *CBPOptions) ([]TicketAudit, CursorPaginationMeta, error)

func (*Client) GetTicketAuditsIterator added in v0.18.0

func (z *Client) GetTicketAuditsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketAudit]

func (*Client) GetTicketAuditsOBP added in v0.18.0

func (z *Client) GetTicketAuditsOBP(ctx context.Context, opts *OBPOptions) ([]TicketAudit, Page, error)

func (*Client) GetTicketCommentsCBP added in v0.18.0

func (z *Client) GetTicketCommentsCBP(ctx context.Context, opts *CBPOptions) ([]TicketComment, CursorPaginationMeta, error)

func (*Client) GetTicketCommentsIterator added in v0.18.0

func (z *Client) GetTicketCommentsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketComment]

func (*Client) GetTicketCommentsOBP added in v0.18.0

func (z *Client) GetTicketCommentsOBP(ctx context.Context, opts *OBPOptions) ([]TicketComment, Page, error)

func (*Client) GetTicketField added in v0.1.0

func (z *Client) GetTicketField(ctx context.Context, ticketID int64) (TicketField, error)

GetTicketField gets a specified ticket field ref: https://developer.zendesk.com/rest_api/docs/support/ticket_fields#show-ticket-field

func (*Client) GetTicketFields

func (z *Client) GetTicketFields(ctx context.Context) ([]TicketField, Page, error)

GetTicketFields fetches ticket field list ref: https://developer.zendesk.com/rest_api/docs/core/ticket_fields#list-ticket-fields

func (*Client) GetTicketFieldsCBP added in v0.18.0

func (z *Client) GetTicketFieldsCBP(ctx context.Context, opts *CBPOptions) ([]TicketField, CursorPaginationMeta, error)

func (*Client) GetTicketFieldsIterator added in v0.18.0

func (z *Client) GetTicketFieldsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketField]

func (*Client) GetTicketFieldsOBP added in v0.18.0

func (z *Client) GetTicketFieldsOBP(ctx context.Context, opts *OBPOptions) ([]TicketField, Page, error)

func (*Client) GetTicketForm added in v0.2.0

func (z *Client) GetTicketForm(ctx context.Context, id int64) (TicketForm, error)

GetTicketForm returns the specified ticket form ref: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#show-ticket-form

func (*Client) GetTicketForms

func (z *Client) GetTicketForms(ctx context.Context, options *TicketFormListOptions) ([]TicketForm, Page, error)

GetTicketForms fetches ticket forms ref: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#list-ticket-forms

func (*Client) GetTicketFormsCBP added in v0.18.0

func (z *Client) GetTicketFormsCBP(ctx context.Context, opts *CBPOptions) ([]TicketForm, CursorPaginationMeta, error)

func (*Client) GetTicketFormsIterator added in v0.18.0

func (z *Client) GetTicketFormsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketForm]

func (*Client) GetTicketFormsOBP added in v0.18.0

func (z *Client) GetTicketFormsOBP(ctx context.Context, opts *OBPOptions) ([]TicketForm, Page, error)

func (*Client) GetTicketMetrics added in v0.18.0

func (z *Client) GetTicketMetrics(ctx context.Context, opts *TicketMetricListOptions) ([]TicketMetric, Page, error)

GetTicketMetrics get ticket metrics list with offset based pagination

ref: https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_metrics/#list-ticket-metrics

func (*Client) GetTicketTags added in v0.8.0

func (z *Client) GetTicketTags(ctx context.Context, ticketID int64) ([]Tag, error)

GetTicketTags get ticket tag list

ref: https://developer.zendesk.com/rest_api/docs/support/tags#show-tags

func (*Client) GetTickets added in v0.4.2

func (z *Client) GetTickets(ctx context.Context, opts *TicketListOptions) ([]Ticket, Page, error)

GetTickets get ticket list with offset based pagination

ref: https://developer.zendesk.com/rest_api/docs/support/tickets#list-tickets

func (*Client) GetTicketsCBP added in v0.17.0

func (z *Client) GetTicketsCBP(ctx context.Context, opts *CBPOptions) ([]Ticket, CursorPaginationMeta, error)

func (*Client) GetTicketsFromView added in v0.10.0

func (z *Client) GetTicketsFromView(ctx context.Context, viewID int64, opts *TicketListOptions,
) ([]Ticket, Page, error)

GetTicketsFromView gets the tickets of the specified view ref: https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#list-tickets-from-a-view

func (*Client) GetTicketsFromViewCBP added in v0.18.0

func (z *Client) GetTicketsFromViewCBP(ctx context.Context, opts *CBPOptions) ([]Ticket, CursorPaginationMeta, error)

func (*Client) GetTicketsFromViewIterator added in v0.18.0

func (z *Client) GetTicketsFromViewIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Ticket]

func (*Client) GetTicketsFromViewOBP added in v0.18.0

func (z *Client) GetTicketsFromViewOBP(ctx context.Context, opts *OBPOptions) ([]Ticket, Page, error)

func (*Client) GetTicketsIterator added in v0.18.0

func (z *Client) GetTicketsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Ticket]

func (*Client) GetTicketsOBP added in v0.18.0

func (z *Client) GetTicketsOBP(ctx context.Context, opts *OBPOptions) ([]Ticket, Page, error)

func (*Client) GetTrigger added in v0.2.0

func (z *Client) GetTrigger(ctx context.Context, id int64) (Trigger, error)

GetTrigger returns the specified trigger

ref: https://developer.zendesk.com/rest_api/docs/support/triggers#getting-triggers

func (*Client) GetTriggers

func (z *Client) GetTriggers(ctx context.Context, opts *TriggerListOptions) ([]Trigger, Page, error)

GetTriggers fetch trigger list

ref: https://developer.zendesk.com/rest_api/docs/support/triggers#getting-triggers

func (*Client) GetTriggersCBP added in v0.18.0

func (z *Client) GetTriggersCBP(ctx context.Context, opts *CBPOptions) ([]Trigger, CursorPaginationMeta, error)

func (*Client) GetTriggersIterator added in v0.18.0

func (z *Client) GetTriggersIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Trigger]

func (*Client) GetTriggersOBP added in v0.18.0

func (z *Client) GetTriggersOBP(ctx context.Context, opts *OBPOptions) ([]Trigger, Page, error)

func (*Client) GetUser added in v0.7.4

func (z *Client) GetUser(ctx context.Context, userID int64) (User, error)

GetUser get an existing user ref: https://developer.zendesk.com/rest_api/docs/support/users#show-user

func (*Client) GetUserFields added in v0.1.0

func (z *Client) GetUserFields(ctx context.Context, opts *UserFieldListOptions) ([]UserField, Page, error)

GetUserFields fetch trigger list

https://developer.zendesk.com/rest_api/docs/support/user_fields#list-user-fields

func (*Client) GetUserFieldsCBP added in v0.18.0

func (z *Client) GetUserFieldsCBP(ctx context.Context, opts *CBPOptions) ([]UserField, CursorPaginationMeta, error)

func (*Client) GetUserFieldsIterator added in v0.18.0

func (z *Client) GetUserFieldsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[UserField]

func (*Client) GetUserFieldsOBP added in v0.18.0

func (z *Client) GetUserFieldsOBP(ctx context.Context, opts *OBPOptions) ([]UserField, Page, error)

func (*Client) GetUserRelated added in v0.10.0

func (z *Client) GetUserRelated(ctx context.Context, userID int64) (UserRelated, error)

GetUserRelated retrieves user related user information ref: https://developer.zendesk.com/api-reference/ticketing/users/users/#show-user-related-information

func (*Client) GetUserTags added in v0.8.0

func (z *Client) GetUserTags(ctx context.Context, userID int64) ([]Tag, error)

GetUserTags get user tag list

ref: https://developer.zendesk.com/rest_api/docs/support/tags#show-tags

func (*Client) GetUsers added in v0.1.0

func (z *Client) GetUsers(ctx context.Context, opts *UserListOptions) ([]User, Page, error)

GetUsers fetch user list https://developer.zendesk.com/api-reference/ticketing/users/users/#list-users

func (*Client) GetUsersCBP added in v0.18.0

func (z *Client) GetUsersCBP(ctx context.Context, opts *CBPOptions) ([]User, CursorPaginationMeta, error)

func (*Client) GetUsersIterator added in v0.18.0

func (z *Client) GetUsersIterator(ctx context.Context, opts *PaginationOptions) *Iterator[User]

func (*Client) GetUsersOBP added in v0.18.0

func (z *Client) GetUsersOBP(ctx context.Context, opts *OBPOptions) ([]User, Page, error)

func (*Client) GetView added in v0.10.0

func (z *Client) GetView(ctx context.Context, viewID int64) (View, error)

GetView gets a given view ref: https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#show-view

func (*Client) GetViews added in v0.10.0

func (z *Client) GetViews(ctx context.Context) ([]View, Page, error)

GetViews gets all views ref: https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#list-views

func (*Client) GetViewsCBP added in v0.18.0

func (z *Client) GetViewsCBP(ctx context.Context, opts *CBPOptions) ([]View, CursorPaginationMeta, error)

func (*Client) GetViewsIterator added in v0.18.0

func (z *Client) GetViewsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[View]

func (*Client) GetViewsOBP added in v0.18.0

func (z *Client) GetViewsOBP(ctx context.Context, opts *OBPOptions) ([]View, Page, error)

func (*Client) GetWebhook added in v0.12.0

func (z *Client) GetWebhook(ctx context.Context, webhookID string) (*Webhook, error)

GetWebhook gets a specified webhook.

https://developer.zendesk.com/api-reference/event-connectors/webhooks/webhooks/#show-webhook

func (*Client) GetWebhookSigningSecret added in v0.14.0

func (z *Client) GetWebhookSigningSecret(ctx context.Context, webhookID string) (*WebhookSigningSecret, error)

GetWebhookSigningSecret gets the signing secret of specified webhook.

https://developer.zendesk.com/api-reference/event-connectors/webhooks/webhooks/#show-webhook-signing-secret

func (*Client) ListCustomObjectRecords added in v0.16.0

func (z *Client) ListCustomObjectRecords(
	ctx context.Context, customObjectKey string, opts *CustomObjectListOptions) ([]CustomObjectRecord, Page, error)

ListCustomObjectRecords list objects https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#list-custom-object-records

func (*Client) ListInstallations added in v0.13.4

func (z *Client) ListInstallations(ctx context.Context) ([]AppInstallation, error)

ListInstallations shows all apps installed in the current account. ref: https://developer.zendesk.com/api-reference/ticketing/apps/apps/#list-app-installations

func (*Client) ListTicketComments added in v0.7.2

func (z *Client) ListTicketComments(
	ctx context.Context,
	ticketID int64,
	opts *ListTicketCommentsOptions,
) (*ListTicketCommentsResult, error)

ListTicketComments gets a list of comment for a specified ticket

ref: https://developer.zendesk.com/rest_api/docs/support/ticket_comments#list-comments

func (*Client) MakeCommentPrivate added in v0.13.2

func (z *Client) MakeCommentPrivate(ctx context.Context, ticketID int64, ticketCommentID int64) error

MakeCommentPrivate converts an existing ticket comment to an internal note that is not publicly viewable.

ref: https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/#make-comment-private

func (*Client) Post added in v0.1.0

func (z *Client) Post(ctx context.Context, path string, data interface{}) ([]byte, error)

Post allows users to send requests not yet implemented

func (*Client) Put added in v0.1.3

func (z *Client) Put(ctx context.Context, path string, data interface{}) ([]byte, error)

Put allows users to send requests not yet implemented

func (*Client) RedactCommentAttachment added in v0.15.0

func (z *Client) RedactCommentAttachment(ctx context.Context, ticketID, commentID, attachmentID int64) error

RedactCommentAttachment deletes an attachment with attachmentID on comment with commentID for ticket with ticketID https://developer.zendesk.com/api-reference/ticketing/tickets/ticket-attachments/#redact-comment-attachment

func (*Client) RedactTicketComment added in v0.14.2

func (z *Client) RedactTicketComment(
	ctx context.Context,
	ticketCommentID int64,
	body RedactTicketCommentRequest,
) error

RedactTicketComment permanently removes words, strings, or attachments from a ticket comment

ref: https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/#redact-ticket-comment-in-agent-workspace

func (*Client) Search added in v0.7.0

func (z *Client) Search(ctx context.Context, opts *SearchOptions) (SearchResults, Page, error)

Search allows users to query zendesk's unified search api.

ref: https://developer.zendesk.com/rest_api/docs/support/search

func (*Client) SearchCount added in v0.9.1

func (z *Client) SearchCount(ctx context.Context, opts *CountOptions) (int, error)

SearchCount allows users to get count of results of a query of zendesk's unified search api.

ref: https://developer.zendesk.com/rest_api/docs/support/search#show-results-count

func (*Client) SearchCustomObjectRecords added in v0.16.0

func (z *Client) SearchCustomObjectRecords(
	ctx context.Context, customObjectKey string, opts *SearchCustomObjectRecordsOptions,
) ([]CustomObjectRecord, Page, error)

SearchCustomObjectRecords search for a custom object record by the name field https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#search-custom-object-records

func (*Client) SearchUsers added in v0.12.1

func (z *Client) SearchUsers(ctx context.Context, opts *SearchUsersOptions) ([]User, Page, error)

SearchUsers Returns an array of users who meet the search criteria. https://developer.zendesk.com/api-reference/ticketing/users/users/#search-users

func (*Client) SetCredential

func (z *Client) SetCredential(cred Credential)

SetCredential saves credential in client. It will be set to request header when call API

func (*Client) SetDefaultOrganization added in v0.13.2

func (z *Client) SetDefaultOrganization(ctx context.Context, opts OrganizationMembershipOptions) (OrganizationMembership, error)

SetDefaultOrganization sets the default organization for a user that has a membership in that org https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#set-organization-as-default

func (*Client) SetEndpointURL

func (z *Client) SetEndpointURL(newURL string) error

SetEndpointURL replace full URL of endpoint without subdomain validation. This is mainly used for testing to point to mock API server.

func (*Client) SetHeader

func (z *Client) SetHeader(key string, value string)

SetHeader saves HTTP header in client. It will be included all API request

func (*Client) SetSubdomain

func (z *Client) SetSubdomain(subdomain string) error

SetSubdomain saves subdomain in client. It will be used when call API

func (*Client) ShowCustomObjectRecord added in v0.16.0

func (z *Client) ShowCustomObjectRecord(
	ctx context.Context, customObjectKey string, customObjectRecordID string,
) (*CustomObjectRecord, error)

ShowCustomObjectRecord returns a custom record for a specific object using a provided id. https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#show-custom-object-record

func (*Client) UpdateAutomation added in v0.5.0

func (z *Client) UpdateAutomation(ctx context.Context, id int64, automation Automation) (Automation, error)

UpdateAutomation updates the specified automation and returns the updated one

ref: https://developer.zendesk.com/rest_api/docs/support/automations#update-automation

func (*Client) UpdateBrand added in v0.2.0

func (z *Client) UpdateBrand(ctx context.Context, brandID int64, brand Brand) (Brand, error)

UpdateBrand updates a brand with the specified brand ref: https://developer.zendesk.com/rest_api/docs/support/brands#update-brand

func (*Client) UpdateCustomObjectRecord added in v0.16.0

func (z *Client) UpdateCustomObjectRecord(
	ctx context.Context, customObjectKey string, customObjectRecordID string, record CustomObjectRecord,
) (*CustomObjectRecord, error)

UpdateCustomObjectRecord Updates an individual custom object record https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#update-custom-object-record

func (*Client) UpdateDynamicContentItem added in v0.11.0

func (z *Client) UpdateDynamicContentItem(ctx context.Context, id int64, item DynamicContentItem) (DynamicContentItem, error)

UpdateDynamicContentItem updates the specified dynamic content item and returns the updated one

ref: https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#update-item

func (*Client) UpdateGroup added in v0.2.0

func (z *Client) UpdateGroup(ctx context.Context, groupID int64, group Group) (Group, error)

UpdateGroup updates a group with the specified group ref: https://developer.zendesk.com/rest_api/docs/support/groups#update-group

func (*Client) UpdateMacro added in v0.9.2

func (z *Client) UpdateMacro(ctx context.Context, macroID int64, macro Macro) (Macro, error)

UpdateMacro update an existing macro ref: https://developer.zendesk.com/rest_api/docs/support/macros#update-macro

func (*Client) UpdateOrganization added in v0.4.2

func (z *Client) UpdateOrganization(ctx context.Context, orgID int64, org Organization) (Organization, error)

UpdateOrganization updates a organization with the specified organization ref: https://developer.zendesk.com/rest_api/docs/support/organizations#update-organization

func (*Client) UpdateSLAPolicy added in v0.6.0

func (z *Client) UpdateSLAPolicy(ctx context.Context, id int64, slaPolicy SLAPolicy) (SLAPolicy, error)

UpdateSLAPolicy updates the specified slaPolicy and returns the updated one

ref: https://developer.zendesk.com/rest_api/docs/support/slas/policies#update-slaPolicy

func (*Client) UpdateTarget added in v0.4.2

func (z *Client) UpdateTarget(ctx context.Context, targetID int64, field Target) (Target, error)

UpdateTarget updates a field with the specified target ref: https://developer.zendesk.com/rest_api/docs/support/targets#update-target

func (*Client) UpdateTicket added in v0.7.4

func (z *Client) UpdateTicket(ctx context.Context, ticketID int64, ticket Ticket) (Ticket, error)

UpdateTicket update an existing ticket ref: https://developer.zendesk.com/rest_api/docs/support/tickets#update-ticket

func (*Client) UpdateTicketField added in v0.2.0

func (z *Client) UpdateTicketField(ctx context.Context, ticketID int64, field TicketField) (TicketField, error)

UpdateTicketField updates a field with the specified ticket field ref: https://developer.zendesk.com/rest_api/docs/support/ticket_fields#update-ticket-field

func (*Client) UpdateTicketForm added in v0.2.0

func (z *Client) UpdateTicketForm(ctx context.Context, id int64, form TicketForm) (TicketForm, error)

UpdateTicketForm updates the specified ticket form and returns the updated form ref: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#update-ticket-forms

func (*Client) UpdateTrigger added in v0.2.0

func (z *Client) UpdateTrigger(ctx context.Context, id int64, trigger Trigger) (Trigger, error)

UpdateTrigger updates the specified trigger and returns the updated one

ref: https://developer.zendesk.com/rest_api/docs/support/triggers#update-trigger

func (*Client) UpdateUser added in v0.7.4

func (z *Client) UpdateUser(ctx context.Context, userID int64, user User) (User, error)

UpdateUser update an existing user ref: https://developer.zendesk.com/rest_api/docs/support/users#update-user

func (*Client) UpdateWebhook added in v0.12.0

func (z *Client) UpdateWebhook(ctx context.Context, webhookID string, hook *Webhook) error

UpdateWebhook updates a webhook with the specified webhook.

https://developer.zendesk.com/api-reference/event-connectors/webhooks/webhooks/#update-webhook

func (*Client) UploadAttachment added in v0.2.0

func (z *Client) UploadAttachment(ctx context.Context, filename string, token string) UploadWriter

UploadAttachment returns a writer that can be used to create a zendesk attachment ref: https://developer.zendesk.com/rest_api/docs/support/attachments#upload-files

type Collaborator added in v0.4.2

type Collaborator struct {
	Name  string `json:"name,omitempty"`
	Email string `json:"email,omitempty"`
}

Collaborator is user information for collaborator field value

type Collaborators added in v0.4.2

type Collaborators struct {
	// contains filtered or unexported fields
}

Collaborators hold array of interface which can take Collaborator

ref: https://developer.zendesk.com/rest_api/docs/support/tickets#setting-collaborators

func (*Collaborators) Append added in v0.4.2

func (c *Collaborators) Append(i interface{}) error

Append add any type of collaborator data payload to Collaborators. The type can be string, int64, Collaborator or map[string]interface{} which must include "name" and "email" field

func (*Collaborators) List added in v0.4.2

func (c *Collaborators) List() []interface{}

List return internal array in Collaborators

func (Collaborators) MarshalJSON added in v0.4.2

func (c Collaborators) MarshalJSON() ([]byte, error)

MarshalJSON is marshaller for Collaborators

func (*Collaborators) String added in v0.4.2

func (c *Collaborators) String() string

String return string formatted for

func (*Collaborators) UnmarshalJSON added in v0.4.2

func (c *Collaborators) UnmarshalJSON(b []byte) error

UnmarshalJSON is unmarshaller for Collaborators

type CommonOptions added in v0.18.0

type CommonOptions struct {
	Active        bool     `url:"active,omitempty"`
	Role          string   `url:"role,omitempty"`
	Roles         []string `url:"role[],omitempty"`
	PermissionSet int64    `url:"permission_set,omitempty"`

	// SortBy can take "assignee", "assignee.name", "created_at", "group", "id",
	// "locale", "requester", "requester.name", "status", "subject", "updated_at"
	SortBy string `url:"sort_by,omitempty"`

	// SortOrder can take "asc" or "desc"
	SortOrder      string `url:"sort_order,omitempty"`
	Sort           string `url:"sort,omitempty"`
	Id             int64
	GroupID        int64 `json:"group_id,omitempty" url:"group_id,omitempty"`
	UserID         int64 `json:"user_id,omitempty" url:"user_id,omitempty"`
	OrganizationID int64 `json:"organization_id,omitempty" url:"organization_id,omitempty"`

	Access            string `json:"access"`
	Category          int    `json:"category"`
	Include           string `json:"include" url:"include,omitempty"`
	OnlyViewable      bool   `json:"only_viewable"`
	Query             string `url:"query"`
	EndUserVisible    bool   `url:"end_user_visible,omitempty"`
	FallbackToDefault bool   `url:"fallback_to_default,omitempty"`
	AssociatedToBrand bool   `url:"associated_to_brand,omitempty"`
	CategoryID        string `url:"category_id,omitempty"`

	IncludeInlineImages string `url:"include_inline_images,omitempty"`
}

type Configuration added in v0.11.0

type Configuration map[string]interface{}

Configuration is a dictionary of custom configuration fields

type CountOptions added in v0.9.1

type CountOptions struct {
	Query string `url:"query"`
}

CountOptions are the options that can be provided to the search results count API

ref: https://developer.zendesk.com/rest_api/docs/support/search#show-results-count

type Credential

type Credential interface {
	Email() string
	Secret() string
	Bearer() bool
}

Credential is interface of API credential

type Cursor added in v0.8.1

type Cursor struct {
	AfterURL     string `json:"after_url"`
	AfterCursor  string `json:"after_cursor"`
	BeforeURL    string `json:"before_url"`
	BeforeCursor string `json:"before_cursor"`
}

Cursor is struct for cursor-based pagination

type CursorOption added in v0.8.1

type CursorOption struct {
	StartTime int64  `url:"start_time,omitempty"`
	Cursor    string `url:"cursor,omitempty"`
}

CursorOption is options for list methods for cursor-based pagination resources It's used to create query string.

https://developer.zendesk.com/rest_api/docs/support/incremental_export#cursor-based-incremental-exports

type CursorPagination added in v0.15.0

type CursorPagination struct {
	// PageSize sets the number of results per page.
	// Most endpoints support up to 100 records per page.
	PageSize int `url:"page[size],omitempty"`

	// PageAfter provides the "next" cursor.
	PageAfter string `url:"page[after],omitempty"`

	// PageBefore provides the "previous" cursor.
	PageBefore string `url:"page[before],omitempty"`
}

CursorPagination contains options for using cursor pagination. Cursor pagination is preferred where possible.

type CursorPaginationMeta added in v0.15.0

type CursorPaginationMeta struct {
	// HasMore is true if more results exist in the endpoint.
	HasMore bool `json:"has_more,omitempty"`

	// AfterCursor contains the cursor of the next result set.
	AfterCursor string `json:"after_cursor,omitempty"`

	// BeforeCursor contains the cursor of the previous result set.
	BeforeCursor string `json:"before_cursor,omitempty"`
}

CursorPaginationMeta contains information concerning how to fetch next and previous results, and if next results exist.

type CustomField added in v0.4.2

type CustomField struct {
	ID int64 `json:"id"`
	// Valid types are string or []string.
	Value interface{} `json:"value"`
}

func (*CustomField) UnmarshalJSON added in v0.4.2

func (cf *CustomField) UnmarshalJSON(data []byte) error

UnmarshalJSON Custom Unmarshal function required because a custom field's value can be a string or array of strings.

type CustomFieldOption added in v0.1.0

type CustomFieldOption struct {
	ID       int64  `json:"id,omitempty"`
	Name     string `json:"name"`
	Position int64  `json:"position,omitempty"`
	RawName  string `json:"raw_name,omitempty"`
	URL      string `json:"url,omitempty"`
	Value    string `json:"value"`
}

CustomFieldOption is struct for value of `custom_field_options`

type CustomObjectAPI added in v0.16.0

type CustomObjectAPI interface {
	CreateCustomObjectRecord(
		ctx context.Context, record CustomObjectRecord, customObjectKey string) (CustomObjectRecord, error)
	AutocompleteSearchCustomObjectRecords(
		ctx context.Context,
		customObjectKey string,
		opts *CustomObjectAutocompleteOptions,
	) ([]CustomObjectRecord, Page, error)
	SearchCustomObjectRecords(
		ctx context.Context, customObjectKey string, opts *SearchCustomObjectRecordsOptions,
	) ([]CustomObjectRecord, Page, error)
	ListCustomObjectRecords(
		ctx context.Context, customObjectKey string, opts *CustomObjectListOptions) ([]CustomObjectRecord, Page, error)
	ShowCustomObjectRecord(
		ctx context.Context, customObjectKey string, customObjectRecordID string,
	) (*CustomObjectRecord, error)
	UpdateCustomObjectRecord(
		ctx context.Context, customObjectKey string, customObjectRecordID string, record CustomObjectRecord,
	) (*CustomObjectRecord, error)
}

CustomObjectAPI an interface containing all custom object related methods

type CustomObjectAutocompleteOptions added in v0.16.0

type CustomObjectAutocompleteOptions struct {
	PageOptions
	Name string `url:"name"`
}

CustomObjectAutocompleteOptions custom object search options

type CustomObjectListOptions added in v0.16.0

type CustomObjectListOptions struct {
	PageOptions
	Ids         string `url:"filter[ids],omitempty"`
	ExternalIds string `url:"filter[external_ids],omitempty"`
}

CustomObjectListOptions custom object list options

type CustomObjectRecord added in v0.16.0

type CustomObjectRecord struct {
	Url                string                 `json:"url,omitempty"`
	Name               string                 `json:"name,omitempty"`
	ID                 string                 `json:"id,omitempty"`
	CustomObjectKey    string                 `json:"custom_object_key"`
	CustomObjectFields map[string]interface{} `json:"custom_object_fields" binding:"required"`
	CreatedByUserID    string                 `json:"created_by_user_id,omitempty"`
	UpdatedByUserID    string                 `json:"updated_by_user_id,omitempty"`
	CreatedAt          time.Time              `json:"created_at,omitempty"`
	UpdatedAt          time.Time              `json:"updated_at,omitempty"`
	ExternalID         string                 `json:"external_id,omitempty"`
}

type CustomRole added in v0.11.0

type CustomRole struct {
	Description     string        `json:"description,omitempty"`
	ID              int64         `json:"id,omitempty"`
	TeamMemberCount int64         `json:"team_member_count"`
	Name            string        `json:"name"`
	Configuration   Configuration `json:"configuration"`
	RoleType        int64         `json:"role_type"`
	CreatedAt       time.Time     `json:"created_at,omitempty"`
	UpdatedAt       time.Time     `json:"updated_at,omitempty"`
}

CustomRole is zendesk CustomRole JSON payload format https://developer.zendesk.com/api-reference/ticketing/account-configuration/custom_roles/

type CustomRoleAPI added in v0.11.0

type CustomRoleAPI interface {
	GetCustomRoles(ctx context.Context) ([]CustomRole, error)
}

CustomRoleAPI an interface containing all CustomRole related methods

type DynamicContentAPI added in v0.4.2

type DynamicContentAPI interface {
	GetDynamicContentItems(ctx context.Context) ([]DynamicContentItem, Page, error)
	CreateDynamicContentItem(ctx context.Context, item DynamicContentItem) (DynamicContentItem, error)
	GetDynamicContentItem(ctx context.Context, id int64) (DynamicContentItem, error)
	UpdateDynamicContentItem(ctx context.Context, id int64, item DynamicContentItem) (DynamicContentItem, error)
	DeleteDynamicContentItem(ctx context.Context, id int64) error
	GetDynamicContentItemsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[DynamicContentItem]
	GetDynamicContentItemsOBP(ctx context.Context, opts *OBPOptions) ([]DynamicContentItem, Page, error)
	GetDynamicContentItemsCBP(ctx context.Context, opts *CBPOptions) ([]DynamicContentItem, CursorPaginationMeta, error)
}

DynamicContentAPI an interface containing all methods associated with zendesk dynamic content

type DynamicContentItem added in v0.1.0

type DynamicContentItem struct {
	ID              int64                   `json:"id,omitempty"`
	URL             string                  `json:"url,omitempty"`
	Name            string                  `json:"name"`
	Placeholder     string                  `json:"placeholder,omitempty"`
	DefaultLocaleID int64                   `json:"default_locale_id"`
	Outdated        bool                    `json:"outdated,omitempty"`
	Variants        []DynamicContentVariant `json:"variants"`
	CreatedAt       time.Time               `json:"created_at,omitempty"`
	UpdatedAt       time.Time               `json:"updated_at,omitempty"`
}

DynamicContentItem is zendesk dynamic content item JSON payload format

https://developer.zendesk.com/rest_api/docs/support/users

type DynamicContentVariant added in v0.1.0

type DynamicContentVariant struct {
	ID        int64     `json:"id,omitempty"`
	URL       string    `json:"url,omitempty"`
	Content   string    `json:"content"`
	LocaleID  int64     `json:"locale_id"`
	Outdated  bool      `json:"outdated,omitempty"`
	Active    bool      `json:"active,omitempty"`
	Default   bool      `json:"default,omitempty"`
	CreatedAt time.Time `json:"created_at,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

DynamicContentVariant is zendesk dynamic content variant JSON payload format

https://developer.zendesk.com/rest_api/docs/support/dynamic_content#json-format-for-variants

type Error added in v0.1.2

type Error struct {
	// contains filtered or unexported fields
}

Error an error type containing the http response from zendesk

func NewError added in v0.14.2

func NewError(body []byte, resp *http.Response) Error

NewError is a function to initialize the Error type. This function will be useful for unit testing and mocking purposes in the client side to test their behavior by the API response.

func (Error) Body added in v0.1.3

func (e Error) Body() io.ReadCloser

Body is the Body of the HTTP response

func (Error) Error added in v0.1.2

func (e Error) Error() string

Error the error string for this error

func (Error) Headers added in v0.1.3

func (e Error) Headers() http.Header

Headers the HTTP headers returned from zendesk

func (Error) Status added in v0.1.3

func (e Error) Status() int

Status the HTTP status code returned from zendesk

type GetManyUsersOptions added in v0.10.0

type GetManyUsersOptions struct {
	ExternalIDs string `json:"external_ids,omitempty" url:"external_ids,omitempty"`
	IDs         string `json:"ids,omitempty" url:"ids,omitempty"`
}

GetManyUsersOptions is options for GetManyUsers

ref: https://developer.zendesk.com/api-reference/ticketing/users/users/#show-many-users

type Group added in v0.1.0

type Group struct {
	ID          int64     `json:"id,omitempty"`
	URL         string    `json:"url,omitempty"`
	Name        string    `json:"name"`
	Default     bool      `json:"default,omitempty"`
	Deleted     bool      `json:"deleted,omitempty"`
	Description string    `json:"description,omitempty"`
	CreatedAt   time.Time `json:"created_at,omitempty"`
	UpdatedAt   time.Time `json:"updated_at,omitempty"`
}

Group is struct for group payload https://developer.zendesk.com/rest_api/docs/support/groups

type GroupAPI added in v0.1.2

type GroupAPI interface {
	GetGroups(ctx context.Context, opts *GroupListOptions) ([]Group, Page, error)
	GetGroupsOBP(ctx context.Context, opts *OBPOptions) ([]Group, Page, error)
	GetGroupsCBP(ctx context.Context, opts *CBPOptions) ([]Group, CursorPaginationMeta, error)
	GetGroupsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Group]
	GetGroup(ctx context.Context, groupID int64) (Group, error)
	CreateGroup(ctx context.Context, group Group) (Group, error)
	UpdateGroup(ctx context.Context, groupID int64, group Group) (Group, error)
	DeleteGroup(ctx context.Context, groupID int64) error
}

GroupAPI an interface containing all methods associated with zendesk groups

type GroupListOptions added in v0.13.0

type GroupListOptions struct {
	PageOptions
}

GroupListOptions is options for GetGroups

ref: https://developer.zendesk.com/rest_api/docs/support/groups#list-groups

type GroupMembership added in v0.10.0

type GroupMembership struct {
	ID        int64     `json:"id,omitempty"`
	URL       string    `json:"url,omitempty"`
	UserID    int64     `json:"user_id"`
	GroupID   int64     `json:"group_id"`
	Default   bool      `json:"default"`
	Name      string    `json:"name"`
	CreatedAt time.Time `json:"created_at,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

GroupMembership is struct for group membership payload https://developer.zendesk.com/api-reference/ticketing/groups/group_memberships/

type GroupMembershipAPI added in v0.10.0

type GroupMembershipAPI interface {
	GetGroupMemberships(context.Context, *GroupMembershipListOptions) ([]GroupMembership, Page, error)
	GetGroupMembershipsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[GroupMembership]
	GetGroupMembershipsOBP(ctx context.Context, opts *OBPOptions) ([]GroupMembership, Page, error)
	GetGroupMembershipsCBP(ctx context.Context, opts *CBPOptions) ([]GroupMembership, CursorPaginationMeta, error)
}

GroupMembershipAPI is an interface containing group membership related methods

type GroupMembershipListOptions added in v0.10.0

type GroupMembershipListOptions struct {
	PageOptions
	GroupID int64 `json:"group_id,omitempty" url:"group_id,omitempty"`
	UserID  int64 `json:"user_id,omitempty" url:"user_id,omitempty"`
}

GroupMembershipListOptions is a struct for options for group membership list ref: https://developer.zendesk.com/api-reference/ticketing/groups/group_memberships/

type Iterator added in v0.18.0

type Iterator[T any] struct {
	CommonOptions
	// contains filtered or unexported fields
}

terator struct provides a convenient and genric way to iterate over pages of objects in either OBP or CBP. It holds state for iteration, including the current page size, a flag indicating more pages, pagination type (OBP or CBP), and sorting options.

func (*Iterator[T]) GetNext added in v0.18.0

func (i *Iterator[T]) GetNext() ([]T, error)

GetNext() retrieves the next batch of objects according to the current pagination and sorting options. It updates the state of the iterator for subsequent calls. In case of an error, it sets hasMore to false and returns an error.

func (*Iterator[T]) HasMore added in v0.18.0

func (i *Iterator[T]) HasMore() bool

HasMore() returns a boolean indicating whether more pages are available for iteration.

type ListTicketCommentsOptions added in v0.15.0

type ListTicketCommentsOptions struct {
	CursorPagination

	Include             string                 `url:"include,omitempty"`
	IncludeInlineImages string                 `url:"include_inline_images,omitempty"`
	Sort                listTicketCommentsSort `url:"sort,omitempty"`
}

ListTicketCommentOptions contains all the options supported by ListTicketComments endpoint.

type ListTicketCommentsResult added in v0.15.0

type ListTicketCommentsResult struct {
	TicketComments []TicketComment      `json:"comments"`
	Meta           CursorPaginationMeta `json:"meta"`
	Users          []User               `json:"users"`
}

ListTicketCommentsResult contains the resulting ticket comments and cursor pagination metadata.

type Locale added in v0.1.0

type Locale struct {
	ID        int64     `json:"id"`
	URL       string    `json:"url"`
	Locale    string    `json:"locale"`
	Name      string    `json:"name"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

Locale is zendesk locale JSON payload format https://developer.zendesk.com/rest_api/docs/support/locales

type LocaleAPI added in v0.1.2

type LocaleAPI interface {
	GetLocales(ctx context.Context) ([]Locale, error)
}

LocaleAPI an interface containing all of the local related zendesk methods

type Macro added in v0.9.2

type Macro struct {
	Actions     []MacroAction `json:"actions"`
	Active      bool          `json:"active"`
	CreatedAt   time.Time     `json:"created_at,omitempty"`
	Description interface{}   `json:"description"`
	ID          int64         `json:"id,omitempty"`
	Position    int           `json:"position,omitempty"`
	Restriction interface{}   `json:"restriction"`
	Title       string        `json:"title"`
	UpdatedAt   time.Time     `json:"updated_at,omitempty"`
	URL         string        `json:"url,omitempty"`
}

Macro is information about zendesk macro

type MacroAPI added in v0.9.2

type MacroAPI interface {
	GetMacros(ctx context.Context, opts *MacroListOptions) ([]Macro, Page, error)
	GetMacro(ctx context.Context, macroID int64) (Macro, error)
	CreateMacro(ctx context.Context, macro Macro) (Macro, error)
	UpdateMacro(ctx context.Context, macroID int64, macro Macro) (Macro, error)
	DeleteMacro(ctx context.Context, macroID int64) error
	GetMacrosIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Macro]
	GetMacrosOBP(ctx context.Context, opts *OBPOptions) ([]Macro, Page, error)
	GetMacrosCBP(ctx context.Context, opts *CBPOptions) ([]Macro, CursorPaginationMeta, error)
}

MacroAPI an interface containing all macro related methods

type MacroAction added in v0.9.2

type MacroAction struct {
	Field string `json:"field"`
	Value string `json:"value"`
}

MacroAction is definition of what the macro does to the ticket

ref: https://develop.zendesk.com/hc/en-us/articles/360056760874-Support-API-Actions-reference

type MacroListOptions added in v0.9.2

type MacroListOptions struct {
	Access       string `json:"access"`
	Active       string `json:"active"`
	Category     int    `json:"category"`
	GroupID      int    `json:"group_id"`
	Include      string `json:"include"`
	OnlyViewable bool   `json:"only_viewable"`

	PageOptions

	// SortBy can take "created_at", "updated_at", "usage_1h", "usage_24h",
	// "usage_7d", "usage_30d", "alphabetical"
	SortBy string `url:"sort_by,omitempty"`

	// SortOrder can take "asc" or "desc"
	SortOrder string `url:"sort_order,omitempty"`
}

MacroListOptions is parameters used of GetMacros

type OBPOptions added in v0.18.0

type OBPOptions struct {
	PageOptions
	CommonOptions
}

OBPOptions struct is used to specify options for listing objects in OBP (Offset Based Pagination). It embeds the PageOptions struct for pagination and provides options for sorting the result; SortBy specifies the field to sort by, and SortOrder specifies the order (either 'asc' or 'desc').

type ObpFunc added in v0.18.0

type ObpFunc[T any] func(ctx context.Context, opts *OBPOptions) ([]T, Page, error)

ObpFunc defines the signature of the function used to list objects in OBP.

type OptionsError added in v0.4.2

type OptionsError struct {
	// contains filtered or unexported fields
}

OptionsError is an error type for invalid option argument.

func (*OptionsError) Error added in v0.4.2

func (e *OptionsError) Error() string

type Organization added in v0.4.2

type Organization struct {
	ID                 int64                  `json:"id,omitempty"`
	ExternalID         string                 `json:"external_id,omitempty"`
	URL                string                 `json:"url,omitempty"`
	Name               string                 `json:"name"`
	Details            string                 `json:"details,omitempty"`
	DomainNames        []string               `json:"domain_names"`
	GroupID            int64                  `json:"group_id"`
	SharedTickets      bool                   `json:"shared_tickets"`
	SharedComments     bool                   `json:"shared_comments"`
	Tags               []string               `json:"tags"`
	Notes              string                 `json:"notes,omitempty"`
	CreatedAt          time.Time              `json:"created_at,omitempty"`
	UpdatedAt          time.Time              `json:"updated_at,omitempty"`
	OrganizationFields map[string]interface{} `json:"organization_fields,omitempty"`
}

Organization is struct for organization payload https://developer.zendesk.com/rest_api/docs/support/organizations

type OrganizationAPI added in v0.4.2

type OrganizationAPI interface {
	GetOrganizations(ctx context.Context, opts *OrganizationListOptions) ([]Organization, Page, error)
	CreateOrganization(ctx context.Context, org Organization) (Organization, error)
	GetOrganization(ctx context.Context, orgID int64) (Organization, error)
	GetOrganizationByExternalID(ctx context.Context, externalID string) ([]Organization, Page, error)
	UpdateOrganization(ctx context.Context, orgID int64, org Organization) (Organization, error)
	DeleteOrganization(ctx context.Context, orgID int64) error
	GetOrganizationsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Organization]
	GetOrganizationsOBP(ctx context.Context, opts *OBPOptions) ([]Organization, Page, error)
	GetOrganizationsCBP(ctx context.Context, opts *CBPOptions) ([]Organization, CursorPaginationMeta, error)
}

OrganizationAPI an interface containing all methods associated with zendesk organizations

type OrganizationField added in v0.15.0

type OrganizationField struct {
	ID                     int64               `json:"id,omitempty"`
	URL                    string              `json:"url,omitempty"`
	Title                  string              `json:"title"`
	Type                   string              `json:"type"`
	RelationshipTargetType string              `json:"relationship_target_type"`
	RelationshipFilter     RelationshipFilter  `json:"relationship_filter"`
	Active                 bool                `json:"active,omitempty"`
	CustomFieldOptions     []CustomFieldOption `json:"custom_field_options,omitempty"`
	Description            string              `json:"description,omitempty"`
	Key                    string              `json:"key"`
	Position               int64               `json:"position,omitempty"`
	RawDescription         string              `json:"raw_description,omitempty"`
	RawTitle               string              `json:"raw_title,omitempty"`
	RegexpForValidation    string              `json:"regexp_for_validation,omitempty"`
	System                 bool                `json:"system,omitempty"`
	Tag                    string              `json:"tag,omitempty"`
	CreatedAt              *time.Time          `json:"created_at,omitempty"`
	UpdatedAt              *time.Time          `json:"updated_at,omitempty"`
}

OrganizationField represents the Organization Custom field structure

type OrganizationFieldAPI added in v0.15.0

type OrganizationFieldAPI interface {
	GetOrganizationFields(ctx context.Context) ([]OrganizationField, Page, error)
	CreateOrganizationField(ctx context.Context, organizationField OrganizationField) (OrganizationField, error)
	GetOrganizationFieldsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[OrganizationField]
	GetOrganizationFieldsOBP(ctx context.Context, opts *OBPOptions) ([]OrganizationField, Page, error)
	GetOrganizationFieldsCBP(ctx context.Context, opts *CBPOptions) ([]OrganizationField, CursorPaginationMeta, error)
}

OrganizationFieldAPI an interface containing all the organization field related zendesk methods

type OrganizationListOptions added in v0.8.2

type OrganizationListOptions struct {
	PageOptions
}

OrganizationListOptions is options for GetOrganizations

ref: https://developer.zendesk.com/rest_api/docs/support/organizations#list-organizations

type OrganizationMembership added in v0.11.0

type OrganizationMembership struct {
	ID             int64     `json:"id,omitempty"`
	URL            string    `json:"url,omitempty"`
	UserID         int64     `json:"user_id"`
	OrganizationID int64     `json:"organization_id"`
	Default        bool      `json:"default"`
	Name           string    `json:"organization_name"`
	CreatedAt      time.Time `json:"created_at,omitempty"`
	UpdatedAt      time.Time `json:"updated_at,omitempty"`
}

OrganizationMembership is struct for organization membership payload https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/

type OrganizationMembershipAPI added in v0.11.0

type OrganizationMembershipAPI interface {
	GetOrganizationMemberships(context.Context, *OrganizationMembershipListOptions) ([]OrganizationMembership, Page, error)
	CreateOrganizationMembership(context.Context, OrganizationMembershipOptions) (OrganizationMembership, error)
	SetDefaultOrganization(context.Context, OrganizationMembershipOptions) (OrganizationMembership, error)
	GetOrganizationMembershipsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[OrganizationMembership]
	GetOrganizationMembershipsOBP(ctx context.Context, opts *OBPOptions) ([]OrganizationMembership, Page, error)
	GetOrganizationMembershipsCBP(ctx context.Context, opts *CBPOptions) ([]OrganizationMembership, CursorPaginationMeta, error)
}

OrganizationMembershipAPI is an interface containing organization membership related methods

type OrganizationMembershipListOptions added in v0.11.0

type OrganizationMembershipListOptions struct {
	PageOptions
	OrganizationID int64 `json:"organization_id,omitempty" url:"organization_id,omitempty"`
	UserID         int64 `json:"user_id,omitempty" url:"user_id,omitempty"`
}

OrganizationMembershipListOptions is a struct for options for organization membership list ref: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/

type OrganizationMembershipOptions added in v0.13.2

type OrganizationMembershipOptions struct {
	OrganizationID int64 `json:"organization_id,omitempty"`
	UserID         int64 `json:"user_id,omitempty"`
}

OrganizationMembershipOptions is a struct for options for organization membership https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/

type Page

type Page struct {
	PreviousPage *string `json:"previous_page"`
	NextPage     *string `json:"next_page"`
	Count        int64   `json:"count"`
}

Page is base struct for resource pagination

func (Page) HasNext

func (p Page) HasNext() bool

HasNext checks if the Page has next page

func (Page) HasPrev

func (p Page) HasPrev() bool

HasPrev checks if the Page has previous page

type PageOptions added in v0.4.2

type PageOptions struct {
	PerPage int `url:"per_page,omitempty"`
	Page    int `url:"page,omitempty"`
}

PageOptions is options for list method of paginatable resources. It's used to create query string.

ref: https://developer.zendesk.com/rest_api/docs/support/introduction#pagination

type PaginationOptions added in v0.17.0

type PaginationOptions struct {
	CommonOptions
	PageSize int  //default is 100
	IsCBP    bool //default is true
}

PaginationOptions struct represents general pagination options. PageSize specifies the number of items per page, IsCBP indicates if it's cursor-based pagination, SortBy and SortOrder describe how to sort the items in Offset Based Pagination, and Sort describes how to sort items in Cursor Based Pagination.

func NewPaginationOptions added in v0.17.0

func NewPaginationOptions() *PaginationOptions

NewPaginationOptions() returns a pointer to a new PaginationOptions struct with default values (PageSize is 100, IsCBP is true).

type Photo added in v0.2.0

type Photo struct {
	ID          int64  `json:"id"`
	FileName    string `json:"file_name"`
	ContentURL  string `json:"content_url"`
	ContentType string `json:"content_type"`
	Size        int64  `json:"size"`
}

Photo is thumbnail which is included in attachment

type RedactTicketCommentRequest added in v0.14.2

type RedactTicketCommentRequest struct {
	TicketID               int64    `json:"ticket_id"` // Required
	HTMLBody               string   `json:"html_body,omitempty"`
	ExternalAttachmentUrls []string `json:"external_attachment_urls,omitempty"`
}

RedactTicketCommentRequest contains the body of the RedactTicketComment PUT request

type RelationshipFilter added in v0.15.0

type RelationshipFilter struct {
	All []relationshipFilterObject `json:"all"`
	Any []relationshipFilterObject `json:"any"`
}

RelationshipFilter is struct for value of `relationship_filter`

type Requester added in v0.9.4

type Requester struct {
	Name     string `json:"name,omitempty"`
	Email    string `json:"email,omitempty"`
	LocaleID string `json:"locale_id,omitempty"`
}

Requester is the struct that can be passed to create a new requester on ticket creation https://develop.zendesk.com/hc/en-us/articles/360059146153#creating-a-ticket-with-a-new-requester

type SLAPolicy added in v0.6.0

type SLAPolicy struct {
	ID          int64  `json:"id,omitempty"`
	Title       string `json:"title"`
	Description string `json:"description,omitempty"`
	Position    int64  `json:"position,omitempty"`
	Active      bool   `json:"active,omitempty"`
	Filter      struct {
		All []SLAPolicyFilter `json:"all"`
		Any []SLAPolicyFilter `json:"any"`
	} `json:"filter"`
	PolicyMetrics []SLAPolicyMetric `json:"policy_metrics,omitempty"`
	CreatedAt     *time.Time        `json:"created_at,omitempty"`
	UpdatedAt     *time.Time        `json:"updated_at,omitempty"`
}

SLAPolicy is zendesk slaPolicy JSON payload format

ref: https://developer.zendesk.com/rest_api/docs/core/slas/policies#json-format

type SLAPolicyAPI added in v0.6.0

type SLAPolicyAPI interface {
	GetSLAPolicies(ctx context.Context, opts *SLAPolicyListOptions) ([]SLAPolicy, Page, error)
	CreateSLAPolicy(ctx context.Context, slaPolicy SLAPolicy) (SLAPolicy, error)
	GetSLAPolicy(ctx context.Context, id int64) (SLAPolicy, error)
	UpdateSLAPolicy(ctx context.Context, id int64, slaPolicy SLAPolicy) (SLAPolicy, error)
	DeleteSLAPolicy(ctx context.Context, id int64) error
	GetSLAPoliciesIterator(ctx context.Context, opts *PaginationOptions) *Iterator[SLAPolicy]
	GetSLAPoliciesOBP(ctx context.Context, opts *OBPOptions) ([]SLAPolicy, Page, error)
	GetSLAPoliciesCBP(ctx context.Context, opts *CBPOptions) ([]SLAPolicy, CursorPaginationMeta, error)
}

SLAPolicyAPI an interface containing all slaPolicy related methods

type SLAPolicyFilter added in v0.6.0

type SLAPolicyFilter struct {
	Field    string `json:"field"`
	Operator string `json:"operator"`
	Value    string `json:"value"`
}

SLAPolicyFilter zendesk slaPolicy condition

ref: https://developer.zendesk.com/rest_api/docs/core/slas/policies#conditions-reference

type SLAPolicyListOptions added in v0.6.0

type SLAPolicyListOptions struct {
	PageOptions
	Active    bool   `url:"active,omitempty"`
	SortBy    string `url:"sort_by,omitempty"`
	SortOrder string `url:"sort_order,omitempty"`
}

SLAPolicyListOptions is options for GetSLAPolicies

ref: https://developer.zendesk.com/rest_api/docs/support/slas/policies#list-slas/policies

type SLAPolicyMetric added in v0.6.0

type SLAPolicyMetric struct {
	Priority      string `json:"priority"`
	Metric        string `json:"metric"`
	Target        int    `json:"target"`
	BusinessHours bool   `json:"business_hours"`
}

type SearchAPI added in v0.7.0

type SearchAPI interface {
	Search(ctx context.Context, opts *SearchOptions) (SearchResults, Page, error)
	SearchCount(ctx context.Context, opts *CountOptions) (int, error)
	GetSearchIterator(ctx context.Context, opts *PaginationOptions) *Iterator[SearchResults]
	GetSearchOBP(ctx context.Context, opts *OBPOptions) ([]SearchResults, Page, error)
	GetSearchCBP(ctx context.Context, opts *CBPOptions) ([]SearchResults, CursorPaginationMeta, error)
}

type SearchCustomObjectRecordsOptions added in v0.17.0

type SearchCustomObjectRecordsOptions struct {
	PageOptions

	// One of name, created_at, updated_at, -name, -created_at, or -updated_at.
	// The - denotes the sort will be descending. Defaults to sorting by relevance.
	Sort string `url:"sort,omitempty"`

	// Query string
	Query string `url:"query,omitempty"`
}

type SearchOptions added in v0.7.0

type SearchOptions struct {
	PageOptions
	Query     string `url:"query"`
	SortBy    string `url:"sort_by,omitempty"`
	SortOrder string `url:"sort_order,omitempty"`
}

SearchOptions are the options that can be provided to the search API

ref: https://developer.zendesk.com/rest_api/docs/support/search#available-parameters

type SearchResults added in v0.7.0

type SearchResults struct {
	// contains filtered or unexported fields
}

func (*SearchResults) List added in v0.7.0

func (r *SearchResults) List() []interface{}

List return internal array in Search Results

func (*SearchResults) MarshalJSON added in v0.7.0

func (r *SearchResults) MarshalJSON() ([]byte, error)

func (*SearchResults) String added in v0.7.0

func (r *SearchResults) String() string

String return string formatted for Search results

func (*SearchResults) UnmarshalJSON added in v0.7.0

func (r *SearchResults) UnmarshalJSON(b []byte) error

type SearchUsersOptions added in v0.12.1

type SearchUsersOptions struct {
	PageOptions
	ExternalIDs string `json:"external_id,omitempty" url:"external_id,omitempty"`
	Query       string `json:"query,omitempty" url:"query,omitempty"`
}

SearchUsersOptions is options for SearchUsers

ref: https://developer.zendesk.com/api-reference/ticketing/users/users/#search-users

type Tag added in v0.8.0

type Tag string

Tag is an alias for string

type TagAPI added in v0.8.0

type TagAPI interface {
	GetTicketTags(ctx context.Context, ticketID int64) ([]Tag, error)
	GetOrganizationTags(ctx context.Context, organizationID int64) ([]Tag, error)
	GetUserTags(ctx context.Context, userID int64) ([]Tag, error)
	AddTicketTags(ctx context.Context, ticketID int64, tags []Tag) ([]Tag, error)
	AddOrganizationTags(ctx context.Context, organizationID int64, tags []Tag) ([]Tag, error)
	AddUserTags(ctx context.Context, userID int64, tags []Tag) ([]Tag, error)
}

TagAPI an interface containing all tag related methods

type Target added in v0.4.2

type Target struct {
	URL       string     `json:"url,omitempty"`
	ID        int64      `json:"id,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
	Type      string     `json:"type"`
	Title     string     `json:"title"`
	Active    bool       `json:"active,omitempty"`
	// email_target
	Email   string `json:"email,omitempty"`
	Subject string `json:"subject,omitempty"`
	// http_target
	TargetURL   string `json:"target_url,omitempty"`
	Method      string `json:"method,omitempty"`
	Username    string `json:"username,omitempty"`
	Password    string `json:"password,omitempty"`
	ContentType string `json:"content_type,omitempty"`
}

Target is struct for target payload

type TargetAPI added in v0.4.2

type TargetAPI interface {
	GetTargets(ctx context.Context) ([]Target, Page, error)
	CreateTarget(ctx context.Context, ticketField Target) (Target, error)
	GetTarget(ctx context.Context, ticketID int64) (Target, error)
	UpdateTarget(ctx context.Context, ticketID int64, field Target) (Target, error)
	DeleteTarget(ctx context.Context, ticketID int64) error
}

TargetAPI an interface containing all of the target related zendesk methods

type Ticket added in v0.4.2

type Ticket struct {
	ID              int64         `json:"id,omitempty"`
	URL             string        `json:"url,omitempty"`
	ExternalID      string        `json:"external_id,omitempty"`
	Type            string        `json:"type,omitempty"`
	Subject         string        `json:"subject,omitempty"`
	RawSubject      string        `json:"raw_subject,omitempty"`
	Description     string        `json:"description,omitempty"`
	Priority        string        `json:"priority,omitempty"`
	Status          string        `json:"status,omitempty"`
	CustomStatusID  int64         `json:"custom_status_id,omitempty"`
	Recipient       string        `json:"recipient,omitempty"`
	RequesterID     int64         `json:"requester_id,omitempty"`
	SubmitterID     int64         `json:"submitter_id,omitempty"`
	AssigneeID      int64         `json:"assignee_id,omitempty"`
	OrganizationID  int64         `json:"organization_id,omitempty"`
	GroupID         json.Number   `json:"group_id,omitempty"`
	CollaboratorIDs []int64       `json:"collaborator_ids,omitempty"`
	FollowerIDs     []int64       `json:"follower_ids,omitempty"`
	EmailCCIDs      []int64       `json:"email_cc_ids,omitempty"`
	ForumTopicID    int64         `json:"forum_topic_id,omitempty"`
	ProblemID       int64         `json:"problem_id,omitempty"`
	HasIncidents    bool          `json:"has_incidents,omitempty"`
	DueAt           *time.Time    `json:"due_at,omitempty"`
	Tags            []string      `json:"tags,omitempty"`
	CustomFields    []CustomField `json:"custom_fields,omitempty"`

	Via *Via `json:"via,omitempty"`

	SatisfactionRating *struct {
		ID      int64  `json:"id"`
		Score   string `json:"score"`
		Comment string `json:"comment"`
	} `json:"satisfaction_rating,omitempty"`

	SharingAgreementIDs []int64    `json:"sharing_agreement_ids,omitempty"`
	FollowupIDs         []int64    `json:"followup_ids,omitempty"`
	ViaFollowupSourceID int64      `json:"via_followup_source_id,omitempty"`
	MacroIDs            []int64    `json:"macro_ids,omitempty"`
	TicketFormID        int64      `json:"ticket_form_id,omitempty"`
	BrandID             int64      `json:"brand_id,omitempty"`
	AllowChannelback    bool       `json:"allow_channelback,omitempty"`
	AllowAttachments    bool       `json:"allow_attachments,omitempty"`
	IsPublic            bool       `json:"is_public,omitempty"`
	CreatedAt           *time.Time `json:"created_at,omitempty"`
	UpdatedAt           *time.Time `json:"updated_at,omitempty"`

	// Collaborators is POST only
	Collaborators *Collaborators `json:"collaborators,omitempty"`

	// Comment is POST only and required
	Comment *TicketComment `json:"comment,omitempty"`

	// Requester is POST only and can be used to create a ticket for a nonexistent requester
	Requester *Requester `json:"requester,omitempty"`

	// safe update fields
	// https://developer.zendesk.com/documentation/ticketing/managing-tickets/creating-and-updating-tickets/#protecting-against-ticket-update-collisions
	UpdatedStamp *time.Time `json:"updated_stamp,omitempty"`
	SafeUpdate   bool       `json:"safe_update,omitempty"`
}

type TicketAPI added in v0.4.2

type TicketAPI interface {
	GetTicketsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Ticket]
	GetTickets(ctx context.Context, opts *TicketListOptions) ([]Ticket, Page, error)
	GetTicketsOBP(ctx context.Context, opts *OBPOptions) ([]Ticket, Page, error)
	GetTicketsCBP(ctx context.Context, opts *CBPOptions) ([]Ticket, CursorPaginationMeta, error)
	GetOrganizationTickets(ctx context.Context, organizationID int64, ops *TicketListOptions) ([]Ticket, Page, error)
	GetOrganizationTicketsOBP(ctx context.Context, opts *OBPOptions) ([]Ticket, Page, error)
	GetOrganizationTicketsCBP(ctx context.Context, opts *CBPOptions) ([]Ticket, CursorPaginationMeta, error)
	GetOrganizationTicketsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Ticket]
	GetTicket(ctx context.Context, id int64) (Ticket, error)
	GetMultipleTickets(ctx context.Context, ticketIDs []int64) ([]Ticket, error)
	CreateTicket(ctx context.Context, ticket Ticket) (Ticket, error)
	UpdateTicket(ctx context.Context, ticketID int64, ticket Ticket) (Ticket, error)
	DeleteTicket(ctx context.Context, ticketID int64) error
}

TicketAPI an interface containing all ticket related methods

type TicketAudit added in v0.8.1

type TicketAudit struct {
	ID        int64          `json:"id,omitempty"`
	TicketID  int64          `json:"ticket_id,omitempty"`
	Metadata  interface{}    `json:"metadata,omitempty"`
	Via       TicketAuditVia `json:"via,omitempty"`
	CreatedAt *time.Time     `json:"created_at,omitempty"`
	AuthorID  int64          `json:"author_id,omitempty"`
	Events    []interface{}  `json:"events,omitempty"`
}

TicketAudit is struct for ticket_audit payload

type TicketAuditAPI added in v0.8.1

type TicketAuditAPI interface {
	GetAllTicketAudits(ctx context.Context, opts CursorOption) ([]TicketAudit, Cursor, error)
	GetTicketAudits(ctx context.Context, ticketID int64, opts PageOptions) ([]TicketAudit, Page, error)
	GetTicketAudit(ctx context.Context, TicketID, ID int64) (TicketAudit, error)
	GetTicketAuditsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketAudit]
	GetTicketAuditsOBP(ctx context.Context, opts *OBPOptions) ([]TicketAudit, Page, error)
	GetTicketAuditsCBP(ctx context.Context, opts *CBPOptions) ([]TicketAudit, CursorPaginationMeta, error)
}

TicketAuditAPI an interface containing all of the ticket audit related zendesk methods

type TicketAuditVia added in v0.8.1

type TicketAuditVia struct {
	Channel string `json:"channel,omitempty"`
	Source  struct {
		To   interface{} `json:"to,omitempty"`
		From interface{} `json:"from,omitempty"`
		Ref  string      `json:"ref,omitempty"`
	} `json:"source,omitempty"`
}

TicketAuditVia is struct for via payload

type TicketComment added in v0.4.2

type TicketComment struct {
	ID          int64                  `json:"id,omitempty"`
	Type        string                 `json:"type,omitempty"`
	Body        string                 `json:"body,omitempty"`
	HTMLBody    string                 `json:"html_body,omitempty"`
	PlainBody   string                 `json:"plain_body,omitempty"`
	Public      *bool                  `json:"public,omitempty"`
	AuthorID    int64                  `json:"author_id,omitempty"`
	Attachments []Attachment           `json:"attachments,omitempty"`
	CreatedAt   time.Time              `json:"created_at,omitempty"`
	Uploads     []string               `json:"uploads,omitempty"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`

	Via *Via `json:"via,omitempty"`
}

TicketComment is a struct for ticket comment payload Via and Metadata are currently unused https://developer.zendesk.com/rest_api/docs/support/ticket_comments

func NewPrivateTicketComment added in v0.7.2

func NewPrivateTicketComment(body string, authorID int64) TicketComment

NewPrivateTicketComment generates and returns a new private TicketComment

func NewPublicTicketComment added in v0.7.2

func NewPublicTicketComment(body string, authorID int64) TicketComment

NewPublicTicketComment generates and returns a new TicketComment

type TicketCommentAPI added in v0.8.2

type TicketCommentAPI interface {
	CreateTicketComment(ctx context.Context, ticketID int64, ticketComment TicketComment) (TicketComment, error)
	ListTicketComments(ctx context.Context, ticketID int64, opts *ListTicketCommentsOptions) (*ListTicketCommentsResult, error)
	MakeCommentPrivate(ctx context.Context, ticketID int64, ticketCommentID int64) error
	GetTicketCommentsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketComment]
	GetTicketCommentsOBP(ctx context.Context, opts *OBPOptions) ([]TicketComment, Page, error)
	GetTicketCommentsCBP(ctx context.Context, opts *CBPOptions) ([]TicketComment, CursorPaginationMeta, error)
}

TicketCommentAPI is an interface containing all ticket comment related API methods

type TicketField

type TicketField struct {
	ID                  int64                          `json:"id,omitempty"`
	URL                 string                         `json:"url,omitempty"`
	Type                string                         `json:"type"`
	Title               string                         `json:"title"`
	RawTitle            string                         `json:"raw_title,omitempty"`
	Description         string                         `json:"description,omitempty"`
	RawDescription      string                         `json:"raw_description,omitempty"`
	Position            int64                          `json:"position,omitempty"`
	Active              bool                           `json:"active,omitempty"`
	Required            bool                           `json:"required,omitempty"`
	CollapsedForAgents  bool                           `json:"collapsed_for_agents,omitempty"`
	RegexpForValidation string                         `json:"regexp_for_validation,omitempty"`
	TitleInPortal       string                         `json:"title_in_portal,omitempty"`
	RawTitleInPortal    string                         `json:"raw_title_in_portal,omitempty"`
	VisibleInPortal     bool                           `json:"visible_in_portal,omitempty"`
	EditableInPortal    bool                           `json:"editable_in_portal,omitempty"`
	RequiredInPortal    bool                           `json:"required_in_portal,omitempty"`
	Tag                 string                         `json:"tag,omitempty"`
	CreatedAt           *time.Time                     `json:"created_at,omitempty"`
	UpdatedAt           *time.Time                     `json:"updated_at,omitempty"`
	SystemFieldOptions  []TicketFieldSystemFieldOption `json:"system_field_options,omitempty"`
	CustomFieldOptions  []CustomFieldOption            `json:"custom_field_options,omitempty"`
	SubTypeID           int64                          `json:"sub_type_id,omitempty"`
	Removable           bool                           `json:"removable,omitempty"`
	AgentDescription    string                         `json:"agent_description,omitempty"`
}

TicketField is struct for ticket_field payload

type TicketFieldAPI added in v0.1.2

type TicketFieldAPI interface {
	GetTicketFields(ctx context.Context) ([]TicketField, Page, error)
	CreateTicketField(ctx context.Context, ticketField TicketField) (TicketField, error)
	GetTicketField(ctx context.Context, ticketID int64) (TicketField, error)
	UpdateTicketField(ctx context.Context, ticketID int64, field TicketField) (TicketField, error)
	DeleteTicketField(ctx context.Context, ticketID int64) error
	GetTicketFieldsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketField]
	GetTicketFieldsOBP(ctx context.Context, opts *OBPOptions) ([]TicketField, Page, error)
	GetTicketFieldsCBP(ctx context.Context, opts *CBPOptions) ([]TicketField, CursorPaginationMeta, error)
}

TicketFieldAPI an interface containing all of the ticket field related zendesk methods

type TicketFieldSystemFieldOption

type TicketFieldSystemFieldOption struct {
	ID       int64  `json:"id"`
	Name     string `json:"name"`
	Position int64  `json:"position"`
	RawName  string `json:"raw_name"`
	URL      string `json:"url"`
	Value    string `json:"value"`
}

TicketFieldSystemFieldOption is struct for value of `system_field_options`

type TicketForm

type TicketForm struct {
	ID                 int64   `json:"id,omitempty"`
	URL                string  `json:"url,omitempty"`
	Name               string  `json:"name"`
	RawName            string  `json:"raw_name,omitempty"`
	DisplayName        string  `json:"display_name,omitempty"`
	RawDisplayName     string  `json:"raw_display_name,omitempty"`
	Position           int64   `json:"position"`
	Active             bool    `json:"active,omitempty"`
	EndUserVisible     bool    `json:"end_user_visible,omitempty"`
	Default            bool    `json:"default,omitempty"`
	TicketFieldIDs     []int64 `json:"ticket_field_ids,omitempty"`
	InAllBrands        bool    `json:"in_all_brands,omitempty"`
	RestrictedBrandIDs []int64 `json:"restricted_brand_ids,omitempty"`
}

TicketForm is JSON payload struct

type TicketFormAPI added in v0.1.2

type TicketFormAPI interface {
	GetTicketForms(ctx context.Context, options *TicketFormListOptions) ([]TicketForm, Page, error)
	CreateTicketForm(ctx context.Context, ticketForm TicketForm) (TicketForm, error)
	DeleteTicketForm(ctx context.Context, id int64) error
	UpdateTicketForm(ctx context.Context, id int64, form TicketForm) (TicketForm, error)
	GetTicketForm(ctx context.Context, id int64) (TicketForm, error)
	GetTicketFormsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[TicketForm]
	GetTicketFormsOBP(ctx context.Context, opts *OBPOptions) ([]TicketForm, Page, error)
	GetTicketFormsCBP(ctx context.Context, opts *CBPOptions) ([]TicketForm, CursorPaginationMeta, error)
}

TicketFormAPI an interface containing all ticket form related methods

type TicketFormListOptions added in v0.4.2

type TicketFormListOptions struct {
	PageOptions
	Active            bool `url:"active,omitempty"`
	EndUserVisible    bool `url:"end_user_visible,omitempty"`
	FallbackToDefault bool `url:"fallback_to_default,omitempty"`
	AssociatedToBrand bool `url:"associated_to_brand,omitempty"`
}

TicketFormListOptions is options for GetTicketForms

ref: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#available-parameters

type TicketListCBPResult added in v0.17.0

type TicketListCBPResult struct {
	Tickets []Ticket             `json:"tickets"`
	Meta    CursorPaginationMeta `json:"meta"`
}

TicketListCBPResult struct represents the result of a ticket list operation in CBP. It includes an array of Ticket objects, and Meta that holds pagination metadata.

type TicketListOptions added in v0.4.2

type TicketListOptions struct {
	PageOptions

	// SortBy can take "assignee", "assignee.name", "created_at", "group", "id",
	// "locale", "requester", "requester.name", "status", "subject", "updated_at"
	SortBy string `url:"sort_by,omitempty"`

	// SortOrder can take "asc" or "desc"
	SortOrder string `url:"sort_order,omitempty"`
}

TicketListOptions struct is used to specify options for listing tickets in OBP (Offset Based Pagination). It embeds the PageOptions struct for pagination and provides options for sorting the result; SortBy specifies the field to sort by, and SortOrder specifies the order (either 'asc' or 'desc').

type TicketMetric added in v0.18.0

type TicketMetric struct {
	AgentWaitTimeInMinutes       TimeDuration `json:"agent_wait_time_in_minutes"`
	AssignedAt                   time.Time    `json:"assigned_at"`
	AssigneeStations             int          `json:"assignee_stations"`
	AssigneeUpdatedAt            time.Time    `json:"assignee_updated_at"`
	CreatedAt                    time.Time    `json:"created_at"`
	CustomStatusUpdatedAt        time.Time    `json:"custom_status_updated_at"`
	FirstResolutionTimeInMinutes TimeDuration `json:"first_resolution_time_in_minutes"`
	FullResolutionTimeInMinutes  TimeDuration `json:"full_resolution_time_in_minutes"`
	GroupStations                int          `json:"group_stations"`
	ID                           int          `json:"id"`
	InitiallyAssignedAt          time.Time    `json:"initially_assigned_at"`
	LatestCommentAddedAt         time.Time    `json:"latest_comment_added_at"`
	OnHoldTimeInMinutes          TimeDuration `json:"on_hold_time_in_minutes"`
	Reopens                      int          `json:"reopens"`
	Replies                      int          `json:"replies"`
	ReplyTimeInMinutes           TimeDuration `json:"reply_time_in_minutes"`
	ReplyTimeInSeconds           struct {
		Calendar int `json:"calendar"`
	} `json:"reply_time_in_seconds"`
	RequesterUpdatedAt         time.Time    `json:"requester_updated_at"`
	RequesterWaitTimeInMinutes TimeDuration `json:"requester_wait_time_in_minutes"`
	SolvedAt                   time.Time    `json:"solved_at"`
	StatusUpdatedAt            time.Time    `json:"status_updated_at"`
	TicketID                   int          `json:"ticket_id"`
	UpdatedAt                  time.Time    `json:"updated_at"`
}

type TicketMetricListOptions added in v0.18.0

type TicketMetricListOptions struct {
	PageOptions

	SortBy string `url:"sort_by,omitempty"`

	SortOrder string `url:"sort_order,omitempty"`
}

type TicketMetricsAPI added in v0.18.0

type TicketMetricsAPI interface {
	GetTicketMetrics(ctx context.Context, opts ...TicketMetricListOptions) ([]TicketMetric, Page, error)
	GetTicketMetric(ctx context.Context, ticketMetricsID int64) (TicketMetric, error)
	GetTicketMetricByTicket(ctx context.Context, ticketID int64) (TicketMetric, error)
}

TicketMetricsAPI is an interface containing all methods for the ticket metrics API

type TimeDuration added in v0.18.0

type TimeDuration struct {
	Business int `json:"business"`
	Calendar int `json:"calendar"`
}

TimeDuration represents a time in business or calendar days

type Topic added in v0.7.0

type Topic struct {
	ID            int64     `json:"id"`
	URL           string    `json:"url"`
	HTMLURL       string    `json:"html_url"`
	Name          string    `json:"name"`
	Description   string    `json:"description"`
	Position      int       `json:"position"`
	FollowerCount int       `json:"follower_count"`
	ManageableBy  string    `json:"manageable_by"`
	UserSegmentID int64     `json:"user_segment_id"`
	CreatedAt     time.Time `json:"created_at"`
	UpdatedAt     time.Time `json:"updated_at"`
}

type Trigger

type Trigger struct {
	ID         int64  `json:"id,omitempty"`
	Title      string `json:"title"`
	Active     bool   `json:"active,omitempty"`
	Position   int64  `json:"position,omitempty"`
	Conditions struct {
		All []TriggerCondition `json:"all"`
		Any []TriggerCondition `json:"any"`
	} `json:"conditions"`
	Actions     []TriggerAction `json:"actions"`
	Description string          `json:"description,omitempty"`
	CategoryID  string          `json:"category_id,omitempty"`
	CreatedAt   *time.Time      `json:"created_at,omitempty"`
	UpdatedAt   *time.Time      `json:"updated_at,omitempty"`
}

Trigger is zendesk trigger JSON payload format

ref: https://developer.zendesk.com/rest_api/docs/core/triggers#json-format

type TriggerAPI added in v0.1.2

type TriggerAPI interface {
	GetTriggers(ctx context.Context, opts *TriggerListOptions) ([]Trigger, Page, error)
	CreateTrigger(ctx context.Context, trigger Trigger) (Trigger, error)
	GetTrigger(ctx context.Context, id int64) (Trigger, error)
	UpdateTrigger(ctx context.Context, id int64, trigger Trigger) (Trigger, error)
	DeleteTrigger(ctx context.Context, id int64) error
	GetTriggersIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Trigger]
	GetTriggersOBP(ctx context.Context, opts *OBPOptions) ([]Trigger, Page, error)
	GetTriggersCBP(ctx context.Context, opts *CBPOptions) ([]Trigger, CursorPaginationMeta, error)
}

TriggerAPI an interface containing all trigger related methods

type TriggerAction

type TriggerAction struct {
	Field string      `json:"field"`
	Value interface{} `json:"value"`
}

TriggerAction is zendesk trigger action

ref: https://developer.zendesk.com/rest_api/docs/core/triggers#actions

type TriggerCondition

type TriggerCondition struct {
	Field    string      `json:"field"`
	Operator string      `json:"operator"`
	Value    interface{} `json:"value"`
}

TriggerCondition zendesk trigger condition

ref: https://developer.zendesk.com/rest_api/docs/core/triggers#conditions-reference

type TriggerListOptions added in v0.4.2

type TriggerListOptions struct {
	PageOptions
	Active     bool   `url:"active,omitempty"`
	CategoryID string `url:"category_id,omitempty"`
	SortBy     string `url:"sort_by,omitempty"`
	SortOrder  string `url:"sort_order,omitempty"`
}

TriggerListOptions is options for GetTriggers

ref: https://developer.zendesk.com/rest_api/docs/support/triggers#list-triggers

type Upload added in v0.2.0

type Upload struct {
	Attachment  Attachment   `json:"attachment"`
	Attachments []Attachment `json:"attachments"`
	Token       string       `json:"token"`
}

Upload is the API response received from zendesk whenc creating attachments

type UploadWriter added in v0.2.0

type UploadWriter interface {
	io.Writer
	Close() (Upload, error)
}

UploadWriter is used to write a zendesk attachment

type User added in v0.1.0

type User struct {
	ID                   int64      `json:"id,omitempty"`
	URL                  string     `json:"url,omitempty"`
	Email                string     `json:"email,omitempty"`
	Name                 string     `json:"name"`
	Active               bool       `json:"active,omitempty"`
	Alias                string     `json:"alias,omitempty"`
	ChatOnly             bool       `json:"chat_only,omitempty"`
	CustomRoleID         int64      `json:"custom_role_id,omitempty"`
	DefaultGroupID       int64      `json:"default_group_id,omitempty"`
	Details              string     `json:"details,omitempty"`
	ExternalID           string     `json:"external_id,omitempty"`
	IanaTimezone         string     `json:"iana_time_zone,omitempty"`
	Locale               string     `json:"locale,omitempty"`
	LocaleID             int64      `json:"locale_id,omitempty"`
	Moderator            bool       `json:"moderator,omitempty"`
	Notes                string     `json:"notes,omitempty"`
	OnlyPrivateComments  bool       `json:"only_private_comments,omitempty"`
	OrganizationID       int64      `json:"organization_id,omitempty"`
	Phone                string     `json:"phone,omitempty"`
	Photo                Attachment `json:"photo,omitempty"`
	RemotePhotoURL       string     `json:"remote_photo_url,omitempty"`
	RestrictedAgent      bool       `json:"restricted_agent,omitempty"`
	Role                 string     `json:"role,omitempty"`
	RoleType             int64      `json:"role_type,omitempty"`
	Shared               bool       `json:"shared,omitempty"`
	SharedAgent          bool       `json:"shared_agent,omitempty"`
	SharedPhoneNumber    bool       `json:"shared_phone_number,omitempty"`
	Signature            string     `json:"signature,omitempty"`
	Suspended            bool       `json:"suspended,omitempty"`
	Tags                 []string   `json:"tags,omitempty"`
	TicketRestriction    string     `json:"ticket_restriction,omitempty"`
	Timezone             string     `json:"time_zone,omitempty"`
	TwoFactorAuthEnabled bool       `json:"two_factor_auth_enabled,omitempty"`
	UserFields           UserFields `json:"user_fields"`
	Verified             bool       `json:"verified,omitempty"`
	ReportCSV            bool       `json:"report_csv,omitempty"`
	LastLoginAt          time.Time  `json:"last_login_at,omitempty"`
	CreatedAt            time.Time  `json:"created_at,omitempty"`
	UpdatedAt            time.Time  `json:"updated_at,omitempty"`
}

User is zendesk user JSON payload format https://developer.zendesk.com/rest_api/docs/support/users

type UserAPI added in v0.1.2

type UserAPI interface {
	SearchUsers(ctx context.Context, opts *SearchUsersOptions) ([]User, Page, error)
	GetManyUsers(ctx context.Context, opts *GetManyUsersOptions) ([]User, Page, error)
	GetUsers(ctx context.Context, opts *UserListOptions) ([]User, Page, error)
	GetOrganizationUsers(ctx context.Context, orgID int64, opts *UserListOptions) ([]User, Page, error)
	GetUser(ctx context.Context, userID int64) (User, error)
	CreateUser(ctx context.Context, user User) (User, error)
	CreateOrUpdateUser(ctx context.Context, user User) (User, error)
	UpdateUser(ctx context.Context, userID int64, user User) (User, error)
	GetUserRelated(ctx context.Context, userID int64) (UserRelated, error)
	GetUsersIterator(ctx context.Context, opts *PaginationOptions) *Iterator[User]
	GetUsersOBP(ctx context.Context, opts *OBPOptions) ([]User, Page, error)
	GetUsersCBP(ctx context.Context, opts *CBPOptions) ([]User, CursorPaginationMeta, error)
	GetOrganizationUsersIterator(ctx context.Context, opts *PaginationOptions) *Iterator[User]
	GetOrganizationUsersOBP(ctx context.Context, opts *OBPOptions) ([]User, Page, error)
	GetOrganizationUsersCBP(ctx context.Context, opts *CBPOptions) ([]User, CursorPaginationMeta, error)
}

UserAPI an interface containing all user related methods

type UserField added in v0.1.0

type UserField struct {
	ID                  int64               `json:"id,omitempty"`
	URL                 string              `json:"url,omitempty"`
	Key                 string              `json:"key,omitempty"`
	Type                string              `json:"type"`
	Title               string              `json:"title"`
	RawTitle            string              `json:"raw_title,omitempty"`
	Description         string              `json:"description,omitempty"`
	RawDescription      string              `json:"raw_description,omitempty"`
	Position            int64               `json:"position,omitempty"`
	Active              bool                `json:"active,omitempty"`
	System              bool                `json:"system,omitempty"`
	RegexpForValidation string              `json:"regexp_for_validation,omitempty"`
	Tag                 string              `json:"tag,omitempty"`
	CustomFieldOptions  []CustomFieldOption `json:"custom_field_options"`
	CreatedAt           time.Time           `json:"created_at,omitempty"`
	UpdatedAt           time.Time           `json:"updated_at,omitempty"`
}

UserField is struct for user_field payload

type UserFieldAPI added in v0.5.0

type UserFieldAPI interface {
	GetUserFields(ctx context.Context, opts *UserFieldListOptions) ([]UserField, Page, error)
	CreateUserField(ctx context.Context, userField UserField) (UserField, error)
	GetUserFieldsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[UserField]
	GetUserFieldsOBP(ctx context.Context, opts *OBPOptions) ([]UserField, Page, error)
	GetUserFieldsCBP(ctx context.Context, opts *CBPOptions) ([]UserField, CursorPaginationMeta, error)
}

type UserFieldListOptions added in v0.5.0

type UserFieldListOptions struct {
	PageOptions
}

type UserFields added in v0.10.0

type UserFields map[string]interface{}

UserFields is a dictionary of custom user related fields

type UserListOptions added in v0.4.2

type UserListOptions struct {
	PageOptions
	Role          string   `url:"role,omitempty"`
	Roles         []string `url:"role[],omitempty"`
	PermissionSet int64    `url:"permission_set,omitempty"`
}

UserListOptions is options for GetUsers

ref: https://developer.zendesk.com/rest_api/docs/support/users#list-users

type UserRelated added in v0.10.0

type UserRelated struct {
	AssignedTickets           int64 `json:"assigned_tickets"`
	RequestedTickets          int64 `json:"requested_tickets"`
	CCDTickets                int64 `json:"ccd_tickets"`
	OrganizationSubscriptions int64 `json:"organization_subscriptions"`
}

UserRelated contains user related data

ref: https://developer.zendesk.com/api-reference/ticketing/users/users/#show-user-related-information

type Via added in v0.9.0

type Via struct {
	Channel string `json:"channel"`
	Source  struct {
		From map[string]interface{} `json:"from"`
		To   map[string]interface{} `json:"to"`
		Rel  string                 `json:"rel"`
	} `json:"source"`
}

Via is information about source of Ticket or TicketComment

type View added in v0.10.0

type View struct {
	ID          int64     `json:"id,omitempty"`
	Active      bool      `json:"active"`
	Description string    `json:"description"`
	Position    int64     `json:"position"`
	Title       string    `json:"title"`
	CreatedAt   time.Time `json:"created_at,omitempty"`
	UpdatedAt   time.Time `json:"updated_at,omitempty"`
}

View is struct for group membership payload https://developer.zendesk.com/api-reference/ticketing/business-rules/views/

type ViewAPI added in v0.10.0

type ViewAPI interface {
	GetView(context.Context, int64) (View, error)
	GetViews(context.Context) ([]View, Page, error)
	GetTicketsFromView(context.Context, int64, *TicketListOptions) ([]Ticket, Page, error)
	GetCountTicketsInViews(ctx context.Context, ids []string) ([]ViewCount, error)
	GetTicketsFromViewIterator(ctx context.Context, opts *PaginationOptions) *Iterator[Ticket]
	GetTicketsFromViewOBP(ctx context.Context, opts *OBPOptions) ([]Ticket, Page, error)
	GetTicketsFromViewCBP(ctx context.Context, opts *CBPOptions) ([]Ticket, CursorPaginationMeta, error)
	GetViewsIterator(ctx context.Context, opts *PaginationOptions) *Iterator[View]
	GetViewsOBP(ctx context.Context, opts *OBPOptions) ([]View, Page, error)
	GetViewsCBP(ctx context.Context, opts *CBPOptions) ([]View, CursorPaginationMeta, error)
}

ViewAPI encapsulates methods on view

type ViewCount added in v0.18.0

type ViewCount struct {
	ViewID int64  `json:"view_id"`
	URL    string `json:"url"`
	Value  int64  `json:"value"`
	Pretty string `json:"pretty"`
	Fresh  bool   `json:"fresh"`
}

type Webhook added in v0.12.0

type Webhook struct {
	Authentication *WebhookAuthentication `json:"authentication,omitempty"`
	CreatedAt      time.Time              `json:"created_at,omitempty"`
	CreatedBy      string                 `json:"created_by,omitempty"`
	Description    string                 `json:"description,omitempty"`
	Endpoint       string                 `json:"endpoint"`
	ExternalSource interface{}            `json:"external_source,omitempty"`
	HTTPMethod     string                 `json:"http_method"`
	ID             string                 `json:"id,omitempty"`
	Name           string                 `json:"name"`
	RequestFormat  string                 `json:"request_format"`
	SigningSecret  *WebhookSigningSecret  `json:"signing_secret,omitempty"`
	Status         string                 `json:"status"`
	Subscriptions  []string               `json:"subscriptions,omitempty"`
	UpdatedAt      time.Time              `json:"updated_at,omitempty"`
	UpdatedBy      string                 `json:"updated_by,omitempty"`
}

Webhook is struct for webhook payload. https://developer.zendesk.com/api-reference/event-connectors/webhooks/webhooks/

type WebhookAPI added in v0.12.0

type WebhookAPI interface {
	CreateWebhook(ctx context.Context, hook *Webhook) (*Webhook, error)
	GetWebhook(ctx context.Context, webhookID string) (*Webhook, error)
	UpdateWebhook(ctx context.Context, webhookID string, hook *Webhook) error
	DeleteWebhook(ctx context.Context, webhookID string) error
	GetWebhookSigningSecret(ctx context.Context, webhookID string) (*WebhookSigningSecret, error)
}

type WebhookAuthentication added in v0.12.0

type WebhookAuthentication struct {
	Type        string      `json:"type"`
	Data        interface{} `json:"data"`
	AddPosition string      `json:"add_position"`
}

type WebhookSigningSecret added in v0.12.0

type WebhookSigningSecret struct {
	Algorithm string `json:"algorithm"`
	Secret    string `json:"secret"`
}

Directories

Path Synopsis
Code generated by MockGen.
Code generated by MockGen.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL