Help us shape the future of Go! Take the 2026 Go Developer Survey

models

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseEntity

type BaseEntity struct {
	ID        int        `json:"id"`
	Type      any        `json:"type"` // Can be string or object
	CreatedAt *time.Time `json:"createdAt,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
	CreatedBy *UserRef   `json:"createdBy,omitempty"`
	UpdatedBy *UserRef   `json:"updatedBy,omitempty"`
	State     *State     `json:"state,omitempty"`
}

Base types for common fields

type BusinessHour

type BusinessHour struct {
	BaseEntity

	Name              *string `json:"name,omitempty"`
	Description       *string `json:"description,omitempty"`
	IsDefault         *bool   `json:"isDefault,omitempty"`
	TimezoneID        *int64  `json:"timezoneId,omitempty"`
	TimezoneReference *string `json:"timezone_name,omitempty"`
}

BusinessHour represents a tag in the system

type BusinessHourResponse

type BusinessHourResponse struct {
	BusinessHour BusinessHour `json:"businesshour"`
	Included     IncludedData `json:"included"`
}

type BusinessHoursResponse

type BusinessHoursResponse struct {
	BusinessHours []BusinessHour `json:"businesshours"`
	Included      IncludedData   `json:"included"`
	Pagination    Pagination     `json:"pagination"`
	Meta          Meta           `json:"meta"`
}

BusinessHoursResponse represents the response for a list of businesshours

type CompaniesResponse

type CompaniesResponse struct {
	Companies  []Company    `json:"companies"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

CompaniesResponse represents the response for a list of companies

type Company

type Company struct {
	BaseEntity
	Name        *string     `json:"name,omitempty"`
	Description *string     `json:"description,omitempty"`
	Details     *string     `json:"details,omitempty"`
	Industry    *string     `json:"industry,omitempty"`
	Website     *string     `json:"website,omitempty"`
	Permission  *string     `json:"permission,omitempty"`
	Kind        *string     `json:"kind,omitempty"`
	Domains     []EntityRef `json:"domains,omitempty"`
	Note        *string     `json:"note,omitempty"`
}

Company represents a company in Desk.com

type CompanyResponse

type CompanyResponse struct {
	Company  Company      `json:"company"`
	Included IncludedData `json:"included"`
}

CompanyResponse represents the response for a single company

type Contact

type Contact struct {
	BaseEntity
	Value  *string `json:"value,omitempty"`
	IsMain *bool   `json:"isMain,omitempty"`
}

Contact related types

type CustomFieldSearch

type CustomFieldSearch struct {
	ID        int64   `qs:"id"`
	Value     string  `qs:"value"`
	Values    []int64 `qs:"values"`
	Operation string  `qs:"operation"`
}

type CustomFieldsSearch

type CustomFieldsSearch []CustomFieldSearch

type Customer

type Customer struct {
	BaseEntity
	FirstName             *string     `json:"firstName,omitempty"`
	LastName              *string     `json:"lastName,omitempty"`
	Email                 *string     `json:"email,omitempty"`
	Organization          *string     `json:"organization,omitempty"`
	ExtraData             *string     `json:"extraData,omitempty"`
	Notes                 *string     `json:"notes,omitempty"`
	VerifiedEmail         *bool       `json:"verifiedEmail,omitempty"`
	LinkedinURL           *string     `json:"linkedinURL,omitempty"`
	FacebookURL           *string     `json:"facebookURL,omitempty"`
	TwitterHandle         *string     `json:"twitterHandle,omitempty"`
	NumTickets            *int        `json:"numTickets,omitempty"`
	JobTitle              any         `json:"jobTitle"`
	Phone                 *string     `json:"phone,omitempty"`
	Mobile                *string     `json:"mobile,omitempty"`
	Address               *string     `json:"address,omitempty"`
	ExternalID            *string     `json:"externalId,omitempty"`
	AvatarURL             *string     `json:"avatarURL,omitempty"`
	Contacts              []EntityRef `json:"contacts"`
	Customerwelcomeemails any         `json:"customerwelcomeemails"`
	Trusted               *bool       `json:"trusted,omitempty"`
	WelcomeEmailSent      *bool       `json:"welcomeEmailSent,omitempty"`
}

Customer related types

type CustomerResponse

type CustomerResponse struct {
	Customer Customer     `json:"customer"`
	Included IncludedData `json:"included"`
}

type CustomersResponse

type CustomersResponse struct {
	Customers  []Customer   `json:"customers"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

Response types for customers

type Disposition

type Disposition string
const (
	DispositionAttachment       Disposition = "attachment"
	DispositionAttachmentInline Disposition = "attachment-inline"
)

type Domain

type Domain struct {
	BaseEntity
	Name            *string `json:"name,omitempty"`
	Project         any     `json:"project"`
	Company         any     `json:"company"`
	ProjectsCompany any     `json:"projects_company"`
}

Domain represents a domain associated with a company

type EntityRef

type EntityRef struct {
	ID   int            `json:"id"`
	Type string         `json:"type"`
	Meta map[string]any `json:"meta"`
}

type File

type File struct {
	BaseEntity
	// Standard mime type of the file
	MIMEType *string `json:"mimeType,omitempty"`

	// The file name
	Filename *string `json:"filename,omitempty"`

	// Determine where the attachment was added: attachment or attachment-inline
	Disposition *Disposition `json:"disposition,omitempty"`

	// Type is always 'attachment'
	Type *FileType `json:"type,omitempty"`
}

File represents a file in the system

type FileParams

type FileParams struct {
	ContentType         string `json:"Content-Type"`
	Bucket              string `json:"bucket"`
	Key                 string `json:"key"`
	Policy              string `json:"policy"`
	SuccessActionStatus string `json:"success_action_status"`
	XAmzAlgorithm       string `json:"x-amz-algorithm"`
	XAmzCredential      string `json:"x-amz-credential"`
	XAmzDate            string `json:"x-amz-date"`
	XAmzSignature       string `json:"x-amz-signature"`
}

type FileResponse

type FileResponse struct {
	URL    *string    `json:"url,omitempty"`
	Params FileParams `json:"params"`
	File   File       `json:"file"`
}

RefResponse is the data gotten back from the /files/ref endpoint to then post to s3

type FileType

type FileType string

FileType represents a type of file with its constraints

const (
	FileTypeAttachment FileType = "attachment"
)

type FilesResponse

type FilesResponse struct {
	Files      []File       `json:"files"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

type HelpDocArticle

type HelpDocArticle struct {
	BaseEntity
	// Helpdocsite is the site the article belongs to. It is reported on a read;
	// on a write the route carries the site, so an unset one is left out.
	Helpdocsite   EntityRef `json:"helpdocsite,omitzero"`
	Title         *string   `json:"title,omitempty"`
	Slug          *string   `json:"slug,omitempty"`
	Description   *string   `json:"description,omitempty"`
	OldURL        *string   `json:"oldURL,omitempty"`
	Popularity    *int      `json:"popularity,omitempty"`
	DisqusEnabled *bool     `json:"disqusEnabled,omitempty"`
	IsPrivate     *bool     `json:"isPrivate,omitempty"`
	EditMethod    *string   `json:"editMethod,omitempty"`
	DisplayOrder  *int      `json:"displayOrder,omitempty"`
	Status        *string   `json:"status,omitempty"`
	Contents      *string   `json:"contents,omitempty"`
	// Categories is the list of categories the article is filed under. The
	// update route binds the body over the stored article and revalidates the
	// result, so an unset list must be left out rather than sent as null: null
	// clears the categories, and the revalidation then rejects the update for
	// having none.
	Categories      []int `json:"categories,omitempty"`
	RelatedArticles []int `json:"relatedArticles,omitempty"`
}

type HelpDocArticleResponse

type HelpDocArticleResponse struct {
	HelpDocArticle HelpDocArticle `json:"helpdocarticle"`
	Included       IncludedData   `json:"included"`
}

type HelpDocArticlesResponse

type HelpDocArticlesResponse struct {
	HelpDocArticles []HelpDocArticle `json:"helpdocarticles"`
	Included        IncludedData     `json:"included"`
	Pagination      Pagination       `json:"pagination"`
	Meta            Meta             `json:"meta"`
}

type HelpDocCategoriesResponse added in v1.1.2

type HelpDocCategoriesResponse struct {
	HelpDocCategories []HelpDocCategory `json:"helpdocscategories"`
	Included          IncludedData      `json:"included"`
	Pagination        Pagination        `json:"pagination"`
	Meta              Meta              `json:"meta"`
}

type HelpDocCategory added in v1.1.2

type HelpDocCategory struct {
	BaseEntity
	Name                 *string `json:"name,omitempty"`
	Slug                 *string `json:"slug,omitempty"`
	ParentID             *int    `json:"parent_id,omitempty"`
	SiteID               *int    `json:"helpDocsSites_id,omitempty"`
	DisplayOrder         *int    `json:"displayOrder,omitempty"`
	OldURL               *string `json:"oldURL,omitempty"`
	DisplayOnDocHomepage *bool   `json:"displayOnDocHomepage,omitempty"`
}

HelpDocCategory is a category of a help doc site. Every article is filed under at least one, and a category belongs to a single site.

type HelpDocCategoryResponse added in v1.1.2

type HelpDocCategoryResponse struct {
	HelpDocCategory HelpDocCategory `json:"helpdocscategory"`
	Included        IncludedData    `json:"included"`
}

type HelpDocSite

type HelpDocSite struct {
	BaseEntity
	Name                 *string           `json:"name,omitempty"`
	Description          *string           `json:"description,omitempty"`
	MetaSiteDescription  *string           `json:"metaSiteDescription,omitempty"`
	Subdomain            *string           `json:"subdomain,omitempty"`
	ContactFormEnabled   *bool             `json:"contactFormEnabled,omitempty"`
	ShowDateLastModified *bool             `json:"showDateLastModified,omitempty"`
	CustomDomain         *string           `json:"customDomain,omitempty"`
	CustomStyleSheet     *string           `json:"customStyleSheet,omitempty"`
	HomePageLinkEnabled  *bool             `json:"homePageLinkEnabled,omitempty"`
	HomePageLinkText     *string           `json:"homePageLinkText,omitempty"`
	HomePageURL          *string           `json:"homePageURL,omitempty"`
	HTMLHeadCode         *string           `json:"htmlHeadCode,omitempty"`
	LogoImage            *string           `json:"logoImage,omitempty"`
	Favicon              *string           `json:"favicon,omitempty"`
	TouchIcon            *string           `json:"touchIcon,omitempty"`
	PublicSiteEnabled    *bool             `json:"publicSiteEnabled,omitempty"`
	SendEmailsToInboxID  *int              `json:"sendEmailsToInboxId,omitempty"`
	ShowOnHomePage       *string           `json:"showOnHomePage,omitempty"`
	HeaderBGColor        *string           `json:"headerBGColor,omitempty"`
	NavActiveColor       *string           `json:"navActiveColor,omitempty"`
	NavTextColor         *string           `json:"navTextColor,omitempty"`
	PageBGColor          *string           `json:"pageBGColor,omitempty"`
	LinkColor            *string           `json:"linkColor,omitempty"`
	TextColor            *string           `json:"textColor,omitempty"`
	LanguageCode         *string           `json:"languageCode,omitempty"`
	Password             *string           `json:"password,omitempty"`
	ShowSocialIcons      *bool             `json:"showSocialIcons,omitempty"`
	DisqusShortname      any               `json:"disqusShortname"`
	AuthenticationType   *string           `json:"authenticationType,omitempty"`
	AuthenticationTypeID *int              `json:"authenticationTypeId,omitempty"`
	EditMethod           *string           `json:"editMethod,omitempty"`
	Stats                *HelpDocSiteStats `json:"stats,omitempty"`
	SearchTemplate       *string           `json:"searchTemplate,omitempty"`
	HomeTemplate         *string           `json:"homeTemplate,omitempty"`
	HeadTemplate         *string           `json:"headTemplate,omitempty"`
	FooterTemplate       *string           `json:"footerTemplate,omitempty"`
	CategoryTemplate     *string           `json:"categoryTemplate,omitempty"`
	ArticleTemplate      *string           `json:"articleTemplate,omitempty"`
	Contributors         []EntityRef       `json:"contributors"`
}

type HelpDocSiteResponse

type HelpDocSiteResponse struct {
	HelpDocSite HelpDocSite  `json:"helpdocssite"`
	Included    IncludedData `json:"included"`
}

type HelpDocSiteStats

type HelpDocSiteStats struct {
	ArticleCount     *int `json:"articleCount,omitempty"`
	PublishedCount   *int `json:"publishedCount,omitempty"`
	UnpublishedCount *int `json:"unpublishedCount,omitempty"`
	DraftCount       *int `json:"draftCount,omitempty"`
}

type HelpDocSitesResponse

type HelpDocSitesResponse struct {
	HelpDocSites []HelpDocSite `json:"helpdocssites"`
	Included     IncludedData  `json:"included"`
	Pagination   Pagination    `json:"pagination"`
	Meta         Meta          `json:"meta"`
}

type Inbox

type Inbox struct {
	BaseEntity
	AutoReplyEnabled              *bool        `json:"autoReplyEnabled,omitempty"`
	AutoReplyMessage              *string      `json:"autoReplyMessage,omitempty"`
	AutoReplySubject              *string      `json:"autoReplySubject,omitempty"`
	ClientOnly                    *bool        `json:"clientOnly,omitempty"`
	DisplayOrder                  *int         `json:"displayOrder,omitempty"`
	Email                         *string      `json:"email,omitempty"`
	EmailForwardingState          *string      `json:"emailForwardingState,omitempty"`
	ForwardingAddress             *string      `json:"forwardingAddress,omitempty"`
	HappinessRatingEnabled        *bool        `json:"happinessRatingEnabled,omitempty"`
	HappinessRatingMessage        *string      `json:"happinessRatingMessage,omitempty"`
	IconImage                     *string      `json:"iconImage,omitempty"`
	Inboxaliases                  []EntityRef  `json:"inboxaliases"`
	Inboxcnames                   []InboxCname `json:"inboxcnames"`
	Inboxemailrefs                any          `json:"inboxemailrefs"`
	IncludeTicketHistoryOnForward *bool        `json:"includeTicketHistoryOnForward,omitempty"`
	IsAdmin                       *bool        `json:"isAdmin,omitempty"`
	IsFreeDomain                  *bool        `json:"isFreeDomain,omitempty"`
	LanguageCode                  *string      `json:"languageCode,omitempty"`
	LocalPart                     *string      `json:"localPart,omitempty"`
	Name                          *string      `json:"name,omitempty"`
	NotificationsOnly             *bool        `json:"notificationsOnly,omitempty"`
	Oauth2Token                   any          `json:"oauth2token"`
	OnClosedLock                  *string      `json:"onClosedLock,omitempty"`
	OnClosedWait                  *int         `json:"onClosedWait,omitempty"`
	Projects                      []EntityRef  `json:"projects"`
	PublicIconImage               *string      `json:"publicIconImage,omitempty"`
	Restricteddomains             any          `json:"restricteddomains"`
	SendEmailsFrom                *string      `json:"sendEmailsFrom,omitempty"`
	Signature                     *string      `json:"signature,omitempty"`
	SMTPPassword                  *string      `json:"smtpPassword,omitempty"`
	SMTPPort                      *int         `json:"smtpPort,omitempty"`
	SMTPProvider                  *string      `json:"smtpProvider,omitempty"`
	SMTPSecurity                  *string      `json:"smtpSecurity,omitempty"`
	SMTPServer                    *string      `json:"smtpServer,omitempty"`
	SMTPUsername                  *string      `json:"smtpUsername,omitempty"`
	SpamThreshold                 *int         `json:"spamThreshold,omitempty"`
	Starred                       *bool        `json:"starred,omitempty"`
	SyncAccountID                 any          `json:"syncAccountId"`
	SyncDays                      any          `json:"syncDays"`
	Synced                        *bool        `json:"synced,omitempty"`
	SyncSubscriptionID            any          `json:"syncSubscriptionId"`
	Ticketstatus                  *EntityRef   `json:"ticketstatus,omitempty"`
	Tickettypes                   []EntityRef  `json:"tickettypes"`
	TimeloggingEnabled            *bool        `json:"timeloggingEnabled,omitempty"`
	Triggers                      []Trigger    `json:"triggers"`
	Type                          *string      `json:"type,omitempty"`
	User                          any          `json:"user"`
	Users                         []InboxUser  `json:"users"`
	UseTeamworkMailServer         *bool        `json:"useTeamworkMailServer,omitempty"`
	UsingOfficeHours              *bool        `json:"usingOfficeHours,omitempty"`
	Verified                      *bool        `json:"verified,omitempty"`
}

Inbox related types

type InboxCname

type InboxCname struct {
	EntityRef
	Meta struct {
		Domain *string `json:"domain,omitempty"`
	} `json:"meta"`
}

type InboxMeta

type InboxMeta struct {
	Access  *string `json:"access,omitempty"`
	IsAdmin *bool   `json:"isAdmin,omitempty"`
	Starred *bool   `json:"starred,omitempty"`
	State   *string `json:"state,omitempty"`
}

type InboxResponse

type InboxResponse struct {
	Inbox    Inbox        `json:"inbox"`
	Included IncludedData `json:"included"`
}

type InboxUser

type InboxUser struct {
	EntityRef
	Meta InboxMeta `json:"meta"`
}

type InboxesResponse

type InboxesResponse struct {
	Inboxes    []Inbox      `json:"inboxes"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

type IncludedData

type IncludedData struct {
	Companies        []Company           `json:"companies"`
	Contacts         []Contact           `json:"contacts"`
	Customers        []Customer          `json:"customers"`
	Domains          []Domain            `json:"domains"`
	Inboxes          []Inbox             `json:"inboxes"`
	Messages         []Message           `json:"messages"`
	SLACustomers     []SLACustomer       `json:"slacustomers"`
	SLACompanies     []SLACompany        `json:"slacompanies"`
	SLAInboxes       []SLAInbox          `json:"slainboxes"`
	SLANotifications []SLANotification   `json:"slanotifications"`
	SLAPriorities    []SLATicketPriority `json:"slaticketpriorities"`
	SLATags          []SLATag            `json:"slatags"`
	Tags             []Tag               `json:"tags"`
	Ticketactivities []TicketActivity    `json:"ticketactivities"`
	Ticketsources    []TicketSource      `json:"ticketsources"`
	Ticketstatuses   []TicketStatus      `json:"ticketstatuses"`
	Tickettypes      []TicketType        `json:"tickettypes"`
	Timelogs         []TimeLog           `json:"timelogs"`
	Users            []User              `json:"users"`
}

Common included data structure

type Message

type Message struct {
	BaseEntity
	AssigningUser      *EntityRef `json:"assigningUser,omitempty"`
	BCC                []string   `json:"bcc"`
	CC                 []string   `json:"cc"`
	Contact            *EntityRef `json:"contact,omitempty"`
	Delayed            *bool      `json:"delayed,omitempty"`
	EditMethod         *string    `json:"editMethod,omitempty"`
	Message            *string    `json:"message,omitempty"`
	IsPinned           *bool      `json:"isPinned,omitempty"`
	Status             *EntityRef `json:"status,omitempty"`
	ThreadType         *string    `json:"threadType,omitempty"`
	Ticket             EntityRef  `json:"ticket"`
	ViewedByCustomerAt *time.Time `json:"viewedByCustomerAt"`
}

Message related types

func (*Message) UnmarshalJSON

func (m *Message) UnmarshalJSON(data []byte) error

type MessageResponse

type MessageResponse struct {
	Message  Message      `json:"message"`
	Included IncludedData `json:"included"`
}

type MessagesResponse

type MessagesResponse struct {
	Messages   []Message    `json:"messages"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

type Meta

type Meta struct {
	Page PageMeta `json:"page"`
}

Common meta structure

type PageMeta

type PageMeta struct {
	Count      int  `json:"count"`
	PageSize   int  `json:"pageSize"`
	PageOffset int  `json:"pageOffset"`
	Pages      int  `json:"pages"`
	HasMore    bool `json:"hasMore"`
}

Common page metadata structure

type Pagination

type Pagination struct {
	Records      int  `json:"records"`
	PageSize     int  `json:"pageSize"`
	Pages        int  `json:"pages"`
	Page         int  `json:"page"`
	HasMorePages bool `json:"hasMorePages"`
}

Common pagination structure used across responses

type Phone

type Phone struct {
	BaseEntity
	Number      *string `json:"number,omitempty"`
	Type        *string `json:"type,omitempty"`
	CountryCode *string `json:"countryCode,omitempty"`
	Extension   *string `json:"extension,omitempty"`
}

Phone represents a phone number associated with a company

type SLA

type SLA struct {
	BaseEntity
	Name             *string     `json:"name,omitempty"`
	Description      *string     `json:"description,omitempty"`
	DisplayOrder     *int        `json:"displayOrder,omitempty"`
	Enabled          *bool       `json:"enabled,omitempty"`
	BusinessHour     *EntityRef  `json:"businesshours,omitempty"`
	Customers        []EntityRef `json:"slacustomers"`
	Companies        []EntityRef `json:"slacompanies"`
	Inboxes          []EntityRef `json:"slainboxes"`
	TicketTypes      []EntityRef `json:"slatickettypes"`
	TicketPriorities []EntityRef `json:"slaticketpriorities"`
	Tags             []EntityRef `json:"slatags"`
	Notifications    []EntityRef `json:"slanotifications"`
	Threads          []EntityRef `json:"threads"`
}

SLA represents a SLA in the system

type SLACompany

type SLACompany struct {
	BaseEntity
	Company   *EntityRef          `json:"company"`
	Condition *SLAConditionOption `json:"conditionoption,omitempty" db:"conditionoption"`
}

type SLAConditionOption

type SLAConditionOption string
const (
	SLAConditionOptionEqual    SLAConditionOption = "eq"
	SLAConditionOptionNotEqual SLAConditionOption = "ne"
)

type SLACustomer

type SLACustomer struct {
	BaseEntity
	Customer  *EntityRef          `json:"customer"`
	Condition *SLAConditionOption `json:"conditionoption,omitempty" db:"conditionoption"`
}

type SLAInbox

type SLAInbox struct {
	BaseEntity
	Inbox     *EntityRef          `json:"inbox"`
	Condition *SLAConditionOption `json:"conditionoption,omitempty" db:"conditionoption"`
}

type SLANotification

type SLANotification struct {
	BaseEntity
	Condition          *SLANotificationConditionType `json:"condition,omitempty" db:"condition"`
	Type               *SLANotificationType          `json:"type,omitempty"`
	Duration           *int                          `json:"duration,omitempty"`
	User               *EntityRef                    `json:"user,omitempty"`
	NotifyAssignedUser *bool                         `json:"notifyAssignedUser,omitempty"`
}

type SLANotificationConditionType

type SLANotificationConditionType string
const (
	SLANotificationConditionTypeWarning SLANotificationConditionType = "warning"
	SLANotificationConditionTypeBreach  SLANotificationConditionType = "breach"
)

type SLANotificationType

type SLANotificationType string
const (
	SLANotificationTypeFirstResponse  SLANotificationType = "firstResponse"
	SLANotificationTypeReplyTime      SLANotificationType = "replyTime"
	SLANotificationTypeResolutionTime SLANotificationType = "resolutionTime"
)

type SLAResponse

type SLAResponse struct {
	SLA      SLA          `json:"sla"`
	Included IncludedData `json:"included"`
}

type SLATag

type SLATag struct {
	BaseEntity
	Tag       *EntityRef          `json:"tag"`
	Condition *SLAConditionOption `json:"conditionoption,omitempty" db:"conditionoption"`
}

type SLATicketPriority

type SLATicketPriority struct {
	BaseEntity
	Hours          *int       `json:"hours,omitempty"`
	Minutes        *int       `json:"minutes,omitempty"`
	Description    *string    `json:"description,omitempty"`
	TicketPriority *EntityRef `json:"priority"`
}

type SLAsResponse

type SLAsResponse struct {
	SLAs       []SLA        `json:"slas"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

SLAsResponse represents the response for a list of slas

type SearchHelpdocsFilter added in v1.0.1

type SearchHelpdocsFilter struct {
	Search     string   `qs:"search,omitempty"`
	SiteID     int64    `qs:"siteId,omitempty"`
	Status     string   `qs:"status,omitempty"`
	CategoryID int64    `qs:"categoryId,omitempty"`
	Page       int      `qs:"page,omitempty"`
	PageSize   int      `qs:"pageSize,omitempty"`
	Includes   []string `qs:"includes,omitempty"`
}

type SearchTicketsFilter

type SearchTicketsFilter struct {
	Agents                []int64            `qs:"agents"`
	Companies             []int64            `qs:"companies"`
	Customers             []int64            `qs:"customers"`
	CustomFields          CustomFieldsSearch `qs:"customfields"`
	EndDate               *time.Time         `qs:"endDate,omitempty"`
	Exact                 bool               `qs:"exact"`
	ExcludeInboxes        []int64            `qs:"excludeInboxes"`
	ExcludeTags           []int64            `qs:"excludeTags"`
	ExcludeWorkEmails     bool               `qs:"excludeWorkEmails"`
	Filter                string             `qs:"filter"`
	HelpdocSites          []int64            `qs:"helpdocSites"`
	Inboxes               []int64            `qs:"inboxes"`
	IncludeArchivedAgents bool               `qs:"includeArchivedAgents"`
	LastUpdated           *time.Time         `qs:"lastUpdated,omitempty"`
	OmitMerged            bool               `qs:"omitMerged"`
	OnlyUntagged          bool               `qs:"onlyUntagged"`
	OnlyWithAttachment    bool               `qs:"onlyWithAttachment"`
	Priorities            []int64            `qs:"priorities"`
	ProjectID             *int64             `qs:"project,omitempty"`
	RequireAllTags        bool               `qs:"tagRequireAll"`
	Search                string             `qs:"search"`
	Sources               []int64            `qs:"sources"`
	StartDate             *time.Time         `qs:"startDate,omitempty"`
	Statuses              []int64            `qs:"statuses"`
	SubjectKeywords       []string           `qs:"subjectKeywords"`
	Tags                  []int64            `qs:"tags"`
	TaskID                int64              `qs:"task"`
	TaskStatuses          []string           `qs:"taskStatuses"`
	Teams                 []int64            `qs:"teams"`
	TicketID              *int64             `qs:"ticket,omitempty"`
	TimeRange             string             `qs:"timeRange"`
	TWCompanyIDs          []int64            `qs:"twCompanyIds"`
	Types                 []int64            `qs:"types"`
	Unassigned            bool               `qs:"unassigned"`
}

type Spamlist

type Spamlist struct {
	BaseEntity
	Term *string `json:"term,omitempty"`
	Type *string `json:"type,omitempty"`
}

Spamlist represents a spamlist entry. Term can be an email address, domain, or IP address. Type is whitelist or blacklist.

type SpamlistResponse

type SpamlistResponse struct {
	Spamlist Spamlist     `json:"spamlist"`
	Included IncludedData `json:"included"`
}

type SpamlistsResponse

type SpamlistsResponse struct {
	Spamlists  []Spamlist   `json:"spamlists"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

SpamlistsResponse represents the response for a list of spam lists

type State

type State string
const (
	// StateActive represents an active state
	StateActive State = "active"
	// StateDeleted represents a deleted state
	StateDeleted State = "deleted"
)

type Tag

type Tag struct {
	BaseEntity
	Name  *string `json:"name,omitempty"`
	Color *string `json:"color,omitempty"`
}

Tag represents a tag in the system

type TagResponse

type TagResponse struct {
	Tag      Tag          `json:"tag"`
	Included IncludedData `json:"included"`
}

type TagsResponse

type TagsResponse struct {
	Tags       []Tag        `json:"tags"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

TagsResponse represents the response for a list of tags

type Task

type Task struct {
	ID   int    `json:"id"`
	Type string `json:"type"`
	Meta struct {
		Completed bool `json:"completed"`
		Project   struct {
			ID   int    `json:"id"`
			Type string `json:"type"`
		} `json:"project"`
		StateChanged bool `json:"stateChanged"`
		Status       any  `json:"status"` // Can be a name ("completed") or a status id (3)
		Task         struct {
			Completed    bool   `json:"completed"`
			ID           int    `json:"id"`
			StateChanged bool   `json:"stateChanged"`
			Status       any    `json:"status"` // Can be a name ("completed") or a status id (3)
			Type         string `json:"type"`
		} `json:"task"`
	} `json:"meta"`
}

type Ticket

type Ticket struct {
	BaseEntity
	Activities            []EntityRef `json:"activities,omitempty"`
	Agent                 *EntityRef  `json:"agent,omitempty"`
	BCC                   []string    `json:"bcc,omitempty"`
	Body                  *string     `json:"message,omitempty"`
	CC                    []string    `json:"cc,omitempty"`
	Contact               *EntityRef  `json:"contact,omitempty"`
	Customer              *EntityRef  `json:"customer,omitempty"`
	Files                 []EntityRef `json:"files,omitempty"`
	HappinessSurveySentAt *time.Time  `json:"happinessSurveySentAt"`
	ImagesHidden          *bool       `json:"imagesHidden,omitempty"`
	Inbox                 *EntityRef  `json:"inbox,omitempty"`
	IsRead                *bool       `json:"isRead,omitempty"`
	MessageCount          *int        `json:"messageCount,omitempty"`
	Messages              []EntityRef `json:"messages,omitempty"`
	NotifyCustomer        *bool       `json:"notifyCustomer,omitempty"`
	OriginalRecipient     *string     `json:"originalRecipient,omitempty"`
	PreviewText           *string     `json:"previewText,omitempty"`
	Priority              *EntityRef  `json:"priority,omitempty"`
	Readonly              *bool       `json:"readonly,omitempty"`
	ResolutionTimeMins    *int        `json:"resolutionTimeMins,omitempty"`
	ResponseTimeMins      *int        `json:"responseTimeMins,omitempty"`
	Source                *EntityRef  `json:"source,omitempty"`
	SpamRules             any         `json:"spam_rules"`
	SpamScore             *float64    `json:"spam_score,omitempty"`
	Status                *EntityRef  `json:"status,omitempty"`
	Subject               *string     `json:"subject,omitempty"`
	Suggestions           struct{}    `json:"suggestions"`
	Tags                  []EntityRef `json:"tags,omitempty"`
	Tasks                 []Task      `json:"tasks,omitempty"`
	Timelogs              []EntityRef `json:"timelogs,omitempty"`
	Type                  *EntityRef  `json:"type,omitempty"`
}

Ticket related types

type TicketActivity

type TicketActivity struct {
	BaseEntity
	EventType   *string    `json:"eventType,omitempty"`
	Icon        *string    `json:"icon,omitempty"`
	Color       *string    `json:"color,omitempty"`
	TargetAgent *EntityRef `json:"targetAgent,omitempty"`
	Ticket      EntityRef  `json:"ticket"`
	Inbox       any        `json:"inbox"`
	OldInbox    any        `json:"oldInbox"`
	Status      *EntityRef `json:"status,omitempty"`
}

TicketActivity related types

type TicketPrioritiesResponse

type TicketPrioritiesResponse struct {
	TicketPriorities []TicketStatus `json:"ticketpriorities"`
	Meta             Meta           `json:"meta"`
	Pagination       Pagination     `json:"pagination"`
	Included         IncludedData   `json:"included"`
}

type TicketPriority

type TicketPriority struct {
	BaseEntity
	Name         *string `json:"name,omitempty"`
	Color        *string `json:"color,omitempty"`
	DisplayOrder *int    `json:"displayOrder,omitempty"`
}

TicketPriority related types

type TicketPriorityResponse

type TicketPriorityResponse struct {
	TicketPriority TicketPriority `json:"ticketpriority"`
	Included       IncludedData   `json:"included"`
}

type TicketResponse

type TicketResponse struct {
	Ticket   Ticket       `json:"ticket"`
	Included IncludedData `json:"included"`
}

type TicketSource

type TicketSource struct {
	BaseEntity
	Name         *string `json:"name,omitempty"`
	Icon         *string `json:"icon,omitempty"`
	DisplayOrder *int    `json:"displayOrder,omitempty"`
	IsCustom     *bool   `json:"isCustom,omitempty"`
}

TicketSource related types

type TicketSourceResponse

type TicketSourceResponse struct {
	TicketSource TicketSource `json:"ticketSource"`
	Included     IncludedData `json:"included"`
}

type TicketSourcesResponse

type TicketSourcesResponse struct {
	TicketSources []TicketSource `json:"ticketSources"`
	Meta          Meta           `json:"meta"`
	Pagination    Pagination     `json:"pagination"`
	Included      IncludedData   `json:"included"`
}

type TicketStatus

type TicketStatus struct {
	BaseEntity
	Code         *string `json:"code,omitempty"`
	Name         *string `json:"name,omitempty"`
	DisplayOrder *int    `json:"displayOrder,omitempty"`
	IsCustom     *bool   `json:"isCustom,omitempty"`
	Color        *string `json:"color,omitempty"`
	Icon         *string `json:"icon,omitempty"`
}

TicketStatus related types

type TicketStatusResponse

type TicketStatusResponse struct {
	TicketStatus TicketStatus `json:"ticketstatus"`
	Included     IncludedData `json:"included"`
}

type TicketStatusesResponse

type TicketStatusesResponse struct {
	TicketStatuses []TicketStatus `json:"ticketstatuses"`
	Meta           Meta           `json:"meta"`
	Pagination     Pagination     `json:"pagination"`
	Included       IncludedData   `json:"included"`
}

type TicketType

type TicketType struct {
	BaseEntity
	Name                    *string     `json:"name,omitempty"`
	DisplayOrder            *int        `json:"displayOrder,omitempty"`
	Inboxes                 []EntityRef `json:"inboxes"`
	Default                 *bool       `json:"default,omitempty"`
	EnabledForFutureInboxes *bool       `json:"enabledForFutureInboxes,omitempty"`
}

TicketType related types

type TicketTypeResponse

type TicketTypeResponse struct {
	TicketType TicketType   `json:"tickettype"`
	Included   IncludedData `json:"included"`
}

type TicketTypesResponse

type TicketTypesResponse struct {
	TicketTypes []TicketType `json:"tickettypes"`
	Meta        Meta         `json:"meta"`
	Pagination  Pagination   `json:"pagination"`
	Included    IncludedData `json:"included"`
}

type TicketsResponse

type TicketsResponse struct {
	Tickets    []Ticket     `json:"tickets"`
	Included   IncludedData `json:"included"`
	Pagination Pagination   `json:"pagination"`
	Meta       Meta         `json:"meta"`
}

Response types for tickets

type TimeLog

type TimeLog struct {
	BaseEntity
	Billable            *bool      `json:"billable,omitempty"`
	Description         *string    `json:"description,omitempty"`
	Date                *time.Time `json:"date,omitempty"`
	Seconds             *int       `json:"seconds,omitempty"`
	TimezoneOffset      *int       `json:"timezoneOffset,omitempty"`
	TimelogsID          any        `json:"timelogs_id"`
	AssignToCurrentUser *bool      `json:"assignToCurrentUser,omitempty"`
	Ticket              EntityRef  `json:"ticket"`
	User                EntityRef  `json:"user"`
}

TimeLog related types

type TimeLogResponse

type TimeLogResponse struct {
	TimeLog  TimeLog      `json:"timeLog"`
	Included IncludedData `json:"included"`
}

type TimeLogsResponse

type TimeLogsResponse struct {
	TimeLogs   []TimeLog    `json:"timeLogs"`
	Meta       Meta         `json:"meta"`
	Pagination Pagination   `json:"pagination"`
	Included   IncludedData `json:"included"`
}

type Trigger

type Trigger struct {
	EntityRef
	Meta struct {
		DisplayOrder *int `json:"displayOrder,omitempty"`
	} `json:"meta"`
}

type User

type User struct {
	BaseEntity
	Email                    *string    `json:"email,omitempty"`
	FirstName                *string    `json:"firstName,omitempty"`
	LastName                 *string    `json:"lastName,omitempty"`
	AvatarURL                *string    `json:"avatarURL,omitempty"`
	EditMethod               *string    `json:"editMethod,omitempty"`
	IsPartTime               *bool      `json:"isPartTime,omitempty"`
	TicketReplyRedirect      *string    `json:"ticketReplyRedirect,omitempty"`
	Reviewer                 *bool      `json:"reviewer,omitempty"`
	TrainingWheelsEnrollment *EntityRef `json:"trainingWheelsEnrollment,omitempty"`
	Role                     *string    `json:"role,omitempty"`
	SendPushNotifications    *bool      `json:"sendPushNotifications,omitempty"`
	SendWebNotifications     *bool      `json:"sendWebNotifications,omitempty"`
	AutoFollowOnCC           *bool      `json:"autoFollowOnCC,omitempty"`
	TimeFormatID             *int       `json:"timeFormatId,omitempty"`
	TimezoneID               *int       `json:"timezoneId,omitempty"`
	ProjectsCompanyID        *int       `json:"projectsCompanyId,omitempty"`
	IsAppOwner               *bool      `json:"isAppOwner,omitempty"`
	LdKey                    *string    `json:"ldKey,omitempty"`
}

User related types

type UserRef

type UserRef struct {
	ID   int    `json:"id"`
	Type string `json:"type"`
}

type UserResponse

type UserResponse struct {
	User     User         `json:"user"`
	Included IncludedData `json:"included"`
}

type UsersResponse

type UsersResponse struct {
	Users      []User       `json:"users"`
	Included   IncludedData `json:"included"`
	Meta       Meta         `json:"meta"`
	Pagination Pagination   `json:"pagination"`
}

Jump to

Keyboard shortcuts

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