@unboundcx/sdk 4.8.9 → 4.8.11

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 (57) hide show
  1. package/base.js +71 -29
  2. package/index.js +6 -3
  3. package/package.json +1 -4
  4. package/services/ai/playbooks.js +22 -21
  5. package/services/ai/settings.js +4 -2
  6. package/services/ai/translate.js +3 -1
  7. package/services/ai/vocabulary.js +4 -3
  8. package/services/ai.js +21 -20
  9. package/services/chat.js +124 -48
  10. package/services/developerApis.js +174 -0
  11. package/services/directory.js +109 -12
  12. package/services/documents.js +11 -10
  13. package/services/engagementMetrics.js +2 -1
  14. package/services/enroll.js +16 -15
  15. package/services/externalOAuth.js +12 -11
  16. package/services/fax.js +4 -3
  17. package/services/generateId.js +3 -2
  18. package/services/googleCalendar.js +7 -6
  19. package/services/inbox.js +59 -11
  20. package/services/knowledgeBase.js +9 -8
  21. package/services/layouts.js +15 -14
  22. package/services/login.js +8 -7
  23. package/services/lookup.js +4 -3
  24. package/services/messaging/EmailAddressesService.js +5 -4
  25. package/services/messaging/EmailAnalyticsService.js +5 -4
  26. package/services/messaging/EmailDomainsService.js +8 -7
  27. package/services/messaging/EmailMailboxesService.js +59 -9
  28. package/services/messaging/EmailQueueService.js +2 -1
  29. package/services/messaging/EmailService.js +12 -11
  30. package/services/messaging/EmailSuppressionService.js +5 -4
  31. package/services/messaging/EmailTemplatesService.js +6 -5
  32. package/services/messaging/SmsService.js +3 -2
  33. package/services/messaging/SmsTemplatesService.js +6 -5
  34. package/services/messaging/TenDlcBrandsService.js +11 -10
  35. package/services/messaging/TenDlcCampaignManagementService.js +14 -13
  36. package/services/messaging/TenDlcCampaignsService.js +2 -1
  37. package/services/messaging/TollFreeCampaignsService.js +13 -12
  38. package/services/notes.js +7 -6
  39. package/services/objects.js +97 -36
  40. package/services/permissions.js +34 -33
  41. package/services/phoneNumbers.js +28 -27
  42. package/services/portals.js +8 -7
  43. package/services/recordTypes.js +12 -11
  44. package/services/search.js +2 -1
  45. package/services/sipEndpoints.js +8 -7
  46. package/services/storage.js +16 -15
  47. package/services/subscriptions.js +4 -3
  48. package/services/taskRouter/CCService.js +303 -0
  49. package/services/taskRouter/MetricsService.js +56 -1
  50. package/services/taskRouter/TaskRouterService.js +2 -0
  51. package/services/taskRouter/TaskService.js +13 -12
  52. package/services/taskRouter/WorkerService.js +9 -8
  53. package/services/triggers.js +9 -8
  54. package/services/verification.js +5 -4
  55. package/services/video.js +230 -45
  56. package/services/voice.js +40 -11
  57. package/services/workflows.js +22 -21
