@trii/types 2.10.656 → 2.10.657
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Collections/Api.d.ts +41 -0
- package/dist/Collections/Api.js +2 -0
- package/dist/Collections/Commission.d.ts +52 -0
- package/dist/Collections/Commission.js +10 -0
- package/dist/Collections/Common.d.ts +78 -0
- package/dist/Collections/Common.js +39 -0
- package/dist/Collections/Dashboard.d.ts +27 -0
- package/dist/Collections/Dashboard.js +2 -0
- package/dist/Collections/Debt.d.ts +97 -0
- package/dist/Collections/Debt.js +12 -0
- package/dist/Collections/Interest.d.ts +38 -0
- package/dist/Collections/Interest.js +25 -0
- package/dist/Collections/Payment.d.ts +87 -0
- package/dist/Collections/Payment.js +21 -0
- package/dist/Collections/PaymentPlan.d.ts +87 -0
- package/dist/Collections/PaymentPlan.js +21 -0
- package/dist/Collections/PaymentPlanConfiguration.d.ts +100 -0
- package/dist/Collections/PaymentPlanConfiguration.js +34 -0
- package/dist/Collections/Portfolio.d.ts +52 -0
- package/dist/Collections/Portfolio.js +12 -0
- package/dist/Collections/Promise.d.ts +49 -0
- package/dist/Collections/Promise.js +25 -0
- package/dist/Collections/index.d.ts +11 -0
- package/dist/Collections/index.js +27 -0
- package/dist/Common/Channels/Channel.d.ts +6 -1
- package/dist/Common/Channels/Channel.js +6 -1
- package/dist/Common/Channels/WhatsApp.d.ts +22 -0
- package/dist/Common/Channels/WhatsApp.js +7 -1
- package/dist/Common/Messages/Message.d.ts +9 -0
- package/dist/Common/Messages/Message.js +6 -1
- package/dist/Conversations/Conversation.d.ts +15 -0
- package/dist/Conversations/Conversation.js +8 -1
- package/dist/Sales/Api.d.ts +40 -0
- package/dist/Sales/Api.js +2 -0
- package/dist/Sales/Common.d.ts +72 -0
- package/dist/Sales/Common.js +31 -0
- package/dist/Sales/Dashboard.d.ts +25 -0
- package/dist/Sales/Dashboard.js +2 -0
- package/dist/Sales/Lead.d.ts +99 -0
- package/dist/Sales/Lead.js +8 -0
- package/dist/Sales/index.d.ts +4 -0
- package/dist/Sales/index.js +20 -0
- package/dist/Spaces/spaces.d.ts +1 -0
- package/dist/Tickets/AI.d.ts +400 -0
- package/dist/Tickets/AI.js +113 -0
- package/dist/Tickets/AdvancedApi.d.ts +486 -0
- package/dist/Tickets/AdvancedApi.js +108 -0
- package/dist/Tickets/Api.d.ts +62 -0
- package/dist/Tickets/Api.js +8 -0
- package/dist/Tickets/Approval.d.ts +139 -0
- package/dist/Tickets/Approval.js +30 -0
- package/dist/Tickets/Automation.d.ts +237 -0
- package/dist/Tickets/Automation.js +74 -0
- package/dist/Tickets/Category.d.ts +25 -0
- package/dist/Tickets/Category.js +2 -0
- package/dist/Tickets/Common.d.ts +90 -0
- package/dist/Tickets/Common.js +38 -0
- package/dist/Tickets/Conversation.d.ts +68 -0
- package/dist/Tickets/Conversation.js +30 -0
- package/dist/Tickets/Dashboard.d.ts +408 -0
- package/dist/Tickets/Dashboard.js +206 -0
- package/dist/Tickets/Fields.d.ts +133 -0
- package/dist/Tickets/Fields.js +44 -0
- package/dist/Tickets/Layouts.d.ts +63 -0
- package/dist/Tickets/Layouts.js +22 -0
- package/dist/Tickets/Routing.d.ts +290 -0
- package/dist/Tickets/Routing.js +87 -0
- package/dist/Tickets/Satisfaction.d.ts +31 -0
- package/dist/Tickets/Satisfaction.js +9 -0
- package/dist/Tickets/Security.d.ts +302 -0
- package/dist/Tickets/Security.js +107 -0
- package/dist/Tickets/SelfService.d.ts +255 -0
- package/dist/Tickets/SelfService.js +56 -0
- package/dist/Tickets/Sla.d.ts +253 -0
- package/dist/Tickets/Sla.js +73 -0
- package/dist/Tickets/Task.d.ts +122 -0
- package/dist/Tickets/Task.js +17 -0
- package/dist/Tickets/Ticket.d.ts +133 -0
- package/dist/Tickets/Ticket.js +2 -0
- package/dist/Tickets/Views.d.ts +77 -0
- package/dist/Tickets/Views.js +23 -0
- package/dist/Tickets/Workflow.d.ts +109 -0
- package/dist/Tickets/Workflow.js +44 -0
- package/dist/Tickets/index.d.ts +20 -1
- package/dist/Tickets/index.js +20 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
import { MessageVisibility } from "../Common/Messages/Message";
|
|
2
|
+
import { ITicketAttachment, ITicketProperty, TicketPriority, TicketPropertyValue } from "./Common";
|
|
3
|
+
import { ITicketFilter, ITicketCursorRequest, ITicketCursorResponse } from "./Api";
|
|
4
|
+
import { ITicketTimelineEntry } from "./Conversation";
|
|
5
|
+
import { ISlaMetricCycle } from "./Sla";
|
|
6
|
+
export declare enum TicketExpand {
|
|
7
|
+
CONTACT = "CONTACT",
|
|
8
|
+
TAGS = "TAGS",
|
|
9
|
+
ATTACHMENTS = "ATTACHMENTS",
|
|
10
|
+
CONVERSATIONS = "CONVERSATIONS",
|
|
11
|
+
SLA = "SLA",
|
|
12
|
+
ROUTING = "ROUTING",
|
|
13
|
+
APPROVAL_SUMMARY = "APPROVAL_SUMMARY",
|
|
14
|
+
TASK_SUMMARY = "TASK_SUMMARY",
|
|
15
|
+
SECURITY = "SECURITY"
|
|
16
|
+
}
|
|
17
|
+
/** Used on detail/list reads to request optional projections without always returning a large ticket graph. */
|
|
18
|
+
export interface ITicketReadOptions {
|
|
19
|
+
expand?: TicketExpand[];
|
|
20
|
+
fieldNameKeys?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare enum TicketApiErrorCode {
|
|
23
|
+
VALIDATION_ERROR = "VALIDATION_ERROR",
|
|
24
|
+
NOT_FOUND = "NOT_FOUND",
|
|
25
|
+
FORBIDDEN = "FORBIDDEN",
|
|
26
|
+
VERSION_CONFLICT = "VERSION_CONFLICT",
|
|
27
|
+
INVALID_TRANSITION = "INVALID_TRANSITION",
|
|
28
|
+
IDEMPOTENCY_CONFLICT = "IDEMPOTENCY_CONFLICT",
|
|
29
|
+
RATE_LIMITED = "RATE_LIMITED",
|
|
30
|
+
FILE_REJECTED = "FILE_REJECTED",
|
|
31
|
+
SLA_CONFIGURATION_ERROR = "SLA_CONFIGURATION_ERROR",
|
|
32
|
+
BULK_PARTIAL_FAILURE = "BULK_PARTIAL_FAILURE"
|
|
33
|
+
}
|
|
34
|
+
/** Standard error returned by every Tickets endpoint; details contains field-level validation information. */
|
|
35
|
+
export interface ITicketApiError {
|
|
36
|
+
code: TicketApiErrorCode;
|
|
37
|
+
message: string;
|
|
38
|
+
correlationId?: string;
|
|
39
|
+
retryable: boolean;
|
|
40
|
+
currentVersion?: number;
|
|
41
|
+
details?: {
|
|
42
|
+
fieldName?: string;
|
|
43
|
+
code: string;
|
|
44
|
+
message: string;
|
|
45
|
+
}[];
|
|
46
|
+
}
|
|
47
|
+
/** Used to page the unified timeline of domain activity and message references. */
|
|
48
|
+
export interface ITicketTimelineQuery extends ITicketCursorRequest {
|
|
49
|
+
types?: string[];
|
|
50
|
+
occurredFrom?: Date;
|
|
51
|
+
occurredTo?: Date;
|
|
52
|
+
includeInternal?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export type TicketTimelinePage = ITicketCursorResponse<ITicketTimelineEntry>;
|
|
55
|
+
/** Used to publish a public reply or internal note through the authoritative Conversations module. */
|
|
56
|
+
export interface ICreateTicketMessageDto {
|
|
57
|
+
expectedVersion: number;
|
|
58
|
+
conversationId?: string;
|
|
59
|
+
visibility: MessageVisibility;
|
|
60
|
+
text?: string;
|
|
61
|
+
html?: string;
|
|
62
|
+
attachmentIds?: string[];
|
|
63
|
+
replyToMessageId?: string;
|
|
64
|
+
idempotencyKey: string;
|
|
65
|
+
}
|
|
66
|
+
/** Returned after a ticket message is accepted; delivery continues asynchronously in Conversations. */
|
|
67
|
+
export interface ICreateTicketMessageResult {
|
|
68
|
+
ticketId: string;
|
|
69
|
+
conversationId: string;
|
|
70
|
+
messageId: string;
|
|
71
|
+
acceptedAt: Date;
|
|
72
|
+
}
|
|
73
|
+
/** First phase of attachment upload; returns a short-lived destination rather than accepting file bytes in the ticket API. */
|
|
74
|
+
export interface ICreateTicketAttachmentUploadDto {
|
|
75
|
+
fileName: string;
|
|
76
|
+
mimeType: string;
|
|
77
|
+
sizeBytes: number;
|
|
78
|
+
checksum?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface ITicketAttachmentUploadSession {
|
|
81
|
+
uploadId: string;
|
|
82
|
+
uploadUrl: string;
|
|
83
|
+
requiredHeaders?: {
|
|
84
|
+
[key: string]: string;
|
|
85
|
+
};
|
|
86
|
+
expiresAt: Date;
|
|
87
|
+
}
|
|
88
|
+
/** Finalizes a successful upload and associates the immutable attachment metadata with the ticket. */
|
|
89
|
+
export interface ICompleteTicketAttachmentUploadDto {
|
|
90
|
+
expectedVersion: number;
|
|
91
|
+
uploadId: string;
|
|
92
|
+
checksum?: string;
|
|
93
|
+
}
|
|
94
|
+
/** Soft-deletes an attachment; physical retention is controlled by security/retention policy. */
|
|
95
|
+
export interface IDeleteTicketAttachmentDto {
|
|
96
|
+
expectedVersion: number;
|
|
97
|
+
reason?: string;
|
|
98
|
+
}
|
|
99
|
+
export type TicketAttachmentPage = ITicketCursorResponse<ITicketAttachment>;
|
|
100
|
+
export declare enum TicketRelationType {
|
|
101
|
+
PARENT = "PARENT",
|
|
102
|
+
CHILD = "CHILD",
|
|
103
|
+
DUPLICATES = "DUPLICATES",
|
|
104
|
+
DUPLICATED_BY = "DUPLICATED_BY",
|
|
105
|
+
BLOCKS = "BLOCKS",
|
|
106
|
+
BLOCKED_BY = "BLOCKED_BY",
|
|
107
|
+
RELATED = "RELATED",
|
|
108
|
+
INCIDENT_OF = "INCIDENT_OF",
|
|
109
|
+
HAS_INCIDENT = "HAS_INCIDENT",
|
|
110
|
+
PROBLEM_OF = "PROBLEM_OF"
|
|
111
|
+
}
|
|
112
|
+
export interface ITicketRelation {
|
|
113
|
+
id: string;
|
|
114
|
+
spaceId: string;
|
|
115
|
+
sourceTicketId: string;
|
|
116
|
+
targetTicketId: string;
|
|
117
|
+
type: TicketRelationType;
|
|
118
|
+
createdAt: Date;
|
|
119
|
+
createdBy: string;
|
|
120
|
+
deletedAt?: Date;
|
|
121
|
+
deletedBy?: string;
|
|
122
|
+
}
|
|
123
|
+
/** Creates an explicit directional relation between two existing tickets. */
|
|
124
|
+
export interface ICreateTicketRelationDto {
|
|
125
|
+
expectedVersion: number;
|
|
126
|
+
targetTicketId: string;
|
|
127
|
+
type: TicketRelationType;
|
|
128
|
+
comment?: string;
|
|
129
|
+
}
|
|
130
|
+
/** Removes a relationship without deleting either ticket. */
|
|
131
|
+
export interface IDeleteTicketRelationDto {
|
|
132
|
+
expectedVersion: number;
|
|
133
|
+
relationId: string;
|
|
134
|
+
}
|
|
135
|
+
/** Consolidates duplicate tickets into targetTicketId and preserves source history as linked records. */
|
|
136
|
+
export interface IMergeTicketsDto {
|
|
137
|
+
targetTicketId: string;
|
|
138
|
+
sourceTicketIds: string[];
|
|
139
|
+
expectedVersions: {
|
|
140
|
+
ticketId: string;
|
|
141
|
+
version: number;
|
|
142
|
+
}[];
|
|
143
|
+
copyMessages: boolean;
|
|
144
|
+
copyAttachments: boolean;
|
|
145
|
+
closeSourceTickets: boolean;
|
|
146
|
+
comment?: string;
|
|
147
|
+
idempotencyKey: string;
|
|
148
|
+
}
|
|
149
|
+
export interface IMergeTicketsResult {
|
|
150
|
+
targetTicketId: string;
|
|
151
|
+
mergedSourceTicketIds: string[];
|
|
152
|
+
targetVersion: number;
|
|
153
|
+
}
|
|
154
|
+
/** Creates a new ticket from a subset of content while linking it to the original ticket. */
|
|
155
|
+
export interface ISplitTicketDto {
|
|
156
|
+
expectedVersion: number;
|
|
157
|
+
title: string;
|
|
158
|
+
messageIds?: string[];
|
|
159
|
+
attachmentIds?: string[];
|
|
160
|
+
propertyNameKeys?: string[];
|
|
161
|
+
relationType?: TicketRelationType;
|
|
162
|
+
idempotencyKey: string;
|
|
163
|
+
}
|
|
164
|
+
export interface ISplitTicketResult {
|
|
165
|
+
sourceTicketId: string;
|
|
166
|
+
createdTicketId: string;
|
|
167
|
+
relationId: string;
|
|
168
|
+
}
|
|
169
|
+
export declare enum TicketFollowerRole {
|
|
170
|
+
FOLLOWER = "FOLLOWER",
|
|
171
|
+
COLLABORATOR = "COLLABORATOR",
|
|
172
|
+
REQUEST_CC = "REQUEST_CC"
|
|
173
|
+
}
|
|
174
|
+
export interface ITicketFollower {
|
|
175
|
+
id: string;
|
|
176
|
+
ticketId: string;
|
|
177
|
+
contactId?: string;
|
|
178
|
+
userId?: string;
|
|
179
|
+
role: TicketFollowerRole;
|
|
180
|
+
notify: boolean;
|
|
181
|
+
addedAt: Date;
|
|
182
|
+
addedBy: string;
|
|
183
|
+
}
|
|
184
|
+
/** Adds an internal user or external contact that should observe ticket updates. */
|
|
185
|
+
export interface IAddTicketFollowerDto {
|
|
186
|
+
expectedVersion: number;
|
|
187
|
+
contactId?: string;
|
|
188
|
+
userId?: string;
|
|
189
|
+
role: TicketFollowerRole;
|
|
190
|
+
notify?: boolean;
|
|
191
|
+
}
|
|
192
|
+
/** Removes a follower and stops future notifications for that association. */
|
|
193
|
+
export interface IRemoveTicketFollowerDto {
|
|
194
|
+
expectedVersion: number;
|
|
195
|
+
followerId: string;
|
|
196
|
+
}
|
|
197
|
+
export declare enum TicketMacroActionType {
|
|
198
|
+
SET_FIELD = "SET_FIELD",
|
|
199
|
+
SET_PRIORITY = "SET_PRIORITY",
|
|
200
|
+
ASSIGN = "ASSIGN",
|
|
201
|
+
TRANSITION = "TRANSITION",
|
|
202
|
+
ADD_TAG = "ADD_TAG",
|
|
203
|
+
REMOVE_TAG = "REMOVE_TAG",
|
|
204
|
+
ADD_INTERNAL_NOTE = "ADD_INTERNAL_NOTE",
|
|
205
|
+
SEND_PUBLIC_REPLY = "SEND_PUBLIC_REPLY",
|
|
206
|
+
START_APPROVAL = "START_APPROVAL",
|
|
207
|
+
APPLY_TASK_TEMPLATE = "APPLY_TASK_TEMPLATE",
|
|
208
|
+
ENQUEUE = "ENQUEUE"
|
|
209
|
+
}
|
|
210
|
+
export type ITicketMacroAction = {
|
|
211
|
+
type: TicketMacroActionType.SET_FIELD;
|
|
212
|
+
fieldNameKey: string;
|
|
213
|
+
value: TicketPropertyValue;
|
|
214
|
+
} | {
|
|
215
|
+
type: TicketMacroActionType.SET_PRIORITY;
|
|
216
|
+
priority: TicketPriority;
|
|
217
|
+
} | {
|
|
218
|
+
type: TicketMacroActionType.ASSIGN;
|
|
219
|
+
userId: string;
|
|
220
|
+
groupId?: string;
|
|
221
|
+
} | {
|
|
222
|
+
type: TicketMacroActionType.ASSIGN;
|
|
223
|
+
userId?: string;
|
|
224
|
+
groupId: string;
|
|
225
|
+
} | {
|
|
226
|
+
type: TicketMacroActionType.TRANSITION;
|
|
227
|
+
statusId: string;
|
|
228
|
+
} | {
|
|
229
|
+
type: TicketMacroActionType.ADD_TAG;
|
|
230
|
+
tagId: string;
|
|
231
|
+
} | {
|
|
232
|
+
type: TicketMacroActionType.REMOVE_TAG;
|
|
233
|
+
tagId: string;
|
|
234
|
+
} | {
|
|
235
|
+
type: TicketMacroActionType.ADD_INTERNAL_NOTE;
|
|
236
|
+
text: string;
|
|
237
|
+
} | {
|
|
238
|
+
type: TicketMacroActionType.SEND_PUBLIC_REPLY;
|
|
239
|
+
text: string;
|
|
240
|
+
} | {
|
|
241
|
+
type: TicketMacroActionType.START_APPROVAL;
|
|
242
|
+
definitionId: string;
|
|
243
|
+
} | {
|
|
244
|
+
type: TicketMacroActionType.APPLY_TASK_TEMPLATE;
|
|
245
|
+
templateId: string;
|
|
246
|
+
} | {
|
|
247
|
+
type: TicketMacroActionType.ENQUEUE;
|
|
248
|
+
queueId: string;
|
|
249
|
+
};
|
|
250
|
+
export interface ITicketMacro {
|
|
251
|
+
id: string;
|
|
252
|
+
spaceId: string;
|
|
253
|
+
name: string;
|
|
254
|
+
description?: string;
|
|
255
|
+
actions: ITicketMacroAction[];
|
|
256
|
+
allowedRoleIds?: string[];
|
|
257
|
+
enabled: boolean;
|
|
258
|
+
createdAt: Date;
|
|
259
|
+
createdBy: string;
|
|
260
|
+
updatedAt?: Date;
|
|
261
|
+
updatedBy?: string;
|
|
262
|
+
}
|
|
263
|
+
/** Executes a predefined set of agent actions atomically where possible. */
|
|
264
|
+
export interface IApplyTicketMacroDto {
|
|
265
|
+
expectedVersion: number;
|
|
266
|
+
macroId: string;
|
|
267
|
+
variables?: {
|
|
268
|
+
[key: string]: TicketPropertyValue;
|
|
269
|
+
};
|
|
270
|
+
idempotencyKey: string;
|
|
271
|
+
}
|
|
272
|
+
export declare enum TicketBulkOperationType {
|
|
273
|
+
UPDATE = "UPDATE",
|
|
274
|
+
ASSIGN = "ASSIGN",
|
|
275
|
+
TRANSITION = "TRANSITION",
|
|
276
|
+
ADD_TAG = "ADD_TAG",
|
|
277
|
+
REMOVE_TAG = "REMOVE_TAG",
|
|
278
|
+
APPLY_MACRO = "APPLY_MACRO",
|
|
279
|
+
DELETE = "DELETE"
|
|
280
|
+
}
|
|
281
|
+
export interface ITicketBulkTarget {
|
|
282
|
+
ticketIds?: string[];
|
|
283
|
+
filter?: ITicketFilter;
|
|
284
|
+
excludedTicketIds?: string[];
|
|
285
|
+
}
|
|
286
|
+
export interface ITicketBulkUpdatePayload {
|
|
287
|
+
title?: string;
|
|
288
|
+
description?: string;
|
|
289
|
+
priority?: TicketPriority;
|
|
290
|
+
dueAt?: Date;
|
|
291
|
+
categoryId?: string;
|
|
292
|
+
properties?: ITicketProperty[];
|
|
293
|
+
}
|
|
294
|
+
export interface ITicketBulkAssignPayload {
|
|
295
|
+
assigneeId?: string;
|
|
296
|
+
assignedGroupId?: string;
|
|
297
|
+
}
|
|
298
|
+
export interface ITicketBulkTransitionPayload {
|
|
299
|
+
toStatusId: string;
|
|
300
|
+
comment?: string;
|
|
301
|
+
}
|
|
302
|
+
export interface ITicketBulkTagPayload {
|
|
303
|
+
tagId: string;
|
|
304
|
+
}
|
|
305
|
+
export interface ITicketBulkMacroPayload {
|
|
306
|
+
macroId: string;
|
|
307
|
+
variables?: {
|
|
308
|
+
[key: string]: TicketPropertyValue;
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
export interface ITicketBulkDeletePayload {
|
|
312
|
+
reason: string;
|
|
313
|
+
}
|
|
314
|
+
export interface ITicketBulkJobBase {
|
|
315
|
+
target: ITicketBulkTarget;
|
|
316
|
+
expectedVersions?: {
|
|
317
|
+
ticketId: string;
|
|
318
|
+
version: number;
|
|
319
|
+
}[];
|
|
320
|
+
idempotencyKey: string;
|
|
321
|
+
}
|
|
322
|
+
/** Starts an asynchronous operation and requires the payload matching its operation discriminator. */
|
|
323
|
+
export type ICreateTicketBulkJobDto = ITicketBulkJobBase & ({
|
|
324
|
+
operation: TicketBulkOperationType.UPDATE;
|
|
325
|
+
payload: ITicketBulkUpdatePayload;
|
|
326
|
+
} | {
|
|
327
|
+
operation: TicketBulkOperationType.ASSIGN;
|
|
328
|
+
payload: ITicketBulkAssignPayload;
|
|
329
|
+
} | {
|
|
330
|
+
operation: TicketBulkOperationType.TRANSITION;
|
|
331
|
+
payload: ITicketBulkTransitionPayload;
|
|
332
|
+
} | {
|
|
333
|
+
operation: TicketBulkOperationType.ADD_TAG;
|
|
334
|
+
payload: ITicketBulkTagPayload;
|
|
335
|
+
} | {
|
|
336
|
+
operation: TicketBulkOperationType.REMOVE_TAG;
|
|
337
|
+
payload: ITicketBulkTagPayload;
|
|
338
|
+
} | {
|
|
339
|
+
operation: TicketBulkOperationType.APPLY_MACRO;
|
|
340
|
+
payload: ITicketBulkMacroPayload;
|
|
341
|
+
} | {
|
|
342
|
+
operation: TicketBulkOperationType.DELETE;
|
|
343
|
+
payload: ITicketBulkDeletePayload;
|
|
344
|
+
});
|
|
345
|
+
export declare enum TicketJobStatus {
|
|
346
|
+
PENDING = "PENDING",
|
|
347
|
+
PROCESSING = "PROCESSING",
|
|
348
|
+
COMPLETED = "COMPLETED",
|
|
349
|
+
PARTIALLY_COMPLETED = "PARTIALLY_COMPLETED",
|
|
350
|
+
FAILED = "FAILED",
|
|
351
|
+
CANCELLED = "CANCELLED",
|
|
352
|
+
EXPIRED = "EXPIRED"
|
|
353
|
+
}
|
|
354
|
+
export interface ITicketBulkJob {
|
|
355
|
+
id: string;
|
|
356
|
+
spaceId: string;
|
|
357
|
+
operation: TicketBulkOperationType;
|
|
358
|
+
status: TicketJobStatus;
|
|
359
|
+
total?: number;
|
|
360
|
+
processed: number;
|
|
361
|
+
succeeded: number;
|
|
362
|
+
failed: number;
|
|
363
|
+
requestedAt: Date;
|
|
364
|
+
requestedBy: string;
|
|
365
|
+
completedAt?: Date;
|
|
366
|
+
expiresAt?: Date;
|
|
367
|
+
errorFileUrl?: string;
|
|
368
|
+
}
|
|
369
|
+
/** Queries immutable SLA cycles separately from the compact active SLA state on ITicket. */
|
|
370
|
+
export interface ITicketSlaHistoryQuery extends ITicketCursorRequest {
|
|
371
|
+
metricDefinitionIds?: string[];
|
|
372
|
+
breached?: boolean;
|
|
373
|
+
startedFrom?: Date;
|
|
374
|
+
startedTo?: Date;
|
|
375
|
+
}
|
|
376
|
+
export type TicketSlaHistoryPage = ITicketCursorResponse<ISlaMetricCycle>;
|
|
377
|
+
export declare enum TicketExportFormat {
|
|
378
|
+
XLSX = "XLSX",
|
|
379
|
+
CSV = "CSV",
|
|
380
|
+
JSONL = "JSONL"
|
|
381
|
+
}
|
|
382
|
+
/** Starts a permission-aware asynchronous export using the same filter semantics as ticket search. */
|
|
383
|
+
export interface ICreateTicketExportJobDto {
|
|
384
|
+
format: TicketExportFormat;
|
|
385
|
+
filter?: ITicketFilter;
|
|
386
|
+
fieldNameKeys: string[];
|
|
387
|
+
includeTimeline?: boolean;
|
|
388
|
+
includeSlaHistory?: boolean;
|
|
389
|
+
fileName?: string;
|
|
390
|
+
idempotencyKey: string;
|
|
391
|
+
}
|
|
392
|
+
export interface ITicketExportJob {
|
|
393
|
+
id: string;
|
|
394
|
+
spaceId: string;
|
|
395
|
+
format: TicketExportFormat;
|
|
396
|
+
status: TicketJobStatus;
|
|
397
|
+
progress?: number;
|
|
398
|
+
rowCount?: number;
|
|
399
|
+
fileName?: string;
|
|
400
|
+
downloadUrl?: string;
|
|
401
|
+
requestedAt: Date;
|
|
402
|
+
requestedBy: string;
|
|
403
|
+
completedAt?: Date;
|
|
404
|
+
expiresAt?: Date;
|
|
405
|
+
error?: string;
|
|
406
|
+
}
|
|
407
|
+
export declare enum TicketSubscriptionEvent {
|
|
408
|
+
CREATED = "CREATED",
|
|
409
|
+
UPDATED = "UPDATED",
|
|
410
|
+
ASSIGNED = "ASSIGNED",
|
|
411
|
+
STATUS_CHANGED = "STATUS_CHANGED",
|
|
412
|
+
MESSAGE_CREATED = "MESSAGE_CREATED",
|
|
413
|
+
SLA_WARNING = "SLA_WARNING",
|
|
414
|
+
SLA_BREACHED = "SLA_BREACHED",
|
|
415
|
+
RESOLVED = "RESOLVED",
|
|
416
|
+
REOPENED = "REOPENED",
|
|
417
|
+
DELETED = "DELETED"
|
|
418
|
+
}
|
|
419
|
+
export interface ITicketSubscription {
|
|
420
|
+
id: string;
|
|
421
|
+
spaceId: string;
|
|
422
|
+
ticketId?: string;
|
|
423
|
+
filter?: ITicketFilter;
|
|
424
|
+
subscriberUserId?: string;
|
|
425
|
+
subscriberContactId?: string;
|
|
426
|
+
events: TicketSubscriptionEvent[];
|
|
427
|
+
enabled: boolean;
|
|
428
|
+
createdAt: Date;
|
|
429
|
+
}
|
|
430
|
+
/** Creates an in-product/email subscription for a user or contact; not an integration webhook. */
|
|
431
|
+
export interface ICreateTicketSubscriptionDto {
|
|
432
|
+
ticketId?: string;
|
|
433
|
+
filter?: ITicketFilter;
|
|
434
|
+
subscriberUserId?: string;
|
|
435
|
+
subscriberContactId?: string;
|
|
436
|
+
events: TicketSubscriptionEvent[];
|
|
437
|
+
}
|
|
438
|
+
export declare enum TicketWebhookAuthType {
|
|
439
|
+
NONE = "NONE",
|
|
440
|
+
BASIC = "BASIC",
|
|
441
|
+
BEARER = "BEARER",
|
|
442
|
+
API_KEY = "API_KEY",
|
|
443
|
+
HMAC = "HMAC"
|
|
444
|
+
}
|
|
445
|
+
export interface ITicketWebhookEndpoint {
|
|
446
|
+
id: string;
|
|
447
|
+
spaceId: string;
|
|
448
|
+
name: string;
|
|
449
|
+
url: string;
|
|
450
|
+
events: TicketSubscriptionEvent[];
|
|
451
|
+
authType: TicketWebhookAuthType;
|
|
452
|
+
secretReferenceId?: string;
|
|
453
|
+
filter?: ITicketFilter;
|
|
454
|
+
enabled: boolean;
|
|
455
|
+
maxAttempts: number;
|
|
456
|
+
timeoutSeconds: number;
|
|
457
|
+
createdAt: Date;
|
|
458
|
+
createdBy: string;
|
|
459
|
+
}
|
|
460
|
+
export interface ITicketWebhookDelivery {
|
|
461
|
+
id: string;
|
|
462
|
+
webhookId: string;
|
|
463
|
+
eventId: string;
|
|
464
|
+
attempt: number;
|
|
465
|
+
requestedAt: Date;
|
|
466
|
+
respondedAt?: Date;
|
|
467
|
+
responseStatus?: number;
|
|
468
|
+
succeeded: boolean;
|
|
469
|
+
nextRetryAt?: Date;
|
|
470
|
+
error?: string;
|
|
471
|
+
}
|
|
472
|
+
/** Registers an outbound integration endpoint; secrets are referenced, never returned in this contract. */
|
|
473
|
+
export interface ICreateTicketWebhookDto {
|
|
474
|
+
name: string;
|
|
475
|
+
url: string;
|
|
476
|
+
events: TicketSubscriptionEvent[];
|
|
477
|
+
authType: TicketWebhookAuthType;
|
|
478
|
+
secretReferenceId?: string;
|
|
479
|
+
filter?: ITicketFilter;
|
|
480
|
+
maxAttempts?: number;
|
|
481
|
+
timeoutSeconds?: number;
|
|
482
|
+
}
|
|
483
|
+
/** Requests a replay of one failed webhook delivery after configuration is corrected. */
|
|
484
|
+
export interface IRetryTicketWebhookDeliveryDto {
|
|
485
|
+
deliveryId: string;
|
|
486
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TicketWebhookAuthType = exports.TicketSubscriptionEvent = exports.TicketExportFormat = exports.TicketJobStatus = exports.TicketBulkOperationType = exports.TicketMacroActionType = exports.TicketFollowerRole = exports.TicketRelationType = exports.TicketApiErrorCode = exports.TicketExpand = void 0;
|
|
4
|
+
var TicketExpand;
|
|
5
|
+
(function (TicketExpand) {
|
|
6
|
+
TicketExpand["CONTACT"] = "CONTACT";
|
|
7
|
+
TicketExpand["TAGS"] = "TAGS";
|
|
8
|
+
TicketExpand["ATTACHMENTS"] = "ATTACHMENTS";
|
|
9
|
+
TicketExpand["CONVERSATIONS"] = "CONVERSATIONS";
|
|
10
|
+
TicketExpand["SLA"] = "SLA";
|
|
11
|
+
TicketExpand["ROUTING"] = "ROUTING";
|
|
12
|
+
TicketExpand["APPROVAL_SUMMARY"] = "APPROVAL_SUMMARY";
|
|
13
|
+
TicketExpand["TASK_SUMMARY"] = "TASK_SUMMARY";
|
|
14
|
+
TicketExpand["SECURITY"] = "SECURITY";
|
|
15
|
+
})(TicketExpand || (exports.TicketExpand = TicketExpand = {}));
|
|
16
|
+
var TicketApiErrorCode;
|
|
17
|
+
(function (TicketApiErrorCode) {
|
|
18
|
+
TicketApiErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
19
|
+
TicketApiErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
20
|
+
TicketApiErrorCode["FORBIDDEN"] = "FORBIDDEN";
|
|
21
|
+
TicketApiErrorCode["VERSION_CONFLICT"] = "VERSION_CONFLICT";
|
|
22
|
+
TicketApiErrorCode["INVALID_TRANSITION"] = "INVALID_TRANSITION";
|
|
23
|
+
TicketApiErrorCode["IDEMPOTENCY_CONFLICT"] = "IDEMPOTENCY_CONFLICT";
|
|
24
|
+
TicketApiErrorCode["RATE_LIMITED"] = "RATE_LIMITED";
|
|
25
|
+
TicketApiErrorCode["FILE_REJECTED"] = "FILE_REJECTED";
|
|
26
|
+
TicketApiErrorCode["SLA_CONFIGURATION_ERROR"] = "SLA_CONFIGURATION_ERROR";
|
|
27
|
+
TicketApiErrorCode["BULK_PARTIAL_FAILURE"] = "BULK_PARTIAL_FAILURE";
|
|
28
|
+
})(TicketApiErrorCode || (exports.TicketApiErrorCode = TicketApiErrorCode = {}));
|
|
29
|
+
var TicketRelationType;
|
|
30
|
+
(function (TicketRelationType) {
|
|
31
|
+
TicketRelationType["PARENT"] = "PARENT";
|
|
32
|
+
TicketRelationType["CHILD"] = "CHILD";
|
|
33
|
+
TicketRelationType["DUPLICATES"] = "DUPLICATES";
|
|
34
|
+
TicketRelationType["DUPLICATED_BY"] = "DUPLICATED_BY";
|
|
35
|
+
TicketRelationType["BLOCKS"] = "BLOCKS";
|
|
36
|
+
TicketRelationType["BLOCKED_BY"] = "BLOCKED_BY";
|
|
37
|
+
TicketRelationType["RELATED"] = "RELATED";
|
|
38
|
+
TicketRelationType["INCIDENT_OF"] = "INCIDENT_OF";
|
|
39
|
+
TicketRelationType["HAS_INCIDENT"] = "HAS_INCIDENT";
|
|
40
|
+
TicketRelationType["PROBLEM_OF"] = "PROBLEM_OF";
|
|
41
|
+
})(TicketRelationType || (exports.TicketRelationType = TicketRelationType = {}));
|
|
42
|
+
var TicketFollowerRole;
|
|
43
|
+
(function (TicketFollowerRole) {
|
|
44
|
+
TicketFollowerRole["FOLLOWER"] = "FOLLOWER";
|
|
45
|
+
TicketFollowerRole["COLLABORATOR"] = "COLLABORATOR";
|
|
46
|
+
TicketFollowerRole["REQUEST_CC"] = "REQUEST_CC";
|
|
47
|
+
})(TicketFollowerRole || (exports.TicketFollowerRole = TicketFollowerRole = {}));
|
|
48
|
+
var TicketMacroActionType;
|
|
49
|
+
(function (TicketMacroActionType) {
|
|
50
|
+
TicketMacroActionType["SET_FIELD"] = "SET_FIELD";
|
|
51
|
+
TicketMacroActionType["SET_PRIORITY"] = "SET_PRIORITY";
|
|
52
|
+
TicketMacroActionType["ASSIGN"] = "ASSIGN";
|
|
53
|
+
TicketMacroActionType["TRANSITION"] = "TRANSITION";
|
|
54
|
+
TicketMacroActionType["ADD_TAG"] = "ADD_TAG";
|
|
55
|
+
TicketMacroActionType["REMOVE_TAG"] = "REMOVE_TAG";
|
|
56
|
+
TicketMacroActionType["ADD_INTERNAL_NOTE"] = "ADD_INTERNAL_NOTE";
|
|
57
|
+
TicketMacroActionType["SEND_PUBLIC_REPLY"] = "SEND_PUBLIC_REPLY";
|
|
58
|
+
TicketMacroActionType["START_APPROVAL"] = "START_APPROVAL";
|
|
59
|
+
TicketMacroActionType["APPLY_TASK_TEMPLATE"] = "APPLY_TASK_TEMPLATE";
|
|
60
|
+
TicketMacroActionType["ENQUEUE"] = "ENQUEUE";
|
|
61
|
+
})(TicketMacroActionType || (exports.TicketMacroActionType = TicketMacroActionType = {}));
|
|
62
|
+
var TicketBulkOperationType;
|
|
63
|
+
(function (TicketBulkOperationType) {
|
|
64
|
+
TicketBulkOperationType["UPDATE"] = "UPDATE";
|
|
65
|
+
TicketBulkOperationType["ASSIGN"] = "ASSIGN";
|
|
66
|
+
TicketBulkOperationType["TRANSITION"] = "TRANSITION";
|
|
67
|
+
TicketBulkOperationType["ADD_TAG"] = "ADD_TAG";
|
|
68
|
+
TicketBulkOperationType["REMOVE_TAG"] = "REMOVE_TAG";
|
|
69
|
+
TicketBulkOperationType["APPLY_MACRO"] = "APPLY_MACRO";
|
|
70
|
+
TicketBulkOperationType["DELETE"] = "DELETE";
|
|
71
|
+
})(TicketBulkOperationType || (exports.TicketBulkOperationType = TicketBulkOperationType = {}));
|
|
72
|
+
var TicketJobStatus;
|
|
73
|
+
(function (TicketJobStatus) {
|
|
74
|
+
TicketJobStatus["PENDING"] = "PENDING";
|
|
75
|
+
TicketJobStatus["PROCESSING"] = "PROCESSING";
|
|
76
|
+
TicketJobStatus["COMPLETED"] = "COMPLETED";
|
|
77
|
+
TicketJobStatus["PARTIALLY_COMPLETED"] = "PARTIALLY_COMPLETED";
|
|
78
|
+
TicketJobStatus["FAILED"] = "FAILED";
|
|
79
|
+
TicketJobStatus["CANCELLED"] = "CANCELLED";
|
|
80
|
+
TicketJobStatus["EXPIRED"] = "EXPIRED";
|
|
81
|
+
})(TicketJobStatus || (exports.TicketJobStatus = TicketJobStatus = {}));
|
|
82
|
+
var TicketExportFormat;
|
|
83
|
+
(function (TicketExportFormat) {
|
|
84
|
+
TicketExportFormat["XLSX"] = "XLSX";
|
|
85
|
+
TicketExportFormat["CSV"] = "CSV";
|
|
86
|
+
TicketExportFormat["JSONL"] = "JSONL";
|
|
87
|
+
})(TicketExportFormat || (exports.TicketExportFormat = TicketExportFormat = {}));
|
|
88
|
+
var TicketSubscriptionEvent;
|
|
89
|
+
(function (TicketSubscriptionEvent) {
|
|
90
|
+
TicketSubscriptionEvent["CREATED"] = "CREATED";
|
|
91
|
+
TicketSubscriptionEvent["UPDATED"] = "UPDATED";
|
|
92
|
+
TicketSubscriptionEvent["ASSIGNED"] = "ASSIGNED";
|
|
93
|
+
TicketSubscriptionEvent["STATUS_CHANGED"] = "STATUS_CHANGED";
|
|
94
|
+
TicketSubscriptionEvent["MESSAGE_CREATED"] = "MESSAGE_CREATED";
|
|
95
|
+
TicketSubscriptionEvent["SLA_WARNING"] = "SLA_WARNING";
|
|
96
|
+
TicketSubscriptionEvent["SLA_BREACHED"] = "SLA_BREACHED";
|
|
97
|
+
TicketSubscriptionEvent["RESOLVED"] = "RESOLVED";
|
|
98
|
+
TicketSubscriptionEvent["REOPENED"] = "REOPENED";
|
|
99
|
+
TicketSubscriptionEvent["DELETED"] = "DELETED";
|
|
100
|
+
})(TicketSubscriptionEvent || (exports.TicketSubscriptionEvent = TicketSubscriptionEvent = {}));
|
|
101
|
+
var TicketWebhookAuthType;
|
|
102
|
+
(function (TicketWebhookAuthType) {
|
|
103
|
+
TicketWebhookAuthType["NONE"] = "NONE";
|
|
104
|
+
TicketWebhookAuthType["BASIC"] = "BASIC";
|
|
105
|
+
TicketWebhookAuthType["BEARER"] = "BEARER";
|
|
106
|
+
TicketWebhookAuthType["API_KEY"] = "API_KEY";
|
|
107
|
+
TicketWebhookAuthType["HMAC"] = "HMAC";
|
|
108
|
+
})(TicketWebhookAuthType || (exports.TicketWebhookAuthType = TicketWebhookAuthType = {}));
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ITicket } from "./Ticket";
|
|
2
|
+
import { TicketOrigin, TicketPriority, TicketPropertyValue, TicketStage } from "./Common";
|
|
3
|
+
export interface ITicketCursorRequest {
|
|
4
|
+
cursor?: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ITicketCursorResponse<T> {
|
|
8
|
+
items: T[];
|
|
9
|
+
nextCursor?: string;
|
|
10
|
+
hasMore: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare enum TicketSortDirection {
|
|
13
|
+
ASC = "ASC",
|
|
14
|
+
DESC = "DESC"
|
|
15
|
+
}
|
|
16
|
+
export interface ITicketSort {
|
|
17
|
+
fieldNameKey: string;
|
|
18
|
+
direction: TicketSortDirection;
|
|
19
|
+
}
|
|
20
|
+
export interface ITicketFieldFilter {
|
|
21
|
+
fieldNameKey: string;
|
|
22
|
+
operator: string;
|
|
23
|
+
value?: TicketPropertyValue;
|
|
24
|
+
}
|
|
25
|
+
export interface ITicketFilter {
|
|
26
|
+
search?: string;
|
|
27
|
+
stages?: TicketStage[];
|
|
28
|
+
statusIds?: string[];
|
|
29
|
+
priorities?: TicketPriority[];
|
|
30
|
+
origins?: TicketOrigin[];
|
|
31
|
+
contactIds?: string[];
|
|
32
|
+
assigneeIds?: string[];
|
|
33
|
+
assignedGroupIds?: string[];
|
|
34
|
+
categoryIds?: string[];
|
|
35
|
+
tagIds?: string[];
|
|
36
|
+
createdFrom?: Date;
|
|
37
|
+
createdTo?: Date;
|
|
38
|
+
dueFrom?: Date;
|
|
39
|
+
dueTo?: Date;
|
|
40
|
+
includeDeleted?: boolean;
|
|
41
|
+
fields?: ITicketFieldFilter[];
|
|
42
|
+
}
|
|
43
|
+
export interface ITicketQuery extends ITicketCursorRequest {
|
|
44
|
+
filter?: ITicketFilter;
|
|
45
|
+
sort?: ITicketSort[];
|
|
46
|
+
}
|
|
47
|
+
export interface ITransitionTicketDto {
|
|
48
|
+
expectedVersion: number;
|
|
49
|
+
toStatusId: string;
|
|
50
|
+
comment?: string;
|
|
51
|
+
properties?: {
|
|
52
|
+
nameKey: string;
|
|
53
|
+
value: TicketPropertyValue;
|
|
54
|
+
}[];
|
|
55
|
+
formSubmissionIds?: string[];
|
|
56
|
+
}
|
|
57
|
+
export interface IAssignTicketDto {
|
|
58
|
+
expectedVersion: number;
|
|
59
|
+
assigneeId?: string;
|
|
60
|
+
assignedGroupId?: string;
|
|
61
|
+
}
|
|
62
|
+
export type TicketPage = ITicketCursorResponse<ITicket>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TicketSortDirection = void 0;
|
|
4
|
+
var TicketSortDirection;
|
|
5
|
+
(function (TicketSortDirection) {
|
|
6
|
+
TicketSortDirection["ASC"] = "ASC";
|
|
7
|
+
TicketSortDirection["DESC"] = "DESC";
|
|
8
|
+
})(TicketSortDirection || (exports.TicketSortDirection = TicketSortDirection = {}));
|