@izara_project/izara-market-library-service-schemas 1.0.66 → 1.0.68

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 (42) hide show
  1. package/package.json +3 -3
  2. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +13 -1
  3. package/src/MainLibs/src/Consts.js +34 -1
  4. package/src/MainLibs/src/GenerateCodeUtils.js +6 -6
  5. package/src/reStructure/GenerateCode.js +2 -1
  6. package/src/reStructure/TemplateData/EndpointPerService/generateTemplateData.js +1 -1
  7. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/create/template.ejs +35 -8
  8. package/src/reStructure/TemplateData/EndpointPerService/yaml/data.js +49 -5
  9. package/src/reStructure/TemplateData/externalService/lambdaRole/data.js +8 -0
  10. package/src/reStructure/TemplateData/externalService/snsTopicSubscriptions/data.js +14 -0
  11. package/src/reStructure/TemplateData/findData/findDataYaml/data.js +2 -2
  12. package/src/reStructure/TemplateData/flowSchema/dynamoDb/data.js +2 -2
  13. package/src/reStructure/TemplateData/flowSchema/flowStep/functionYaml/data.js +3 -3
  14. package/src/reStructure/TemplateData/flowSchema/flowStep/handler/data.js +1 -1
  15. package/src/reStructure/TemplateData/flowSchema/flowStep/sns-in/data.js +4 -2
  16. package/src/reStructure/TemplateData/flowSchema/flowStep/sns-in/template.ejs +9 -9
  17. package/src/reStructure/TemplateData/flowSchema/generateTemplateData.js +24 -24
  18. package/src/reStructure/TemplateData/generateRole/data.js +38 -24
  19. package/src/reStructure/TemplateData/generateRole/template.ejs +5 -7
  20. package/src/reStructure/TemplateData/processLogical/yaml/data.js +3 -3
  21. package/src/reStructure/TemplateData/processLogicalPagination/yaml/dsq/data.js +1 -1
  22. package/src/reStructure/TemplateData/processLogicalPagination/yaml/sqs/data.js +1 -1
  23. package/src/reStructure/TemplateData/relationshipPerAction/changeRelationship/action/functionYaml/data.js +29 -25
  24. package/src/reStructure/TemplateData/relationshipPerAction/changeRelationship/action/mainFunction/template.ejs +4 -4
  25. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/data.js +37 -29
  26. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/functionYaml/data.js +1 -4
  27. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/data.js +37 -29
  28. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml/data.js +1 -4
  29. package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/data.js +37 -29
  30. package/src/reStructure/TemplateData/relationshipPerAction/get/complete/functionYaml/data.js +1 -4
  31. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/action/functionYaml/data.js +36 -50
  32. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/action/handler/templateByHandler/apiTemplate.ejs +15 -30
  33. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/action/handler/templateByHandler/dsqTemplate.ejs +15 -30
  34. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/action/handler/templateByHandler/invTemplate.ejs +15 -30
  35. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/action/handler/templateByHandler/sqsTemplate.ejs +15 -30
  36. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/action/mainFunction/template.ejs +2 -2
  37. package/src/reStructure/TemplateData/relationshipPerAction/moveRelationship/complete/functionYaml/data.js +1 -4
  38. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/data.js +30 -27
  39. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/data.js +1 -4
  40. package/src/reStructure/TemplateData/resourceYaml/dynamodb/mainResourcePerObjectSchemaData.js +8 -7
  41. package/src/reStructure/TemplateData/resourceYaml/filterGenerateResource/data.js +36 -30
  42. package/src/reStructure/TemplateData/resourceYaml/generateTemplateData.js +2 -2
@@ -18,17 +18,15 @@
18
18
  PolicyDocument:
19
19
  Version: "2012-10-17"
20
20
  Statement:
