@outseta/api-client 0.3.38 → 0.3.40
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 +167 -1
- package/package.json +1 -1
- package/src/generated/attribute/attribute.ts +17 -8
- package/src/generated/crm/crm.ts +241 -1
- package/src/generated/email/email.ts +249 -0
- package/src/generated/models/articleAddTagToEntityBody.ts +7 -0
- package/src/generated/models/articleAllOf.ts +3 -0
- package/src/generated/models/articleGetAllArticlesParams.ts +8 -0
- package/src/generated/models/articleGetTagsForEntity200.ts +8 -0
- package/src/generated/models/articleGetTagsForEntityParams.ts +14 -0
- package/src/generated/models/articleSetTagsForEntityBody.ts +7 -0
- package/src/generated/models/campaignAddTagToEntityBody.ts +7 -0
- package/src/generated/models/campaignGetAllBroadcastEmailsParams.ts +8 -0
- package/src/generated/models/campaignGetTagsForEntity200.ts +8 -0
- package/src/generated/models/campaignGetTagsForEntityParams.ts +14 -0
- package/src/generated/models/campaignSetTagsForEntityBody.ts +7 -0
- package/src/generated/models/entityType.ts +2 -1
- package/src/generated/models/index.ts +12 -0
- package/src/generated/models/segmentAddTagToEntityBody.ts +7 -0
- package/src/generated/models/segmentGetTagsForEntity200.ts +8 -0
- package/src/generated/models/segmentGetTagsForEntityParams.ts +14 -0
- package/src/generated/models/segmentSetTagsForEntityBody.ts +7 -0
- package/src/generated/models/supportSettingsAllOf.ts +2 -0
- package/src/generated/support/support.ts +240 -0
package/dist/index.js
CHANGED
|
@@ -674,6 +674,53 @@ var registrationRegisterAccount = async (account, options) => {
|
|
|
674
674
|
body: JSON.stringify(account)
|
|
675
675
|
});
|
|
676
676
|
};
|
|
677
|
+
var getSegmentAddTagToEntityUrl = (entityUid) => {
|
|
678
|
+
return `/api/v1/crm/segments/${entityUid}/tags`;
|
|
679
|
+
};
|
|
680
|
+
var segmentAddTagToEntity = async (entityUid, segmentAddTagToEntityBody, options) => {
|
|
681
|
+
return customFetch(getSegmentAddTagToEntityUrl(entityUid), {
|
|
682
|
+
...options,
|
|
683
|
+
method: "POST",
|
|
684
|
+
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
685
|
+
body: JSON.stringify(segmentAddTagToEntityBody)
|
|
686
|
+
});
|
|
687
|
+
};
|
|
688
|
+
var getSegmentGetTagsForEntityUrl = (entityUid, params) => {
|
|
689
|
+
const normalizedParams = new URLSearchParams;
|
|
690
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
691
|
+
if (value !== undefined) {
|
|
692
|
+
normalizedParams.append(key, value === null ? "null" : value.toString());
|
|
693
|
+
}
|
|
694
|
+
});
|
|
695
|
+
const stringifiedParams = normalizedParams.toString();
|
|
696
|
+
return stringifiedParams.length > 0 ? `/api/v1/crm/segments/${entityUid}/tags?${stringifiedParams}` : `/api/v1/crm/segments/${entityUid}/tags`;
|
|
697
|
+
};
|
|
698
|
+
var segmentGetTagsForEntity = async (entityUid, params, options) => {
|
|
699
|
+
return customFetch(getSegmentGetTagsForEntityUrl(entityUid, params), {
|
|
700
|
+
...options,
|
|
701
|
+
method: "GET"
|
|
702
|
+
});
|
|
703
|
+
};
|
|
704
|
+
var getSegmentSetTagsForEntityUrl = (entityUid) => {
|
|
705
|
+
return `/api/v1/crm/segments/${entityUid}/tags`;
|
|
706
|
+
};
|
|
707
|
+
var segmentSetTagsForEntity = async (entityUid, segmentSetTagsForEntityBody, options) => {
|
|
708
|
+
return customFetch(getSegmentSetTagsForEntityUrl(entityUid), {
|
|
709
|
+
...options,
|
|
710
|
+
method: "PUT",
|
|
711
|
+
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
712
|
+
body: JSON.stringify(segmentSetTagsForEntityBody)
|
|
713
|
+
});
|
|
714
|
+
};
|
|
715
|
+
var getSegmentRemoveTagFromEntityUrl = (entityUid, tagUid) => {
|
|
716
|
+
return `/api/v1/crm/segments/${entityUid}/tags/${tagUid}`;
|
|
717
|
+
};
|
|
718
|
+
var segmentRemoveTagFromEntity = async (entityUid, tagUid, options) => {
|
|
719
|
+
return customFetch(getSegmentRemoveTagFromEntityUrl(entityUid, tagUid), {
|
|
720
|
+
...options,
|
|
721
|
+
method: "DELETE"
|
|
722
|
+
});
|
|
723
|
+
};
|
|
677
724
|
var getAccountGetAllAccountsUrl = (params) => {
|
|
678
725
|
const normalizedParams = new URLSearchParams;
|
|
679
726
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
@@ -1099,6 +1146,53 @@ var campaignSendTestCampaignEmail = async (campaignSendTestCampaignEmailBody, op
|
|
|
1099
1146
|
body: JSON.stringify(campaignSendTestCampaignEmailBody)
|
|
1100
1147
|
});
|
|
1101
1148
|
};
|
|
1149
|
+
var getCampaignAddTagToEntityUrl = (entityUid) => {
|
|
1150
|
+
return `/api/v1/email/campaigns/broadcasts/${entityUid}/tags`;
|
|
1151
|
+
};
|
|
1152
|
+
var campaignAddTagToEntity = async (entityUid, campaignAddTagToEntityBody, options) => {
|
|
1153
|
+
return customFetch(getCampaignAddTagToEntityUrl(entityUid), {
|
|
1154
|
+
...options,
|
|
1155
|
+
method: "POST",
|
|
1156
|
+
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
1157
|
+
body: JSON.stringify(campaignAddTagToEntityBody)
|
|
1158
|
+
});
|
|
1159
|
+
};
|
|
1160
|
+
var getCampaignGetTagsForEntityUrl = (entityUid, params) => {
|
|
1161
|
+
const normalizedParams = new URLSearchParams;
|
|
1162
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
1163
|
+
if (value !== undefined) {
|
|
1164
|
+
normalizedParams.append(key, value === null ? "null" : value.toString());
|
|
1165
|
+
}
|
|
1166
|
+
});
|
|
1167
|
+
const stringifiedParams = normalizedParams.toString();
|
|
1168
|
+
return stringifiedParams.length > 0 ? `/api/v1/email/campaigns/broadcasts/${entityUid}/tags?${stringifiedParams}` : `/api/v1/email/campaigns/broadcasts/${entityUid}/tags`;
|
|
1169
|
+
};
|
|
1170
|
+
var campaignGetTagsForEntity = async (entityUid, params, options) => {
|
|
1171
|
+
return customFetch(getCampaignGetTagsForEntityUrl(entityUid, params), {
|
|
1172
|
+
...options,
|
|
1173
|
+
method: "GET"
|
|
1174
|
+
});
|
|
1175
|
+
};
|
|
1176
|
+
var getCampaignSetTagsForEntityUrl = (entityUid) => {
|
|
1177
|
+
return `/api/v1/email/campaigns/broadcasts/${entityUid}/tags`;
|
|
1178
|
+
};
|
|
1179
|
+
var campaignSetTagsForEntity = async (entityUid, campaignSetTagsForEntityBody, options) => {
|
|
1180
|
+
return customFetch(getCampaignSetTagsForEntityUrl(entityUid), {
|
|
1181
|
+
...options,
|
|
1182
|
+
method: "PUT",
|
|
1183
|
+
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
1184
|
+
body: JSON.stringify(campaignSetTagsForEntityBody)
|
|
1185
|
+
});
|
|
1186
|
+
};
|
|
1187
|
+
var getCampaignRemoveTagFromEntityUrl = (entityUid, tagUid) => {
|
|
1188
|
+
return `/api/v1/email/campaigns/broadcasts/${entityUid}/tags/${tagUid}`;
|
|
1189
|
+
};
|
|
1190
|
+
var campaignRemoveTagFromEntity = async (entityUid, tagUid, options) => {
|
|
1191
|
+
return customFetch(getCampaignRemoveTagFromEntityUrl(entityUid, tagUid), {
|
|
1192
|
+
...options,
|
|
1193
|
+
method: "DELETE"
|
|
1194
|
+
});
|
|
1195
|
+
};
|
|
1102
1196
|
var getEmailListGetAllEmailListsUrl = (params) => {
|
|
1103
1197
|
const normalizedParams = new URLSearchParams;
|
|
1104
1198
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
@@ -1300,6 +1394,53 @@ var articleGetArticle = async (articleUid, options) => {
|
|
|
1300
1394
|
method: "GET"
|
|
1301
1395
|
});
|
|
1302
1396
|
};
|
|
1397
|
+
var getArticleAddTagToEntityUrl = (entityUid) => {
|
|
1398
|
+
return `/api/v1/support/articles/${entityUid}/tags`;
|
|
1399
|
+
};
|
|
1400
|
+
var articleAddTagToEntity = async (entityUid, articleAddTagToEntityBody, options) => {
|
|
1401
|
+
return customFetch(getArticleAddTagToEntityUrl(entityUid), {
|
|
1402
|
+
...options,
|
|
1403
|
+
method: "POST",
|
|
1404
|
+
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
1405
|
+
body: JSON.stringify(articleAddTagToEntityBody)
|
|
1406
|
+
});
|
|
1407
|
+
};
|
|
1408
|
+
var getArticleGetTagsForEntityUrl = (entityUid, params) => {
|
|
1409
|
+
const normalizedParams = new URLSearchParams;
|
|
1410
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
1411
|
+
if (value !== undefined) {
|
|
1412
|
+
normalizedParams.append(key, value === null ? "null" : value.toString());
|
|
1413
|
+
}
|
|
1414
|
+
});
|
|
1415
|
+
const stringifiedParams = normalizedParams.toString();
|
|
1416
|
+
return stringifiedParams.length > 0 ? `/api/v1/support/articles/${entityUid}/tags?${stringifiedParams}` : `/api/v1/support/articles/${entityUid}/tags`;
|
|
1417
|
+
};
|
|
1418
|
+
var articleGetTagsForEntity = async (entityUid, params, options) => {
|
|
1419
|
+
return customFetch(getArticleGetTagsForEntityUrl(entityUid, params), {
|
|
1420
|
+
...options,
|
|
1421
|
+
method: "GET"
|
|
1422
|
+
});
|
|
1423
|
+
};
|
|
1424
|
+
var getArticleSetTagsForEntityUrl = (entityUid) => {
|
|
1425
|
+
return `/api/v1/support/articles/${entityUid}/tags`;
|
|
1426
|
+
};
|
|
1427
|
+
var articleSetTagsForEntity = async (entityUid, articleSetTagsForEntityBody, options) => {
|
|
1428
|
+
return customFetch(getArticleSetTagsForEntityUrl(entityUid), {
|
|
1429
|
+
...options,
|
|
1430
|
+
method: "PUT",
|
|
1431
|
+
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
1432
|
+
body: JSON.stringify(articleSetTagsForEntityBody)
|
|
1433
|
+
});
|
|
1434
|
+
};
|
|
1435
|
+
var getArticleRemoveTagFromEntityUrl = (entityUid, tagUid) => {
|
|
1436
|
+
return `/api/v1/support/articles/${entityUid}/tags/${tagUid}`;
|
|
1437
|
+
};
|
|
1438
|
+
var articleRemoveTagFromEntity = async (entityUid, tagUid, options) => {
|
|
1439
|
+
return customFetch(getArticleRemoveTagFromEntityUrl(entityUid, tagUid), {
|
|
1440
|
+
...options,
|
|
1441
|
+
method: "DELETE"
|
|
1442
|
+
});
|
|
1443
|
+
};
|
|
1303
1444
|
var getCategoryGetAllCategoriesUrl = (params) => {
|
|
1304
1445
|
const normalizedParams = new URLSearchParams;
|
|
1305
1446
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
@@ -1728,7 +1869,8 @@ var EntityType = {
|
|
|
1728
1869
|
AddOn: 9,
|
|
1729
1870
|
Task: 10,
|
|
1730
1871
|
Segment: 11,
|
|
1731
|
-
Broadcast: 12
|
|
1872
|
+
Broadcast: 12,
|
|
1873
|
+
Article: 13
|
|
1732
1874
|
};
|
|
1733
1875
|
// src/generated/models/lineItemType.ts
|
|
1734
1876
|
var LineItemType = {
|
|
@@ -2030,14 +2172,22 @@ export {
|
|
|
2030
2172
|
activityAddCustomActivity,
|
|
2031
2173
|
activityGetAll,
|
|
2032
2174
|
articleAddArticle,
|
|
2175
|
+
articleAddTagToEntity,
|
|
2033
2176
|
articleGetAllArticles,
|
|
2034
2177
|
articleGetArticle,
|
|
2178
|
+
articleGetTagsForEntity,
|
|
2179
|
+
articleRemoveTagFromEntity,
|
|
2180
|
+
articleSetTagsForEntity,
|
|
2035
2181
|
campaignAddBroadcastEmail,
|
|
2182
|
+
campaignAddTagToEntity,
|
|
2036
2183
|
campaignArchiveBroadcastCampaign,
|
|
2037
2184
|
campaignDeleteBroadcastCampaign,
|
|
2038
2185
|
campaignGetAllBroadcastEmails,
|
|
2039
2186
|
campaignGetBroadcastEmail,
|
|
2187
|
+
campaignGetTagsForEntity,
|
|
2188
|
+
campaignRemoveTagFromEntity,
|
|
2040
2189
|
campaignSendTestCampaignEmail,
|
|
2190
|
+
campaignSetTagsForEntity,
|
|
2041
2191
|
campaignUnscheduleBroadcastEmail,
|
|
2042
2192
|
campaignUpdateBroadcastEmail,
|
|
2043
2193
|
caseAddCase,
|
|
@@ -2094,14 +2244,22 @@ export {
|
|
|
2094
2244
|
getActivityAddCustomActivityUrl,
|
|
2095
2245
|
getActivityGetAllUrl,
|
|
2096
2246
|
getArticleAddArticleUrl,
|
|
2247
|
+
getArticleAddTagToEntityUrl,
|
|
2097
2248
|
getArticleGetAllArticlesUrl,
|
|
2098
2249
|
getArticleGetArticleUrl,
|
|
2250
|
+
getArticleGetTagsForEntityUrl,
|
|
2251
|
+
getArticleRemoveTagFromEntityUrl,
|
|
2252
|
+
getArticleSetTagsForEntityUrl,
|
|
2099
2253
|
getCampaignAddBroadcastEmailUrl,
|
|
2254
|
+
getCampaignAddTagToEntityUrl,
|
|
2100
2255
|
getCampaignArchiveBroadcastCampaignUrl,
|
|
2101
2256
|
getCampaignDeleteBroadcastCampaignUrl,
|
|
2102
2257
|
getCampaignGetAllBroadcastEmailsUrl,
|
|
2103
2258
|
getCampaignGetBroadcastEmailUrl,
|
|
2259
|
+
getCampaignGetTagsForEntityUrl,
|
|
2260
|
+
getCampaignRemoveTagFromEntityUrl,
|
|
2104
2261
|
getCampaignSendTestCampaignEmailUrl,
|
|
2262
|
+
getCampaignSetTagsForEntityUrl,
|
|
2105
2263
|
getCampaignUnscheduleBroadcastEmailUrl,
|
|
2106
2264
|
getCampaignUpdateBroadcastEmailUrl,
|
|
2107
2265
|
getCaseAddCaseUrl,
|
|
@@ -2170,6 +2328,10 @@ export {
|
|
|
2170
2328
|
getPlanGetPlanUrl,
|
|
2171
2329
|
getPlanUpdatePlanUrl,
|
|
2172
2330
|
getRegistrationRegisterAccountUrl,
|
|
2331
|
+
getSegmentAddTagToEntityUrl,
|
|
2332
|
+
getSegmentGetTagsForEntityUrl,
|
|
2333
|
+
getSegmentRemoveTagFromEntityUrl,
|
|
2334
|
+
getSegmentSetTagsForEntityUrl,
|
|
2173
2335
|
getSubscriptionAddDiscountToSubscriptionUrl,
|
|
2174
2336
|
getSubscriptionAddOnAddSubscriptionAddOnPreviewUrl,
|
|
2175
2337
|
getSubscriptionAddOnAddSubscriptionAddOnUrl,
|
|
@@ -2219,6 +2381,10 @@ export {
|
|
|
2219
2381
|
planGetPlan,
|
|
2220
2382
|
planUpdatePlan,
|
|
2221
2383
|
registrationRegisterAccount,
|
|
2384
|
+
segmentAddTagToEntity,
|
|
2385
|
+
segmentGetTagsForEntity,
|
|
2386
|
+
segmentRemoveTagFromEntity,
|
|
2387
|
+
segmentSetTagsForEntity,
|
|
2222
2388
|
subscriptionAddDiscountToSubscription,
|
|
2223
2389
|
subscriptionAddOnAddSubscriptionAddOn,
|
|
2224
2390
|
subscriptionAddOnAddSubscriptionAddOnPreview,
|
package/package.json
CHANGED
|
@@ -40,13 +40,18 @@ type NonReadonly<T> = [T] extends [UnionToIntersection<T>] ? {
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
* Each tag applies to a single entity type. Pass entityType
|
|
44
|
-
|
|
43
|
+
* Each tag applies to a single entity type. Pass entityType to retrieve the tags for one
|
|
44
|
+
of them, for example entityType=Article for knowledge base article tags.
|
|
45
45
|
|
|
46
|
-
How a tag goes onto a record depends on the entity type.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
How a tag goes onto a record depends on the entity type. Articles, broadcasts and
|
|
47
|
+
segments each take tags on a tags sub-resource of the record:
|
|
48
|
+
|
|
49
|
+
- POST /support/articles/{entityUid}/tags and PUT, GET, DELETE on the same path
|
|
50
|
+
- POST /email/campaigns/broadcasts/{entityUid}/tags and the same for the rest
|
|
51
|
+
- POST /crm/segments/{entityUid}/tags and the same for the rest
|
|
52
|
+
|
|
53
|
+
A support ticket is the exception. It holds its tags in its own CaseTags collection, so
|
|
54
|
+
you add and remove ticket tags with PUT /support/cases/{caseUid}.
|
|
50
55
|
|
|
51
56
|
Name is unique within an entity type. SystemName and SystemDescription identify a
|
|
52
57
|
built-in tag (for example Priority.Urgent) and are set by Outseta.
|
|
@@ -99,8 +104,9 @@ export const tagGetAllTags = async (params?: TagGetAllTagsParams, options?: Requ
|
|
|
99
104
|
|
|
100
105
|
|
|
101
106
|
/**
|
|
102
|
-
* Name and EntityType are required.
|
|
103
|
-
support tickets
|
|
107
|
+
* Name and EntityType are required. EntityType fixes what the tag can go on: 4 (Case) for
|
|
108
|
+
support tickets, 13 (Article) for knowledge base articles, 12 (Broadcast) for broadcast
|
|
109
|
+
emails, 11 (Segment) for segments. TagColor sets the color the tag shows in.
|
|
104
110
|
|
|
105
111
|
Name must be unique within an entity type. If the name already exists for that
|
|
106
112
|
entity type, the existing tag is returned instead of a duplicate, and its color is
|
|
@@ -260,6 +266,9 @@ export const tagUpdateTag = async (tagUid: string | null,
|
|
|
260
266
|
/**
|
|
261
267
|
* The tag is also taken off every record that carries it. For a Case tag, it is
|
|
262
268
|
removed from all support tickets that have it.
|
|
269
|
+
|
|
270
|
+
An Article tag that the knowledge base version filter names cannot be deleted. Take it
|
|
271
|
+
out of the version filter first, then delete it.
|
|
263
272
|
* @summary Delete a tag.
|
|
264
273
|
*/
|
|
265
274
|
export type tagDeleteTagResponse200 = {
|
package/src/generated/crm/crm.ts
CHANGED
|
@@ -23,7 +23,11 @@ import type {
|
|
|
23
23
|
PersonGetAllPeopleParams,
|
|
24
24
|
PersonRequestMagicLinkBody,
|
|
25
25
|
PersonSetTemporaryPasswordBody,
|
|
26
|
-
PersonUpdatePersonBody
|
|
26
|
+
PersonUpdatePersonBody,
|
|
27
|
+
SegmentAddTagToEntityBody,
|
|
28
|
+
SegmentGetTagsForEntity200,
|
|
29
|
+
SegmentGetTagsForEntityParams,
|
|
30
|
+
SegmentSetTagsForEntityBody
|
|
27
31
|
} from '.././models';
|
|
28
32
|
|
|
29
33
|
import { customFetch } from '../../client';
|
|
@@ -353,6 +357,242 @@ export const registrationRegisterAccount = async (account: NonReadonly<Account>,
|
|
|
353
357
|
);}
|
|
354
358
|
|
|
355
359
|
|
|
360
|
+
/**
|
|
361
|
+
* Send the uids of the tags to add. Tags that the record already carries stay on it, and
|
|
362
|
+
naming one of them again changes nothing, so the same request is safe to repeat. To
|
|
363
|
+
replace the whole set instead, use PUT on this same path.
|
|
364
|
+
|
|
365
|
+
A tag belongs to one entity type, so use tags whose EntityType matches this record.
|
|
366
|
+
List them with GET /attribute/tags. A uid in the list that names no tag is skipped.
|
|
367
|
+
* @summary Add tags to a record.
|
|
368
|
+
*/
|
|
369
|
+
export type segmentAddTagToEntityResponse200 = {
|
|
370
|
+
data: Blob
|
|
371
|
+
status: 200
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
export type segmentAddTagToEntityResponse400 = {
|
|
375
|
+
data: void
|
|
376
|
+
status: 400
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
export type segmentAddTagToEntityResponse401 = {
|
|
380
|
+
data: void
|
|
381
|
+
status: 401
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
export type segmentAddTagToEntityResponse404 = {
|
|
385
|
+
data: void
|
|
386
|
+
status: 404
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
export type segmentAddTagToEntityResponseSuccess = (segmentAddTagToEntityResponse200) & {
|
|
390
|
+
headers: Headers;
|
|
391
|
+
};
|
|
392
|
+
export type segmentAddTagToEntityResponseError = (segmentAddTagToEntityResponse400 | segmentAddTagToEntityResponse401 | segmentAddTagToEntityResponse404) & {
|
|
393
|
+
headers: Headers;
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
export type segmentAddTagToEntityResponse = (segmentAddTagToEntityResponseSuccess | segmentAddTagToEntityResponseError)
|
|
397
|
+
|
|
398
|
+
export const getSegmentAddTagToEntityUrl = (entityUid: string | null,) => {
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
return `/api/v1/crm/segments/${entityUid}/tags`
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export const segmentAddTagToEntity = async (entityUid: string | null,
|
|
407
|
+
segmentAddTagToEntityBody: SegmentAddTagToEntityBody, options?: RequestInit): Promise<segmentAddTagToEntityResponse> => {
|
|
408
|
+
|
|
409
|
+
return customFetch<segmentAddTagToEntityResponse>(getSegmentAddTagToEntityUrl(entityUid),
|
|
410
|
+
{
|
|
411
|
+
...options,
|
|
412
|
+
method: 'POST',
|
|
413
|
+
headers: { 'Content-Type': 'application/json', ...options?.headers },
|
|
414
|
+
body: JSON.stringify(
|
|
415
|
+
segmentAddTagToEntityBody,)
|
|
416
|
+
}
|
|
417
|
+
);}
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* Returns the tags themselves, not the links that hold them. The same tags are also
|
|
422
|
+
available on the record: ask for them with the fields parameter, for example
|
|
423
|
+
fields=Uid,Tags.Uid,Tags.Name,Tags.TagColor. Tags cost an extra query, so the record
|
|
424
|
+
leaves them out unless fields names Tags or is a plain wildcard.
|
|
425
|
+
* @summary Retrieve the tags on a record.
|
|
426
|
+
*/
|
|
427
|
+
export type segmentGetTagsForEntityResponse200 = {
|
|
428
|
+
data: SegmentGetTagsForEntity200
|
|
429
|
+
status: 200
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
export type segmentGetTagsForEntityResponse400 = {
|
|
433
|
+
data: void
|
|
434
|
+
status: 400
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
export type segmentGetTagsForEntityResponse401 = {
|
|
438
|
+
data: void
|
|
439
|
+
status: 401
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
export type segmentGetTagsForEntityResponseSuccess = (segmentGetTagsForEntityResponse200) & {
|
|
443
|
+
headers: Headers;
|
|
444
|
+
};
|
|
445
|
+
export type segmentGetTagsForEntityResponseError = (segmentGetTagsForEntityResponse400 | segmentGetTagsForEntityResponse401) & {
|
|
446
|
+
headers: Headers;
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
export type segmentGetTagsForEntityResponse = (segmentGetTagsForEntityResponseSuccess | segmentGetTagsForEntityResponseError)
|
|
450
|
+
|
|
451
|
+
export const getSegmentGetTagsForEntityUrl = (entityUid: string | null,
|
|
452
|
+
params?: SegmentGetTagsForEntityParams,) => {
|
|
453
|
+
const normalizedParams = new URLSearchParams();
|
|
454
|
+
|
|
455
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
456
|
+
|
|
457
|
+
if (value !== undefined) {
|
|
458
|
+
normalizedParams.append(key, value === null ? 'null' : value.toString())
|
|
459
|
+
}
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
const stringifiedParams = normalizedParams.toString();
|
|
463
|
+
|
|
464
|
+
return stringifiedParams.length > 0 ? `/api/v1/crm/segments/${entityUid}/tags?${stringifiedParams}` : `/api/v1/crm/segments/${entityUid}/tags`
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
export const segmentGetTagsForEntity = async (entityUid: string | null,
|
|
468
|
+
params?: SegmentGetTagsForEntityParams, options?: RequestInit): Promise<segmentGetTagsForEntityResponse> => {
|
|
469
|
+
|
|
470
|
+
return customFetch<segmentGetTagsForEntityResponse>(getSegmentGetTagsForEntityUrl(entityUid,params),
|
|
471
|
+
{
|
|
472
|
+
...options,
|
|
473
|
+
method: 'GET'
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
}
|
|
477
|
+
);}
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Send the full set of tags the record must end with. A tag that the list leaves out is
|
|
482
|
+
taken off the record, and one that the list names is added. Send an empty list to take
|
|
483
|
+
every tag off. To add tags without disturbing the others, use POST on this same path.
|
|
484
|
+
|
|
485
|
+
A tag belongs to one entity type, so use tags whose EntityType matches this record.
|
|
486
|
+
List them with GET /attribute/tags. A uid in the list that names no tag is skipped.
|
|
487
|
+
* @summary Replace the tags on a record.
|
|
488
|
+
*/
|
|
489
|
+
export type segmentSetTagsForEntityResponse200 = {
|
|
490
|
+
data: Blob
|
|
491
|
+
status: 200
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
export type segmentSetTagsForEntityResponse400 = {
|
|
495
|
+
data: void
|
|
496
|
+
status: 400
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
export type segmentSetTagsForEntityResponse401 = {
|
|
500
|
+
data: void
|
|
501
|
+
status: 401
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
export type segmentSetTagsForEntityResponse404 = {
|
|
505
|
+
data: void
|
|
506
|
+
status: 404
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
export type segmentSetTagsForEntityResponseSuccess = (segmentSetTagsForEntityResponse200) & {
|
|
510
|
+
headers: Headers;
|
|
511
|
+
};
|
|
512
|
+
export type segmentSetTagsForEntityResponseError = (segmentSetTagsForEntityResponse400 | segmentSetTagsForEntityResponse401 | segmentSetTagsForEntityResponse404) & {
|
|
513
|
+
headers: Headers;
|
|
514
|
+
};
|
|
515
|
+
|
|
516
|
+
export type segmentSetTagsForEntityResponse = (segmentSetTagsForEntityResponseSuccess | segmentSetTagsForEntityResponseError)
|
|
517
|
+
|
|
518
|
+
export const getSegmentSetTagsForEntityUrl = (entityUid: string | null,) => {
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
return `/api/v1/crm/segments/${entityUid}/tags`
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
export const segmentSetTagsForEntity = async (entityUid: string | null,
|
|
527
|
+
segmentSetTagsForEntityBody: SegmentSetTagsForEntityBody, options?: RequestInit): Promise<segmentSetTagsForEntityResponse> => {
|
|
528
|
+
|
|
529
|
+
return customFetch<segmentSetTagsForEntityResponse>(getSegmentSetTagsForEntityUrl(entityUid),
|
|
530
|
+
{
|
|
531
|
+
...options,
|
|
532
|
+
method: 'PUT',
|
|
533
|
+
headers: { 'Content-Type': 'application/json', ...options?.headers },
|
|
534
|
+
body: JSON.stringify(
|
|
535
|
+
segmentSetTagsForEntityBody,)
|
|
536
|
+
}
|
|
537
|
+
);}
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* The tag itself is kept and stays available for other records. If the record does not
|
|
542
|
+
carry the tag, nothing changes and the call still succeeds.
|
|
543
|
+
* @summary Remove one tag from a record.
|
|
544
|
+
*/
|
|
545
|
+
export type segmentRemoveTagFromEntityResponse200 = {
|
|
546
|
+
data: Blob
|
|
547
|
+
status: 200
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
export type segmentRemoveTagFromEntityResponse400 = {
|
|
551
|
+
data: void
|
|
552
|
+
status: 400
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
export type segmentRemoveTagFromEntityResponse401 = {
|
|
556
|
+
data: void
|
|
557
|
+
status: 401
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export type segmentRemoveTagFromEntityResponse404 = {
|
|
561
|
+
data: void
|
|
562
|
+
status: 404
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
export type segmentRemoveTagFromEntityResponseSuccess = (segmentRemoveTagFromEntityResponse200) & {
|
|
566
|
+
headers: Headers;
|
|
567
|
+
};
|
|
568
|
+
export type segmentRemoveTagFromEntityResponseError = (segmentRemoveTagFromEntityResponse400 | segmentRemoveTagFromEntityResponse401 | segmentRemoveTagFromEntityResponse404) & {
|
|
569
|
+
headers: Headers;
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
export type segmentRemoveTagFromEntityResponse = (segmentRemoveTagFromEntityResponseSuccess | segmentRemoveTagFromEntityResponseError)
|
|
573
|
+
|
|
574
|
+
export const getSegmentRemoveTagFromEntityUrl = (entityUid: string | null,
|
|
575
|
+
tagUid: string | null,) => {
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
return `/api/v1/crm/segments/${entityUid}/tags/${tagUid}`
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
export const segmentRemoveTagFromEntity = async (entityUid: string | null,
|
|
584
|
+
tagUid: string | null, options?: RequestInit): Promise<segmentRemoveTagFromEntityResponse> => {
|
|
585
|
+
|
|
586
|
+
return customFetch<segmentRemoveTagFromEntityResponse>(getSegmentRemoveTagFromEntityUrl(entityUid,tagUid),
|
|
587
|
+
{
|
|
588
|
+
...options,
|
|
589
|
+
method: 'DELETE'
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
}
|
|
593
|
+
);}
|
|
594
|
+
|
|
595
|
+
|
|
356
596
|
/**
|
|
357
597
|
* Optionally filtered by segment (segmentUid) or search query (q).
|
|
358
598
|
* @summary Retrieve all accounts.
|
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
import type {
|
|
3
3
|
BroadcastCampaign,
|
|
4
4
|
CampaignAddBroadcastEmailBody,
|
|
5
|
+
CampaignAddTagToEntityBody,
|
|
5
6
|
CampaignGetAllBroadcastEmails200,
|
|
6
7
|
CampaignGetAllBroadcastEmailsParams,
|
|
8
|
+
CampaignGetTagsForEntity200,
|
|
9
|
+
CampaignGetTagsForEntityParams,
|
|
7
10
|
CampaignSendTestCampaignEmailBody,
|
|
11
|
+
CampaignSetTagsForEntityBody,
|
|
8
12
|
CampaignUpdateBroadcastEmailBody,
|
|
9
13
|
DripCampaign,
|
|
10
14
|
DripCampaignAddDripCampaignBody,
|
|
@@ -655,6 +659,15 @@ omitted it is derived automatically, so callers (including LLM tools) do not nee
|
|
|
655
659
|
understand it. Use Message.PreviewText for inbox preview text rather than an in-body
|
|
656
660
|
preheader.
|
|
657
661
|
|
|
662
|
+
The shape of the Body markup decides how editable the broadcast is in the app. Prose
|
|
663
|
+
(headings, paragraphs, lists, links, emphasis, images, inline spans) goes into a text
|
|
664
|
+
block, which the author edits on the editor canvas with the formatting toolbar and the
|
|
665
|
+
merge-tag menu. Structural markup (tables, an embedded style block, document
|
|
666
|
+
scaffolding) goes into an HTML block instead, because only that block renders such
|
|
667
|
+
markup verbatim, and it is edited as raw HTML. Send prose when the email must stay easy
|
|
668
|
+
to edit visually. The first save in the editor also replaces Body with the editor's
|
|
669
|
+
export of the design, so this choice decides the markup that is sent from then on.
|
|
670
|
+
|
|
658
671
|
When Body is a content fragment with no Design, it is composed into the account's API
|
|
659
672
|
email layout — a branded header and footer that includes the unsubscribe and
|
|
660
673
|
manage-subscriptions links — and the composed result is what is sent and opened in the
|
|
@@ -1038,6 +1051,242 @@ export const campaignSendTestCampaignEmail = async (campaignSendTestCampaignEmai
|
|
|
1038
1051
|
);}
|
|
1039
1052
|
|
|
1040
1053
|
|
|
1054
|
+
/**
|
|
1055
|
+
* Send the uids of the tags to add. Tags that the record already carries stay on it, and
|
|
1056
|
+
naming one of them again changes nothing, so the same request is safe to repeat. To
|
|
1057
|
+
replace the whole set instead, use PUT on this same path.
|
|
1058
|
+
|
|
1059
|
+
A tag belongs to one entity type, so use tags whose EntityType matches this record.
|
|
1060
|
+
List them with GET /attribute/tags. A uid in the list that names no tag is skipped.
|
|
1061
|
+
* @summary Add tags to a record.
|
|
1062
|
+
*/
|
|
1063
|
+
export type campaignAddTagToEntityResponse200 = {
|
|
1064
|
+
data: Blob
|
|
1065
|
+
status: 200
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
export type campaignAddTagToEntityResponse400 = {
|
|
1069
|
+
data: void
|
|
1070
|
+
status: 400
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
export type campaignAddTagToEntityResponse401 = {
|
|
1074
|
+
data: void
|
|
1075
|
+
status: 401
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
export type campaignAddTagToEntityResponse404 = {
|
|
1079
|
+
data: void
|
|
1080
|
+
status: 404
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
export type campaignAddTagToEntityResponseSuccess = (campaignAddTagToEntityResponse200) & {
|
|
1084
|
+
headers: Headers;
|
|
1085
|
+
};
|
|
1086
|
+
export type campaignAddTagToEntityResponseError = (campaignAddTagToEntityResponse400 | campaignAddTagToEntityResponse401 | campaignAddTagToEntityResponse404) & {
|
|
1087
|
+
headers: Headers;
|
|
1088
|
+
};
|
|
1089
|
+
|
|
1090
|
+
export type campaignAddTagToEntityResponse = (campaignAddTagToEntityResponseSuccess | campaignAddTagToEntityResponseError)
|
|
1091
|
+
|
|
1092
|
+
export const getCampaignAddTagToEntityUrl = (entityUid: string | null,) => {
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
return `/api/v1/email/campaigns/broadcasts/${entityUid}/tags`
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
export const campaignAddTagToEntity = async (entityUid: string | null,
|
|
1101
|
+
campaignAddTagToEntityBody: CampaignAddTagToEntityBody, options?: RequestInit): Promise<campaignAddTagToEntityResponse> => {
|
|
1102
|
+
|
|
1103
|
+
return customFetch<campaignAddTagToEntityResponse>(getCampaignAddTagToEntityUrl(entityUid),
|
|
1104
|
+
{
|
|
1105
|
+
...options,
|
|
1106
|
+
method: 'POST',
|
|
1107
|
+
headers: { 'Content-Type': 'application/json', ...options?.headers },
|
|
1108
|
+
body: JSON.stringify(
|
|
1109
|
+
campaignAddTagToEntityBody,)
|
|
1110
|
+
}
|
|
1111
|
+
);}
|
|
1112
|
+
|
|
1113
|
+
|
|
1114
|
+
/**
|
|
1115
|
+
* Returns the tags themselves, not the links that hold them. The same tags are also
|
|
1116
|
+
available on the record: ask for them with the fields parameter, for example
|
|
1117
|
+
fields=Uid,Tags.Uid,Tags.Name,Tags.TagColor. Tags cost an extra query, so the record
|
|
1118
|
+
leaves them out unless fields names Tags or is a plain wildcard.
|
|
1119
|
+
* @summary Retrieve the tags on a record.
|
|
1120
|
+
*/
|
|
1121
|
+
export type campaignGetTagsForEntityResponse200 = {
|
|
1122
|
+
data: CampaignGetTagsForEntity200
|
|
1123
|
+
status: 200
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
export type campaignGetTagsForEntityResponse400 = {
|
|
1127
|
+
data: void
|
|
1128
|
+
status: 400
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
export type campaignGetTagsForEntityResponse401 = {
|
|
1132
|
+
data: void
|
|
1133
|
+
status: 401
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
export type campaignGetTagsForEntityResponseSuccess = (campaignGetTagsForEntityResponse200) & {
|
|
1137
|
+
headers: Headers;
|
|
1138
|
+
};
|
|
1139
|
+
export type campaignGetTagsForEntityResponseError = (campaignGetTagsForEntityResponse400 | campaignGetTagsForEntityResponse401) & {
|
|
1140
|
+
headers: Headers;
|
|
1141
|
+
};
|
|
1142
|
+
|
|
1143
|
+
export type campaignGetTagsForEntityResponse = (campaignGetTagsForEntityResponseSuccess | campaignGetTagsForEntityResponseError)
|
|
1144
|
+
|
|
1145
|
+
export const getCampaignGetTagsForEntityUrl = (entityUid: string | null,
|
|
1146
|
+
params?: CampaignGetTagsForEntityParams,) => {
|
|
1147
|
+
const normalizedParams = new URLSearchParams();
|
|
1148
|
+
|
|
1149
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
1150
|
+
|
|
1151
|
+
if (value !== undefined) {
|
|
1152
|
+
normalizedParams.append(key, value === null ? 'null' : value.toString())
|
|
1153
|
+
}
|
|
1154
|
+
});
|
|
1155
|
+
|
|
1156
|
+
const stringifiedParams = normalizedParams.toString();
|
|
1157
|
+
|
|
1158
|
+
return stringifiedParams.length > 0 ? `/api/v1/email/campaigns/broadcasts/${entityUid}/tags?${stringifiedParams}` : `/api/v1/email/campaigns/broadcasts/${entityUid}/tags`
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
export const campaignGetTagsForEntity = async (entityUid: string | null,
|
|
1162
|
+
params?: CampaignGetTagsForEntityParams, options?: RequestInit): Promise<campaignGetTagsForEntityResponse> => {
|
|
1163
|
+
|
|
1164
|
+
return customFetch<campaignGetTagsForEntityResponse>(getCampaignGetTagsForEntityUrl(entityUid,params),
|
|
1165
|
+
{
|
|
1166
|
+
...options,
|
|
1167
|
+
method: 'GET'
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
}
|
|
1171
|
+
);}
|
|
1172
|
+
|
|
1173
|
+
|
|
1174
|
+
/**
|
|
1175
|
+
* Send the full set of tags the record must end with. A tag that the list leaves out is
|
|
1176
|
+
taken off the record, and one that the list names is added. Send an empty list to take
|
|
1177
|
+
every tag off. To add tags without disturbing the others, use POST on this same path.
|
|
1178
|
+
|
|
1179
|
+
A tag belongs to one entity type, so use tags whose EntityType matches this record.
|
|
1180
|
+
List them with GET /attribute/tags. A uid in the list that names no tag is skipped.
|
|
1181
|
+
* @summary Replace the tags on a record.
|
|
1182
|
+
*/
|
|
1183
|
+
export type campaignSetTagsForEntityResponse200 = {
|
|
1184
|
+
data: Blob
|
|
1185
|
+
status: 200
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
export type campaignSetTagsForEntityResponse400 = {
|
|
1189
|
+
data: void
|
|
1190
|
+
status: 400
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
export type campaignSetTagsForEntityResponse401 = {
|
|
1194
|
+
data: void
|
|
1195
|
+
status: 401
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
export type campaignSetTagsForEntityResponse404 = {
|
|
1199
|
+
data: void
|
|
1200
|
+
status: 404
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
export type campaignSetTagsForEntityResponseSuccess = (campaignSetTagsForEntityResponse200) & {
|
|
1204
|
+
headers: Headers;
|
|
1205
|
+
};
|
|
1206
|
+
export type campaignSetTagsForEntityResponseError = (campaignSetTagsForEntityResponse400 | campaignSetTagsForEntityResponse401 | campaignSetTagsForEntityResponse404) & {
|
|
1207
|
+
headers: Headers;
|
|
1208
|
+
};
|
|
1209
|
+
|
|
1210
|
+
export type campaignSetTagsForEntityResponse = (campaignSetTagsForEntityResponseSuccess | campaignSetTagsForEntityResponseError)
|
|
1211
|
+
|
|
1212
|
+
export const getCampaignSetTagsForEntityUrl = (entityUid: string | null,) => {
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
|
|
1217
|
+
return `/api/v1/email/campaigns/broadcasts/${entityUid}/tags`
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
export const campaignSetTagsForEntity = async (entityUid: string | null,
|
|
1221
|
+
campaignSetTagsForEntityBody: CampaignSetTagsForEntityBody, options?: RequestInit): Promise<campaignSetTagsForEntityResponse> => {
|
|
1222
|
+
|
|
1223
|
+
return customFetch<campaignSetTagsForEntityResponse>(getCampaignSetTagsForEntityUrl(entityUid),
|
|
1224
|
+
{
|
|
1225
|
+
...options,
|
|
1226
|
+
method: 'PUT',
|
|
1227
|
+
headers: { 'Content-Type': 'application/json', ...options?.headers },
|
|
1228
|
+
body: JSON.stringify(
|
|
1229
|
+
campaignSetTagsForEntityBody,)
|
|
1230
|
+
}
|
|
1231
|
+
);}
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
/**
|
|
1235
|
+
* The tag itself is kept and stays available for other records. If the record does not
|
|
1236
|
+
carry the tag, nothing changes and the call still succeeds.
|
|
1237
|
+
* @summary Remove one tag from a record.
|
|
1238
|
+
*/
|
|
1239
|
+
export type campaignRemoveTagFromEntityResponse200 = {
|
|
1240
|
+
data: Blob
|
|
1241
|
+
status: 200
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
export type campaignRemoveTagFromEntityResponse400 = {
|
|
1245
|
+
data: void
|
|
1246
|
+
status: 400
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
export type campaignRemoveTagFromEntityResponse401 = {
|
|
1250
|
+
data: void
|
|
1251
|
+
status: 401
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
export type campaignRemoveTagFromEntityResponse404 = {
|
|
1255
|
+
data: void
|
|
1256
|
+
status: 404
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
export type campaignRemoveTagFromEntityResponseSuccess = (campaignRemoveTagFromEntityResponse200) & {
|
|
1260
|
+
headers: Headers;
|
|
1261
|
+
};
|
|
1262
|
+
export type campaignRemoveTagFromEntityResponseError = (campaignRemoveTagFromEntityResponse400 | campaignRemoveTagFromEntityResponse401 | campaignRemoveTagFromEntityResponse404) & {
|
|
1263
|
+
headers: Headers;
|
|
1264
|
+
};
|
|
1265
|
+
|
|
1266
|
+
export type campaignRemoveTagFromEntityResponse = (campaignRemoveTagFromEntityResponseSuccess | campaignRemoveTagFromEntityResponseError)
|
|
1267
|
+
|
|
1268
|
+
export const getCampaignRemoveTagFromEntityUrl = (entityUid: string | null,
|
|
1269
|
+
tagUid: string | null,) => {
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
|
|
1273
|
+
|
|
1274
|
+
return `/api/v1/email/campaigns/broadcasts/${entityUid}/tags/${tagUid}`
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
export const campaignRemoveTagFromEntity = async (entityUid: string | null,
|
|
1278
|
+
tagUid: string | null, options?: RequestInit): Promise<campaignRemoveTagFromEntityResponse> => {
|
|
1279
|
+
|
|
1280
|
+
return customFetch<campaignRemoveTagFromEntityResponse>(getCampaignRemoveTagFromEntityUrl(entityUid,tagUid),
|
|
1281
|
+
{
|
|
1282
|
+
...options,
|
|
1283
|
+
method: 'DELETE'
|
|
1284
|
+
|
|
1285
|
+
|
|
1286
|
+
}
|
|
1287
|
+
);}
|
|
1288
|
+
|
|
1289
|
+
|
|
1041
1290
|
/**
|
|
1042
1291
|
* @summary Retrieve all email lists.
|
|
1043
1292
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
import type { SupportArticleStatus } from './supportArticleStatus';
|
|
3
3
|
import type { ArticleAllOfCategory } from './articleAllOfCategory';
|
|
4
|
+
import type { Tag } from './tag';
|
|
4
5
|
|
|
5
6
|
export type ArticleAllOf = {
|
|
6
7
|
Weight?: number;
|
|
@@ -23,4 +24,6 @@ export type ArticleAllOf = {
|
|
|
23
24
|
* @nullable
|
|
24
25
|
*/
|
|
25
26
|
Keywords?: string | null;
|
|
27
|
+
/** @nullable */
|
|
28
|
+
Tags?: Tag[] | null;
|
|
26
29
|
};
|
|
@@ -8,6 +8,14 @@ export type ArticleGetAllArticlesParams = {
|
|
|
8
8
|
* @nullable
|
|
9
9
|
*/
|
|
10
10
|
q?: string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Keep only the records that carry one of these tags. Separate several tag uids with commas. The value none keeps the records that carry no tag at all.
|
|
13
|
+
*/
|
|
14
|
+
tagUid?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Keep only the records that carry none of these tags. Separate several tag uids with commas. Combined with tagUid, the two widen the result instead of narrowing it: a record is kept when it matches either one.
|
|
17
|
+
*/
|
|
18
|
+
withoutTagUid?: string;
|
|
11
19
|
/**
|
|
12
20
|
* 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.
|
|
13
21
|
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import type { LimitParameter } from './limitParameter';
|
|
3
|
+
import type { OffsetParameter } from './offsetParameter';
|
|
4
|
+
|
|
5
|
+
export type ArticleGetTagsForEntityParams = {
|
|
6
|
+
/**
|
|
7
|
+
* 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.
|
|
8
|
+
*/
|
|
9
|
+
limit?: LimitParameter;
|
|
10
|
+
/**
|
|
11
|
+
* 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).
|
|
12
|
+
*/
|
|
13
|
+
offset?: OffsetParameter;
|
|
14
|
+
};
|
|
@@ -3,6 +3,14 @@ import type { LimitParameter } from './limitParameter';
|
|
|
3
3
|
import type { OffsetParameter } from './offsetParameter';
|
|
4
4
|
|
|
5
5
|
export type CampaignGetAllBroadcastEmailsParams = {
|
|
6
|
+
/**
|
|
7
|
+
* Keep only the records that carry one of these tags. Separate several tag uids with commas. The value none keeps the records that carry no tag at all.
|
|
8
|
+
*/
|
|
9
|
+
tagUid?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Keep only the records that carry none of these tags. Separate several tag uids with commas. Combined with tagUid, the two widen the result instead of narrowing it: a record is kept when it matches either one.
|
|
12
|
+
*/
|
|
13
|
+
withoutTagUid?: string;
|
|
6
14
|
/**
|
|
7
15
|
* 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.
|
|
8
16
|
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import type { LimitParameter } from './limitParameter';
|
|
3
|
+
import type { OffsetParameter } from './offsetParameter';
|
|
4
|
+
|
|
5
|
+
export type CampaignGetTagsForEntityParams = {
|
|
6
|
+
/**
|
|
7
|
+
* 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.
|
|
8
|
+
*/
|
|
9
|
+
limit?: LimitParameter;
|
|
10
|
+
/**
|
|
11
|
+
* 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).
|
|
12
|
+
*/
|
|
13
|
+
offset?: OffsetParameter;
|
|
14
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* `0` - None, `1` - Account, `2` - Person, `3` - Deal, `4` - Case, `5` - Invoice, `6` - EmailLog, `7` - Plan, `8` - DiscountCoupon, `9` - AddOn, `10` - Task, `11` - Segment, `12` - Broadcast
|
|
4
|
+
* `0` - None, `1` - Account, `2` - Person, `3` - Deal, `4` - Case, `5` - Invoice, `6` - EmailLog, `7` - Plan, `8` - DiscountCoupon, `9` - AddOn, `10` - Task, `11` - Segment, `12` - Broadcast, `13` - Article
|
|
5
5
|
*/
|
|
6
6
|
export type EntityType = typeof EntityType[keyof typeof EntityType];
|
|
7
7
|
|
|
@@ -21,4 +21,5 @@ export const EntityType = {
|
|
|
21
21
|
Task: 10,
|
|
22
22
|
Segment: 11,
|
|
23
23
|
Broadcast: 12,
|
|
24
|
+
Article: 13,
|
|
24
25
|
} as const;
|
|
@@ -227,10 +227,14 @@ export * from './apiKeyAllOfQcount';
|
|
|
227
227
|
export * from './apiKeyType';
|
|
228
228
|
export * from './article';
|
|
229
229
|
export * from './articleAddArticleBody';
|
|
230
|
+
export * from './articleAddTagToEntityBody';
|
|
230
231
|
export * from './articleAllOf';
|
|
231
232
|
export * from './articleAllOfCategory';
|
|
232
233
|
export * from './articleGetAllArticles200';
|
|
233
234
|
export * from './articleGetAllArticlesParams';
|
|
235
|
+
export * from './articleGetTagsForEntity200';
|
|
236
|
+
export * from './articleGetTagsForEntityParams';
|
|
237
|
+
export * from './articleSetTagsForEntityBody';
|
|
234
238
|
export * from './authGetTokenParams';
|
|
235
239
|
export * from './authMagicLinkTokenParams';
|
|
236
240
|
export * from './authResendTwoFactorParams';
|
|
@@ -252,10 +256,14 @@ export * from './broadcastCampaignAllOfMessage';
|
|
|
252
256
|
export * from './broadcastCampaignStatus';
|
|
253
257
|
export * from './campaign';
|
|
254
258
|
export * from './campaignAddBroadcastEmailBody';
|
|
259
|
+
export * from './campaignAddTagToEntityBody';
|
|
255
260
|
export * from './campaignAllOf';
|
|
256
261
|
export * from './campaignGetAllBroadcastEmails200';
|
|
257
262
|
export * from './campaignGetAllBroadcastEmailsParams';
|
|
263
|
+
export * from './campaignGetTagsForEntity200';
|
|
264
|
+
export * from './campaignGetTagsForEntityParams';
|
|
258
265
|
export * from './campaignSendTestCampaignEmailBody';
|
|
266
|
+
export * from './campaignSetTagsForEntityBody';
|
|
259
267
|
export * from './campaignType';
|
|
260
268
|
export * from './campaignUpdateBroadcastEmailBody';
|
|
261
269
|
export * from './cancelationStatus';
|
|
@@ -559,11 +567,15 @@ export * from './qcountStatus';
|
|
|
559
567
|
export * from './registrationField';
|
|
560
568
|
export * from './resendEmailsRequest';
|
|
561
569
|
export * from './segment';
|
|
570
|
+
export * from './segmentAddTagToEntityBody';
|
|
562
571
|
export * from './segmentAllOf';
|
|
572
|
+
export * from './segmentGetTagsForEntity200';
|
|
573
|
+
export * from './segmentGetTagsForEntityParams';
|
|
563
574
|
export * from './segmentPerson';
|
|
564
575
|
export * from './segmentPersonAllOf';
|
|
565
576
|
export * from './segmentPersonAllOfPerson';
|
|
566
577
|
export * from './segmentPersonAllOfSegment';
|
|
578
|
+
export * from './segmentSetTagsForEntityBody';
|
|
567
579
|
export * from './sendGridDomainAuthentication';
|
|
568
580
|
export * from './sendGridDomainAuthenticationAllOf';
|
|
569
581
|
export * from './sendTemplateEmailRequest';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import type { LimitParameter } from './limitParameter';
|
|
3
|
+
import type { OffsetParameter } from './offsetParameter';
|
|
4
|
+
|
|
5
|
+
export type SegmentGetTagsForEntityParams = {
|
|
6
|
+
/**
|
|
7
|
+
* 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.
|
|
8
|
+
*/
|
|
9
|
+
limit?: LimitParameter;
|
|
10
|
+
/**
|
|
11
|
+
* 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).
|
|
12
|
+
*/
|
|
13
|
+
offset?: OffsetParameter;
|
|
14
|
+
};
|
|
@@ -23,6 +23,8 @@ export type SupportSettingsAllOf = {
|
|
|
23
23
|
/** @nullable */
|
|
24
24
|
KnowledgeBaseFooterLinkJSON?: string | null;
|
|
25
25
|
/** @nullable */
|
|
26
|
+
KnowledgeBaseFilterJSON?: string | null;
|
|
27
|
+
/** @nullable */
|
|
26
28
|
OfficeHoursJSON?: string | null;
|
|
27
29
|
/** @nullable */
|
|
28
30
|
EmailNotificationForNewTickets?: string | null;
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
import type {
|
|
3
3
|
Article,
|
|
4
4
|
ArticleAddArticleBody,
|
|
5
|
+
ArticleAddTagToEntityBody,
|
|
5
6
|
ArticleGetAllArticles200,
|
|
6
7
|
ArticleGetAllArticlesParams,
|
|
8
|
+
ArticleGetTagsForEntity200,
|
|
9
|
+
ArticleGetTagsForEntityParams,
|
|
10
|
+
ArticleSetTagsForEntityBody,
|
|
7
11
|
Case,
|
|
8
12
|
CaseAddCaseBody,
|
|
9
13
|
CaseAddCaseParams,
|
|
@@ -514,6 +518,242 @@ export const articleGetArticle = async (articleUid: string | null, options?: Req
|
|
|
514
518
|
);}
|
|
515
519
|
|
|
516
520
|
|
|
521
|
+
/**
|
|
522
|
+
* Send the uids of the tags to add. Tags that the record already carries stay on it, and
|
|
523
|
+
naming one of them again changes nothing, so the same request is safe to repeat. To
|
|
524
|
+
replace the whole set instead, use PUT on this same path.
|
|
525
|
+
|
|
526
|
+
A tag belongs to one entity type, so use tags whose EntityType matches this record.
|
|
527
|
+
List them with GET /attribute/tags. A uid in the list that names no tag is skipped.
|
|
528
|
+
* @summary Add tags to a record.
|
|
529
|
+
*/
|
|
530
|
+
export type articleAddTagToEntityResponse200 = {
|
|
531
|
+
data: Blob
|
|
532
|
+
status: 200
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
export type articleAddTagToEntityResponse400 = {
|
|
536
|
+
data: void
|
|
537
|
+
status: 400
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
export type articleAddTagToEntityResponse401 = {
|
|
541
|
+
data: void
|
|
542
|
+
status: 401
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
export type articleAddTagToEntityResponse404 = {
|
|
546
|
+
data: void
|
|
547
|
+
status: 404
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
export type articleAddTagToEntityResponseSuccess = (articleAddTagToEntityResponse200) & {
|
|
551
|
+
headers: Headers;
|
|
552
|
+
};
|
|
553
|
+
export type articleAddTagToEntityResponseError = (articleAddTagToEntityResponse400 | articleAddTagToEntityResponse401 | articleAddTagToEntityResponse404) & {
|
|
554
|
+
headers: Headers;
|
|
555
|
+
};
|
|
556
|
+
|
|
557
|
+
export type articleAddTagToEntityResponse = (articleAddTagToEntityResponseSuccess | articleAddTagToEntityResponseError)
|
|
558
|
+
|
|
559
|
+
export const getArticleAddTagToEntityUrl = (entityUid: string | null,) => {
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
return `/api/v1/support/articles/${entityUid}/tags`
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
export const articleAddTagToEntity = async (entityUid: string | null,
|
|
568
|
+
articleAddTagToEntityBody: ArticleAddTagToEntityBody, options?: RequestInit): Promise<articleAddTagToEntityResponse> => {
|
|
569
|
+
|
|
570
|
+
return customFetch<articleAddTagToEntityResponse>(getArticleAddTagToEntityUrl(entityUid),
|
|
571
|
+
{
|
|
572
|
+
...options,
|
|
573
|
+
method: 'POST',
|
|
574
|
+
headers: { 'Content-Type': 'application/json', ...options?.headers },
|
|
575
|
+
body: JSON.stringify(
|
|
576
|
+
articleAddTagToEntityBody,)
|
|
577
|
+
}
|
|
578
|
+
);}
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Returns the tags themselves, not the links that hold them. The same tags are also
|
|
583
|
+
available on the record: ask for them with the fields parameter, for example
|
|
584
|
+
fields=Uid,Tags.Uid,Tags.Name,Tags.TagColor. Tags cost an extra query, so the record
|
|
585
|
+
leaves them out unless fields names Tags or is a plain wildcard.
|
|
586
|
+
* @summary Retrieve the tags on a record.
|
|
587
|
+
*/
|
|
588
|
+
export type articleGetTagsForEntityResponse200 = {
|
|
589
|
+
data: ArticleGetTagsForEntity200
|
|
590
|
+
status: 200
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
export type articleGetTagsForEntityResponse400 = {
|
|
594
|
+
data: void
|
|
595
|
+
status: 400
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
export type articleGetTagsForEntityResponse401 = {
|
|
599
|
+
data: void
|
|
600
|
+
status: 401
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
export type articleGetTagsForEntityResponseSuccess = (articleGetTagsForEntityResponse200) & {
|
|
604
|
+
headers: Headers;
|
|
605
|
+
};
|
|
606
|
+
export type articleGetTagsForEntityResponseError = (articleGetTagsForEntityResponse400 | articleGetTagsForEntityResponse401) & {
|
|
607
|
+
headers: Headers;
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
export type articleGetTagsForEntityResponse = (articleGetTagsForEntityResponseSuccess | articleGetTagsForEntityResponseError)
|
|
611
|
+
|
|
612
|
+
export const getArticleGetTagsForEntityUrl = (entityUid: string | null,
|
|
613
|
+
params?: ArticleGetTagsForEntityParams,) => {
|
|
614
|
+
const normalizedParams = new URLSearchParams();
|
|
615
|
+
|
|
616
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
617
|
+
|
|
618
|
+
if (value !== undefined) {
|
|
619
|
+
normalizedParams.append(key, value === null ? 'null' : value.toString())
|
|
620
|
+
}
|
|
621
|
+
});
|
|
622
|
+
|
|
623
|
+
const stringifiedParams = normalizedParams.toString();
|
|
624
|
+
|
|
625
|
+
return stringifiedParams.length > 0 ? `/api/v1/support/articles/${entityUid}/tags?${stringifiedParams}` : `/api/v1/support/articles/${entityUid}/tags`
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
export const articleGetTagsForEntity = async (entityUid: string | null,
|
|
629
|
+
params?: ArticleGetTagsForEntityParams, options?: RequestInit): Promise<articleGetTagsForEntityResponse> => {
|
|
630
|
+
|
|
631
|
+
return customFetch<articleGetTagsForEntityResponse>(getArticleGetTagsForEntityUrl(entityUid,params),
|
|
632
|
+
{
|
|
633
|
+
...options,
|
|
634
|
+
method: 'GET'
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
}
|
|
638
|
+
);}
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Send the full set of tags the record must end with. A tag that the list leaves out is
|
|
643
|
+
taken off the record, and one that the list names is added. Send an empty list to take
|
|
644
|
+
every tag off. To add tags without disturbing the others, use POST on this same path.
|
|
645
|
+
|
|
646
|
+
A tag belongs to one entity type, so use tags whose EntityType matches this record.
|
|
647
|
+
List them with GET /attribute/tags. A uid in the list that names no tag is skipped.
|
|
648
|
+
* @summary Replace the tags on a record.
|
|
649
|
+
*/
|
|
650
|
+
export type articleSetTagsForEntityResponse200 = {
|
|
651
|
+
data: Blob
|
|
652
|
+
status: 200
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
export type articleSetTagsForEntityResponse400 = {
|
|
656
|
+
data: void
|
|
657
|
+
status: 400
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
export type articleSetTagsForEntityResponse401 = {
|
|
661
|
+
data: void
|
|
662
|
+
status: 401
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
export type articleSetTagsForEntityResponse404 = {
|
|
666
|
+
data: void
|
|
667
|
+
status: 404
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
export type articleSetTagsForEntityResponseSuccess = (articleSetTagsForEntityResponse200) & {
|
|
671
|
+
headers: Headers;
|
|
672
|
+
};
|
|
673
|
+
export type articleSetTagsForEntityResponseError = (articleSetTagsForEntityResponse400 | articleSetTagsForEntityResponse401 | articleSetTagsForEntityResponse404) & {
|
|
674
|
+
headers: Headers;
|
|
675
|
+
};
|
|
676
|
+
|
|
677
|
+
export type articleSetTagsForEntityResponse = (articleSetTagsForEntityResponseSuccess | articleSetTagsForEntityResponseError)
|
|
678
|
+
|
|
679
|
+
export const getArticleSetTagsForEntityUrl = (entityUid: string | null,) => {
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
return `/api/v1/support/articles/${entityUid}/tags`
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
export const articleSetTagsForEntity = async (entityUid: string | null,
|
|
688
|
+
articleSetTagsForEntityBody: ArticleSetTagsForEntityBody, options?: RequestInit): Promise<articleSetTagsForEntityResponse> => {
|
|
689
|
+
|
|
690
|
+
return customFetch<articleSetTagsForEntityResponse>(getArticleSetTagsForEntityUrl(entityUid),
|
|
691
|
+
{
|
|
692
|
+
...options,
|
|
693
|
+
method: 'PUT',
|
|
694
|
+
headers: { 'Content-Type': 'application/json', ...options?.headers },
|
|
695
|
+
body: JSON.stringify(
|
|
696
|
+
articleSetTagsForEntityBody,)
|
|
697
|
+
}
|
|
698
|
+
);}
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* The tag itself is kept and stays available for other records. If the record does not
|
|
703
|
+
carry the tag, nothing changes and the call still succeeds.
|
|
704
|
+
* @summary Remove one tag from a record.
|
|
705
|
+
*/
|
|
706
|
+
export type articleRemoveTagFromEntityResponse200 = {
|
|
707
|
+
data: Blob
|
|
708
|
+
status: 200
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
export type articleRemoveTagFromEntityResponse400 = {
|
|
712
|
+
data: void
|
|
713
|
+
status: 400
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
export type articleRemoveTagFromEntityResponse401 = {
|
|
717
|
+
data: void
|
|
718
|
+
status: 401
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
export type articleRemoveTagFromEntityResponse404 = {
|
|
722
|
+
data: void
|
|
723
|
+
status: 404
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
export type articleRemoveTagFromEntityResponseSuccess = (articleRemoveTagFromEntityResponse200) & {
|
|
727
|
+
headers: Headers;
|
|
728
|
+
};
|
|
729
|
+
export type articleRemoveTagFromEntityResponseError = (articleRemoveTagFromEntityResponse400 | articleRemoveTagFromEntityResponse401 | articleRemoveTagFromEntityResponse404) & {
|
|
730
|
+
headers: Headers;
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
export type articleRemoveTagFromEntityResponse = (articleRemoveTagFromEntityResponseSuccess | articleRemoveTagFromEntityResponseError)
|
|
734
|
+
|
|
735
|
+
export const getArticleRemoveTagFromEntityUrl = (entityUid: string | null,
|
|
736
|
+
tagUid: string | null,) => {
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
return `/api/v1/support/articles/${entityUid}/tags/${tagUid}`
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
export const articleRemoveTagFromEntity = async (entityUid: string | null,
|
|
745
|
+
tagUid: string | null, options?: RequestInit): Promise<articleRemoveTagFromEntityResponse> => {
|
|
746
|
+
|
|
747
|
+
return customFetch<articleRemoveTagFromEntityResponse>(getArticleRemoveTagFromEntityUrl(entityUid,tagUid),
|
|
748
|
+
{
|
|
749
|
+
...options,
|
|
750
|
+
method: 'DELETE'
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
}
|
|
754
|
+
);}
|
|
755
|
+
|
|
756
|
+
|
|
517
757
|
/**
|
|
518
758
|
* @summary Retrieve all knowledge base categories.
|
|
519
759
|
*/
|