mcdev 5.1.0 → 5.3.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 (256) hide show
  1. package/.eslintrc.json +4 -4
  2. package/.fork/custom-commands.json +12 -0
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +19 -0
  5. package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
  6. package/.github/workflows/coverage-develop-branch.yml +0 -2
  7. package/.github/workflows/coverage-main-branch.yml +0 -2
  8. package/.github/workflows/coverage.yml +0 -2
  9. package/.husky/post-checkout +1 -0
  10. package/.husky/post-merge +1 -0
  11. package/.vscode/extensions.json +4 -0
  12. package/docs/dist/documentation.md +1034 -296
  13. package/lib/Deployer.js +25 -25
  14. package/lib/MetadataTypeDefinitions.js +2 -1
  15. package/lib/MetadataTypeInfo.js +2 -1
  16. package/lib/Retriever.js +1 -1
  17. package/lib/cli.js +165 -10
  18. package/lib/index.js +398 -95
  19. package/lib/metadataTypes/Asset.js +10 -11
  20. package/lib/metadataTypes/AttributeGroup.js +76 -2
  21. package/lib/metadataTypes/AttributeSet.js +367 -0
  22. package/lib/metadataTypes/Automation.js +483 -137
  23. package/lib/metadataTypes/DataExtension.js +465 -68
  24. package/lib/metadataTypes/DataExtensionField.js +31 -14
  25. package/lib/metadataTypes/Event.js +2 -3
  26. package/lib/metadataTypes/Folder.js +1 -1
  27. package/lib/metadataTypes/Journey.js +13 -7
  28. package/lib/metadataTypes/MetadataType.js +212 -54
  29. package/lib/metadataTypes/MobileKeyword.js +9 -9
  30. package/lib/metadataTypes/MobileMessage.js +5 -5
  31. package/lib/metadataTypes/Query.js +26 -10
  32. package/lib/metadataTypes/Script.js +3 -3
  33. package/lib/metadataTypes/TransactionalEmail.js +94 -17
  34. package/lib/metadataTypes/TransactionalMessage.js +3 -2
  35. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  36. package/lib/metadataTypes/TriggeredSend.js +25 -50
  37. package/lib/metadataTypes/User.js +7 -4
  38. package/lib/metadataTypes/Verification.js +230 -0
  39. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +119 -108
  40. package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +123 -43
  41. package/lib/metadataTypes/definitions/Automation.definition.js +23 -15
  42. package/lib/metadataTypes/definitions/ImportFile.definition.js +36 -6
  43. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +19 -1
  44. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
  45. package/lib/metadataTypes/definitions/Verification.definition.js +88 -0
  46. package/lib/util/cache.js +9 -4
  47. package/lib/util/cli.js +40 -0
  48. package/lib/util/file.js +2 -2
  49. package/lib/util/init.js +84 -0
  50. package/lib/util/util.js +121 -13
  51. package/package.json +13 -13
  52. package/test/mockRoot/.mcdevrc.json +1 -1
  53. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +59 -0
  54. package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +23 -0
  55. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +1 -2
  56. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +9 -6
  57. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +1 -0
  58. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
  59. package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
  60. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
  61. package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
  62. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
  63. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
  64. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
  65. package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
  66. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
  67. package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
  68. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
  69. package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
  70. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +3 -4
  71. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -6
  72. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
  73. package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
  74. package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
  75. package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
  76. package/test/resourceFactory.js +77 -12
  77. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
  78. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
  79. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
  80. package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
  81. package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
  82. package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
  83. package/test/resources/1111111/data/v1/customobjectdata/key/testExisting_dataExtensionShared/rowset/get-response.json +13 -0
  84. package/test/resources/1111111/dataExtension/create-expected.json +23 -0
  85. package/test/resources/1111111/dataExtension/create-response.xml +59 -0
  86. package/test/resources/1111111/dataExtension/retrieve-expected.json +55 -0
  87. package/test/resources/1111111/dataExtension/retrieve-expected.md +18 -0
  88. package/test/resources/1111111/dataExtension/retrieve-response.xml +27 -1
  89. package/test/resources/1111111/dataExtension/update-expected.json +55 -0
  90. package/test/resources/1111111/dataExtension/update-response.xml +57 -0
  91. package/test/resources/1111111/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtensionShared].[TriggerUpdate_randomNumber_]-response.xml +45 -0
  92. package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
  93. package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionSharedORDataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
  94. package/test/resources/1111111/dataExtensionField/retrieve-response.xml +98 -0
  95. package/test/resources/1111111/dataExtensionTemplate/retrieve-response.xml +303 -0
  96. package/test/resources/1111111/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +387 -0
  97. package/test/resources/1111111/dataFolder/retrieve-response.xml +353 -9
  98. package/test/resources/1111111/user/retrieve-expected.md +4 -2
  99. package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
  100. package/test/resources/9999999/attributeSet/retrieve-expected.json +143 -0
  101. package/test/resources/9999999/automation/build-expected.json +5 -2
  102. package/test/resources/9999999/automation/create-expected.json +11 -8
  103. package/test/resources/9999999/automation/create-testNew_automation-expected.md +5 -4
  104. package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
  105. package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
  106. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  107. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
  108. package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
  109. package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
  110. package/test/resources/9999999/automation/retrieve-expected.json +5 -2
  111. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +3 -2
  112. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  113. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
  114. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
  115. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
  116. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
  117. package/test/resources/9999999/automation/template-expected.json +5 -2
  118. package/test/resources/9999999/automation/update-expected.json +1 -2
  119. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +2 -2
  120. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +7 -0
  121. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
  122. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
  123. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
  124. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
  125. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
  126. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
  127. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +1 -1
  128. package/test/resources/9999999/automation/v1/automations/post-response.json +27 -19
  129. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
  130. package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
  131. package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
  132. package/test/resources/9999999/automation/v1/dataverifications/post-response.json +12 -0
  133. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/delete-response.json +0 -0
  134. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/get-response.json +12 -0
  135. package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/patch-response.json +12 -0
  136. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
  137. package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
  138. package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
  139. package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
  140. package/test/resources/9999999/automation/v1/imports/get-response.json +1 -1
  141. package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
  142. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
  143. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
  144. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
  145. package/test/resources/9999999/automation/v1/queries/get-response.json +18 -1
  146. package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
  147. package/test/resources/9999999/automation/v1/scripts/get-response.json +12 -2
  148. package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
  149. package/test/resources/9999999/dataExtension/build-expected.json +16 -0
  150. package/test/resources/9999999/dataExtension/delete-response.xml +42 -0
  151. package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
  152. package/test/resources/9999999/dataExtension/retrieve-expected.json +16 -0
  153. package/test/resources/9999999/dataExtension/retrieve-expected.md +3 -1
  154. package/test/resources/9999999/dataExtension/template-expected.json +16 -0
  155. package/test/resources/9999999/dataExtension/update-expected.json +17 -1
  156. package/test/resources/9999999/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtension].[LastName]-response.xml +44 -0
  157. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +133 -0
  158. package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
  159. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +36 -1
  160. package/test/resources/9999999/dataExtract/build-expected.json +35 -0
  161. package/test/resources/9999999/dataExtract/get-expected.json +39 -0
  162. package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
  163. package/test/resources/9999999/dataExtract/post-expected.json +37 -0
  164. package/test/resources/9999999/dataExtract/template-expected.json +35 -0
  165. package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
  166. package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
  167. package/test/resources/9999999/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +117 -0
  168. package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
  169. package/test/resources/9999999/dataFolder/retrieve-response.xml +23 -0
  170. package/test/resources/9999999/email/retrieve-response.xml +203 -0
  171. package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
  172. package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
  173. package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
  174. package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
  175. package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
  176. package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +628 -0
  177. package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +20194 -0
  178. package/test/resources/9999999/importFile/build-expected.json +27 -0
  179. package/test/resources/9999999/importFile/get-expected.json +29 -0
  180. package/test/resources/9999999/importFile/patch-expected.json +29 -0
  181. package/test/resources/9999999/importFile/post-expected.json +29 -0
  182. package/test/resources/9999999/importFile/template-expected.json +27 -0
  183. package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +1 -0
  184. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +1 -1
  185. package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
  186. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/delete-response.json +6 -0
  187. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
  188. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
  189. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
  190. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
  191. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
  192. package/test/resources/9999999/program/retrieve-response.xml +21 -3
  193. package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
  194. package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
  195. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
  196. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
  197. package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
  198. package/test/resources/9999999/script/build-expected.json +6 -0
  199. package/test/resources/9999999/script/build-expected.ssjs +1 -0
  200. package/test/resources/9999999/script/get-expected.json +8 -0
  201. package/test/resources/9999999/script/get-expected.ssjs +1 -0
  202. package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
  203. package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
  204. package/test/resources/9999999/script/patch-expected.json +8 -0
  205. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  206. package/test/resources/9999999/script/post-expected.json +8 -0
  207. package/test/resources/9999999/script/post-expected.ssjs +1 -0
  208. package/test/resources/9999999/script/template-expected.json +6 -0
  209. package/test/resources/9999999/script/template-expected.ssjs +1 -0
  210. package/test/resources/9999999/transactionalEmail/build-expected.json +3 -7
  211. package/test/resources/9999999/transactionalEmail/get-expected.json +3 -7
  212. package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -7
  213. package/test/resources/9999999/transactionalEmail/post-expected.json +3 -7
  214. package/test/resources/9999999/transactionalEmail/template-expected.json +3 -7
  215. package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
  216. package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
  217. package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
  218. package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
  219. package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
  220. package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
  221. package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
  222. package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
  223. package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
  224. package/test/resources/9999999/verification/build-expected.json +11 -0
  225. package/test/resources/9999999/verification/get-expected.json +11 -0
  226. package/test/resources/9999999/verification/patch-expected.json +11 -0
  227. package/test/resources/9999999/verification/post-expected.json +11 -0
  228. package/test/resources/9999999/verification/template-expected.json +11 -0
  229. package/test/type.attributeGroup.test.js +55 -0
  230. package/test/type.attributeSet.test.js +55 -0
  231. package/test/type.automation.test.js +650 -17
  232. package/test/type.dataExtension.test.js +205 -46
  233. package/test/type.dataExtract.test.js +194 -0
  234. package/test/type.fileTransfer.test.js +192 -0
  235. package/test/type.importFile.test.js +193 -0
  236. package/test/type.journey.test.js +38 -11
  237. package/test/type.mobileKeyword.test.js +6 -5
  238. package/test/type.mobileMessage.test.js +6 -4
  239. package/test/type.query.test.js +470 -17
  240. package/test/type.script.test.js +372 -0
  241. package/test/type.transactionalEmail.test.js +12 -11
  242. package/test/type.transactionalPush.test.js +2 -4
  243. package/test/type.transactionalSMS.test.js +2 -4
  244. package/test/type.triggeredSend.test.js +154 -0
  245. package/test/type.user.test.js +22 -10
  246. package/test/type.verification.test.js +173 -0
  247. package/test/utils.js +11 -2
  248. package/types/mcdev.d.js +14 -0
  249. package/lib/metadataTypes/SetDefinition.js +0 -37
  250. /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
  251. /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
  252. /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
  253. /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
  254. /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
  255. /package/test/resources/9999999/emailSendDefinition/{retrieve-response.xml → retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml} +0 -0
  256. /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>
@@ -126,6 +126,9 @@ Provides default functionality that can be overwritten by child metadata type cl
126
126
  <dt><a href="#User">User</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
127
127
  <dd><p>MetadataType</p>
128
128
  </dd>
129
+ <dt><a href="#Verification">Verification</a> ⇐ <code><a href="#MetadataType">MetadataType</a></code></dt>
130
+ <dd><p>Verification MetadataType</p>
131
+ </dd>
129
132
  <dt><a href="#Retriever">Retriever</a></dt>
130
133
  <dd><p>Retrieves metadata from a business unit and saves it to the local filesystem.</p>
131
134
  </dd>
@@ -186,11 +189,65 @@ Provides default functionality that can be overwritten by child metadata type cl
186
189
  <dt><a href="#csvToArray">csvToArray(csv)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
187
190
  <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
191
  </dd>
192
+ <dt><a href="#Mcdev.">Mcdev.(methodName, businessUnit, [selectedType], [keys])</a> ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code></dt>
193
+ <dd><p>run a method across BUs</p>
194
+ </dd>
195
+ <dt><a href="#Mcdev.">Mcdev.(methodName, cred, bu, [type], keyArr)</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
196
+ <dd><p>helper for <a href="Mcdev.#runMethod">Mcdev.#runMethod</a></p>
197
+ </dd>
198
+ <dt><a href="#Mcdev.">Mcdev.(selectedType, buObject)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
199
+ <dd><p>helper for <a href="Mcdev.#runOnBU">Mcdev.#runOnBU</a></p>
200
+ </dd>
201
+ <dt><a href="#Mcdev.">Mcdev.(cred, bu, type, [keyArr])</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
202
+ <dd><p>Updates the key to match the name field</p>
203
+ </dd>
204
+ <dt><a href="#Automation.">Automation.(metadata)</a> ⇒ <code>boolean</code></dt>
205
+ <dd><p>helper for <a href="#Automation.postRetrieveTasks">postRetrieveTasks</a> and <a href="#Automation.execute">execute</a></p>
206
+ </dd>
207
+ <dt><a href="#Automation.">Automation.(metadataMap, key)</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.(metadataEntry)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
211
+ <dd><p>helper for <a href="#Automation.execute">execute</a></p>
212
+ </dd>
213
+ <dt><a href="#Automation.">Automation.(metadata)</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
214
+ <dd><p>helper for <a href="#Automation.pause">pause</a></p>
215
+ </dd>
216
+ <dt><a href="#Automation.">Automation.(metadata)</a></dt>
217
+ <dd><p>helper for <a href="#Automation.preDeployTasks">preDeployTasks</a> and <a href="#Automation.execute">execute</a></p>
218
+ </dd>
189
219
  <dt><a href="#Automation.">Automation.(metadataMap, key)</a> ⇒ <code>Promise.&lt;void&gt;</code></dt>
190
220
  <dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
191
221
  </dd>
192
- <dt><a href="#Automation.">Automation.(metadataMap, originalMetadataMap, key)</a></dt>
193
- <dd><p>helper for <a href="postDeployTasks">postDeployTasks</a></p>
222
+ <dt><a href="#Automation.">Automation.(metadataMap, originalMetadataMap, key, [oldKey])</a> ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code></dt>
223
+ <dd><p>helper for <a href="#Automation.postDeployTasks">postDeployTasks</a></p>
224
+ </dd>
225
+ <dt><a href="#DataExtension.">DataExtension.(upsertedMetadata, originalMetadata, createdUpdated)</a> ⇒ <code>void</code></dt>
226
+ <dd><p>takes care of updating attribute groups on child BUs after an update to Shared DataExtensions
227
+ helper for <a href="#DataExtension.postDeployTasks">postDeployTasks</a>
228
+ fixes an issue where shared data extensions are not visible in data designer on child BU; SF known issue: <a href="https://issues.salesforce.com/#q=W-11031095">https://issues.salesforce.com/#q=W-11031095</a></p>
229
+ </dd>
230
+ <dt><a href="#DataExtension.">DataExtension.()</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
231
+ <dd><p>helper for <a href="DataExtension.#fixShared">DataExtension.#fixShared</a></p>
232
+ </dd>
233
+ <dt><a href="#DataExtension.">DataExtension.(childBuName, buObjectParent, clientParent, sharedDataExtensionMap)</a> ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code></dt>
234
+ <dd><p>helper for <a href="DataExtension.#fixShared">DataExtension.#fixShared</a></p>
235
+ </dd>
236
+ <dt><a href="#DataExtension.">DataExtension.(deId, deKey, buObjectChildBu, clientChildBu, buObjectParent, clientParent)</a> ⇒ <code>Promise.&lt;boolean&gt;</code></dt>
237
+ <dd><p>method that actually takes care of triggering the update for a particular BU-sharedDe combo
238
+ helper for <a href="DataExtension.#fixShared_onBU">DataExtension.#fixShared_onBU</a></p>
239
+ </dd>
240
+ <dt><a href="#DataExtension.">DataExtension.(buObjectChildBu, clientChildBu, deKey, deId)</a> ⇒ <code>Promise.&lt;string&gt;</code></dt>
241
+ <dd><p>add a new field to the shared DE to trigger an update to the data model
242
+ helper for <a href="DataExtension.#fixShared_item">DataExtension.#fixShared_item</a></p>
243
+ </dd>
244
+ <dt><a href="#DataExtension.">DataExtension.(randomSuffix, buObjectParent, clientParent, deKey)</a> ⇒ <code>Promise.&lt;string&gt;</code></dt>
245
+ <dd><p>get ID of the field added by <a href="DataExtension.#fixShared_item_addField">DataExtension.#fixShared_item_addField</a> on the shared DE via parent BU
246
+ helper for <a href="DataExtension.#fixShared_item">DataExtension.#fixShared_item</a></p>
247
+ </dd>
248
+ <dt><a href="#DataExtension.">DataExtension.(randomSuffix, buObjectChildBu, clientChildBu, deKey, fieldObjectID)</a> ⇒ <code>Promise</code></dt>
249
+ <dd><p>delete the field added by <a href="DataExtension.#fixShared_item_addField">DataExtension.#fixShared_item_addField</a>
250
+ helper for <a href="DataExtension.#fixShared_item">DataExtension.#fixShared_item</a></p>
194
251
  </dd>
195
252
  <dt><a href="#getUserName">getUserName(userList, item, fieldname)</a> ⇒ <code>string</code></dt>
196
253
  <dd></dd>
@@ -239,6 +296,8 @@ Provides default functionality that can be overwritten by child metadata type cl
239
296
  </dd>
240
297
  <dt><a href="#AutomationItem">AutomationItem</a> : <code>object</code></dt>
241
298
  <dd></dd>
299
+ <dt><a href="#VerificationItem">VerificationItem</a> : <code>object</code></dt>
300
+ <dd></dd>
242
301
  <dt><a href="#SDK">SDK</a> : <code>Object.&lt;string, AutomationItem&gt;</code></dt>
243
302
  <dd></dd>
244
303
  <dt><a href="#skipInteraction">skipInteraction</a> : <code>object</code></dt>