21
- <%_ roleData.resourcePermissions.forEach(resourcePermission => { _%>
22
- - Effect: <%- resourcePermission.effect.trim() %>
21
+ <%_ roleData.resourcePermissions.forEach(resourcePermission => { _%>
22
+ - Effect: <%- resourcePermission.effect %>
23
23
  Action:
24
- <%_ Object.keys(resourcePermission.action).forEach(action => { _%>
25
- <%_ resourcePermission.action[action].forEach(permission => { _%>
26
- - <%- action.trim() %>:<%- permission.trim() %>
27
- <%_ }) _%>
24
+ <%_ resourcePermission.action.forEach(action => { _%>
25
+ - <%- action %>
28
26
  <%_ }) _%>
29
27
  Resource:
30
28
  <%_ resourcePermission.resource.forEach(resource => { _%>
31
- - "<%- resource.trim() _%>"
29
+ - "<%- resource %>"
32
30
  <%_ }) _%>
33
31
  <%_ }) _%>
34
32
  #<#<%- roleName %>Role#>
@@ -25,7 +25,7 @@ const serviceSchemas = require('@izara_project/izara-core-library-service-schema
25
25
  const serviceConfig = serviceSchemas.serviceConfig;
26
26
 
27
27
  const { HANDLER, STORAGE_TYPES, ACTIONS } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
28
- const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/index.js").utils;
28
+ const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/src/Utils.js");
29
29
  const {
30
30
  createIamRole,
31
31
  resourceNames,
@@ -62,7 +62,7 @@ async function data(_izContext, objectSchemas, srcPath) {
62
62
  for (let storageResource of Object.values(objectSchema.storageResources)) {
63
63
  if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
64
64
  // add IamRole for dynamodb depend on tableName in storageResources of objectSchema
65
- tableForQuery.push(resourceNames(RESOURCE_CLASSES.dynamoDbTable, storageResource.tableName));
65
+ tableForQuery.push(resourceNames(RESOURCE_CLASSES.dynamoDbTable, upperCase(storageResource.tableName)));
66
66
  }
67
67
  }
68
68
  }
@@ -71,7 +71,7 @@ async function data(_izContext, objectSchemas, srcPath) {
71
71
  additionalResourcePermission.push(
72
72
  createIamRole(
73
73
  { [RESOURCE_CLASSES.dynamoDbTable]: DYNAMO_RESOURCE.query },
74
- tableForQuery
74
+ [tableForQuery]
75
75
  )
76
76
  );
77
77
  }
@@ -60,7 +60,7 @@ async function data(_izContext, objectSchemas, srcPath) {
60
60
  for (let storageResource of Object.values(objectSchema.storageResources)) {
61
61
  if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
62
62
  // add IamRole for dynamodb depend on tableName in storageResources of objectSchema
63
- tableForQuery.push(resourceNames(RESOURCE_CLASSES.dynamoDbTable, storageResource.tableName));
63
+ tableForQuery.push(resourceNames(RESOURCE_CLASSES.dynamoDbTable, upperCase(storageResource.tableName)));
64
64
  }
65
65
  }
66
66
  }
@@ -61,7 +61,7 @@ async function data(_izContext, objectSchemas, srcPath) {
61
61
  for (let storageResource of Object.values(objectSchema.storageResources)) {
62
62
  if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
63
63
  // add IamRole for dynamodb depend on tableName in storageResources of objectSchema
64
- tableForQuery.push(resourceNames(RESOURCE_CLASSES.dynamoDbTable, storageResource.tableName));
64
+ tableForQuery.push(resourceNames(RESOURCE_CLASSES.dynamoDbTable, upperCase(storageResource.tableName)));
65
65
  }
66
66
  }
67
67
  }
@@ -60,49 +60,53 @@ function data(_izContext, srcPath) {
60
60
  const createSourceParam = createParamForCreateSource(handlerType, srcPath);
61
61
  createSourceArray.push(createSourceParam);
62
62
  }
63
- // console.log("createSourceArrayInUpdaterelationShipSchemahdrSqs", createSourceArray)
63
+ // console.log("createSourceArrayInUpdaterelationShipSchemahdrSqs", JSON.stringify(createSourceArray, null, 2))
64
64
  return createSourceArray
65
65
  }
66
66
 
67
67
 
68
68
  function createParamForCreateSource(handlerType, srcPath) {
69
-
70
69
  let functionName = upperCase(FUNCTION_NAME.changeRel)
71
70
  let additionalResourcePermission = defaultIamRolePerAction();
72
71
 
73
72
  additionalResourcePermission.push(awaitingMultipleStepsRole())
74
73
 
75
- additionalResourcePermission.push(
76
- createIamRole(
74
+ if (handlerType === HANDLER.hdrDsq) {
75
+ additionalResourcePermission.push(
76
+ createIamRole(
77
+ {
78
+ [RESOURCE_CLASSES.sqs]: [
79
+ SQS_RESOURCE.deleteMessage,
80
+ SQS_RESOURCE.getQueueAttributes,
81
+ SQS_RESOURCE.receiveMessage,
82
+ SQS_RESOURCE.sendMessage,
83
+ SQS_RESOURCE.getQueueUrl,
84
+ SQS_RESOURCE.deleteMessageBatch
85
+ ],
86
+ },
87
+ [
88
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
89
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
90
+ ]
91
+ )
92
+ )
93
+ }
94
+
95
+ if (handlerType === HANDLER.hdrSqs) {
96
+ additionalResourcePermission.push(createIamRole(
77
97
  {
78
- [RESOURCE_CLASSES.sqs]: [
79
- SQS_RESOURCE.deleteMessage,
80
- SQS_RESOURCE.getQueueAttributes,
81
- SQS_RESOURCE.receiveMessage,
82
- SQS_RESOURCE.sendMessage,
83
- SQS_RESOURCE.getQueueUrl,
84
- SQS_RESOURCE.deleteMessageBatch
85
- ],
98
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
99
+ [RESOURCE_CLASSES.sqs]: Object.values(SQS_RESOURCE)
86
100
  },
87
101
  [
102
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.changeRelComplete) + "_Out"),
88
103
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
89
104
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
90
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
91
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
92
- ]
93
- ),
94
- createIamRole(
95
- {
96
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
97
- },
98
- [
99
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.changeRelComplete) + "_Out"),
100
105
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
101
106
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
102
107
  ]
103
- )
104
- )
105
-
108
+ ))
109
+ }
106
110
 
