@wilnertech/halopsa-mcp-server 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +54 -7
  2. package/dist/api/client.d.ts +7 -2
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +35 -8
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/cache/memory-cache.d.ts +7 -0
  7. package/dist/cache/memory-cache.d.ts.map +1 -1
  8. package/dist/cache/memory-cache.js +7 -0
  9. package/dist/cache/memory-cache.js.map +1 -1
  10. package/dist/cache/prewarm.d.ts +3 -1
  11. package/dist/cache/prewarm.d.ts.map +1 -1
  12. package/dist/cache/prewarm.js +17 -1
  13. package/dist/cache/prewarm.js.map +1 -1
  14. package/dist/schemas/common.d.ts +30 -99
  15. package/dist/schemas/common.d.ts.map +1 -1
  16. package/dist/schemas/common.js +2 -2
  17. package/dist/schemas/common.js.map +1 -1
  18. package/dist/tools/assets.d.ts +73 -298
  19. package/dist/tools/assets.d.ts.map +1 -1
  20. package/dist/tools/assets.js +15 -7
  21. package/dist/tools/assets.js.map +1 -1
  22. package/dist/tools/batch-operations.d.ts +49 -81
  23. package/dist/tools/batch-operations.d.ts.map +1 -1
  24. package/dist/tools/batch-operations.js +62 -0
  25. package/dist/tools/batch-operations.js.map +1 -1
  26. package/dist/tools/clients.d.ts +24 -92
  27. package/dist/tools/clients.d.ts.map +1 -1
  28. package/dist/tools/reference-data.d.ts +44 -72
  29. package/dist/tools/reference-data.d.ts.map +1 -1
  30. package/dist/tools/reference-data.js +37 -4
  31. package/dist/tools/reference-data.js.map +1 -1
  32. package/dist/tools/registrations.d.ts +7 -1
  33. package/dist/tools/registrations.d.ts.map +1 -1
  34. package/dist/tools/registrations.js +43 -7
  35. package/dist/tools/registrations.js.map +1 -1
  36. package/dist/tools/registry.d.ts +12 -5
  37. package/dist/tools/registry.d.ts.map +1 -1
  38. package/dist/tools/registry.js +26 -2
  39. package/dist/tools/registry.js.map +1 -1
  40. package/dist/tools/sites.d.ts +19 -111
  41. package/dist/tools/sites.d.ts.map +1 -1
  42. package/dist/tools/sites.js +3 -3
  43. package/dist/tools/sites.js.map +1 -1
  44. package/dist/tools/ticket-actions.d.ts +41 -0
  45. package/dist/tools/ticket-actions.d.ts.map +1 -0
  46. package/dist/tools/ticket-actions.js +222 -0
  47. package/dist/tools/ticket-actions.js.map +1 -0
  48. package/dist/tools/ticket-custom-fields.d.ts +33 -0
  49. package/dist/tools/ticket-custom-fields.d.ts.map +1 -0
  50. package/dist/tools/ticket-custom-fields.js +155 -0
  51. package/dist/tools/ticket-custom-fields.js.map +1 -0
  52. package/dist/tools/ticket-reference-data.d.ts +88 -0
  53. package/dist/tools/ticket-reference-data.d.ts.map +1 -0
  54. package/dist/tools/ticket-reference-data.js +185 -0
  55. package/dist/tools/ticket-reference-data.js.map +1 -0
  56. package/dist/tools/tickets.d.ts +168 -0
  57. package/dist/tools/tickets.d.ts.map +1 -0
  58. package/dist/tools/tickets.js +572 -0
  59. package/dist/tools/tickets.js.map +1 -0
  60. package/dist/tools/users.d.ts +43 -190
  61. package/dist/tools/users.d.ts.map +1 -1
  62. package/dist/tools/users.js +25 -7
  63. package/dist/tools/users.js.map +1 -1
  64. package/dist/types/tickets.d.ts +193 -0
  65. package/dist/types/tickets.d.ts.map +1 -0
  66. package/dist/types/tickets.js +14 -0
  67. package/dist/types/tickets.js.map +1 -0
  68. package/dist/utils/formatter.d.ts +15 -1
  69. package/dist/utils/formatter.d.ts.map +1 -1
  70. package/dist/utils/formatter.js +52 -6
  71. package/dist/utils/formatter.js.map +1 -1
  72. package/package.json +10 -3
  73. package/dist/utils/zod-to-schema.d.ts +0 -29
  74. package/dist/utils/zod-to-schema.d.ts.map +0 -1
  75. package/dist/utils/zod-to-schema.js +0 -182
  76. package/dist/utils/zod-to-schema.js.map +0 -1