@@ -371,10 +430,10 @@ Source and target business units are also compared before the deployment to appl
371
430
  * [new Deployer(properties, buObject)](#new_Deployer_new)
372
431
  * _instance_
373
432
  * [.metadata](#Deployer+metadata) : <code>TYPE.MultiMetadataTypeMap</code>
374
- * [._deploy([typeArr], [keyArr], [fromRetrieve], [isRefresh])](#Deployer+_deploy) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
433
+ * [._deploy([typeArr], [keyArr])](#Deployer+_deploy) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
375
434
  * _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>
435
+ * [.deploy(businessUnit, [selectedTypesArr], [keyArr])](#Deployer.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
436
+ * [._deployBU(cred, bu, properties, [typeArr], [keyArr])](#Deployer._deployBU) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
378
437
  * [.readBUMetadata(deployDir, [typeArr], [listBadKeys])](#Deployer.readBUMetadata) ⇒ <code>TYPE.MultiMetadataTypeMap</code>
379
438
  * [.createFolderDefinitions(deployDir, metadata, metadataTypeArr)](#Deployer.createFolderDefinitions) ⇒ <code>void</code>
380
439
 
@@ -395,7 +454,7 @@ Creates a Deployer, uses v2 auth if v2AuthOptions are passed.
395
454
  **Kind**: instance property of [<code>Deployer</code>](#Deployer)
396
455
  <a name="Deployer+_deploy"></a>
397
456
 
398
- ### deployer.\_deploy([typeArr], [keyArr], [fromRetrieve], [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
457
+ ### deployer.\_deploy([typeArr], [keyArr]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
399
458
  Deploy all metadata that is located in the deployDir
400
459
 
401
460
  **Kind**: instance method of [<code>Deployer</code>](#Deployer)
@@ -405,12 +464,10 @@ Deploy all metadata that is located in the deployDir
405
464
  | --- | --- | --- |
406
465
  | [typeArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type (can include subtype) |
407
466
  | [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
467
 
411
468
  <a name="Deployer.deploy"></a>
412
469
 
413
- ### Deployer.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
470
+ ### Deployer.deploy(businessUnit, [selectedTypesArr], [keyArr]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
414
471
  Deploys all metadata located in the 'deploy' directory to the specified business unit
415
472
 
416
473
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
@@ -421,12 +478,11 @@ Deploys all metadata located in the 'deploy' directory to the specified business
421
478
  | businessUnit | <code>string</code> | references credentials from properties.json |
422
479
  | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
423
480
  | [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
481
 
426
482
  <a name="Deployer._deployBU"></a>
427
483
 
428
- ### Deployer.\_deployBU(cred, bu, properties, [typeArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
429
- helper for [deploy](deploy)
484
+ ### Deployer.\_deployBU(cred, bu, properties, [typeArr], [keyArr]) ⇒ <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code>
485
+ helper for [deploy](#Deployer.deploy)
430
486
 
431
487
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
432
488
  **Returns**: <code>Promise.&lt;TYPE.MultiMetadataTypeMap&gt;</code> - ensure that BUs are worked on sequentially
@@ -438,7 +494,6 @@ helper for [deploy](deploy)
438
494
  | properties | <code>TYPE.Mcdevrc</code> | General configuration to be used in retrieve |
439
495
  | [typeArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
440
496
  | [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
497
 
443
498
  <a name="Deployer.readBUMetadata"></a>
444
499
 
@@ -448,11 +503,11 @@ Returns metadata of a business unit that is saved locally
448
503
  **Kind**: static method of [<code>Deployer</code>](#Deployer)
449
504
  **Returns**: <code>TYPE.MultiMetadataTypeMap</code> - Metadata of BU in local directory
450
505
 
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() |
506
+ | Param | Type | Description |
507
+ | --- | --- | --- |
508
+ | deployDir | <code>string</code> | root directory of metadata. |
509
+ | [typeArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata type |
510
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
456
511
 
457
512
  <a name="Deployer.createFolderDefinitions"></a>
458
513
 
@@ -483,7 +538,7 @@ main class
483
538
  * [.explainTypes()](#Mcdev.explainTypes) ⇒ <code>Array.&lt;object&gt;</code>
484
539
  * [.upgrade()](#Mcdev.upgrade) ⇒ <code>Promise.&lt;boolean&gt;</code>
485
540
  * [.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>
541
+ * [.deploy(businessUnit, [selectedTypesArr], [keyArr])](#Mcdev.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
487
542
  * [.initProject([credentialsName])](#Mcdev.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
488
543
  * [.joinProject()](#Mcdev.joinProject) ⇒ <code>Promise.&lt;void&gt;</code>
489
544
  * [.findBUs(credentialsName)](#Mcdev.findBUs) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -496,8 +551,10 @@ main class
496
551
  * [.buildDefinition(businessUnit, selectedType, name, market)](#Mcdev.buildDefinition) ⇒ <code>Promise.&lt;void&gt;</code>
497
552
  * [.buildDefinitionBulk(listName, type, name)](#Mcdev.buildDefinitionBulk) ⇒ <code>Promise.&lt;void&gt;</code>
498
553
  * [.getFilesToCommit(businessUnit, selectedType, keyArr)](#Mcdev.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
499
- * [.execute(businessUnit, [selectedTypesArr], keys)](#Mcdev.execute) ⇒ <code>Promise.&lt;boolean&gt;</code>
500
- * [._executeBU(cred, bu, [selectedTypesArr], keyArr)](#Mcdev._executeBU) ⇒ <code>Promise.&lt;boolean&gt;</code>
554
+ * [.schedule(businessUnit, [selectedType], [keys])](#Mcdev.schedule) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
555
+ * [.execute(businessUnit, [selectedType], [keys])](#Mcdev.execute) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
556
+ * [.pause(businessUnit, [selectedType], [keys])](#Mcdev.pause) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
557
+ * [.fixKeys(businessUnit, selectedType, [keys])](#Mcdev.fixKeys) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
501
558
 
502
559
  <a name="Mcdev.setSkipInteraction"></a>
503
560
 
@@ -582,18 +639,17 @@ Retrieve all metadata from the specified business unit into the local file syste
582
639
 
583
640
  <a name="Mcdev.deploy"></a>
584
641
 
585
- ### Mcdev.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
642
+ ### Mcdev.deploy(businessUnit, [selectedTypesArr], [keyArr]) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
586
643
  Deploys all metadata located in the 'deploy' directory to the specified business unit
587
644
 
588
645
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
589
646
  **Returns**: <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code> - deployed metadata per BU (first key: bu name, second key: metadata type)
590
647
 
591
- | Param | Type | Default | Description |
592
- | --- | --- | --- | --- |
593
- | businessUnit | <code>string</code> | | references credentials from properties.json |
594
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | | limit deployment to given metadata type |
595
- | [keyArr] | <code>Array.&lt;string&gt;</code> | | limit deployment to given metadata keys |
596
- | [fromRetrieve] | <code>boolean</code> | <code>false</code> | optionally deploy whats defined via selectedTypesArr + keyArr directly from retrieve folder instead of from deploy folder |
648
+ | Param | Type | Description |
649
+ | --- | --- | --- |
650
+ | businessUnit | <code>string</code> | references credentials from properties.json |
651
+ | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit deployment to given metadata type |
652
+ | [keyArr] | <code>Array.&lt;string&gt;</code> | limit deployment to given metadata keys |
597
653
 
598
654
  <a name="Mcdev.initProject"></a>
599
655
 
@@ -750,34 +806,61 @@ Build a specific metadata file based on a template using a list of bu-market com
750
806
  | selectedType | <code>string</code> | supported metadata type |
751
807
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
752
808
 
809
+ <a name="Mcdev.schedule"></a>
810
+
811
+ ### Mcdev.schedule(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
812
+ Schedule an item (shortcut for execute --schedule)
813
+
814
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
815
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of scheduled item keys
816
+
817
+ | Param | Type | Description |
818
+ | --- | --- | --- |
819
+ | businessUnit | <code>string</code> | name of BU |
820
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
821
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
822
+
753
823
  <a name="Mcdev.execute"></a>
754
824
 
755
- ### Mcdev.execute(businessUnit, [selectedTypesArr], keys) ⇒ <code>Promise.&lt;boolean&gt;</code>
756
- Start an item (query)
825
+ ### Mcdev.execute(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
826
+ Start/execute an item
757
827
 
758
828
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
759
- **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if all started successfully, false if not
829
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of executed item keys
760
830
 
761
831
  | Param | Type | Description |
762
832
  | --- | --- | --- |
763
833
  | businessUnit | <code>string</code> | name of BU |
764
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit to given metadata types |
765
- | keys | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
834
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
835
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
766
836
 
767
- <a name="Mcdev._executeBU"></a>
837
+ <a name="Mcdev.pause"></a>
768
838
 
769
- ### Mcdev.\_executeBU(cred, bu, [selectedTypesArr], keyArr) ⇒ <code>Promise.&lt;boolean&gt;</code>
770
- helper for [execute](execute)
839
+ ### Mcdev.pause(businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
840
+ pause an item
771
841
 
772
842
  **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
773
- **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if all items were executed, false otherwise
843
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of paused item keys
774
844
 
775
845
  | Param | Type | Description |
776
846
  | --- | --- | --- |
777
- | cred | <code>string</code> | name of Credential |
778
- | bu | <code>string</code> | name of BU |
779
- | [selectedTypesArr] | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | limit execution to given metadata type |
780
- | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
847
+ | businessUnit | <code>string</code> | name of BU |
848
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
849
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
850
+
851
+ <a name="Mcdev.fixKeys"></a>
852
+
853
+ ### Mcdev.fixKeys(businessUnit, selectedType, [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
854
+ Updates the key to match the name field
855
+
856
+ **Kind**: static method of [<code>Mcdev</code>](#Mcdev)
857
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of paused item keys
858
+
859
+ | Param | Type | Description |
860
+ | --- | --- | --- |
861
+ | businessUnit | <code>string</code> | name of BU |
862
+ | selectedType | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
863
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
781
864
 
782
865
  <a name="Asset"></a>
783
866
 
@@ -798,7 +881,7 @@ FileTransfer MetadataType
798
881
  * [._retrieveExtendedFile(metadata, subType, retrieveDir)](#Asset._retrieveExtendedFile) ⇒ <code>Promise.&lt;void&gt;</code>
799
882
  * [._readExtendedFileFromFS(metadata, subType, deployDir, [pathOnly])](#Asset._readExtendedFileFromFS) ⇒ <code>Promise.&lt;string&gt;</code>
800
883
  * [.postRetrieveTasks(metadata)](#Asset.postRetrieveTasks) ⇒ <code>TYPE.CodeExtractItem</code>
801
- * [.postDeployTasks(metadata, _, createdUpdated, [isRefresh])](#Asset.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
884
+ * [.postDeployTasks(metadata, _, createdUpdated)](#Asset.postDeployTasks) ⇒ <code>Promise.&lt;void&gt;</code>
802
885
  * [.preDeployTasks(metadata, deployDir)](#Asset.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.AssetItem&gt;</code>
803
886
  * [._getMainSubtype(extendedSubType)](#Asset._getMainSubtype) ⇒ <code>string</code>
804
887
  * [.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Asset.buildDefinitionForNested) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -931,7 +1014,7 @@ This method retrieves these and saves them alongside the metadata json
931
1014
  <a name="Asset._readExtendedFileFromFS"></a>
932
1015
 
933
1016
  ### Asset.\_readExtendedFileFromFS(metadata, subType, deployDir, [pathOnly]) ⇒ <code>Promise.&lt;string&gt;</code>
934
- helper for [preDeployTasks](preDeployTasks)
1017
+ helper for [preDeployTasks](#Asset.preDeployTasks)
935
1018
  Some metadata types store their actual content as a separate file, e.g. images
936
1019
  This method reads these from the local FS stores them in the metadata object allowing to deploy it
937
1020
 
@@ -959,7 +1042,7 @@ manages post retrieve steps
959
1042
 
960
1043
  <a name="Asset.postDeployTasks"></a>
961
1044
 
962
- ### Asset.postDeployTasks(metadata, _, createdUpdated, [isRefresh]) ⇒ <code>Promise.&lt;void&gt;</code>
1045
+ ### Asset.postDeployTasks(metadata, _, createdUpdated) ⇒ <code>Promise.&lt;void&gt;</code>
963
1046
  Gets executed after deployment of metadata type
964
1047
 
965
1048
  **Kind**: static method of [<code>Asset</code>](#Asset)
@@ -970,7 +1053,6 @@ Gets executed after deployment of metadata type
970
1053
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
971
1054
  | _ | <code>TYPE.MetadataTypeMap</code> | originalMetadata to be updated (contains additioanl fields) |
972
1055
  | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
973
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
974
1056
 
975
1057
  <a name="Asset.preDeployTasks"></a>
976
1058
 
@@ -1078,7 +1160,7 @@ Asset-specific script that retrieves the folder ID from cache and updates the gi
1078
1160
  <a name="Asset._mergeCode"></a>
1079
1161
 
1080
1162
  ### Asset.\_mergeCode(metadata, deployDir, subType, [templateName], [fileListOnly]) ⇒ <code>Promise.&lt;Array.&lt;TYPE.CodeExtract&gt;&gt;</code>
1081
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
1163
+ helper for [preDeployTasks](#Asset.preDeployTasks) that loads extracted code content back into JSON
1082
1164
 
1083
1165
  **Kind**: static method of [<code>Asset</code>](#Asset)
1084
1166
  **Returns**: <code>Promise.&lt;Array.&lt;TYPE.CodeExtract&gt;&gt;</code> - fileList for templating (disregarded during deployment)
@@ -1094,7 +1176,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
1094
1176
  <a name="Asset._mergeCode_slots"></a>
1095
1177
 
1096
1178
  ### Asset.\_mergeCode\_slots(prefix, metadataSlots, readDirArr, subtypeExtension, subDirArr, fileList, customerKey, [templateName], [fileListOnly]) ⇒ <code>Promise.&lt;void&gt;</code>
1097
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
1179
+ helper for [preDeployTasks](#Asset.preDeployTasks) that loads extracted code content back into JSON
1098
1180
 
1099
1181
  **Kind**: static method of [<code>Asset</code>](#Asset)
1100
1182
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -1114,7 +1196,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
1114
1196
  <a name="Asset._extractCode"></a>
1115
1197
 
1116
1198
  ### Asset.\_extractCode(metadata) ⇒ <code>TYPE.CodeExtractItem</code>
1117
- helper for [postRetrieveTasks](postRetrieveTasks) that finds code content in JSON and extracts it
1199
+ helper for [postRetrieveTasks](#Asset.postRetrieveTasks) that finds code content in JSON and extracts it
1118
1200
  to allow saving that separately and formatted
1119
1201
 
1120
1202
  **Kind**: static method of [<code>Asset</code>](#Asset)
@@ -1201,6 +1283,7 @@ AttributeGroup MetadataType
1201
1283
  * [AttributeGroup](#AttributeGroup) ⇐ [<code>MetadataType</code>](#MetadataType)
1202
1284
  * [.retrieve(retrieveDir, [_], [__], [key])](#AttributeGroup.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1203
1285
  * [.retrieveForCache()](#AttributeGroup.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1286
+ * [.postRetrieveTasks(metadata)](#AttributeGroup.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
1204
1287
 
1205
1288
  <a name="AttributeGroup.retrieve"></a>
1206
1289
 
@@ -1224,6 +1307,102 @@ Retrieves Metadata of schema attribute groups for caching.
1224
1307
 
1225
1308
  **Kind**: static method of [<code>AttributeGroup</code>](#AttributeGroup)
1226
1309
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of metadata
1310
+ <a name="AttributeGroup.postRetrieveTasks"></a>
1311
+
1312
+ ### AttributeGroup.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
1313
+ manages post retrieve steps
1314
+
1315
+ **Kind**: static method of [<code>AttributeGroup</code>](#AttributeGroup)
1316
+ **Returns**: <code>TYPE.MetadataTypeItem</code> - metadata
1317
+
1318
+ | Param | Type | Description |
1319
+ | --- | --- | --- |
1320
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata |
1321
+
1322
+ <a name="AttributeSet"></a>
1323
+
1324
+ ## AttributeSet ⇐ [<code>MetadataType</code>](#MetadataType)
1325
+ AttributeSet MetadataType
1326
+
1327
+ **Kind**: global class
1328
+ **Extends**: [<code>MetadataType</code>](#MetadataType)
1329
+
1330
+ * [AttributeSet](#AttributeSet) ⇐ [<code>MetadataType</code>](#MetadataType)
1331
+ * [.retrieve(retrieveDir, [_], [__], [key])](#AttributeSet.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1332
+ * [.retrieveForCache()](#AttributeSet.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1333
+ * [.fixShared_retrieve(sharedDataExtensionMap, fixShared_fields)](#AttributeSet.fixShared_retrieve) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1334
+ * [.parseResponseBody(body, [singleRetrieve])](#AttributeSet.parseResponseBody) ⇒ <code>TYPE.MetadataTypeMap</code>
1335
+ * [.postRetrieveTasks(metadata)](#AttributeSet.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
1336
+ * [._getSystemValueDefinitions()](#AttributeSet._getSystemValueDefinitions) ⇒ <code>Array.&lt;object&gt;</code>
1337
+
1338
+ <a name="AttributeSet.retrieve"></a>
1339
+
1340
+ ### AttributeSet.retrieve(retrieveDir, [_], [__], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1341
+ Retrieves Metadata of schema set Definitions.
1342
+
1343
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1344
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
1345
+
1346
+ | Param | Type | Description |
1347
+ | --- | --- | --- |
1348
+ | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
1349
+ | [_] | <code>void</code> | unused parameter |
1350
+ | [__] | <code>void</code> | unused parameter |
1351
+ | [key] | <code>string</code> | customer key of single item to retrieve |
1352
+
1353
+ <a name="AttributeSet.retrieveForCache"></a>
1354
+
1355
+ ### AttributeSet.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
1356
+ Retrieves Metadata of schema set definitions for caching.
1357
+
1358
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1359
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
1360
+ <a name="AttributeSet.fixShared_retrieve"></a>
1361
+
1362
+ ### AttributeSet.fixShared\_retrieve(sharedDataExtensionMap, fixShared_fields) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1363
+ used to identify updated shared data extensions that are used in attributeSets.
1364
+ helper for DataExtension.#fixShared_onBU
1365
+
1366
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1367
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Promise of list of shared dataExtension IDs
1368
+
1369
+ | Param | Type | Description |
1370
+ | --- | --- | --- |
1371
+ | sharedDataExtensionMap | <code>Object.&lt;string, string&gt;</code> | ID-Key relationship of shared data extensions |
1372
+ | fixShared_fields | <code>object</code> | DataExtensionField.fixShared_fields |
1373
+
1374
+ <a name="AttributeSet.parseResponseBody"></a>
1375
+
1376
+ ### AttributeSet.parseResponseBody(body, [singleRetrieve]) ⇒ <code>TYPE.MetadataTypeMap</code>
1377
+ Builds map of metadata entries mapped to their keyfields
1378
+
1379
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1380
+ **Returns**: <code>TYPE.MetadataTypeMap</code> - keyField => metadata map
1381
+
1382
+ | Param | Type | Description |
1383
+ | --- | --- | --- |
1384
+ | body | <code>object</code> | json of response body |
1385
+ | [singleRetrieve] | <code>string</code> \| <code>number</code> | key of single item to filter by |
1386
+
1387
+ <a name="AttributeSet.postRetrieveTasks"></a>
1388
+
1389
+ ### AttributeSet.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
1390
+ manages post retrieve steps
1391
+
1392
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1393
+ **Returns**: <code>TYPE.MetadataTypeItem</code> - metadata
1394
+
1395
+ | Param | Type | Description |
1396
+ | --- | --- | --- |
1397
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata |
1398
+
1399
+ <a name="AttributeSet._getSystemValueDefinitions"></a>
1400
+
1401
+ ### AttributeSet.\_getSystemValueDefinitions() ⇒ <code>Array.&lt;object&gt;</code>
1402
+ helper for [postRetrieveTasks](#AttributeSet.postRetrieveTasks)
1403
+
1404
+ **Kind**: static method of [<code>AttributeSet</code>](#AttributeSet)
1405
+ **Returns**: <code>Array.&lt;object&gt;</code> - all system value definitions
1227
1406
  <a name="Automation"></a>
1228
1407
 
1229
1408
  ## Automation ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -1234,11 +1413,15 @@ Automation MetadataType
1234
1413
 
1235
1414
  * [Automation](#Automation) ⇐ [<code>MetadataType</code>](#MetadataType)
1236
1415
  * [.retrieve(retrieveDir, [_], [__], [key])](#Automation.retrieve) ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
1416
+ * [.handleRESTErrors(ex, id)](#Automation.handleRESTErrors) ⇒ <code>null</code>
1237
1417
  * [.retrieveChangelog()](#Automation.retrieveChangelog) ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
1238
1418
  * [.retrieveForCache()](#Automation.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
1239
1419
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Automation.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.AutomationItemObj&gt;</code>
1240
1420
  * [.postRetrieveTasks(metadata)](#Automation.postRetrieveTasks) ⇒ <code>TYPE.AutomationItem</code> \| <code>void</code>
1241
- * [.deploy(metadata, targetBU, retrieveDir, [isRefresh])](#Automation.deploy) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1421
+ * [.execute(keyArr)](#Automation.execute) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1422
+ * [.getErrorsREST(ex)](#Automation.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
1423
+ * [.pause(keyArr)](#Automation.pause) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1424
+ * [.deploy(metadata, targetBU, retrieveDir)](#Automation.deploy) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1242
1425
  * [.create(metadata)](#Automation.create) ⇒ <code>Promise</code>
1243
1426
  * [.update(metadata, metadataBefore)](#Automation.update) ⇒ <code>Promise</code>
1244
1427
  * [.preDeployTasks(metadata)](#Automation.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.AutomationItem&gt;</code>
@@ -1268,6 +1451,19 @@ Retrieves Metadata of Automation
1268
1451
  | [__] | <code>void</code> | unused parameter |
1269
1452
  | [key] | <code>string</code> | customer key of single item to retrieve |
1270
1453
 
1454
+ <a name="Automation.handleRESTErrors"></a>
1455
+
1456
+ ### Automation.handleRESTErrors(ex, id) ⇒ <code>null</code>
1457
+ helper for [this.retrieveRESTcollection](this.retrieveRESTcollection)
1458
+
1459
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1460
+ **Returns**: <code>null</code> - -
1461
+
1462
+ | Param | Type | Description |
1463
+ | --- | --- | --- |
1464
+ | ex | <code>Error</code> | exception |
1465
+ | id | <code>string</code> | id or key of item |
1466
+
1271
1467
  <a name="Automation.retrieveChangelog"></a>
1272
1468
 
1273
1469
  ### Automation.retrieveChangelog() ⇒ <code>Promise.&lt;TYPE.AutomationMapObj&gt;</code>
@@ -1308,9 +1504,45 @@ manages post retrieve steps
1308
1504
  | --- | --- | --- |
1309
1505
  | metadata | <code>TYPE.AutomationItem</code> | a single automation |
1310
1506
 
1507
+ <a name="Automation.execute"></a>
1508
+
1509
+ ### Automation.execute(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1510
+ a function to start query execution via API
1511
+
1512
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1513
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were executed
1514
+
1515
+ | Param | Type | Description |
1516
+ | --- | --- | --- |
1517
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
1518
+
1519
+ <a name="Automation.getErrorsREST"></a>
1520
+
1521
+ ### Automation.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
1522
+ Standardizes a check for multiple messages but adds query specific filters to error texts
1523
+
1524
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1525
+ **Returns**: <code>Array.&lt;string&gt;</code> \| <code>void</code> - formatted Error Message
1526
+
1527
+ | Param | Type | Description |
1528
+ | --- | --- | --- |
1529
+ | ex | <code>object</code> | response payload from REST API |
1530
+
1531
+ <a name="Automation.pause"></a>
1532
+
1533
+ ### Automation.pause(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
1534
+ a function to start query execution via API
1535
+
1536
+ **Kind**: static method of [<code>Automation</code>](#Automation)
1537
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were paused
1538
+
1539
+ | Param | Type | Description |
1540
+ | --- | --- | --- |
1541
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
1542
+
1311
1543
  <a name="Automation.deploy"></a>
1312
1544
 
1313
- ### Automation.deploy(metadata, targetBU, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1545
+ ### Automation.deploy(metadata, targetBU, retrieveDir) ⇒ <code>Promise.&lt;TYPE.AutomationMap&gt;</code>
1314
1546
  Deploys automation - the saved file is the original one due to large differences required for deployment
1315
1547
 
1316
1548
  **Kind**: static method of [<code>Automation</code>](#Automation)
@@ -1321,7 +1553,6 @@ Deploys automation - the saved file is the original one due to large differences
1321
1553
  | metadata | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
1322
1554
  | targetBU | <code>string</code> | name/shorthand of target businessUnit for mapping |
1323
1555
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
1324
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by automation |
1325
1556
 
1326
1557
  <a name="Automation.create"></a>
1327
1558
 
@@ -1611,6 +1842,7 @@ DataExtension MetadataType
1611
1842
  * [.update(metadata)](#DataExtension.update) ⇒ <code>Promise</code>
1612
1843
  * [.postDeployTasks(upsertedMetadata, originalMetadata, createdUpdated)](#DataExtension.postDeployTasks) ⇒ <code>void</code>
1613
1844
  * [.retrieve(retrieveDir, [additionalFields], [_], [key])](#DataExtension.retrieve) ⇒ <code>Promise.&lt;{metadata: TYPE.DataExtensionMap, type: string}&gt;</code>
1845
+ * [.retrieveSharedForCache([additionalFields])](#DataExtension.retrieveSharedForCache) ⇒ <code>Promise.&lt;TYPE.DataExtensionMap&gt;</code>
1614
1846
  * [.retrieveChangelog([additionalFields])](#DataExtension.retrieveChangelog) ⇒ <code>Promise.&lt;{metadata: TYPE.DataExtensionMap, type: string}&gt;</code>
1615
1847
  * [.postRetrieveTasks(metadata)](#DataExtension.postRetrieveTasks) ⇒ <code>TYPE.DataExtensionItem</code>
1616
1848
  * [.preDeployTasks(metadata)](#DataExtension.preDeployTasks) ⇒ <code>Promise.&lt;TYPE.DataExtensionItem&gt;</code>
@@ -1703,6 +1935,19 @@ Retrieves dataExtension metadata. Afterwards starts retrieval of dataExtensionCo
1703
1935
  | [_] | <code>void</code> | unused parameter |
1704
1936
  | [key] | <code>string</code> | customer key of single item to retrieve |
1705
1937
 
1938
+ <a name="DataExtension.retrieveSharedForCache"></a>
1939
+
1940
+ ### DataExtension.retrieveSharedForCache([additionalFields]) ⇒ <code>Promise.&lt;TYPE.DataExtensionMap&gt;</code>
1941
+ get shared dataExtensions from parent BU and merge them into the cache
1942
+ helper for [retrieve](#DataExtension.retrieve) and for AttributeSet.fixShared_retrieve
1943
+
1944
+ **Kind**: static method of [<code>DataExtension</code>](#DataExtension)
1945
+ **Returns**: <code>Promise.&lt;TYPE.DataExtensionMap&gt;</code> - keyField => metadata map
1946
+
1947
+ | Param | Type | Description |
1948
+ | --- | --- | --- |
1949
+ | [additionalFields] | <code>Array.&lt;string&gt;</code> | Returns specified fields even if their retrieve definition is not set to true |
1950
+
1706
1951
  <a name="DataExtension.retrieveChangelog"></a>
1707
1952
 
1708
1953
  ### DataExtension.retrieveChangelog([additionalFields]) ⇒ <code>Promise.&lt;{metadata: TYPE.DataExtensionMap, type: string}&gt;</code>
@@ -1837,7 +2082,7 @@ DataExtensionField MetadataType
1837
2082
  * [.postRetrieveTasks(metadata, forDataExtension)](#DataExtensionField.postRetrieveTasks) ⇒ <code>TYPE.DataExtensionFieldItem</code>
1838
2083
  * [.prepareDeployColumnsOnUpdate(deployColumns, deKey)](#DataExtensionField.prepareDeployColumnsOnUpdate) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.DataExtensionFieldItem&gt;&gt;</code>
1839
2084
  * [.deleteByKey(customerKey)](#DataExtensionField.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
1840
- * [.deleteByKeySOAP(customerKey)](#DataExtensionField.deleteByKeySOAP) ⇒ <code>boolean</code>
2085
+ * [.deleteByKeySOAP(customerKey, [fieldId])](#DataExtensionField.deleteByKeySOAP) ⇒ <code>boolean</code>
1841
2086
  * [.postDeleteTasks(customerKey)](#DataExtensionField.postDeleteTasks) ⇒ <code>void</code>
1842
2087
 
1843
2088
  <a name="DataExtensionField.retrieve"></a>
@@ -1869,7 +2114,7 @@ Retrieves all records for caching
1869
2114
  <a name="DataExtensionField.convertToSortedArray"></a>
1870
2115
 
1871
2116
  ### DataExtensionField.convertToSortedArray(fieldsObj) ⇒ <code>Array.&lt;TYPE.DataExtensionFieldItem&gt;</code>
1872
- helper for [DataExtension._retrieveFieldsForSingleDe](DataExtension._retrieveFieldsForSingleDe) that sorts the fields into an array
2117
+ helper for DataExtension.retrieveFieldsForSingleDe that sorts the fields into an array
1873
2118
 
1874
2119
  **Kind**: static method of [<code>DataExtensionField</code>](#DataExtensionField)
1875
2120
  **Returns**: <code>Array.&lt;TYPE.DataExtensionFieldItem&gt;</code> - sorted array of field objects
@@ -1932,7 +2177,7 @@ Delete a metadata item from the specified business unit
1932
2177
 
1933
2178
  <a name="DataExtensionField.deleteByKeySOAP"></a>
1934
2179
 
1935
- ### DataExtensionField.deleteByKeySOAP(customerKey) ⇒ <code>boolean</code>
2180
+ ### DataExtensionField.deleteByKeySOAP(customerKey, [fieldId]) ⇒ <code>boolean</code>
1936
2181
  Delete a data extension from the specified business unit
1937
2182
 
1938
2183
  **Kind**: static method of [<code>DataExtensionField</code>](#DataExtensionField)
@@ -1941,6 +2186,7 @@ Delete a data extension from the specified business unit
1941
2186
  | Param | Type | Description |
1942
2187
  | --- | --- | --- |
1943
2188
  | customerKey | <code>string</code> | Identifier of metadata |
2189
+ | [fieldId] | <code>string</code> | for programmatic deletes only one can pass in the ID directly |
1944
2190
 
1945
2191
  <a name="DataExtensionField.postDeleteTasks"></a>
1946
2192
 
@@ -2335,7 +2581,7 @@ Event MetadataType
2335
2581
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Event.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.MetadataTypeItemObj&gt;</code>
2336
2582
  * [.postRetrieveTasks(eventDef)](#Event.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
2337
2583
  * [.deleteByKey(key)](#Event.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
2338
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#Event.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2584
+ * [.deploy(metadata, deployDir, retrieveDir)](#Event.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2339
2585
  * [.create(metadata)](#Event.create) ⇒ <code>Promise</code>
2340
2586
  * [.update(metadataEntry)](#Event.update) ⇒ <code>Promise</code>
2341
2587
  * [.preDeployTasks(metadata)](#Event.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
@@ -2405,7 +2651,7 @@ Delete a metadata item from the specified business unit
2405
2651
 
2406
2652
  <a name="Event.deploy"></a>
2407
2653
 
2408
- ### Event.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2654
+ ### Event.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2409
2655
  Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta) once per deploy
2410
2656
 
2411
2657
  **Kind**: static method of [<code>Event</code>](#Event)
@@ -2416,7 +2662,6 @@ Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta)
2416
2662
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
2417
2663
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
2418
2664
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
2419
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by eventDefinition |
2420
2665
 
2421
2666
  <a name="Event.create"></a>
2422
2667
 
@@ -2747,10 +2992,10 @@ Returns file contents mapped to their filename without '.json' ending
2747
2992
  **Kind**: static method of [<code>Folder</code>](#Folder)
2748
2993
  **Returns**: <code>TYPE.MetadataTypeMap</code> - fileName => fileContent map
2749
2994
 
2750
- | Param | Type | Default | Description |
2751
- | --- | --- | --- | --- |
2752
- | dir | <code>string</code> | | directory that contains '.json' files to be read |
2753
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
2995
+ | Param | Type | Description |
2996
+ | --- | --- | --- |
2997
+ | dir | <code>string</code> | directory that contains '.json' files to be read |
2998
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
2754
2999
 
2755
3000
  <a name="Folder.retrieveHelper"></a>
2756
3001
 
@@ -2923,7 +3168,7 @@ definitionId: A unique UUID provided by Salesforce Marketing Cloud. Each version
2923
3168
  * [Journey](#Journey) ⇐ [<code>MetadataType</code>](#MetadataType)
2924
3169
  * [.retrieve(retrieveDir, [_], [__], [key])](#Journey.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
2925
3170
  * [.deleteByKey(key)](#Journey.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
2926
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#Journey.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3171
+ * [.deploy(metadata, deployDir, retrieveDir)](#Journey.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2927
3172
  * [.update(metadata)](#Journey.update) ⇒ <code>Promise</code>
2928
3173
  * [.create(metadata)](#Journey.create) ⇒ <code>Promise</code>
2929
3174
  * [.saveResults(results, retrieveDir, [overrideType], [templateVariables])](#Journey.saveResults) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
@@ -2961,7 +3206,7 @@ Delete a metadata item from the specified business unit
2961
3206
 
2962
3207
  <a name="Journey.deploy"></a>
2963
3208
 
2964
- ### Journey.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3209
+ ### Journey.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
2965
3210
  Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta) once per deploy
2966
3211
 
2967
3212
  **Kind**: static method of [<code>Journey</code>](#Journey)
@@ -2972,7 +3217,6 @@ Deploys metadata - merely kept here to be able to print [logBeta](#Util.logBeta)
2972
3217
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
2973
3218
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
2974
3219
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
2975
- | [isRefresh] | <code>boolean</code> | optional flag - so far not used by interaction |
2976
3220
 
2977
3221
  <a name="Journey.update"></a>
2978
3222
 
@@ -3016,7 +3260,7 @@ Helper for writing Metadata to disk, used for Retrieve and deploy
3016
3260
  <a name="Journey._postRetrieveTasksBulk"></a>
3017
3261
 
3018
3262
  ### Journey.\_postRetrieveTasksBulk(metadataMap)
3019
- helper for Journey's [saveResults](saveResults). Gets executed after retreive of metadata type and
3263
+ helper for Journey's [saveResults](#Journey.saveResults). Gets executed after retreive of metadata type and
3020
3264
 
3021
3265
  **Kind**: static method of [<code>Journey</code>](#Journey)
3022
3266
 
@@ -3155,9 +3399,9 @@ Provides default functionality that can be overwritten by child metadata type cl
3155
3399
  * [.buObject](#MetadataType.buObject) : <code>TYPE.BuObject</code>
3156
3400
  * [.getJsonFromFS(dir, [listBadKeys])](#MetadataType.getJsonFromFS) ⇒ <code>TYPE.MetadataTypeMap</code>
3157
3401
  * [.getFieldNamesToRetrieve([additionalFields], [isCaching])](#MetadataType.getFieldNamesToRetrieve) ⇒ <code>Array.&lt;string&gt;</code>
3158
- * [.deploy(metadata, deployDir, retrieveDir, [isRefresh])](#MetadataType.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3159
- * [.postDeployTasks(upsertResults, originalMetadata, createdUpdated, [isRefresh])](#MetadataType.postDeployTasks) ⇒ <code>void</code>
3160
- * [.postCreateTasks(metadataEntry, apiResponse)](#MetadataType.postCreateTasks) ⇒ <code>void</code>
3402
+ * [.deploy(metadata, deployDir, retrieveDir)](#MetadataType.deploy) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3403
+ * [.postDeployTasks(upsertResults, originalMetadata, createdUpdated)](#MetadataType.postDeployTasks) ⇒ <code>void</code>
3404
+ * [.postCreateTasks(metadataEntry, apiResponse, metadataEntryWithAllFields)](#MetadataType.postCreateTasks) ⇒ <code>void</code>
3161
3405
  * [.postUpdateTasks(metadataEntry, apiResponse)](#MetadataType.postUpdateTasks) ⇒ <code>void</code>
3162
3406
  * [.postDeployTasks_legacyApi(metadataEntry, apiResponse)](#MetadataType.postDeployTasks_legacyApi) ⇒ <code>Promise.&lt;void&gt;</code>
3163
3407
  * [.postRetrieveTasks(metadata, targetDir, [isTemplating])](#MetadataType.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
@@ -3165,7 +3409,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3165
3409
  * [.setFolderId(metadata)](#MetadataType.setFolderId)
3166
3410
  * [.retrieve(retrieveDir, [additionalFields], [subTypeArr], [key])](#MetadataType.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3167
3411
  * [.retrieveChangelog([additionalFields], [subTypeArr])](#MetadataType.retrieveChangelog) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3168
- * [.retrieveForCache([additionalFields], [subTypeArr], [key])](#MetadataType.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3412
+ * [.retrieveForCache([additionalFields], [subTypeArr])](#MetadataType.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3169
3413
  * [.retrieveAsTemplate(templateDir, name, templateVariables, [subType])](#MetadataType.retrieveAsTemplate) ⇒ <code>Promise.&lt;TYPE.MetadataTypeItemObj&gt;</code>
3170
3414
  * [.retrieveTemplateREST(templateDir, uri, templateVariables, name)](#MetadataType.retrieveTemplateREST) ⇒ <code>Promise.&lt;{metadata: TYPE.MetadataTypeItem, type: string}&gt;</code>
3171
3415
  * [.buildTemplate(retrieveDir, templateDir, key, templateVariables)](#MetadataType.buildTemplate) ⇒ <code>Promise.&lt;TYPE.MetadataTypeItemObj&gt;</code>
@@ -3174,9 +3418,10 @@ Provides default functionality that can be overwritten by child metadata type cl
3174
3418
  * [.update(metadata, [metadataBefore])](#MetadataType.update) ⇒ <code>void</code>
3175
3419
  * [.refresh()](#MetadataType.refresh) ⇒ <code>void</code>
3176
3420
  * [.execute()](#MetadataType.execute) ⇒ <code>void</code>
3421
+ * [.pause()](#MetadataType.pause) ⇒ <code>void</code>
3177
3422
  * [.hasChanged(cachedVersion, metadata, [fieldName])](#MetadataType.hasChanged) ⇒ <code>boolean</code>
3178
3423
  * [.hasChangedGeneric(cachedVersion, metadata, [fieldName], [silent])](#MetadataType.hasChangedGeneric) ⇒ <code>boolean</code>
3179
- * [.upsert(metadataMap, deployDir, [isRefresh])](#MetadataType.upsert) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3424
+ * [.upsert(metadataMap, deployDir)](#MetadataType.upsert) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3180
3425
  * [.createOrUpdate(metadataMap, metadataKey, hasError, metadataToUpdate, metadataToCreate)](#MetadataType.createOrUpdate) ⇒ <code>&#x27;create&#x27;</code> \| <code>&#x27;update&#x27;</code> \| <code>&#x27;skip&#x27;</code>
3181
3426
  * [.createREST(metadataEntry, uri)](#MetadataType.createREST) ⇒ <code>Promise.&lt;object&gt;</code> \| <code>null</code>
3182
3427
  * [.createSOAP(metadataEntry, [handleOutside])](#MetadataType.createSOAP) ⇒ <code>Promise.&lt;object&gt;</code> \| <code>null</code>
@@ -3186,7 +3431,10 @@ Provides default functionality that can be overwritten by child metadata type cl
3186
3431
  * [.getSOAPErrorMsg(ex)](#MetadataType.getSOAPErrorMsg) ⇒ <code>string</code>
3187
3432
  * [.retrieveSOAP(retrieveDir, [requestParams], [singleRetrieve], [additionalFields])](#MetadataType.retrieveSOAP) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3188
3433
  * [.retrieveREST(retrieveDir, uri, [templateVariables], [singleRetrieve])](#MetadataType.retrieveREST) ⇒ <code>Promise.&lt;{metadata: (TYPE.MetadataTypeMap\|TYPE.MetadataTypeItem), type: string}&gt;</code>
3189
- * [.executeREST(uri, key)](#MetadataType.executeREST) ⇒ <code>Promise.&lt;string&gt;</code>
3434
+ * [.retrieveRESTcollection(urlArray, [concurrentRequests], [logAmountOfUrls])](#MetadataType.retrieveRESTcollection) ⇒ <code>Promise.&lt;{metadata: (TYPE.MetadataTypeMap\|TYPE.MetadataTypeItem), type: string}&gt;</code>
3435
+ * [.handleRESTErrors(ex, id)](#MetadataType.handleRESTErrors) ⇒ <code>null</code>
3436
+ * [.executeREST(uri, key)](#MetadataType.executeREST) ⇒ <code>Promise.&lt;{key:string, response:string}&gt;</code>
3437
+ * [.executeSOAP([metadataEntry])](#MetadataType.executeSOAP) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
3190
3438
  * [.runDocumentOnRetrieve([singleRetrieve], metadataMap)](#MetadataType.runDocumentOnRetrieve) ⇒ <code>Promise.&lt;void&gt;</code>
3191
3439
  * [.parseResponseBody(body, [singleRetrieve])](#MetadataType.parseResponseBody) ⇒ <code>TYPE.MetadataTypeMap</code>
3192
3440
  * [.deleteFieldByDefinition(metadataEntry, fieldPath, definitionProperty, origin)](#MetadataType.deleteFieldByDefinition) ⇒ <code>void</code>
@@ -3204,7 +3452,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3204
3452
  * [.findSubType(templateDir, templateName)](#MetadataType.findSubType) ⇒ <code>Promise.&lt;string&gt;</code>
3205
3453
  * [.readSecondaryFolder(templateDir, typeDirArr, templateName, fileName, ex)](#MetadataType.readSecondaryFolder) ⇒ <code>object</code>
3206
3454
  * [.buildDefinition(templateDir, targetDir, templateName, variables)](#MetadataType.buildDefinition) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3207
- * [.checkForErrors(ex)](#MetadataType.checkForErrors) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3455
+ * [.getErrorsREST(ex)](#MetadataType.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3208
3456
  * [.document([metadata], [isDeploy])](#MetadataType.document) ⇒ <code>void</code>
3209
3457
  * [.deleteByKey(customerKey)](#MetadataType.deleteByKey) ⇒ <code>boolean</code>
3210
3458
  * [.postDeleteTasks(customerKey, [additionalExtensions])](#MetadataType.postDeleteTasks) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -3212,6 +3460,7 @@ Provides default functionality that can be overwritten by child metadata type cl
3212
3460
  * [.deleteByKeyREST(url, key, [handleOutside])](#MetadataType.deleteByKeyREST) ⇒ <code>boolean</code>
3213
3461
  * [.readBUMetadataForType(readDir, [listBadKeys], [buMetadata])](#MetadataType.readBUMetadataForType) ⇒ <code>object</code>
3214
3462
  * [.getFilesToCommit(keyArr)](#MetadataType.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
3463
+ * [.getKeysForFixing(metadataMap)](#MetadataType.getKeysForFixing) ⇒ <code>Array.&lt;string&gt;</code>
3215
3464
 
3216
3465
  <a name="MetadataType.client"></a>
3217
3466
 
@@ -3237,10 +3486,10 @@ Returns file contents mapped to their filename without '.json' ending
3237
3486
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3238
3487
  **Returns**: <code>TYPE.MetadataTypeMap</code> - fileName => fileContent map
3239
3488
 
3240
- | Param | Type | Default | Description |
3241
- | --- | --- | --- | --- |
3242
- | dir | <code>string</code> | | directory that contains '.json' files to be read |
3243
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
3489
+ | Param | Type | Description |
3490
+ | --- | --- | --- |
3491
+ | dir | <code>string</code> | directory that contains '.json' files to be read |
3492
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
3244
3493
 
3245
3494
  <a name="MetadataType.getFieldNamesToRetrieve"></a>
3246
3495
 
@@ -3257,7 +3506,7 @@ Returns fieldnames of Metadata Type. 'this.definition.fields' variable only set
3257
3506
 
3258
3507
  <a name="MetadataType.deploy"></a>
3259
3508
 
3260
- ### MetadataType.deploy(metadata, deployDir, retrieveDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3509
+ ### MetadataType.deploy(metadata, deployDir, retrieveDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3261
3510
  Deploys metadata
3262
3511
 
3263
3512
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3268,11 +3517,10 @@ Deploys metadata
3268
3517
  | metadata | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
3269
3518
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
3270
3519
  | retrieveDir | <code>string</code> | directory where metadata after deploy should be saved |
3271
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3272
3520
 
3273
3521
  <a name="MetadataType.postDeployTasks"></a>
3274
3522
 
3275
- ### MetadataType.postDeployTasks(upsertResults, originalMetadata, createdUpdated, [isRefresh]) ⇒ <code>void</code>
3523
+ ### MetadataType.postDeployTasks(upsertResults, originalMetadata, createdUpdated) ⇒ <code>void</code>
3276
3524
  Gets executed after deployment of metadata type
3277
3525
 
3278
3526
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3282,12 +3530,11 @@ Gets executed after deployment of metadata type
3282
3530
  | upsertResults | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField as returned by update/create |
3283
3531
  | originalMetadata | <code>TYPE.MetadataTypeMap</code> | metadata to be updated (contains additioanl fields) |
3284
3532
  | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
3285
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3286
3533
 
3287
3534
  <a name="MetadataType.postCreateTasks"></a>
3288
3535
 
3289
- ### MetadataType.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
3290
- helper for [createREST](createREST)
3536
+ ### MetadataType.postCreateTasks(metadataEntry, apiResponse, metadataEntryWithAllFields) ⇒ <code>void</code>
3537
+ helper for [createREST](#MetadataType.createREST)
3291
3538
 
3292
3539
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3293
3540
 
@@ -3295,11 +3542,12 @@ helper for [createREST](createREST)
3295
3542
  | --- | --- | --- |
3296
3543
  | metadataEntry | <code>TYPE.MetadataTypeItem</code> | a single metadata Entry |
3297
3544
  | apiResponse | <code>object</code> | varies depending on the API call |
3545
+ | metadataEntryWithAllFields | <code>TYPE.MetadataTypeItem</code> | like metadataEntry but before non-creatable fields were stripped |
3298
3546
 
3299
3547
  <a name="MetadataType.postUpdateTasks"></a>
3300
3548
 
3301
3549
  ### MetadataType.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
3302
- helper for [updateREST](updateREST)
3550
+ helper for [updateREST](#MetadataType.updateREST)
3303
3551
 
3304
3552
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3305
3553
 
@@ -3311,7 +3559,7 @@ helper for [updateREST](updateREST)
3311
3559
  <a name="MetadataType.postDeployTasks_legacyApi"></a>
3312
3560
 
3313
3561
  ### MetadataType.postDeployTasks\_legacyApi(metadataEntry, apiResponse) ⇒ <code>Promise.&lt;void&gt;</code>
3314
- helper for [createREST](createREST) when legacy API endpoints as these do not return the created item but only their new id
3562
+ helper for [createREST](#MetadataType.createREST) when legacy API endpoints as these do not return the created item but only their new id
3315
3563
 
3316
3564
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3317
3565
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -3387,7 +3635,7 @@ Gets metadata from Marketing Cloud
3387
3635
 
3388
3636
  <a name="MetadataType.retrieveForCache"></a>
3389
3637
 
3390
- ### MetadataType.retrieveForCache([additionalFields], [subTypeArr], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3638
+ ### MetadataType.retrieveForCache([additionalFields], [subTypeArr]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
3391
3639
  Gets metadata cache with limited fields and does not store value to disk
3392
3640
 
3393
3641
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3397,7 +3645,6 @@ Gets metadata cache with limited fields and does not store value to disk
3397
3645
  | --- | --- | --- |
3398
3646
  | [additionalFields] | <code>Array.&lt;string&gt;</code> | Returns specified fields even if their retrieve definition is not set to true |
3399
3647
  | [subTypeArr] | <code>Array.&lt;string&gt;</code> | optionally limit to a single subtype |
3400
- | [key] | <code>string</code> | customer key of single item to retrieve |
3401
3648
 
3402
3649
  <a name="MetadataType.retrieveAsTemplate"></a>
3403
3650
 
@@ -3492,6 +3739,12 @@ Abstract refresh method that needs to be implemented in child metadata type
3492
3739
  ### MetadataType.execute() ⇒ <code>void</code>
3493
3740
  Abstract execute method that needs to be implemented in child metadata type
3494
3741
 
3742
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3743
+ <a name="MetadataType.pause"></a>
3744
+
3745
+ ### MetadataType.pause() ⇒ <code>void</code>
3746
+ Abstract pause method that needs to be implemented in child metadata type
3747
+
3495
3748
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3496
3749
  <a name="MetadataType.hasChanged"></a>
3497
3750
 
@@ -3524,7 +3777,7 @@ test if metadata was actually changed or not to potentially skip it during deplo
3524
3777
 
3525
3778
  <a name="MetadataType.upsert"></a>
3526
3779
 
3527
- ### MetadataType.upsert(metadataMap, deployDir, [isRefresh]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3780
+ ### MetadataType.upsert(metadataMap, deployDir) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMap&gt;</code>
3528
3781
  MetadataType upsert, after retrieving from target and comparing to check if create or update operation is needed.
3529
3782
 
3530
3783
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3534,7 +3787,6 @@ MetadataType upsert, after retrieving from target and comparing to check if crea
3534
3787
  | --- | --- | --- |
3535
3788
  | metadataMap | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
3536
3789
  | deployDir | <code>string</code> | directory where deploy metadata are saved |
3537
- | [isRefresh] | <code>boolean</code> | optional flag to indicate that triggeredSend should be refreshed after deployment of assets |
3538
3790
 
3539
3791
  <a name="MetadataType.createOrUpdate"></a>
3540
3792
 
@@ -3590,7 +3842,7 @@ Updates a single metadata entry via REST
3590
3842
  | --- | --- | --- | --- |
3591
3843
  | metadataEntry | <code>TYPE.MetadataTypeItem</code> | | a single metadata Entry |
3592
3844
  | uri | <code>string</code> | | rest endpoint for PATCH |
3593
- | [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 |
3845
+ | [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 |
3594
3846
 
3595
3847
  <a name="MetadataType.updateSOAP"></a>
3596
3848
 
@@ -3620,7 +3872,7 @@ Updates a single metadata entry via fuel-soap (generic lib not wrapper)
3620
3872
  <a name="MetadataType.getSOAPErrorMsg"></a>
3621
3873
 
3622
3874
  ### MetadataType.getSOAPErrorMsg(ex) ⇒ <code>string</code>
3623
- helper for [_handleSOAPErrors](_handleSOAPErrors)
3875
+ helper for [_handleSOAPErrors](#MetadataType._handleSOAPErrors)
3624
3876
 
3625
3877
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3626
3878
  **Returns**: <code>string</code> - error message
@@ -3659,23 +3911,60 @@ Retrieves Metadata for Rest Types
3659
3911
  | [templateVariables] | <code>TYPE.TemplateMap</code> | variables to be replaced in the metadata |
3660
3912
  | [singleRetrieve] | <code>string</code> \| <code>number</code> | key of single item to filter by |
3661
3913
 
3914
+ <a name="MetadataType.retrieveRESTcollection"></a>
3915
+
3916
+ ### MetadataType.retrieveRESTcollection(urlArray, [concurrentRequests], [logAmountOfUrls]) ⇒ <code>Promise.&lt;{metadata: (TYPE.MetadataTypeMap\|TYPE.MetadataTypeItem), type: string}&gt;</code>
3917
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3918
+ **Returns**: <code>Promise.&lt;{metadata: (TYPE.MetadataTypeMap\|TYPE.MetadataTypeItem), type: string}&gt;</code> - Promise of item map (single item for templated result)
3919
+
3920
+ | Param | Type | Default | Description |
3921
+ | --- | --- | --- | --- |
3922
+ | urlArray | <code>Array.&lt;object&gt;</code> | | {uri: string, id: string} combo of URL and ID/key of metadata |
3923
+ | [concurrentRequests] | <code>number</code> | <code>10</code> | optionally set a different amount of concurrent requests |
3924
+ | [logAmountOfUrls] | <code>boolean</code> | <code>true</code> | if true, prints an info message about to-be loaded amount of metadata |
3925
+
3926
+ <a name="MetadataType.handleRESTErrors"></a>
3927
+
3928
+ ### MetadataType.handleRESTErrors(ex, id) ⇒ <code>null</code>
3929
+ helper for [this.retrieveRESTcollection](this.retrieveRESTcollection)
3930
+
3931
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3932
+ **Returns**: <code>null</code> - -
3933
+
3934
+ | Param | Type | Description |
3935
+ | --- | --- | --- |
3936
+ | ex | <code>Error</code> | exception |
3937
+ | id | <code>string</code> | id or key of item |
3938
+
3662
3939
  <a name="MetadataType.executeREST"></a>
3663
3940
 
3664
- ### MetadataType.executeREST(uri, key) ⇒ <code>Promise.&lt;string&gt;</code>
3941
+ ### MetadataType.executeREST(uri, key) ⇒ <code>Promise.&lt;{key:string, response:string}&gt;</code>
3665
3942
  Used to execute a query/automation etc.
3666
3943
 
3667
3944
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3668
- **Returns**: <code>Promise.&lt;string&gt;</code> - 'OK' if started execution successfully, otherwise - 'Error'
3945
+ **Returns**: <code>Promise.&lt;{key:string, response:string}&gt;</code> - metadata key and API response (OK or error)
3669
3946
 
3670
3947
  | Param | Type | Description |
3671
3948
  | --- | --- | --- |
3672
3949
  | uri | <code>string</code> | REST endpoint where the POST request should be sent |
3673
3950
  | key | <code>string</code> | item key |
3674
3951
 
3952
+ <a name="MetadataType.executeSOAP"></a>
3953
+
3954
+ ### MetadataType.executeSOAP([metadataEntry]) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
3955
+ Used to execute a query/automation etc.
3956
+
3957
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3958
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
3959
+
3960
+ | Param | Type | Description |
3961
+ | --- | --- | --- |
3962
+ | [metadataEntry] | <code>TYPE.MetadataTypeItem</code> | single metadata entry |
3963
+
3675
3964
  <a name="MetadataType.runDocumentOnRetrieve"></a>
3676
3965
 
3677
3966
  ### MetadataType.runDocumentOnRetrieve([singleRetrieve], metadataMap) ⇒ <code>Promise.&lt;void&gt;</code>
3678
- helper for [retrieveREST](retrieveREST) and [retrieveSOAP](retrieveSOAP)
3967
+ helper for [retrieveREST](#MetadataType.retrieveREST) and [retrieveSOAP](#MetadataType.retrieveSOAP)
3679
3968
 
3680
3969
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3681
3970
  **Returns**: <code>Promise.&lt;void&gt;</code> - -
@@ -3769,10 +4058,10 @@ checks if the current metadata entry should be saved on retrieve or not
3769
4058
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3770
4059
  **Returns**: <code>boolean</code> - true: skip saving == filtered; false: continue with saving
3771
4060
 
3772
- | Param | Type | Default | Description |
3773
- | --- | --- | --- | --- |
3774
- | metadataEntry | <code>TYPE.MetadataTypeItem</code> | | metadata entry |
3775
- | [include] | <code>boolean</code> | <code>false</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
4061
+ | Param | Type | Description |
4062
+ | --- | --- | --- |
4063
+ | metadataEntry | <code>TYPE.MetadataTypeItem</code> | metadata entry |
4064
+ | [include] | <code>boolean</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3776
4065
 
3777
4066
  <a name="MetadataType.isFilteredFolder"></a>
3778
4067
 
@@ -3782,10 +4071,10 @@ optionally filter by what folder something is in
3782
4071
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3783
4072
  **Returns**: <code>boolean</code> - true: filtered == do NOT save; false: not filtered == do save
3784
4073
 
3785
- | Param | Type | Default | Description |
3786
- | --- | --- | --- | --- |
3787
- | metadataEntry | <code>object</code> | | metadata entry |
3788
- | [include] | <code>boolean</code> | <code>false</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
4074
+ | Param | Type | Description |
4075
+ | --- | --- | --- |
4076
+ | metadataEntry | <code>object</code> | metadata entry |
4077
+ | [include] | <code>boolean</code> | true: use definition.include / options.include; false=exclude: use definition.filter / options.exclude |
3789
4078
 
3790
4079
  <a name="MetadataType.saveResults"></a>
3791
4080
 
@@ -3805,7 +4094,7 @@ Helper for writing Metadata to disk, used for Retrieve and deploy
3805
4094
  <a name="MetadataType.applyTemplateValues"></a>
3806
4095
 
3807
4096
  ### MetadataType.applyTemplateValues(code, templateVariables) ⇒ <code>string</code>
3808
- helper for [buildDefinitionForNested](buildDefinitionForNested)
4097
+ helper for [buildDefinitionForNested](#MetadataType.buildDefinitionForNested)
3809
4098
  searches extracted file for template variable names and applies the market values
3810
4099
 
3811
4100
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3819,7 +4108,7 @@ searches extracted file for template variable names and applies the market value
3819
4108
  <a name="MetadataType.applyTemplateNames"></a>
3820
4109
 
3821
4110
  ### MetadataType.applyTemplateNames(code, templateVariables) ⇒ <code>string</code>
3822
- helper for [buildTemplateForNested](buildTemplateForNested)
4111
+ helper for [buildTemplateForNested](#MetadataType.buildTemplateForNested)
3823
4112
  searches extracted file for template variable values and applies the market variable names
3824
4113
 
3825
4114
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3833,7 +4122,7 @@ searches extracted file for template variable values and applies the market vari
3833
4122
  <a name="MetadataType.buildDefinitionForNested"></a>
3834
4123
 
3835
4124
  ### MetadataType.buildDefinitionForNested(templateDir, targetDir, metadata, variables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
3836
- helper for [buildDefinition](buildDefinition)
4125
+ helper for [buildDefinition](#MetadataType.buildDefinition)
3837
4126
  handles extracted code if any are found for complex types (e.g script, asset, query)
3838
4127
 
3839
4128
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3850,7 +4139,7 @@ handles extracted code if any are found for complex types (e.g script, asset, qu
3850
4139
  <a name="MetadataType.buildTemplateForNested"></a>
3851
4140
 
3852
4141
  ### MetadataType.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
3853
- helper for [buildTemplate](buildTemplate)
4142
+ helper for [buildTemplate](#MetadataType.buildTemplate)
3854
4143
  handles extracted code if any are found for complex types
3855
4144
 
3856
4145
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3910,9 +4199,9 @@ parsing is required (for example scripts & queries)
3910
4199
  | templateName | <code>string</code> | name of the metadata file |
3911
4200
  | variables | <code>TYPE.TemplateMap</code> | variables to be replaced in the metadata |
3912
4201
 
3913
- <a name="MetadataType.checkForErrors"></a>
4202
+ <a name="MetadataType.getErrorsREST"></a>
3914
4203
 
3915
- ### MetadataType.checkForErrors(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4204
+ ### MetadataType.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
3916
4205
  Standardizes a check for multiple messages
3917
4206
 
3918
4207
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
@@ -3995,11 +4284,11 @@ Returns metadata of a business unit that is saved locally
3995
4284
  **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
3996
4285
  **Returns**: <code>object</code> - Metadata of BU in local directory
3997
4286
 
3998
- | Param | Type | Default | Description |
3999
- | --- | --- | --- | --- |
4000
- | readDir | <code>string</code> | | root directory of metadata. |
4001
- | [listBadKeys] | <code>boolean</code> | <code>false</code> | do not print errors, used for badKeys() |
4002
- | [buMetadata] | <code>object</code> | | Metadata of BU in local directory |
4287
+ | Param | Type | Description |
4288
+ | --- | --- | --- |
4289
+ | readDir | <code>string</code> | root directory of metadata. |
4290
+ | [listBadKeys] | <code>boolean</code> | do not print errors, used for badKeys() |
4291
+ | [buMetadata] | <code>object</code> | Metadata of BU in local directory |
4003
4292
 
4004
4293
  <a name="MetadataType.getFilesToCommit"></a>
4005
4294
 
@@ -4014,6 +4303,16 @@ additionally, the documentation for dataExtension and automation should be retur
4014
4303
  | --- | --- | --- |
4015
4304
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
4016
4305
 
4306
+ <a name="MetadataType.getKeysForFixing"></a>
4307
+
4308
+ ### MetadataType.getKeysForFixing(metadataMap) ⇒ <code>Array.&lt;string&gt;</code>
4309
+ **Kind**: static method of [<code>MetadataType</code>](#MetadataType)
4310
+ **Returns**: <code>Array.&lt;string&gt;</code> - list of keys
4311
+
4312
+ | Param | Type | Description |
4313
+ | --- | --- | --- |
4314
+ | metadataMap | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField |
4315
+
4017
4316
  <a name="MobileCode"></a>
4018
4317
 
4019
4318
  ## MobileCode ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -4190,7 +4489,7 @@ manages post retrieve steps
4190
4489
  <a name="MobileKeyword.prepExtractedCode"></a>
4191
4490
 
4192
4491
  ### MobileKeyword.prepExtractedCode(metadataScript) ⇒ <code>Object</code>
4193
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
4492
+ helper for [postRetrieveTasks](#MobileKeyword.postRetrieveTasks) and [_buildForNested](#MobileKeyword._buildForNested)
4194
4493
 
4195
4494
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4196
4495
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -4240,7 +4539,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
4240
4539
  <a name="MobileKeyword._buildForNested"></a>
4241
4540
 
4242
4541
  ### MobileKeyword.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4243
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
4542
+ helper for [buildTemplateForNested](#MobileKeyword.buildTemplateForNested) / [buildDefinitionForNested](#MobileKeyword.buildDefinitionForNested)
4244
4543
  handles extracted code if any are found for complex types
4245
4544
 
4246
4545
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
@@ -4271,7 +4570,7 @@ prepares an event definition for deployment
4271
4570
  <a name="MobileKeyword.postCreateTasks"></a>
4272
4571
 
4273
4572
  ### MobileKeyword.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4274
- helper for [createREST](createREST)
4573
+ helper for [createREST](#MetadataType.createREST)
4275
4574
 
4276
4575
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4277
4576
 
@@ -4283,7 +4582,7 @@ helper for [createREST](createREST)
4283
4582
  <a name="MobileKeyword.postUpdateTasks"></a>
4284
4583
 
4285
4584
  ### MobileKeyword.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4286
- helper for [updateREST](updateREST)
4585
+ helper for [updateREST](#MetadataType.updateREST)
4287
4586
 
4288
4587
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4289
4588
 
@@ -4295,7 +4594,7 @@ helper for [updateREST](updateREST)
4295
4594
  <a name="MobileKeyword._mergeCode"></a>
4296
4595
 
4297
4596
  ### MobileKeyword.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4298
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
4597
+ helper for [preDeployTasks](#MobileKeyword.preDeployTasks) that loads extracted code content back into JSON
4299
4598
 
4300
4599
  **Kind**: static method of [<code>MobileKeyword</code>](#MobileKeyword)
4301
4600
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -4423,7 +4722,7 @@ Creates a single item
4423
4722
  <a name="MobileMessage._mergeCode"></a>
4424
4723
 
4425
4724
  ### MobileMessage.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4426
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
4725
+ helper for [preDeployTasks](#MobileMessage.preDeployTasks) that loads extracted code content back into JSON
4427
4726
 
4428
4727
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4429
4728
  **Returns**: <code>Promise.&lt;string&gt;</code> - code
@@ -4437,7 +4736,7 @@ helper for [preDeployTasks](preDeployTasks) that loads extracted code content ba
4437
4736
  <a name="MobileMessage.prepExtractedCode"></a>
4438
4737
 
4439
4738
  ### MobileMessage.prepExtractedCode(code) ⇒ <code>Object</code>
4440
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
4739
+ helper for [postRetrieveTasks](#MobileMessage.postRetrieveTasks) and [_buildForNested](#MobileMessage._buildForNested)
4441
4740
 
4442
4741
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4443
4742
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -4487,7 +4786,7 @@ prepares an event definition for deployment
4487
4786
  <a name="MobileMessage.postCreateTasks"></a>
4488
4787
 
4489
4788
  ### MobileMessage.postCreateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4490
- helper for [createREST](createREST)
4789
+ helper for [createREST](#MetadataType.createREST)
4491
4790
 
4492
4791
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4493
4792
 
@@ -4499,7 +4798,7 @@ helper for [createREST](createREST)
4499
4798
  <a name="MobileMessage.postUpdateTasks"></a>
4500
4799
 
4501
4800
  ### MobileMessage.postUpdateTasks(metadataEntry, apiResponse) ⇒ <code>void</code>
4502
- helper for [updateREST](updateREST)
4801
+ helper for [updateREST](#MetadataType.updateREST)
4503
4802
 
4504
4803
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
4505
4804
 
@@ -4549,7 +4848,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
4549
4848
  <a name="MobileMessage._buildForNested"></a>
4550
4849
 
4551
4850
  ### MobileMessage.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4552
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
4851
+ helper for [buildTemplateForNested](#MobileMessage.buildTemplateForNested) / [buildDefinitionForNested](#MobileMessage.buildDefinitionForNested)
4553
4852
  handles extracted code if any are found for complex types
4554
4853
 
4555
4854
  **Kind**: static method of [<code>MobileMessage</code>](#MobileMessage)
@@ -4587,7 +4886,7 @@ Query MetadataType
4587
4886
 
4588
4887
  * [Query](#Query) ⇐ [<code>MetadataType</code>](#MetadataType)
4589
4888
  * [.retrieve(retrieveDir, [_], [__], [key])](#Query.retrieve) ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
4590
- * [.execute(keyArr)](#Query.execute) ⇒ <code>Promise.&lt;boolean&gt;</code>
4889
+ * [.execute(keyArr)](#Query.execute) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
4591
4890
  * [.retrieveForCache()](#Query.retrieveForCache) ⇒ <code>Promise.&lt;{metadata: TYPE.QueryMap, type: string}&gt;</code>
4592
4891
  * [.retrieveAsTemplate(templateDir, name, templateVariables)](#Query.retrieveAsTemplate) ⇒ <code>Promise.&lt;{metadata: Query, type: string}&gt;</code>
4593
4892
  * [.postRetrieveTasks(metadata)](#Query.postRetrieveTasks) ⇒ <code>TYPE.CodeExtractItem</code>
@@ -4598,9 +4897,10 @@ Query MetadataType
4598
4897
  * [.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Query.buildDefinitionForNested) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4599
4898
  * [.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName)](#Query.buildTemplateForNested) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
4600
4899
  * [.getFilesToCommit(keyArr)](#Query.getFilesToCommit) ⇒ <code>Array.&lt;string&gt;</code>
4601
- * [.checkForErrors(ex)](#Query.checkForErrors) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4900
+ * [.getErrorsREST(ex)](#Query.getErrorsREST) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4602
4901
  * [.deleteByKey(customerKey)](#Query.deleteByKey) ⇒ <code>boolean</code>
4603
4902
  * [.postDeleteTasks(customerKey)](#Query.postDeleteTasks) ⇒ <code>void</code>
4903
+ * [.postDeployTasks(upsertResults)](#Query.postDeployTasks)
4604
4904
 
4605
4905
  <a name="Query.retrieve"></a>
4606
4906
 
@@ -4619,11 +4919,11 @@ Retrieves Metadata of queries
4619
4919
 
4620
4920
  <a name="Query.execute"></a>
4621
4921
 
4622
- ### Query.execute(keyArr) ⇒ <code>Promise.&lt;boolean&gt;</code>
4922
+ ### Query.execute(keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
4623
4923
  a function to start query execution via API
4624
4924
 
4625
4925
  **Kind**: static method of [<code>Query</code>](#Query)
4626
- **Returns**: <code>Promise.&lt;boolean&gt;</code> - Returns true if all items were executed successfully, otherwise false
4926
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - Returns list of keys that were executed successfully
4627
4927
 
4628
4928
  | Param | Type | Description |
4629
4929
  | --- | --- | --- |
@@ -4702,7 +5002,7 @@ prepares a Query for deployment
4702
5002
  <a name="Query.applyTemplateValues"></a>
4703
5003
 
4704
5004
  ### Query.applyTemplateValues(code, templateVariables) ⇒ <code>string</code>
4705
- helper for [buildDefinitionForNested](buildDefinitionForNested)
5005
+ helper for [buildDefinitionForNested](#Query.buildDefinitionForNested)
4706
5006
  searches extracted SQL file for template variables and applies the market values
4707
5007
 
4708
5008
  **Kind**: static method of [<code>Query</code>](#Query)
@@ -4764,9 +5064,9 @@ additionally, the documentation for dataExtension and automation should be retur
4764
5064
  | --- | --- | --- |
4765
5065
  | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
4766
5066
 
4767
- <a name="Query.checkForErrors"></a>
5067
+ <a name="Query.getErrorsREST"></a>
4768
5068
 
4769
- ### Query.checkForErrors(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
5069
+ ### Query.getErrorsREST(ex) ⇒ <code>Array.&lt;string&gt;</code> \| <code>void</code>
4770
5070
  Standardizes a check for multiple messages but adds query specific filters to error texts
4771
5071
 
4772
5072
  **Kind**: static method of [<code>Query</code>](#Query)
@@ -4799,6 +5099,17 @@ clean up after deleting a metadata item
4799
5099
  | --- | --- | --- |
4800
5100
  | customerKey | <code>string</code> | Identifier of metadata item |
4801
5101
 
5102
+ <a name="Query.postDeployTasks"></a>
5103
+
5104
+ ### Query.postDeployTasks(upsertResults)
5105
+ Gets executed after deployment of metadata type
5106
+
5107
+ **Kind**: static method of [<code>Query</code>](#Query)
5108
+
5109
+ | Param | Type | Description |
5110
+ | --- | --- | --- |
5111
+ | upsertResults | <code>TYPE.MetadataTypeMap</code> | metadata mapped by their keyField as returned by update/create |
5112
+
4802
5113
  <a name="Role"></a>
4803
5114
 
4804
5115
  ## Role ⇐ [<code>MetadataType</code>](#MetadataType)
@@ -4992,7 +5303,7 @@ Creates a single Script
4992
5303
  <a name="Script._mergeCode"></a>
4993
5304
 
4994
5305
  ### Script.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
4995
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
5306
+ helper for [preDeployTasks](#Script.preDeployTasks) that loads extracted code content back into JSON
4996
5307
 
4997
5308
  **Kind**: static method of [<code>Script</code>](#Script)
4998
5309
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -5057,7 +5368,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
5057
5368
  <a name="Script._buildForNested"></a>
5058
5369
 
5059
5370
  ### Script.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5060
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
5371
+ helper for [buildTemplateForNested](#Script.buildTemplateForNested) / [buildDefinitionForNested](#Script.buildDefinitionForNested)
5061
5372
  handles extracted code if any are found for complex types
5062
5373
 
5063
5374
  **Kind**: static method of [<code>Script</code>](#Script)
@@ -5087,7 +5398,7 @@ Splits the script metadata into two parts and parses in a standard manner
5087
5398
  <a name="Script.prepExtractedCode"></a>
5088
5399
 
5089
5400
  ### Script.prepExtractedCode(metadataScript, metadataName) ⇒ <code>Object</code>
5090
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5401
+ helper for [parseMetadata](#Script.parseMetadata) and [_buildForNested](#Script._buildForNested)
5091
5402
 
5092
5403
  **Kind**: static method of [<code>Script</code>](#Script)
5093
5404
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -5132,40 +5443,6 @@ Retrieves SOAP based metadata of metadata type into local filesystem. executes c
5132
5443
  | [__] | <code>void</code> | unused parameter |
5133
5444
  | [key] | <code>string</code> | customer key of single item to retrieve |
5134
5445
 
5135
- <a name="SetDefinition"></a>
5136
-
5137
- ## SetDefinition ⇐ [<code>MetadataType</code>](#MetadataType)
5138
- SetDefinition MetadataType
5139
-
5140
- **Kind**: global class
5141
- **Extends**: [<code>MetadataType</code>](#MetadataType)
5142
-
5143
- * [SetDefinition](#SetDefinition) ⇐ [<code>MetadataType</code>](#MetadataType)
5144
- * [.retrieve(retrieveDir, [_], [__], [key])](#SetDefinition.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5145
- * [.retrieveForCache()](#SetDefinition.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5146
-
5147
- <a name="SetDefinition.retrieve"></a>
5148
-
5149
- ### SetDefinition.retrieve(retrieveDir, [_], [__], [key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5150
- Retrieves Metadata of schema set Definitions.
5151
-
5152
- **Kind**: static method of [<code>SetDefinition</code>](#SetDefinition)
5153
- **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
5154
-
5155
- | Param | Type | Description |
5156
- | --- | --- | --- |
5157
- | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
5158
- | [_] | <code>void</code> | unused parameter |
5159
- | [__] | <code>void</code> | unused parameter |
5160
- | [key] | <code>string</code> | customer key of single item to retrieve |
5161
-
5162
- <a name="SetDefinition.retrieveForCache"></a>
5163
-
5164
- ### SetDefinition.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5165
- Retrieves Metadata of schema set definitions for caching.
5166
-
5167
- **Kind**: static method of [<code>SetDefinition</code>](#SetDefinition)
5168
- **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise
5169
5446
  <a name="TransactionalEmail"></a>
5170
5447
 
5171
5448
  ## TransactionalEmail ⇐ [<code>TransactionalMessage</code>](#TransactionalMessage)
@@ -5177,7 +5454,10 @@ TransactionalEmail MetadataType
5177
5454
  * [TransactionalEmail](#TransactionalEmail) ⇐ [<code>TransactionalMessage</code>](#TransactionalMessage)
5178
5455
  * [.update(metadata)](#TransactionalEmail.update) ⇒ <code>Promise</code>
5179
5456
  * [.preDeployTasks(metadata)](#TransactionalEmail.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5457
+ * [.postCreateTasks(_, apiResponse)](#TransactionalEmail.postCreateTasks) ⇒ <code>void</code>
5458
+ * [.postDeployTasks()](#TransactionalEmail.postDeployTasks) ⇒ <code>void</code>
5180
5459
  * [.postRetrieveTasks(metadata)](#TransactionalEmail.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5460
+ * [.deleteByKey(key)](#TransactionalEmail.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5181
5461
 
5182
5462
  <a name="TransactionalEmail.update"></a>
5183
5463
 
@@ -5203,6 +5483,24 @@ prepares for deployment
5203
5483
  | --- | --- | --- |
5204
5484
  | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
5205
5485
 
5486
+ <a name="TransactionalEmail.postCreateTasks"></a>
5487
+
5488
+ ### TransactionalEmail.postCreateTasks(_, apiResponse) ⇒ <code>void</code>
5489
+ helper for [TransactionalEmail.createREST](TransactionalEmail.createREST)
5490
+
5491
+ **Kind**: static method of [<code>TransactionalEmail</code>](#TransactionalEmail)
5492
+
5493
+ | Param | Type | Description |
5494
+ | --- | --- | --- |
5495
+ | _ | <code>TYPE.MetadataTypeItem</code> | not used |
5496
+ | apiResponse | <code>object</code> | varies depending on the API call |
5497
+
5498
+ <a name="TransactionalEmail.postDeployTasks"></a>
5499
+
5500
+ ### TransactionalEmail.postDeployTasks() ⇒ <code>void</code>
5501
+ Gets executed after deployment of metadata type
5502
+
5503
+ **Kind**: static method of [<code>TransactionalEmail</code>](#TransactionalEmail)
5206
5504
  <a name="TransactionalEmail.postRetrieveTasks"></a>
5207
5505
 
5208
5506
  ### TransactionalEmail.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
@@ -5215,7 +5513,19 @@ manages post retrieve steps
5215
5513
  | --- | --- | --- |
5216
5514
  | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
5217
5515
 
5218
- <a name="TransactionalMessage"></a>
5516
+ <a name="TransactionalEmail.deleteByKey"></a>
5517
+
5518
+ ### TransactionalEmail.deleteByKey(key) ⇒ <code>Promise.&lt;boolean&gt;</code>
5519
+ Delete a metadata item from the specified business unit
5520
+
5521
+ **Kind**: static method of [<code>TransactionalEmail</code>](#TransactionalEmail)
5522
+ **Returns**: <code>Promise.&lt;boolean&gt;</code> - deletion success status
5523
+
5524
+ | Param | Type | Description |
5525
+ | --- | --- | --- |
5526
+ | key | <code>string</code> | Identifier of item |
5527
+
5528
+ <a name="TransactionalMessage"></a>
5219
5529
 
5220
5530
  ## TransactionalMessage ⇐ [<code>MetadataType</code>](#MetadataType)
5221
5531
  TransactionalMessage MetadataType
@@ -5225,7 +5535,7 @@ TransactionalMessage MetadataType
5225
5535
 
5226
5536
  * [TransactionalMessage](#TransactionalMessage) ⇐ [<code>MetadataType</code>](#MetadataType)
5227
5537
  * [.retrieve(retrieveDir, [_], [__], [key])](#TransactionalMessage.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5228
- * [.retrieveForCache()](#TransactionalMessage.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5538
+ * [.retrieveForCache([key])](#TransactionalMessage.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5229
5539
  * [.update(metadata)](#TransactionalMessage.update) ⇒ <code>Promise</code>
5230
5540
  * [.create(metadata)](#TransactionalMessage.create) ⇒ <code>Promise</code>
5231
5541
  * [.deleteByKey(key)](#TransactionalMessage.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -5247,11 +5557,16 @@ Retrieves Metadata
5247
5557
 
5248
5558
  <a name="TransactionalMessage.retrieveForCache"></a>
5249
5559
 
5250
- ### TransactionalMessage.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5560
+ ### TransactionalMessage.retrieveForCache([key]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5251
5561
  Retrieves event definition metadata for caching
5252
5562
 
5253
5563
  **Kind**: static method of [<code>TransactionalMessage</code>](#TransactionalMessage)
5254
5564
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of metadata
5565
+
5566
+ | Param | Type | Description |
5567
+ | --- | --- | --- |
5568
+ | [key] | <code>string</code> | customer key of single item to cache |
5569
+
5255
5570
  <a name="TransactionalMessage.update"></a>
5256
5571
 
5257
5572
  ### TransactionalMessage.update(metadata) ⇒ <code>Promise</code>
@@ -5371,7 +5686,7 @@ prepares for deployment
5371
5686
  <a name="TransactionalSMS._mergeCode"></a>
5372
5687
 
5373
5688
  ### TransactionalSMS.\_mergeCode(metadata, deployDir, [templateName]) ⇒ <code>Promise.&lt;string&gt;</code>
5374
- helper for [preDeployTasks](preDeployTasks) that loads extracted code content back into JSON
5689
+ helper for [preDeployTasks](#TransactionalSMS.preDeployTasks) that loads extracted code content back into JSON
5375
5690
 
5376
5691
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
5377
5692
  **Returns**: <code>Promise.&lt;string&gt;</code> - content for metadata.script
@@ -5397,7 +5712,7 @@ manages post retrieve steps
5397
5712
  <a name="TransactionalSMS.prepExtractedCode"></a>
5398
5713
 
5399
5714
  ### TransactionalSMS.prepExtractedCode(metadataScript) ⇒ <code>Object</code>
5400
- helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5715
+ helper for [postRetrieveTasks](#TransactionalSMS.postRetrieveTasks) and [_buildForNested](#TransactionalSMS._buildForNested)
5401
5716
 
5402
5717
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
5403
5718
  **Returns**: <code>Object</code> - returns found extension and file content
@@ -5409,7 +5724,7 @@ helper for [parseMetadata](parseMetadata) and [_buildForNested](_buildForNested)
5409
5724
  <a name="TransactionalSMS.buildDefinitionForNested"></a>
5410
5725
 
5411
5726
  ### TransactionalSMS.buildDefinitionForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5412
- helper for [buildDefinition](#MetadataType.buildDefinition)
5727
+ helper for [TransactionalMessage.buildDefinition](TransactionalMessage.buildDefinition)
5413
5728
  handles extracted code if any are found for complex types
5414
5729
 
5415
5730
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5426,7 +5741,7 @@ handles extracted code if any are found for complex types
5426
5741
  <a name="TransactionalSMS.buildTemplateForNested"></a>
5427
5742
 
5428
5743
  ### TransactionalSMS.buildTemplateForNested(templateDir, targetDir, metadata, templateVariables, templateName) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5429
- helper for [buildTemplate](#MetadataType.buildTemplate)
5744
+ helper for [TransactionalMessage.buildTemplate](TransactionalMessage.buildTemplate)
5430
5745
  handles extracted code if any are found for complex types
5431
5746
 
5432
5747
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5447,7 +5762,7 @@ scripts are saved as 1 json and 1 ssjs file. both files need to be run through t
5447
5762
  <a name="TransactionalSMS._buildForNested"></a>
5448
5763
 
5449
5764
  ### TransactionalSMS.\_buildForNested(templateDir, targetDir, metadata, templateVariables, templateName, mode) ⇒ <code>Promise.&lt;Array.&lt;Array.&lt;string&gt;&gt;&gt;</code>
5450
- helper for [buildTemplateForNested](buildTemplateForNested) / [buildDefinitionForNested](buildDefinitionForNested)
5765
+ helper for [buildTemplateForNested](#TransactionalSMS.buildTemplateForNested) / [buildDefinitionForNested](#TransactionalSMS.buildDefinitionForNested)
5451
5766
  handles extracted code if any are found for complex types
5452
5767
 
5453
5768
  **Kind**: static method of [<code>TransactionalSMS</code>](#TransactionalSMS)
@@ -5500,13 +5815,11 @@ MessageSendActivity MetadataType
5500
5815
  * [.create(metadata)](#TriggeredSend.create) ⇒ <code>Promise</code>
5501
5816
  * [.update(metadata)](#TriggeredSend.update) ⇒ <code>Promise</code>
5502
5817
  * [.deleteByKey(customerKey)](#TriggeredSend.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5503
- * [.postRetrieveTasks(metadata)](#TriggeredSend.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5504
- * [.setFolderPath(metadata)](#TriggeredSend.setFolderPath)
5505
- * [.parseMetadata(metadata)](#TriggeredSend.parseMetadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5818
+ * [.postRetrieveTasks(metadata)](#TriggeredSend.postRetrieveTasks) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5506
5819
  * [.preDeployTasks(metadata)](#TriggeredSend.preDeployTasks) ⇒ <code>TYPE.MetadataTypeItem</code>
5507
5820
  * [.refresh([keyArr], [checkKey])](#TriggeredSend.refresh) ⇒ <code>Promise.&lt;void&gt;</code>
5508
5821
  * [.getKeysForValidTSDs(metadata)](#TriggeredSend.getKeysForValidTSDs) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
5509
- * [.findRefreshableItems()](#TriggeredSend.findRefreshableItems) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5822
+ * [.findRefreshableItems([assetLoaded])](#TriggeredSend.findRefreshableItems) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5510
5823
  * [._refreshItem(key, checkKey)](#TriggeredSend._refreshItem) ⇒ <code>Promise.&lt;boolean&gt;</code>
5511
5824
 
5512
5825
  <a name="TriggeredSend.retrieve"></a>
@@ -5562,30 +5875,7 @@ Delete a metadata item from the specified business unit
5562
5875
 
5563
5876
  <a name="TriggeredSend.postRetrieveTasks"></a>
5564
5877
 
5565
- ### TriggeredSend.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code>
5566
- manages post retrieve steps
5567
-
5568
- **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5569
- **Returns**: <code>TYPE.MetadataTypeItem</code> - Array with one metadata object and one query string
5570
-
5571
- | Param | Type | Description |
5572
- | --- | --- | --- |
5573
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single query |
5574
-
5575
- <a name="TriggeredSend.setFolderPath"></a>
5576
-
5577
- ### TriggeredSend.setFolderPath(metadata)
5578
- generic script that retrieves the folder path from cache and updates the given metadata with it after retrieve
5579
-
5580
- **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5581
-
5582
- | Param | Type | Description |
5583
- | --- | --- | --- |
5584
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single script activity definition |
5585
-
5586
- <a name="TriggeredSend.parseMetadata"></a>
5587
-
5588
- ### TriggeredSend.parseMetadata(metadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5878
+ ### TriggeredSend.postRetrieveTasks(metadata) ⇒ <code>TYPE.MetadataTypeItem</code> \| <code>void</code>
5589
5879
  parses retrieved Metadata before saving
5590
5880
 
5591
5881
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
@@ -5593,7 +5883,7 @@ parses retrieved Metadata before saving
5593
5883
 
5594
5884
  | Param | Type | Description |
5595
5885
  | --- | --- | --- |
5596
- | metadata | <code>TYPE.MetadataTypeItem</code> | a single query activity definition |
5886
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
5597
5887
 
5598
5888
  <a name="TriggeredSend.preDeployTasks"></a>
5599
5889
 
@@ -5623,7 +5913,7 @@ TSD-specific refresh method that finds active TSDs and refreshes them
5623
5913
  <a name="TriggeredSend.getKeysForValidTSDs"></a>
5624
5914
 
5625
5915
  ### TriggeredSend.getKeysForValidTSDs(metadata) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
5626
- helper for [refresh](refresh) that extracts the keys from the TSD item map and eli
5916
+ helper for [refresh](#TriggeredSend.refresh) that extracts the keys from the TSD item map and eli
5627
5917
 
5628
5918
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5629
5919
  **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - keyArr
@@ -5634,15 +5924,20 @@ helper for [refresh](refresh) that extracts the keys from the TSD item map and e
5634
5924
 
5635
5925
  <a name="TriggeredSend.findRefreshableItems"></a>
5636
5926
 
5637
- ### TriggeredSend.findRefreshableItems() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5638
- 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
5927
+ ### TriggeredSend.findRefreshableItems([assetLoaded]) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
5928
+ 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
5639
5929
 
5640
5930
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5641
5931
  **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of TSD item map
5932
+
5933
+ | Param | Type | Default | Description |
5934
+ | --- | --- | --- | --- |
5935
+ | [assetLoaded] | <code>boolean</code> | <code>false</code> | if run after Asset.deploy via --refresh option this will skip caching assets |
5936
+
5642
5937
  <a name="TriggeredSend._refreshItem"></a>
5643
5938
 
5644
5939
  ### TriggeredSend.\_refreshItem(key, checkKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
5645
- helper for [refresh](refresh) that pauses, publishes and starts a triggered send
5940
+ helper for [refresh](#TriggeredSend.refresh) that pauses, publishes and starts a triggered send
5646
5941
 
5647
5942
  **Kind**: static method of [<code>TriggeredSend</code>](#TriggeredSend)
5648
5943
  **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if refresh was successful
@@ -5821,6 +6116,133 @@ manages post retrieve steps
5821
6116
  | --- | --- | --- |
5822
6117
  | metadata | <code>TYPE.MetadataTypeItem</code> | a single item |
5823
6118
 
6119
+ <a name="Verification"></a>
6120
+
6121
+ ## Verification ⇐ [<code>MetadataType</code>](#MetadataType)
6122
+ Verification MetadataType
6123
+
6124
+ **Kind**: global class
6125
+ **Extends**: [<code>MetadataType</code>](#MetadataType)
6126
+
6127
+ * [Verification](#Verification) ⇐ [<code>MetadataType</code>](#MetadataType)
6128
+ * [.retrieve(retrieveDir, [_], [__], key)](#Verification.retrieve) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
6129
+ * [.handleRESTErrors(ex, id)](#Verification.handleRESTErrors) ⇒ <code>null</code>
6130
+ * [.retrieveForCache()](#Verification.retrieveForCache) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
6131
+ * [.create(metadata)](#Verification.create) ⇒ <code>Promise</code>
6132
+ * [.postCreateTasks(metadataEntry, apiResponse, metadataEntryWithAllFields)](#Verification.postCreateTasks) ⇒ <code>void</code>
6133
+ * [.update(metadata)](#Verification.update) ⇒ <code>Promise</code>
6134
+ * [.preDeployTasks(metadata)](#Verification.preDeployTasks) ⇒ <code>TYPE.VerificationItem</code>
6135
+ * [.postRetrieveTasks(metadata)](#Verification.postRetrieveTasks) ⇒ <code>TYPE.VerificationItem</code>
6136
+ * [.deleteByKey(key)](#Verification.deleteByKey) ⇒ <code>Promise.&lt;boolean&gt;</code>
6137
+
6138
+ <a name="Verification.retrieve"></a>
6139
+
6140
+ ### Verification.retrieve(retrieveDir, [_], [__], key) ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
6141
+ Retrieves Metadata of Data Verification Activity.
6142
+
6143
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6144
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of metadata
6145
+
6146
+ | Param | Type | Description |
6147
+ | --- | --- | --- |
6148
+ | retrieveDir | <code>string</code> | Directory where retrieved metadata directory will be saved |
6149
+ | [_] | <code>void</code> | unused parameter |
6150
+ | [__] | <code>void</code> | unused parameter |
6151
+ | key | <code>string</code> | customer key of single item to retrieve |
6152
+
6153
+ <a name="Verification.handleRESTErrors"></a>
6154
+
6155
+ ### Verification.handleRESTErrors(ex, id) ⇒ <code>null</code>
6156
+ helper for [this.retrieveRESTcollection](this.retrieveRESTcollection)
6157
+
6158
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6159
+ **Returns**: <code>null</code> - -
6160
+
6161
+ | Param | Type | Description |
6162
+ | --- | --- | --- |
6163
+ | ex | <code>Error</code> | exception |
6164
+ | id | <code>string</code> | id or key of item |
6165
+
6166
+ <a name="Verification.retrieveForCache"></a>
6167
+
6168
+ ### Verification.retrieveForCache() ⇒ <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code>
6169
+ Retrieves Metadata of Data Extract Activity for caching
6170
+
6171
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6172
+ **Returns**: <code>Promise.&lt;TYPE.MetadataTypeMapObj&gt;</code> - Promise of metadata
6173
+ <a name="Verification.create"></a>
6174
+
6175
+ ### Verification.create(metadata) ⇒ <code>Promise</code>
6176
+ Creates a single Data Extract
6177
+
6178
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6179
+ **Returns**: <code>Promise</code> - Promise
6180
+
6181
+ | Param | Type | Description |
6182
+ | --- | --- | --- |
6183
+ | metadata | <code>TYPE.VerificationItem</code> | a single Data Extract |
6184
+
6185
+ <a name="Verification.postCreateTasks"></a>
6186
+
6187
+ ### Verification.postCreateTasks(metadataEntry, apiResponse, metadataEntryWithAllFields) ⇒ <code>void</code>
6188
+ helper for [createREST](#MetadataType.createREST)
6189
+
6190
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6191
+
6192
+ | Param | Type | Description |
6193
+ | --- | --- | --- |
6194
+ | metadataEntry | <code>TYPE.MetadataTypeItem</code> | a single metadata Entry |
6195
+ | apiResponse | <code>object</code> | varies depending on the API call |
6196
+ | metadataEntryWithAllFields | <code>TYPE.MetadataTypeItem</code> | like metadataEntry but before non-creatable fields were stripped |
6197
+
6198
+ <a name="Verification.update"></a>
6199
+
6200
+ ### Verification.update(metadata) ⇒ <code>Promise</code>
6201
+ Updates a single Data Extract
6202
+
6203
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6204
+ **Returns**: <code>Promise</code> - Promise
6205
+
6206
+ | Param | Type | Description |
6207
+ | --- | --- | --- |
6208
+ | metadata | <code>TYPE.VerificationItem</code> | a single Data Extract |
6209
+
6210
+ <a name="Verification.preDeployTasks"></a>
6211
+
6212
+ ### Verification.preDeployTasks(metadata) ⇒ <code>TYPE.VerificationItem</code>
6213
+ prepares a verification for deployment
6214
+
6215
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6216
+ **Returns**: <code>TYPE.VerificationItem</code> - metadata object
6217
+
6218
+ | Param | Type | Description |
6219
+ | --- | --- | --- |
6220
+ | metadata | <code>TYPE.VerificationItem</code> | a single verification activity definition |
6221
+
6222
+ <a name="Verification.postRetrieveTasks"></a>
6223
+
6224
+ ### Verification.postRetrieveTasks(metadata) ⇒ <code>TYPE.VerificationItem</code>
6225
+ parses retrieved Metadata before saving
6226
+
6227
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6228
+ **Returns**: <code>TYPE.VerificationItem</code> - Array with one metadata object and one sql string
6229
+
6230
+ | Param | Type | Description |
6231
+ | --- | --- | --- |
6232
+ | metadata | <code>TYPE.VerificationItem</code> | a single verification activity definition |
6233
+
6234
+ <a name="Verification.deleteByKey"></a>
6235
+
6236
+ ### Verification.deleteByKey(key) ⇒ <code>Promise.&lt;boolean&gt;</code>
6237
+ Delete a metadata item from the specified business unit
6238
+
6239
+ **Kind**: static method of [<code>Verification</code>](#Verification)
6240
+ **Returns**: <code>Promise.&lt;boolean&gt;</code> - deletion success status
6241
+
6242
+ | Param | Type | Description |
6243
+ | --- | --- | --- |
6244
+ | key | <code>string</code> | Identifier of item |
6245
+
5824
6246
  <a name="Retriever"></a>
5825
6247
 
5826
6248
  ## Retriever
@@ -5862,7 +6284,7 @@ Retrieve metadata of specified types into local file system and Retriever.metada
5862
6284
  <a name="Retriever+_getTypeDependencies"></a>
5863
6285
 
5864
6286
  ### retriever.\_getTypeDependencies(metadataTypes) ⇒ <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code>
5865
- helper for [retrieve](retrieve) to get all dependencies of the given types
6287
+ helper for [Retriever.retrieve](Retriever.retrieve) to get all dependencies of the given types
5866
6288
 
5867
6289
  **Kind**: instance method of [<code>Retriever</code>](#Retriever)
5868
6290
  **Returns**: <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> - unique list dependent metadata types
@@ -5897,6 +6319,7 @@ CLI entry for SFMC DevTools
5897
6319
  * [.metadataLogger(level, type, method, payload, [source])](#Util.metadataLogger) ⇒ <code>void</code>
5898
6320
  * [.replaceByObject(str, obj)](#Util.replaceByObject) ⇒ <code>string</code> \| <code>object</code>
5899
6321
  * [.inverseGet(objs, val)](#Util.inverseGet) ⇒ <code>string</code>
6322
+ * [.getDependentMetadata(fixedType)](#Util.getDependentMetadata) ⇒ <code>Array.&lt;string&gt;</code>
5900
6323
  * [.getMetadataHierachy(metadataTypes)](#Util.getMetadataHierachy) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
5901
6324
  * [.resolveObjPath(path, obj)](#Util.resolveObjPath) ⇒ <code>any</code>
5902
6325
  * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code> \| <code>void</code>
@@ -5908,6 +6331,9 @@ CLI entry for SFMC DevTools
5908
6331
  * [.getKeysString(keyArr, [isId])](#Util.getKeysString) ⇒ <code>string</code>
5909
6332
  * [.sleep(ms)](#Util.sleep) ⇒ <code>Promise.&lt;void&gt;</code>
5910
6333
  * [.getSsjs(code)](#Util.getSsjs) ⇒ <code>string</code>
6334
+ * [.stringLike(testString, search)](#Util.stringLike) ⇒ <code>boolean</code>
6335
+ * [.fieldsLike(metadata, [filters])](#Util.fieldsLike) ⇒ <code>boolean</code>
6336
+ * [.capitalizeFirstLetter(str)](#Util.capitalizeFirstLetter) ⇒ <code>string</code>
5911
6337
 
5912
6338
  <a name="Util.skipInteraction"></a>
5913
6339
 
@@ -5992,7 +6418,8 @@ used to ensure the program tells surrounding software that an unrecoverable erro
5992
6418
  <a name="Util.isTrue"></a>
5993
6419
 
5994
6420
  ### Util.isTrue(attrValue) ⇒ <code>boolean</code>
5995
- SFMC accepts multiple true values for Boolean attributes for which we are checking here
6421
+ SFMC accepts multiple true values for Boolean attributes for which we are checking here.
6422
+ The same problem occurs when evaluating boolean CLI flags
5996
6423
 
5997
6424
  **Kind**: static method of [<code>Util</code>](#Util)
5998
6425
  **Returns**: <code>boolean</code> - attribute value == true ? true : false
@@ -6004,7 +6431,8 @@ SFMC accepts multiple true values for Boolean attributes for which we are checki
6004
6431
  <a name="Util.isFalse"></a>
6005
6432
 
6006
6433
  ### Util.isFalse(attrValue) ⇒ <code>boolean</code>
6007
- SFMC accepts multiple false values for Boolean attributes for which we are checking here
6434
+ SFMC accepts multiple false values for Boolean attributes for which we are checking here.
6435
+ The same problem occurs when evaluating boolean CLI flags
6008
6436
 
6009
6437
  **Kind**: static method of [<code>Util</code>](#Util)
6010
6438
  **Returns**: <code>boolean</code> - attribute value == false ? true : false
@@ -6016,7 +6444,7 @@ SFMC accepts multiple false values for Boolean attributes for which we are check
6016
6444
  <a name="Util._isValidType"></a>
6017
6445
 
6018
6446
  ### Util.\_isValidType(selectedType, [handleOutside]) ⇒ <code>boolean</code>
6019
- helper for [retrieve](#Mcdev.retrieve), [retrieveAsTemplate](#Mcdev.retrieveAsTemplate) and [deploy](#Mcdev.deploy)
6447
+ helper for Mcdev.retrieve, Mcdev.retrieveAsTemplate and Mcdev.deploy
6020
6448
 
6021
6449
  **Kind**: static method of [<code>Util</code>](#Util)
6022
6450
  **Returns**: <code>boolean</code> - type ok or not
@@ -6053,9 +6481,9 @@ wrapper around our standard winston logging to console and logfile
6053
6481
  **Kind**: static method of [<code>Util</code>](#Util)
6054
6482
  **Returns**: <code>object</code> - initiated logger for console and file
6055
6483
 
6056
- | Param | Type | Default | Description |
6057
- | --- | --- | --- | --- |
6058
- | [noLogFile] | <code>boolean</code> | <code>false</code> | optional flag to indicate if we should log to file; CLI logs are always on |
6484
+ | Param | Type | Description |
6485
+ | --- | --- | --- |
6486
+ | [noLogFile] | <code>boolean</code> | optional flag to indicate if we should log to file; CLI logs are always on |
6059
6487
 
6060
6488
  <a name="Util.startLogger"></a>
6061
6489
 
@@ -6064,10 +6492,10 @@ initiate winston logger
6064
6492
 
6065
6493
  **Kind**: static method of [<code>Util</code>](#Util)
6066
6494
 
6067
- | Param | Type | Default | Description |
6068
- | --- | --- | --- | --- |
6069
- | [restart] | <code>boolean</code> | <code>false</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
6070
- | [noLogFile] | <code>boolean</code> | <code>false</code> | if false, logger will log to file; otherwise, only to console |
6495
+ | Param | Type | Description |
6496
+ | --- | --- | --- |
6497
+ | [restart] | <code>boolean</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
6498
+ | [noLogFile] | <code>boolean</code> | if false, logger will log to file; otherwise, only to console |
6071
6499
 
6072
6500
  <a name="Util.metadataLogger"></a>
6073
6501
 
@@ -6111,6 +6539,18 @@ get key of an object based on the first matching value
6111
6539
  | objs | <code>object</code> | object of objects to be searched |
6112
6540
  | val | <code>string</code> | value to be searched for |
6113
6541
 
6542
+ <a name="Util.getDependentMetadata"></a>
6543
+
6544
+ ### Util.getDependentMetadata(fixedType) ⇒ <code>Array.&lt;string&gt;</code>
6545
+ helper for Mcdev.fixKeys. Retrieve dependent metadata
6546
+
6547
+ **Kind**: static method of [<code>Util</code>](#Util)
6548
+ **Returns**: <code>Array.&lt;string&gt;</code> - array of types that depend on the given type
6549
+
6550
+ | Param | Type | Description |
6551
+ | --- | --- | --- |
6552
+ | fixedType | <code>string</code> | type of the metadata passed as a parameter to fixKeys function |
6553
+
6114
6554
  <a name="Util.getMetadataHierachy"></a>
6115
6555
 
6116
6556
  ### Util.getMetadataHierachy(metadataTypes) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
@@ -6240,7 +6680,7 @@ pause execution of code; useful when multiple server calls are dependent on each
6240
6680
  <a name="Util.getSsjs"></a>
6241
6681
 
6242
6682
  ### Util.getSsjs(code) ⇒ <code>string</code>
6243
- helper for [_extractCode](#Asset._extractCode) and [prepExtractedCode](#Script.prepExtractedCode) to determine if a code block is a valid SSJS block
6683
+ helper for Asset.extractCode and Script.prepExtractedCode to determine if a code block is a valid SSJS block
6244
6684
 
6245
6685
  **Kind**: static method of [<code>Util</code>](#Util)
6246
6686
  **Returns**: <code>string</code> - the SSJS code if code block is a valid SSJS block, otherwise null
@@ -6264,6 +6704,44 @@ the following is invalid:
6264
6704
  // 3
6265
6705
  </script>
6266
6706
  ```
6707
+ <a name="Util.stringLike"></a>
6708
+
6709
+ ### Util.stringLike(testString, search) ⇒ <code>boolean</code>
6710
+ allows us to filter just like with SQL's LIKE operator
6711
+
6712
+ **Kind**: static method of [<code>Util</code>](#Util)
6713
+ **Returns**: <code>boolean</code> - true if testString matches search
6714
+
6715
+ | Param | Type | Description |
6716
+ | --- | --- | --- |
6717
+ | testString | <code>string</code> | field value to test |
6718
+ | search | <code>string</code> | search string in SQL LIKE format |
6719
+
6720
+ <a name="Util.fieldsLike"></a>
6721
+
6722
+ ### Util.fieldsLike(metadata, [filters]) ⇒ <code>boolean</code>
6723
+ returns true if no LIKE filter is defined or if all filters match
6724
+
6725
+ **Kind**: static method of [<code>Util</code>](#Util)
6726
+ **Returns**: <code>boolean</code> - true if no LIKE filter is defined or if all filters match
6727
+
6728
+ | Param | Type | Description |
6729
+ | --- | --- | --- |
6730
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata item |
6731
+ | [filters] | <code>object</code> | only used in recursive calls |
6732
+
6733
+ <a name="Util.capitalizeFirstLetter"></a>
6734
+
6735
+ ### Util.capitalizeFirstLetter(str) ⇒ <code>string</code>
6736
+ helper used by SOAP methods to ensure the type always uses an upper-cased first letter
6737
+
6738
+ **Kind**: static method of [<code>Util</code>](#Util)
6739
+ **Returns**: <code>string</code> - str with first letter capitalized
6740
+
6741
+ | Param | Type | Description |
6742
+ | --- | --- | --- |
6743
+ | str | <code>string</code> | string to capitalize |
6744
+
6267
6745
  <a name="MetadataTypeDefinitions"></a>
6268
6746
 
6269
6747
  ## MetadataTypeDefinitions
@@ -6327,6 +6805,7 @@ CLI helper class
6327
6805
  * [Cli](#Cli)
6328
6806
  * [.initMcdevConfig()](#Cli.initMcdevConfig) ⇒ <code>Promise.&lt;boolean&gt;</code>
6329
6807
  * [.addExtraCredential(properties)](#Cli.addExtraCredential) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
6808
+ * [.postFixKeysReretrieve(type, dependentTypes)](#Cli.postFixKeysReretrieve) ⇒ <code>Promise.&lt;boolean&gt;</code>
6330
6809
  * [.logExistingCredentials(properties)](#Cli.logExistingCredentials) ⇒ <code>void</code>
6331
6810
  * [.updateCredential(properties, credName)](#Cli.updateCredential) ⇒ <code>Promise.&lt;boolean&gt;</code>
6332
6811
  * [.getCredentialObject(properties, target, [isCredentialOnly], [allowAll])](#Cli.getCredentialObject) ⇒ <code>Promise.&lt;TYPE.BuObject&gt;</code>
@@ -6357,6 +6836,17 @@ Extends template file for properties.json
6357
6836
  | --- | --- | --- |
6358
6837
  | properties | <code>TYPE.Mcdevrc</code> | config file's json |
6359
6838
 
6839
+ <a name="Cli.postFixKeysReretrieve"></a>
6840
+
6841
+ ### Cli.postFixKeysReretrieve(type, dependentTypes) ⇒ <code>Promise.&lt;boolean&gt;</code>
6842
+ **Kind**: static method of [<code>Cli</code>](#Cli)
6843
+ **Returns**: <code>Promise.&lt;boolean&gt;</code> - true if user wants to continue with retrieve
6844
+
6845
+ | Param | Type | Description |
6846
+ | --- | --- | --- |
6847
+ | type | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
6848
+ | dependentTypes | <code>Array.&lt;TYPE.SupportedMetadataTypes&gt;</code> | types that depent on type |
6849
+
6360
6850
  <a name="Cli.logExistingCredentials"></a>
6361
6851
 
6362
6852
  ### Cli.logExistingCredentials(properties) ⇒ <code>void</code>
@@ -6801,12 +7291,12 @@ reads file from local file system.
6801
7291
  **Kind**: static method of [<code>File</code>](#File)
6802
7292
  **Returns**: <code>Promise.&lt;string&gt;</code> \| <code>void</code> - file contents; void on error
6803
7293
 
6804
- | Param | Type | Default | Description |
6805
- | --- | --- | --- | --- |
6806
- | directory | <code>string</code> \| <code>Array.&lt;string&gt;</code> | | directory where the file is stored |
6807
- | filename | <code>string</code> | | name of the file without '.json' ending |
6808
- | filetype | <code>string</code> | | filetype suffix |
6809
- | [encoding] | <code>string</code> | <code>&quot;&#x27;utf8&#x27;&quot;</code> | read file with encoding (defaults to utf-8) |
7294
+ | Param | Type | Description |
7295
+ | --- | --- | --- |
7296
+ | directory | <code>string</code> \| <code>Array.&lt;string&gt;</code> | directory where the file is stored |
7297
+ | filename | <code>string</code> | name of the file without '.json' ending |
7298
+ | filetype | <code>string</code> | filetype suffix |
7299
+ | [encoding] | <code>string</code> | read file with encoding (defaults to utf-8) |
6810
7300
 
6811
7301
  <a name="File.readDirectories"></a>
6812
7302
 
@@ -6869,9 +7359,9 @@ Initalises Prettier formatting lib async.
6869
7359
  **Kind**: static method of [<code>File</code>](#File)
6870
7360
  **Returns**: <code>Promise.&lt;boolean&gt;</code> - success of config load
6871
7361
 
6872
- | Param | Type | Default | Description |
6873
- | --- | --- | --- | --- |
6874
- | [filetype] | <code>string</code> | <code>&quot;&#x27;html&#x27;&quot;</code> | filetype ie. JSON or SSJS |
7362
+ | Param | Type | Description |
7363
+ | --- | --- | --- |
7364
+ | [filetype] | <code>string</code> | filetype ie. JSON or SSJS |
6875
7365
 
6876
7366
  <a name="Init"></a>
6877
7367
 
@@ -6897,7 +7387,6 @@ CLI helper class
6897
7387
  * [._initMarkets()](#Init._initMarkets)
6898
7388
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
6899
7389
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
6900
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
6901
7390
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
6902
7391
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
6903
7392
 
@@ -7057,18 +7546,6 @@ wrapper around npm dependency & configuration file setup
7057
7546
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7058
7547
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7059
7548
 
7060
- <a name="Init._getMissingCredentials"></a>
7061
-
7062
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7063
- finds credentials that are set up in config but not in auth file
7064
-
7065
- **Kind**: static method of [<code>Init</code>](#Init)
7066
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7067
-
7068
- | Param | Type | Description |
7069
- | --- | --- | --- |
7070
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7071
-
7072
7549
  <a name="Init.installDependencies"></a>
7073
7550
 
7074
7551
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7119,7 +7596,6 @@ CLI helper class
7119
7596
  * [._initMarkets()](#Init._initMarkets)
7120
7597
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7121
7598
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7122
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7123
7599
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7124
7600
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7125
7601
 
@@ -7279,18 +7755,6 @@ wrapper around npm dependency & configuration file setup
7279
7755
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7280
7756
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7281
7757
 
7282
- <a name="Init._getMissingCredentials"></a>
7283
-
7284
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7285
- finds credentials that are set up in config but not in auth file
7286
-
7287
- **Kind**: static method of [<code>Init</code>](#Init)
7288
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7289
-
7290
- | Param | Type | Description |
7291
- | --- | --- | --- |
7292
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7293
-
7294
7758
  <a name="Init.installDependencies"></a>
7295
7759
 
7296
7760
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7341,7 +7805,6 @@ CLI helper class
7341
7805
  * [._initMarkets()](#Init._initMarkets)
7342
7806
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7343
7807
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7344
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7345
7808
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7346
7809
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7347
7810
 
@@ -7501,18 +7964,6 @@ wrapper around npm dependency & configuration file setup
7501
7964
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7502
7965
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7503
7966
 
7504
- <a name="Init._getMissingCredentials"></a>
7505
-
7506
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7507
- finds credentials that are set up in config but not in auth file
7508
-
7509
- **Kind**: static method of [<code>Init</code>](#Init)
7510
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7511
-
7512
- | Param | Type | Description |
7513
- | --- | --- | --- |
7514
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7515
-
7516
7967
  <a name="Init.installDependencies"></a>
7517
7968
 
7518
7969
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7563,7 +8014,6 @@ CLI helper class
7563
8014
  * [._initMarkets()](#Init._initMarkets)
7564
8015
  * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
7565
8016
  * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
7566
- * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
7567
8017
  * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
7568
8018
  * [._getDefaultPackageJson([currentContent])](#Init._getDefaultPackageJson) ⇒ <code>Promise.&lt;{script: object, author: string, license: string}&gt;</code>
7569
8019
 
@@ -7723,18 +8173,6 @@ wrapper around npm dependency & configuration file setup
7723
8173
  | [initial] | <code>boolean</code> | print message if not part of initial setup |
7724
8174
  | [repoName] | <code>string</code> | if git URL was provided earlier, the repo name was extracted to use it for npm init |
7725
8175
 
7726
- <a name="Init._getMissingCredentials"></a>
7727
-
7728
- ### Init.\_getMissingCredentials(properties) ⇒ <code>Array.&lt;string&gt;</code>
7729
- finds credentials that are set up in config but not in auth file
7730
-
7731
- **Kind**: static method of [<code>Init</code>](#Init)
7732
- **Returns**: <code>Array.&lt;string&gt;</code> - list of credential names
7733
-
7734
- | Param | Type | Description |
7735
- | --- | --- | --- |
7736
- | properties | <code>TYPE.Mcdevrc</code> | javascript object in .mcdevrc.json |
7737
-
7738
8176
  <a name="Init.installDependencies"></a>
7739
8177
 
7740
8178
  ### Init.installDependencies([repoName]) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -7787,6 +8225,7 @@ Util that contains logger and simple util methods
7787
8225
  * [.metadataLogger(level, type, method, payload, [source])](#Util.metadataLogger) ⇒ <code>void</code>
7788
8226
  * [.replaceByObject(str, obj)](#Util.replaceByObject) ⇒ <code>string</code> \| <code>object</code>
7789
8227
  * [.inverseGet(objs, val)](#Util.inverseGet) ⇒ <code>string</code>
8228
+ * [.getDependentMetadata(fixedType)](#Util.getDependentMetadata) ⇒ <code>Array.&lt;string&gt;</code>
7790
8229
  * [.getMetadataHierachy(metadataTypes)](#Util.getMetadataHierachy) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
7791
8230
  * [.resolveObjPath(path, obj)](#Util.resolveObjPath) ⇒ <code>any</code>
7792
8231
  * [.execSync(cmd, [args], [hideOutput])](#Util.execSync) ⇒ <code>string</code> \| <code>void</code>
@@ -7798,6 +8237,9 @@ Util that contains logger and simple util methods
7798
8237
  * [.getKeysString(keyArr, [isId])](#Util.getKeysString) ⇒ <code>string</code>
7799
8238
  * [.sleep(ms)](#Util.sleep) ⇒ <code>Promise.&lt;void&gt;</code>
7800
8239
  * [.getSsjs(code)](#Util.getSsjs) ⇒ <code>string</code>
8240
+ * [.stringLike(testString, search)](#Util.stringLike) ⇒ <code>boolean</code>
8241
+ * [.fieldsLike(metadata, [filters])](#Util.fieldsLike) ⇒ <code>boolean</code>
8242
+ * [.capitalizeFirstLetter(str)](#Util.capitalizeFirstLetter) ⇒ <code>string</code>
7801
8243
 
7802
8244
  <a name="Util.skipInteraction"></a>
7803
8245
 
@@ -7882,7 +8324,8 @@ used to ensure the program tells surrounding software that an unrecoverable erro
7882
8324
  <a name="Util.isTrue"></a>
7883
8325
 
7884
8326
  ### Util.isTrue(attrValue) ⇒ <code>boolean</code>
7885
- SFMC accepts multiple true values for Boolean attributes for which we are checking here
8327
+ SFMC accepts multiple true values for Boolean attributes for which we are checking here.
8328
+ The same problem occurs when evaluating boolean CLI flags
7886
8329
 
7887
8330
  **Kind**: static method of [<code>Util</code>](#Util)
7888
8331
  **Returns**: <code>boolean</code> - attribute value == true ? true : false
@@ -7894,7 +8337,8 @@ SFMC accepts multiple true values for Boolean attributes for which we are checki
7894
8337
  <a name="Util.isFalse"></a>
7895
8338
 
7896
8339
  ### Util.isFalse(attrValue) ⇒ <code>boolean</code>
7897
- SFMC accepts multiple false values for Boolean attributes for which we are checking here
8340
+ SFMC accepts multiple false values for Boolean attributes for which we are checking here.
8341
+ The same problem occurs when evaluating boolean CLI flags
7898
8342
 
7899
8343
  **Kind**: static method of [<code>Util</code>](#Util)
7900
8344
  **Returns**: <code>boolean</code> - attribute value == false ? true : false
@@ -7906,7 +8350,7 @@ SFMC accepts multiple false values for Boolean attributes for which we are check
7906
8350
  <a name="Util._isValidType"></a>
7907
8351
 
7908
8352
  ### Util.\_isValidType(selectedType, [handleOutside]) ⇒ <code>boolean</code>
7909
- helper for [retrieve](#Mcdev.retrieve), [retrieveAsTemplate](#Mcdev.retrieveAsTemplate) and [deploy](#Mcdev.deploy)
8353
+ helper for Mcdev.retrieve, Mcdev.retrieveAsTemplate and Mcdev.deploy
7910
8354
 
7911
8355
  **Kind**: static method of [<code>Util</code>](#Util)
7912
8356
  **Returns**: <code>boolean</code> - type ok or not
@@ -7943,9 +8387,9 @@ wrapper around our standard winston logging to console and logfile
7943
8387
  **Kind**: static method of [<code>Util</code>](#Util)
7944
8388
  **Returns**: <code>object</code> - initiated logger for console and file
7945
8389
 
7946
- | Param | Type | Default | Description |
7947
- | --- | --- | --- | --- |
7948
- | [noLogFile] | <code>boolean</code> | <code>false</code> | optional flag to indicate if we should log to file; CLI logs are always on |
8390
+ | Param | Type | Description |
8391
+ | --- | --- | --- |
8392
+ | [noLogFile] | <code>boolean</code> | optional flag to indicate if we should log to file; CLI logs are always on |
7949
8393
 
7950
8394
  <a name="Util.startLogger"></a>
7951
8395
 
@@ -7954,10 +8398,10 @@ initiate winston logger
7954
8398
 
7955
8399
  **Kind**: static method of [<code>Util</code>](#Util)
7956
8400
 
7957
- | Param | Type | Default | Description |
7958
- | --- | --- | --- | --- |
7959
- | [restart] | <code>boolean</code> | <code>false</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
7960
- | [noLogFile] | <code>boolean</code> | <code>false</code> | if false, logger will log to file; otherwise, only to console |
8401
+ | Param | Type | Description |
8402
+ | --- | --- | --- |
8403
+ | [restart] | <code>boolean</code> | if true, logger will be restarted; otherwise, an existing logger will be used |
8404
+ | [noLogFile] | <code>boolean</code> | if false, logger will log to file; otherwise, only to console |
7961
8405
 
7962
8406
  <a name="Util.metadataLogger"></a>
7963
8407
 
@@ -8001,6 +8445,18 @@ get key of an object based on the first matching value
8001
8445
  | objs | <code>object</code> | object of objects to be searched |
8002
8446
  | val | <code>string</code> | value to be searched for |
8003
8447
 
8448
+ <a name="Util.getDependentMetadata"></a>
8449
+
8450
+ ### Util.getDependentMetadata(fixedType) ⇒ <code>Array.&lt;string&gt;</code>
8451
+ helper for Mcdev.fixKeys. Retrieve dependent metadata
8452
+
8453
+ **Kind**: static method of [<code>Util</code>](#Util)
8454
+ **Returns**: <code>Array.&lt;string&gt;</code> - array of types that depend on the given type
8455
+
8456
+ | Param | Type | Description |
8457
+ | --- | --- | --- |
8458
+ | fixedType | <code>string</code> | type of the metadata passed as a parameter to fixKeys function |
8459
+
8004
8460
  <a name="Util.getMetadataHierachy"></a>
8005
8461
 
8006
8462
  ### Util.getMetadataHierachy(metadataTypes) ⇒ <code>Object.&lt;string, Array.&lt;string&gt;&gt;</code>
@@ -8130,7 +8586,7 @@ pause execution of code; useful when multiple server calls are dependent on each
8130
8586
  <a name="Util.getSsjs"></a>
8131
8587
 
8132
8588
  ### Util.getSsjs(code) ⇒ <code>string</code>
8133
- helper for [_extractCode](#Asset._extractCode) and [prepExtractedCode](#Script.prepExtractedCode) to determine if a code block is a valid SSJS block
8589
+ helper for Asset.extractCode and Script.prepExtractedCode to determine if a code block is a valid SSJS block
8134
8590
 
8135
8591
  **Kind**: static method of [<code>Util</code>](#Util)
8136
8592
  **Returns**: <code>string</code> - the SSJS code if code block is a valid SSJS block, otherwise null
@@ -8154,6 +8610,44 @@ the following is invalid:
8154
8610
  // 3
8155
8611
  </script>
8156
8612
  ```
8613
+ <a name="Util.stringLike"></a>
8614
+
8615
+ ### Util.stringLike(testString, search) ⇒ <code>boolean</code>
8616
+ allows us to filter just like with SQL's LIKE operator
8617
+
8618
+ **Kind**: static method of [<code>Util</code>](#Util)
8619
+ **Returns**: <code>boolean</code> - true if testString matches search
8620
+
8621
+ | Param | Type | Description |
8622
+ | --- | --- | --- |
8623
+ | testString | <code>string</code> | field value to test |
8624
+ | search | <code>string</code> | search string in SQL LIKE format |
8625
+
8626
+ <a name="Util.fieldsLike"></a>
8627
+
8628
+ ### Util.fieldsLike(metadata, [filters]) ⇒ <code>boolean</code>
8629
+ returns true if no LIKE filter is defined or if all filters match
8630
+
8631
+ **Kind**: static method of [<code>Util</code>](#Util)
8632
+ **Returns**: <code>boolean</code> - true if no LIKE filter is defined or if all filters match
8633
+
8634
+ | Param | Type | Description |
8635
+ | --- | --- | --- |
8636
+ | metadata | <code>TYPE.MetadataTypeItem</code> | a single metadata item |
8637
+ | [filters] | <code>object</code> | only used in recursive calls |
8638
+
8639
+ <a name="Util.capitalizeFirstLetter"></a>
8640
+
8641
+ ### Util.capitalizeFirstLetter(str) ⇒ <code>string</code>
8642
+ helper used by SOAP methods to ensure the type always uses an upper-cased first letter
8643
+
8644
+ **Kind**: static method of [<code>Util</code>](#Util)
8645
+ **Returns**: <code>string</code> - str with first letter capitalized
8646
+
8647
+ | Param | Type | Description |
8648
+ | --- | --- | --- |
8649
+ | str | <code>string</code> | string to capitalize |
8650
+
8157
8651
  <a name="csvToArray"></a>
8158
8652
 
8159
8653
  ## csvToArray(csv) ⇒ <code>Array.&lt;string&gt;</code>
@@ -8166,6 +8660,125 @@ helper to convert CSVs into an array. if only one value was given, it's also ret
8166
8660
  | --- | --- | --- |
8167
8661
  | csv | <code>string</code> | potentially comma-separated value or null |
8168
8662
 
8663
+ <a name="Mcdev."></a>
8664
+
8665
+ ## Mcdev.(methodName, businessUnit, [selectedType], [keys]) ⇒ <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code>
8666
+ run a method across BUs
8667
+
8668
+ **Kind**: global function
8669
+ **Returns**: <code>Promise.&lt;Object.&lt;string, Array.&lt;string&gt;&gt;&gt;</code> - key: business unit name, value: list of affected item keys
8670
+
8671
+ | Param | Type | Description |
8672
+ | --- | --- | --- |
8673
+ | methodName | <code>&#x27;execute&#x27;</code> \| <code>&#x27;pause&#x27;</code> \| <code>&#x27;fixKeys&#x27;</code> | what to run |
8674
+ | businessUnit | <code>string</code> | name of BU |
8675
+ | [selectedType] | <code>TYPE.SupportedMetadataTypes</code> | limit to given metadata types |
8676
+ | [keys] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8677
+
8678
+ <a name="Mcdev."></a>
8679
+
8680
+ ## Mcdev.(methodName, cred, bu, [type], keyArr) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8681
+ helper for [Mcdev.#runMethod](Mcdev.#runMethod)
8682
+
8683
+ **Kind**: global function
8684
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - list of keys that were affected
8685
+
8686
+ | Param | Type | Description |
8687
+ | --- | --- | --- |
8688
+ | methodName | <code>&#x27;execute&#x27;</code> \| <code>&#x27;pause&#x27;</code> \| <code>&#x27;fixKeys&#x27;</code> | what to run |
8689
+ | cred | <code>string</code> | name of Credential |
8690
+ | bu | <code>string</code> | name of BU |
8691
+ | [type] | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8692
+ | keyArr | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8693
+
8694
+ <a name="Mcdev."></a>
8695
+
8696
+ ## Mcdev.(selectedType, buObject) ⇒ <code>Array.&lt;string&gt;</code>
8697
+ helper for [Mcdev.#runOnBU](Mcdev.#runOnBU)
8698
+
8699
+ **Kind**: global function
8700
+ **Returns**: <code>Array.&lt;string&gt;</code> - keyArr
8701
+
8702
+ | Param | Type | Description |
8703
+ | --- | --- | --- |
8704
+ | selectedType | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8705
+ | buObject | <code>TYPE.BuObject</code> | properties for auth |
8706
+
8707
+ <a name="Mcdev."></a>
8708
+
8709
+ ## Mcdev.(cred, bu, type, [keyArr]) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8710
+ Updates the key to match the name field
8711
+
8712
+ **Kind**: global function
8713
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - list of keys that were affected
8714
+
8715
+ | Param | Type | Description |
8716
+ | --- | --- | --- |
8717
+ | cred | <code>string</code> | name of Credential |
8718
+ | bu | <code>string</code> | name of BU |
8719
+ | type | <code>TYPE.SupportedMetadataTypes</code> | limit execution to given metadata type |
8720
+ | [keyArr] | <code>Array.&lt;string&gt;</code> | customerkey of the metadata |
8721
+
8722
+ <a name="Automation."></a>
8723
+
8724
+ ## Automation.(metadata) ⇒ <code>boolean</code>
8725
+ helper for [postRetrieveTasks](#Automation.postRetrieveTasks) and [execute](#Automation.execute)
8726
+
8727
+ **Kind**: global function
8728
+ **Returns**: <code>boolean</code> - true if the automation schedule is valid
8729
+
8730
+ | Param | Type | Description |
8731
+ | --- | --- | --- |
8732
+ | metadata | <code>TYPE.AutomationItem</code> | a single automation |
8733
+
8734
+ <a name="Automation."></a>
8735
+
8736
+ ## Automation.(metadataMap, key) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8737
+ helper for [execute](#Automation.execute)
8738
+
8739
+ **Kind**: global function
8740
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8741
+
8742
+ | Param | Type | Description |
8743
+ | --- | --- | --- |
8744
+ | metadataMap | <code>TYPE.AutomationMap</code> | map of metadata |
8745
+ | key | <code>string</code> | key of the metadata |
8746
+
8747
+ <a name="Automation."></a>
8748
+
8749
+ ## Automation.(metadataEntry) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8750
+ helper for [execute](#Automation.execute)
8751
+
8752
+ **Kind**: global function
8753
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8754
+
8755
+ | Param | Type | Description |
8756
+ | --- | --- | --- |
8757
+ | metadataEntry | <code>TYPE.AutomationItem</code> | metadata object |
8758
+
8759
+ <a name="Automation."></a>
8760
+
8761
+ ## Automation.(metadata) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8762
+ helper for [pause](#Automation.pause)
8763
+
8764
+ **Kind**: global function
8765
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8766
+
8767
+ | Param | Type | Description |
8768
+ | --- | --- | --- |
8769
+ | metadata | <code>TYPE.AutomationItem</code> | automation metadata |
8770
+
8771
+ <a name="Automation."></a>
8772
+
8773
+ ## Automation.(metadata)
8774
+ helper for [preDeployTasks](#Automation.preDeployTasks) and [execute](#Automation.execute)
8775
+
8776
+ **Kind**: global function
8777
+
8778
+ | Param | Type | Description |
8779
+ | --- | --- | --- |
8780
+ | metadata | <code>TYPE.AutomationItem</code> | metadata mapped by their keyField |
8781
+
8169
8782
  <a name="Automation."></a>
8170
8783
 
8171
8784
  ## Automation.(metadataMap, key) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -8181,16 +8794,122 @@ helper for [postDeployTasks](#Automation.postDeployTasks)
8181
8794
 
8182
8795
  <a name="Automation."></a>
8183
8796
 
8184
- ## Automation.(metadataMap, originalMetadataMap, key)
8185
- helper for [postDeployTasks](postDeployTasks)
8797
+ ## Automation.(metadataMap, originalMetadataMap, key, [oldKey]) ⇒ <code>Promise.&lt;{key:string, response:object}&gt;</code>
8798
+ helper for [postDeployTasks](#Automation.postDeployTasks)
8186
8799
 
8187
8800
  **Kind**: global function
8801
+ **Returns**: <code>Promise.&lt;{key:string, response:object}&gt;</code> - metadata key and API response
8188
8802
 
8189
8803
  | Param | Type | Description |
8190
8804
  | --- | --- | --- |
8191
8805
  | metadataMap | <code>TYPE.AutomationMap</code> | metadata mapped by their keyField |
8192
8806
  | originalMetadataMap | <code>TYPE.AutomationMap</code> | metadata to be updated (contains additioanl fields) |
8193
8807
  | key | <code>string</code> | current customer key |
8808
+ | [oldKey] | <code>string</code> | old customer key before fixKey / changeKeyValue / changeKeyField |
8809
+
8810
+ <a name="DataExtension."></a>
8811
+
8812
+ ## DataExtension.(upsertedMetadata, originalMetadata, createdUpdated) ⇒ <code>void</code>
8813
+ takes care of updating attribute groups on child BUs after an update to Shared DataExtensions
8814
+ helper for [postDeployTasks](#DataExtension.postDeployTasks)
8815
+ fixes an issue where shared data extensions are not visible in data designer on child BU; SF known issue: https://issues.salesforce.com/#q=W-11031095
8816
+
8817
+ **Kind**: global function
8818
+
8819
+ | Param | Type | Description |
8820
+ | --- | --- | --- |
8821
+ | upsertedMetadata | <code>TYPE.DataExtensionMap</code> | metadata mapped by their keyField |
8822
+ | originalMetadata | <code>TYPE.DataExtensionMap</code> | metadata to be updated (contains additioanl fields) |
8823
+ | createdUpdated | <code>Object</code> | counter representing successful creates/updates |
8824
+
8825
+ <a name="DataExtension."></a>
8826
+
8827
+ ## DataExtension.() ⇒ <code>Array.&lt;string&gt;</code>
8828
+ helper for [DataExtension.#fixShared](DataExtension.#fixShared)
8829
+
8830
+ **Kind**: global function
8831
+ **Returns**: <code>Array.&lt;string&gt;</code> - list of selected BU names
8832
+ <a name="DataExtension."></a>
8833
+
8834
+ ## DataExtension.(childBuName, buObjectParent, clientParent, sharedDataExtensionMap) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
8835
+ helper for [DataExtension.#fixShared](DataExtension.#fixShared)
8836
+
8837
+ **Kind**: global function
8838
+ **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - updated shared DE keys on BU
8839
+
8840
+ | Param | Type | Description |
8841
+ | --- | --- | --- |
8842
+ | childBuName | <code>string</code> | name of child BU to fix |
8843
+ | buObjectParent | <code>TYPE.BuObject</code> | bu object for parent BU |
8844
+ | clientParent | <code>object</code> | SDK for parent BU |
8845
+ | sharedDataExtensionMap | <code>Object.&lt;string, string&gt;</code> | ID-Key relationship of shared data extensions |
8846
+
8847
+ <a name="DataExtension."></a>
8848
+
8849
+ ## DataExtension.(deId, deKey, buObjectChildBu, clientChildBu, buObjectParent, clientParent) ⇒ <code>Promise.&lt;boolean&gt;</code>
8850
+ method that actually takes care of triggering the update for a particular BU-sharedDe combo
8851
+ helper for [DataExtension.#fixShared_onBU](DataExtension.#fixShared_onBU)
8852
+
8853
+ **Kind**: global function
8854
+ **Returns**: <code>Promise.&lt;boolean&gt;</code> - flag that signals if the fix was successful
8855
+
8856
+ | Param | Type | Description |
8857
+ | --- | --- | --- |
8858
+ | deId | <code>string</code> | data extension ObjectID |
8859
+ | deKey | <code>string</code> | dataExtension key |
8860
+ | buObjectChildBu | <code>TYPE.BuObject</code> | BU object for Child BU |
8861
+ | clientChildBu | <code>object</code> | SDK for child BU |
8862
+ | buObjectParent | <code>TYPE.BuObject</code> | BU object for Parent BU |
8863
+ | clientParent | <code>object</code> | SDK for parent BU |
8864
+
8865
+ <a name="DataExtension."></a>
8866
+
8867
+ ## DataExtension.(buObjectChildBu, clientChildBu, deKey, deId) ⇒ <code>Promise.&lt;string&gt;</code>
8868
+ add a new field to the shared DE to trigger an update to the data model
8869
+ helper for [DataExtension.#fixShared_item](DataExtension.#fixShared_item)
8870
+
8871
+ **Kind**: global function
8872
+ **Returns**: <code>Promise.&lt;string&gt;</code> - randomSuffix
8873
+
8874
+ | Param | Type | Description |
8875
+ | --- | --- | --- |
8876
+ | buObjectChildBu | <code>TYPE.BuObject</code> | BU object for Child BU |
8877
+ | clientChildBu | <code>object</code> | SDK for child BU |
8878
+ | deKey | <code>string</code> | dataExtension key |
8879
+ | deId | <code>string</code> | dataExtension ObjectID |
8880
+
8881
+ <a name="DataExtension."></a>
8882
+
8883
+ ## DataExtension.(randomSuffix, buObjectParent, clientParent, deKey) ⇒ <code>Promise.&lt;string&gt;</code>
8884
+ get ID of the field added by [DataExtension.#fixShared_item_addField](DataExtension.#fixShared_item_addField) on the shared DE via parent BU
8885
+ helper for [DataExtension.#fixShared_item](DataExtension.#fixShared_item)
8886
+
8887
+ **Kind**: global function
8888
+ **Returns**: <code>Promise.&lt;string&gt;</code> - fieldObjectID
8889
+
8890
+ | Param | Type | Description |
8891
+ | --- | --- | --- |
8892
+ | randomSuffix | <code>string</code> | - |
8893
+ | buObjectParent | <code>TYPE.BuObject</code> | BU object for Parent BU |
8894
+ | clientParent | <code>object</code> | SDK for parent BU |
8895
+ | deKey | <code>string</code> | dataExtension key |
8896
+
8897
+ <a name="DataExtension."></a>
8898
+
8899
+ ## DataExtension.(randomSuffix, buObjectChildBu, clientChildBu, deKey, fieldObjectID) ⇒ <code>Promise</code>
8900
+ delete the field added by [DataExtension.#fixShared_item_addField](DataExtension.#fixShared_item_addField)
8901
+ helper for [DataExtension.#fixShared_item](DataExtension.#fixShared_item)
8902
+
8903
+ **Kind**: global function
8904
+ **Returns**: <code>Promise</code> - -
8905
+
8906
+ | Param | Type | Description |
8907
+ | --- | --- | --- |
8908
+ | randomSuffix | <code>string</code> | - |
8909
+ | buObjectChildBu | <code>TYPE.BuObject</code> | BU object for Child BU |
8910
+ | clientChildBu | <code>object</code> | SDK for child BU |
8911
+ | deKey | <code>string</code> | dataExtension key |
8912
+ | fieldObjectID | <code>string</code> | field ObjectID |
8194
8913
 
8195
8914
  <a name="getUserName"></a>
8196
8915
 
@@ -8527,6 +9246,25 @@ SOAP format
8527
9246
  | r__folder_Path | <code>string</code> | folder path |
8528
9247
  | [categoryId] | <code>string</code> | holds folder ID, replaced with r__folder_Path during retrieve |
8529
9248
 
9249
+ <a name="VerificationItem"></a>
9250
+
9251
+ ## VerificationItem : <code>object</code>
9252
+ **Kind**: global typedef
9253
+ **Properties**
9254
+
9255
+ | Name | Type | Description |
9256
+ | --- | --- | --- |
9257
+ | dataVerificationDefinitionId | <code>string</code> | ID / Key |
9258
+ | verificationType | <code>&#x27;IsEqualTo&#x27;</code> \| <code>&#x27;IsLessThan&#x27;</code> \| <code>&#x27;IsGreaterThan&#x27;</code> \| <code>&#x27;IsOutsideRange&#x27;</code> \| <code>&#x27;IsInsideRange&#x27;</code> \| <code>&#x27;IsNotEqualTo&#x27;</code> \| <code>&#x27;IsNotLessThan&#x27;</code> \| <code>&#x27;IsNotGreaterThan&#x27;</code> \| <code>&#x27;IsNotOutsideRange&#x27;</code> \| <code>&#x27;IsNotInsideRange&#x27;</code> | key |
9259
+ | value1 | <code>number</code> | used for all verificationTypes; lower value for IsOutsideRange, IsInsideRange, IsNotOutsideRange, IsNotInsideRange |
9260
+ | value2 | <code>number</code> | only used for IsOutsideRange, IsInsideRange, IsNotOutsideRange, IsNotInsideRange; otherwise set to 0 |
9261
+ | shouldStopOnFailure | <code>boolean</code> | flag to stop automation if verification fails |
9262
+ | shouldEmailOnFailure | <code>boolean</code> | flag to send email if verification fails |
9263
+ | notificationEmailAddress | <code>string</code> | email address to send notification to; empty string if shouldEmailOnFailure=false |
9264
+ | notificationEmailMessage | <code>string</code> | email message to send; empty string if shouldEmailOnFailure=false |
9265
+ | createdBy | <code>number</code> | user id of creator |
9266
+ | r__dataExtension_CustomerKey | <code>string</code> | key of target data extension |
9267
+
8530
9268
  <a name="SDK"></a>
8531
9269
 
8532
9270
  ## SDK : <code>Object.&lt;string, AutomationItem&gt;</code>