mcdev 4.3.4 → 5.0.1

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 (228) hide show
  1. package/.coverage-comment-template.md +20 -0
  2. package/.coverage-comment-template.svelte +178 -0
  3. package/.eslintrc.json +2 -0
  4. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  5. package/.github/workflows/code-test.yml +36 -0
  6. package/.github/workflows/coverage-base-update.yml +57 -0
  7. package/.github/workflows/coverage-develop-branch.yml +41 -0
  8. package/.github/workflows/coverage-main-branch.yml +41 -0
  9. package/.github/workflows/coverage.yml +77 -0
  10. package/.husky/post-checkout +1 -1
  11. package/.prettierrc +1 -1
  12. package/.vscode/extensions.json +0 -4
  13. package/README.md +1 -1
  14. package/boilerplate/config.json +1 -1
  15. package/boilerplate/files/.prettierrc +1 -1
  16. package/boilerplate/files/.vscode/extensions.json +1 -1
  17. package/boilerplate/forcedUpdates.json +4 -0
  18. package/docs/dist/documentation.md +1196 -430
  19. package/lib/Builder.js +6 -1
  20. package/lib/Deployer.js +30 -5
  21. package/lib/MetadataTypeDefinitions.js +8 -6
  22. package/lib/MetadataTypeInfo.js +8 -6
  23. package/lib/cli.js +54 -42
  24. package/lib/index.js +82 -8
  25. package/lib/metadataTypes/Asset.js +73 -1
  26. package/lib/metadataTypes/AttributeGroup.js +0 -1
  27. package/lib/metadataTypes/Automation.js +48 -5
  28. package/lib/metadataTypes/Campaign.js +20 -7
  29. package/lib/metadataTypes/ContentArea.js +1 -1
  30. package/lib/metadataTypes/DataExtension.js +221 -184
  31. package/lib/metadataTypes/DataExtensionField.js +12 -19
  32. package/lib/metadataTypes/DataExtensionTemplate.js +1 -1
  33. package/lib/metadataTypes/DataExtract.js +1 -1
  34. package/lib/metadataTypes/DataExtractType.js +1 -1
  35. package/lib/metadataTypes/Email.js +1 -1
  36. package/lib/metadataTypes/{EmailSendDefinition.js → EmailSend.js} +5 -5
  37. package/lib/metadataTypes/{EventDefinition.js → Event.js} +17 -35
  38. package/lib/metadataTypes/{FtpLocation.js → FileLocation.js} +2 -2
  39. package/lib/metadataTypes/FileTransfer.js +8 -7
  40. package/lib/metadataTypes/Filter.js +1 -1
  41. package/lib/metadataTypes/Folder.js +8 -3
  42. package/lib/metadataTypes/ImportFile.js +6 -6
  43. package/lib/metadataTypes/{Interaction.js → Journey.js} +311 -147
  44. package/lib/metadataTypes/List.js +2 -2
  45. package/lib/metadataTypes/MetadataType.js +318 -90
  46. package/lib/metadataTypes/MobileCode.js +0 -1
  47. package/lib/metadataTypes/MobileKeyword.js +336 -40
  48. package/lib/metadataTypes/MobileMessage.js +473 -0
  49. package/lib/metadataTypes/Query.js +114 -32
  50. package/lib/metadataTypes/Role.js +60 -21
  51. package/lib/metadataTypes/Script.js +2 -3
  52. package/lib/metadataTypes/SendClassification.js +40 -0
  53. package/lib/metadataTypes/SetDefinition.js +1 -7
  54. package/lib/metadataTypes/TransactionalEmail.js +2 -3
  55. package/lib/metadataTypes/TransactionalMessage.js +1 -2
  56. package/lib/metadataTypes/TransactionalSMS.js +8 -15
  57. package/lib/metadataTypes/{TriggeredSendDefinition.js → TriggeredSend.js} +35 -27
  58. package/lib/metadataTypes/User.js +1185 -0
  59. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  60. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +1 -0
  61. package/lib/metadataTypes/definitions/Automation.definition.js +3 -2
  62. package/lib/metadataTypes/definitions/Campaign.definition.js +79 -4
  63. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -0
  64. package/lib/metadataTypes/definitions/DataExtension.definition.js +2 -1
  65. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -0
  66. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -0
  67. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
  68. package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -0
  69. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -0
  70. package/lib/metadataTypes/definitions/Email.definition.js +1 -0
  71. package/lib/metadataTypes/definitions/{EmailSendDefinition.definition.js → EmailSend.definition.js} +4 -2
  72. package/lib/metadataTypes/definitions/{EventDefinition.definition.js → Event.definition.js} +2 -1
  73. package/lib/metadataTypes/definitions/{FtpLocation.definition.js → FileLocation.definition.js} +4 -3
  74. package/lib/metadataTypes/definitions/FileTransfer.definition.js +3 -2
  75. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  76. package/lib/metadataTypes/definitions/Folder.definition.js +2 -0
  77. package/lib/metadataTypes/definitions/ImportFile.definition.js +4 -3
  78. package/lib/metadataTypes/definitions/{Interaction.definition.js → Journey.definition.js} +11 -2
  79. package/lib/metadataTypes/definitions/List.definition.js +1 -0
  80. package/lib/metadataTypes/definitions/MobileCode.definition.js +3 -1
  81. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +27 -17
  82. package/lib/metadataTypes/definitions/MobileMessage.definition.js +743 -0
  83. package/lib/metadataTypes/definitions/Query.definition.js +3 -2
  84. package/lib/metadataTypes/definitions/Role.definition.js +5 -0
  85. package/lib/metadataTypes/definitions/Script.definition.js +1 -0
  86. package/lib/metadataTypes/definitions/SendClassification.definition.js +114 -0
  87. package/lib/metadataTypes/definitions/SetDefinition.definition.js +1 -0
  88. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +2 -1
  89. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +1 -0
  90. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +1 -0
  91. package/lib/metadataTypes/definitions/{TriggeredSendDefinition.definition.js → TriggeredSend.definition.js} +5 -3
  92. package/lib/metadataTypes/definitions/User.definition.js +365 -0
  93. package/lib/retrieveChangelog.js +1 -2
  94. package/lib/util/auth.js +38 -9
  95. package/lib/util/businessUnit.js +3 -3
  96. package/lib/util/cli.js +55 -7
  97. package/lib/util/devops.js +6 -4
  98. package/lib/util/file.js +55 -13
  99. package/lib/util/init.config.js +1 -2
  100. package/lib/util/init.npm.js +3 -3
  101. package/lib/util/util.js +23 -14
  102. package/package.json +16 -15
  103. package/test/general.test.js +62 -0
  104. package/test/mockRoot/.mcdevrc.json +7 -5
  105. package/test/mockRoot/deploy/testInstance/_ParentBU_/user/testBlocked_user.user-meta.json +23 -0
  106. package/test/mockRoot/deploy/testInstance/_ParentBU_/user/testExisting_user.user-meta.json +31 -0
  107. package/test/mockRoot/deploy/testInstance/_ParentBU_/user/testNew_user.user-meta.json +27 -0
  108. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/{childBU_dataextension_test.dataExtension-meta.json → testExisting_dataExtension.dataExtension-meta.json} +2 -2
  109. package/test/mockRoot/deploy/testInstance/testBU/dataExtension/{testDataExtension.dataExtension-meta.json → testNew_dataExtension.dataExtension-meta.json} +2 -2
  110. package/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_interaction.interaction-meta.json +576 -0
  111. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword.mobileKeyword-meta.amp +2 -0
  112. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword.mobileKeyword-meta.json +10 -0
  113. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword_blocked.mobileKeyword-meta.amp +2 -0
  114. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/testNew_keyword_blocked.mobileKeyword-meta.json +10 -0
  115. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.amp +1 -0
  116. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/NTIzOjc4OjA.mobileMessage-meta.json +61 -0
  117. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.amp +1 -0
  118. package/test/mockRoot/deploy/testInstance/testBU/mobileMessage/new.mobileMessage-meta.json +60 -0
  119. package/test/mockRoot/deploy/testInstance/testBU/query/testExistingQuery.query-meta.json +1 -1
  120. package/test/mockRoot/deploy/testInstance/testBU/query/testNewQuery.query-meta.json +1 -1
  121. package/test/mockRoot/deploy/testInstance/testBU/query/testNewQuery.query-meta.sql +1 -1
  122. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +1 -1
  123. package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -1
  124. package/test/resourceFactory.js +13 -0
  125. package/test/resources/1111111/accountUser/configure-response.xml +70 -0
  126. package/test/resources/1111111/accountUser/create-response.xml +97 -0
  127. package/test/resources/1111111/accountUser/retrieve-response.xml +156 -0
  128. package/test/resources/1111111/accountUser/update-response.xml +111 -0
  129. package/test/resources/1111111/accountUserAccount/retrieve-response.xml +77 -0
  130. package/test/resources/1111111/platform/v1/setup/quickflow/data/get-response.json +455 -0
  131. package/test/resources/1111111/role/retrieve-response.xml +76 -0
  132. package/test/resources/1111111/user/build-expected.json +16 -0
  133. package/test/resources/1111111/user/create-expected.json +21 -0
  134. package/test/resources/1111111/user/retrieve-expected.json +24 -0
  135. package/test/resources/1111111/user/template-expected.json +16 -0
  136. package/test/resources/1111111/user/update-expected.json +21 -0
  137. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/delete-response.json +1 -0
  138. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +17 -0
  139. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +3 -3
  140. package/test/resources/9999999/automation/v1/queries/get-response.json +21 -4
  141. package/test/resources/9999999/automation/v1/queries/post-response.json +4 -4
  142. package/test/resources/9999999/data/v1/customobjectdata/key/{childBU_dataextension_test → testExisting_dataExtension}/rowset/get-response.json +1 -1
  143. package/test/resources/9999999/dataExtension/build-expected.json +3 -3
  144. package/test/resources/9999999/dataExtension/create-expected.json +2 -2
  145. package/test/resources/9999999/dataExtension/create-response.xml +8 -3
  146. package/test/resources/9999999/dataExtension/retrieve-expected.json +3 -3
  147. package/test/resources/9999999/dataExtension/retrieve-response.xml +9 -4
  148. package/test/resources/9999999/dataExtension/template-expected.json +3 -3
  149. package/test/resources/9999999/dataExtension/update-expected.json +3 -3
  150. package/test/resources/9999999/dataExtension/update-response.xml +9 -4
  151. package/test/resources/9999999/dataExtensionField/retrieve-response.xml +14 -9
  152. package/test/resources/9999999/interaction/v1/interactions/get-response.json +312 -0
  153. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/get-response.json +312 -0
  154. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_interaction/put-response.json +592 -0
  155. package/test/resources/9999999/journey/build-expected.json +572 -0
  156. package/test/resources/9999999/journey/get-expected.json +576 -0
  157. package/test/resources/9999999/journey/put-expected.json +576 -0
  158. package/test/resources/9999999/journey/template-expected.json +572 -0
  159. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/NXV4ZFMwTEFwRVczd3RaLUF5X3p5dzo4Njow/get-response.json +42 -0
  160. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/cTVJaG5oSDJPVUNHcUh6Z3pQT2tVdzo4Njow/delete-response.json +0 -0
  161. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +1 -0
  162. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/post-response.json +3 -0
  163. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/delete-response.json +0 -0
  164. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/get-response.json +106 -0
  165. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/post-response.json +0 -0
  166. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTQ3Ojc4OjA/get-response.json +127 -0
  167. package/test/resources/9999999/legacy/v1/beta/mobile/message/get-response.json +129 -0
  168. package/test/resources/9999999/legacy/v1/beta/mobile/message/post-response.json +3 -0
  169. package/test/resources/9999999/legacy/v1/beta2/data/campaign/get-response.json +29 -0
  170. package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
  171. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +1 -1
  172. package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +1 -1
  173. package/test/resources/9999999/mobileKeyword/build-expected.amp +2 -0
  174. package/test/resources/9999999/mobileKeyword/build-expected.json +9 -0
  175. package/test/resources/9999999/mobileKeyword/get-expected.amp +2 -0
  176. package/test/resources/9999999/mobileKeyword/get-expected.json +15 -0
  177. package/test/resources/9999999/mobileKeyword/post-create-expected.amp +2 -0
  178. package/test/resources/9999999/mobileKeyword/post-create-expected.json +17 -0
  179. package/test/resources/9999999/mobileKeyword/template-expected.amp +2 -0
  180. package/test/resources/9999999/mobileKeyword/template-expected.json +9 -0
  181. package/test/resources/9999999/mobileMessage/build-expected.amp +1 -0
  182. package/test/resources/9999999/mobileMessage/build-expected.json +60 -0
  183. package/test/resources/9999999/mobileMessage/get-expected.amp +1 -0
  184. package/test/resources/9999999/mobileMessage/get-expected.json +61 -0
  185. package/test/resources/9999999/mobileMessage/post-create-expected.amp +1 -0
  186. package/test/resources/9999999/mobileMessage/post-create-expected.json +63 -0
  187. package/test/resources/9999999/mobileMessage/post-update-expected.amp +1 -0
  188. package/test/resources/9999999/mobileMessage/post-update-expected.json +61 -0
  189. package/test/resources/9999999/mobileMessage/template-expected.amp +1 -0
  190. package/test/resources/9999999/mobileMessage/template-expected.json +60 -0
  191. package/test/resources/9999999/query/build-expected.json +1 -1
  192. package/test/resources/9999999/query/get-expected.json +1 -1
  193. package/test/resources/9999999/query/get2-expected.json +11 -0
  194. package/test/resources/9999999/query/patch-expected.json +1 -1
  195. package/test/resources/9999999/query/post-expected.json +1 -1
  196. package/test/resources/9999999/query/template-expected.json +1 -1
  197. package/test/resources/9999999/queryDefinition/retrieve-response.xml +30 -0
  198. package/test/resources/9999999/transactionalEmail/build-expected.json +5 -5
  199. package/test/resources/9999999/transactionalEmail/get-expected.json +1 -1
  200. package/test/resources/9999999/transactionalEmail/patch-expected.json +1 -1
  201. package/test/resources/9999999/transactionalEmail/post-expected.json +1 -1
  202. package/test/resources/9999999/transactionalEmail/template-expected.json +5 -5
  203. package/test/resources/9999999/transactionalPush/build-expected.json +2 -2
  204. package/test/resources/9999999/transactionalPush/template-expected.json +2 -2
  205. package/test/resources/9999999/transactionalSMS/build-expected.json +3 -3
  206. package/test/resources/9999999/transactionalSMS/template-expected.json +3 -3
  207. package/test/{dataExtension.test.js → type.dataExtension.test.js} +78 -21
  208. package/test/{interaction.test.js → type.journey.test.js} +64 -30
  209. package/test/type.mobileKeyword.test.js +250 -0
  210. package/test/type.mobileMessage.test.js +205 -0
  211. package/test/{query.test.js → type.query.test.js} +102 -5
  212. package/test/{transactionalEmail.test.js → type.transactionalEmail.test.js} +40 -2
  213. package/test/{transactionalPush.test.js → type.transactionalPush.test.js} +41 -2
  214. package/test/{transactionalSMS.test.js → type.transactionalSMS.test.js} +73 -3
  215. package/test/type.user.test.js +160 -0
  216. package/test/utils.js +17 -5
  217. package/types/mcdev.d.js +48 -15
  218. package/.github/workflows/code-analysis.yml +0 -57
  219. package/lib/metadataTypes/AccountUser.js +0 -426
  220. package/lib/metadataTypes/definitions/AccountUser.definition.js +0 -227
  221. package/test/mockRoot/deploy/testInstance/testBU/interaction/testExisting_interaction.interaction-meta.json +0 -266
  222. package/test/resources/9999999/interaction/build-expected.json +0 -260
  223. package/test/resources/9999999/interaction/get-expected.json +0 -264
  224. package/test/resources/9999999/interaction/put-expected.json +0 -264
  225. package/test/resources/9999999/interaction/template-expected.json +0 -260
  226. package/test/resources/9999999/interaction/v1/interactions/put-response.json +0 -280
  227. /package/test/mockRoot/deploy/testInstance/testBU/{interaction → journey}/testNew_interaction.interaction-meta.json +0 -0
  228. /package/test/resources/9999999/{interaction → journey}/post-expected.json +0 -0