@@ -21,78 +21,30 @@ export declare const ListUsersArgsSchema: z.ZodObject<{
21
21
  includeactive: z.ZodOptional<z.ZodBoolean>;
22
22
  includeinactive: z.ZodOptional<z.ZodBoolean>;
23
23
  format_options: z.ZodOptional<z.ZodObject<{
24
- format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
25
- fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
24
+ format: z.ZodOptional<z.ZodEnum<{
25
+ compact: "compact";
26
+ standard: "standard";
27
+ detailed: "detailed";
28
+ }>>;
29
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
26
30
  omit_empty: z.ZodOptional<z.ZodBoolean>;
27
- }, "strip", z.ZodTypeAny, {
28
- format?: "compact" | "standard" | "detailed" | undefined;
29
- fields?: string[] | undefined;
30
- omit_empty?: boolean | undefined;
31
- }, {
32
- format?: "compact" | "standard" | "detailed" | undefined;
33
- fields?: string[] | undefined;
34
- omit_empty?: boolean | undefined;
35
- }>>;
36
- }, "strip", z.ZodTypeAny, {
37
- client_id?: number | undefined;
38
- count?: number | undefined;
39
- page_no?: number | undefined;
40
- site_id?: number | undefined;
41
- search?: string | undefined;
42
- includeactive?: boolean | undefined;
43
- includeinactive?: boolean | undefined;
44
- format_options?: {
45
- format?: "compact" | "standard" | "detailed" | undefined;
46
- fields?: string[] | undefined;
47
- omit_empty?: boolean | undefined;
48
- } | undefined;
49
- }, {
50
- client_id?: number | undefined;
51
- count?: number | undefined;
52
- page_no?: number | undefined;
53
- site_id?: number | undefined;
54
- search?: string | undefined;
55
- includeactive?: boolean | undefined;
56
- includeinactive?: boolean | undefined;
57
- format_options?: {
58
- format?: "compact" | "standard" | "detailed" | undefined;
59
- fields?: string[] | undefined;
60
- omit_empty?: boolean | undefined;
61
- } | undefined;
62
- }>;
31
+ }, z.core.$strip>>;
32
+ }, z.core.$strip>;
63
33
  /**
64
34
  * Get single user schema
65
35
  */
66
36
  export declare const GetUserArgsSchema: z.ZodObject<{
67
37
  user_id: z.ZodNumber;
68
38
  format_options: z.ZodOptional<z.ZodObject<{
69
- format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
70
- fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
39
+ format: z.ZodOptional<z.ZodEnum<{
40
+ compact: "compact";
41
+ standard: "standard";
42
+ detailed: "detailed";
43
+ }>>;
44
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
71
45
  omit_empty: z.ZodOptional<z.ZodBoolean>;
72
- }, "strip", z.ZodTypeAny, {
73
- format?: "compact" | "standard" | "detailed" | undefined;
74
- fields?: string[] | undefined;
75
- omit_empty?: boolean | undefined;
76
- }, {
77
- format?: "compact" | "standard" | "detailed" | undefined;
78
- fields?: string[] | undefined;
79
- omit_empty?: boolean | undefined;
80
- }>>;
81
- }, "strip", z.ZodTypeAny, {
82
- user_id: number;
83
- format_options?: {
84
- format?: "compact" | "standard" | "detailed" | undefined;
85
- fields?: string[] | undefined;
86
- omit_empty?: boolean | undefined;
87
- } | undefined;
88
- }, {
89
- user_id: number;
90
- format_options?: {
91
- format?: "compact" | "standard" | "detailed" | undefined;
92
- fields?: string[] | undefined;
93
- omit_empty?: boolean | undefined;
94
- } | undefined;
95
- }>;
46
+ }, z.core.$strip>>;
47
+ }, z.core.$strip>;
96
48
  /**
97
49
  * Search users by email schema
98
50
  */
