@outseta/react 0.4.30 → 0.4.32

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/index.js CHANGED
@@ -3029,6 +3029,27 @@ function useCaseGetCase(caseUid, options) {
3029
3029
  query.queryKey = queryOptions.queryKey;
3030
3030
  return query;
3031
3031
  }
3032
+ var caseUpdateCase = (caseUid, caseUpdateCaseBody, options) => {
3033
+ return customFetch2({
3034
+ url: `/api/v1/support/cases/${caseUid}`,
3035
+ method: "PUT",
3036
+ headers: { "Content-Type": "application/json" },
3037
+ data: caseUpdateCaseBody
3038
+ }, options);
3039
+ };
3040
+ var getCaseUpdateCaseMutationOptions = (options) => {
3041
+ const mutationKey = ["caseUpdateCase"];
3042
+ const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined };
3043
+ const mutationFn = (props) => {
3044
+ const { caseUid, data } = props ?? {};
3045
+ return caseUpdateCase(caseUid, data, requestOptions);
3046
+ };
3047
+ return { mutationFn, ...mutationOptions };
3048
+ };
3049
+ var useCaseUpdateCase = (options) => {
3050
+ const mutationOptions = getCaseUpdateCaseMutationOptions(options);
3051
+ return useMutation(mutationOptions);
3052
+ };
3032
3053
  var caseAddReply = (caseUid, options, signal) => {
3033
3054
  return customFetch2({
3034
3055
  url: `/api/v1/support/cases/${caseUid}/replies`,
@@ -3710,6 +3731,11 @@ var DealWebhookEntityOwnerOAuthIntegrationStatus = {
3710
3731
  None: 0,
3711
3732
  Gmail: 1
3712
3733
  };
3734
+ var TaskWebhookEventDataStatus = {
3735
+ Pending: 1,
3736
+ InProgress: 2,
3737
+ Done: 3
3738
+ };
3713
3739
  var PlanWebhookEntityAccountRegistrationMode = {
3714
3740
  Individual: 1,
3715
3741
  Team: 2
@@ -3810,6 +3836,7 @@ export {
3810
3836
  SupportEmbed,
3811
3837
  TagColor,
3812
3838
  TaskStatus,
3839
+ TaskWebhookEventDataStatus,
3813
3840
  TeamRole,
3814
3841
  UpgradeCta,
3815
3842
  accountAddAccount,
@@ -3842,6 +3869,7 @@ export {
3842
3869
  caseAddReply,
3843
3870
  caseGetAllCases,
3844
3871
  caseGetCase,
3872
+ caseUpdateCase,
3845
3873
  categoryGetAllCategories,
3846
3874
  createClient,
3847
3875
  dealAddDeal,
@@ -3913,6 +3941,7 @@ export {
3913
3941
  getCaseGetAllCasesQueryOptions,
3914
3942
  getCaseGetCaseQueryKey,
3915
3943
  getCaseGetCaseQueryOptions,
3944
+ getCaseUpdateCaseMutationOptions,
3916
3945
  getCategoryGetAllCategoriesQueryKey,
3917
3946
  getCategoryGetAllCategoriesQueryOptions,
3918
3947
  getDealAddDealMutationOptions,
@@ -4099,6 +4128,7 @@ export {
4099
4128
  useCaseAddReply,
4100
4129
  useCaseGetAllCases,
4101
4130
  useCaseGetCase,
4131
+ useCaseUpdateCase,
4102
4132
  useCategoryGetAllCategories,
4103
4133
  useDealAddDeal,
4104
4134
  useDealDeleteDeal,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outseta/react",
3
- "version": "0.4.30",
3
+ "version": "0.4.32",
4
4
  "description": "React hooks and components for the Outseta API",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -18,7 +18,7 @@
18
18
  }
19
19
  },
20
20
  "dependencies": {
21
- "@outseta/api-client": "0.3.36"
21
+ "@outseta/api-client": "0.3.38"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": "^18.0.0 || ^19.0.0"
@@ -1,10 +1,14 @@
1
1
  // @ts-nocheck
2
2
  import {
3
+ useMutation,
3
4
  useQuery
4
5
  } from '../../query';
5
6
  import type {
7
+ MutationFunction,
6
8
  QueryFunction,
7
9
  QueryKey,
10
+ UseMutationOptions,
11
+ UseMutationResult,
8
12
  UseQueryOptions,
9
13
  UseQueryResult
10
14
  } from '../../query';
@@ -12,17 +16,398 @@ import type {
12
16
  import type {
13
17
  Definition,
14
18
  DefinitionGetAllDefinitions200,
15
- DefinitionGetAllDefinitionsParams
19
+ DefinitionGetAllDefinitionsParams,
20
+ Tag,
21
+ TagAddTagBody,
22
+ TagGetAllTags200,
23
+ TagGetAllTagsParams,
24
+ TagUpdateTagBody
16
25
  } from '../outsetaAPI.schemas';
17
26
 
18
27
  import { customFetch } from '../../mutator';
19
28
 
29
+ // https://stackoverflow.com/questions/49579094/typescript-conditional-types-filter-out-readonly-properties-pick-only-requir/49579497#49579497
30
+ type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <
31
+ T,
32
+ >() => T extends Y ? 1 : 2
33
+ ? A
34
+ : B;
35
+
36
+ type WritableKeys<T> = {
37
+ [P in keyof T]-?: IfEquals<
38
+ { [Q in P]: T[P] },
39
+ { -readonly [Q in P]: T[P] },
40
+ P
41
+ >;
42
+ }[keyof T];
43
+
44
+ type UnionToIntersection<U> =
45
+ (U extends any ? (k: U)=>void : never) extends ((k: infer I)=>void) ? I : never;
46
+ type DistributeReadOnlyOverUnions<T> = T extends any ? NonReadonly<T> : never;
47
+
48
+ type Writable<T> = Pick<T, WritableKeys<T>>;
49
+ type NonReadonly<T> = [T] extends [UnionToIntersection<T>] ? {
50
+ [P in keyof Writable<T>]: T[P] extends object
51
+ ? NonReadonly<NonNullable<T[P]>>
52
+ : T[P];
53
+ } : DistributeReadOnlyOverUnions<T>;
54
+
55
+
20
56
 
21
57
  type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
22
58
 
23
59
 
24
60
 
25
61
  /**
62
+ * Each tag applies to a single entity type. Pass entityType=Case to retrieve the tags
63
+ that can be put on support tickets.
64
+
65
+ How a tag goes onto a record depends on the entity type. A support ticket holds its
66
+ tags in its own CaseTags collection, so you add and remove ticket tags with
67
+ PUT /support/cases/{caseUid}. Other entity types store their tags differently. This
68
+ documentation covers ticket tags only.
69
+
70
+ Name is unique within an entity type. SystemName and SystemDescription identify a
71
+ built-in tag (for example Priority.Urgent) and are set by Outseta.
72
+ * @summary Retrieve all tags.
73
+ */
74
+ export const tagGetAllTags = (
75
+ params?: TagGetAllTagsParams,
76
+ options?: SecondParameter<typeof customFetch>,signal?: AbortSignal
77
+ ) => {
78
+
79
+
80
+ return customFetch<TagGetAllTags200>(
81
+ {url: `/api/v1/attribute/tags`, method: 'GET',
82
+ params, signal
83
+ },
84
+ options);
85
+ }
86
+
87
+
88
+
89
+
90
+ export const getTagGetAllTagsQueryKey = (params?: TagGetAllTagsParams,) => {
91
+ return [
92
+ `/api/v1/attribute/tags`, ...(params ? [params]: [])
93
+ ] as const;
94
+ }
95
+
96
+
97
+ export const getTagGetAllTagsQueryOptions = <TData = Awaited<ReturnType<typeof tagGetAllTags>>, TError = void>(params?: TagGetAllTagsParams, options?: { query?:UseQueryOptions<Awaited<ReturnType<typeof tagGetAllTags>>, TError, TData>, request?: SecondParameter<typeof customFetch>}
98
+ ) => {
99
+
100
+ const {query: queryOptions, request: requestOptions} = options ?? {};
101
+
102
+ const queryKey = queryOptions?.queryKey ?? getTagGetAllTagsQueryKey(params);
103
+
104
+
105
+
106
+ const queryFn: QueryFunction<Awaited<ReturnType<typeof tagGetAllTags>>> = ({ signal }) => tagGetAllTags(params, requestOptions, signal);
107
+
108
+
109
+
110
+
111
+
112
+ return { queryKey, queryFn, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof tagGetAllTags>>, TError, TData> & { queryKey: QueryKey }
113
+ }
114
+
115
+ export type TagGetAllTagsQueryResult = NonNullable<Awaited<ReturnType<typeof tagGetAllTags>>>
116
+ export type TagGetAllTagsQueryError = void
117
+
118
+
119
+ /**
120
+ * @summary Retrieve all tags.
121
+ */
122
+
123
+ export function useTagGetAllTags<TData = Awaited<ReturnType<typeof tagGetAllTags>>, TError = void>(
124
+ params?: TagGetAllTagsParams, options?: { query?:UseQueryOptions<Awaited<ReturnType<typeof tagGetAllTags>>, TError, TData>, request?: SecondParameter<typeof customFetch>}
125
+
126
+ ): UseQueryResult<TData, TError> & { queryKey: QueryKey } {
127
+
128
+ const queryOptions = getTagGetAllTagsQueryOptions(params,options)
129
+
130
+ const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & { queryKey: QueryKey };
131
+
132
+ query.queryKey = queryOptions.queryKey ;
133
+
134
+ return query;
135
+ }
136
+
137
+
138
+
139
+
140
+ /**
141
+ * Name and EntityType are required. Use EntityType 4 (Case) for a tag that goes on
142
+ support tickets. TagColor sets the color the tag shows in.
143
+
144
+ Name must be unique within an entity type. If the name already exists for that
145
+ entity type, the existing tag is returned instead of a duplicate, and its color is
146
+ updated when a different TagColor is supplied. SystemName and SystemDescription are
147
+ set by Outseta and are ignored here.
148
+ * @summary Create a tag.
149
+ */
150
+ export const tagAddTag = (
151
+ tagAddTagBody: NonReadonly<TagAddTagBody>,
152
+ options?: SecondParameter<typeof customFetch>,signal?: AbortSignal
153
+ ) => {
154
+
155
+
156
+ return customFetch<Tag>(
157
+ {url: `/api/v1/attribute/tags`, method: 'POST',
158
+ headers: {'Content-Type': 'application/json', },
159
+ data: tagAddTagBody, signal
160
+ },
161
+ options);
162
+ }
163
+
164
+
165
+
166
+ export const getTagAddTagMutationOptions = <TError = void,
167
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof tagAddTag>>, TError,{data: NonReadonly<TagAddTagBody>}, TContext>, request?: SecondParameter<typeof customFetch>}
168
+ ): UseMutationOptions<Awaited<ReturnType<typeof tagAddTag>>, TError,{data: NonReadonly<TagAddTagBody>}, TContext> => {
169
+
170
+ const mutationKey = ['tagAddTag'];
171
+ const {mutation: mutationOptions, request: requestOptions} = options ?
172
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
173
+ options
174
+ : {...options, mutation: {...options.mutation, mutationKey}}
175
+ : {mutation: { mutationKey, }, request: undefined};
176
+
177
+
178
+
179
+
180
+ const mutationFn: MutationFunction<Awaited<ReturnType<typeof tagAddTag>>, {data: NonReadonly<TagAddTagBody>}> = (props) => {
181
+ const {data} = props ?? {};
182
+
183
+ return tagAddTag(data,requestOptions)
184
+ }
185
+
186
+
187
+
188
+
189
+ return { mutationFn, ...mutationOptions }}
190
+
191
+ export type TagAddTagMutationResult = NonNullable<Awaited<ReturnType<typeof tagAddTag>>>
192
+ export type TagAddTagMutationBody = NonReadonly<TagAddTagBody>
193
+ export type TagAddTagMutationError = void
194
+
195
+ /**
196
+ * @summary Create a tag.
197
+ */
198
+ export const useTagAddTag = <TError = void,
199
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof tagAddTag>>, TError,{data: NonReadonly<TagAddTagBody>}, TContext>, request?: SecondParameter<typeof customFetch>}
200
+ ): UseMutationResult<
201
+ Awaited<ReturnType<typeof tagAddTag>>,
202
+ TError,
203
+ {data: NonReadonly<TagAddTagBody>},
204
+ TContext
205
+ > => {
206
+
207
+ const mutationOptions = getTagAddTagMutationOptions(options);
208
+
209
+ return useMutation(mutationOptions);
210
+ }
211
+ /**
212
+ * @summary Retrieve a tag.
213
+ */
214
+ export const tagGetTag = (
215
+ tagUid: string | null,
216
+ options?: SecondParameter<typeof customFetch>,signal?: AbortSignal
217
+ ) => {
218
+
219
+
220
+ return customFetch<Tag>(
221
+ {url: `/api/v1/attribute/tags/${tagUid}`, method: 'GET', signal
222
+ },
223
+ options);
224
+ }
225
+
226
+
227
+
228
+
229
+ export const getTagGetTagQueryKey = (tagUid?: string | null,) => {
230
+ return [
231
+ `/api/v1/attribute/tags/${tagUid}`
232
+ ] as const;
233
+ }
234
+
235
+
236
+ export const getTagGetTagQueryOptions = <TData = Awaited<ReturnType<typeof tagGetTag>>, TError = void>(tagUid: string | null, options?: { query?:UseQueryOptions<Awaited<ReturnType<typeof tagGetTag>>, TError, TData>, request?: SecondParameter<typeof customFetch>}
237
+ ) => {
238
+
239
+ const {query: queryOptions, request: requestOptions} = options ?? {};
240
+
241
+ const queryKey = queryOptions?.queryKey ?? getTagGetTagQueryKey(tagUid);
242
+
243
+
244
+
245
+ const queryFn: QueryFunction<Awaited<ReturnType<typeof tagGetTag>>> = ({ signal }) => tagGetTag(tagUid, requestOptions, signal);
246
+
247
+
248
+
249
+
250
+
251
+ return { queryKey, queryFn, enabled: !!(tagUid), ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof tagGetTag>>, TError, TData> & { queryKey: QueryKey }
252
+ }
253
+
254
+ export type TagGetTagQueryResult = NonNullable<Awaited<ReturnType<typeof tagGetTag>>>
255
+ export type TagGetTagQueryError = void
256
+
257
+
258
+ /**
259
+ * @summary Retrieve a tag.
260
+ */
261
+
262
+ export function useTagGetTag<TData = Awaited<ReturnType<typeof tagGetTag>>, TError = void>(
263
+ tagUid: string | null, options?: { query?:UseQueryOptions<Awaited<ReturnType<typeof tagGetTag>>, TError, TData>, request?: SecondParameter<typeof customFetch>}
264
+
265
+ ): UseQueryResult<TData, TError> & { queryKey: QueryKey } {
266
+
267
+ const queryOptions = getTagGetTagQueryOptions(tagUid,options)
268
+
269
+ const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & { queryKey: QueryKey };
270
+
271
+ query.queryKey = queryOptions.queryKey ;
272
+
273
+ return query;
274
+ }
275
+
276
+
277
+
278
+
279
+ /**
280
+ * Use this to rename a tag or to change its color. EntityType cannot be changed after
281
+ the tag is created. Name must stay unique within the entity type. SystemName and
282
+ SystemDescription are set by Outseta and cannot be changed.
283
+ * @summary Update a tag.
284
+ */
285
+ export const tagUpdateTag = (
286
+ tagUid: string | null,
287
+ tagUpdateTagBody: NonReadonly<TagUpdateTagBody>,
288
+ options?: SecondParameter<typeof customFetch>,) => {
289
+
290
+
291
+ return customFetch<Tag>(
292
+ {url: `/api/v1/attribute/tags/${tagUid}`, method: 'PUT',
293
+ headers: {'Content-Type': 'application/json', },
294
+ data: tagUpdateTagBody
295
+ },
296
+ options);
297
+ }
298
+
299
+
300
+
301
+ export const getTagUpdateTagMutationOptions = <TError = void,
302
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof tagUpdateTag>>, TError,{tagUid: string | null;data: NonReadonly<TagUpdateTagBody>}, TContext>, request?: SecondParameter<typeof customFetch>}
303
+ ): UseMutationOptions<Awaited<ReturnType<typeof tagUpdateTag>>, TError,{tagUid: string | null;data: NonReadonly<TagUpdateTagBody>}, TContext> => {
304
+
305
+ const mutationKey = ['tagUpdateTag'];
306
+ const {mutation: mutationOptions, request: requestOptions} = options ?
307
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
308
+ options
309
+ : {...options, mutation: {...options.mutation, mutationKey}}
310
+ : {mutation: { mutationKey, }, request: undefined};
311
+
312
+
313
+
314
+
315
+ const mutationFn: MutationFunction<Awaited<ReturnType<typeof tagUpdateTag>>, {tagUid: string | null;data: NonReadonly<TagUpdateTagBody>}> = (props) => {
316
+ const {tagUid,data} = props ?? {};
317
+
318
+ return tagUpdateTag(tagUid,data,requestOptions)
319
+ }
320
+
321
+
322
+
323
+
324
+ return { mutationFn, ...mutationOptions }}
325
+
326
+ export type TagUpdateTagMutationResult = NonNullable<Awaited<ReturnType<typeof tagUpdateTag>>>
327
+ export type TagUpdateTagMutationBody = NonReadonly<TagUpdateTagBody>
328
+ export type TagUpdateTagMutationError = void
329
+
330
+ /**
331
+ * @summary Update a tag.
332
+ */
333
+ export const useTagUpdateTag = <TError = void,
334
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof tagUpdateTag>>, TError,{tagUid: string | null;data: NonReadonly<TagUpdateTagBody>}, TContext>, request?: SecondParameter<typeof customFetch>}
335
+ ): UseMutationResult<
336
+ Awaited<ReturnType<typeof tagUpdateTag>>,
337
+ TError,
338
+ {tagUid: string | null;data: NonReadonly<TagUpdateTagBody>},
339
+ TContext
340
+ > => {
341
+
342
+ const mutationOptions = getTagUpdateTagMutationOptions(options);
343
+
344
+ return useMutation(mutationOptions);
345
+ }
346
+ /**
347
+ * The tag is also taken off every record that carries it. For a Case tag, it is
348
+ removed from all support tickets that have it.
349
+ * @summary Delete a tag.
350
+ */
351
+ export const tagDeleteTag = (
352
+ tagUid: string | null,
353
+ options?: SecondParameter<typeof customFetch>,) => {
354
+
355
+
356
+ return customFetch<Blob>(
357
+ {url: `/api/v1/attribute/tags/${tagUid}`, method: 'DELETE',
358
+ responseType: 'blob'
359
+ },
360
+ options);
361
+ }
362
+
363
+
364
+
365
+ export const getTagDeleteTagMutationOptions = <TError = void,
366
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof tagDeleteTag>>, TError,{tagUid: string | null}, TContext>, request?: SecondParameter<typeof customFetch>}
367
+ ): UseMutationOptions<Awaited<ReturnType<typeof tagDeleteTag>>, TError,{tagUid: string | null}, TContext> => {
368
+
369
+ const mutationKey = ['tagDeleteTag'];
370
+ const {mutation: mutationOptions, request: requestOptions} = options ?
371
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
372
+ options
373
+ : {...options, mutation: {...options.mutation, mutationKey}}
374
+ : {mutation: { mutationKey, }, request: undefined};
375
+
376
+
377
+
378
+
379
+ const mutationFn: MutationFunction<Awaited<ReturnType<typeof tagDeleteTag>>, {tagUid: string | null}> = (props) => {
380
+ const {tagUid} = props ?? {};
381
+
382
+ return tagDeleteTag(tagUid,requestOptions)
383
+ }
384
+
385
+
386
+
387
+
388
+ return { mutationFn, ...mutationOptions }}
389
+
390
+ export type TagDeleteTagMutationResult = NonNullable<Awaited<ReturnType<typeof tagDeleteTag>>>
391
+
392
+ export type TagDeleteTagMutationError = void
393
+
394
+ /**
395
+ * @summary Delete a tag.
396
+ */
397
+ export const useTagDeleteTag = <TError = void,
398
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof tagDeleteTag>>, TError,{tagUid: string | null}, TContext>, request?: SecondParameter<typeof customFetch>}
399
+ ): UseMutationResult<
400
+ Awaited<ReturnType<typeof tagDeleteTag>>,
401
+ TError,
402
+ {tagUid: string | null},
403
+ TContext
404
+ > => {
405
+
406
+ const mutationOptions = getTagDeleteTagMutationOptions(options);
407
+
408
+ return useMutation(mutationOptions);
409
+ }
410
+ /**
26
411
  * entityType is the name of an EntityType enum value, for example: Account, Person,
27
412
  Deal. Definitions describe the labels, system names, and control types of
28
413
  the custom attributes that have been added to that entity.
@@ -3173,19 +3173,12 @@ export const SupportCaseHistoryType = {
3173
3173
  ContactChange: 8,
3174
3174
  } as const;
3175
3175
 
3176
- /**
3177
- * @nullable
3178
- */
3179
- export type CaseTagAllOfCase = Case | null;
3180
-
3181
3176
  /**
3182
3177
  * @nullable
3183
3178
  */