@@ -5,6 +5,7 @@ module.exports = {
5
5
  folderType: 'asset',
6
6
  hasExtended: false,
7
7
  idField: 'id',
8
+ keyIsFixed: false,
8
9
  keyField: 'customerKey',
9
10
  nameField: 'name',
10
11
  createdDateField: 'createdDate',
@@ -3,6 +3,7 @@ module.exports = {
3
3
  dependencies: [], // future may have dependency on Data Extensions
4
4
  hasExtended: false,
5
5
  idField: 'definitionID',
6
+ keyIsFixed: null,
6
7
  keyField: 'definitionKey',
7
8
  nameField: 'definitionName.value',
8
9
  restPagination: false,
@@ -2,7 +2,7 @@ module.exports = {
2
2
  activityTypeMapping: {
3
3
  dataExtract: 73,
4
4
  dataFactoryUtility: 425,
5
- emailSendDefinition: 42,
5
+ emailSend: 42,
6
6
  fileTransfer: 53,
7
7
  filter: 303,
8
8
  fireEvent: 749,
@@ -25,7 +25,7 @@ module.exports = {
25
25
  bodyIteratorField: 'items',
26
26
  dependencies: [
27
27
  'dataExtract',
28
- 'emailSendDefinition',
28
+ 'emailSend',
29
29
  'fileTransfer',
30
30
  'folder-automations',
31
31
  'importFile',
@@ -38,6 +38,7 @@ module.exports = {
38
38
  description: ['Event Definition Automation'],
39
39
  },
40
40
  idField: 'id',
41
+ keyIsFixed: false,
41
42
  keyField: 'key',
42
43
  nameField: 'name',
43
44
  folderIdField: 'categoryId',
@@ -1,23 +1,65 @@
1
1
  module.exports = {
2
- bodyIteratorField: 'items',
2
+ bodyIteratorField: 'entry',
3
3
  dependencies: [],
4
4
  hasExtended: false,
5
5
  idField: 'id',
6
+ keepId: true,
7
+ keyIsFixed: null,
6
8
  keyField: 'name',
7
9
  nameField: 'name',
10
+ createdDateField: 'createdDate',
11
+ createdNameField: null,
12
+ lastmodDateField: 'lastUpdated',
13
+ lastmodNameField: null,
8
14
  restPagination: true,
15
+ restPageSize: 50,
9
16
  type: 'campaign',
10
17
  typeDescription: 'Way of tagging/categorizing emails, journeys and alike.',
11
18
  typeRetrieveByDefault: false,
12
19
  typeName: 'Campaign Tag',
13
20
  fields: {
21
+ id: {
22
+ // alphanumeric string
23
+ isCreateable: false,
24
+ isUpdateable: false,
25
+ retrieving: true,
26
+ templating: false,
27
+ },
28
+ campaignId: {
29
+ // numeric
30
+ isCreateable: false,
31
+ isUpdateable: false,
32
+ retrieving: false,
33
+ templating: false,
34
+ },
35
+ type: {
36
+ // always set to "Campaign"
37
+ isCreateable: false,
38
+ isUpdateable: false,
39
+ retrieving: false,
40
+ templating: false,
41
+ },
14
42
  createdDate: {
15
43
  isCreateable: false,
16
44
  isUpdateable: false,
17
45
  retrieving: true,
18
46
  templating: false,
19
47
  },
20
- modifiedDate: {
48
+ createdBy: {
49
+ // returns https://mc....rest.marketingcloudapis.com/legacy/v1/beta/organization/user/Nzc1MTU2ODo0OjA
50
+ isCreateable: false,
51
+ isUpdateable: false,
52
+ retrieving: false,
53
+ templating: false,
54
+ },
55
+ ownerId: {
56
+ // returns https://mc....rest.marketingcloudapis.com/legacy/v1/beta/organization/user/Nzc1MTU2ODo0OjA
57
+ isCreateable: false,
58
+ isUpdateable: false,
59
+ retrieving: false,
60
+ templating: false,
61
+ },
62
+ lastUpdated: {
21
63
  isCreateable: false,
22
64
  isUpdateable: false,
23
65
  retrieving: true,
@@ -35,19 +77,52 @@ module.exports = {
35
77
  retrieving: true,
36
78
  templating: false,
37
79
  },
80
+ externalKey: {
81
+ // can be empty - should use "name" instead as key
82
+ isCreateable: false,
83
+ isUpdateable: false,
84
+ retrieving: true,
85
+ templating: false,
86
+ },
38
87
  campaignCode: {
88
+ // always empty string; real value is in field "externalKey"
89
+ isCreateable: false,
90
+ isUpdateable: false,
91
+ retrieving: false,
92
+ templating: false,
93
+ },
94
+ 'display.name': {
95
+ isCreateable: false,
96
+ isUpdateable: false,
97
+ retrieving: true,
98
+ templating: false,
99
+ },
100
+ 'display.value': {
39
101
  isCreateable: false,
40
102
  isUpdateable: false,
41
103
  retrieving: true,
42
104
  templating: false,
43
105
  },
44
- color: {
106
+ isFavorite: {
45
107
  isCreateable: false,
46
108
  isUpdateable: false,
47
109
  retrieving: true,
48
110
  templating: false,
49
111
  },
50
- favorite: {
112
+ campaignOwnerName: {
113
+ isCreateable: false,
114
+ isUpdateable: false,
115
+ retrieving: true,
116
+ templating: false,
117
+ },
118
+ campaignOwner: {
119
+ // value like "MDo0OjE"
120
+ isCreateable: false,
121
+ isUpdateable: false,
122
+ retrieving: false,
123
+ templating: false,
124
+ },
125
+ campaignStatus: {
51
126
  isCreateable: false,
52
127
  isUpdateable: false,
53
128
  retrieving: true,
@@ -4,6 +4,7 @@ module.exports = {
4
4
  hasExtended: false,
5
5
  idField: 'ID',
6
6
  keepId: true,
7
+ keyIsFixed: null,
7
8
  keyField: 'CustomerKey',
8
9
  nameField: 'Name',
9
10
  folderIdField: 'CategoryID',
@@ -87,6 +87,7 @@ module.exports = {
87
87
  },
88
88
  hasExtended: false,
89
89
  idField: 'ObjectID',
90
+ keyIsFixed: false,
90
91
  keyField: 'CustomerKey',
91
92
  nameField: 'Name',
92
93
  folderIdField: 'CategoryID',
@@ -192,7 +193,7 @@ module.exports = {
192
193
  },
193
194
  ObjectID: {
194
195
  isCreateable: false,
195
- isUpdateable: false,
196
+ isUpdateable: true,
196
197
  retrieving: true,
197
198
  template: false,
198
199
  },
@@ -4,6 +4,7 @@ module.exports = {
4
4
  filter: {},
5
5
  hasExtended: false,
6
6
  idField: 'ObjectID',
7
+ keyIsFixed: true, // renamed via name_new on dataExtension update
7
8
  keyField: 'CustomerKey',
8
9
  nameField: 'Name',
9
10
  restPagination: false,
@@ -4,6 +4,7 @@ module.exports = {
4
4
  filter: {},
5
5
  hasExtended: false,
6
6
  idField: 'ObjectID',
7
+ keyIsFixed: null,
7
8
  keyField: 'CustomerKey',
8
9
  nameField: 'Name',
9
10
  restPagination: false,
@@ -3,6 +3,7 @@ module.exports = {
3
3
  dependencies: ['dataExtension', 'dataExtractType'],
4
4
  hasExtended: true,
5
5
  idField: 'dataExtractDefinitionId',
6
+ keyIsFixed: false,
6
7
  keyField: 'key',
7
8
  createdDateField: 'createdDate',
8
9
  createdNameField: 'createdBy',
@@ -3,6 +3,7 @@ module.exports = {
3
3
  dependencies: [],
4
4
  hasExtended: false,
5
5
  idField: 'extractId',
6
+ keyIsFixed: null,
6
7
  keyField: 'name',
7
8
  nameField: 'name',
8
9
  restPagination: false,
@@ -26,6 +26,7 @@ module.exports = {
26
26
  },
27
27
  hasExtended: false,
28
28
  idField: '',
29
+ keyIsFixed: null,
29
30
  keyField: 'key',
30
31
  nameField: 'name',
31
32
  restPagination: false,
@@ -4,6 +4,7 @@ module.exports = {
4
4
  hasExtended: false,
5
5
  idField: 'ID',
6
6
  keepId: true,
7
+ keyIsFixed: null,
7
8
  keyField: 'CustomerKey',
8
9
  nameField: 'Name',
9
10
  folderIdField: 'CategoryID',
@@ -5,6 +5,7 @@ module.exports = {
5
5
  hasExtended: false,
6
6
  idField: 'ObjectID',
7
7
  keepId: true,
8
+ keyIsFixed: false,
8
9
  keyField: 'CustomerKey',
9
10
  nameField: 'Name',
10
11
  folderIdField: 'CategoryID',
@@ -13,7 +14,8 @@ module.exports = {
13
14
  lastmodDateField: 'ModifiedDate',
14
15
  lastmodNameField: null,
15
16
  restPagination: null,
16
- type: 'emailSendDefinition',
17
+ type: 'emailSend',
18
+ soapType: 'emailSendDefinition',
17
19
  typeDescription: 'Mainly used in Automations as "Send Email Activity".',
18
20
  typeRetrieveByDefault: true,
19
21
  typeName: 'E-Mail Send Definition',
@@ -326,7 +328,7 @@ module.exports = {
326
328
  },
327
329
  ObjectID: {
328
330
  isCreateable: false,
329
- isUpdateable: false,
331
+ isUpdateable: true,
330
332
  retrieving: false,
331
333
  templating: false,
332
334
  },
@@ -3,6 +3,7 @@ module.exports = {
3
3
  dependencies: ['dataExtension'],
4
4
  hasExtended: false,
5
5
  idField: 'id',
6
+ keyIsFixed: false,
6
7
  keyField: 'eventDefinitionKey',
7
8
  nameField: 'name',
8
9
  createdDateField: 'createdDate',
@@ -10,7 +11,7 @@ module.exports = {
10
11
  lastmodDateField: 'modifiedDate',
11
12
  lastmodNameField: 'modifiedBy',
12
13
  restPagination: true,
13
- type: 'eventDefinition',
14
+ type: 'event',
14
15
  typeDescription: 'Used in Journeys (Interactions) to define Entry Events.',
15
16
  typeRetrieveByDefault: true,
16
17
  typeName: 'Journey: Entry Event Definition',
@@ -3,6 +3,7 @@ module.exports = {
3
3
  dependencies: [],
4
4
  hasExtended: false,
5
5
  idField: 'id',
6
+ keyIsFixed: null,
6
7
  keyField: 'name',
7
8
  nameField: 'name',
8
9
  createdDateField: null,
@@ -10,11 +11,11 @@ module.exports = {
10
11
  lastmodDateField: null,
11
12
  lastmodNameField: null,
12
13
  restPagination: false,
13
- type: 'ftpLocation',
14
+ type: 'fileLocation',
14
15
  typeDescription:
15
- 'A File Location which can be used for export or import of files to/from Marketing Cloud.',
16
+ 'Used for export or import of files to/from Marketing Cloud. Previously this was labeled ftpLocation.',
16
17
  typeRetrieveByDefault: true,
17
- typeName: 'FTP Location',
18
+ typeName: 'File Location',
18
19
  fields: {
19
20
  id: {
20
21
  isCreateable: false,
@@ -1,8 +1,9 @@
1
1
  module.exports = {
2
2
  bodyIteratorField: 'items',
3
- dependencies: ['ftpLocation'],
3
+ dependencies: ['fileLocation'],
4
4
  hasExtended: true,
5
5
  idField: 'id',
6
+ keyIsFixed: false,
6
7
  keyField: 'customerKey',
7
8
  nameField: 'name',
8
9
  createdDateField: 'createdDate',
@@ -118,6 +119,6 @@ module.exports = {
118
119
  retrieving: true,
119
120
  template: true,
120
121
  },
121
- r__ftpLocation_name: { skipValidation: true },
122
+ r__fileLocation_name: { skipValidation: true },
122
123
  },
123
124
  };
@@ -3,6 +3,7 @@ module.exports = {
3
3
  dependencies: [],
4
4
  hasExtended: false,
5
5
  idField: 'id',
6
+ keyIsFixed: null,
6
7
  keyField: 'customerKey',
7
8
  nameField: 'name',
8
9
  createdDateField: 'createdDate',
@@ -72,10 +72,12 @@ module.exports = {
72
72
  hasExtended: false,
73
73
  idField: 'ID',
74
74
  keepId: true,
75
+ keyIsFixed: true,
75
76
  keyField: 'CustomerKey',
76
77
  nameField: 'Name',
77
78
  restPagination: false,
78
79
  type: 'folder',
80
+ soapType: 'DataFolder',
79
81
  typeDescription: 'Used to structure all kinds of other metadata.',
80
82
  typeRetrieveByDefault: false,
81
83
  typeName: 'Folder',
@@ -1,6 +1,6 @@
1
1
  module.exports = {
2
2
  bodyIteratorField: 'items',
3
- dependencies: ['ftpLocation', 'dataExtension', 'list'],
3
+ dependencies: ['fileLocation', 'dataExtension', 'list'],
4
4
  destinationObjectTypeMapping: {
5
5
  unknown: 783,
6
6
  DataExtension: 310,
@@ -10,13 +10,14 @@ module.exports = {
10
10
  },
11
11
  hasExtended: false,
12
12
  idField: 'importDefinitionId',
13
+ keyIsFixed: false,
13
14
  keyField: 'customerKey',
14
15
  nameField: 'name',
15
16
  createdDateField: 'createdDate',
16
17
  createdNameField: null,
17
18
  lastmodDateField: 'modifiedDate',
18
19
  lastmodNameField: null,
19
- restPagination: false,
20
+ restPagination: true,
20
21
  subscriberImportTypeMapping: {
21
22
  DataExtension: 255,
22
23
  Email: 0,
@@ -224,7 +225,7 @@ module.exports = {
224
225
  r__dataExtension_CustomerKey: { skipValidation: true },
225
226
  c__destinationType: { skipValidation: true },
226
227
  r__list_PathName: { skipValidation: true },
227
- r__ftpLocation_name: { skipValidation: true },
228
+ r__fileLocation_name: { skipValidation: true },
228
229
  c__subscriberImportType: { skipValidation: true },
229
230
  },
230
231
  };
@@ -4,10 +4,19 @@
4
4
  // update: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/putUpdateInteraction.html
5
5
  module.exports = {
6
6
  bodyIteratorField: 'items',
7
- dependencies: ['folder-journey', 'triggeredSendDefinition', 'eventDefinition'], // ! interaction and transactionalEmail both link to each other. caching transactionalEmail here "manually" instead of via dependencies array, assuming that it is quicker than the other way round
7
+ dependencies: [
8
+ 'folder-journey',
9
+ 'triggeredSend', // for EMAILV2-activity
10
+ 'event', // for Multistep and Quicksend journeys
11
+ 'mobileMessage', // for SMSSYNC-activity
12
+ 'mobileCode', // for SMSSYNC-activity
13
+ 'mobileKeyword', // for SMSSYNC-activity
14
+ 'asset-asset', // for SMSSYNC-activity (sub-subtype jsonmessage)
15
+ ], // ! interaction and transactionalEmail both link to each other. caching transactionalEmail here "manually" instead of via dependencies array, assuming that it is quicker than the other way round
8
16
  folderIdField: 'categoryId',
9
17
  hasExtended: false,
10
18
  idField: 'id',
19
+ keyIsFixed: true,
11
20
  keyField: 'key',
12
21
  nameField: 'name',
13
22
  createdDateField: 'createdDate',
@@ -16,7 +25,7 @@ module.exports = {
16
25
  lastmodNameField: null,
17
26
  restPagination: true,
18
27
  restPageSize: 500,
19
- type: 'interaction',
28
+ type: 'journey',
20
29
  typeDescription: 'Journey (internally called "Interaction").',
21
30
  typeRetrieveByDefault: true,
22
31
  typeName: 'Journey',
@@ -4,6 +4,7 @@ module.exports = {
4
4
  folderType: 'list',
5
5
  hasExtended: false,
6
6
  idField: 'ObjectID',
7
+ keyIsFixed: null,
7
8
  keyField: 'CustomerKey',
8
9
  nameField: 'ListName',
9
10
  restPagination: null,
@@ -3,13 +3,15 @@ module.exports = {
3
3
  dependencies: [],
4
4
  hasExtended: false,
5
5
  idField: 'id',
6
+ keyIsFixed: null,
6
7
  keyField: 'code',
7
8
  nameField: 'code',
8
9
  createdDateField: 'createdDate',
9
10
  createdNameField: null,
10
11
  lastmodDateField: 'lastUpdated',
11
12
  lastmodNameField: null,
12
- restPagination: false, // page size is 50, which should be sufficient in most cases
13
+ restPagination: true,
14
+ restPageSize: 50,
13
15
  type: 'mobileCode',
14
16
  typeDescription: 'Used to send SMS Messages',
15
17
  typeRetrieveByDefault: true,
@@ -2,28 +2,31 @@ module.exports = {
2
2
  bodyIteratorField: 'entry',
3
3
  dependencies: ['mobileCode'],
4
4
  hasExtended: false,
5
- idField: 'decodedId',
5
+ idField: 'id',
6
+ keyIsFixed: false,
6
7
  keyField: 'keyword',
7
8
  nameField: 'keyword',
8
9
  createdDateField: 'createdDate',
9
10
  createdNameField: 'createdBy.name',
10
11
  lastmodDateField: 'lastUpdated',
11
12
  lastmodNameField: null,
12
- restPagination: false, // page size is 50, which should be sufficient in most cases
13
+ restPagination: true,
14
+ restPageSize: 50,
13
15
  type: 'mobileKeyword',
14
16
  typeDescription: 'Used for managing subscriptions for Mobile numbers in Mobile Connect',
15
17
  typeRetrieveByDefault: true,
16
18
  typeName: 'Mobile Keyword',
17
19
  fields: {
18
20
  id: {
21
+ // irregular format: NXV4ZFMwTEFwRVczd3RaLUF5X3p5dzo4Njow
19
22
  isCreateable: false,
20
- isUpdateable: false,
21
- retrieving: false,
23
+ isUpdateable: true,
24
+ retrieving: true,
22
25
  template: false,
23
26
  },
24
27
  keyword: {
25
28
  isCreateable: true,
26
- isUpdateable: false,
29
+ isUpdateable: true,
27
30
  retrieving: true,
28
31
  template: true,
29
32
  },
@@ -69,6 +72,12 @@ module.exports = {
69
72
  retrieving: true,
70
73
  template: false,
71
74
  },
75
+ 'createdBy.lastUpdated': {
76
+ isCreateable: false,
77
+ isUpdateable: false,
78
+ retrieving: false,
79
+ template: false,
80
+ },
72
81
  dipSwitches: {
73
82
  isCreateable: false,
74
83
  isUpdateable: false,
@@ -77,21 +86,22 @@ module.exports = {
77
86
  },
78
87
  isInherited: {
79
88
  isCreateable: false,
80
- isUpdateable: false,
89
+ isUpdateable: true,
81
90
  retrieving: true,
82
- template: false,
91
+ template: true,
83
92
  },
84
93
  decodedId: {
94
+ // GUID format (4b5dece6-c042-45a4-b7c2-d67e032ff3cb). unsure what this is used for
85
95
  isCreateable: false,
86
96
  isUpdateable: false,
87
- retrieving: true,
97
+ retrieving: false,
88
98
  template: false,
89
99
  },
90
100
  restriction: {
91
- isCreateable: false,
92
- isUpdateable: false,
101
+ isCreateable: true,
102
+ isUpdateable: true,
93
103
  retrieving: true,
94
- template: false,
104
+ template: true,
95
105
  },
96
106
  keywordType: {
97
107
  isCreateable: true,
@@ -117,21 +127,21 @@ module.exports = {
117
127
  retrieving: true,
118
128
  template: false,
119
129
  },
120
- 'code.code': {
130
+ messages: {
121
131
  isCreateable: false,
122
132
  isUpdateable: false,
123
133
  retrieving: true,
124
- template: true,
134
+ template: false,
125
135
  },
126
- messages: {
136
+ 'code.code': {
127
137
  isCreateable: false,
128
138
  isUpdateable: false,
129
- retrieving: false,
130
- template: false,
139
+ retrieving: true,
140
+ template: true,
131
141
  },
132
142
  'code.id': {
133
143
  isCreateable: true,
134
- isUpdateable: false,
144
+ isUpdateable: true,
135
145
  retrieving: false,
136
146
  template: false,
137
147
  },