mcdev 5.0.2 → 5.2.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 (237) hide show
  1. package/.coverage-comment-template.svelte +177 -161
  2. package/.eslintrc.json +4 -4
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  5. package/.github/dependabot.yml +8 -0
  6. package/.github/workflows/coverage-base-update.yml +6 -2
  7. package/.github/workflows/coverage-develop-branch.yml +7 -8
  8. package/.github/workflows/coverage-main-branch.yml +7 -8
  9. package/.github/workflows/coverage.yml +7 -4
  10. package/.husky/post-checkout +4 -2
  11. package/.husky/post-merge +1 -0
  12. package/.vscode/extensions.json +4 -0
  13. package/docs/dist/documentation.md +756 -294
  14. package/lib/Deployer.js +28 -28
  15. package/lib/MetadataTypeDefinitions.js +1 -1
  16. package/lib/MetadataTypeInfo.js +1 -1
  17. package/lib/Retriever.js +1 -1
  18. package/lib/cli.js +184 -6
  19. package/lib/index.js +493 -22
  20. package/lib/metadataTypes/Asset.js +10 -11
  21. package/lib/metadataTypes/AttributeGroup.js +76 -2
  22. package/lib/metadataTypes/AttributeSet.js +260 -0
  23. package/lib/metadataTypes/Automation.js +771 -247
  24. package/lib/metadataTypes/DataExtension.js +7 -7
  25. package/lib/metadataTypes/DataExtensionField.js +1 -1
  26. package/lib/metadataTypes/Event.js +2 -3
  27. package/lib/metadataTypes/Folder.js +1 -1
  28. package/lib/metadataTypes/Journey.js +5 -6
  29. package/lib/metadataTypes/MetadataType.js +187 -60
  30. package/lib/metadataTypes/MobileKeyword.js +8 -8
  31. package/lib/metadataTypes/MobileMessage.js +5 -5
  32. package/lib/metadataTypes/Query.js +47 -5
  33. package/lib/metadataTypes/Script.js +3 -3
  34. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  35. package/lib/metadataTypes/TriggeredSend.js +25 -50
  36. package/lib/metadataTypes/User.js +7 -4
  37. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  38. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +117 -106
  39. package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +54 -27
  40. package/lib/metadataTypes/definitions/Automation.definition.js +74 -21
  41. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  42. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
  43. package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
  44. package/lib/metadataTypes/definitions/Event.definition.js +1 -0
  45. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  46. package/lib/metadataTypes/definitions/ImportFile.definition.js +37 -6
  47. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -0
  48. package/lib/metadataTypes/definitions/Query.definition.js +1 -0
  49. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  50. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +2 -0
  51. package/lib/metadataTypes/definitions/User.definition.js +1 -0
  52. package/lib/util/cache.js +9 -4
  53. package/lib/util/cli.js +40 -0
  54. package/lib/util/devops.js +13 -11
  55. package/lib/util/file.js +2 -2
  56. package/lib/util/init.js +84 -0
  57. package/lib/util/util.js +268 -137
  58. package/package.json +11 -11
  59. package/test/general.test.js +26 -0
  60. package/test/mockRoot/.mcdevrc.json +1 -1
  61. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +52 -0
  62. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +45 -0
  63. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
  64. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
  65. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
  66. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
  67. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
  68. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
  69. package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.json → testExisting_query.query-meta.json} +2 -2
  70. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
  71. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
  72. package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.json → testNew_query.query-meta.json} +2 -2
  73. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
  74. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
  75. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
  76. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
  77. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
  78. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
  79. package/test/resourceFactory.js +132 -24
  80. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
  81. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
  82. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
  83. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
  84. package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
  85. package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
  86. package/test/resources/1111111/user/retrieve-expected.md +4 -2
  87. package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
  88. package/test/resources/9999999/attributeSet/retrieve-expected.json +748 -0
  89. package/test/resources/9999999/automation/build-expected.json +57 -0
  90. package/test/resources/9999999/automation/create-expected.json +45 -0
  91. package/test/resources/9999999/automation/create-testNew_automation-expected.md +28 -0
  92. package/test/resources/9999999/automation/delete-response.xml +40 -0
  93. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
  94. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
  95. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  96. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
  97. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
  98. package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  99. package/test/resources/9999999/automation/retrieve-expected.json +57 -0
  100. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +30 -0
  101. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  102. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
  103. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
  104. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
  105. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  106. package/test/resources/9999999/automation/template-expected.json +57 -0
  107. package/test/resources/9999999/automation/update-expected.json +45 -0
  108. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +28 -0
  109. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  110. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/patch-response.json +85 -0
  111. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
  112. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
  113. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
  114. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
  115. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
  116. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
  117. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  118. package/test/resources/9999999/automation/v1/automations/post-response.json +86 -0
  119. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/get-response.json +38 -0
  120. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
  121. package/test/resources/9999999/automation/v1/dataextracts/get-response.json +20 -0
  122. package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
  123. package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
  124. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/get-response.json +18 -0
  125. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
  126. package/test/resources/9999999/automation/v1/filetransfers/get-response.json +15 -0
  127. package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
  128. package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
  129. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
  130. package/test/resources/9999999/automation/v1/imports/get-response.json +38 -0
  131. package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
  132. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
  133. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/actions/start/post-response.txt +1 -0
  134. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +2 -2
  135. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
  136. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
  137. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
  138. package/test/resources/9999999/automation/v1/queries/get-response.json +22 -5
  139. package/test/resources/9999999/automation/v1/queries/post-response.json +2 -2
  140. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
  141. package/test/resources/9999999/automation/v1/scripts/get-response.json +27 -0
  142. package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
  143. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
  144. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +98 -0
  145. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
  146. package/test/resources/9999999/dataExtract/build-expected.json +35 -0
  147. package/test/resources/9999999/dataExtract/get-expected.json +39 -0
  148. package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
  149. package/test/resources/9999999/dataExtract/post-expected.json +37 -0
  150. package/test/resources/9999999/dataExtract/template-expected.json +35 -0
  151. package/test/resources/9999999/dataFolder/retrieve-ContentType=automations-response.xml +48 -0
  152. package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
  153. package/test/resources/9999999/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  154. package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
  155. package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
  156. package/test/resources/9999999/dataFolder/retrieve-response.xml +45 -0
  157. package/test/resources/9999999/email/retrieve-response.xml +203 -0
  158. package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +85 -0
  159. package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
  160. package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
  161. package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
  162. package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
  163. package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
  164. package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +585 -0
  165. package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +19807 -0
  166. package/test/resources/9999999/importFile/build-expected.json +27 -0
  167. package/test/resources/9999999/importFile/get-expected.json +29 -0
  168. package/test/resources/9999999/importFile/patch-expected.json +29 -0
  169. package/test/resources/9999999/importFile/post-expected.json +29 -0
  170. package/test/resources/9999999/importFile/template-expected.json +27 -0
  171. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +21 -0
  172. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/post-response.json +0 -0
  173. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +30 -0
  174. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation-response.xml +30 -0
  175. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
  176. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
  177. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
  178. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
  179. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
  180. package/test/resources/9999999/program/retrieve-CustomerKey=testNew_automation-response.xml +30 -0
  181. package/test/resources/9999999/program/retrieve-Name=testExisting_automation-response.xml +31 -0
  182. package/test/resources/9999999/program/retrieve-response.xml +50 -0
  183. package/test/resources/9999999/query/build-expected.json +2 -2
  184. package/test/resources/9999999/query/get-expected.json +2 -2
  185. package/test/resources/9999999/query/get2-expected.json +2 -2
  186. package/test/resources/9999999/query/patch-expected.json +2 -2
  187. package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
  188. package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
  189. package/test/resources/9999999/query/post-expected.json +2 -2
  190. package/test/resources/9999999/query/template-expected.json +2 -2
  191. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
  192. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
  193. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
  194. package/test/resources/9999999/script/build-expected.json +6 -0
  195. package/test/resources/9999999/script/build-expected.ssjs +1 -0
  196. package/test/resources/9999999/script/get-expected.json +8 -0
  197. package/test/resources/9999999/script/get-expected.ssjs +1 -0
  198. package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
  199. package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
  200. package/test/resources/9999999/script/patch-expected.json +8 -0
  201. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  202. package/test/resources/9999999/script/post-expected.json +8 -0
  203. package/test/resources/9999999/script/post-expected.ssjs +1 -0
  204. package/test/resources/9999999/script/template-expected.json +6 -0
  205. package/test/resources/9999999/script/template-expected.ssjs +1 -0
  206. package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
  207. package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
  208. package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
  209. package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
  210. package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
  211. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
  212. package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
  213. package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
  214. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
  215. package/test/type.attributeGroup.test.js +55 -0
  216. package/test/type.attributeSet.test.js +55 -0
  217. package/test/type.automation.test.js +886 -0
  218. package/test/type.dataExtension.test.js +3 -1
  219. package/test/type.dataExtract.test.js +187 -0
  220. package/test/type.fileTransfer.test.js +185 -0
  221. package/test/type.importFile.test.js +186 -0
  222. package/test/type.mobileKeyword.test.js +0 -1
  223. package/test/type.query.test.js +497 -33
  224. package/test/type.script.test.js +367 -0
  225. package/test/type.triggeredSend.test.js +152 -0
  226. package/test/type.user.test.js +37 -11
  227. package/test/utils.js +10 -6
  228. package/.coverage-comment-template.md +0 -20
  229. package/lib/metadataTypes/SetDefinition.js +0 -37
  230. /package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.sql → testExisting_query.query-meta.sql} +0 -0
  231. /package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.sql → testNew_query.query-meta.sql} +0 -0
  232. /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
  233. /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
  234. /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
  235. /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
  236. /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
  237. /package/test/resources/9999999/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
@@ -17,6 +17,9 @@ Source and target business units are also compared before the deployment to appl
17
17
  <dt><a href="#AttributeGroup">AttributeGroup</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
18
18
  <dd><p>AttributeGroup MetadataType</p>
19
19
  </dd>
20
+ <dt><a href="#AttributeSet">AttributeSet</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
21
+ <dd><p>AttributeSet MetadataType</p>
22
+ </dd>
20
23
  <dt><a href="#Automation">Automation</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
21
24
  <dd><p>Automation MetadataType</p>
22
25
  </dd>
@@ -105,9 +108,6 @@ Provides default functionality that can be overwritten by child metadata type cl
105
108
  <dt><a href="#SendClassification">SendClassification</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
106
109
  <dd><p>SendClassification MetadataType</p>
107
110
  </dd>
108
- <dt><a href="#SetDefinition">SetDefinition</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
109
- <dd><p>SetDefinition MetadataType</p>
110
- </dd>
111
111
  <dt><a href="#TransactionalEmail">TransactionalEmail</a> ⇐ <code><a href="#TransactionalMessage">TransactionalMessage</a></code></dt>
112
112
  <dd><p>TransactionalEmail MetadataType</p>
113
113
  </dd>
@@ -186,17 +186,44 @@ Provides default functionality that can be overwritten by child metadata type cl
186
186
  <dt><a href="#csvToArray">csvToArray(csv)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
187
187
  <dd><p>helper to convert CSVs into an array. if only one value was given, it&#39;s also returned as an array</p>
188
188
  </dd>
189
+ <dt><a href="#Mcdev.">Mcdev.(methodName, businessUnit, [selectedType], [keys])</a> ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code></dt>
190
+ <dd><p>run a method across BUs</p>
191
+ </dd>
192
+ <dt><a href="#Mcdev.">Mcdev.(methodName, cred, bu, [type], keyArr)</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
193
+ <dd><p>helper for <a href="Mcdev.#runMethod">Mcdev.#runMethod</a></p>
194
+ </dd>
195
+ <dt><a href="#Mcdev.">Mcdev.(selectedType, buObject)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
196
+ <dd><p>helper for <a href="Mcdev.#runOnBU">Mcdev.#runOnBU</a></p>
197
+ </dd>
198
+ <dt><a href="#Mcdev.">Mcdev.(cred, bu, type, [keyArr])</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
199
+ <dd><p>Updates the key to match the name field</p>
200
+ </dd>
201
+ <dt><a href="#Automation.">Automation.(metadata)</a> ⇒ <code>boolean</code></dt>
202
+ <dd><p>helper for <a href="#Automation.postRetrieveTasks">postRetrieveTasks</a> and <a href="#Automation.execute">execute</a></p>
203
+ </dd>
204
+ <dt><a href="#Automation.">Automation.(metadataMap, key)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
205
+ <dd><p>helper for <a href="#Automation.execute">execute</a></p>
206
+ </dd>
207
+ <dt><a href="#Automation.">Automation.(metadataEntry)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
208
+ <dd><p>helper for <a href="#Automation.execute">execute</a></p>
209
+ </dd>
210
+ <dt><a href="#Automation.">Automation.(metadata)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
211
+ <dd><p>helper for <a href="#Automation.pause">pause</a></p>
212
+ </dd>
213
+ <dt><a href="#Automation.">Automation.(metadata)</a></dt>
214
+ <dd><p>helper for <a href="#Automation.preDeployTasks">preDeployTasks</a> and <a href="#Automation.execute">execute</a></p>
215
+ </dd>
216
+ <dt><a href="#Automation.">Automation.(metadataMap, key)</a> ⇒ <code>Promise.&lt;void&gt;</code></dt>
217
+ <dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
218
+ </dd>
219
+ <dt><a href="#Automation.">Automation.(metadataMap, originalMetadataMap, key, [oldKey])</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
220
+ <dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
221
+ </dd>
189
222
  <dt><a href="#getUserName">getUserName(userList, item, fieldname)</a> ⇒ <code>string</code></dt>
190
223
  <dd></dd>
191
224
  <dt><a href="#setupSDK">setupSDK(sessionKey, authObject)</a> ⇒ <code><a href="#SDK">SDK</a></code></dt>
192
225
  <dd><p>Returns an SDK instance to be used for API calls</p>
193
226
  </dd>
194
- <dt><a href="#createNewLoggerTransport">createNewLoggerTransport()</a> ⇒ <code>object</code></dt>
195
- <dd><p>wrapper around our standard winston logging to console and logfile</p>
196
- </dd>
197
- <dt><a href="#startLogger">startLogger()</a> ⇒ <code>void</code></dt>
198
- <dd><p>initiate winston logger</p>
199
- </dd>
200
227
  </dl>
201
228
 
202
229
  ## Typedefs
