mcdev 7.10.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.github/workflows/code-test.yml +8 -100
  3. package/@types/lib/Deployer.d.ts.map +1 -1
  4. package/@types/lib/Retriever.d.ts.map +1 -1
  5. package/@types/lib/index.d.ts +16 -4
  6. package/@types/lib/index.d.ts.map +1 -1
  7. package/@types/lib/metadataTypes/Asset.d.ts +45 -8
  8. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/Automation.d.ts +73 -53
  10. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  12. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/DataExtract.d.ts +13 -2
  14. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/Event.d.ts +14 -0
  16. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Folder.d.ts +49 -12
  18. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/ImportFile.d.ts +14 -0
  20. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/Journey.d.ts +166 -6
  22. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/MetadataType.d.ts +24 -6
  24. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  26. package/@types/lib/metadataTypes/SenderProfile.d.ts +3 -1
  27. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  28. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +45 -8
  29. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +43 -1
  30. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +21 -3
  31. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +6 -0
  32. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +49 -12
  33. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +3 -0
  34. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +159 -6
  35. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +3 -1
  36. package/@types/lib/util/cache.d.ts +2 -1
  37. package/@types/lib/util/cache.d.ts.map +1 -1
  38. package/@types/lib/util/devops.d.ts.map +1 -1
  39. package/@types/lib/util/util.d.ts +1 -0
  40. package/@types/lib/util/util.d.ts.map +1 -1
  41. package/@types/lib/util/validations.d.ts.map +1 -1
  42. package/@types/types/mcdev.d.d.ts +48 -0
  43. package/@types/types/mcdev.d.d.ts.map +1 -1
  44. package/boilerplate/files/.vscode/settings.json +5 -0
  45. package/eslint.config.js +2 -2
  46. package/lib/Deployer.js +3 -0
  47. package/lib/Retriever.js +8 -2
  48. package/lib/cli.js +29 -0
  49. package/lib/index.js +37 -33
  50. package/lib/metadataTypes/Asset.js +130 -15
  51. package/lib/metadataTypes/Automation.js +308 -410
  52. package/lib/metadataTypes/DataExtension.js +1 -11
  53. package/lib/metadataTypes/DataExtensionField.js +9 -15
  54. package/lib/metadataTypes/DataExtract.js +41 -6
  55. package/lib/metadataTypes/DomainVerification.js +1 -1
  56. package/lib/metadataTypes/EmailSend.js +3 -3
  57. package/lib/metadataTypes/Event.js +81 -39
  58. package/lib/metadataTypes/FileTransfer.js +5 -5
  59. package/lib/metadataTypes/Folder.js +98 -12
  60. package/lib/metadataTypes/ImportFile.js +96 -33
  61. package/lib/metadataTypes/Journey.js +186 -32
  62. package/lib/metadataTypes/MetadataType.js +118 -70
  63. package/lib/metadataTypes/MobileKeyword.js +2 -2
  64. package/lib/metadataTypes/MobileMessage.js +4 -2
  65. package/lib/metadataTypes/Query.js +5 -5
  66. package/lib/metadataTypes/Script.js +5 -5
  67. package/lib/metadataTypes/SendClassification.js +3 -3
  68. package/lib/metadataTypes/SenderProfile.js +3 -3
  69. package/lib/metadataTypes/TransactionalEmail.js +1 -1
  70. package/lib/metadataTypes/TransactionalMessage.js +1 -1
  71. package/lib/metadataTypes/TriggeredSend.js +3 -3
  72. package/lib/metadataTypes/Verification.js +1 -1
  73. package/lib/metadataTypes/definitions/Asset.definition.js +196 -142
  74. package/lib/metadataTypes/definitions/Automation.definition.js +49 -7
  75. package/lib/metadataTypes/definitions/DataExtension.definition.js +7 -6
  76. package/lib/metadataTypes/definitions/DataExtract.definition.js +16 -3
  77. package/lib/metadataTypes/definitions/DomainVerification.definition.js +1 -1
  78. package/lib/metadataTypes/definitions/Event.definition.js +6 -0
  79. package/lib/metadataTypes/definitions/Folder.definition.js +69 -22
  80. package/lib/metadataTypes/definitions/ImportFile.definition.js +3 -0
  81. package/lib/metadataTypes/definitions/Journey.definition.js +165 -11
  82. package/lib/metadataTypes/definitions/SenderProfile.definition.js +3 -1
  83. package/lib/util/cache.js +24 -5
  84. package/lib/util/devops.js +20 -5
  85. package/lib/util/util.js +12 -0
  86. package/lib/util/validations.js +3 -1
  87. package/package.json +16 -17
  88. package/test/general.test.js +42 -37
  89. package/test/mockRoot/.mcdev-validations.js +2 -3
  90. package/test/mockRoot/.mcdevrc.json +1 -1
  91. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +2 -1
  92. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +2 -1
  93. package/test/resourceFactory.js +35 -6
  94. package/test/resources/1111111/dataExtension/update-expected.json +1 -1
  95. package/test/resources/9999999/asset/test_coderesource_js-retrieve-expected.js +1 -0
  96. package/test/resources/9999999/asset/test_coderesource_js-retrieve-expected.json +47 -0
  97. package/test/resources/9999999/asset/test_coderesource_json-retrieve-expected.json +47 -0
  98. package/test/resources/9999999/asset/test_coderesource_json-retrieve-expected.jsonc +1 -0
  99. package/test/resources/9999999/asset/test_coderesource_xml-retrieve-expected.json +46 -0
  100. package/test/resources/9999999/asset/test_coderesource_xml-retrieve-expected.xml +1 -0
  101. package/test/resources/9999999/asset/test_interactivecontent-retrieve-expected.json +43 -0
  102. package/test/resources/9999999/asset/test_landingpage-retrieve-expected.json +42 -0
  103. package/test/resources/9999999/asset/test_microsite-retrieve-expected.json +43 -0
  104. package/test/resources/9999999/asset/v1/content/assets/9451/get-response.json +61 -0
  105. package/test/resources/9999999/asset/v1/content/assets/9456/get-response.json +56 -0
  106. package/test/resources/9999999/asset/v1/content/assets/9458/get-response.json +56 -0
  107. package/test/resources/9999999/asset/v1/content/assets/9460/get-response.json +59 -0
  108. package/test/resources/9999999/asset/v1/content/assets/9463/get-response.json +61 -0
  109. package/test/resources/9999999/asset/v1/content/assets/9465/get-response.json +54 -0
  110. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN1,3,4,14,15,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,210,211,212,213,214,215,216,217,218,219,220,221,222.json +94 -1
  111. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN219,220,221,222,223,224,225,226,227,228,230,232,240,241,242,243,244,245.json +168 -0
  112. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN240,241,242,243,244,245.json +144 -0
  113. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN246,247,248,249.json +132 -0
  114. package/test/resources/9999999/automation/create-expected.json +2 -1
  115. package/test/resources/9999999/automation/retrieve-expected.json +7 -1
  116. package/test/resources/9999999/automation/retrieve-wait-expected.json +7 -1
  117. package/test/resources/9999999/automation/update-expected.json +24 -2
  118. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +5 -2
  119. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +1 -0
  120. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +1 -0
  121. package/test/resources/9999999/dataExtension/update-callout-afterCreatedViaEvent-expected.xml +1 -1
  122. package/test/resources/9999999/dataExtract/build-expected.json +2 -2
  123. package/test/resources/9999999/dataExtract/get-expected.json +2 -2
  124. package/test/resources/9999999/dataExtract/patch-expected.json +2 -2
  125. package/test/resources/9999999/dataExtract/post-expected.json +2 -2
  126. package/test/resources/9999999/dataExtract/template-expected.json +2 -2
  127. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml → retrieve-ContentTypeINasset,asset-sha,automatio,cloudpage,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml} +44 -1
  128. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,useriniti-response.xml → retrieve-ContentTypeINasset,asset-sha,automatio,cloudpage,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,useriniti-response.xml} +44 -0
  129. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,dataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages,dataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +44 -0
  130. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,journey-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages,journey-response.xml} +44 -0
  131. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,cloudpages,ssjsactivity-response.xml +136 -0
  132. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,ssjsactivity-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages-response.xml} +29 -7
  133. package/test/resources/9999999/dataFolder/{+retrieve-response.xml → retrieve-response.xml} +23 -0
  134. package/test/resources/9999999/dataFolder/update-response.xml +31 -0
  135. package/test/resources/9999999/event/build-expected.json +0 -1
  136. package/test/resources/9999999/event/get-automation-expected.json +0 -1
  137. package/test/resources/9999999/event/get-expected.json +0 -2
  138. package/test/resources/9999999/event/get-published-expected.json +0 -2
  139. package/test/resources/9999999/event/post_withExistingDE-expected.json +0 -2
  140. package/test/resources/9999999/event/post_withSchema-callout-expected.json +3 -0
  141. package/test/resources/9999999/event/post_withSchema-expected.json +0 -2
  142. package/test/resources/9999999/event/put-callout-expected.json +3 -0
  143. package/test/resources/9999999/event/put-expected.json +0 -2
  144. package/test/resources/9999999/event/template-expected.json +0 -1
  145. package/test/resources/9999999/folder-deploy/Data Extensions/testExisting_folder.folder-meta.json +9 -0
  146. package/test/resources/9999999/importFile/get-dataImport-expected.json +1 -1
  147. package/test/resources/9999999/importFile/get-expected.json +4 -1
  148. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=1.json +86 -0
  149. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=2.json +101 -0
  150. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=3.json +86 -0
  151. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/delete-response-versionNumber=1.txt +1 -0
  152. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/get-response-versionNumber=1.json +461 -0
  153. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/get-response-versionNumber=3.json +461 -0
  154. package/test/resources/9999999/interaction/v1/interactions/dsfdsafdsa-922c-4568-85a5-e5cc77efc3be/audit/all/get-response-versionNumber=1.json +38 -0
  155. package/test/resources/9999999/interaction/v1/interactions/dsfdsafdsa-922c-4568-85a5-e5cc77efc3be/audit/all/get-response-versionNumber=2.json +53 -0
  156. package/test/resources/9999999/interaction/v1/interactions/get-response.json +2 -2
  157. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response-versionNumber=1.json +461 -0
  158. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response-versionNumber=1.json +253 -0
  159. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail/get-response-versionNumber=1.json +219 -0
  160. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail_notPublished/get-response-versionNumber=1.json +226 -0
  161. package/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/post-response-versionNumber=3.json +4 -0
  162. package/test/resources/9999999/journey/build-expected.json +0 -1
  163. package/test/resources/9999999/journey/create-transactionaEmail-publish-expected.json +0 -1
  164. package/test/resources/9999999/journey/get-multistep-expected.json +0 -4
  165. package/test/resources/9999999/journey/get-published-expected.json +0 -1
  166. package/test/resources/9999999/journey/get-quicksend-expected.json +0 -1
  167. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +0 -1
  168. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +0 -1
  169. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +0 -1
  170. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +0 -1
  171. package/test/resources/9999999/journey/template-expected.json +0 -1
  172. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow-PAUSED/get-response.json +3 -0
  173. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/NewRkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +29 -0
  174. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +50 -0
  175. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow-PAUSED/get-response.json +51 -0
  176. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/bHF6Q0Q3b1VXa21OdVQzZFQ0ckVSQToyNTow/get-response.json +7 -1
  177. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/cDhLQ2o2NExxVVc5N3VZeHF5WEExUToyNTow/get-response.json +79 -0
  178. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +61 -2
  179. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/post-response-pauseSchedule.json +1 -0
  180. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/post-response-schedule.json +1 -0
  181. package/test/resources/9999999/messaging/v1/domainverification/get-response.json +10 -1
  182. package/test/resources/9999999/query/patch-expected.sql +1 -1
  183. package/test/resources/9999999/query/post-expected.sql +1 -1
  184. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  185. package/test/resources/9999999/senderProfile/build-expected.json +1 -1
  186. package/test/resources/9999999/senderProfile/get-expected.json +1 -1
  187. package/test/resources/9999999/senderProfile/patch-expected.json +1 -1
  188. package/test/resources/9999999/senderProfile/retrieve-response.xml +1 -1
  189. package/test/resources/9999999/senderProfile/template-expected.json +1 -1
  190. package/test/type.asset.test.js +123 -13
  191. package/test/type.automation.test.js +20 -17
  192. package/test/type.dataExtract.test.js +4 -4
  193. package/test/type.domainVerification.test.js +3 -3
  194. package/test/type.folder.test.js +12 -2
  195. package/test/type.journey.test.js +141 -5
  196. package/test/type.query.test.js +2 -2
  197. package/test/type.script.test.js +2 -1
  198. package/test/type.senderProfile.test.js +21 -3
  199. package/test/type.triggeredSend.test.js +13 -1
  200. package/test/utils.js +2 -0
  201. package/types/mcdev.d.js +12 -0
  202. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN219,220,221,222,223,224,225,226,227,228,230,232.json +0 -32
  203. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +0 -52
  204. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +0 -38
  205. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +0 -52
  206. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +0 -52
  207. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +0 -52
  208. /package/test/resources/9999999/dataFolder/{+retrieve-QAA-response.xml → retrieve-QAA-response.xml} +0 -0
  209. /package/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/{post-response.json → post-response-versionNumber=1.json} +0 -0