107
111
  return {
108
112
  templatePath: templatePath,
@@ -234,8 +234,8 @@ module.exports.<%- functionName %> = async (
234
234
  if (errorsFound.length) {
235
235
 
236
236
  let changeRelCompleteMsg = {
237
- fromObject: firstObject,
238
- toObject: secondObject,
237
+ firstObject,
238
+ secondObject,
239
239
  oldRelTypeAndDirection,
240
240
  newRelType,
241
241
  originTimestamp,
@@ -320,8 +320,8 @@ module.exports.<%- functionName %> = async (
320
320
 
321
321
  // prepare message body
322
322
  let changeRelMessageBody = {
323
- fromObject: firstObject,
324
- toObject: secondObject,
323
+ firstObject,
324
+ secondObject,
325
325
  oldRelTypeAndDirection,
326
326
  newRelType,
327
327
  originTimestamp,
@@ -72,36 +72,44 @@ function createParamForCreateSource(allObjectRelationships, handlerType, srcPath
72
72
 
73
73
  additionalResourcePermission.push(awaitingMultipleStepsRole())
74
74
 
75
- additionalResourcePermission.push(
76
- createIamRole(
77
- {
78
- [RESOURCE_CLASSES.sqs]: [
79
- SQS_RESOURCE.deleteMessage,
80
- SQS_RESOURCE.getQueueAttributes,
81
- SQS_RESOURCE.receiveMessage,
82
- SQS_RESOURCE.sendMessage,
83
- SQS_RESOURCE.getQueueUrl,
84
- SQS_RESOURCE.deleteMessageBatch
85
- ],
86
- },
87
- [
88
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
89
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
90
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
91
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
92
- ]
93
- ),
94
- createIamRole(
95
- {
96
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
97
- },
98
- [
99
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.createRelComplete) + "_Out"),
100
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
101
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
102
- ]
75
+ if (handlerType === HANDLER.hdrDsq) {
76
+ additionalResourcePermission.push(
77
+ createIamRole(
78
+ {
79
+ [RESOURCE_CLASSES.sqs]: [
80
+ SQS_RESOURCE.deleteMessage,
81
+ SQS_RESOURCE.getQueueAttributes,
82
+ SQS_RESOURCE.receiveMessage,
83
+ SQS_RESOURCE.sendMessage,
84
+ SQS_RESOURCE.getQueueUrl,
85
+ SQS_RESOURCE.deleteMessageBatch
86
+ ],
87
+ },
88
+ [
89
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
90
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
91
+ ]
92
+ )
103
93
  )
104
- )
94
+ }
95
+
96
+ if (handlerType === HANDLER.hdrSqs) {
97
+ additionalResourcePermission.push(
98
+ createIamRole(
99
+ {
100
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
101
+ [RESOURCE_CLASSES.sqs]: Object.values(SQS_RESOURCE)
102
+ },
103
+ [
104
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.createRelComplete) + "_Out"),
105
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
106
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
107
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
108
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
109
+ ]
110
+ )
111
+ )
112
+ }
105
113
 
106
114
  for (const relationship of allObjectRelationships) {
107
115
  let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
@@ -82,10 +82,7 @@ function createParamForCreateSource(srcPath) {
82
82
  ),
83
83
  createIamRole(
84
84
  {
85
- [RESOURCE_CLASSES.sns]:
86
- [
87
- SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
88
- ]
85
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
89
86
  },
90
87
  [
91
88
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
@@ -72,36 +72,44 @@ function createParamForCreateSource(allObjectRelationships, handlerType, srcPath
72
72
 
73
73
  additionalResourcePermission.push(awaitingMultipleStepsRole())
74
74
 
75
- additionalResourcePermission.push(
76
- createIamRole(
77
- {
78
- [RESOURCE_CLASSES.sqs]: [
79
- SQS_RESOURCE.deleteMessage,
80
- SQS_RESOURCE.getQueueAttributes,
81
- SQS_RESOURCE.receiveMessage,
82
- SQS_RESOURCE.sendMessage,
83
- SQS_RESOURCE.getQueueUrl,
84
- SQS_RESOURCE.deleteMessageBatch
85
- ],
86
- },
87
- [
88
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
89
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
90
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
91
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
92
- ]
93
- ),
94
- createIamRole(
95
- {
96
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
97
- },
98
- [
99
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.deleteRelComplete) + "_Out"),
100
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
101
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
102
- ]
75
+ if (handlerType === HANDLER.hdrDsq) {
76
+ additionalResourcePermission.push(
77
+ createIamRole(
78
+ {
79
+ [RESOURCE_CLASSES.sqs]: [
80
+ SQS_RESOURCE.deleteMessage,
81
+ SQS_RESOURCE.getQueueAttributes,
82
+ SQS_RESOURCE.receiveMessage,
83
+ SQS_RESOURCE.sendMessage,
84
+ SQS_RESOURCE.getQueueUrl,
85
+ SQS_RESOURCE.deleteMessageBatch
86
+ ],
87
+ },
88
+ [
89
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
90
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
91
+ ]
92
+ )
103
93
  )
104
- )
94
+ }
95
+
96
+ if (handlerType === HANDLER.hdrSqs) {
97
+ additionalResourcePermission.push(
98
+ createIamRole(
99
+ {
100
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
101
+ [RESOURCE_CLASSES.sqs]: Object.values(SQS_RESOURCE)
102
+ },
103
+ [
104
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.deleteRelComplete) + "_Out"),
105
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
106
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
107
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
108
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
109
+ ]
110
+ )
111
+ )
112
+ }
105
113
 
106
114
  for (const relationship of allObjectRelationships) {
107
115
  let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
@@ -80,10 +80,7 @@ function createParamForCreateSource(srcPath) {
80
80
  ),
81
81
  createIamRole(
82
82
  {
83
- [RESOURCE_CLASSES.sns]:
84
- [
85
- SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
86
- ]
83
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
87
84
  },
88
85
  [
89
86
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
@@ -72,36 +72,44 @@ function createParamForCreateSource(allObjectRelationships, handlerType, srcPath
72
72
 
73
73
  additionalResourcePermission.push(awaitingMultipleStepsRole())
74
74
 
75
- additionalResourcePermission.push(
76
- createIamRole(
77
- {
78
- [RESOURCE_CLASSES.sqs]: [
79
- SQS_RESOURCE.deleteMessage,
80
- SQS_RESOURCE.getQueueAttributes,
81
- SQS_RESOURCE.receiveMessage,
82
- SQS_RESOURCE.sendMessage,
83
- SQS_RESOURCE.getQueueUrl,
84
- SQS_RESOURCE.deleteMessageBatch
85
- ],
86
- },
87
- [
88
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
89
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
90
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
91
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
92
- ]
93
- ),
94
- createIamRole(
95
- {
96
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
97
- },
98
- [
99
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
100
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
101
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
102
- ]
75
+ if (handlerType === HANDLER.hdrDsq) {
76
+ additionalResourcePermission.push(
77
+ createIamRole(
78
+ {
79
+ [RESOURCE_CLASSES.sqs]: [
80
+ SQS_RESOURCE.deleteMessage,
81
+ SQS_RESOURCE.getQueueAttributes,
82
+ SQS_RESOURCE.receiveMessage,
83
+ SQS_RESOURCE.sendMessage,
84
+ SQS_RESOURCE.getQueueUrl,
85
+ SQS_RESOURCE.deleteMessageBatch
86
+ ],
87
+ },
88
+ [
89
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
90
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
91
+ ]
92
+ )
103
93
  )
104
- )
94
+ }
95
+
96
+ if (handlerType === HANDLER.hdrSqs) {
97
+ additionalResourcePermission.push(
98
+ createIamRole(
99
+ {
100
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
101
+ [RESOURCE_CLASSES.sqs]: Object.values(SQS_RESOURCE)
102
+ },
103
+ [
104
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
105
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
106
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
107
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
108
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
109
+ ]
110
+ )
111
+ )
112
+ }
105
113
 
106
114
  for (const relationship of allObjectRelationships) {
107
115
  let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
@@ -80,10 +80,7 @@ function createParamForCreateSource(srcPath) {
80
80
  ),
81
81
  createIamRole(
82
82
  {
83
- [RESOURCE_CLASSES.sns]:
84
- [
85
- SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
86
- ]
83
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
87
84
  },
88
85
  [
89
86
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
@@ -67,63 +67,49 @@ function data(_izContext, allObjectRelationships, srcPath) {
67
67
 
68
68
  function createParamForCreateSource(allObjectRelationships, handlerType, srcPath) {
69
69
 
70
- let functionName = upperCase(FUNCTION_NAME.changeRel)
70
+ let functionName = upperCase(FUNCTION_NAME.moveRel)
71
71
  let additionalResourcePermission = defaultIamRolePerAction();
72
72
 
73
73
  additionalResourcePermission.push(awaitingMultipleStepsRole())
74
74
 
75
- additionalResourcePermission.push(
76
- createIamRole(
77
- {
78
- [RESOURCE_CLASSES.sqs]: [
79
- SQS_RESOURCE.deleteMessage,
80
- SQS_RESOURCE.getQueueAttributes,
81
- SQS_RESOURCE.receiveMessage,
82
- SQS_RESOURCE.sendMessage,
83
- SQS_RESOURCE.getQueueUrl,
84
- SQS_RESOURCE.deleteMessageBatch
85
- ],
86
- },
87
- [
88
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
89
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
90
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
91
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
92
- ]
93
- ),
94
- createIamRole(
95
- {
96
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
97
- },
98
- [
99
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.moveRelComplete) + "_Out"),
100
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
101
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
102
- ]
75
+ if (handlerType === HANDLER.hdrDsq) {
76
+ additionalResourcePermission.push(
77
+ createIamRole(
78
+ {
79
+ [RESOURCE_CLASSES.sqs]: [
80
+ SQS_RESOURCE.deleteMessage,
81
+ SQS_RESOURCE.getQueueAttributes,
82
+ SQS_RESOURCE.receiveMessage,
83
+ SQS_RESOURCE.sendMessage,
84
+ SQS_RESOURCE.getQueueUrl,
85
+ SQS_RESOURCE.deleteMessageBatch
86
+ ],
87
+ },
88
+ [
89
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
90
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
91
+ ]
92
+ )
103
93
  )
104
- )
105
-
106
- for (const relationship of allObjectRelationships) {
107
- let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
108
- if (storageType === STORAGE_TYPES.dynamoDB) {
109
- for (const link of links) {
110
- let dynamoComponent = createDynamoDbComponentByLinks(link, relationshipTag)
111
- additionalResourcePermission.push(
112
- createIamRole(
113
- {
114
- [RESOURCE_CLASSES.dynamoDbTable]: [DYNAMO_RESOURCE.getItem]
115
- },
116
- [
117
- resourceNames(RESOURCE_CLASSES.dynamoDbTable, upperCase(dynamoComponent.tableNameFrom)),
118
- resourceNames(RESOURCE_CLASSES.dynamoDbTable, upperCase(dynamoComponent.tableNameTo))
119
- ]
120
- )
121
- )
122
- }
123
- }
124
94
  }
125
95
 
126
-
96
+ if (handlerType === HANDLER.hdrSqs) {
97
+ additionalResourcePermission.push(
98
+ createIamRole(
99
+ {
100
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe],
101
+ [RESOURCE_CLASSES.sqs]: Object.values(SQS_RESOURCE)
102
+ },
103
+ [
104
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.moveRelComplete) + "_Out"),
105
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType)),
106
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(handlerType) + "DLQ"),
107
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
108
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
109
+ ]
110
+ )
111
+ )
112
+ }
127
113
 
128
114
  return {
129
115
  templatePath: templatePath,
@@ -28,12 +28,12 @@ const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>
28
28
  let validatorSchema = {
29
29
  type: "object",
30
30
  required: [
31
- 'firstObject',
32
- 'secondObject',
33
- 'relType',
34
- 'relationshipProperty',
35
- 'relationshipDirection',
36
- 'moveObject'
31
+ 'firstObject',
32
+ 'secondObject',
33
+ 'relType',
34
+ 'relationshipProperties',
35
+ 'relationshipDirection',
36
+ 'moveObject'
37
37
  ],
38
38
  properties: {
39
39
  firstObject: {
@@ -74,7 +74,7 @@ let validatorSchema = {
74
74
  },
75
75
  relType: {
76
76
  type: "object",
77
- required: ['serviceTag','relationshipTag'],
77
+ required: ['serviceTag', 'relationshipTag'],
78
78
  properties: {
79
79
  serviceTag: izara.validatorSchema.stringNotEmpty(),
80
80
  relationshipTag: izara.validatorSchema.stringNotEmpty()
@@ -82,37 +82,22 @@ let validatorSchema = {
82
82
  },
83
83
  relationshipDirection: {
84
84
  type: "string",
85
- enum: ['from','to']
85
+ enum: ['from', 'to']
86
86
  },
87
- relationshipProperty: {
87
+ relationshipProperties: {
88
88
  type: "object",
89
89
  minProperties: 1
90
90
  },
91
91
  moveObject: {
92
- type: "object",
93
- required: ['fromObjectRef','toObject'],
92
+ required: ["fromObjectRef", "moveToIdentifiers"],
94
93
  properties: {
95
94
  fromObjectRef: {
96
- type: 'string',
97
- enum: ['firstObject','secondObject']
95
+ type: "string",
96
+ enum: ["firstObject", "secondObject"]
98
97
  },
99
- toObject: {
100
- type: 'object',
101
- required: ['objType', 'identifiers'],
102
- properties: {
103
- objType: {
104
- type: 'object',
105
- required: ['objectType', 'serviceTag'],
106
- properties: {
107
- serviceTag: izara.validatorSchema.stringNotEmpty(),
108
- objectType: izara.validatorSchema.stringNotEmpty()
109
- }
110
- },
111
- identifiers: {
112
- type: 'object',
113
- minProperties: 1
114
- }
115
- }
98
+ moveToIdentifiers: {
99
+ type: "object",
100
+ minProperties: 1,
116
101
  }
117
102
  }
118
103
  },