@@ -1,3 +1,4 @@
1
+ import { internalRequest } from '../../base.js';
1
2
  export class TollFreeCampaignsService {
2
3
  constructor(sdk) {
3
4
  this.sdk = sdk;
@@ -129,7 +130,7 @@ export class TollFreeCampaignsService {
129
130
  campaignData.ageGatedContent = ageGatedContent;
130
131
  if (optInKeywords !== undefined) campaignData.optInKeywords = optInKeywords;
131
132
 
132
- const result = await this.sdk._fetch(
133
+ const result = await internalRequest(this.sdk,
133
134
  '/messaging/campaigns/tollfree',
134
135
  'POST',
135
136
  { body: campaignData },
@@ -150,7 +151,7 @@ export class TollFreeCampaignsService {
150
151
  },
151
152
  );
152
153
 
153
- const result = await this.sdk._fetch(
154
+ const result = await internalRequest(this.sdk,
154
155
  `/messaging/campaigns/tollfree/${campaignId}`,
155
156
  'GET',
156
157
  );
@@ -255,7 +256,7 @@ export class TollFreeCampaignsService {
255
256
  updateData.ageGatedContent = ageGatedContent;
256
257
  if (optInKeywords !== undefined) updateData.optInKeywords = optInKeywords;
257
258
 
258
- const result = await this.sdk._fetch(
259
+ const result = await internalRequest(this.sdk,
259
260
  `/messaging/campaigns/tollfree/${campaignId}`,
260
261
  'PUT',
261
262
  { body: updateData },
@@ -271,7 +272,7 @@ export class TollFreeCampaignsService {
271
272
  },
272
273
  );
273
274
 
274
- const result = await this.sdk._fetch(
275
+ const result = await internalRequest(this.sdk,
275
276
  `/messaging/campaigns/tollfree/${campaignId}`,
276
277
  'DELETE',
277
278
  );
@@ -301,7 +302,7 @@ export class TollFreeCampaignsService {
301
302
  ? `/messaging/campaigns/tollfree?${queryParams.toString()}`
302
303
  : '/messaging/campaigns/tollfree';
303
304
 
304
- const result = await this.sdk._fetch(url, 'GET');
305
+ const result = await internalRequest(this.sdk, url, 'GET');
305
306
  return result;
306
307
  }
307
308
 
@@ -313,7 +314,7 @@ export class TollFreeCampaignsService {
313
314
  },
314
315
  );
315
316
 
316
- const result = await this.sdk._fetch(
317
+ const result = await internalRequest(this.sdk,
317
318
  `/messaging/campaigns/tollfree/refresh/${campaignId}`,
318
319
  'GET',
319
320
  );
@@ -336,7 +337,7 @@ export class TollFreeCampaignsService {
336
337
  },
337
338
  );
338
339
 
339
- const result = await this.sdk._fetch(
340
+ const result = await internalRequest(this.sdk,
340
341
  `/messaging/campaigns/tollfree/${campaignId}/submit`,
341
342
  'POST',
342
343
  { body: { termsAndConditions } },
@@ -362,7 +363,7 @@ export class TollFreeCampaignsService {
362
363
  const body = {};
363
364
  if (name !== undefined) body.name = name;
364
365
 
365
- const result = await this.sdk._fetch(
366
+ const result = await internalRequest(this.sdk,
366
367
  `/messaging/campaigns/tollfree/${campaignId}/duplicate`,
367
368
  'POST',
368
369
  { body },
@@ -383,7 +384,7 @@ export class TollFreeCampaignsService {
383
384
  },
384
385
  );
385
386
 
386
- const result = await this.sdk._fetch(
387
+ const result = await internalRequest(this.sdk,
387
388
  `/messaging/campaigns/tollfree/${campaignId}/phoneNumbers`,
388
389
  'GET',
389
390
  );
@@ -406,7 +407,7 @@ export class TollFreeCampaignsService {
406
407
  },
407
408
  );
408
409
 
409
- const result = await this.sdk._fetch(
410
+ const result = await internalRequest(this.sdk,
410
411
  `/messaging/campaigns/tollfree/${campaignId}/phoneNumber`,
411
412
  'POST',
412
413
  { body: { phoneNumber } },
@@ -430,7 +431,7 @@ export class TollFreeCampaignsService {
430
431
  },
431
432
  );
432
433
 
433
- const result = await this.sdk._fetch(
434
+ const result = await internalRequest(this.sdk,
434
435
  `/messaging/campaigns/tollfree/${campaignId}/phoneNumber`,
435
436
  'DELETE',
436
437
  { body: { phoneNumber } },
@@ -446,7 +447,7 @@ export class TollFreeCampaignsService {
446
447
  },
447
448
  );
448
449
 
449
- const result = await this.sdk._fetch(
450
+ const result = await internalRequest(this.sdk,
450
451
  `/messaging/campaigns/tollfree/phoneNumber/${encodeURIComponent(
451
452
  phoneNumber,
452
453
  )}/campaignStatus`,
package/services/notes.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { internalRequest } from '../base.js';
1
2
  export class NotesService {
2
3
  constructor(sdk) {
3
4
  this.sdk = sdk;
@@ -25,7 +26,7 @@ export class NotesService {
25
26
  },
26
27
  };
27
28
 
28
- const result = await this.sdk._fetch('/notes', 'GET', params);
29
+ const result = await internalRequest(this.sdk, '/notes', 'GET', params);
29
30
  return result;
30
31
  }
31
32
 
@@ -75,7 +76,7 @@ export class NotesService {
75
76
  },
76
77
  };
77
78
 
78
- const result = await this.sdk._fetch('/notes', 'POST', params);
79
+ const result = await internalRequest(this.sdk, '/notes', 'POST', params);
79
80
  return result;
80
81
  }
81
82
 
@@ -107,7 +108,7 @@ export class NotesService {
107
108
  },
108
109
  };
109
110
 
110
- const result = await this.sdk._fetch(`/notes/${noteId}`, 'PUT', params);
111
+ const result = await internalRequest(this.sdk, `/notes/${noteId}`, 'PUT', params);
111
112
  return result;
112
113
  }
113
114
 
@@ -119,7 +120,7 @@ export class NotesService {
119
120
  },
120
121
  );
121
122
 
122
- const result = await this.sdk._fetch(`/notes/${noteId}`, 'DELETE');
123
+ const result = await internalRequest(this.sdk, `/notes/${noteId}`, 'DELETE');
123
124
  return result;
124
125
  }
125
126
 
@@ -131,7 +132,7 @@ export class NotesService {
131
132
  },
132
133
  );
133
134
 
134
- const result = await this.sdk._fetch(`/notes/${noteId}`, 'GET');
135
+ const result = await internalRequest(this.sdk, `/notes/${noteId}`, 'GET');
135
136
  return result;
136
137
  }
137
138
 
@@ -150,7 +151,7 @@ export class NotesService {
150
151
  body: { query, relatedId, limit, isPublic },
151
152
  };
152
153
 
153
- const result = await this.sdk._fetch('/notes/search', 'POST', params);
154
+ const result = await internalRequest(this.sdk, '/notes/search', 'POST', params);
154
155
  return result;
155
156
  }
156
157
  }
@@ -1,3 +1,4 @@
1
+ import { internalRequest } from '../base.js';
1
2
  /**
2
3
  * Objects Service - Manage data objects in the Unbound platform
3
4
  *
@@ -84,7 +85,7 @@ export class ObjectsService {
84
85
 
85
86
  const params = { query };
86
87
 
87
- const result = await this.sdk._fetch(`/object/${id}`, 'GET', params);
88
+ const result = await internalRequest(this.sdk, `/object/${id}`, 'GET', params);
88
89
  // console.log(`sdk.objects.byId :: params :: `, params, result);
89
90
  return result;
90
91
  }
@@ -157,7 +158,7 @@ export class ObjectsService {
157
158
  if (expandDetails) query.expandDetails = expandDetails;
158
159
 
159
160
  const params = { query };
160
- return await this.sdk._fetch(`/object/query/${object}`, 'GET', params);
161
+ return await internalRequest(this.sdk, `/object/query/${object}`, 'GET', params);
161
162
  }
162
163
 
163
164
  // Old signature: query(objectName, queryParams)
@@ -172,7 +173,7 @@ export class ObjectsService {
172
173
  );
173
174
 
174
175
  const params = { query: queryParams };
175
- return await this.sdk._fetch(
176
+ return await internalRequest(this.sdk,
176
177
  `/object/query/${objectName}`,
177
178
  'GET',
178
179
  params,
@@ -204,7 +205,7 @@ export class ObjectsService {
204
205
  const body = { query, expandDetails };
205
206
  if (isPublic) body.isPublic = isPublic;
206
207
  const params = { body };
207
- return await this.sdk._fetch('/object/query/v2', 'POST', params);
208
+ return await internalRequest(this.sdk, '/object/query/v2', 'POST', params);
208
209
  }
209
210
 
210
211
  /**
@@ -243,7 +244,7 @@ export class ObjectsService {
243
244
  };
244
245
  if (skipTriggers) params.query = { skipTriggers: true };
245
246
 
246
- return await this.sdk._fetch(`/object/${object}`, 'PUT', params);
247
+ return await internalRequest(this.sdk, `/object/${object}`, 'PUT', params);
247
248
  }
248
249
 
249
250
  // Old signature: updateById(object, id, update)
@@ -266,7 +267,7 @@ export class ObjectsService {
266
267
  },
267
268
  };
268
269
 
269
- return await this.sdk._fetch(`/object/${object}`, 'PUT', params);
270
+ return await internalRequest(this.sdk, `/object/${object}`, 'PUT', params);
270
271
  }
271
272
 
272
273
  throw new Error('Invalid arguments for updateById method');
@@ -309,7 +310,7 @@ export class ObjectsService {
309
310
  };
310
311
  if (skipTriggers) params.query = { skipTriggers: true };
311
312
 
312
- const result = await this.sdk._fetch(`/object/${object}`, 'PUT', params);
313
+ const result = await internalRequest(this.sdk, `/object/${object}`, 'PUT', params);
313
314
  return result;
314
315
  }
315
316
 
@@ -342,7 +343,7 @@ export class ObjectsService {
342
343
 
343
344
  const params = { body };
344
345
  if (skipTriggers) params.query = { skipTriggers: true };
345
- return await this.sdk._fetch(`/object/${object}`, 'POST', params);
346
+ return await internalRequest(this.sdk, `/object/${object}`, 'POST', params);
346
347
  }
347
348
 
348
349
  // Old signature: create(object, body)
@@ -358,7 +359,7 @@ export class ObjectsService {
358
359
  );
359
360
 
360
361
  const params = { body };
361
- return await this.sdk._fetch(`/object/${object}`, 'POST', params);
362
+ return await internalRequest(this.sdk, `/object/${object}`, 'POST', params);
362
363
  }
363
364
 
364
365
  throw new Error('Invalid arguments for create method');
@@ -397,7 +398,7 @@ export class ObjectsService {
397
398
  };
398
399
  if (skipTriggers) params.query = { skipTriggers: true };
399
400
 
400
- const result = await this.sdk._fetch(`/object/${object}`, 'DELETE', params);
401
+ const result = await internalRequest(this.sdk, `/object/${object}`, 'DELETE', params);
401
402
  return result;
402
403
  }
403
404
 
@@ -432,7 +433,7 @@ export class ObjectsService {
432
433
  };
433
434
  if (skipTriggers) params.query = { skipTriggers: true };
434
435
 
435
- const result = await this.sdk._fetch(`/object/${object}`, 'DELETE', params);
436
+ const result = await internalRequest(this.sdk, `/object/${object}`, 'DELETE', params);
436
437
  return result;
437
438
  }
438
439
 
@@ -447,7 +448,7 @@ export class ObjectsService {
447
448
  { objectName },
448
449
  { objectName: { type: 'string', required: true } },
449
450
  );
450
- return await this.sdk._fetch('/object/views', 'GET', {
451
+ return await internalRequest(this.sdk, '/object/views', 'GET', {
451
452
  query: { objectName },
452
453
  });
453
454
  }
@@ -472,7 +473,7 @@ export class ObjectsService {
472
473
  );
473
474
  const body = { objectName, name, filters };
474
475
  if (visibility !== undefined) body.visibility = visibility;
475
- return await this.sdk._fetch('/object/views', 'POST', { body });
476
+ return await internalRequest(this.sdk, '/object/views', 'POST', { body });
476
477
  }
477
478
 
478
479
  /**
@@ -485,11 +486,11 @@ export class ObjectsService {
485
486
  { viewId },
486
487
  { viewId: { type: 'string', required: true } },
487
488
  );
488
- return await this.sdk._fetch(`/object/views/${viewId}`, 'DELETE');
489
+ return await internalRequest(this.sdk, `/object/views/${viewId}`, 'DELETE');
489
490
  }
490
491
 
491
492
  async botSchema() {
492
- const result = await this.sdk._fetch(
493
+ const result = await internalRequest(this.sdk,
493
494
  '/object/manage/bot-schema',
494
495
  'GET',
495
496
  );
@@ -506,7 +507,7 @@ export class ObjectsService {
506
507
 
507
508
  const params = {};
508
509
 
509
- const result = await this.sdk._fetch(
510
+ const result = await internalRequest(this.sdk,
510
511
  `/object/describe/${object}`,
511
512
  'GET',
512
513
  params,
@@ -517,7 +518,7 @@ export class ObjectsService {
517
518
  async list() {
518
519
  const params = {};
519
520
 
520
- const result = await this.sdk._fetch(`/object/`, 'GET', params);
521
+ const result = await internalRequest(this.sdk, `/object/`, 'GET', params);
521
522
  return result;
522
523
  }
523
524
 
@@ -567,7 +568,7 @@ export class ObjectsService {
567
568
  };
568
569
  const params = { body };
569
570
 
570
- const result = await this.sdk._fetch(
571
+ const result = await internalRequest(this.sdk,
571
572
  `/object/expandDetails`,
572
573
  'POST',
573
574
  params,
@@ -616,7 +617,7 @@ export class ObjectsService {
616
617
 
617
618
  const params = { query };
618
619
 
619
- const result = await this.sdk._fetch(
620
+ const result = await internalRequest(this.sdk,
620
621
  `/object/expandDetails`,
621
622
  'GET',
622
623
  params,
@@ -632,7 +633,7 @@ export class ObjectsService {
632
633
  },
633
634
  );
634
635
 
635
- const result = await this.sdk._fetch(`/object/expandDetails/${id}`, 'GET');
636
+ const result = await internalRequest(this.sdk, `/object/expandDetails/${id}`, 'GET');
636
637
  return result;
637
638
  }
638
639
 
@@ -680,7 +681,7 @@ export class ObjectsService {
680
681
 
681
682
  const params = { body };
682
683
 
683
- const result = await this.sdk._fetch(
684
+ const result = await internalRequest(this.sdk,
684
685
  `/object/expandDetails/${id}`,
685
686
  'PUT',
686
687
  params,
@@ -696,7 +697,7 @@ export class ObjectsService {
696
697
  },
697
698
  );
698
699
 
699
- const result = await this.sdk._fetch(
700
+ const result = await internalRequest(this.sdk,
700
701
  `/object/expandDetails/${id}`,
701
702
  'DELETE',
702
703
  );
@@ -749,7 +750,7 @@ export class ObjectsService {
749
750
  };
750
751
  const params = { body };
751
752
 
752
- const result = await this.sdk._fetch(
753
+ const result = await internalRequest(this.sdk,
753
754
  `/object/generatedColumns`,
754
755
  'POST',
755
756
  params,
@@ -787,7 +788,7 @@ export class ObjectsService {
787
788
 
788
789
  const params = { query };
789
790
 
790
- const result = await this.sdk._fetch(
791
+ const result = await internalRequest(this.sdk,
791
792
  `/object/generatedColumns`,
792
793
  'GET',
793
794
  params,
@@ -803,7 +804,7 @@ export class ObjectsService {
803
804
  },
804
805
  );
805
806
 
806
- const result = await this.sdk._fetch(
807
+ const result = await internalRequest(this.sdk,
807
808
  `/object/generatedColumns/${id}`,
808
809
  'GET',
809
810
  );
@@ -845,7 +846,7 @@ export class ObjectsService {
845
846
 
846
847
  const params = { body };
847
848
 
848
- const result = await this.sdk._fetch(
849
+ const result = await internalRequest(this.sdk,
849
850
  `/object/generatedColumns/${id}`,
850
851
  'PUT',
851
852
  params,
@@ -861,7 +862,7 @@ export class ObjectsService {
861
862
  },
862
863
  );
863
864
 
864
- const result = await this.sdk._fetch(
865
+ const result = await internalRequest(this.sdk,
865
866
  `/object/generatedColumns/${id}`,
866
867
  'DELETE',
867
868
  );
@@ -880,7 +881,7 @@ export class ObjectsService {
880
881
  const body = { name };
881
882
  const params = { body };
882
883
 
883
- const result = await this.sdk._fetch(`/object/manage`, 'POST', params);
884
+ const result = await internalRequest(this.sdk, `/object/manage`, 'POST', params);
884
885
  return result;
885
886
  }
886
887
 
@@ -935,7 +936,7 @@ export class ObjectsService {
935
936
 
936
937
  const params = { body };
937
938
 
938
- const result = await this.sdk._fetch(
939
+ const result = await internalRequest(this.sdk,
939
940
  `/object/manage/${objectName}`,
940
941
  'POST',
941
942
  params,
@@ -966,7 +967,7 @@ export class ObjectsService {
966
967
 
967
968
  const params = { body };
968
969
 
969
- const result = await this.sdk._fetch(
970
+ const result = await internalRequest(this.sdk,
970
971
  `/object/manage/${objectName}`,
971
972
  'PUT',
972
973
  params,
@@ -1029,7 +1030,7 @@ export class ObjectsService {
1029
1030
 
1030
1031
  const params = { body };
1031
1032
 
1032
- const result = await this.sdk._fetch(
1033
+ const result = await internalRequest(this.sdk,
1033
1034
  `/object/manage/${objectName}/${columnName}`,
1034
1035
  'PUT',
1035
1036
  params,
@@ -1046,7 +1047,7 @@ export class ObjectsService {
1046
1047
  },
1047
1048
  );
1048
1049
 
1049
- const result = await this.sdk._fetch(
1050
+ const result = await internalRequest(this.sdk,
1050
1051
  `/object/manage/${objectName}/${columnName}`,
1051
1052
  'DELETE',
1052
1053
  );
@@ -1065,7 +1066,7 @@ export class ObjectsService {
1065
1066
  { connectionId },
1066
1067
  { connectionId: { type: 'string', required: true } },
1067
1068
  );
1068
- return this.sdk._fetch('/object/ad-catalog/google/accounts', 'GET', {
1069
+ return internalRequest(this.sdk, '/object/ad-catalog/google/accounts', 'GET', {
1069
1070
  query: { connectionId },
1070
1071
  });
1071
1072
  }
@@ -1089,7 +1090,7 @@ export class ObjectsService {
1089
1090
  );
1090
1091
  const query = { connectionId, customerId };
1091
1092
  if (loginCustomerId) query.loginCustomerId = loginCustomerId;
1092
- return this.sdk._fetch('/object/ad-catalog/google/campaigns', 'GET', {
1093
+ return internalRequest(this.sdk, '/object/ad-catalog/google/campaigns', 'GET', {
1093
1094
  query,
1094
1095
  });
1095
1096
  }
@@ -1106,7 +1107,7 @@ export class ObjectsService {
1106
1107
  { connectionId },
1107
1108
  { connectionId: { type: 'string', required: true } },
1108
1109
  );
1109
- return this.sdk._fetch('/object/ad-catalog/meta/accounts', 'GET', {
1110
+ return internalRequest(this.sdk, '/object/ad-catalog/meta/accounts', 'GET', {
1110
1111
  query: { connectionId },
1111
1112
  });
1112
1113
  }
@@ -1127,8 +1128,68 @@ export class ObjectsService {
1127
1128
  adAccountId: { type: 'string', required: true },
1128
1129
  },
1129
1130
  );
1130
- return this.sdk._fetch('/object/ad-catalog/meta/campaigns', 'GET', {
1131
+ return internalRequest(this.sdk, '/object/ad-catalog/meta/campaigns', 'GET', {
1131
1132
  query: { connectionId, adAccountId },
1132
1133
  });
1133
1134
  }
1135
+
1136
+ /**
1137
+ * Record activity feed for a single record.
1138
+ * @param {string} recordId
1139
+ * @returns {Promise<{results: object[]}>}
1140
+ */
1141
+ async getActivity(recordId) {
1142
+ this.sdk.validateParams(
1143
+ { recordId },
1144
+ { recordId: { type: 'string', required: true } },
1145
+ );
1146
+ return internalRequest(this.sdk, `/object/${recordId}/activity`, 'GET');
1147
+ }
1148
+
1149
+ /**
1150
+ * Marketing programs dashboard (programs + totals).
1151
+ * @returns {Promise<object>}
1152
+ */
1153
+ async getMarketingProgramsDashboard() {
1154
+ return internalRequest(
1155
+ this.sdk,
1156
+ '/object/marketing-programs/dashboard',
1157
+ 'GET',
1158
+ );
1159
+ }
1160
+
1161
+ /**
1162
+ * Metrics for one marketing program.
1163
+ * @param {string} programId
1164
+ * @returns {Promise<object>}
1165
+ */
1166
+ async getMarketingProgramMetrics(programId) {
1167
+ this.sdk.validateParams(
1168
+ { programId },
1169
+ { programId: { type: 'string', required: true } },
1170
+ );
1171
+ return internalRequest(
1172
+ this.sdk,
1173
+ `/object/marketing-programs/${programId}/metrics`,
1174
+ 'GET',
1175
+ );
1176
+ }
1177
+
1178
+ /**
1179
+ * Pull latest ad spend for a marketing program.
1180
+ * @param {string} programId
1181
+ * @returns {Promise<object>}
1182
+ */
1183
+ async pullMarketingProgramSpend(programId) {
1184
+ this.sdk.validateParams(
1185
+ { programId },
1186
+ { programId: { type: 'string', required: true } },
1187
+ );
1188
+ return internalRequest(
1189
+ this.sdk,
1190
+ `/object/marketing-programs/${programId}/pull-spend`,
1191
+ 'POST',
1192
+ { body: {} },
1193
+ );
1194
+ }
1134
1195
  }