@@ -100,35 +52,15 @@ export declare const SearchUsersByEmailArgsSchema: z.ZodObject<{
100
52
  email: z.ZodString;
101
53
  client_id: z.ZodOptional<z.ZodNumber>;
102
54
  format_options: z.ZodOptional<z.ZodObject<{
103
- format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
104
- fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
55
+ format: z.ZodOptional<z.ZodEnum<{
56
+ compact: "compact";
57
+ standard: "standard";
58
+ detailed: "detailed";
59
+ }>>;
60
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
105
61
  omit_empty: z.ZodOptional<z.ZodBoolean>;
106
- }, "strip", z.ZodTypeAny, {
107
- format?: "compact" | "standard" | "detailed" | undefined;
108
- fields?: string[] | undefined;
109
- omit_empty?: boolean | undefined;
110
- }, {
111
- format?: "compact" | "standard" | "detailed" | undefined;
112
- fields?: string[] | undefined;
113
- omit_empty?: boolean | undefined;
114
- }>>;
115
- }, "strip", z.ZodTypeAny, {
116
- email: string;
117
- client_id?: number | undefined;
118
- format_options?: {
119
- format?: "compact" | "standard" | "detailed" | undefined;
120
- fields?: string[] | undefined;
121
- omit_empty?: boolean | undefined;
122
- } | undefined;
123
- }, {
124
- email: string;
125
- client_id?: number | undefined;
126
- format_options?: {
127
- format?: "compact" | "standard" | "detailed" | undefined;
128
- fields?: string[] | undefined;
129
- omit_empty?: boolean | undefined;
130
- } | undefined;
131
- }>;
62
+ }, z.core.$strip>>;
63
+ }, z.core.$strip>;
132
64
  /**
133
65
  * Create user schema
134
66
  */
@@ -138,40 +70,13 @@ export declare const CreateUserArgsSchema: z.ZodObject<{
138
70
  name: z.ZodString;
139
71
  emailaddress: z.ZodOptional<z.ZodString>;
140
72
  username: z.ZodOptional<z.ZodString>;
73
+ phonenumber: z.ZodOptional<z.ZodString>;
141
74
  inactive: z.ZodOptional<z.ZodBoolean>;
142
75
  user_customfields: z.ZodOptional<z.ZodArray<z.ZodObject<{
143
76
  id: z.ZodNumber;
144
77
  value: z.ZodString;
145
- }, "strip", z.ZodTypeAny, {
146
- value: string;
147
- id: number;
148
- }, {
149
- value: string;
150
- id: number;
151
- }>, "many">>;
152
- }, "strip", z.ZodTypeAny, {
153
- client_id: number;
154
- name: string;
155
- inactive?: boolean | undefined;
156
- emailaddress?: string | undefined;
157
- site_id?: number | undefined;
158
- username?: string | undefined;
159
- user_customfields?: {
160
- value: string;
161
- id: number;
162
- }[] | undefined;
163
- }, {
164
- client_id: number;
165
- name: string;
166
- inactive?: boolean | undefined;
167
- emailaddress?: string | undefined;
168
- site_id?: number | undefined;
169
- username?: string | undefined;
170
- user_customfields?: {
171
- value: string;
172
- id: number;
173
- }[] | undefined;
174
- }>;
78
+ }, z.core.$strip>>>;
79
+ }, z.core.$strip>;
175
80
  /**
176
81
  * Update user schema
177
82
  */
@@ -181,40 +86,13 @@ export declare const UpdateUserArgsSchema: z.ZodObject<{
181
86
  name: z.ZodOptional<z.ZodString>;
182
87
  emailaddress: z.ZodOptional<z.ZodString>;
183
88
  username: z.ZodOptional<z.ZodString>;
89
+ phonenumber: z.ZodOptional<z.ZodString>;
184
90
  inactive: z.ZodOptional<z.ZodBoolean>;
185
91
  user_customfields: z.ZodOptional<z.ZodArray<z.ZodObject<{
186
92
  id: z.ZodNumber;
187
93
  value: z.ZodString;
188
- }, "strip", z.ZodTypeAny, {
189
- value: string;
190
- id: number;
191
- }, {
192
- value: string;
193
- id: number;
194
- }>, "many">>;
195
- }, "strip", z.ZodTypeAny, {
196
- user_id: number;
197
- name?: string | undefined;
198
- inactive?: boolean | undefined;
199
- emailaddress?: string | undefined;
200
- site_id?: number | undefined;
201
- username?: string | undefined;
202
- user_customfields?: {
203
- value: string;
204
- id: number;
205
- }[] | undefined;
206
- }, {
207
- user_id: number;
208
- name?: string | undefined;
209
- inactive?: boolean | undefined;
210
- emailaddress?: string | undefined;
211
- site_id?: number | undefined;
212
- username?: string | undefined;
213
- user_customfields?: {
214
- value: string;
215
- id: number;
216
- }[] | undefined;
217
- }>;
94
+ }, z.core.$strip>>>;
95
+ }, z.core.$strip>;
218
96
  /**
219
97
  * Find user match schema (deduplication)
220
98
  */