@@ -475,6 +475,7 @@ describe('type: journey', () => {
475
475
  it('Should create a journey template via buildTemplate with --dependencies', async () => {
476
476
  // download first before we test buildTemplate
477
477
  await handler.retrieve('testInstance/testBU', ['journey', 'asset']);
478
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
478
479
 
479
480
  handler.setOptions({ dependencies: true, retrieve: true });
480
481
 
@@ -491,12 +492,13 @@ describe('type: journey', () => {
491
492
  assert.deepEqual(
492
493
  Object.keys(templatedItems),
493
494
  [
494
- 'journey',
495
- 'event',
495
+ 'asset',
496
496
  'dataExtension',
497
- 'senderProfile',
497
+ 'domainVerification',
498
+ 'event',
499
+ 'journey',
498
500
  'sendClassification',
499
- 'asset',
501
+ 'senderProfile',
500
502
  ],
501
503
  'expected specific types to be templated'
502
504
  );
@@ -526,6 +528,12 @@ describe('type: journey', () => {
526
528
  ],
527
529
  'expected specific dataExtensions to be templated'
528
530
  );
531
+ // domainVerification
532
+ assert.deepEqual(
533
+ templatedItems.domainVerification.map((item) => item.domain),
534
+ ['joern.berkefeld+test@accenture.com', 'joern.berkefeld@accenture.com'],
535
+ 'expected specific domainVerifications to be templated'
536
+ );
529
537
  // senderProfile
530
538
  assert.deepEqual(
531
539
  templatedItems.senderProfile.map((item) => item.CustomerKey),
@@ -1283,7 +1291,7 @@ describe('type: journey', () => {
1283
1291
 
1284
1292
  assert.deepEqual(
1285
1293
  replace['testInstance/testBU'].journey,
1286
- ['testExisting_journey_Multistep', 'testExisting_temail'],
1294
+ ['testExisting_temail', 'testExisting_journey_Multistep'],
1287
1295
  'should have found the right journeys that need updating'
1288
1296
  );
1289
1297
 
@@ -1295,4 +1303,132 @@ describe('type: journey', () => {
1295
1303
  return;
1296
1304
  });
1297
1305
  });
1306
+
1307
+ describe('Audit ================', () => {
1308
+ it('Should show audit log of a transactional journey and version', async () => {
1309
+ const audit = await handler.audit('testInstance/testBU', {
1310
+ journey: ['testExisting_temail/2'],
1311
+ });
1312
+ // THEN
1313
+ assert.equal(process.exitCode, 0, 'audit should not have thrown an error');
1314
+
1315
+ assert.deepEqual(
1316
+ audit['testInstance/testBU'].journey,
1317
+ ['testExisting_temail'],
1318
+ 'should have returned the right journeys'
1319
+ );
1320
+ assert.equal(
1321
+ testUtils.getAPIHistoryLength(),
1322
+ 2,
1323
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1324
+ );
1325
+
1326
+ return;
1327
+ });
1328
+
1329
+ it('Should show audit log of a transactional journey with all its versions', async () => {
1330
+ const audit = await handler.audit('testInstance/testBU', {
1331
+ journey: ['testExisting_temail'],
1332
+ });
1333
+ // THEN
1334
+ assert.equal(process.exitCode, 0, 'audit should not have thrown an error');
1335
+
1336
+ assert.deepEqual(
1337
+ audit['testInstance/testBU'].journey,
1338
+ ['testExisting_temail'],
1339
+ 'should have returned the right journeys'
1340
+ );
1341
+ assert.equal(
1342
+ testUtils.getAPIHistoryLength(),
1343
+ 3,
1344
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1345
+ );
1346
+
1347
+ return;
1348
+ });
1349
+
1350
+ it('Should not show audit log of a transactional journey with a too high version', async () => {
1351
+ const audit = await handler.audit('testInstance/testBU', {
1352
+ journey: ['testExisting_temail/99'],
1353
+ });
1354
+ // THEN
1355
+ assert.equal(process.exitCode, 404, 'audit should have thrown an error');
1356
+
1357
+ assert.deepEqual(
1358
+ audit['testInstance/testBU'].journey,
1359
+ [],
1360
+ 'should have returned the right journeys'
1361
+ );
1362
+ assert.equal(
1363
+ testUtils.getAPIHistoryLength(),
1364
+ 2,
1365
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1366
+ );
1367
+
1368
+ return;
1369
+ });
1370
+
1371
+ it('Should show audit log of a multi-step journey and version', async () => {
1372
+ const audit = await handler.audit('testInstance/testBU', {
1373
+ journey: ['testExisting_journey_Multistep/1'],
1374
+ });
1375
+ // THEN
1376
+ assert.equal(process.exitCode, 0, 'audit should not have thrown an error');
1377
+
1378
+ assert.deepEqual(
1379
+ audit['testInstance/testBU'].journey,
1380
+ ['testExisting_journey_Multistep'],
1381
+ 'should have returned the right journeys'
1382
+ );
1383
+ assert.equal(
1384
+ testUtils.getAPIHistoryLength(),
1385
+ 2,
1386
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1387
+ );
1388
+
1389
+ return;
1390
+ });
1391
+
1392
+ it('Should show audit log of a multi-step journey with all its versions', async () => {
1393
+ const audit = await handler.audit('testInstance/testBU', {
1394
+ journey: ['testExisting_journey_Multistep'],
1395
+ });
1396
+ // THEN
1397
+ assert.equal(process.exitCode, 0, 'audit should not have thrown an error');
1398
+
1399
+ assert.deepEqual(
1400
+ audit['testInstance/testBU'].journey,
1401
+ ['testExisting_journey_Multistep'],
1402
+ 'should have returned the right journeys'
1403
+ );
1404
+ assert.equal(
1405
+ testUtils.getAPIHistoryLength(),
1406
+ 4,
1407
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1408
+ );
1409
+
1410
+ return;
1411
+ });
1412
+
1413
+ it('Should show audit log of a multi-step journey with all its versions via /*', async () => {
1414
+ const audit = await handler.audit('testInstance/testBU', {
1415
+ journey: ['testExisting_journey_Multistep'],
1416
+ });
1417
+ // THEN
1418
+ assert.equal(process.exitCode, 0, 'audit should not have thrown an error');
1419
+
1420
+ assert.deepEqual(
1421
+ audit['testInstance/testBU'].journey,
1422
+ ['testExisting_journey_Multistep'],
1423
+ 'should have returned the right journeys'
1424
+ );
1425
+ assert.equal(
1426
+ testUtils.getAPIHistoryLength(),
1427
+ 4,
1428
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1429
+ );
1430
+
1431
+ return;
1432
+ });
1433
+ });
1298
1434
  });
@@ -648,7 +648,7 @@ describe('type: query', () => {
648
648
  // check number of API calls
649
649
  assert.equal(
650
650
  testUtils.getAPIHistoryLength(),
651
- 42,
651
+ 46,
652
652
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
653
653
  );
654
654
  return;
@@ -690,7 +690,7 @@ describe('type: query', () => {
690
690
  // check number of API calls
691
691
  assert.equal(
692
692
  testUtils.getAPIHistoryLength(),
693
- 44,
693
+ 48,
694
694
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
695
695
  );
696
696
  return;
@@ -373,6 +373,7 @@ describe('type: script', () => {
373
373
  it('Should create a script template via buildTemplate with --dependencies', async () => {
374
374
  // download first before we test buildTemplate
375
375
  await handler.retrieve('testInstance/testBU', ['script', 'asset']);
376
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
376
377
 
377
378
  handler.setOptions({ dependencies: true, skipInteraction: true });
378
379
 
@@ -388,7 +389,7 @@ describe('type: script', () => {
388
389
 
389
390
  assert.deepEqual(
390
391
  Object.keys(templatedItems),
391
- ['script', 'asset'],
392
+ ['asset', 'script'],
392
393
  'expected specific types to be templated'
393
394
  );
394
395
 
@@ -152,12 +152,13 @@ describe('type: senderProfile', () => {
152
152
  it('Should create a senderProfile template via buildTemplate with --dependencies', async () => {
153
153
  // download first before we test buildTemplate
154
154
  handler.setOptions({ dependencies: true, retrieve: true });
155
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
155
156
 
156
157
  // GIVEN there is a template
157
158
  const templatedItems = await handler.buildTemplate(
158
159
  'testInstance/testBU',
159
160
  'senderProfile',
160
- ['testExisting_senderProfile'],
161
+ ['Default', 'testExisting_senderProfile', 'testExisting_senderProfile_rcb'],
161
162
  ['testSourceMarket']
162
163
  );
163
164
  // WHEN
@@ -165,14 +166,31 @@ describe('type: senderProfile', () => {
165
166
 
166
167
  assert.deepEqual(
167
168
  Object.keys(templatedItems),
168
- ['senderProfile'],
169
+ ['asset', 'domainVerification', 'senderProfile'],
169
170
  'expected specific types to be templated'
170
171
  );
171
172
 
173
+ // asset
174
+ assert.deepEqual(
175
+ templatedItems.asset.map((item) => item.customerKey),
176
+ [
177
+ '{{{prefix}}}asset_htmlblock',
178
+ '{{{prefix}}}htmlblock 3 spaces',
179
+ '{{{prefix}}}htmlblock1',
180
+ '{{{prefix}}}htmlblock2',
181
+ ],
182
+ 'expected specific assets to be templated'
183
+ );
184
+ // domainVerification
185
+ assert.deepEqual(
186
+ templatedItems.domainVerification.map((item) => item.domain),
187
+ ['joern.berkefeld+test@accenture.com', 'joern.berkefeld@accenture.com'],
188
+ 'expected specific domainVerifications to be templated'
189
+ );
172
190
  // senderProfile
173
191
  assert.deepEqual(
174
192
  templatedItems.senderProfile.map((item) => item.CustomerKey),
175
- ['{{{prefix}}}senderProfile'],
193
+ ['Default', '{{{prefix}}}senderProfile', '{{{prefix}}}senderProfile_rcb'],
176
194
  'expected specific senderProfiles to be templated'
177
195
  );
178
196
  });
@@ -145,7 +145,13 @@ describe('type: triggeredSend', () => {
145
145
 
146
146
  assert.deepEqual(
147
147
  Object.keys(templatedItems),
148
- ['triggeredSend', 'sendClassification', 'senderProfile', 'asset'],
148
+ [
149
+ 'asset',
150
+ 'domainVerification',
151
+ 'sendClassification',
152
+ 'senderProfile',
153
+ 'triggeredSend',
154
+ ],
149
155
  'expected specific types to be templated'
150
156
  );
151
157
 
@@ -167,6 +173,12 @@ describe('type: triggeredSend', () => {
167
173
  ['{{{prefix}}}senderProfile', '{{{prefix}}}senderProfile_rcb'],
168
174
  'expected specific senderProfiles to be templated'
169
175
  );
176
+ // domainVerification
177
+ assert.deepEqual(
178
+ templatedItems.domainVerification.map((item) => item.domain),
179
+ ['joern.berkefeld+test@accenture.com', 'joern.berkefeld@accenture.com'],
180
+ 'expected specific domainVerification to be templated'
181
+ );
170
182
  // asset
171
183
  assert.deepEqual(
172
184
  templatedItems.asset.map((item) => item.customerKey),
package/test/utils.js CHANGED
@@ -205,6 +205,8 @@ export function mockSetup(isDeploy) {
205
205
 
206
206
  handler.setOptions(resetOptions);
207
207
  }
208
+ File.prettierConfig = null;
209
+
208
210
  apimock = new MockAdapter(axiosInstance, { onNoMatch: 'throwException' });
209
211
  // set access_token to mid to allow for autorouting of mock to correct resources
210
212
  apimock.onPost(authResources.success.url).reply((config) => {
package/types/mcdev.d.js CHANGED
@@ -237,13 +237,18 @@
237
237
 
238
238
  /**
239
239
  * @typedef {object} AutomationSchedule REST format
240
+ * @property {string} id legacy id of schedule
240
241
  * @property {number} typeId equals schedule.scheduleTypeId; upsert endpoint requires scheduleTypeId. retrieve endpoint returns typeId
241
242
  * @property {number} [scheduleTypeId] equals schedule.typeId; upsert endpoint requires scheduleTypeId. retrieve endpoint returns typeId
242
243
  * @property {string} startDate example: '2021-05-07T09:00:00'
243
244
  * @property {string} endDate example: '2021-05-07T09:00:00'
244
245
  * @property {string} icalRecur example: 'FREQ=DAILY;UNTIL=20790606T160000;INTERVAL=1'
246
+ * @property {string} [iCalRecur] same as icalRecur but returned by legacy-API; example: 'FREQ=DAILY;UNTIL=20790606T160000;INTERVAL=1'
245
247
  * @property {string} timezoneName example: 'W. Europe Standard Time'; see this.definition.timeZoneMapping
248
+ * @property {string} [timeZone] same as timezoneName but returned by legacy-API; example: 'W. Europe Standard Time'; see this.definition.timeZoneMapping
249
+ * @property {string} [description] kept in legacy API only, exact description of what this schedule does
246
250
  * @property {number} [timezoneId] see this.definition.timeZoneMapping
251
+ * @property {number} [timeZoneId] same as timezoneId but returned by legacy-API; see this.definition.timeZoneMapping
247
252
  * @property {number} [rangeTypeId] ?
248
253
  * @property {any} [pattern] ?
249
254
  * @property {any} [scheduledTime] ?
@@ -292,6 +297,7 @@
292
297
  * @property {any} [notifications] notifications
293
298
  * @property {string} [description] -
294
299
  * @property {'scheduled'|'triggered'|'automationtriggered'} [type] Starting Source = Schedule / File Drop
300
+ * @property {'scheduled'|'triggered'|'automationtriggered'} [automationType] Starting Source = Schedule / File Drop; from legacy api
295
301
  * @property {'Scheduled'|'Running'|'Ready'|'Building'|'PausedSchedule'|'InactiveTrigger'} [status] automation status
296
302
  * @property {number} [statusId] automation status
297
303
  * @property {AutomationSchedule} [schedule] only existing if type=scheduled
@@ -314,6 +320,12 @@
314
320
  * @property {AutomationStep[]} [steps] -
315
321
  * @property {string} [r__folder_Path] folder path
316
322
  * @property {string} [categoryId] holds folder ID, replaced with r__folder_Path during retrieve
323
+ * @property {string} [createdName] user name of person who created this automation
324
+ * @property {string} [createdDate] iso format
325
+ * @property {string} [modifiedName] user name of person who last modified this automation
326
+ * @property {string} [modifiedDate] iso format
327
+ * @property {string} [pausedName] user name of person who paused this automation
328
+ * @property {string} [pausedDate] iso format
317
329
  */
318
330
 
319
331
  /**
@@ -1,32 +0,0 @@
1
- {
2
- "count": 1,
3
- "page": 1,
4
- "pageSize": 50,
5
- "links": {},
6
- "items": [
7
- {
8
- "id": 1209971,
9
- "customerKey": "mobileMessage_test",
10
- "assetType": { "id": 230, "name": "jsonmessage", "displayName": "JSON Message" },
11
- "name": "mobileMessage_test",
12
- "createdDate": "2022-12-07T02:49:36.857-06:00",
13
- "createdBy": {
14
- "id": 700301950,
15
- "email": "joern.berkefeld@accenture.com",
16
- "name": "J├Ârn Berkefeld (ASGR)",
17
- "userId": "700301950"
18
- },
19
- "modifiedDate": "2022-12-07T02:49:57.44-06:00",
20
- "modifiedBy": {
21
- "id": 700301950,
22
- "email": "joern.berkefeld@accenture.com",
23
- "name": "J├Ârn Berkefeld (ASGR)",
24
- "userId": "700301950"
25
- },
26
- "status": { "id": 1, "name": "Draft" },
27
- "category": { "id": 89397, "name": "Content Builder", "parentId": 0 },
28
- "availableViews": ["push"],
29
- "modelVersion": 2
30
- }
31
- ]
32
- }
@@ -1,52 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
- xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
6
- xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
7
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
8
- <soap:Header>
9
- <wsa:Action>ScheduleResponse</wsa:Action>
10
- <wsa:MessageID>urn:uuid:b58a82d9-a251-4be4-b50c-bd300d71601d</wsa:MessageID>
11
- <wsa:RelatesTo>urn:uuid:9d3dbeb3-68b7-4f0a-b0af-04855dc0fd1e</wsa:RelatesTo>
12
- <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
13
- <wsse:Security>
14
- <wsu:Timestamp wsu:Id="Timestamp-5ff54ff3-2408-496a-b4ea-6df5e9ebee03">
15
- <wsu:Created>2023-07-05T10:29:58Z</wsu:Created>
16
- <wsu:Expires>2023-07-05T10:34:58Z</wsu:Expires>
17
- </wsu:Timestamp>
18
- </wsse:Security>
19
- </soap:Header>
20
- <soap:Body>
21
- <ScheduleResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
22
- <Results>
23
- <Result>
24
- <StatusCode>OK</StatusCode>
25
- <StatusMessage>Program scheduled.</StatusMessage>
26
- <RequestID>3a677ca8-5423-4d59-a1bb-c5fbe1c87197</RequestID>
27
- <Object>
28
- <PartnerKey xsi:nil="true" />
29
- <ObjectID xsi:nil="true" />
30
- <Recurrence xsi:type="DailyRecurrence">
31
- <DailyRecurrencePatternType>Interval</DailyRecurrencePatternType>
32
- <DayInterval>1</DayInterval>
33
- </Recurrence>
34
- <RecurrenceType>Daily</RecurrenceType>
35
- <RecurrenceRangeType>EndAfter</RecurrenceRangeType>
36
- <StartDateTime>2023-07-05T16:00:57</StartDateTime>
37
- <Occurrences>1</Occurrences>
38
- <TimeZone>
39
- <PartnerKey xsi:nil="true" />
40
- <ID>5</ID>
41
- <ObjectID xsi:nil="true" />
42
- </TimeZone>
43
- </Object>
44
- <Task />
45
- </Result>
46
- </Results>
47
- <OverallStatus>OK</OverallStatus>
48
- <OverallStatusMessage />
49
- <RequestID>cfe97488-3c5e-49a9-b338-c0e9f6b6f684</RequestID>
50
- </ScheduleResponseMsg>
51
- </soap:Body>
52
- </soap:Envelope>
@@ -1,38 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
- xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
6
- xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
7
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
8
- <soap:Header>
9
- <wsa:Action>ScheduleResponse</wsa:Action>
10
- <wsa:MessageID>urn:uuid:b58a82d9-a251-4be4-b50c-bd300d71601d</wsa:MessageID>
11
- <wsa:RelatesTo>urn:uuid:9d3dbeb3-68b7-4f0a-b0af-04855dc0fd1e</wsa:RelatesTo>
12
- <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
13
- <wsse:Security>
14
- <wsu:Timestamp wsu:Id="Timestamp-5ff54ff3-2408-496a-b4ea-6df5e9ebee03">
15
- <wsu:Created>2023-07-05T10:29:58Z</wsu:Created>
16
- <wsu:Expires>2023-07-05T10:34:58Z</wsu:Expires>
17
- </wsu:Timestamp>
18
- </wsse:Security>
19
- </soap:Header>
20
- <soap:Body>
21
- <ScheduleResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
22
- <Results>
23
- <Result>
24
- <StatusCode>OK</StatusCode>
25
- <StatusMessage>Schedule Paused. To reactivate the schedule use proxy.Schedule with the action 'start'.</StatusMessage>
26
- <Object>
27
- <PartnerKey xsi:nil="true" />
28
- <ObjectID xsi:nil="true" />
29
- </Object>
30
- <Task />
31
- </Result>
32
- </Results>
33
- <OverallStatus>OK</OverallStatus>
34
- <OverallStatusMessage />
35
- <RequestID>cfe97488-3c5e-49a9-b338-c0e9f6b6f684</RequestID>
36
- </ScheduleResponseMsg>
37
- </soap:Body>
38
- </soap:Envelope>
@@ -1,52 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
- xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
6
- xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
7
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
8
- <soap:Header>
9
- <wsa:Action>ScheduleResponse</wsa:Action>
10
- <wsa:MessageID>urn:uuid:b58a82d9-a251-4be4-b50c-bd300d71601d</wsa:MessageID>
11
- <wsa:RelatesTo>urn:uuid:9d3dbeb3-68b7-4f0a-b0af-04855dc0fd1e</wsa:RelatesTo>
12
- <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
13
- <wsse:Security>
14
- <wsu:Timestamp wsu:Id="Timestamp-5ff54ff3-2408-496a-b4ea-6df5e9ebee03">
15
- <wsu:Created>2023-07-05T10:29:58Z</wsu:Created>
16
- <wsu:Expires>2023-07-05T10:34:58Z</wsu:Expires>
17
- </wsu:Timestamp>
18
- </wsse:Security>
19
- </soap:Header>
20
- <soap:Body>
21
- <ScheduleResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
22
- <Results>
23
- <Result>
24
- <StatusCode>OK</StatusCode>
25
- <StatusMessage>Program scheduled.</StatusMessage>
26
- <RequestID>3a677ca8-5423-4d59-a1bb-c5fbe1c87197</RequestID>
27
- <Object>
28
- <PartnerKey xsi:nil="true" />
29
- <ObjectID xsi:nil="true" />
30
- <Recurrence xsi:type="DailyRecurrence">
31
- <DailyRecurrencePatternType>Interval</DailyRecurrencePatternType>
32
- <DayInterval>1</DayInterval>
33
- </Recurrence>
34
- <RecurrenceType>Daily</RecurrenceType>
35
- <RecurrenceRangeType>EndAfter</RecurrenceRangeType>
36
- <StartDateTime>2023-07-05T16:00:57</StartDateTime>
37
- <Occurrences>1</Occurrences>
38
- <TimeZone>
39
- <PartnerKey xsi:nil="true" />
40
- <ID>5</ID>
41
- <ObjectID xsi:nil="true" />
42
- </TimeZone>
43
- </Object>
44
- <Task />
45
- </Result>
46
- </Results>
47
- <OverallStatus>OK</OverallStatus>
48
- <OverallStatusMessage />
49
- <RequestID>cfe97488-3c5e-49a9-b338-c0e9f6b6f684</RequestID>
50
- </ScheduleResponseMsg>
51
- </soap:Body>
52
- </soap:Envelope>
@@ -1,52 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
- xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
6
- xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
7
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
8
- <soap:Header>
9
- <wsa:Action>ScheduleResponse</wsa:Action>
10
- <wsa:MessageID>urn:uuid:b58a82d9-a251-4be4-b50c-bd300d71601d</wsa:MessageID>
11
- <wsa:RelatesTo>urn:uuid:9d3dbeb3-68b7-4f0a-b0af-04855dc0fd1e</wsa:RelatesTo>
12
- <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
13
- <wsse:Security>
14
- <wsu:Timestamp wsu:Id="Timestamp-5ff54ff3-2408-496a-b4ea-6df5e9ebee03">
15
- <wsu:Created>2023-07-05T10:29:58Z</wsu:Created>
16
- <wsu:Expires>2023-07-05T10:34:58Z</wsu:Expires>
17
- </wsu:Timestamp>
18
- </wsse:Security>
19
- </soap:Header>
20
- <soap:Body>
21
- <ScheduleResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
22
- <Results>
23
- <Result>
24
- <StatusCode>OK</StatusCode>
25
- <StatusMessage>Program scheduled.</StatusMessage>
26
- <RequestID>3a677ca8-5423-4d59-a1bb-c5fbe1c87197</RequestID>
27
- <Object>
28
- <PartnerKey xsi:nil="true" />
29
- <ObjectID xsi:nil="true" />
30
- <Recurrence xsi:type="DailyRecurrence">
31
- <DailyRecurrencePatternType>Interval</DailyRecurrencePatternType>
32
- <DayInterval>1</DayInterval>
33
- </Recurrence>
34
- <RecurrenceType>Daily</RecurrenceType>
35
- <RecurrenceRangeType>EndAfter</RecurrenceRangeType>
36
- <StartDateTime>2023-07-05T16:00:57</StartDateTime>
37
- <Occurrences>1</Occurrences>
38
- <TimeZone>
39
- <PartnerKey xsi:nil="true" />
40
- <ID>5</ID>
41
- <ObjectID xsi:nil="true" />
42
- </TimeZone>
43
- </Object>
44
- <Task />
45
- </Result>
46
- </Results>
47
- <OverallStatus>OK</OverallStatus>
48
- <OverallStatusMessage />
49
- <RequestID>cfe97488-3c5e-49a9-b338-c0e9f6b6f684</RequestID>
50
- </ScheduleResponseMsg>
51
- </soap:Body>
52
- </soap:Envelope>
@@ -1,52 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5
- xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
6
- xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
7
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
8
- <soap:Header>
9
- <wsa:Action>ScheduleResponse</wsa:Action>
10
- <wsa:MessageID>urn:uuid:6c743640-b80f-456a-abed-b542247f2414</wsa:MessageID>
11
- <wsa:RelatesTo>urn:uuid:29fc6536-3c75-4e07-a05d-e63f7ee520d3</wsa:RelatesTo>
12
- <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
13
- <wsse:Security>
14
- <wsu:Timestamp wsu:Id="Timestamp-49e9b916-1ac1-4cb0-bacc-d0060fdca2ec">
15
- <wsu:Created>2023-07-04T13:13:15Z</wsu:Created>
16
- <wsu:Expires>2023-07-04T13:18:15Z</wsu:Expires>
17
- </wsu:Timestamp>
18
- </wsse:Security>
19
- </soap:Header>
20
- <soap:Body>
21
- <ScheduleResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
22
- <Results>
23
- <Result>
24
- <StatusCode>OK</StatusCode>
25
- <StatusMessage>Program scheduled.</StatusMessage>
26
- <RequestID>89cd977a-3927-49fa-b8e5-47c7e6093bef</RequestID>
27
- <Object>
28
- <PartnerKey xsi:nil="true" />
29
- <ObjectID xsi:nil="true" />
30
- <Recurrence xsi:type="MinutelyRecurrence">
31
- <MinutelyRecurrencePatternType>Interval</MinutelyRecurrencePatternType>
32
- <MinuteInterval>5</MinuteInterval>
33
- </Recurrence>
34
- <RecurrenceType>Minutely</RecurrenceType>
35
- <RecurrenceRangeType>EndOn</RecurrenceRangeType>
36
- <StartDateTime>2023-07-04T06:21:14.408</StartDateTime>
37
- <EndDateTime>2079-06-06T20:00:00</EndDateTime>
38
- <TimeZone>
39
- <PartnerKey xsi:nil="true" />
40
- <ID>5</ID>
41
- <ObjectID xsi:nil="true" />
42
- </TimeZone>
43
- </Object>
44
- <Task />
45
- </Result>
46
- </Results>
47
- <OverallStatus>OK</OverallStatus>
48
- <OverallStatusMessage />
49
- <RequestID>3b03417b-649e-4a1d-963d-05f42fc8f1b5</RequestID>
50
- </ScheduleResponseMsg>
51
- </soap:Body>
52
- </soap:Envelope>