3184
3179
  export type CaseTagAllOfTag = Tag | null;
3185
3180
 
3186
3181
  export type CaseTagAllOf = {
3187
- /** @nullable */
3188
- Case?: CaseTagAllOfCase;
3189
3182
  /** @nullable */
3190
3183
  Tag?: CaseTagAllOfTag;
3191
3184
  };
@@ -8758,6 +8751,66 @@ export type DealDeletedWebhookPayload = DealWebhookEntity;
8758
8751
 
8759
8752
  export type DealDueDateWebhookPayload = DealWebhookEntity;
8760
8753
 
8754
+ /**
8755
+ * `1` - Pending, `2` - InProgress, `3` - Done
8756
+ */
8757
+ export type TaskWebhookEventDataStatus = typeof TaskWebhookEventDataStatus[keyof typeof TaskWebhookEventDataStatus];
8758
+
8759
+
8760
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
8761
+ export const TaskWebhookEventDataStatus = {
8762
+ Pending: 1,
8763
+ InProgress: 2,
8764
+ Done: 3,
8765
+ } as const;
8766
+
8767
+ export interface TaskWebhookEventData {
8768
+ /**
8769
+ * @maxLength 10
8770
+ * @nullable
8771
+ */
8772
+ Uid?: string | null;
8773
+ /** @nullable */
8774
+ _objectType?: string | null;
8775
+ /** @minLength 1 */
8776
+ Created: string;
8777
+ /** @minLength 1 */
8778
+ Updated: string;
8779
+ /**
8780
+ * @maxLength 250
8781
+ * @nullable
8782
+ */
8783
+ Title?: string | null;
8784
+ /** @nullable */
8785
+ DueDate?: string | null;
8786
+ /**
8787
+ * @maxLength 5000
8788
+ * @nullable
8789
+ */
8790
+ Notes?: string | null;
8791
+ /** `1` - Pending, `2` - InProgress, `3` - Done */
8792
+ Status?: TaskWebhookEventDataStatus;
8793
+ CreatedDateTime?: string;
8794
+ /** @nullable */
8795
+ CompletedDateTime?: string | null;
8796
+ }
8797
+
8798
+ export type TaskCreatedWebhookPayloadAllOf = DealWebhookEntity | PersonWebhookEntity | AccountWebhookEntity;
8799
+
8800
+ export type TaskCreatedWebhookPayloadAllOfTwo = {
8801
+ ActivityEventData?: TaskWebhookEventData;
8802
+ };
8803
+
8804
+ export type TaskCreatedWebhookPayload = TaskCreatedWebhookPayloadAllOf & TaskCreatedWebhookPayloadAllOfTwo;
8805
+
8806
+ export type TaskUpdatedWebhookPayloadAllOf = DealWebhookEntity | PersonWebhookEntity | AccountWebhookEntity;
8807
+
8808
+ export type TaskUpdatedWebhookPayloadAllOfTwo = {
8809
+ ActivityEventData?: TaskWebhookEventData;
8810
+ };
8811
+
8812
+ export type TaskUpdatedWebhookPayload = TaskUpdatedWebhookPayloadAllOf & TaskUpdatedWebhookPayloadAllOfTwo;
8813
+
8761
8814
  /**
8762
8815
  * @nullable
8763
8816
  */