@@ -223,50 +101,22 @@ export declare const FindUserMatchArgsSchema: z.ZodObject<{
223
101
  upn: z.ZodOptional<z.ZodString>;
224
102
  username: z.ZodOptional<z.ZodString>;
225
103
  client_id: z.ZodNumber;
226
- }, "strip", z.ZodTypeAny, {
227
- client_id: number;
228
- email?: string | undefined;
229
- username?: string | undefined;
230
- upn?: string | undefined;
231
- }, {
232
- client_id: number;
233
- email?: string | undefined;
234
- username?: string | undefined;
235
- upn?: string | undefined;
236
- }>;
104
+ }, z.core.$strip>;
237
105
  /**
238
106
  * Scan user duplicates schema
239
107
  */
240
108
  export declare const ScanUserDuplicatesArgsSchema: z.ZodObject<{
241
109
  client_id: z.ZodOptional<z.ZodNumber>;
242
110
  format_options: z.ZodOptional<z.ZodObject<{
243
- format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
244
- fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
111
+ format: z.ZodOptional<z.ZodEnum<{
112
+ compact: "compact";
113
+ standard: "standard";
114
+ detailed: "detailed";
115
+ }>>;
116
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
245
117
  omit_empty: z.ZodOptional<z.ZodBoolean>;
246
- }, "strip", z.ZodTypeAny, {
247
- format?: "compact" | "standard" | "detailed" | undefined;
248
- fields?: string[] | undefined;
249
- omit_empty?: boolean | undefined;
250
- }, {
251
- format?: "compact" | "standard" | "detailed" | undefined;
252
- fields?: string[] | undefined;
253
- omit_empty?: boolean | undefined;
254
- }>>;
255
- }, "strip", z.ZodTypeAny, {
256
- client_id?: number | undefined;
257
- format_options?: {
258
- format?: "compact" | "standard" | "detailed" | undefined;
259
- fields?: string[] | undefined;
260
- omit_empty?: boolean | undefined;
261
- } | undefined;
262
- }, {
263
- client_id?: number | undefined;
264
- format_options?: {
265
- format?: "compact" | "standard" | "detailed" | undefined;
266
- fields?: string[] | undefined;
267
- omit_empty?: boolean | undefined;
268
- } | undefined;
269
- }>;
118
+ }, z.core.$strip>>;
119
+ }, z.core.$strip>;
270
120
  /**
271
121
  * List users with optional filtering and token optimization
272
122
  * Uses 1-minute cache TTL (billing-critical data)
@@ -288,7 +138,10 @@ export declare function searchUsersByEmail(client: HaloPSAAPIClient, args: z.inf
288
138
  export declare function createUser(client: HaloPSAAPIClient, args: z.infer<typeof CreateUserArgsSchema>): Promise<string>;
289
139
  /**
290
140
  * Update an existing user
291
- * Invalidates user cache on success
141
+ * Performs a read-before-write merge: fetches the current record first and
142
+ * spreads it under the partial update, because HaloPSA's update is REPLACE
143
+ * (not PATCH) — any field omitted from the POST body gets cleared server-side.
144
+ * Invalidates user cache on success.
292
145
  */
293
146
  export declare function updateUser(client: HaloPSAAPIClient, args: z.infer<typeof UpdateUserArgsSchema>): Promise<string>;