@@ -371,10 +398,10 @@ Source and target business units are also compared before the deployment to appl
371
398
  * [new Deployer(properties, buObject)](#new_Deployer_new)
372
399
  * _instance_
373
400
  * [.metadata](#Deployer+metadata) : <code>TYPE.MultiMetadataTypeMap</code>
374
- * [._deploy([typeArr], [keyArr], [fromRetrieve], [isRefresh])](#Deployer+_deploy) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
401
+ * [._deploy([typeArr], [keyArr])](#Deployer+_deploy) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
375
402
  * _static_
376
- * [.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve])](#Deployer.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
377
- * [._deployBU(cred, bu, properties, [typeArr], [keyArr], [fromRetrieve])](#Deployer._deployBU) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
403
+ * [.deploy(businessUnit, [selectedTypesArr], [keyArr])](#Deployer.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
404
+ * [._deployBU(cred, bu, properties, [typeArr], [keyArr])](#Deployer._deployBU) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
378
405
  * [.readBUMetadata(deployDir, [typeArr], [listBadKeys])](#Deployer.readBUMetadata) ⇒ <code>TYPE.MultiMetadataTypeMap</code>
379
406
  * [.createFolderDefinitions(deployDir, metadata, metadataTypeArr)](#Deployer.createFolderDefinitions) ⇒ <code>void</code>
380
407
 
@@ -395,7 +422,7 @@ Creates a Deployer, uses v2 auth if v2AuthOptions are passed.
395
422
  **Kind**: instance property of [<code>Deployer</code>](#Deployer)
396
423
  <a name="Deployer+_deploy"></a>
397
424
 
398
- ### deployer.\_deploy([typeArr], [keyArr], [fromRetrieve], [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
425
+ ### deployer.\_deploy([typeArr], [keyArr]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
399
426
  Deploy all metadata that is located in the deployDir
400
427
 
401
428
  **Kind**: instance method of [<code>Deployer</code>](#Deployer)
@@ -405,12 +432,10 @@ Deploy all metadata that is located in the deployDir
405
432
  | --- | --- | --- |
406
433
  | [typeArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type (can include subtype) |
407
434
  | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
408
- | [fromRetrieve] | <code>boolean</code> | if true, no folders will be updated/created |
409
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
410
435
 
411
436
  <a name="Deployer.deploy"></a>
412
437
 
413
- ### Deployer.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
438
+ ### Deployer.deploy(businessUnit, [selectedTypesArr], [keyArr]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
414
439
  Deploys all metadata located in the 'deploy' directory to the specified business unit
415
440
 
416
441
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
@@ -421,12 +446,11 @@ Deploys all metadata located in the 'deploy' directory to the specified business
421
446
  | businessUnit | <code>string</code> | references credentials from properties.json |
422
447
  | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
423
448
  | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
424
- | [fromRetrieve] | <code>boolean</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
425
449
 
426
450
  <a name="Deployer._deployBU"></a>
427
451
 
428
- ### Deployer.\_deployBU(cred, bu, properties, [typeArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
429
- helper for [deploy](deploy)
452
+ ### Deployer.\_deployBU(cred, bu, properties, [typeArr], [keyArr]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
453
+ helper for [deploy](#Deployer.deploy)
430
454
 
431
455
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
432
456
  **Returns**: <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code> - ensure that BUs are worked on sequentially
@@ -438,7 +462,6 @@ helper for [deploy](deploy)
438
462
  | properties | <code>TYPE.Mcdevrc</code> | General configuration to be used in retrieve |
439
463
  | [typeArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
440
464
  | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
441
- | [fromRetrieve] | <code>boolean</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
442
465
 
443
466
  <a name="Deployer.readBUMetadata"></a>
444
467
 
@@ -448,11 +471,11 @@ Returns metadata of a business unit that is saved locally
448
471
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
449
472
  **Returns**: <code>TYPE.MultiMetadataTypeMap</code> - Metadata of BU in local directory
450
473
 
451
- | Param | Type | Default | Description |
452
- | --- | --- | --- | --- |
453
- | deployDir | <code>string</code> | | root directory of metadata. |
454
- | [typeArr] | <code>Array.&lt;string&gt;</code> | | limit deployment to given metadata type |
455
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
474
+ | Param | Type | Description |
475
+ | --- | --- | --- |
476
+ | deployDir | <code>string</code> | root directory of metadata. |
477
+ | [typeArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata type |
478
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
456
479
 
457
480
  <a name="Deployer.createFolderDefinitions"></a>
458
481
 
@@ -483,7 +506,7 @@ main class
483
506
  * [.explainTypes()](#Mcdev.explainTypes) ⇒ <code>Array.&lt;object&gt;</code>
484
507
  * [.upgrade()](#Mcdev.upgrade) ⇒ <code>Promise.&lt;boolean&gt;</code>
485
508
  * [.retrieve(businessUnit, [selectedTypesArr], [keys], [changelogOnly])](#Mcdev.retrieve) ⇒ <code>Promise.&lt;object&gt;</code>
486
- * [.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve])](#Mcdev.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
509
+ * [.deploy(businessUnit, [selectedTypesArr], [keyArr])](#Mcdev.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
487
510
  * [.initProject([credentialsName])](#Mcdev.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
488
511
  * [.joinProject()](#Mcdev.joinProject) ⇒ <code>Promise.&lt;void&gt;</code>
489
512
  * [.findBUs(credentialsName)](#Mcdev.findBUs) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -496,6 +519,10 @@ main class
496
519
  * [.buildDefinition(businessUnit, selectedType, name, market)](#Mcdev.buildDefinition) ⇒ <code>Promise.&lt;void&gt;</code>
497
520
  * [.buildDefinitionBulk(listName, type, name)](#Mcdev.buildDefinitionBulk) ⇒ <code>Promise.&lt;void&gt;</code>
498
521
  * [.getFilesToCommit(businessUnit, selectedType, keyArr)](#Mcdev.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
522
+ * [.schedule(businessUnit, [selectedType], [keys])](#Mcdev.schedule) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
523
+ * [.execute(businessUnit, [selectedType], [keys])](#Mcdev.execute) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
524
+ * [.pause(businessUnit, [selectedType], [keys])](#Mcdev.pause) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
525
+ * [.fixKeys(businessUnit, selectedType, [keys])](#Mcdev.fixKeys) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
499
526
 
500
527
  <a name="Mcdev.setSkipInteraction"></a>
501
528
 
@@ -580,18 +607,17 @@ Retrieve all metadata from the specified business unit into the local file syste
580
607
 
581
608
  <a name="Mcdev.deploy"></a>
582
609
 
583
- ### Mcdev.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
610
+ ### Mcdev.deploy(businessUnit, [selectedTypesArr], [keyArr]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
584
611
  Deploys all metadata located in the 'deploy' directory to the specified business unit
585
612
 
586
613
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
587
614
  **Returns**: <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code> - deployed metadata per BU (first key: bu name, second key: metadata type)
588
615
 
589
- | Param | Type | Default | Description |
590
- | --- | --- | --- | --- |
591
- | businessUnit | <code>string</code> | | references credentials from properties.json |
592
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | | limit deployment to given metadata type |
593
- | [keyArr] | <code>Array.&lt;string&gt;</code> | | limit deployment to given metadata keys |
594
- | [fromRetrieve] | <code>boolean</code> | <code>false</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
616
+ | Param | Type | Description |
617
+ | --- | --- | --- |
618
+ | businessUnit | <code>string</code> | references credentials from properties.json |
619
+ | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
620
+ | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
595
621
 
596
622
  <a name="Mcdev.initProject"></a>
597
623
 
@@ -748,6 +774,62 @@ Build a specific metadata file based on a template using a list of bu-market com
748
774
  | selectedType | <code>string</code> | supported metadata type |
749
775
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
750
776
 
777
+ <a name="Mcdev.schedule"></a>
778
+
779
+ ### Mcdev.schedule(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
780
+ Schedule an item (shortcut for execute --schedule)
781
+
782
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
783
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of scheduled item keys
784
+
785
+ | Param | Type | Description |
786
+ | --- | --- | --- |
787
+ | businessUnit | <code>string</code> | name of BU |
788
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
789
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
790
+
791
+ <a name="Mcdev.execute"></a>
792
+
793
+ ### Mcdev.execute(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
794
+ Start/execute an item
795
+
796
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
797
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of executed item keys
798
+
799
+ | Param | Type | Description |
800
+ | --- | --- | --- |
801
+ | businessUnit | <code>string</code> | name of BU |
802
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
803
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
804
+
805
+ <a name="Mcdev.pause"></a>
806
+
807
+ ### Mcdev.pause(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
808
+ pause an item
809
+
810
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
811
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of paused item keys
812
+
813
+ | Param | Type | Description |
814
+ | --- | --- | --- |
815
+ | businessUnit | <code>string</code> | name of BU |
816
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
817
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
818
+
819
+ <a name="Mcdev.fixKeys"></a>
820
+
821
+ ### Mcdev.fixKeys(businessUnit, selectedType, [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
822
+ Updates the key to match the name field
823
+
824
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
825
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of paused item keys
826
+
827
+ | Param | Type | Description |
828
+ | --- | --- | --- |
829
+ | businessUnit | <code>string</code> | name of BU |
830
+ | selectedType | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
831
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
832
+
751
833
  <a name="Asset"></a>
752
834
 
753
835
  ## Asset ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -767,7 +849,7 @@ FileTransfer MetadataType
767
849
  * [._retrieveExtendedFile(metadata, subType, retrieveDir)](#Asset._retrieveExtendedFile) ⇒ <code>Promise.&lt;void&gt;</code>
768
850
  * [._readExtendedFileFromFS(metadata, subType, deployDir, [pathOnly])](#Asset._readExtendedFileFromFS) ⇒ <code>Promise.&lt;string&gt;</code>
769
851
  * [.postRetrieveTasks(metadata)](#Asset.postRetrieveTasks) ⇒ <code>TYPE.CodeExtractItem</code>
770
- * [.postDeployTasks(metadata, _, createdUpdated, [isRefresh])](#Asset.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
852
+ * [.postDeployTasks(metadata, _, createdUpdated)](#Asset.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
771
853
  * [.preDeployTasks(metadata, deployDir)](#Asset.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.AssetItem&gt;</code>
772
854
  * [._getMainSubtype(extendedSubType)](#Asset._getMainSubtype) ⇒ <code>string</code>
773
855
  * [.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Asset.buildDefinitionForNested) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -900,7 +982,7 @@ This method retrieves these and saves them alongside the metadata json
900
982
  <a name="Asset._readExtendedFileFromFS"></a>
901
983
 
902
984
  ### Asset.\_readExtendedFileFromFS(metadata, subType, deployDir, [pathOnly]) ⇒ <code>Promise.&lt;string&gt;</code>
903
- helper for [preDeployTasks](preDeployTasks)
985
+ helper for [preDeployTasks](#Asset.preDeployTasks)
904
986
  Some metadata types store their actual content as a separate file, e.g. images
905
987
  This method reads these from the local FS stores them in the metadata object allowing to deploy it
906
988
 
@@ -928,7 +1010,7 @@ manages post retrieve steps
928
1010
 
929
1011
  <a name="Asset.postDeployTasks"></a>
930
1012
 
931
- ### Asset.postDeployTasks(metadata, _, createdUpdated, [isRefresh]) ⇒ <code>Promise.&lt;void&gt;</code>
1013
+ ### Asset.postDeployTasks(metadata, _, createdUpdated) ⇒ <code>Promise.&lt;void&gt;</code>
932
1014
  Gets executed after deployment of metadata type
933
1015
 
934
1016
  **Kind**: static method of [<code>Asset</code>](#Asset)
@@ -939,7 +1021,6 @@ Gets executed after deployment of metadata type
939
1021
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
940
1022
  | _ | <code>TYPE.MetadataTypeMap</code> | originalMetadata to be updated (contains additioanl fields) |
941
1023
  | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
942
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
943
1024
 
944
1025
  <a name="Asset.preDeployTasks"></a>
945
1026
 
@@ -1047,7 +1128,7 @@ Asset-specific script that retrieves the folder ID from cache and updates the gi
1047
1128
  <a name="Asset._mergeCode"></a>
1048
1129
 
1049
1130
  ### Asset.\_mergeCode(metadata, deployDir, subType, [templateName], [fileListOnly]) ⇒ <code>Promise.&lt;Array.&lt;TYPE.CodeExtract&gt;&gt;</code>
1050
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
1131
+ helper for [preDeployTasks](#Asset.preDeployTasks) that loads extracted code content back into JSON
1051
1132
 
1052
1133
  **Kind**: static method of [<code>Asset</code>](#Asset)
1053
1134
  **Returns**: <code>Promise.&lt;Array.&lt;TYPE.CodeExtract&gt;&gt;</code> - fileList for templating (disregarded during deployment)
@@ -1063,7 +1144,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
1063
1144
  <a name="Asset._mergeCode_slots"></a>
1064
1145
 
1065
1146
  ### Asset.\_mergeCode\_slots(prefix, metadataSlots, readDirArr, subtypeExtension, subDirArr, fileList, customerKey, [templateName], [fileListOnly]) ⇒ <code>Promise.&lt;void&gt;</code>
1066
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
1147
+ helper for [preDeployTasks](#Asset.preDeployTasks) that loads extracted code content back into JSON
1067
1148
 
1068
1149
  **Kind**: static method of [<code>Asset</code>](#Asset)
1069
1150
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -1083,7 +1164,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
1083
1164
  <a name="Asset._extractCode"></a>
1084
1165
 
1085
1166
  ### Asset.\_extractCode(metadata) ⇒ <code>TYPE.CodeExtractItem</code>
1086
- helper for [postRetrieveTasks](postRetrieveTasks) that finds code content in JSON and extracts it
1167
+ helper for [postRetrieveTasks](#Asset.postRetrieveTasks) that finds code content in JSON and extracts it
1087
1168
  to allow saving that separately and formatted
1088
1169
 
1089
1170
  **Kind**: static method of [<code>Asset</code>](#Asset)
@@ -1170,6 +1251,7 @@ AttributeGroup MetadataType
1170
1251
  * [AttributeGroup](#AttributeGroup) ⇐ [<code>MetadataType</code>](#MetadataType)
1171
1252
  * [.retrieve(retrieveDir, [_], [__], [key])](#AttributeGroup.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1172
1253
  * [.retrieveForCache()](#AttributeGroup.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1254
+ * [.postRetrieveTasks(metadata)](#AttributeGroup.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
1173
1255
 
1174
1256
  <a name="AttributeGroup.retrieve"></a>
1175
1257
 
@@ -1193,6 +1275,87 @@ Retrieves Metadata of schema attribute groups for caching.
1193
1275
 
1194
1276
  **Kind**: static method of [<code>AttributeGroup</code>](#AttributeGroup)
1195
1277
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of metadata
1278
+ <a name="AttributeGroup.postRetrieveTasks"></a>
1279
+
1280
+ ### AttributeGroup.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
1281
+ manages post retrieve steps
1282
+
1283
+ **Kind**: static method of [<code>AttributeGroup</code>](#AttributeGroup)
1284
+ **Returns**: <code>TYPE.MetadataTypeItem</code> - metadata
1285
+
1286
+ | Param | Type | Description |
1287
+ | --- | --- | --- |
1288
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata |
1289
+
1290
+ <a name="AttributeSet"></a>
1291
+
1292
+ ## AttributeSet ⇐ [<code>MetadataType</code>](#MetadataType)
1293
+ AttributeSet MetadataType
1294
+
1295
+ **Kind**: global class
1296
+ **Extends**: [<code>MetadataType</code>](#MetadataType)
1297
+
1298
+ * [AttributeSet](#AttributeSet) ⇐ [<code>MetadataType</code>](#MetadataType)
1299
+ * [.retrieve(retrieveDir, [_], [__], [key])](#AttributeSet.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1300
+ * [.retrieveForCache()](#AttributeSet.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1301
+ * [.parseResponseBody(body, [singleRetrieve])](#AttributeSet.parseResponseBody) ⇒ <code>TYPE.MetadataTypeMap</code>
1302
+ * [.postRetrieveTasks(metadata)](#AttributeSet.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
1303
+ * [._getSystemValueDefinitions()](#AttributeSet._getSystemValueDefinitions) ⇒ <code>Array.&lt;object&gt;</code>
1304
+
1305
+ <a name="AttributeSet.retrieve"></a>
1306
+
1307
+ ### AttributeSet.retrieve(retrieveDir, [_], [__], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1308
+ Retrieves Metadata of schema set Definitions.
1309
+
1310
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1311
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
1312
+
1313
+ | Param | Type | Description |
1314
+ | --- | --- | --- |
1315
+ | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
1316
+ | [_] | <code>void</code> | unused parameter |
1317
+ | [__] | <code>void</code> | unused parameter |
1318
+ | [key] | <code>string</code> | customer key of single item to retrieve |
1319
+
1320
+ <a name="AttributeSet.retrieveForCache"></a>
1321
+
1322
+ ### AttributeSet.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1323
+ Retrieves Metadata of schema set definitions for caching.
1324
+
1325
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1326
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
1327
+ <a name="AttributeSet.parseResponseBody"></a>
1328
+
1329
+ ### AttributeSet.parseResponseBody(body, [singleRetrieve]) ⇒ <code>TYPE.MetadataTypeMap</code>
1330
+ Builds map of metadata entries mapped to their keyfields
1331
+
1332
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1333
+ **Returns**: <code>TYPE.MetadataTypeMap</code> - keyField => metadata map
1334
+
1335
+ | Param | Type | Description |
1336
+ | --- | --- | --- |
1337
+ | body | <code>object</code> | json of response body |
1338
+ | [singleRetrieve] | <code>string</code> \| <code>number</code> | key of single item to filter by |
1339
+
1340
+ <a name="AttributeSet.postRetrieveTasks"></a>
1341
+
1342
+ ### AttributeSet.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
1343
+ manages post retrieve steps
1344
+
1345
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1346
+ **Returns**: <code>TYPE.MetadataTypeItem</code> - metadata
1347
+
1348
+ | Param | Type | Description |
1349
+ | --- | --- | --- |
1350
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata |
1351
+
1352
+ <a name="AttributeSet._getSystemValueDefinitions"></a>
1353
+
1354
+ ### AttributeSet.\_getSystemValueDefinitions() ⇒ <code>Array.&lt;object&gt;</code>
1355
+ helper for [postRetrieveTasks](#AttributeSet.postRetrieveTasks)
1356
+
1357
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1358
+ **Returns**: <code>Array.&lt;object&gt;</code> - all system value definitions
1196
1359
  <a name="Automation"></a>
1197
1360
 
1198
1361
  ## Automation ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -1206,8 +1369,11 @@ Automation MetadataType
1206
1369
  * [.retrieveChangelog()](#Automation.retrieveChangelog) ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
1207
1370
  * [.retrieveForCache()](#Automation.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
1208
1371
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Automation.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.AutomationItemObj&gt;</code>
1209
- * [.postRetrieveTasks(metadata)](#Automation.postRetrieveTasks) ⇒ <code>TYPE.AutomationItem</code>
1210
- * [.deploy(metadata, targetBU, retrieveDir, [isRefresh])](#Automation.deploy) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1372
+ * [.postRetrieveTasks(metadata)](#Automation.postRetrieveTasks) ⇒ <code>TYPE.AutomationItem</code> \| <code>void</code>
1373
+ * [.execute(keyArr)](#Automation.execute) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1374
+ * [.getErrorsREST(ex)](#Automation.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
1375
+ * [.pause(keyArr)](#Automation.pause) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1376
+ * [.deploy(metadata, targetBU, retrieveDir)](#Automation.deploy) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1211
1377
  * [.create(metadata)](#Automation.create) ⇒ <code>Promise</code>
1212
1378
  * [.update(metadata, metadataBefore)](#Automation.update) ⇒ <code>Promise</code>
1213
1379
  * [.preDeployTasks(metadata)](#Automation.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.AutomationItem&gt;</code>
@@ -1215,7 +1381,6 @@ Automation MetadataType
1215
1381
  * [.postDeployTasks(metadataMap, originalMetadataMap)](#Automation.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
1216
1382
  * [.setFolderPath(metadata)](#Automation.setFolderPath)
1217
1383
  * [.setFolderId(metadata)](#Automation.setFolderId)
1218
- * [.parseMetadata(metadata)](#Automation.parseMetadata) ⇒ <code>TYPE.AutomationItem</code> \| <code>void</code>
1219
1384
  * [._buildSchedule(scheduleObject)](#Automation._buildSchedule) ⇒ <code>TYPE.AutomationScheduleSoap</code>
1220
1385
  * [._calcTime(offsetServer, dateInput, [offsetInput])](#Automation._calcTime) ⇒ <code>string</code>
1221
1386
  * [.document([metadata])](#Automation.document) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -1268,19 +1433,55 @@ Retrieve a specific Automation Definition by Name
1268
1433
 
1269
1434
  <a name="Automation.postRetrieveTasks"></a>
1270
1435
 
1271
- ### Automation.postRetrieveTasks(metadata) ⇒ <code>TYPE.AutomationItem</code>
1436
+ ### Automation.postRetrieveTasks(metadata) ⇒ <code>TYPE.AutomationItem</code> \| <code>void</code>
1272
1437
  manages post retrieve steps
1273
1438
 
1274
1439
  **Kind**: static method of [<code>Automation</code>](#Automation)
1275
- **Returns**: <code>TYPE.AutomationItem</code> - metadata
1440
+ **Returns**: <code>TYPE.AutomationItem</code> \| <code>void</code> - parsed item
1276
1441
 
1277
1442
  | Param | Type | Description |
1278
1443
  | --- | --- | --- |
1279
1444
  | metadata | <code>TYPE.AutomationItem</code> | a single automation |
1280
1445
 
1446
+ <a name="Automation.execute"></a>
1447
+
1448
+ ### Automation.execute(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1449
+ a function to start query execution via API
1450
+
1451
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1452
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were executed
1453
+
1454
+ | Param | Type | Description |
1455
+ | --- | --- | --- |
1456
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
1457
+
1458
+ <a name="Automation.getErrorsREST"></a>
1459
+
1460
+ ### Automation.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
1461
+ Standardizes a check for multiple messages but adds query specific filters to error texts
1462
+
1463
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1464
+ **Returns**: <code>Array.&lt;string&gt;</code> \| <code>void</code> - formatted Error Message
1465
+
1466
+ | Param | Type | Description |
1467
+ | --- | --- | --- |
1468
+ | ex | <code>object</code> | response payload from REST API |
1469
+
1470
+ <a name="Automation.pause"></a>
1471
+
1472
+ ### Automation.pause(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1473
+ a function to start query execution via API
1474
+
1475
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1476
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were paused
1477
+
1478
+ | Param | Type | Description |
1479
+ | --- | --- | --- |
1480
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
1481
+
1281
1482
  <a name="Automation.deploy"></a>
1282
1483
 
1283
- ### Automation.deploy(metadata, targetBU, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1484
+ ### Automation.deploy(metadata, targetBU, retrieveDir) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1284
1485
  Deploys automation - the saved file is the original one due to large differences required for deployment
1285
1486
 
1286
1487
  **Kind**: static method of [<code>Automation</code>](#Automation)
@@ -1291,7 +1492,6 @@ Deploys automation - the saved file is the original one due to large differences
1291
1492
  | metadata | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
1292
1493
  | targetBU | <code>string</code> | name/shorthand of target businessUnit for mapping |
1293
1494
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
1294
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by automation |
1295
1495
 
1296
1496
  <a name="Automation.create"></a>
1297
1497
 
@@ -1378,18 +1578,6 @@ automation-specific script that retrieves the folder ID from cache and updates t
1378
1578
  | --- | --- | --- |
1379
1579
  | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
1380
1580
 
1381
- <a name="Automation.parseMetadata"></a>
1382
-
1383
- ### Automation.parseMetadata(metadata) ⇒ <code>TYPE.AutomationItem</code> \| <code>void</code>
1384
- parses retrieved Metadata before saving
1385
-
1386
- **Kind**: static method of [<code>Automation</code>](#Automation)
1387
- **Returns**: <code>TYPE.AutomationItem</code> \| <code>void</code> - parsed item
1388
-
1389
- | Param | Type | Description |
1390
- | --- | --- | --- |
1391
- | metadata | <code>TYPE.AutomationItem</code> | a single automation definition |
1392
-
1393
1581
  <a name="Automation._buildSchedule"></a>
1394
1582
 
1395
1583
  ### Automation.\_buildSchedule(scheduleObject) ⇒ <code>TYPE.AutomationScheduleSoap</code>
@@ -1851,7 +2039,7 @@ Retrieves all records for caching
1851
2039
  <a name="DataExtensionField.convertToSortedArray"></a>
1852
2040
 
1853
2041
  ### DataExtensionField.convertToSortedArray(fieldsObj) ⇒ <code>Array.&lt;TYPE.DataExtensionFieldItem&gt;</code>
1854
- helper for [DataExtension._retrieveFieldsForSingleDe](DataExtension._retrieveFieldsForSingleDe) that sorts the fields into an array
2042
+ helper for DataExtension.retrieveFieldsForSingleDe that sorts the fields into an array
1855
2043
 
1856
2044
  **Kind**: static method of [<code>DataExtensionField</code>](#DataExtensionField)
1857
2045
  **Returns**: <code>Array.&lt;TYPE.DataExtensionFieldItem&gt;</code> - sorted array of field objects
@@ -2317,7 +2505,7 @@ Event MetadataType
2317
2505
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Event.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.MetadataTypeItemObj&gt;</code>
2318
2506
  * [.postRetrieveTasks(eventDef)](#Event.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
2319
2507
  * [.deleteByKey(key)](#Event.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
2320
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#Event.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2508
+ * [.deploy(metadata, deployDir, retrieveDir)](#Event.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2321
2509
  * [.create(metadata)](#Event.create) ⇒ <code>Promise</code>
2322
2510
  * [.update(metadataEntry)](#Event.update) ⇒ <code>Promise</code>
2323
2511
  * [.preDeployTasks(metadata)](#Event.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
@@ -2387,7 +2575,7 @@ Delete a metadata item from the specified business unit
2387
2575
 
2388
2576
  <a name="Event.deploy"></a>
2389
2577
 
2390
- ### Event.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2578
+ ### Event.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2391
2579
  Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta) once per deploy
2392
2580
 
2393
2581
  **Kind**: static method of [<code>Event</code>](#Event)
@@ -2398,7 +2586,6 @@ Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta)
2398
2586
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
2399
2587
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
2400
2588
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
2401
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by eventDefinition |
2402
2589
 
2403
2590
  <a name="Event.create"></a>
2404
2591
 
@@ -2729,10 +2916,10 @@ Returns file contents mapped to their filename without '.json' ending
2729
2916
  **Kind**: static method of [<code>Folder</code>](#Folder)
2730
2917
  **Returns**: <code>TYPE.MetadataTypeMap</code> - fileName => fileContent map
2731
2918
 
2732
- | Param | Type | Default | Description |
2733
- | --- | --- | --- | --- |
2734
- | dir | <code>string</code> | | directory that contains '.json' files to be read |
2735
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
2919
+ | Param | Type | Description |
2920
+ | --- | --- | --- |
2921
+ | dir | <code>string</code> | directory that contains '.json' files to be read |
2922
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
2736
2923
 
2737
2924
  <a name="Folder.retrieveHelper"></a>
2738
2925
 
@@ -2905,7 +3092,7 @@ definitionId: A unique UUID provided by Salesforce Marketing Cloud. Each version
2905
3092
  * [Journey](#Journey) ⇐ [<code>MetadataType</code>](#MetadataType)
2906
3093
  * [.retrieve(retrieveDir, [_], [__], [key])](#Journey.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
2907
3094
  * [.deleteByKey(key)](#Journey.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
2908
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#Journey.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3095
+ * [.deploy(metadata, deployDir, retrieveDir)](#Journey.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2909
3096
  * [.update(metadata)](#Journey.update) ⇒ <code>Promise</code>
2910
3097
  * [.create(metadata)](#Journey.create) ⇒ <code>Promise</code>
2911
3098
  * [.saveResults(results, retrieveDir, [overrideType], [templateVariables])](#Journey.saveResults) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
@@ -2943,7 +3130,7 @@ Delete a metadata item from the specified business unit
2943
3130
 
2944
3131
  <a name="Journey.deploy"></a>
2945
3132
 
2946
- ### Journey.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3133
+ ### Journey.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2947
3134
  Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta) once per deploy
2948
3135
 
2949
3136
  **Kind**: static method of [<code>Journey</code>](#Journey)
@@ -2954,7 +3141,6 @@ Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta)
2954
3141
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
2955
3142
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
2956
3143
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
2957
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by interaction |
2958
3144
 
2959
3145
  <a name="Journey.update"></a>
2960
3146
 
@@ -2998,7 +3184,7 @@ Helper for writing Metadata to disk, used for Retrieve and deploy
2998
3184
  <a name="Journey._postRetrieveTasksBulk"></a>
2999
3185
 
3000
3186
  ### Journey.\_postRetrieveTasksBulk(metadataMap)
3001
- helper for Journey's [saveResults](saveResults). Gets executed after retreive of metadata type and
3187
+ helper for Journey's [saveResults](#Journey.saveResults). Gets executed after retreive of metadata type and
3002
3188
 
3003
3189
  **Kind**: static method of [<code>Journey</code>](#Journey)
3004
3190
 
@@ -3137,8 +3323,8 @@ Provides default functionality that can be overwritten by child metadata type cl
3137
3323
  * [.buObject](#MetadataType.buObject) : <code>TYPE.BuObject</code>
3138
3324
  * [.getJsonFromFS(dir, [listBadKeys])](#MetadataType.getJsonFromFS) ⇒ <code>TYPE.MetadataTypeMap</code>
3139
3325
  * [.getFieldNamesToRetrieve([additionalFields], [isCaching])](#MetadataType.getFieldNamesToRetrieve) ⇒ <code>Array.&lt;string&gt;</code>
3140
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#MetadataType.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3141
- * [.postDeployTasks(upsertResults, originalMetadata, createdUpdated, [isRefresh])](#MetadataType.postDeployTasks) ⇒ <code>void</code>
3326
+ * [.deploy(metadata, deployDir, retrieveDir)](#MetadataType.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3327
+ * [.postDeployTasks(upsertResults, originalMetadata, createdUpdated)](#MetadataType.postDeployTasks) ⇒ <code>void</code>
3142
3328
  * [.postCreateTasks(metadataEntry, apiResponse)](#MetadataType.postCreateTasks) ⇒ <code>void</code>
3143
3329
  * [.postUpdateTasks(metadataEntry, apiResponse)](#MetadataType.postUpdateTasks) ⇒ <code>void</code>
3144
3330
  * [.postDeployTasks_legacyApi(metadataEntry, apiResponse)](#MetadataType.postDeployTasks_legacyApi) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -3155,9 +3341,11 @@ Provides default functionality that can be overwritten by child metadata type cl
3155
3341
  * [.create(metadata, deployDir)](#MetadataType.create) ⇒ <code>void</code>
3156
3342
  * [.update(metadata, [metadataBefore])](#MetadataType.update) ⇒ <code>void</code>
3157
3343
  * [.refresh()](#MetadataType.refresh) ⇒ <code>void</code>
3344
+ * [.execute()](#MetadataType.execute) ⇒ <code>void</code>
3345
+ * [.pause()](#MetadataType.pause) ⇒ <code>void</code>
3158
3346
  * [.hasChanged(cachedVersion, metadata, [fieldName])](#MetadataType.hasChanged) ⇒ <code>boolean</code>
3159
3347
  * [.hasChangedGeneric(cachedVersion, metadata, [fieldName], [silent])](#MetadataType.hasChangedGeneric) ⇒ <code>boolean</code>
3160
- * [.upsert(metadataMap, deployDir, [isRefresh])](#MetadataType.upsert) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3348
+ * [.upsert(metadataMap, deployDir)](#MetadataType.upsert) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3161
3349
  * [.createOrUpdate(metadataMap, metadataKey, hasError, metadataToUpdate, metadataToCreate)](#MetadataType.createOrUpdate) ⇒ <code>&#x27;create&#x27;</code> \| <code>&#x27;update&#x27;</code> \| <code>&#x27;skip&#x27;</code>
3162
3350
  * [.createREST(metadataEntry, uri)](#MetadataType.createREST) ⇒ <code>Promise.&lt;object&gt;</code> \| <code>null</code>
3163
3351
  * [.createSOAP(metadataEntry, [handleOutside])](#MetadataType.createSOAP) ⇒ <code>Promise.&lt;object&gt;</code> \| <code>null</code>
@@ -3167,6 +3355,8 @@ Provides default functionality that can be overwritten by child metadata type cl
3167
3355
  * [.getSOAPErrorMsg(ex)](#MetadataType.getSOAPErrorMsg) ⇒ <code>string</code>
3168
3356
  * [.retrieveSOAP(retrieveDir, [requestParams], [singleRetrieve], [additionalFields])](#MetadataType.retrieveSOAP) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3169
3357
  * [.retrieveREST(retrieveDir, uri, [templateVariables], [singleRetrieve])](#MetadataType.retrieveREST) ⇒ <code>Promise.&lt;{metadata: (TYPE.MetadataTypeMap\|TYPE.MetadataTypeItem), type: string}&gt;</code>
3358
+ * [.executeREST(uri, key)](#MetadataType.executeREST) ⇒ <code>Promise.&lt;{key:string, response:string}&gt;</code>
3359
+ * [.executeSOAP([metadataEntry])](#MetadataType.executeSOAP) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
3170
3360
  * [.runDocumentOnRetrieve([singleRetrieve], metadataMap)](#MetadataType.runDocumentOnRetrieve) ⇒ <code>Promise.&lt;void&gt;</code>
3171
3361
  * [.parseResponseBody(body, [singleRetrieve])](#MetadataType.parseResponseBody) ⇒ <code>TYPE.MetadataTypeMap</code>
3172
3362
  * [.deleteFieldByDefinition(metadataEntry, fieldPath, definitionProperty, origin)](#MetadataType.deleteFieldByDefinition) ⇒ <code>void</code>
@@ -3184,7 +3374,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3184
3374
  * [.findSubType(templateDir, templateName)](#MetadataType.findSubType) ⇒ <code>Promise.&lt;string&gt;</code>
3185
3375
  * [.readSecondaryFolder(templateDir, typeDirArr, templateName, fileName, ex)](#MetadataType.readSecondaryFolder) ⇒ <code>object</code>
3186
3376
  * [.buildDefinition(templateDir, targetDir, templateName, variables)](#MetadataType.buildDefinition) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3187
- * [.checkForErrors(ex)](#MetadataType.checkForErrors) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3377
+ * [.getErrorsREST(ex)](#MetadataType.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3188
3378
  * [.document([metadata], [isDeploy])](#MetadataType.document) ⇒ <code>void</code>
3189
3379
  * [.deleteByKey(customerKey)](#MetadataType.deleteByKey) ⇒ <code>boolean</code>
3190
3380
  * [.postDeleteTasks(customerKey, [additionalExtensions])](#MetadataType.postDeleteTasks) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -3192,6 +3382,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3192
3382
  * [.deleteByKeyREST(url, key, [handleOutside])](#MetadataType.deleteByKeyREST) ⇒ <code>boolean</code>
3193
3383
  * [.readBUMetadataForType(readDir, [listBadKeys], [buMetadata])](#MetadataType.readBUMetadataForType) ⇒ <code>object</code>
3194
3384
  * [.getFilesToCommit(keyArr)](#MetadataType.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
3385
+ * [.getKeysForFixing(metadataMap)](#MetadataType.getKeysForFixing) ⇒ <code>Array.&lt;string&gt;</code>
3195
3386
 
3196
3387
  <a name="MetadataType.client"></a>
3197
3388
 
@@ -3217,10 +3408,10 @@ Returns file contents mapped to their filename without '.json' ending
3217
3408
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3218
3409
  **Returns**: <code>TYPE.MetadataTypeMap</code> - fileName => fileContent map
3219
3410
 
3220
- | Param | Type | Default | Description |
3221
- | --- | --- | --- | --- |
3222
- | dir | <code>string</code> | | directory that contains '.json' files to be read |
3223
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
3411
+ | Param | Type | Description |
3412
+ | --- | --- | --- |
3413
+ | dir | <code>string</code> | directory that contains '.json' files to be read |
3414
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
3224
3415
 
3225
3416
  <a name="MetadataType.getFieldNamesToRetrieve"></a>
3226
3417
 
@@ -3237,7 +3428,7 @@ Returns fieldnames of Metadata Type. 'this.definition.fields' variable only set
3237
3428
 
3238
3429
  <a name="MetadataType.deploy"></a>
3239
3430
 
3240
- ### MetadataType.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3431
+ ### MetadataType.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3241
3432
  Deploys metadata
3242
3433
 
3243
3434
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3248,11 +3439,10 @@ Deploys metadata
3248
3439
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
3249
3440
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
3250
3441
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
3251
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3252
3442
 
3253
3443
  <a name="MetadataType.postDeployTasks"></a>
3254
3444
 
3255
- ### MetadataType.postDeployTasks(upsertResults, originalMetadata, createdUpdated, [isRefresh]) ⇒ <code>void</code>
3445
+ ### MetadataType.postDeployTasks(upsertResults, originalMetadata, createdUpdated) ⇒ <code>void</code>
3256
3446
  Gets executed after deployment of metadata type
3257
3447
 
3258
3448
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3262,12 +3452,11 @@ Gets executed after deployment of metadata type
3262
3452
  | upsertResults | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField as returned by update/create |
3263
3453
  | originalMetadata | <code>TYPE.MetadataTypeMap</code> | metadata to be updated (contains additioanl fields) |
3264
3454
  | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
3265
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3266
3455
 
3267
3456
  <a name="MetadataType.postCreateTasks"></a>
3268
3457
 
3269
3458
  ### MetadataType.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
3270
- helper for [createREST](createREST)
3459
+ helper for [createREST](#MetadataType.createREST)
3271
3460
 
3272
3461
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3273
3462
 
@@ -3279,7 +3468,7 @@ helper for [createREST](createREST)
3279
3468
  <a name="MetadataType.postUpdateTasks"></a>
3280
3469
 
3281
3470
  ### MetadataType.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
3282
- helper for [updateREST](updateREST)
3471
+ helper for [updateREST](#MetadataType.updateREST)
3283
3472
 
3284
3473
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3285
3474
 
@@ -3291,7 +3480,7 @@ helper for [updateREST](updateREST)
3291
3480
  <a name="MetadataType.postDeployTasks_legacyApi"></a>
3292
3481
 
3293
3482
  ### MetadataType.postDeployTasks\_legacyApi(metadataEntry, apiResponse) ⇒ <code>Promise.&lt;void&gt;</code>
3294
- helper for [createREST](createREST) when legacy API endpoints as these do not return the created item but only their new id
3483
+ helper for [createREST](#MetadataType.createREST) when legacy API endpoints as these do not return the created item but only their new id
3295
3484
 
3296
3485
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3297
3486
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -3466,6 +3655,18 @@ Abstract update method that needs to be implemented in child metadata type
3466
3655
  ### MetadataType.refresh() ⇒ <code>void</code>
3467
3656
  Abstract refresh method that needs to be implemented in child metadata type
3468
3657
 
3658
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3659
+ <a name="MetadataType.execute"></a>
3660
+
3661
+ ### MetadataType.execute() ⇒ <code>void</code>
3662
+ Abstract execute method that needs to be implemented in child metadata type
3663
+
3664
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3665
+ <a name="MetadataType.pause"></a>
3666
+
3667
+ ### MetadataType.pause() ⇒ <code>void</code>
3668
+ Abstract pause method that needs to be implemented in child metadata type
3669
+
3469
3670
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3470
3671
  <a name="MetadataType.hasChanged"></a>
3471
3672
 
@@ -3498,7 +3699,7 @@ test if metadata was actually changed or not to potentially skip it during deplo
3498
3699
 
3499
3700
  <a name="MetadataType.upsert"></a>
3500
3701
 
3501
- ### MetadataType.upsert(metadataMap, deployDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3702
+ ### MetadataType.upsert(metadataMap, deployDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3502
3703
  MetadataType upsert, after retrieving from target and comparing to check if create or update operation is needed.
3503
3704
 
3504
3705
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3508,7 +3709,6 @@ MetadataType upsert, after retrieving from target and comparing to check if crea
3508
3709
  | --- | --- | --- |
3509
3710
  | metadataMap | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
3510
3711
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
3511
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3512
3712
 
3513
3713
  <a name="MetadataType.createOrUpdate"></a>
3514
3714
 
@@ -3564,7 +3764,7 @@ Updates a single metadata entry via REST
3564
3764
  | --- | --- | --- | --- |
3565
3765
  | metadataEntry | <code>TYPE.MetadataTypeItem</code> | | a single metadata Entry |
3566
3766
  | uri | <code>string</code> | | rest endpoint for PATCH |
3567
- | [httpMethod] | <code>&#x27;patch&#x27;</code> \| <code>&#x27;post&#x27;</code> \| <code>&#x27;put&#x27;</code> | <code>&#x27;patch&#x27;</code> | defaults to 'patch'; some update requests require PUT instead of PATCH |
3767
+ | [httpMethod] | <code>&#x27;patch&#x27;</code> \| <code>&#x27;post&#x27;</code> \| <code>&#x27;put&#x27;</code> | <code>patch</code> | defaults to 'patch'; some update requests require PUT instead of PATCH |
3568
3768
 
3569
3769
  <a name="MetadataType.updateSOAP"></a>
3570
3770
 
@@ -3594,7 +3794,7 @@ Updates a single metadata entry via fuel-soap (generic lib not wrapper)
3594
3794
  <a name="MetadataType.getSOAPErrorMsg"></a>
3595
3795
 
3596
3796
  ### MetadataType.getSOAPErrorMsg(ex) ⇒ <code>string</code>
3597
- helper for [_handleSOAPErrors](_handleSOAPErrors)
3797
+ helper for [_handleSOAPErrors](#MetadataType._handleSOAPErrors)
3598
3798
 
3599
3799
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3600
3800
  **Returns**: <code>string</code> - error message
@@ -3633,10 +3833,35 @@ Retrieves Metadata for Rest Types
3633
3833
  | [templateVariables] | <code>TYPE.TemplateMap</code> | variables to be replaced in the metadata |
3634
3834
  | [singleRetrieve] | <code>string</code> \| <code>number</code> | key of single item to filter by |
3635
3835
 
3836
+ <a name="MetadataType.executeREST"></a>
3837
+
3838
+ ### MetadataType.executeREST(uri, key) ⇒ <code>Promise.&lt;{key:string, response:string}&gt;</code>
3839
+ Used to execute a query/automation etc.
3840
+
3841
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3842
+ **Returns**: <code>Promise.&lt;{key:string, response:string}&gt;</code> - metadata key and API response (OK or error)
3843
+
3844
+ | Param | Type | Description |
3845
+ | --- | --- | --- |
3846
+ | uri | <code>string</code> | REST endpoint where the POST request should be sent |
3847
+ | key | <code>string</code> | item key |
3848
+
3849
+ <a name="MetadataType.executeSOAP"></a>
3850
+
3851
+ ### MetadataType.executeSOAP([metadataEntry]) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
3852
+ Used to execute a query/automation etc.
3853
+
3854
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3855
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
3856
+
3857
+ | Param | Type | Description |
3858
+ | --- | --- | --- |
3859
+ | [metadataEntry] | <code>TYPE.MetadataTypeItem</code> | single metadata entry |
3860
+
3636
3861
  <a name="MetadataType.runDocumentOnRetrieve"></a>
3637
3862
 
3638
3863
  ### MetadataType.runDocumentOnRetrieve([singleRetrieve], metadataMap) ⇒ <code>Promise.&lt;void&gt;</code>
3639
- helper for [retrieveREST](retrieveREST) and [retrieveSOAP](retrieveSOAP)
3864
+ helper for [retrieveREST](#MetadataType.retrieveREST) and [retrieveSOAP](#MetadataType.retrieveSOAP)
3640
3865
 
3641
3866
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3642
3867
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -3730,10 +3955,10 @@ checks if the current metadata entry should be saved on retrieve or not
3730
3955
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3731
3956
  **Returns**: <code>boolean</code> - true: skip saving == filtered; false: continue with saving
3732
3957
 
3733
- | Param | Type | Default | Description |
3734
- | --- | --- | --- | --- |
3735
- | metadataEntry | <code>TYPE.MetadataTypeItem</code> | | metadata entry |
3736
- | [include] | <code>boolean</code> | <code>false</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3958
+ | Param | Type | Description |
3959
+ | --- | --- | --- |
3960
+ | metadataEntry | <code>TYPE.MetadataTypeItem</code> | metadata entry |
3961
+ | [include] | <code>boolean</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3737
3962
 
3738
3963
  <a name="MetadataType.isFilteredFolder"></a>
3739
3964
 
@@ -3743,10 +3968,10 @@ optionally filter by what folder something is in
3743
3968
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3744
3969
  **Returns**: <code>boolean</code> - true: filtered == do NOT save; false: not filtered == do save
3745
3970
 
3746
- | Param | Type | Default | Description |
3747
- | --- | --- | --- | --- |
3748
- | metadataEntry | <code>object</code> | | metadata entry |
3749
- | [include] | <code>boolean</code> | <code>false</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3971
+ | Param | Type | Description |
3972
+ | --- | --- | --- |
3973
+ | metadataEntry | <code>object</code> | metadata entry |
3974
+ | [include] | <code>boolean</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3750
3975
 
3751
3976
  <a name="MetadataType.saveResults"></a>
3752
3977
 
@@ -3766,7 +3991,7 @@ Helper for writing Metadata to disk, used for Retrieve and deploy
3766
3991
  <a name="MetadataType.applyTemplateValues"></a>
3767
3992
 
3768
3993
  ### MetadataType.applyTemplateValues(code, templateVariables) ⇒ <code>string</code>
3769
- helper for [buildDefinitionForNested](buildDefinitionForNested)
3994
+ helper for [buildDefinitionForNested](#MetadataType.buildDefinitionForNested)
3770
3995
  searches extracted file for template variable names and applies the market values
3771
3996
 
3772
3997
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3780,7 +4005,7 @@ searches extracted file for template variable names and applies the market value
3780
4005
  <a name="MetadataType.applyTemplateNames"></a>
3781
4006
 
3782
4007
  ### MetadataType.applyTemplateNames(code, templateVariables) ⇒ <code>string</code>
3783
- helper for [buildTemplateForNested](buildTemplateForNested)
4008
+ helper for [buildTemplateForNested](#MetadataType.buildTemplateForNested)
3784
4009
  searches extracted file for template variable values and applies the market variable names
3785
4010
 
3786
4011
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3794,7 +4019,7 @@ searches extracted file for template variable values and applies the market vari
3794
4019
  <a name="MetadataType.buildDefinitionForNested"></a>
3795
4020
 
3796
4021
  ### MetadataType.buildDefinitionForNested(templateDir, targetDir, metadata, variables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
3797
- helper for [buildDefinition](buildDefinition)
4022
+ helper for [buildDefinition](#MetadataType.buildDefinition)
3798
4023
  handles extracted code if any are found for complex types (e.g script, asset, query)
3799
4024
 
3800
4025
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3811,7 +4036,7 @@ handles extracted code if any are found for complex types (e.g script, asset, qu
3811
4036
  <a name="MetadataType.buildTemplateForNested"></a>
3812
4037
 
3813
4038
  ### MetadataType.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
3814
- helper for [buildTemplate](buildTemplate)
4039
+ helper for [buildTemplate](#MetadataType.buildTemplate)
3815
4040
  handles extracted code if any are found for complex types
3816
4041
 
3817
4042
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3871,9 +4096,9 @@ parsing is required (for example scripts & queries)
3871
4096
  | templateName | <code>string</code> | name of the metadata file |
3872
4097
  | variables | <code>TYPE.TemplateMap</code> | variables to be replaced in the metadata |
3873
4098
 
3874
- <a name="MetadataType.checkForErrors"></a>
4099
+ <a name="MetadataType.getErrorsREST"></a>
3875
4100
 
3876
- ### MetadataType.checkForErrors(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4101
+ ### MetadataType.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3877
4102
  Standardizes a check for multiple messages
3878
4103
 
3879
4104
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3956,11 +4181,11 @@ Returns metadata of a business unit that is saved locally
3956
4181
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3957
4182
  **Returns**: <code>object</code> - Metadata of BU in local directory
3958
4183
 
3959
- | Param | Type | Default | Description |
3960
- | --- | --- | --- | --- |
3961
- | readDir | <code>string</code> | | root directory of metadata. |
3962
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
3963
- | [buMetadata] | <code>object</code> | | Metadata of BU in local directory |
4184
+ | Param | Type | Description |
4185
+ | --- | --- | --- |
4186
+ | readDir | <code>string</code> | root directory of metadata. |
4187
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
4188
+ | [buMetadata] | <code>object</code> | Metadata of BU in local directory |
3964
4189
 
3965
4190
  <a name="MetadataType.getFilesToCommit"></a>
3966
4191
 
@@ -3975,6 +4200,16 @@ additionally, the documentation for dataExtension and automation should be retur
3975
4200
  | --- | --- | --- |
3976
4201
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
3977
4202
 
4203
+ <a name="MetadataType.getKeysForFixing"></a>
4204
+
4205
+ ### MetadataType.getKeysForFixing(metadataMap) ⇒ <code>Array.&lt;string&gt;</code>
4206
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
4207
+ **Returns**: <code>Array.&lt;string&gt;</code> - list of keys
4208
+
4209
+ | Param | Type | Description |
4210
+ | --- | --- | --- |
4211
+ | metadataMap | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
4212
+
3978
4213
  <a name="MobileCode"></a>
3979
4214
 
3980
4215
  ## MobileCode ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -4151,7 +4386,7 @@ manages post retrieve steps
4151
4386
  <a name="MobileKeyword.prepExtractedCode"></a>
4152
4387
 
4153
4388
  ### MobileKeyword.prepExtractedCode(metadataScript) ⇒ <code>Object</code>
4154
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
4389
+ helper for [postRetrieveTasks](#MobileKeyword.postRetrieveTasks) and [_buildForNested](#MobileKeyword._buildForNested)
4155
4390
 
4156
4391
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4157
4392
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -4201,7 +4436,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
4201
4436
  <a name="MobileKeyword._buildForNested"></a>
4202
4437
 
4203
4438
  ### MobileKeyword.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4204
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
4439
+ helper for [buildTemplateForNested](#MobileKeyword.buildTemplateForNested) / [buildDefinitionForNested](#MobileKeyword.buildDefinitionForNested)
4205
4440
  handles extracted code if any are found for complex types
4206
4441
 
4207
4442
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
@@ -4232,7 +4467,7 @@ prepares an event definition for deployment
4232
4467
  <a name="MobileKeyword.postCreateTasks"></a>
4233
4468
 
4234
4469
  ### MobileKeyword.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4235
- helper for [createREST](createREST)
4470
+ helper for [createREST](#MetadataType.createREST)
4236
4471
 
4237
4472
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4238
4473
 
@@ -4244,7 +4479,7 @@ helper for [createREST](createREST)
4244
4479
  <a name="MobileKeyword.postUpdateTasks"></a>
4245
4480
 
4246
4481
  ### MobileKeyword.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4247
- helper for [updateREST](updateREST)
4482
+ helper for [updateREST](#MetadataType.updateREST)
4248
4483
 
4249
4484
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4250
4485
 
@@ -4256,7 +4491,7 @@ helper for [updateREST](updateREST)
4256
4491
  <a name="MobileKeyword._mergeCode"></a>
4257
4492
 
4258
4493
  ### MobileKeyword.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4259
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
4494
+ helper for [preDeployTasks](#MobileKeyword.preDeployTasks) that loads extracted code content back into JSON
4260
4495
 
4261
4496
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4262
4497
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -4384,7 +4619,7 @@ Creates a single item
4384
4619
  <a name="MobileMessage._mergeCode"></a>
4385
4620
 
4386
4621
  ### MobileMessage.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4387
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
4622
+ helper for [preDeployTasks](#MobileMessage.preDeployTasks) that loads extracted code content back into JSON
4388
4623
 
4389
4624
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4390
4625
  **Returns**: <code>Promise.&lt;string&gt;</code> - code
@@ -4398,7 +4633,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
4398
4633
  <a name="MobileMessage.prepExtractedCode"></a>
4399
4634
 
4400
4635
  ### MobileMessage.prepExtractedCode(code) ⇒ <code>Object</code>
4401
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
4636
+ helper for [postRetrieveTasks](#MobileMessage.postRetrieveTasks) and [_buildForNested](#MobileMessage._buildForNested)
4402
4637
 
4403
4638
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4404
4639
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -4448,7 +4683,7 @@ prepares an event definition for deployment
4448
4683
  <a name="MobileMessage.postCreateTasks"></a>
4449
4684
 
4450
4685
  ### MobileMessage.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4451
- helper for [createREST](createREST)
4686
+ helper for [createREST](#MetadataType.createREST)
4452
4687
 
4453
4688
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4454
4689
 
@@ -4460,7 +4695,7 @@ helper for [createREST](createREST)
4460
4695
  <a name="MobileMessage.postUpdateTasks"></a>
4461
4696
 
4462
4697
  ### MobileMessage.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4463
- helper for [updateREST](updateREST)
4698
+ helper for [updateREST](#MetadataType.updateREST)
4464
4699
 
4465
4700
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4466
4701
 
@@ -4510,7 +4745,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
4510
4745
  <a name="MobileMessage._buildForNested"></a>
4511
4746
 
4512
4747
  ### MobileMessage.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4513
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
4748
+ helper for [buildTemplateForNested](#MobileMessage.buildTemplateForNested) / [buildDefinitionForNested](#MobileMessage.buildDefinitionForNested)
4514
4749
  handles extracted code if any are found for complex types
4515
4750
 
4516
4751
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
@@ -4548,6 +4783,7 @@ Query MetadataType
4548
4783
 
4549
4784
  * [Query](#Query) ⇐ [<code>MetadataType</code>](#MetadataType)
4550
4785
  * [.retrieve(retrieveDir, [_], [__], [key])](#Query.retrieve) ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
4786
+ * [.execute(keyArr)](#Query.execute) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
4551
4787
  * [.retrieveForCache()](#Query.retrieveForCache) ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
4552
4788
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Query.retrieveAsTemplate) ⇒ <code>Promise.&lt;{metadata: Query, type: string}&gt;</code>
4553
4789
  * [.postRetrieveTasks(metadata)](#Query.postRetrieveTasks) ⇒ <code>TYPE.CodeExtractItem</code>
@@ -4558,9 +4794,10 @@ Query MetadataType
4558
4794
  * [.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Query.buildDefinitionForNested) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4559
4795
  * [.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Query.buildTemplateForNested) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4560
4796
  * [.getFilesToCommit(keyArr)](#Query.getFilesToCommit) ⇒ <code>Array.&lt;string&gt;</code>
4561
- * [.checkForErrors(ex)](#Query.checkForErrors) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4797
+ * [.getErrorsREST(ex)](#Query.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4562
4798
  * [.deleteByKey(customerKey)](#Query.deleteByKey) ⇒ <code>boolean</code>
4563
4799
  * [.postDeleteTasks(customerKey)](#Query.postDeleteTasks) ⇒ <code>void</code>
4800
+ * [.postDeployTasks(upsertResults)](#Query.postDeployTasks)
4564
4801
 
4565
4802
  <a name="Query.retrieve"></a>
4566
4803
 
@@ -4577,6 +4814,18 @@ Retrieves Metadata of queries
4577
4814
  | [__] | <code>void</code> | unused parameter |
4578
4815
  | [key] | <code>string</code> | customer key of single item to retrieve |
4579
4816
 
4817
+ <a name="Query.execute"></a>
4818
+
4819
+ ### Query.execute(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
4820
+ a function to start query execution via API
4821
+
4822
+ **Kind**: static method of [<code>Query</code>](#Query)
4823
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were executed successfully
4824
+
4825
+ | Param | Type | Description |
4826
+ | --- | --- | --- |
4827
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
4828
+
4580
4829
  <a name="Query.retrieveForCache"></a>
4581
4830
 
4582
4831
  ### Query.retrieveForCache() ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
@@ -4650,7 +4899,7 @@ prepares a Query for deployment
4650
4899
  <a name="Query.applyTemplateValues"></a>
4651
4900
 
4652
4901
  ### Query.applyTemplateValues(code, templateVariables) ⇒ <code>string</code>
4653
- helper for [buildDefinitionForNested](buildDefinitionForNested)
4902
+ helper for [buildDefinitionForNested](#Query.buildDefinitionForNested)
4654
4903
  searches extracted SQL file for template variables and applies the market values
4655
4904
 
4656
4905
  **Kind**: static method of [<code>Query</code>](#Query)
@@ -4712,9 +4961,9 @@ additionally, the documentation for dataExtension and automation should be retur
4712
4961
  | --- | --- | --- |
4713
4962
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
4714
4963
 
4715
- <a name="Query.checkForErrors"></a>
4964
+ <a name="Query.getErrorsREST"></a>
4716
4965
 
4717
- ### Query.checkForErrors(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4966
+ ### Query.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4718
4967
  Standardizes a check for multiple messages but adds query specific filters to error texts
4719
4968
 
4720
4969
  **Kind**: static method of [<code>Query</code>](#Query)
@@ -4747,6 +4996,17 @@ clean up after deleting a metadata item
4747
4996
  | --- | --- | --- |
4748
4997
  | customerKey | <code>string</code> | Identifier of metadata item |
4749
4998
 
4999
+ <a name="Query.postDeployTasks"></a>
5000
+
5001
+ ### Query.postDeployTasks(upsertResults)
5002
+ Gets executed after deployment of metadata type
5003
+
5004
+ **Kind**: static method of [<code>Query</code>](#Query)
5005
+
5006
+ | Param | Type | Description |
5007
+ | --- | --- | --- |
5008
+ | upsertResults | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField as returned by update/create |
5009
+
4750
5010
  <a name="Role"></a>
4751
5011
 
4752
5012
  ## Role ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -4940,7 +5200,7 @@ Creates a single Script
4940
5200
  <a name="Script._mergeCode"></a>
4941
5201
 
4942
5202
  ### Script.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4943
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
5203
+ helper for [preDeployTasks](#Script.preDeployTasks) that loads extracted code content back into JSON
4944
5204
 
4945
5205
  **Kind**: static method of [<code>Script</code>](#Script)
4946
5206
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -5005,7 +5265,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
5005
5265
  <a name="Script._buildForNested"></a>
5006
5266
 
5007
5267
  ### Script.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5008
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
5268
+ helper for [buildTemplateForNested](#Script.buildTemplateForNested) / [buildDefinitionForNested](#Script.buildDefinitionForNested)
5009
5269
  handles extracted code if any are found for complex types
5010
5270
 
5011
5271
  **Kind**: static method of [<code>Script</code>](#Script)
@@ -5035,7 +5295,7 @@ Splits the script metadata into two parts and parses in a standard manner
5035
5295
  <a name="Script.prepExtractedCode"></a>
5036
5296
 
5037
5297
  ### Script.prepExtractedCode(metadataScript, metadataName) ⇒ <code>Object</code>
5038
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5298
+ helper for [parseMetadata](#Script.parseMetadata) and [_buildForNested](#Script._buildForNested)
5039
5299
 
5040
5300
  **Kind**: static method of [<code>Script</code>](#Script)
5041
5301
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -5080,40 +5340,6 @@ Retrieves SOAP based metadata of metadata type into local filesystem. executes c
5080
5340
  | [__] | <code>void</code> | unused parameter |
5081
5341
  | [key] | <code>string</code> | customer key of single item to retrieve |
5082
5342
 
5083
- <a name="SetDefinition"></a>
5084
-
5085
- ## SetDefinition ⇐ [<code>MetadataType</code>](#MetadataType)
5086
- SetDefinition MetadataType
5087
-
5088
- **Kind**: global class
5089
- **Extends**: [<code>MetadataType</code>](#MetadataType)
5090
-
5091
- * [SetDefinition](#SetDefinition) ⇐ [<code>MetadataType</code>](#MetadataType)
5092
- * [.retrieve(retrieveDir, [_], [__], [key])](#SetDefinition.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5093
- * [.retrieveForCache()](#SetDefinition.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5094
-
5095
- <a name="SetDefinition.retrieve"></a>
5096
-
5097
- ### SetDefinition.retrieve(retrieveDir, [_], [__], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5098
- Retrieves Metadata of schema set Definitions.
5099
-
5100
- **Kind**: static method of [<code>SetDefinition</code>](#SetDefinition)
5101
- **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
5102
-
5103
- | Param | Type | Description |
5104
- | --- | --- | --- |
5105
- | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
5106
- | [_] | <code>void</code> | unused parameter |
5107
- | [__] | <code>void</code> | unused parameter |
5108
- | [key] | <code>string</code> | customer key of single item to retrieve |
5109
-
5110
- <a name="SetDefinition.retrieveForCache"></a>
5111
-
5112
- ### SetDefinition.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5113
- Retrieves Metadata of schema set definitions for caching.
5114
-
5115
- **Kind**: static method of [<code>SetDefinition</code>](#SetDefinition)
5116
- **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
5117
5343
  <a name="TransactionalEmail"></a>
5118
5344
 
5119
5345
  ## TransactionalEmail ⇐ [<code>TransactionalMessage</code>](#TransactionalMessage)
@@ -5319,7 +5545,7 @@ prepares for deployment
5319
5545
  <a name="TransactionalSMS._mergeCode"></a>
5320
5546
 
5321
5547
  ### TransactionalSMS.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
5322
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
5548
+ helper for [preDeployTasks](#TransactionalSMS.preDeployTasks) that loads extracted code content back into JSON
5323
5549
 
5324
5550
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
5325
5551
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -5345,7 +5571,7 @@ manages post retrieve steps
5345
5571
  <a name="TransactionalSMS.prepExtractedCode"></a>
5346
5572
 
5347
5573
  ### TransactionalSMS.prepExtractedCode(metadataScript) ⇒ <code>Object</code>
5348
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5574
+ helper for [postRetrieveTasks](#TransactionalSMS.postRetrieveTasks) and [_buildForNested](#TransactionalSMS._buildForNested)
5349
5575
 
5350
5576
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
5351
5577
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -5357,7 +5583,7 @@ helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5357
5583
  <a name="TransactionalSMS.buildDefinitionForNested"></a>
5358
5584
 
5359
5585
  ### TransactionalSMS.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5360
- helper for [buildDefinition](#MetadataType.buildDefinition)
5586
+ helper for [TransactionalMessage.buildDefinition](TransactionalMessage.buildDefinition)
5361
5587
  handles extracted code if any are found for complex types
5362
5588
 
5363
5589
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5374,7 +5600,7 @@ handles extracted code if any are found for complex types
5374
5600
  <a name="TransactionalSMS.buildTemplateForNested"></a>
5375
5601
 
5376
5602
  ### TransactionalSMS.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5377
- helper for [buildTemplate](#MetadataType.buildTemplate)
5603
+ helper for [TransactionalMessage.buildTemplate](TransactionalMessage.buildTemplate)
5378
5604
  handles extracted code if any are found for complex types
5379
5605
 
5380
5606
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5395,7 +5621,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
5395
5621
  <a name="TransactionalSMS._buildForNested"></a>
5396
5622
 
5397
5623
  ### TransactionalSMS.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5398
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
5624
+ helper for [buildTemplateForNested](#TransactionalSMS.buildTemplateForNested) / [buildDefinitionForNested](#TransactionalSMS.buildDefinitionForNested)
5399
5625
  handles extracted code if any are found for complex types
5400
5626
 
5401
5627
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5448,13 +5674,11 @@ MessageSendActivity MetadataType
5448
5674
  * [.create(metadata)](#TriggeredSend.create) ⇒ <code>Promise</code>
5449
5675
  * [.update(metadata)](#TriggeredSend.update) ⇒ <code>Promise</code>
5450
5676
  * [.deleteByKey(customerKey)](#TriggeredSend.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5451
- * [.postRetrieveTasks(metadata)](#TriggeredSend.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5452
- * [.setFolderPath(metadata)](#TriggeredSend.setFolderPath)
5453
- * [.parseMetadata(metadata)](#TriggeredSend.parseMetadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5677
+ * [.postRetrieveTasks(metadata)](#TriggeredSend.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5454
5678
  * [.preDeployTasks(metadata)](#TriggeredSend.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5455
5679
  * [.refresh([keyArr], [checkKey])](#TriggeredSend.refresh) ⇒ <code>Promise.&lt;void&gt;</code>
5456
5680
  * [.getKeysForValidTSDs(metadata)](#TriggeredSend.getKeysForValidTSDs) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
5457
- * [.findRefreshableItems()](#TriggeredSend.findRefreshableItems) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5681
+ * [.findRefreshableItems([assetLoaded])](#TriggeredSend.findRefreshableItems) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5458
5682
  * [._refreshItem(key, checkKey)](#TriggeredSend._refreshItem) ⇒ <code>Promise.&lt;boolean&gt;</code>
5459
5683
 
5460
5684
  <a name="TriggeredSend.retrieve"></a>
@@ -5510,30 +5734,7 @@ Delete a metadata item from the specified business unit
5510
5734
 
5511
5735
  <a name="TriggeredSend.postRetrieveTasks"></a>
5512
5736
 
5513
- ### TriggeredSend.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
5514
- manages post retrieve steps
5515
-
5516
- **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5517
- **Returns**: <code>TYPE.MetadataTypeItem</code> - Array with one metadata object and one query string
5518
-
5519
- | Param | Type | Description |
5520
- | --- | --- | --- |
5521
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single query |
5522
-
5523
- <a name="TriggeredSend.setFolderPath"></a>
5524
-
5525
- ### TriggeredSend.setFolderPath(metadata)
5526
- generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
5527
-
5528
- **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5529
-
5530
- | Param | Type | Description |
5531
- | --- | --- | --- |
5532
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single script activity definition |
5533
-
5534
- <a name="TriggeredSend.parseMetadata"></a>
5535
-
5536
- ### TriggeredSend.parseMetadata(metadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5737
+ ### TriggeredSend.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5537
5738
  parses retrieved Metadata before saving
5538
5739
 
5539
5740
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
@@ -5541,7 +5742,7 @@ parses retrieved Metadata before saving
5541
5742
 
5542
5743
  | Param | Type | Description |
5543
5744
  | --- | --- | --- |
5544
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single query activity definition |
5745
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
5545
5746
 
5546
5747
  <a name="TriggeredSend.preDeployTasks"></a>
5547
5748
 
@@ -5571,7 +5772,7 @@ TSD-specific refresh method that finds active TSDs and refreshes them
5571
5772
  <a name="TriggeredSend.getKeysForValidTSDs"></a>
5572
5773
 
5573
5774
  ### TriggeredSend.getKeysForValidTSDs(metadata) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
5574
- helper for [refresh](refresh) that extracts the keys from the TSD item map and eli
5775
+ helper for [refresh](#TriggeredSend.refresh) that extracts the keys from the TSD item map and eli
5575
5776
 
5576
5777
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5577
5778
  **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - keyArr
@@ -5582,15 +5783,20 @@ helper for [refresh](refresh) that extracts the keys from the TSD item map and e
5582
5783
 
5583
5784
  <a name="TriggeredSend.findRefreshableItems"></a>
5584
5785
 
5585
- ### TriggeredSend.findRefreshableItems() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5586
- helper for [refresh](refresh) that finds active TSDs on the server and filters it by the same rules that [retrieve](retrieve) is using to avoid refreshing TSDs with broken dependencies
5786
+ ### TriggeredSend.findRefreshableItems([assetLoaded]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5787
+ helper for [refresh](#TriggeredSend.refresh) that finds active TSDs on the server and filters it by the same rules that [retrieve](#TriggeredSend.retrieve) is using to avoid refreshing TSDs with broken dependencies
5587
5788
 
5588
5789
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5589
5790
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of TSD item map
5791
+
5792
+ | Param | Type | Default | Description |
5793
+ | --- | --- | --- | --- |
5794
+ | [assetLoaded] | <code>boolean</code> | <code>false</code> | if run after Asset.deploy via --refresh option this will skip caching assets |
5795
+
5590
5796
  <a name="TriggeredSend._refreshItem"></a>
5591
5797
 
5592
5798
  ### TriggeredSend.\_refreshItem(key, checkKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5593
- helper for [refresh](refresh) that pauses, publishes and starts a triggered send
5799
+ helper for [refresh](#TriggeredSend.refresh) that pauses, publishes and starts a triggered send
5594
5800
 
5595
5801
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5596
5802
  **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if refresh was successful
@@ -5810,7 +6016,7 @@ Retrieve metadata of specified types into local file system and Retriever.metada
5810
6016
  <a name="Retriever+_getTypeDependencies"></a>
5811
6017
 
5812
6018
  ### retriever.\_getTypeDependencies(metadataTypes) ⇒ <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code>
5813
- helper for [retrieve](retrieve) to get all dependencies of the given types
6019
+ helper for [Retriever.retrieve](Retriever.retrieve) to get all dependencies of the given types
5814
6020
 
5815
6021
  **Kind**: instance method of [<code>Retriever</code>](#Retriever)
5816
6022
  **Returns**: <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> - unique list dependent metadata types
@@ -5833,19 +6039,22 @@ CLI entry for SFMC DevTools
5833
6039
  * [.includesStartsWith(arr, search)](#Util.includesStartsWith) ⇒ <code>boolean</code>
5834
6040
  * [.includesStartsWithIndex(arr, search)](#Util.includesStartsWithIndex) ⇒ <code>number</code>
5835
6041
  * [.checkMarket(market, properties)](#Util.checkMarket) ⇒ <code>boolean</code>
5836
- * [.verifyMarketList(mlName, properties)](#Util.verifyMarketList) ⇒ <code>void</code>
6042
+ * [.verifyMarketList(mlName, properties)](#Util.verifyMarketList)
5837
6043
  * [.signalFatalError()](#Util.signalFatalError) ⇒ <code>void</code>
5838
6044
  * [.isTrue(attrValue)](#Util.isTrue) ⇒ <code>boolean</code>
5839
6045
  * [.isFalse(attrValue)](#Util.isFalse) ⇒ <code>boolean</code>
5840
6046
  * [._isValidType(selectedType, [handleOutside])](#Util._isValidType) ⇒ <code>boolean</code>
5841
6047
  * [.getTypeAndSubType(selectedType)](#Util.getTypeAndSubType) ⇒ <code>Array.&lt;string&gt;</code>
5842
6048
  * [.getRetrieveTypeChoices()](#Util.getRetrieveTypeChoices) ⇒ <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code>
6049
+ * [._createNewLoggerTransport([noLogFile])](#Util._createNewLoggerTransport) ⇒ <code>object</code>
6050
+ * [.startLogger([restart], [noLogFile])](#Util.startLogger) ⇒ <code>void</code>
5843
6051
  * [.metadataLogger(level, type, method, payload, [source])](#Util.metadataLogger) ⇒ <code>void</code>
5844
6052
  * [.replaceByObject(str, obj)](#Util.replaceByObject) ⇒ <code>string</code> \| <code>object</code>
5845
6053
  * [.inverseGet(objs, val)](#Util.inverseGet) ⇒ <code>string</code>
6054
+ * [.getDependentMetadata(fixedType)](#Util.getDependentMetadata) ⇒ <code>Array.&lt;string&gt;</code>
5846
6055
  * [.getMetadataHierachy(metadataTypes)](#Util.getMetadataHierachy) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
5847
6056
  * [.resolveObjPath(path, obj)](#Util.resolveObjPath) ⇒ <code>any</code>
5848
- * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code>
6057
+ * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code> \| <code>void</code>
5849
6058
  * [.templateSearchResult(results, keyToSearch, searchValue)](#Util.templateSearchResult) ⇒ <code>TYPE.MetadataTypeItem</code>
5850
6059
  * [.setLoggingLevel(argv)](#Util.setLoggingLevel) ⇒ <code>void</code>
5851
6060
  * [.logBeta(type)](#Util.logBeta)
@@ -5854,6 +6063,9 @@ CLI entry for SFMC DevTools
5854
6063
  * [.getKeysString(keyArr, [isId])](#Util.getKeysString) ⇒ <code>string</code>
5855
6064
  * [.sleep(ms)](#Util.sleep) ⇒ <code>Promise.&lt;void&gt;</code>
5856
6065
  * [.getSsjs(code)](#Util.getSsjs) ⇒ <code>string</code>
6066
+ * [.stringLike(testString, search)](#Util.stringLike) ⇒ <code>boolean</code>
6067
+ * [.fieldsLike(metadata, [filters])](#Util.fieldsLike) ⇒ <code>boolean</code>
6068
+ * [.capitalizeFirstLetter(str)](#Util.capitalizeFirstLetter) ⇒ <code>string</code>
5857
6069
 
5858
6070
  <a name="Util.skipInteraction"></a>
5859
6071
 
@@ -5919,11 +6131,10 @@ check if a market name exists in current mcdev config
5919
6131
 
5920
6132
  <a name="Util.verifyMarketList"></a>
5921
6133
 
5922
- ### Util.verifyMarketList(mlName, properties) ⇒ <code>void</code>
6134
+ ### Util.verifyMarketList(mlName, properties)
5923
6135
  ensure provided MarketList exists and it's content including markets and BUs checks out
5924
6136
 
5925
6137
  **Kind**: static method of [<code>Util</code>](#Util)
5926
- **Returns**: <code>void</code> - throws errors if problems were found
5927
6138
 
5928
6139
  | Param | Type | Description |
5929
6140
  | --- | --- | --- |
@@ -5939,7 +6150,8 @@ used to ensure the program tells surrounding software that an unrecoverable erro
5939
6150
  <a name="Util.isTrue"></a>
5940
6151
 
5941
6152
  ### Util.isTrue(attrValue) ⇒ <code>boolean</code>
5942
- SFMC accepts multiple true values for Boolean attributes for which we are checking here
6153
+ SFMC accepts multiple true values for Boolean attributes for which we are checking here.
6154
+ The same problem occurs when evaluating boolean CLI flags
5943
6155
 
5944
6156
  **Kind**: static method of [<code>Util</code>](#Util)
5945
6157
  **Returns**: <code>boolean</code> - attribute value == true ? true : false
@@ -5951,7 +6163,8 @@ SFMC accepts multiple true values for Boolean attributes for which we are checki
5951
6163
  <a name="Util.isFalse"></a>
5952
6164
 
5953
6165
  ### Util.isFalse(attrValue) ⇒ <code>boolean</code>
5954
- SFMC accepts multiple false values for Boolean attributes for which we are checking here
6166
+ SFMC accepts multiple false values for Boolean attributes for which we are checking here.
6167
+ The same problem occurs when evaluating boolean CLI flags
5955
6168
 
5956
6169
  **Kind**: static method of [<code>Util</code>](#Util)
5957
6170
  **Returns**: <code>boolean</code> - attribute value == false ? true : false
@@ -5963,7 +6176,7 @@ SFMC accepts multiple false values for Boolean attributes for which we are check
5963
6176
  <a name="Util._isValidType"></a>
5964
6177
 
5965
6178
  ### Util.\_isValidType(selectedType, [handleOutside]) ⇒ <code>boolean</code>
5966
- helper for [retrieve](#Mcdev.retrieve), [retrieveAsTemplate](#Mcdev.retrieveAsTemplate) and [deploy](#Mcdev.deploy)
6179
+ helper for Mcdev.retrieve, Mcdev.retrieveAsTemplate and Mcdev.deploy
5967
6180
 
5968
6181
  **Kind**: static method of [<code>Util</code>](#Util)
5969
6182
  **Returns**: <code>boolean</code> - type ok or not
@@ -5992,6 +6205,30 @@ helper for getDefaultProperties()
5992
6205
 
5993
6206
  **Kind**: static method of [<code>Util</code>](#Util)
5994
6207
  **Returns**: <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> - type choices
6208
+ <a name="Util._createNewLoggerTransport"></a>
6209
+
6210
+ ### Util.\_createNewLoggerTransport([noLogFile]) ⇒ <code>object</code>
6211
+ wrapper around our standard winston logging to console and logfile
6212
+
6213
+ **Kind**: static method of [<code>Util</code>](#Util)
6214
+ **Returns**: <code>object</code> - initiated logger for console and file
6215
+
6216
+ | Param | Type | Description |
6217
+ | --- | --- | --- |
6218
+ | [noLogFile] | <code>boolean</code> | optional flag to indicate if we should log to file; CLI logs are always on |
6219
+
6220
+ <a name="Util.startLogger"></a>
6221
+
6222
+ ### Util.startLogger([restart], [noLogFile]) ⇒ <code>void</code>
6223
+ initiate winston logger
6224
+
6225
+ **Kind**: static method of [<code>Util</code>](#Util)
6226
+
6227
+ | Param | Type | Description |
6228
+ | --- | --- | --- |
6229
+ | [restart] | <code>boolean</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
6230
+ | [noLogFile] | <code>boolean</code> | if false, logger will log to file; otherwise, only to console |
6231
+
5995
6232
  <a name="Util.metadataLogger"></a>
5996
6233
 
5997
6234
  ### Util.metadataLogger(level, type, method, payload, [source]) ⇒ <code>void</code>
@@ -6034,6 +6271,18 @@ get key of an object based on the first matching value
6034
6271
  | objs | <code>object</code> | object of objects to be searched |
6035
6272
  | val | <code>string</code> | value to be searched for |
6036
6273
 
6274
+ <a name="Util.getDependentMetadata"></a>
6275
+
6276
+ ### Util.getDependentMetadata(fixedType) ⇒ <code>Array.&lt;string&gt;</code>
6277
+ helper for Mcdev.fixKeys. Retrieve dependent metadata
6278
+
6279
+ **Kind**: static method of [<code>Util</code>](#Util)
6280
+ **Returns**: <code>Array.&lt;string&gt;</code> - array of types that depend on the given type
6281
+
6282
+ | Param | Type | Description |
6283
+ | --- | --- | --- |
6284
+ | fixedType | <code>string</code> | type of the metadata passed as a parameter to fixKeys function |
6285
+
6037
6286
  <a name="Util.getMetadataHierachy"></a>
6038
6287
 
6039
6288
  ### Util.getMetadataHierachy(metadataTypes) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
@@ -6061,11 +6310,11 @@ let's you dynamically walk down an object and get a value
6061
6310
 
6062
6311
  <a name="Util.execSync"></a>
6063
6312
 
6064
- ### Util.execSync(cmd, [args], [hideOutput]) ⇒ <code>string</code>
6313
+ ### Util.execSync(cmd, [args], [hideOutput]) ⇒ <code>string</code> \| <code>void</code>
6065
6314
  helper to run other commands as if run manually by user
6066
6315
 
6067
6316
  **Kind**: static method of [<code>Util</code>](#Util)
6068
- **Returns**: <code>string</code> - output of command if hideOutput is true
6317
+ **Returns**: <code>string</code> \| <code>void</code> - output of command if hideOutput is true
6069
6318
 
6070
6319
  | Param | Type | Description |
6071
6320
  | --- | --- | --- |
@@ -6163,7 +6412,7 @@ pause execution of code; useful when multiple server calls are dependent on each
6163
6412
  <a name="Util.getSsjs"></a>
6164
6413
 
6165
6414
  ### Util.getSsjs(code) ⇒ <code>string</code>
6166
- helper for [_extractCode](#Asset._extractCode) and [prepExtractedCode](#Script.prepExtractedCode) to determine if a code block is a valid SSJS block
6415
+ helper for Asset.extractCode and Script.prepExtractedCode to determine if a code block is a valid SSJS block
6167
6416
 
6168
6417
  **Kind**: static method of [<code>Util</code>](#Util)
6169
6418
  **Returns**: <code>string</code> - the SSJS code if code block is a valid SSJS block, otherwise null
@@ -6187,6 +6436,44 @@ the following is invalid:
6187
6436
  // 3
6188
6437
  </script>
6189
6438
  ```
6439
+ <a name="Util.stringLike"></a>
6440
+
6441
+ ### Util.stringLike(testString, search) ⇒ <code>boolean</code>
6442
+ allows us to filter just like with SQL's LIKE operator
6443
+
6444
+ **Kind**: static method of [<code>Util</code>](#Util)
6445
+ **Returns**: <code>boolean</code> - true if testString matches search
6446
+
6447
+ | Param | Type | Description |
6448
+ | --- | --- | --- |
6449
+ | testString | <code>string</code> | field value to test |
6450
+ | search | <code>string</code> | search string in SQL LIKE format |
6451
+
6452
+ <a name="Util.fieldsLike"></a>
6453
+
6454
+ ### Util.fieldsLike(metadata, [filters]) ⇒ <code>boolean</code>
6455
+ returns true if no LIKE filter is defined or if all filters match
6456
+
6457
+ **Kind**: static method of [<code>Util</code>](#Util)
6458
+ **Returns**: <code>boolean</code> - true if no LIKE filter is defined or if all filters match
6459
+
6460
+ | Param | Type | Description |
6461
+ | --- | --- | --- |
6462
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata item |
6463
+ | [filters] | <code>object</code> | only used in recursive calls |
6464
+
6465
+ <a name="Util.capitalizeFirstLetter"></a>
6466
+
6467
+ ### Util.capitalizeFirstLetter(str) ⇒ <code>string</code>
6468
+ helper used by SOAP methods to ensure the type always uses an upper-cased first letter
6469
+
6470
+ **Kind**: static method of [<code>Util</code>](#Util)
6471
+ **Returns**: <code>string</code> - str with first letter capitalized
6472
+
6473
+ | Param | Type | Description |
6474
+ | --- | --- | --- |
6475
+ | str | <code>string</code> | string to capitalize |
6476
+
6190
6477
  <a name="MetadataTypeDefinitions"></a>
6191
6478
 
6192
6479
  ## MetadataTypeDefinitions
@@ -6250,6 +6537,7 @@ CLI helper class
6250
6537
  * [Cli](#Cli)
6251
6538
  * [.initMcdevConfig()](#Cli.initMcdevConfig) ⇒ <code>Promise.&lt;boolean&gt;</code>
6252
6539
  * [.addExtraCredential(properties)](#Cli.addExtraCredential) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
6540
+ * [.postFixKeysReretrieve(type, dependentTypes)](#Cli.postFixKeysReretrieve) ⇒ <code>Promise.&lt;boolean&gt;</code>
6253
6541
  * [.logExistingCredentials(properties)](#Cli.logExistingCredentials) ⇒ <code>void</code>
6254
6542
  * [.updateCredential(properties, credName)](#Cli.updateCredential) ⇒ <code>Promise.&lt;boolean&gt;</code>
6255
6543
  * [.getCredentialObject(properties, target, [isCredentialOnly], [allowAll])](#Cli.getCredentialObject) ⇒ <code>Promise.&lt;TYPE.BuObject&gt;</code>
@@ -6280,6 +6568,17 @@ Extends template file for properties.json
6280
6568
  | --- | --- | --- |
6281
6569
  | properties | <code>TYPE.Mcdevrc</code> | config file's json |
6282
6570
 
6571
+ <a name="Cli.postFixKeysReretrieve"></a>
6572
+
6573
+ ### Cli.postFixKeysReretrieve(type, dependentTypes) ⇒ <code>Promise.&lt;boolean&gt;</code>
6574
+ **Kind**: static method of [<code>Cli</code>](#Cli)
6575
+ **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if user wants to continue with retrieve
6576
+
6577
+ | Param | Type | Description |
6578
+ | --- | --- | --- |
6579
+ | type | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
6580
+ | dependentTypes | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | types that depent on type |
6581
+
6283
6582
  <a name="Cli.logExistingCredentials"></a>
6284
6583
 
6285
6584
  ### Cli.logExistingCredentials(properties) ⇒ <code>void</code>
@@ -6724,12 +7023,12 @@ reads file from local file system.
6724
7023
  **Kind**: static method of [<code>File</code>](#File)
6725
7024
  **Returns**: <code>Promise.&lt;string&gt;</code> \| <code>void</code> - file contents; void on error
6726
7025
 
6727
- | Param | Type | Default | Description |
6728
- | --- | --- | --- | --- |
6729
- | directory | <code>string</code> \| <code>Array.&lt;string&gt;</code> | | directory where the file is stored |
6730
- | filename | <code>string</code> | | name of the file without '.json' ending |
6731
- | filetype | <code>string</code> | | filetype suffix |
6732
- | [encoding] | <code>string</code> | <code>&quot;&#x27;utf8&#x27;&quot;</code> | read file with encoding (defaults to utf-8) |
7026
+ | Param | Type | Description |
7027
+ | --- | --- | --- |
7028
+ | directory | <code>string</code> \| <code>Array.&lt;string&gt;</code> | directory where the file is stored |
7029
+ | filename | <code>string</code> | name of the file without '.json' ending |
7030
+ | filetype | <code>string</code> | filetype suffix |
7031
+ | [encoding] | <code>string</code> | read file with encoding (defaults to utf-8) |
6733
7032
 
6734
7033
  <a name="File.readDirectories"></a>
6735
7034
 
@@ -6792,9 +7091,9 @@ Initalises Prettier formatting lib async.
6792
7091
  **Kind**: static method of [<code>File</code>](#File)
6793
7092
  **Returns**: <code>Promise.&lt;boolean&gt;</code> - success of config load
6794
7093
 
6795
- | Param | Type | Default | Description |
6796
- | --- | --- | --- | --- |
6797
- | [filetype] | <code>string</code> | <code>&quot;&#x27;html&#x27;&quot;</code> | filetype ie. JSON or SSJS |
7094
+ | Param | Type | Description |
7095
+ | --- | --- | --- |
7096
+ | [filetype] | <code>string</code> | filetype ie. JSON or SSJS |
6798
7097
 
6799
7098
  <a name="Init"></a>
6800
7099
 
@@ -6820,7 +7119,6 @@ CLI helper class
6820
7119
  * [._initMarkets()](#Init._initMarkets)
6821
7120
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
6822
7121
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
6823
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
6824
7122
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
6825
7123
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
6826
7124
 
@@ -6980,18 +7278,6 @@ wrapper around npm dependency & configuration file setup
6980
7278
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
6981
7279
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
6982
7280
 
6983
- <a name="Init._getMissingCredentials"></a>
6984
-
6985
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
6986
- finds credentials that are set up in config but not in auth file
6987
-
6988
- **Kind**: static method of [<code>Init</code>](#Init)
6989
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
6990
-
6991
- | Param | Type | Description |
6992
- | --- | --- | --- |
6993
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
6994
-
6995
7281
  <a name="Init.installDependencies"></a>
6996
7282
 
6997
7283
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7042,7 +7328,6 @@ CLI helper class
7042
7328
  * [._initMarkets()](#Init._initMarkets)
7043
7329
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7044
7330
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7045
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7046
7331
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7047
7332
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7048
7333
 
@@ -7202,18 +7487,6 @@ wrapper around npm dependency & configuration file setup
7202
7487
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7203
7488
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7204
7489
 
7205
- <a name="Init._getMissingCredentials"></a>
7206
-
7207
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7208
- finds credentials that are set up in config but not in auth file
7209
-
7210
- **Kind**: static method of [<code>Init</code>](#Init)
7211
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7212
-
7213
- | Param | Type | Description |
7214
- | --- | --- | --- |
7215
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7216
-
7217
7490
  <a name="Init.installDependencies"></a>
7218
7491
 
7219
7492
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7264,7 +7537,6 @@ CLI helper class
7264
7537
  * [._initMarkets()](#Init._initMarkets)
7265
7538
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7266
7539
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7267
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7268
7540
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7269
7541
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7270
7542
 
@@ -7424,18 +7696,6 @@ wrapper around npm dependency & configuration file setup
7424
7696
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7425
7697
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7426
7698
 
7427
- <a name="Init._getMissingCredentials"></a>
7428
-
7429
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7430
- finds credentials that are set up in config but not in auth file
7431
-
7432
- **Kind**: static method of [<code>Init</code>](#Init)
7433
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7434
-
7435
- | Param | Type | Description |
7436
- | --- | --- | --- |
7437
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7438
-
7439
7699
  <a name="Init.installDependencies"></a>
7440
7700
 
7441
7701
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7486,7 +7746,6 @@ CLI helper class
7486
7746
  * [._initMarkets()](#Init._initMarkets)
7487
7747
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7488
7748
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7489
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7490
7749
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7491
7750
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7492
7751
 
@@ -7646,18 +7905,6 @@ wrapper around npm dependency & configuration file setup
7646
7905
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7647
7906
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7648
7907
 
7649
- <a name="Init._getMissingCredentials"></a>
7650
-
7651
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7652
- finds credentials that are set up in config but not in auth file
7653
-
7654
- **Kind**: static method of [<code>Init</code>](#Init)
7655
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7656
-
7657
- | Param | Type | Description |
7658
- | --- | --- | --- |
7659
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7660
-
7661
7908
  <a name="Init.installDependencies"></a>
7662
7909
 
7663
7910
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7698,19 +7945,22 @@ Util that contains logger and simple util methods
7698
7945
  * [.includesStartsWith(arr, search)](#Util.includesStartsWith) ⇒ <code>boolean</code>
7699
7946
  * [.includesStartsWithIndex(arr, search)](#Util.includesStartsWithIndex) ⇒ <code>number</code>
7700
7947
  * [.checkMarket(market, properties)](#Util.checkMarket) ⇒ <code>boolean</code>
7701
- * [.verifyMarketList(mlName, properties)](#Util.verifyMarketList) ⇒ <code>void</code>
7948
+ * [.verifyMarketList(mlName, properties)](#Util.verifyMarketList)
7702
7949
  * [.signalFatalError()](#Util.signalFatalError) ⇒ <code>void</code>
7703
7950
  * [.isTrue(attrValue)](#Util.isTrue) ⇒ <code>boolean</code>
7704
7951
  * [.isFalse(attrValue)](#Util.isFalse) ⇒ <code>boolean</code>
7705
7952
  * [._isValidType(selectedType, [handleOutside])](#Util._isValidType) ⇒ <code>boolean</code>
7706
7953
  * [.getTypeAndSubType(selectedType)](#Util.getTypeAndSubType) ⇒ <code>Array.&lt;string&gt;</code>
7707
7954
  * [.getRetrieveTypeChoices()](#Util.getRetrieveTypeChoices) ⇒ <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code>
7955
+ * [._createNewLoggerTransport([noLogFile])](#Util._createNewLoggerTransport) ⇒ <code>object</code>
7956
+ * [.startLogger([restart], [noLogFile])](#Util.startLogger) ⇒ <code>void</code>
7708
7957
  * [.metadataLogger(level, type, method, payload, [source])](#Util.metadataLogger) ⇒ <code>void</code>
7709
7958
  * [.replaceByObject(str, obj)](#Util.replaceByObject) ⇒ <code>string</code> \| <code>object</code>
7710
7959
  * [.inverseGet(objs, val)](#Util.inverseGet) ⇒ <code>string</code>
7960
+ * [.getDependentMetadata(fixedType)](#Util.getDependentMetadata) ⇒ <code>Array.&lt;string&gt;</code>
7711
7961
  * [.getMetadataHierachy(metadataTypes)](#Util.getMetadataHierachy) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
7712
7962
  * [.resolveObjPath(path, obj)](#Util.resolveObjPath) ⇒ <code>any</code>
7713
- * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code>
7963
+ * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code> \| <code>void</code>
7714
7964
  * [.templateSearchResult(results, keyToSearch, searchValue)](#Util.templateSearchResult) ⇒ <code>TYPE.MetadataTypeItem</code>
7715
7965
  * [.setLoggingLevel(argv)](#Util.setLoggingLevel) ⇒ <code>void</code>
7716
7966
  * [.logBeta(type)](#Util.logBeta)
@@ -7719,6 +7969,9 @@ Util that contains logger and simple util methods
7719
7969
  * [.getKeysString(keyArr, [isId])](#Util.getKeysString) ⇒ <code>string</code>
7720
7970
  * [.sleep(ms)](#Util.sleep) ⇒ <code>Promise.&lt;void&gt;</code>
7721
7971
  * [.getSsjs(code)](#Util.getSsjs) ⇒ <code>string</code>
7972
+ * [.stringLike(testString, search)](#Util.stringLike) ⇒ <code>boolean</code>
7973
+ * [.fieldsLike(metadata, [filters])](#Util.fieldsLike) ⇒ <code>boolean</code>
7974
+ * [.capitalizeFirstLetter(str)](#Util.capitalizeFirstLetter) ⇒ <code>string</code>
7722
7975
 
7723
7976
  <a name="Util.skipInteraction"></a>
7724
7977
 
@@ -7784,11 +8037,10 @@ check if a market name exists in current mcdev config
7784
8037
 
7785
8038
  <a name="Util.verifyMarketList"></a>
7786
8039
 
7787
- ### Util.verifyMarketList(mlName, properties) ⇒ <code>void</code>
8040
+ ### Util.verifyMarketList(mlName, properties)
7788
8041
  ensure provided MarketList exists and it's content including markets and BUs checks out
7789
8042
 
7790
8043
  **Kind**: static method of [<code>Util</code>](#Util)
7791
- **Returns**: <code>void</code> - throws errors if problems were found
7792
8044
 
7793
8045
  | Param | Type | Description |
7794
8046
  | --- | --- | --- |
@@ -7804,7 +8056,8 @@ used to ensure the program tells surrounding software that an unrecoverable erro
7804
8056
  <a name="Util.isTrue"></a>
7805
8057
 
7806
8058
  ### Util.isTrue(attrValue) ⇒ <code>boolean</code>
7807
- SFMC accepts multiple true values for Boolean attributes for which we are checking here
8059
+ SFMC accepts multiple true values for Boolean attributes for which we are checking here.
8060
+ The same problem occurs when evaluating boolean CLI flags
7808
8061
 
7809
8062
  **Kind**: static method of [<code>Util</code>](#Util)
7810
8063
  **Returns**: <code>boolean</code> - attribute value == true ? true : false
@@ -7816,7 +8069,8 @@ SFMC accepts multiple true values for Boolean attributes for which we are checki
7816
8069
  <a name="Util.isFalse"></a>
7817
8070
 
7818
8071
  ### Util.isFalse(attrValue) ⇒ <code>boolean</code>
7819
- SFMC accepts multiple false values for Boolean attributes for which we are checking here
8072
+ SFMC accepts multiple false values for Boolean attributes for which we are checking here.
8073
+ The same problem occurs when evaluating boolean CLI flags
7820
8074
 
7821
8075
  **Kind**: static method of [<code>Util</code>](#Util)
7822
8076
  **Returns**: <code>boolean</code> - attribute value == false ? true : false
@@ -7828,7 +8082,7 @@ SFMC accepts multiple false values for Boolean attributes for which we are check
7828
8082
  <a name="Util._isValidType"></a>
7829
8083
 
7830
8084
  ### Util.\_isValidType(selectedType, [handleOutside]) ⇒ <code>boolean</code>
7831
- helper for [retrieve](#Mcdev.retrieve), [retrieveAsTemplate](#Mcdev.retrieveAsTemplate) and [deploy](#Mcdev.deploy)
8085
+ helper for Mcdev.retrieve, Mcdev.retrieveAsTemplate and Mcdev.deploy
7832
8086
 
7833
8087
  **Kind**: static method of [<code>Util</code>](#Util)
7834
8088
  **Returns**: <code>boolean</code> - type ok or not
@@ -7857,6 +8111,30 @@ helper for getDefaultProperties()
7857
8111
 
7858
8112
  **Kind**: static method of [<code>Util</code>](#Util)
7859
8113
  **Returns**: <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> - type choices
8114
+ <a name="Util._createNewLoggerTransport"></a>
8115
+
8116
+ ### Util.\_createNewLoggerTransport([noLogFile]) ⇒ <code>object</code>
8117
+ wrapper around our standard winston logging to console and logfile
8118
+
8119
+ **Kind**: static method of [<code>Util</code>](#Util)
8120
+ **Returns**: <code>object</code> - initiated logger for console and file
8121
+
8122
+ | Param | Type | Description |
8123
+ | --- | --- | --- |
8124
+ | [noLogFile] | <code>boolean</code> | optional flag to indicate if we should log to file; CLI logs are always on |
8125
+
8126
+ <a name="Util.startLogger"></a>
8127
+
8128
+ ### Util.startLogger([restart], [noLogFile]) ⇒ <code>void</code>
8129
+ initiate winston logger
8130
+
8131
+ **Kind**: static method of [<code>Util</code>](#Util)
8132
+
8133
+ | Param | Type | Description |
8134
+ | --- | --- | --- |
8135
+ | [restart] | <code>boolean</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
8136
+ | [noLogFile] | <code>boolean</code> | if false, logger will log to file; otherwise, only to console |
8137
+
7860
8138
  <a name="Util.metadataLogger"></a>
7861
8139
 
7862
8140
  ### Util.metadataLogger(level, type, method, payload, [source]) ⇒ <code>void</code>
@@ -7899,6 +8177,18 @@ get key of an object based on the first matching value
7899
8177
  | objs | <code>object</code> | object of objects to be searched |
7900
8178
  | val | <code>string</code> | value to be searched for |
7901
8179
 
8180
+ <a name="Util.getDependentMetadata"></a>
8181
+
8182
+ ### Util.getDependentMetadata(fixedType) ⇒ <code>Array.&lt;string&gt;</code>
8183
+ helper for Mcdev.fixKeys. Retrieve dependent metadata
8184
+
8185
+ **Kind**: static method of [<code>Util</code>](#Util)
8186
+ **Returns**: <code>Array.&lt;string&gt;</code> - array of types that depend on the given type
8187
+
8188
+ | Param | Type | Description |
8189
+ | --- | --- | --- |
8190
+ | fixedType | <code>string</code> | type of the metadata passed as a parameter to fixKeys function |
8191
+
7902
8192
  <a name="Util.getMetadataHierachy"></a>
7903
8193
 
7904
8194
  ### Util.getMetadataHierachy(metadataTypes) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
@@ -7926,11 +8216,11 @@ let's you dynamically walk down an object and get a value
7926
8216
 
7927
8217
  <a name="Util.execSync"></a>
7928
8218
 
7929
- ### Util.execSync(cmd, [args], [hideOutput]) ⇒ <code>string</code>
8219
+ ### Util.execSync(cmd, [args], [hideOutput]) ⇒ <code>string</code> \| <code>void</code>
7930
8220
  helper to run other commands as if run manually by user
7931
8221
 
7932
8222
  **Kind**: static method of [<code>Util</code>](#Util)
7933
- **Returns**: <code>string</code> - output of command if hideOutput is true
8223
+ **Returns**: <code>string</code> \| <code>void</code> - output of command if hideOutput is true
7934
8224
 
7935
8225
  | Param | Type | Description |
7936
8226
  | --- | --- | --- |
@@ -8028,7 +8318,7 @@ pause execution of code; useful when multiple server calls are dependent on each
8028
8318
  <a name="Util.getSsjs"></a>
8029
8319
 
8030
8320
  ### Util.getSsjs(code) ⇒ <code>string</code>
8031
- helper for [_extractCode](#Asset._extractCode) and [prepExtractedCode](#Script.prepExtractedCode) to determine if a code block is a valid SSJS block
8321
+ helper for Asset.extractCode and Script.prepExtractedCode to determine if a code block is a valid SSJS block
8032
8322
 
8033
8323
  **Kind**: static method of [<code>Util</code>](#Util)
8034
8324
  **Returns**: <code>string</code> - the SSJS code if code block is a valid SSJS block, otherwise null
@@ -8052,6 +8342,44 @@ the following is invalid:
8052
8342
  // 3
8053
8343
  </script>
8054
8344
  ```
8345
+ <a name="Util.stringLike"></a>
8346
+
8347
+ ### Util.stringLike(testString, search) ⇒ <code>boolean</code>
8348
+ allows us to filter just like with SQL's LIKE operator
8349
+
8350
+ **Kind**: static method of [<code>Util</code>](#Util)
8351
+ **Returns**: <code>boolean</code> - true if testString matches search
8352
+
8353
+ | Param | Type | Description |
8354
+ | --- | --- | --- |
8355
+ | testString | <code>string</code> | field value to test |
8356
+ | search | <code>string</code> | search string in SQL LIKE format |
8357
+
8358
+ <a name="Util.fieldsLike"></a>
8359
+
8360
+ ### Util.fieldsLike(metadata, [filters]) ⇒ <code>boolean</code>
8361
+ returns true if no LIKE filter is defined or if all filters match
8362
+
8363
+ **Kind**: static method of [<code>Util</code>](#Util)
8364
+ **Returns**: <code>boolean</code> - true if no LIKE filter is defined or if all filters match
8365
+
8366
+ | Param | Type | Description |
8367
+ | --- | --- | --- |
8368
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata item |
8369
+ | [filters] | <code>object</code> | only used in recursive calls |
8370
+
8371
+ <a name="Util.capitalizeFirstLetter"></a>
8372
+
8373
+ ### Util.capitalizeFirstLetter(str) ⇒ <code>string</code>
8374
+ helper used by SOAP methods to ensure the type always uses an upper-cased first letter
8375
+
8376
+ **Kind**: static method of [<code>Util</code>](#Util)
8377
+ **Returns**: <code>string</code> - str with first letter capitalized
8378
+
8379
+ | Param | Type | Description |
8380
+ | --- | --- | --- |
8381
+ | str | <code>string</code> | string to capitalize |
8382
+
8055
8383
  <a name="csvToArray"></a>
8056
8384
 
8057
8385
  ## csvToArray(csv) ⇒ <code>Array.&lt;string&gt;</code>
@@ -8064,6 +8392,153 @@ helper to convert CSVs into an array. if only one value was given, it's also ret
8064
8392
  | --- | --- | --- |
8065
8393
  | csv | <code>string</code> | potentially comma-separated value or null |
8066
8394
 
8395
+ <a name="Mcdev."></a>
8396
+
8397
+ ## Mcdev.(methodName, businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
8398
+ run a method across BUs
8399
+
8400
+ **Kind**: global function
8401
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of affected item keys
8402
+
8403
+ | Param | Type | Description |
8404
+ | --- | --- | --- |
8405
+ | methodName | <code>&#x27;execute&#x27;</code> \| <code>&#x27;pause&#x27;</code> \| <code>&#x27;fixKeys&#x27;</code> | what to run |
8406
+ | businessUnit | <code>string</code> | name of BU |
8407
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
8408
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8409
+
8410
+ <a name="Mcdev."></a>
8411
+
8412
+ ## Mcdev.(methodName, cred, bu, [type], keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8413
+ helper for [Mcdev.#runMethod](Mcdev.#runMethod)
8414
+
8415
+ **Kind**: global function
8416
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - list of keys that were affected
8417
+
8418
+ | Param | Type | Description |
8419
+ | --- | --- | --- |
8420
+ | methodName | <code>&#x27;execute&#x27;</code> \| <code>&#x27;pause&#x27;</code> \| <code>&#x27;fixKeys&#x27;</code> | what to run |
8421
+ | cred | <code>string</code> | name of Credential |
8422
+ | bu | <code>string</code> | name of BU |
8423
+ | [type] | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8424
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8425
+
8426
+ <a name="Mcdev."></a>
8427
+
8428
+ ## Mcdev.(selectedType, buObject) ⇒ <code>Array.&lt;string&gt;</code>
8429
+ helper for [Mcdev.#runOnBU](Mcdev.#runOnBU)
8430
+
8431
+ **Kind**: global function
8432
+ **Returns**: <code>Array.&lt;string&gt;</code> - keyArr
8433
+
8434
+ | Param | Type | Description |
8435
+ | --- | --- | --- |
8436
+ | selectedType | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8437
+ | buObject | <code>TYPE.BuObject</code> | properties for auth |
8438
+
8439
+ <a name="Mcdev."></a>
8440
+
8441
+ ## Mcdev.(cred, bu, type, [keyArr]) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8442
+ Updates the key to match the name field
8443
+
8444
+ **Kind**: global function
8445
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - list of keys that were affected
8446
+
8447
+ | Param | Type | Description |
8448
+ | --- | --- | --- |
8449
+ | cred | <code>string</code> | name of Credential |
8450
+ | bu | <code>string</code> | name of BU |
8451
+ | type | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8452
+ | [keyArr] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8453
+
8454
+ <a name="Automation."></a>
8455
+
8456
+ ## Automation.(metadata) ⇒ <code>boolean</code>
8457
+ helper for [postRetrieveTasks](#Automation.postRetrieveTasks) and [execute](#Automation.execute)
8458
+
8459
+ **Kind**: global function
8460
+ **Returns**: <code>boolean</code> - true if the automation schedule is valid
8461
+
8462
+ | Param | Type | Description |
8463
+ | --- | --- | --- |
8464
+ | metadata | <code>TYPE.AutomationItem</code> | a single automation |
8465
+
8466
+ <a name="Automation."></a>
8467
+
8468
+ ## Automation.(metadataMap, key) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8469
+ helper for [execute](#Automation.execute)
8470
+
8471
+ **Kind**: global function
8472
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8473
+
8474
+ | Param | Type | Description |
8475
+ | --- | --- | --- |
8476
+ | metadataMap | <code>TYPE.AutomationMap</code> | map of metadata |
8477
+ | key | <code>string</code> | key of the metadata |
8478
+
8479
+ <a name="Automation."></a>
8480
+
8481
+ ## Automation.(metadataEntry) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8482
+ helper for [execute](#Automation.execute)
8483
+
8484
+ **Kind**: global function
8485
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8486
+
8487
+ | Param | Type | Description |
8488
+ | --- | --- | --- |
8489
+ | metadataEntry | <code>TYPE.AutomationItem</code> | metadata object |
8490
+
8491
+ <a name="Automation."></a>
8492
+
8493
+ ## Automation.(metadata) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8494
+ helper for [pause](#Automation.pause)
8495
+
8496
+ **Kind**: global function
8497
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8498
+
8499
+ | Param | Type | Description |
8500
+ | --- | --- | --- |
8501
+ | metadata | <code>TYPE.AutomationItem</code> | automation metadata |
8502
+
8503
+ <a name="Automation."></a>
8504
+
8505
+ ## Automation.(metadata)
8506
+ helper for [preDeployTasks](#Automation.preDeployTasks) and [execute](#Automation.execute)
8507
+
8508
+ **Kind**: global function
8509
+
8510
+ | Param | Type | Description |
8511
+ | --- | --- | --- |
8512
+ | metadata | <code>TYPE.AutomationItem</code> | metadata mapped by their keyField |
8513
+
8514
+ <a name="Automation."></a>
8515
+
8516
+ ## Automation.(metadataMap, key) ⇒ <code>Promise.&lt;void&gt;</code>
8517
+ helper for [postDeployTasks](#Automation.postDeployTasks)
8518
+
8519
+ **Kind**: global function
8520
+ **Returns**: <code>Promise.&lt;void&gt;</code> - -
8521
+
8522
+ | Param | Type | Description |
8523
+ | --- | --- | --- |
8524
+ | metadataMap | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
8525
+ | key | <code>string</code> | current customer key |
8526
+
8527
+ <a name="Automation."></a>
8528
+
8529
+ ## Automation.(metadataMap, originalMetadataMap, key, [oldKey]) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8530
+ helper for [postDeployTasks](#Automation.postDeployTasks)
8531
+
8532
+ **Kind**: global function
8533
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8534
+
8535
+ | Param | Type | Description |
8536
+ | --- | --- | --- |
8537
+ | metadataMap | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
8538
+ | originalMetadataMap | <code>TYPE.AutomationMap</code> | metadata to be updated (contains additioanl fields) |
8539
+ | key | <code>string</code> | current customer key |
8540
+ | [oldKey] | <code>string</code> | old customer key before fixKey / changeKeyValue / changeKeyField |
8541
+
8067
8542
  <a name="getUserName"></a>
8068
8543
 
8069
8544
  ## getUserName(userList, item, fieldname) ⇒ <code>string</code>
@@ -8089,19 +8564,6 @@ Returns an SDK instance to be used for API calls
8089
8564
  | sessionKey | <code>string</code> | key for specific BU |
8090
8565
  | authObject | <code>TYPE.AuthObject</code> | credentials for specific BU |
8091
8566
 
8092
- <a name="createNewLoggerTransport"></a>
8093
-
8094
- ## createNewLoggerTransport() ⇒ <code>object</code>
8095
- wrapper around our standard winston logging to console and logfile
8096
-
8097
- **Kind**: global function
8098
- **Returns**: <code>object</code> - initiated logger for console and file
8099
- <a name="startLogger"></a>
8100
-
8101
- ## startLogger() ⇒ <code>void</code>
8102
- initiate winston logger
8103
-
8104
- **Kind**: global function
8105
8567
  <a name="TypeKeyCombo"></a>
8106
8568
 
8107
8569
  ## TypeKeyCombo : <code>Object.&lt;string, string&gt;</code>