@@ -9146,6 +9199,37 @@ export type LimitParameter = number;
9146
9199
  */
9147
9200
  export type OffsetParameter = number;
9148
9201
 
9202
+ export type TagGetAllTagsParams = {
9203
+ /**
9204
+ * The entity type whose tags to retrieve, as the name or the numeric value (for example Case or 4)
9205
+ * @nullable
9206
+ */
9207
+ entityType?: string | null;
9208
+ /**
9209
+ * Requested page size. The server caps it at 100, or 25 when requested fields expand child objects or require additional queries; metadata.limit reports the applied value. Use offset=1 for the second page.
9210
+ */
9211
+ limit?: LimitParameter;
9212
+ /**
9213
+ * Zero-based page number, not a record offset. With limit=50, the second page is offset=1; offset=50 is page index 50 (records 2501-2550).
9214
+ */
9215
+ offset?: OffsetParameter;
9216
+ };
9217
+
9218
+ export type TagGetAllTags200 = {
9219
+ metadata?: CollectionMetadata;
9220
+ items?: Tag[];
9221
+ };
9222
+
9223
+ /**
9224
+ * @nullable
9225
+ */
9226
+ export type TagAddTagBody = Tag | null;
9227
+
9228
+ /**
9229
+ * @nullable
9230
+ */
9231
+ export type TagUpdateTagBody = Tag | null;
9232
+
9149
9233
  export type DefinitionGetAllDefinitionsParams = {
9150
9234
  /**
9151
9235
  * Requested page size. The server caps it at 100, or 25 when requested fields expand child objects or require additional queries; metadata.limit reports the applied value. Use offset=1 for the second page.
@@ -9269,6 +9353,11 @@ sendautoresponder?: string | null;
9269
9353
  */
9270
9354
  export type CaseAddCaseBody = Case | null;
9271
9355
 
9356
+ /**
9357
+ * @nullable
9358
+ */
9359
+ export type CaseUpdateCaseBody = Case | null;
9360
+
9272
9361
  export type ArticleGetAllArticlesParams = {
9273
9362
  /**
9274
9363
  * Matches on title or body of the article
@@ -24,6 +24,7 @@ import type {
24
24
  CaseGetAllCases200,
25
25
  CaseGetAllCasesParams,
26
26
  CaseHistory,
27
+ CaseUpdateCaseBody,
27
28
  CategoryGetAllCategories200,
28
29
  CategoryGetAllCategoriesParams
29
30
  } from '../outsetaAPI.schemas';
@@ -269,6 +270,88 @@ export function useCaseGetCase<TData = Awaited<ReturnType<typeof caseGetCase>>,
269
270
 
270
271
 
271
272
  /**
273
+ * The Uid in the URL identifies the ticket, and a Uid in the request body is ignored.
274
+ Any property that the body does not contain keeps its current value, so a request
275
+ can send only the properties that change.
276
+
277
+ Tags are managed through the CaseTags collection. Send the full set of tags that
278
+ the ticket must end with:
279
+
280
+ - To keep a tag, include its entry with the CaseTag Uid that GET returned.
281
+ - To add a tag, include an entry that has no Uid and a Tag that holds the tag's Uid.
282
+ - To remove a tag, leave its entry out.
283
+ - To remove all tags, send an empty array.
284
+
285
+ If the body does not contain CaseTags, the current tags stay as they are. To read
286
+ the current tags, request them with the fields parameter, for example
287
+ fields=Uid,CaseTags.Uid,CaseTags.Tag.Uid,CaseTags.Tag.Name. To get the tags that are
288
+ available for tickets, use GET /attribute/tags?entityType=Case.
289
+
290
+ Case history is kept. Add replies and notes with their own endpoints.
291
+ * @summary Update a support ticket.
292
+ */
293
+ export const caseUpdateCase = (
294
+ caseUid: string | null,
295
+ caseUpdateCaseBody: NonReadonly<CaseUpdateCaseBody>,
296
+ options?: SecondParameter<typeof customFetch>,) => {
297
+
298
+
299
+ return customFetch<Case>(
300
+ {url: `/api/v1/support/cases/${caseUid}`, method: 'PUT',
301
+ headers: {'Content-Type': 'application/json', },
302
+ data: caseUpdateCaseBody
303
+ },
304
+ options);
305
+ }
306
+
307
+
308
+
309
+ export const getCaseUpdateCaseMutationOptions = <TError = void,
310
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof caseUpdateCase>>, TError,{caseUid: string | null;data: NonReadonly<CaseUpdateCaseBody>}, TContext>, request?: SecondParameter<typeof customFetch>}
311
+ ): UseMutationOptions<Awaited<ReturnType<typeof caseUpdateCase>>, TError,{caseUid: string | null;data: NonReadonly<CaseUpdateCaseBody>}, TContext> => {
312
+
313
+ const mutationKey = ['caseUpdateCase'];
314
+ const {mutation: mutationOptions, request: requestOptions} = options ?
315
+ options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
316
+ options
317
+ : {...options, mutation: {...options.mutation, mutationKey}}
318
+ : {mutation: { mutationKey, }, request: undefined};
319
+
320
+
321
+
322
+
323
+ const mutationFn: MutationFunction<Awaited<ReturnType<typeof caseUpdateCase>>, {caseUid: string | null;data: NonReadonly<CaseUpdateCaseBody>}> = (props) => {
324
+ const {caseUid,data} = props ?? {};
325
+
326
+ return caseUpdateCase(caseUid,data,requestOptions)
327
+ }
328
+
329
+
330
+
331
+
332
+ return { mutationFn, ...mutationOptions }}
333
+
334
+ export type CaseUpdateCaseMutationResult = NonNullable<Awaited<ReturnType<typeof caseUpdateCase>>>
335
+ export type CaseUpdateCaseMutationBody = NonReadonly<CaseUpdateCaseBody>
336
+ export type CaseUpdateCaseMutationError = void
337
+
338
+ /**
339
+ * @summary Update a support ticket.
340
+ */
341
+ export const useCaseUpdateCase = <TError = void,
342
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof caseUpdateCase>>, TError,{caseUid: string | null;data: NonReadonly<CaseUpdateCaseBody>}, TContext>, request?: SecondParameter<typeof customFetch>}
343
+ ): UseMutationResult<
344
+ Awaited<ReturnType<typeof caseUpdateCase>>,
345
+ TError,
346
+ {caseUid: string | null;data: NonReadonly<CaseUpdateCaseBody>},
347
+ TContext
348
+ > => {
349
+
350
+ const mutationOptions = getCaseUpdateCaseMutationOptions(options);
351
+
352
+ return useMutation(mutationOptions);
353
+ }
354
+ /**
272
355
  * @summary Adds a reply from an agent to a support case.
273
356
  */
274
357
  export const caseAddReply = (