294
147
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAavD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EASlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIvC,CAAC;AAMH;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CA+CjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAqFjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CAiHjB;AAMD,eAAO,MAAM,aAAa,EAAE,iBAK3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,iBAKzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAKpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAK5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAKpC,CAAC"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAavD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;iBAgB9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAI5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;iBAMvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAoB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAoB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;iBASlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;iBAIvC,CAAC;AAMH;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CA+CjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,CAiDjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAqFjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CAiHjB;AAMD,eAAO,MAAM,aAAa,EAAE,iBAK3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,iBAKzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAKpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAK5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAKpC,CAAC"}
@@ -65,6 +65,8 @@ export const CreateUserArgsSchema = z.object({
65
65
  .describe('Email address (PRIMARY deduplication field)'),
66
66
  username: z.string().optional()
67
67
  .describe('Windows username'),
68
+ phonenumber: z.string().optional()
69
+ .describe('Phone number (some HaloPSA tenants require this on create)'),
68
70
  inactive: z.boolean().optional()
69
71
  .describe('Inactive status (false=Active, counts for billing)'),
70
72
  user_customfields: z.array(z.object({
@@ -87,6 +89,8 @@ export const UpdateUserArgsSchema = z.object({
87
89
  .describe('Email address'),
88
90
  username: z.string().optional()
89
91
  .describe('Windows username'),
92
+ phonenumber: z.string().optional()
93
+ .describe('Phone number (some HaloPSA tenants require this on create)'),
90
94
  inactive: z.boolean().optional()
91
95
  .describe('Inactive status'),
92
96
  user_customfields: z.array(z.object({
@@ -223,13 +227,16 @@ export async function createUser(client, args) {
223
227
  if (args.username !== undefined) {
224
228
  userData.username = args.username;
225
229
  }
230
+ if (args.phonenumber !== undefined) {
231
+ userData.phonenumber = args.phonenumber;
232
+ }
226
233
  if (args.inactive !== undefined) {
227
234
  userData.inactive = args.inactive;
228
235
  }
229
236
  if (args.user_customfields !== undefined) {
230
237
  userData.user_customfields = args.user_customfields;
231
238
  }
232
- const response = await client.post('/Users', userData);
239
+ const response = await client.post('/Users', [userData]);
233
240
  // Invalidate user caches
234
241
  client.invalidateCache(`users:client_${args.client_id}*`);
235
242
  client.invalidateCache('users:client_all*');
@@ -237,7 +244,10 @@ export async function createUser(client, args) {
237
244
  }
238
245
  /**
239
246
  * Update an existing user
240
- * Invalidates user cache on success
247
+ * Performs a read-before-write merge: fetches the current record first and
248
+ * spreads it under the partial update, because HaloPSA's update is REPLACE
249
+ * (not PATCH) — any field omitted from the POST body gets cleared server-side.
250
+ * Invalidates user cache on success.
241
251
  */
242
252
  export async function updateUser(client, args) {
243
253
  const userData = {};
@@ -254,6 +264,9 @@ export async function updateUser(client, args) {
254
264
  if (args.username !== undefined) {
255
265
  userData.username = args.username;
256
266
  }
267
+ if (args.phonenumber !== undefined) {
268
+ userData.phonenumber = args.phonenumber;
269
+ }
257
270
  if (args.inactive !== undefined) {
258
271
  userData.inactive = args.inactive;
259
272
  }
@@ -266,8 +279,13 @@ export async function updateUser(client, args) {
266
279
  message: 'At least one field must be provided for update',
267
280
  }, null, 2);
268
281
  }
269
- // HaloPSA uses POST for updates
270
- const response = await client.post(`/Users/${args.user_id}`, userData);
282
+ // Fetch current record to preserve fields not being updated.
283
+ // HaloPSA update is REPLACE, not PATCH — omitted fields get cleared.
284
+ // Use uncached get so we don't echo back a stale copy of soon-to-be-overwritten data.
285
+ const existing = await client.get(`/Users/${args.user_id}`);
286
+ // HaloPSA uses POST to the collection endpoint for updates (id in body).
287
+ // Spread order: existing base, then partial update, then id last so it wins.
288
+ const response = await client.post('/Users', [{ ...existing, ...userData, id: args.user_id }]);
271
289
  // Invalidate user caches
272
290
  client.invalidateCache('users:*');
273
291
  return formatResponse(response, { format: 'detailed' });
@@ -308,7 +326,7 @@ export async function findUserMatch(client, args) {
308
326
  if (emailMatch) {
309
327
  return JSON.stringify({
310
328
  match: emailMatch,
311
- confidence: ConfidenceThresholds.USER_EMAIL_EXACT,
329
+ confidence: Math.round(ConfidenceThresholds.USER_EMAIL_EXACT * 100),
312
330
  matchField: 'email (exact)',
313
331
  action: 'Update',
314
332
  }, null, 2);
@@ -323,7 +341,7 @@ export async function findUserMatch(client, args) {
323
341
  if (upnMatch) {
324
342
  return JSON.stringify({
325
343
  match: upnMatch,
326
- confidence: ConfidenceThresholds.USER_UPN_MATCH,
344
+ confidence: Math.round(ConfidenceThresholds.USER_UPN_MATCH * 100),
327
345
  matchField: 'upn (Entra)',
328
346
  action: 'Update',
329
347
  }, null, 2);
@@ -335,7 +353,7 @@ export async function findUserMatch(client, args) {
335
353
  if (usernameMatch) {
336
354
  return JSON.stringify({
337
355
  match: usernameMatch,
338
- confidence: ConfidenceThresholds.USER_USERNAME_ONLY,
356
+ confidence: Math.round(ConfidenceThresholds.USER_USERNAME_ONLY * 100),
339
357
  matchField: 'username (no email match)',
340
358
  action: 'ManualReview',
341
359
  warning: 'Username match found but email does not match. Manual review required.',
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,4BAA4B,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,aAAa,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SAC/C,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACxC,QAAQ,CAAC,oCAAoC,CAAC;IACjD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,qCAAqC,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACpC,QAAQ,CAAC,wCAAwC,CAAC;IACrD,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACtB,QAAQ,CAAC,iBAAiB,CAAC;IAC9B,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;SACtB,QAAQ,CAAC,mDAAmD,CAAC;IAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACxB,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SACpB,QAAQ,CAAC,WAAW,CAAC;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;SACxC,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,4DAA4D,CAAC;IACzE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,oDAAoD,CAAC;IACjE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CAAC,CAAC,QAAQ,EAAE;SACX,QAAQ,CAAC,iCAAiC,CAAC;CAC/C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACtB,QAAQ,CAAC,2BAA2B,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,WAAW,CAAC;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;SACxC,QAAQ,CAAC,eAAe,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,4DAA4D,CAAC;IACzE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,iBAAiB,CAAC;IAC9B,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CAAC,CAAC,QAAQ,EAAE;SACX,QAAQ,CAAC,qBAAqB,CAAC;CACnC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,qCAAqC,CAAC;IAClD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACvB,QAAQ,CAAC,wDAAwD,CAAC;IACrE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,yCAAyC,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SACxB,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC;AAEH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAwB,EACxB,IAAyC;IAEzC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,yBAAyB;IACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAChD,CAAC;IAED,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,sCAAsC;IACtC,MAAM,QAAQ,GAAG,gBAAgB,IAAI,CAAC,SAAS,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;IAEzF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CACrC,QAAQ,EACR,MAAM,EACN;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,SAAS,EAAE,QAAQ;KACpB,CACF,CAAC;IAEF,OAAO,cAAc,CACnB,QAAQ,CAAC,KAAK,EACd,aAAa,EACb,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAwB,EACxB,IAAuC;IAEvC,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,UAAU,IAAI,CAAC,OAAO,EAAE,CACzB,CAAC;IAEF,OAAO,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAwB,EACxB,IAAkD;IAElD,MAAM,MAAM,GAA4B;QACtC,MAAM,EAAE,IAAI,CAAC,KAAK;QAClB,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;KACtB,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,gCAAgC;IAChC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,QAAQ,EACR,MAAM,CACP,CAAC;IAEF,gCAAgC;IAChC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CACxE,CAAC;IAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,wCAAwC;SAClD,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;QACrC,CAAC,CAAC,4CAA4C,IAAI,CAAC,KAAK,kCAAkC;QAC1F,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAChE,KAAK,EAAE,YAAY,CAAC,MAAM;QAC1B,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAwB,EACxB,IAA0C;IAE1C,MAAM,QAAQ,GAA4B;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;IAEF,sBAAsB;IACtB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACtD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,QAAQ,EACR,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,eAAe,CAAC,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IAC1D,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAE5C,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAwB,EACxB,IAA0C;IAE1C,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,iDAAiD;IACjD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,gDAAgD;SAC1D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,qEAAqE;IACrE,sFAAsF;IACtF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAc,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzE,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,QAAQ,EACR,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CACjD,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAElC,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAwB,EACxB,IAA6C;IAE7C,wCAAwC;IACxC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CACrC,QAAQ,EACR;QACE,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;KACtB,EACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,SAAS,EAAE,gBAAgB,IAAI,CAAC,SAAS,EAAE;KAC5C,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,WAAW;SACpB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CACzE,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,GAAG,GAAG,CAAC;gBACnE,UAAU,EAAE,eAAe;gBAC3B,MAAM,EAAE,QAAQ;aACjB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAC3C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CACxC,CAAC;YACF,OAAO,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,cAAc,GAAG,GAAG,CAAC;gBACjE,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE,QAAQ;aACjB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CACxE,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,kBAAkB,GAAG,GAAG,CAAC;gBACrE,UAAU,EAAE,2BAA2B;gBACvC,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,wEAAwE;aAClF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,WAAW;KACpB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAwB,EACxB,IAAkD;IAElD,MAAM,aAAa,GAAkB,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;KACtB,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CACrC,QAAQ,EACR,MAAM,EACN;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,kBAAkB;KAClF,CACF,CAAC;IAWF,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,kDAAkD;IAClD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,MAAM,EAAE,sCAAsC;gBAC1D,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,YAAY;oBACrB,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEzD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,eAAe,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,oDAAoD;YACpD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACxF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,yCAAyC;YAEjF,IAAI,cAAc,EAAE,CAAC;gBACnB,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,QAAQ;oBACpB,UAAU,EAAE,QAAQ,EAAE,oCAAoC;oBAC1D,YAAY,EAAE,KAAK,CAAC,MAAM;oBAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,YAAY;wBACrB,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;QAClC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QACpC,gBAAgB,EAAE,UAAU,CAAC,MAAM;QACnC,UAAU;KACX,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,sIAAsI;IACnJ,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+FAA+F;IAC5G,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,+BAA+B;IACrC,WAAW,EAAE,iGAAiG;IAC9G,MAAM,EAAE,4BAA4B;IACpC,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,6GAA6G;IAC1H,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,0DAA0D;IACvE,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,gIAAgI;IAC7I,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,aAAa;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,oFAAoF;IACjG,MAAM,EAAE,4BAA4B;IACpC,OAAO,EAAE,kBAAkB;CAC5B,CAAC"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * TypeScript type definitions for HaloPSA ticket-domain objects.
3
+ *
4
+ * Shapes here are derived from the Phase 0 probe results captured during
5
+ * the Tier 1 ticket-tools rollout. Optional fields are explicitly marked
6
+ * because Halo omits them from list responses and only populates them on
7
+ * /Tickets/{id}?includedetails=true.
8
+ *
9
+ * `source` is intentionally typed as `number` (not a string-literal union)
10
+ * because Halo's "API" enum value is a tenant-configurable integer that
11
+ * differs across installs — pinning it would make the type tenant-specific.
12
+ */
13
+ import type { HaloPSACustomField } from './halopsa.js';
14
+ /**
15
+ * Ticket — a Halo work item (incident, request, change, etc.).
16
+ *
17
+ * `details_html` is the sanitized HTML body of the ticket and can be
18
+ * 50KB+. Consumers must NOT include it in compact responses.
19
+ */
20
+ export interface HaloPSATicket {
21
+ id: number;
22
+ summary: string;
23
+ details_html?: string;
24
+ tickettype_id: number;
25
+ tickettype_name?: string;
26
+ status_id: number;
27
+ status_name?: string;
28
+ priority_id?: number;
29
+ priority_name?: string;
30
+ category_1?: string;
31
+ category_2?: string;
32
+ category_3?: string;
33
+ category_4?: string;
34
+ client_id: number;
35
+ client_name?: string;
36
+ site_id?: number;
37
+ site_name?: string;
38
+ user_id?: number;
39
+ user_name?: string;
40
+ agent_id?: number;
41
+ agent_name?: string;
42
+ team_id?: number;
43
+ team?: string;
44
+ source?: number;
45
+ dateoccurred?: string;
46
+ lastactiondate?: string;
47
+ deadlinedate?: string;
48
+ customfields?: HaloPSACustomField[];
49
+ sla?: HaloPSATicketSla;
50
+ }
51
+ /**
52
+ * SLA snapshot embedded on a ticket detail response.
53
+ */
54
+ export interface HaloPSATicketSla {
55
+ id?: number;
56
+ name?: string;
57
+ responseremaining?: number;
58
+ resolveremaining?: number;
59
+ isbreach?: boolean;
60
+ }
61
+ /**
62
+ * Ticket Action — a journal entry on a ticket (note, email reply, status
63
+ * change, etc.). Created via POST /api/Actions with an array body.
64
+ */
65
+ export interface HaloPSATicketAction {
66
+ id: number;
67
+ ticket_id: number;
68
+ who?: string;
69
+ who_agentid?: number;
70
+ who_userid?: number;
71
+ datetime: string;
72
+ outcome?: string;
73
+ outcome_id?: number;
74
+ note?: string;
75
+ note_html?: string;
76
+ email_reply?: boolean;
77
+ hiddenfromuser?: boolean;
78
+ }
79
+ /**
80
+ * Ticket Type — reference data describing the kind of ticket
81
+ * (Incident, Service Request, Change, Project, etc.).
82
+ */
83
+ export interface HaloPSATicketType {
84
+ id: number;
85
+ name: string;
86
+ use?: string;
87
+ default_priority_id?: number;
88
+ default_status_id?: number;
89
+ }
90
+ /**
91
+ * Ticket Status — workflow state. The `type` field discriminates state
92
+ * categories. Per the Tier 1 Phase 0 probe against the Wilner Tech
93
+ * tenant, `type` is a numeric enum (e.g., `0` = open, with closed states
94
+ * carrying a different value) and not a string. Older Halo docs describe
95
+ * it as a string discriminator (`'open' | 'closed' | ...`) — consumers
96
+ * accept both forms via `closeTicketTool`'s multi-strategy resolver.
97
+ */
98
+ export interface HaloPSATicketStatus {
99
+ id: number;
100
+ name: string;
101
+ type?: string | number;
102
+ complete?: boolean;
103
+ is_closed?: boolean;
104
+ sequence?: number;
105
+ }
106
+ /**
107
+ * Ticket Priority — raw shape returned by GET /Priority.
108
+ *
109
+ * Empirically verified (2026-05-11): `id` is a GUID string (per-SLA record
110
+ * identifier), NOT the integer used in Faults.priority_id. The integer field
111
+ * is `priorityid` (1-4). There are 12 records = 3 SLAs x 4 priority levels,
112
+ * so names like "Critical" appear three times — once per SLA assignment.
113
+ */
114
+ export interface HaloPSATicketPriority {
115
+ /** GUID string — uniquely identifies this priority+SLA combination. */
116
+ id: string;
117
+ /** Integer 1-4 — the value that maps to Faults.priority_id on ticket creates. */
118
+ priorityid: number;
119
+ name: string;
120
+ slaid?: number;
121
+ fixtime?: number;
122
+ fixunits?: string;
123
+ responsetime?: number;
124
+ responseunits?: string;
125
+ colour?: string;
126
+ firstresponsetime?: number;
127
+ firstresponseunits?: string;
128
+ }
129
+ /**
130
+ * Normalized priority shape returned by list_halopsa_ticket_priorities.
131
+ * The raw `id` GUID is renamed to `sla_priority_id` to avoid caller confusion;
132
+ * the integer `priorityid` is promoted to `id` (the value for Faults.priority_id).
133
+ */
134
+ export interface HaloPSATicketPriorityNormalized {
135
+ /** Integer priority value — pass this as priority_id on ticket creates. */
136
+ id: number;
137
+ name: string;
138
+ /** GUID that uniquely identifies this priority+SLA combination. */
139
+ sla_priority_id: string;
140
+ slaid?: number;
141
+ fixtime?: number;
142
+ fixunits?: string;
143
+ responsetime?: number;
144
+ responseunits?: string;
145
+ colour?: string;
146
+ firstresponsetime?: number;
147
+ firstresponseunits?: string;
148
+ }
149
+ /**
150
+ * Ticket Category — used for category_1..category_4 fields on tickets.
151
+ * Halo's `/Category` endpoint returns a flat list keyed by category level.
152
+ */
153
+ export interface HaloPSATicketCategory {
154
+ id: number;
155
+ value: string;
156
+ type_id?: number;
157
+ parent_id?: number;
158
+ }
159
+ /**
160
+ * Wrapped list responses from Halo. Endpoints return either bare arrays
161
+ * or `{ <plural>: [...], record_count }` depending on the endpoint and
162
+ * tenant configuration — call sites must handle both shapes.
163
+ */
164
+ export interface HaloPSATicketListResponse {
165
+ tickets: HaloPSATicket[];
166
+ record_count: number;
167
+ page_count?: number;
168
+ }
169
+ export interface HaloPSATicketActionListResponse {
170
+ actions: HaloPSATicketAction[];
171
+ record_count: number;
172
+ }
173
+ export interface HaloPSATicketTypeListResponse {
174
+ tickettypes: HaloPSATicketType[];
175
+ record_count: number;
176
+ }
177
+ export interface HaloPSATicketStatusListResponse {
178
+ statuses: HaloPSATicketStatus[];
179
+ record_count: number;
180
+ }
181
+ export interface HaloPSATicketPriorityListResponse {
182
+ priorities: HaloPSATicketPriority[];
183
+ record_count: number;
184
+ }
185
+ export interface HaloPSATicketPriorityNormalizedListResponse {
186
+ priorities: HaloPSATicketPriorityNormalized[];
187
+ record_count: number;
188
+ }
189
+ export interface HaloPSATicketCategoryListResponse {
190
+ categories: HaloPSATicketCategory[];
191
+ record_count: number;
192
+ }
193
+ //# sourceMappingURL=tickets.d.ts.map