@izara_project/izara-market-library-service-schemas 1.0.22 → 1.0.24

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 (408) hide show
  1. package/index.js +2 -2
  2. package/package.json +6 -6
  3. package/src/GenerateCodeLibs/index.js +1 -0
  4. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +65 -22
  5. package/src/MainLibs/index.js +2 -1
  6. package/src/MainLibs/src/Consts.js +485 -0
  7. package/src/MainLibs/src/GenerateCodeUtils.js +59 -0
  8. package/src/SourceManager/src/CreateSource.js +11 -1
  9. package/src/TemplateManager/src/FindData/mainFunction/data.js +3 -2
  10. package/src/TemplateManager/src/GenerateCode.js +1 -0
  11. package/src/TemplateManager/src/GenerateSchema.js +20 -5
  12. package/src/TemplateManager/src/ProcessLogical/Handler/data.js +2 -2
  13. package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/data.js +2 -2
  14. package/src/TemplateManager/src/ProcessLogical/mainFunction/data.js +1 -1
  15. package/src/TemplateManager/src/attributeTree/objectSchema/data.js +23 -20
  16. package/src/TemplateManager/src/attributeTree/objectSchema/template.ejs +6 -5
  17. package/src/TemplateManager/src/attributeTree/relationshipSchema/data.js +169 -55
  18. package/src/TemplateManager/src/attributeTree/relationshipSchema/template.ejs +5 -38
  19. package/src/TemplateManager/src/externalService/FunctionNameConfig/data.js +2 -3
  20. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +1 -1
  21. package/src/reStructure/GenerateCode.js +151 -0
  22. package/src/reStructure/TemplateConfig.js +31 -0
  23. package/src/reStructure/TemplateData/externalService/functionNameConfig/data.js +162 -0
  24. package/src/reStructure/TemplateData/externalService/functionNameConfig/template.ejs +14 -0
  25. package/src/reStructure/TemplateData/externalService/functionNameConfig/templateIntTesting.ejs +31 -0
  26. package/src/reStructure/TemplateData/externalService/functionNameConfig/templateYaml.ejs +10 -0
  27. package/src/reStructure/TemplateData/externalService/generateTemplateData.js +59 -0
  28. package/src/reStructure/TemplateData/externalService/lambdaRole/data.js +435 -0
  29. package/src/reStructure/TemplateData/externalService/lambdaRole/request.json +18 -0
  30. package/src/reStructure/TemplateData/externalService/lambdaRole/template.ejs +57 -0
  31. package/src/reStructure/TemplateData/externalService/snsTopicSubscriptions/data.js +177 -0
  32. package/src/reStructure/TemplateData/externalService/snsTopicSubscriptions/request.json +12 -0
  33. package/src/reStructure/TemplateData/externalService/snsTopicSubscriptions/template.ejs +28 -0
  34. package/src/reStructure/TemplateData/findData/GetByStorage/getByDynamo.ejs +53 -0
  35. package/src/reStructure/TemplateData/findData/GetByStorage/getByGraph.ejs +100 -0
  36. package/src/reStructure/TemplateData/findData/findDataYaml/data.js +195 -0
  37. package/src/reStructure/TemplateData/findData/findDataYaml/template.ejs +14 -0
  38. package/src/reStructure/TemplateData/findData/generateTemplateData.js +65 -0
  39. package/src/reStructure/TemplateData/findData/handler/data.js +63 -0
  40. package/src/reStructure/TemplateData/findData/handler/template.ejs +140 -0
  41. package/src/reStructure/TemplateData/findData/mainFunction/data.js +297 -0
  42. package/src/reStructure/TemplateData/findData/mainFunction/template.ejs +151 -0
  43. package/src/reStructure/TemplateData/flowSchema/components/schema/inProcess/functionYaml/data.js +76 -0
  44. package/src/reStructure/TemplateData/flowSchema/components/schema/inProcess/functionYaml/template.ejs +37 -0
  45. package/src/reStructure/TemplateData/flowSchema/components/schema/inProcess/handler/data.js +46 -0
  46. package/src/reStructure/TemplateData/flowSchema/components/schema/inProcess/handler/template.ejs +103 -0
  47. package/src/reStructure/TemplateData/flowSchema/components/schema/inProcess/mainFunction/data.js +45 -0
  48. package/src/reStructure/TemplateData/flowSchema/components/schema/inProcess/sns-sqs/data.js +35 -0
  49. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/functionYaml/data.js +34 -0
  50. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/functionYaml/template.ejs +0 -0
  51. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/handler/data.js +34 -0
  52. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/handler/template.ejs +0 -0
  53. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/mainFunction/data.js +34 -0
  54. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/mainFunction/template.ejs +0 -0
  55. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/sns-sqs/data.js +34 -0
  56. package/src/reStructure/TemplateData/flowSchema/components/schema/outComplete/sns-sqs/template.ejs +0 -0
  57. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/functionYaml/data.js +118 -0
  58. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/functionYaml/template.ejs +30 -0
  59. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/handler/data.js +56 -0
  60. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/handler/template.ejs +126 -0
  61. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/mainFunction/data.js +51 -0
  62. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/mainFunction/template.ejs +121 -0
  63. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/queue/data.js +64 -0
  64. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/queue/template.ejs +45 -0
  65. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/functionYaml/data.js +140 -0
  66. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/functionYaml/template.ejs +37 -0
  67. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/handler/data.js +74 -0
  68. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/handler/template.ejs +120 -0
  69. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/data.js +54 -0
  70. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/template.ejs +133 -0
  71. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/functionYaml/data.js +115 -0
  72. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/functionYaml/template.ejs +30 -0
  73. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/handler/data.js +70 -0
  74. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/handler/template.ejs +103 -0
  75. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/mainFunction/data.js +55 -0
  76. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/mainFunction/template.ejs +86 -0
  77. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/sns-sqs/data.js +72 -0
  78. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/sns-sqs/template.ejs +49 -0
  79. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/handler/data.js +93 -0
  80. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/handler/templateAsyncHandler.ejs +110 -0
  81. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/handler/templateSyncHandler.ejs +49 -0
  82. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/hookLogic/data.js +43 -0
  83. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/mainFunction/data.js +65 -0
  84. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/mainFunction/template.ejs +7 -0
  85. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/queue/data.js +72 -0
  86. package/src/reStructure/TemplateData/flowSchema/components/upload/hook/queue/snsTemplate.ejs +59 -0
  87. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/functionYaml/data.js +102 -0
  88. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/functionYaml/template.ejs +27 -0
  89. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/handler/data.js +57 -0
  90. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/handler/template.ejs +120 -0
  91. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/mainFunction/data.js +51 -0
  92. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/mainFunction/template.ejs +164 -0
  93. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/sqs/data.js +65 -0
  94. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/getSignUrls/sqs/template.ejs +53 -0
  95. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/functionYaml/data.js +131 -0
  96. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/functionYaml/template.ejs +30 -0
  97. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/handler/data.js +57 -0
  98. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/handler/template.ejs +126 -0
  99. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/mainFunction/data.js +54 -0
  100. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/mainFunction/template.ejs +254 -0
  101. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/queue/data.js +64 -0
  102. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/queue/template.ejs +45 -0
  103. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/functionYml/HdrDsq/data.js +87 -0
  104. package/src/{TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml → reStructure/TemplateData/flowSchema/components/upload/processFile/functionYml}/HdrDsq/template.ejs +4 -4
  105. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/functionYml/HdrS3/data.js +127 -0
  106. package/src/{TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml → reStructure/TemplateData/flowSchema/components/upload/processFile/functionYml/HdrS3}/template.ejs +11 -3
  107. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/handler/handlerDsq/data.js +45 -0
  108. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/handler/handlerDsq/template.ejs +151 -0
  109. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/handler/handlerS3/data.js +58 -0
  110. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/handler/handlerS3/template.ejs +68 -0
  111. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/mainFunction/data.js +58 -0
  112. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/mainFunction/template.ejs +392 -0
  113. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/queue/data.js +77 -0
  114. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/queue/dsqTemplatePath.ejs +32 -0
  115. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/queue/s3Template.ejs +59 -0
  116. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/S3/data.js +51 -0
  117. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/S3/template.ejs +13 -0
  118. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/data.js +42 -0
  119. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/template.ejs +137 -0
  120. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/functionYaml/data.js +73 -0
  121. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/functionYaml/template.ejs +29 -0
  122. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/handler/data.js +54 -0
  123. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/handler/template.ejs +68 -0
  124. package/src/reStructure/TemplateData/flowSchema/components/websocket/dynamoDb/ReservedTableData.js +62 -0
  125. package/src/reStructure/TemplateData/flowSchema/components/websocket/dynamoDb/WebSocketTaskData.js +62 -0
  126. package/src/reStructure/TemplateData/flowSchema/generateTemplateData.js +210 -0
  127. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/functionYaml/data.js +101 -0
  128. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/functionYaml/template.ejs +43 -0
  129. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/handler/data.js +93 -0
  130. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/handler/templateAsyncHandler.ejs +110 -0
  131. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/handler/templateSyncHandler.ejs +49 -0
  132. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/hookLogic/data.js +64 -0
  133. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/mainFunction/data.js +66 -0
  134. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/mainFunction/template.ejs +30 -0
  135. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/queue/data.js +124 -0
  136. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/queue/snsTemplate.ejs +59 -0
  137. package/src/reStructure/TemplateData/flowSchema/legacy/hookCode-old/queue/sqsTemplate.ejs +43 -0
  138. package/src/reStructure/TemplateData/generateRole/createSharedResource.js +276 -0
  139. package/src/reStructure/TemplateData/generateRole/sharedResourceTemplate.ejs +58 -0
  140. package/src/reStructure/TemplateData/perActionComplete/create/handler/data.js +69 -0
  141. package/src/reStructure/TemplateData/perActionComplete/create/handler/template.ejs +130 -0
  142. package/src/reStructure/TemplateData/perActionComplete/create/mainFunction/createObjectComplete_main.js +172 -0
  143. package/src/reStructure/TemplateData/perActionComplete/create/mainFunction/data.js +65 -0
  144. package/src/reStructure/TemplateData/perActionComplete/create/mainFunction/template.ejs +170 -0
  145. package/src/reStructure/TemplateData/perActionComplete/create/sns-in-sqs/data.js +69 -0
  146. package/src/reStructure/TemplateData/perActionComplete/create/sns-in-sqs/template.ejs +47 -0
  147. package/src/reStructure/TemplateData/perActionComplete/create/sns-out/data.js +73 -0
  148. package/src/reStructure/TemplateData/perActionComplete/create/sns-out/template.ejs +10 -0
  149. package/src/reStructure/TemplateData/perActionComplete/create/yaml/data.js +130 -0
  150. package/src/reStructure/TemplateData/perActionComplete/create/yaml/template.ejs +20 -0
  151. package/src/reStructure/TemplateData/perActionComplete/delete/handler/data.js +66 -0
  152. package/src/reStructure/TemplateData/perActionComplete/delete/handler/template.ejs +129 -0
  153. package/src/reStructure/TemplateData/perActionComplete/delete/mainFunction/data.js +59 -0
  154. package/src/reStructure/TemplateData/perActionComplete/delete/mainFunction/template.ejs +93 -0
  155. package/src/reStructure/TemplateData/perActionComplete/delete/sns-in-sqs/data.js +62 -0
  156. package/src/reStructure/TemplateData/perActionComplete/delete/sns-in-sqs/template.ejs +47 -0
  157. package/src/reStructure/TemplateData/perActionComplete/delete/sns-out/data.js +69 -0
  158. package/src/reStructure/TemplateData/perActionComplete/delete/yaml/data.js +124 -0
  159. package/src/reStructure/TemplateData/perActionComplete/delete/yaml/template.ejs +20 -0
  160. package/src/reStructure/TemplateData/perActionComplete/generateTemplateData.js +126 -0
  161. package/src/{TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq.js → reStructure/TemplateData/perActionComplete/get/handler/data.js} +20 -14
  162. package/src/reStructure/TemplateData/perActionComplete/get/handler/template.ejs +129 -0
  163. package/src/reStructure/TemplateData/perActionComplete/get/mainFunction/data.js +52 -0
  164. package/src/reStructure/TemplateData/perActionComplete/get/mainFunction/template.ejs +130 -0
  165. package/src/{TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns → reStructure/TemplateData/perActionComplete/get/sns-in-sqs}/data.js +12 -12
  166. package/src/reStructure/TemplateData/perActionComplete/get/sns-in-sqs/template.ejs +47 -0
  167. package/src/reStructure/TemplateData/perActionComplete/get/sns-out/data.js +71 -0
  168. package/src/reStructure/TemplateData/perActionComplete/get/yaml/data.js +105 -0
  169. package/src/reStructure/TemplateData/perActionComplete/get/yaml/template.ejs +20 -0
  170. package/src/reStructure/TemplateData/perActionComplete/update/handler/data.js +65 -0
  171. package/src/reStructure/TemplateData/perActionComplete/update/handler/template.ejs +129 -0
  172. package/src/reStructure/TemplateData/perActionComplete/update/mainFunction/data.js +58 -0
  173. package/src/reStructure/TemplateData/perActionComplete/update/mainFunction/template.ejs +130 -0
  174. package/src/reStructure/TemplateData/perActionComplete/update/sns-in-sqs/data.js +66 -0
  175. package/src/reStructure/TemplateData/perActionComplete/update/sns-in-sqs/template.ejs +47 -0
  176. package/src/reStructure/TemplateData/perActionComplete/update/sns-out/data.js +73 -0
  177. package/src/reStructure/TemplateData/perActionComplete/update/yaml/data.js +132 -0
  178. package/src/reStructure/TemplateData/perActionComplete/update/yaml/template.ejs +20 -0
  179. package/src/reStructure/TemplateData/perActionEndpoint/generateTemplateData.js +101 -0
  180. package/src/reStructure/TemplateData/perActionEndpoint/handler/api/data.js +93 -0
  181. package/src/reStructure/TemplateData/perActionEndpoint/handler/api/request.json +7 -0
  182. package/src/reStructure/TemplateData/perActionEndpoint/handler/api/template.ejs +76 -0
  183. package/src/reStructure/TemplateData/perActionEndpoint/handler/dsq/data.js +95 -0
  184. package/src/reStructure/TemplateData/perActionEndpoint/handler/dsq/request.json +7 -0
  185. package/src/reStructure/TemplateData/perActionEndpoint/handler/dsq/template.ejs +127 -0
  186. package/src/reStructure/TemplateData/perActionEndpoint/handler/inv/data.js +88 -0
  187. package/src/reStructure/TemplateData/perActionEndpoint/handler/inv/request.json +7 -0
  188. package/src/reStructure/TemplateData/perActionEndpoint/handler/inv/template.ejs +81 -0
  189. package/src/reStructure/TemplateData/perActionEndpoint/handler/sqs/data.js +94 -0
  190. package/src/reStructure/TemplateData/perActionEndpoint/handler/sqs/request.json +7 -0
  191. package/src/reStructure/TemplateData/perActionEndpoint/handler/sqs/template.ejs +130 -0
  192. package/src/reStructure/TemplateData/perActionEndpoint/handler/webSocket/data.js +75 -0
  193. package/src/reStructure/TemplateData/perActionEndpoint/handler/webSocket/template.ejs +141 -0
  194. package/src/reStructure/TemplateData/perActionEndpoint/handler/webSocketConnect/data.js +55 -0
  195. package/src/reStructure/TemplateData/perActionEndpoint/handler/webSocketConnect/template.ejs +55 -0
  196. package/src/{TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction → reStructure/TemplateData/perActionEndpoint/libs}/data.js +25 -13
  197. package/src/reStructure/TemplateData/perActionEndpoint/libs/template.ejs +46 -0
  198. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/create/data.js +74 -0
  199. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/create/request.json +0 -0
  200. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/create/template.ejs +629 -0
  201. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/delete/data.js +74 -0
  202. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/delete/template.ejs +192 -0
  203. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/get/data.js +76 -0
  204. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/get/request.json +5 -0
  205. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/get/template.ejs +265 -0
  206. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/get/testParam.json +5 -0
  207. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/update/data.js +70 -0
  208. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/update/request.json +0 -0
  209. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/update/template.ejs +351 -0
  210. package/src/reStructure/TemplateData/perActionEndpoint/yaml/api/data.js +198 -0
  211. package/src/reStructure/TemplateData/perActionEndpoint/yaml/api/request.json +14 -0
  212. package/src/reStructure/TemplateData/perActionEndpoint/yaml/api/template.ejs +20 -0
  213. package/src/reStructure/TemplateData/perActionEndpoint/yaml/dsq/data.js +207 -0
  214. package/src/reStructure/TemplateData/perActionEndpoint/yaml/dsq/request.json +19 -0
  215. package/src/reStructure/TemplateData/perActionEndpoint/yaml/dsq/template.ejs +17 -0
  216. package/src/reStructure/TemplateData/perActionEndpoint/yaml/inv/data.js +189 -0
  217. package/src/reStructure/TemplateData/perActionEndpoint/yaml/inv/example req.js +15 -0
  218. package/src/reStructure/TemplateData/perActionEndpoint/yaml/inv/request.json +14 -0
  219. package/src/reStructure/TemplateData/perActionEndpoint/yaml/inv/template.ejs +13 -0
  220. package/src/reStructure/TemplateData/perActionEndpoint/yaml/sqs/data.js +208 -0
  221. package/src/reStructure/TemplateData/perActionEndpoint/yaml/sqs/request.json +19 -0
  222. package/src/reStructure/TemplateData/perActionEndpoint/yaml/sqs/template.ejs +17 -0
  223. package/src/reStructure/TemplateData/perActionEndpoint/yaml/wbs/data.js +170 -0
  224. package/src/reStructure/TemplateData/perActionEndpoint/yaml/wbs/request.json +19 -0
  225. package/src/{TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs → reStructure/TemplateData/perActionEndpoint/yaml/wbs}/template.ejs +2 -3
  226. package/src/reStructure/TemplateData/perActionEndpoint/yaml/webSocketConnect/data.js +59 -0
  227. package/src/reStructure/TemplateData/perActionEndpoint/yaml/webSocketConnect/template.ejs +10 -0
  228. package/src/reStructure/TemplateData/processLogical/generateTemplateData.js +57 -0
  229. package/src/reStructure/TemplateData/processLogical/handler/data.js +50 -0
  230. package/src/reStructure/TemplateData/processLogical/handler/template.ejs +129 -0
  231. package/src/reStructure/TemplateData/processLogical/mainFunction/data.js +47 -0
  232. package/src/reStructure/TemplateData/processLogical/mainFunction/template.ejs +429 -0
  233. package/src/reStructure/TemplateData/processLogical/yaml/data.js +160 -0
  234. package/src/reStructure/TemplateData/processLogical/yaml/template.ejs +12 -0
  235. package/src/{TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sns-out → reStructure/TemplateData/processLogicalPagination/DsqYaml}/data.js +16 -13
  236. package/src/reStructure/TemplateData/processLogicalPagination/DsqYaml/template.ejs +32 -0
  237. package/src/reStructure/TemplateData/processLogicalPagination/generateTemplateData.js +64 -0
  238. package/src/reStructure/TemplateData/processLogicalPagination/handler/dsq/data.js +48 -0
  239. package/src/reStructure/TemplateData/processLogicalPagination/handler/dsq/template.ejs +163 -0
  240. package/src/reStructure/TemplateData/processLogicalPagination/handler/sqs/data.js +48 -0
  241. package/src/reStructure/TemplateData/processLogicalPagination/handler/sqs/template.ejs +146 -0
  242. package/src/reStructure/TemplateData/processLogicalPagination/mainFunction/data.js +48 -0
  243. package/src/reStructure/TemplateData/processLogicalPagination/mainFunction/template.ejs +212 -0
  244. package/src/reStructure/TemplateData/processLogicalPagination/yaml/dsq/data.js +154 -0
  245. package/src/reStructure/TemplateData/processLogicalPagination/yaml/dsq/template.ejs +12 -0
  246. package/src/reStructure/TemplateData/processLogicalPagination/yaml/sqs/data.js +157 -0
  247. package/src/reStructure/TemplateData/processLogicalPagination/yaml/sqs/template.ejs +12 -0
  248. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/api/data.js +98 -0
  249. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/api/template.ejs +20 -0
  250. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/dsq/data.js +111 -0
  251. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/dsq/template.ejs +17 -0
  252. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/inv/data.js +97 -0
  253. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/inv/template.ejs +13 -0
  254. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/sqs/data.js +110 -0
  255. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/sqs/template.ejs +17 -0
  256. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/api/data.js +57 -0
  257. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/api/request.json +0 -0
  258. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/api/template.ejs +138 -0
  259. package/src/{TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq → reStructure/TemplateData/relationshipPerAction/create/action/handler/dsq}/data.js +18 -20
  260. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/dsq/request.json +0 -0
  261. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/dsq/template.ejs +184 -0
  262. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/inv/data.js +59 -0
  263. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/inv/request.json +0 -0
  264. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/inv/template.ejs +126 -0
  265. package/src/{TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs → reStructure/TemplateData/relationshipPerAction/create/action/handler/sqs}/data.js +16 -16
  266. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/sqs/request.json +0 -0
  267. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/sqs/template.ejs +163 -0
  268. package/src/reStructure/TemplateData/relationshipPerAction/create/action/mainFunction/data.js +59 -0
  269. package/src/reStructure/TemplateData/relationshipPerAction/create/action/mainFunction/template.ejs +380 -0
  270. package/src/reStructure/TemplateData/relationshipPerAction/create/action/sns-in-sqs/data.js +77 -0
  271. package/src/reStructure/TemplateData/relationshipPerAction/create/action/sns-in-sqs/snsTemplate.ejs +59 -0
  272. package/src/reStructure/TemplateData/relationshipPerAction/create/action/sns-in-sqs/sqsTemplate.ejs +43 -0
  273. package/src/{TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs → reStructure/TemplateData/relationshipPerAction/create/complete/functionYaml}/data.js +48 -29
  274. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/functionYaml/request.json +0 -0
  275. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/functionYaml/template.ejs +20 -0
  276. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/handler/sqs/data.js +60 -0
  277. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/handler/sqs/request.json +0 -0
  278. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/handler/sqs/template.ejs +125 -0
  279. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/mainFunction/data.js +55 -0
  280. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/mainFunction/request.json +0 -0
  281. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/mainFunction/template.ejs +141 -0
  282. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/sns-in-sqs/data.js +71 -0
  283. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/sns-in-sqs/request.json +0 -0
  284. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/sns-in-sqs/template.ejs +47 -0
  285. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/sns-out/data.js +71 -0
  286. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/sns-out/request.json +0 -0
  287. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/sns-out/template.ejs +10 -0
  288. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/api/data.js +98 -0
  289. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/api/template.ejs +20 -0
  290. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/dsq/data.js +111 -0
  291. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/dsq/template.ejs +17 -0
  292. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/inv/data.js +97 -0
  293. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/inv/template.ejs +13 -0
  294. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/sqs/data.js +111 -0
  295. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/sqs/template.ejs +17 -0
  296. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/api/data.js +57 -0
  297. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/api/request.json +0 -0
  298. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/api/template.ejs +138 -0
  299. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/dsq/data.js +58 -0
  300. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/dsq/request.json +0 -0
  301. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/dsq/template.ejs +184 -0
  302. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/inv/data.js +59 -0
  303. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/inv/request.json +0 -0
  304. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/inv/template.ejs +126 -0
  305. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/sqs/data.js +59 -0
  306. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/sqs/request.json +0 -0
  307. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/sqs/template.ejs +162 -0
  308. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/mainFunction/data.js +59 -0
  309. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/mainFunction/template.ejs +337 -0
  310. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/sns-in-sqs/data.js +77 -0
  311. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/sns-in-sqs/snsTemplate.ejs +59 -0
  312. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/sns-in-sqs/sqsTemplate.ejs +43 -0
  313. package/src/{TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrDsq → reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml}/data.js +49 -30
  314. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml/request.json +0 -0
  315. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml/template.ejs +20 -0
  316. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/handler/sqs/data.js +60 -0
  317. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/handler/sqs/request.json +0 -0
  318. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/handler/sqs/template.ejs +125 -0
  319. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/mainFunction/data.js +55 -0
  320. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/mainFunction/request.json +0 -0
  321. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/mainFunction/template.ejs +140 -0
  322. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/sns-in-sqs/data.js +70 -0
  323. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/sns-in-sqs/request.json +0 -0
  324. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/sns-in-sqs/template.ejs +47 -0
  325. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/sns-out/data.js +72 -0
  326. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/sns-out/request.json +0 -0
  327. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/sns-out/template.ejs +10 -0
  328. package/src/reStructure/TemplateData/relationshipPerAction/generateTemplateData.js +238 -0
  329. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/api/data.js +120 -0
  330. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/api/request.json +0 -0
  331. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/api/template.ejs +20 -0
  332. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/dsq/data.js +131 -0
  333. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/dsq/request.json +0 -0
  334. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/dsq/template.ejs +17 -0
  335. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/inv/data.js +124 -0
  336. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/inv/request.json +0 -0
  337. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/inv/template.ejs +13 -0
  338. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/sqs/data.js +135 -0
  339. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/sqs/request.json +0 -0
  340. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/sqs/template.ejs +17 -0
  341. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/api/data.js +77 -0
  342. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/api/request.json +7 -0
  343. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/api/template.ejs +140 -0
  344. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/dsq/data.js +75 -0
  345. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/dsq/request.json +7 -0
  346. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/dsq/template.ejs +184 -0
  347. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/inv/data.js +77 -0
  348. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/inv/request.json +5 -0
  349. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/inv/template.ejs +145 -0
  350. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/sqs/data.js +74 -0
  351. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/sqs/request.json +7 -0
  352. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/sqs/template.ejs +163 -0
  353. package/src/reStructure/TemplateData/relationshipPerAction/update/action/mainFunction/data.js +72 -0
  354. package/src/reStructure/TemplateData/relationshipPerAction/update/action/mainFunction/request.json +1 -0
  355. package/src/reStructure/TemplateData/relationshipPerAction/update/action/mainFunction/template.ejs +340 -0
  356. package/src/reStructure/TemplateData/relationshipPerAction/update/action/sns-in-sqs/data.js +92 -0
  357. package/src/reStructure/TemplateData/relationshipPerAction/update/action/sns-in-sqs/request.json +3 -0
  358. package/src/reStructure/TemplateData/relationshipPerAction/update/action/sns-in-sqs/snsTemplate.ejs +59 -0
  359. package/src/reStructure/TemplateData/relationshipPerAction/update/action/sns-in-sqs/sqsTemplate.ejs +43 -0
  360. package/src/reStructure/TemplateData/relationshipPerAction/update/action/sns-out/data.js +70 -0
  361. package/src/reStructure/TemplateData/relationshipPerAction/update/action/sns-out/request.json +3 -0
  362. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/data.js +110 -0
  363. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/request.json +3 -0
  364. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/template.ejs +20 -0
  365. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/handler/sqs/data.js +61 -0
  366. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/handler/sqs/request.json +0 -0
  367. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/handler/sqs/template.ejs +127 -0
  368. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/mainFunction/data.js +63 -0
  369. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/mainFunction/request.json +1 -0
  370. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/mainFunction/template.ejs +143 -0
  371. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/sns-in-sqs/data.js +71 -0
  372. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/sns-in-sqs/request.json +3 -0
  373. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/sns-in-sqs/template.ejs +46 -0
  374. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/sns-out/data.js +70 -0
  375. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/sns-out/request.json +3 -0
  376. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/sns-out/template.ejs +10 -0
  377. package/src/reStructure/TemplateData/resourceYaml/CreateSourceData.js +73 -0
  378. package/src/reStructure/TemplateData/resourceYaml/dynamodb/defaultDynamoDbTable.js +146 -0
  379. package/src/reStructure/TemplateData/resourceYaml/dynamodb/mainResourcePerObjectSchemaData.js +178 -0
  380. package/src/reStructure/TemplateData/resourceYaml/dynamodb/request.json +7 -0
  381. package/src/reStructure/TemplateData/resourceYaml/dynamodb/template.ejs +31 -0
  382. package/src/reStructure/TemplateData/resourceYaml/generateTemplateData.js +99 -0
  383. package/src/reStructure/TemplateData/resourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical.js +96 -0
  384. package/src/reStructure/TemplateData/resourceYaml/sns-in-sqs/request.json +4 -0
  385. package/src/reStructure/TemplateData/resourceYaml/sns-in-sqs/snsAndSqsPerActionData.js +108 -0
  386. package/src/reStructure/TemplateData/resourceYaml/sns-in-sqs/snsTemplate.ejs +59 -0
  387. package/src/reStructure/TemplateData/resourceYaml/sns-in-sqs/sqsTemplate.ejs +43 -0
  388. package/src/reStructure/TemplateData/resourceYaml/sns-out/data.js +88 -0
  389. package/src/reStructure/TemplateData/resourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical.js +75 -0
  390. package/src/reStructure/TemplateData/resourceYaml/sns-out/request.json +3 -0
  391. package/src/reStructure/TemplateData/resourceYaml/sns-out/template.ejs +10 -0
  392. package/src/reStructure/test.bash +192 -0
  393. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/data.js +0 -94
  394. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/template.ejs +0 -192
  395. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/template.ejs +0 -299
  396. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/template.ejs +0 -155
  397. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/template.ejs +0 -163
  398. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/data.js +0 -61
  399. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/template.ejs +0 -145
  400. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/dynamoDb/data.js +0 -120
  401. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/sns-sqs/data.js +0 -75
  402. package/src/TemplateManager/src/reStructureExample/GenerateCodeTest.js +0 -31
  403. package/src/TemplateManager/src/reStructureExample/TemplateConfig.js +0 -11
  404. package/src/TemplateManager/src/reStructureExample/TemplateData/perAction/generateCodeShared.js +0 -1
  405. package/src/TemplateManager/src/reStructureExample/TemplateData/perAction/generatePerAction.js +0 -5
  406. /package/src/{TemplateManager/src/reStructureExample/TemplateData/perAction → reStructure/TemplateData/flowSchema/components/schema/inProcess/mainFunction}/template.ejs +0 -0
  407. /package/src/{TemplateManager/src/reStructureExample/TemplateData/perAction/data.js → reStructure/TemplateData/flowSchema/components/schema/inProcess/sns-sqs/template.ejs} +0 -0
  408. /package/src/{TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/template.ejs → reStructure/TemplateData/flowSchema/components/upload/hook/queue/sqsTemplate.ejs} +0 -0
@@ -0,0 +1,66 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ 'use strict';
19
+ const path = require('path');
20
+ const { createHookFunction } = require('../../../../../../GenerateCodeLibs/src/GenerateCodeLibs')
21
+ const { FLOW_SCHEMA_HOOK_STATE } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
22
+ const { firstLetterUpperCase: upperCase } = require('../../../../../../MainLibs/src/Utils')
23
+ const { SOURCE_PATH, defaultIamRolePerAction, createIamRole, RESOURCE_CLASSES, SNS_RESOURCE, resourceNames, DYNAMO_RESOURCE, SAVE_FILE_NAME, FUNCTION_NAME, shortNameHandler } = require("../../../../libs/Consts");
24
+ const templatePath = path.join(__dirname, "template.ejs")
25
+ /**
26
+ * receive objectSchema
27
+ * create data for WebScoket handler template
28
+ *
29
+ * @param {Object} objectSchema
30
+ * @return {{templatePath, templateData,setting}}
31
+ */
32
+
33
+ function data(_izContext, flowSchema, srcPath) {
34
+ return [createSourceParams(_izContext, flowSchema, srcPath)]
35
+ }
36
+
37
+ function createSourceParams(_izContext, flowSchema, srcPath) {
38
+ let hook;
39
+ let hookFunctionName;
40
+ if (flowSchema?.hook) {
41
+ for (const [hookName, hookProperties] of Object.entries(flowSchema.hook)) {
42
+ for (const hookFunction of hookProperties.functionList) {
43
+ if (hookName === FLOW_SCHEMA_HOOK_STATE.beforeCreate) {
44
+ if (hookFunction.event.continueFlow === true) {
45
+ hook = true
46
+ hookFunctionName = hookFunction.name
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ return {
53
+ templatePath: templatePath,
54
+ templateData: {
55
+ hookFunctionName
56
+ },
57
+ setting: {
58
+ savePath: path.join(srcPath, SOURCE_PATH.generatedCodeHookFunction),
59
+ saveFileName: `${upperCase(hookFunctionName)}_Main`,
60
+ fileExtension: ".js",
61
+ isAppend: false
62
+ }
63
+ }
64
+ }
65
+
66
+ module.exports = data;
@@ -0,0 +1,30 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ 'use strict';
19
+
20
+ const <%- hookFunctionName %> = require("../../HookLogicFunction/source/<%- upperCase(hookFunctionName) %>");
21
+ const createObjectMain = require("../../../CreateObjectS3_Main")
22
+
23
+ module.exports.main = async (event, callingFlow) => {
24
+ const result = await <%- hookFunctionName %>(event);
25
+ await createObjectMain(...result, callingFlow);
26
+ }
27
+
28
+ <%_ function upperCase(string) {
29
+ return string.charAt(0).toUpperCase() + string.slice(1);
30
+ } _%>
@@ -0,0 +1,124 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ 'use strict';
19
+ const path = require('path');
20
+ const { HANDLER } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
21
+ const { firstLetterUpperCase: upperCase } = require('../../../../../../MainLibs/src/Utils')
22
+ const { SOURCE_PATH, defaultIamRolePerAction, createIamRole, RESOURCE_CLASSES, SNS_RESOURCE, resourceNames, DYNAMO_RESOURCE, SAVE_FILE_NAME, FUNCTION_NAME, shortNameHandler, SQS_RESOURCE } = require("../../../../libs/Consts");
23
+ const snsTemplatePath = path.join(__dirname, "./snsTemplate.ejs");
24
+ const sqsTemplatePath = path.join(__dirname, "./sqsTemplate.ejs");
25
+ /**
26
+ * receive objectSchema
27
+ * create data for WebScoket handler template
28
+ *
29
+ * @param {Object} objectSchema
30
+ * @return {{templatePath, templateData,setting}}
31
+ */
32
+
33
+ function createSourceParams(_izContext, flowSchema, srcPath) {
34
+ let queueNames = [];
35
+ let resultForCreateQueueHook = []
36
+ const settings = {
37
+ saveFileName: SAVE_FILE_NAME.snsInSqsYaml,
38
+ savePath: path.join(srcPath, SOURCE_PATH.resourceYaml),
39
+ fileExtension: ".yml",
40
+ isAppend: true
41
+ }
42
+ if (flowSchema?.hook) {
43
+ for (const hookProperties of Object.values(flowSchema.hook)) {
44
+ for (const hookFunction of hookProperties.functionList) {
45
+ if (hookFunction.event.continueFlow === true) {
46
+ if (hookFunction.event.handlerType === HANDLER.hdrSqs) {
47
+ queueNames.push(
48
+ {
49
+ queueName: "In" + createResourceSqsAndSns(
50
+ hookFunction.event.handlerType,
51
+ upperCase(hookProperties.name)
52
+ )
53
+ }
54
+ )
55
+ } else if (hookFunction.event.handlerType === HANDLER.hdrDsq) {
56
+ queueNames.push(
57
+ {
58
+ queueName: createResourceSqsAndSns(
59
+ hookFunction.event.handlerType,
60
+ upperCase(hookFunction.name)
61
+ )
62
+ }
63
+ )
64
+ }
65
+ if (hookFunction.event.createNewTopic === true) {
66
+ if (hookFunction.event.handlerType === HANDLER.hdrSqs) {
67
+ queueNames.push(
68
+ {
69
+ queueName: createResourceSqsAndSns(
70
+ hookFunction.event.handlerType,
71
+ upperCase(hookFunction.event.topicName)
72
+ )
73
+ }
74
+ )
75
+ } else if (hookFunction.event.handlerType === HANDLER.hdrDsq) {
76
+ queueNames.push(
77
+ {
78
+ queueName: createResourceSqsAndSns(
79
+ hookFunction.event.handlerType,
80
+ upperCase(hookFunction.event.queueName)
81
+
82
+ )
83
+ }
84
+ )
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+
93
+ for (const queueName of queueNames) {
94
+ if (queueName.queueName.includes(upperCase(HANDLER.hdrDsq))) {
95
+ resultForCreateQueueHook.push({
96
+ templatePath: sqsTemplatePath,
97
+ templateData: queueName.queueName,
98
+ setting: settings
99
+ })
100
+ } else {
101
+ resultForCreateQueueHook.push({
102
+ templatePath: snsTemplatePath,
103
+ templateData: queueName,
104
+ setting: settings
105
+ })
106
+ }
107
+ }
108
+ console.log("resultForCreateQueueHook: ", resultForCreateQueueHook);
109
+ return resultForCreateQueueHook;
110
+ }
111
+
112
+ function createResourceSqsAndSns(handlerType, resourceName) {
113
+ let queueName
114
+ if (handlerType === HANDLER.hdrDsq) {
115
+ queueName = upperCase(resourceName) + handlerType
116
+ } else if (handlerType === HANDLER.hdrSqs) {
117
+ if (resourceName.includes("In")) {
118
+ resourceName.slice(2)
119
+ }
120
+ queueName = resourceName
121
+ }
122
+ return queueName
123
+ }
124
+ module.exports = createSourceParams;
@@ -0,0 +1,59 @@
1
+ ##===== [Create topic in]
2
+ In<%- queueName %>:
3
+ Type: AWS::SNS::Topic
4
+ Properties:
5
+ DisplayName: "SNS Message in"
6
+ TopicName: ${self:custom.iz_resourcePrefix}In<%- queueName %>
7
+ ##===== SNS Subscription
8
+ ##===== [Topic In]
9
+ SubscriptionIn<%- queueName %>:
10
+ Type: AWS::SNS::Subscription
11
+ Properties:
12
+ TopicArn: !Ref In<%- queueName %>
13
+ Endpoint: "arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs"
14
+ Protocol: "sqs"
15
+ ##===== [Queue]
16
+ <%- queueName %>HdrSqs:
17
+ Type: "AWS::SQS::Queue"
18
+ Properties:
19
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs
20
+ RedrivePolicy:
21
+ deadLetterTargetArn:
22
+ # !GetAtt
23
+ Fn::GetAtt:
24
+ - <%- queueName %>HdrSqsDLQ
25
+ - Arn
26
+ maxReceiveCount: 3
27
+ VisibilityTimeout: 120
28
+ ##==== [QueueDLQ]
29
+ <%- queueName %>HdrSqsDLQ:
30
+ Type: AWS::SQS::Queue
31
+ Properties:
32
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqsDLQ
33
+ ##==== [QueuePolicy]
34
+ <%- queueName %>HdrSqsPolicy:
35
+ Type: AWS::SQS::QueuePolicy
36
+ Properties:
37
+ PolicyDocument:
38
+ Version: "2012-10-17"
39
+ Statement:
40
+ - Sid: "allow-sns-messages"
41
+ Effect: Allow
42
+ Principal: "*"
43
+ Resource:
44
+ # !GetAtt
45
+ Fn::GetAtt:
46
+ - <%- queueName %>HdrSqs
47
+ - Arn
48
+ Action: "SQS:SendMessage"
49
+ Queues:
50
+ - Ref: <%- queueName %>HdrSqs
51
+ #<#<%- firstLetterUpperCase(queueName) %>QueueSetting#>
52
+ #<#/<%- firstLetterUpperCase(queueName) %>QueueSetting#>
53
+
54
+ <%_ function firstLetterUpperCase(text){
55
+ return text.charAt(0).toUpperCase() + text.slice(1)
56
+ } _%>
57
+ <%_ function firstLetterLowerCase(str) {
58
+ return str.charAt(0).toLowerCase() + str.slice(1)
59
+ } _%>
@@ -0,0 +1,43 @@
1
+ #------- queue ---------
2
+ <%- queueName %>:
3
+ Type: "AWS::SQS::Queue"
4
+ Properties:
5
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>
6
+ RedrivePolicy:
7
+ deadLetterTargetArn: #!GetAtt
8
+ Fn::GetAtt:
9
+ - <%- queueName %>DLQ
10
+ - Arn
11
+ maxReceiveCount: 3
12
+ VisibilityTimeout: 120
13
+
14
+ <%- queueName %>DLQ:
15
+ Type: AWS::SQS::Queue
16
+ Properties:
17
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>DLQ
18
+
19
+ <%- queueName %>Policy:
20
+ Type: AWS::SQS::QueuePolicy
21
+ Properties:
22
+ PolicyDocument:
23
+ Version: "2012-10-17"
24
+ Statement:
25
+ - Sid: "allow-sns-messages"
26
+ Effect: Allow
27
+ Principal: "*"
28
+ Resource: #!GetAtt
29
+ Fn::GetAtt:
30
+ - <%- queueName %>
31
+ - Arn
32
+ Action: "SQS:SendMessage"
33
+ Queues:
34
+ - Ref: <%- queueName %>
35
+ #<#<%- firstLetterUpperCase(queueName) %>QueueSetting#>
36
+ #<#/<%- firstLetterUpperCase(queueName) %>QueueSetting#>
37
+
38
+ <%_ function firstLetterUpperCase(text){
39
+ return text.charAt(0).toUpperCase() + text.slice(1)
40
+ } _%>
41
+ <%_ function firstLetterLowerCase(str) {
42
+ return str.charAt(0).toLowerCase() + str.slice(1)
43
+ } _%>
@@ -0,0 +1,276 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+ This program is free software: you can redistribute it and/or modify
4
+ it under the terms of the GNU Affero General Public License as
5
+ published by the Free Software Foundation, either version 3 of the
6
+ License, or (at your option) any later version.
7
+ This program is distributed in the hope that it will be useful,
8
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
9
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
+ GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public License
12
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
13
+ */
14
+
15
+ 'use strict';
16
+
17
+ const { SOURCE_GENERATE_IAM_ROLE, SOURCE_PATH, SAVE_FILE_NAME } = require('../../../MainLibs/index').consts;
18
+ const { firstLetterUpperCase: upperCase } = require("../../../MainLibs/index").utils;
19
+ const path = require('path');
20
+
21
+ /**
22
+ * Process additional resource permissions for an object type
23
+ * @param {Array} resourcePermissions - Array of resource permissions to process
24
+ * @param {Object} targetResources - Resources object to update
25
+ */
26
+ const processResourcePermissions = (resourcePermissions, targetResources) => {
27
+ if (!Array.isArray(resourcePermissions)) return;
28
+ resourcePermissions.forEach(resourcePermission => {
29
+ if (!resourcePermission.action) return;
30
+ const [key, value] = Object.entries(resourcePermission.action)[0];
31
+ if (!targetResources[key]) {
32
+ targetResources[key] = [];
33
+ }
34
+ const actionsList = Array.isArray(value) ? value : [value];
35
+ const resourcesList = Array.isArray(resourcePermission.resource)
36
+ ? resourcePermission.resource
37
+ : [resourcePermission.resource];
38
+ // Check if entry with same actions exists
39
+ const existingEntry = targetResources[key].find(entry =>
40
+ JSON.stringify(entry.actions) === JSON.stringify(actionsList)
41
+ );
42
+ if (existingEntry) {
43
+ // Merge resources without duplicates
44
+ existingEntry.resource = [
45
+ ...new Set([...existingEntry.resource, ...resourcesList])
46
+ ];
47
+ } else {
48
+ // Add new entry
49
+ targetResources[key].push({
50
+ actions: actionsList,
51
+ resource: resourcesList
52
+ });
53
+ }
54
+ });
55
+ };
56
+
57
+ /**
58
+ * Check if an item should be skipped based on templateData content
59
+ * @param {Object} templateData - Template data to check
60
+ * @returns {Boolean} True if item should be skipped
61
+ */
62
+ const shouldSkipItem = (templateData) => {
63
+ return !templateData ||
64
+ Object.keys(templateData).length === 0 ||
65
+ !templateData.additionalResourcePermission;
66
+ };
67
+
68
+ /**
69
+ * Initialize object type structure if it doesn't exist
70
+ * @param {Object} groupedByObjectType - The grouped object
71
+ * @param {String} objectType - Object type to initialize
72
+ * @param {Array} objectTypeList - List to track object types
73
+ */
74
+ const initializeObjectType = (groupedByObjectType, objectType, objectTypeList) => {
75
+ if (!groupedByObjectType[objectType]) {
76
+ groupedByObjectType[objectType] = {
77
+ functionNames: [],
78
+ actions: [],
79
+ resources: {},
80
+ actionHandler: []
81
+ };
82
+ objectTypeList.push(objectType);
83
+ }
84
+ };
85
+ const createSharedResource = (_izContext, createSourceParams, srcPath) => {
86
+ // Initialize data structure
87
+ const groupedByObjectType = {
88
+ [SOURCE_GENERATE_IAM_ROLE.ProcessFindDataRole]: {
89
+ handlerType: [],
90
+ resources: {}
91
+ },
92
+ [SOURCE_GENERATE_IAM_ROLE.ObjectCompleteRole]: {
93
+ functionNames: [],
94
+ handlerType: [],
95
+ resources: {}
96
+ },
97
+ [SOURCE_GENERATE_IAM_ROLE.RelationshipRole]: {
98
+ handlerType: [],
99
+ resources: {}
100
+ },
101
+ [SOURCE_GENERATE_IAM_ROLE.RelationshipCompleteRole]: {
102
+ handlerType: [],
103
+ resources: []
104
+ },
105
+ Other: []
106
+ };
107
+ const objectTypeList = [];
108
+ // Ensure data is defined - assuming it comes from createSourceParams
109
+ const data = createSourceParams || [];
110
+ // Process each item in data
111
+ data.map((item) => {
112
+ const templateData = item.templateData;
113
+ if (shouldSkipItem(templateData)) return;
114
+
115
+ // ? Handle items with objectType and roleName
116
+ if (templateData.objectType) {
117
+ const objectType = templateData.roleName ? templateData.roleName : templateData.objectType;
118
+ // Handle items with objectType
119
+ initializeObjectType(groupedByObjectType, objectType, objectTypeList);
120
+ // Add function name if it doesn't exist
121
+ if (templateData.functionName &&
122
+ !groupedByObjectType[objectType].functionNames?.includes(templateData.functionName)) {
123
+ groupedByObjectType[objectType].functionNames.push(templateData.functionName);
124
+ }
125
+ // Add action if it doesn't exist
126
+ if (templateData.action !== null &&
127
+ !groupedByObjectType[objectType].actions?.includes(templateData.action)) {
128
+ groupedByObjectType[objectType].actions.push(templateData.action);
129
+ }
130
+ // Process additionalResourcePermission
131
+ processResourcePermissions(
132
+ templateData.additionalResourcePermission,
133
+ groupedByObjectType[objectType].resources
134
+ );
135
+ }
136
+ else if (templateData.functionName &&
137
+ (templateData.functionName.includes([SOURCE_GENERATE_IAM_ROLE.ObjectCompleteRole]) ||
138
+ templateData.functionName.includes([SOURCE_GENERATE_IAM_ROLE.NodeCompleteRole]))) {
139
+ // Handle ObjectComplete items
140
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.ObjectCompleteRole].functionNames.push(templateData.functionName);
141
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.ObjectCompleteRole].handlerType.push(templateData.handlerType);
142
+ processResourcePermissions(
143
+ templateData.additionalResourcePermission,
144
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.ObjectCompleteRole].resources
145
+ );
146
+ }
147
+ else if (templateData.functionName && templateData.functionName.includes([SOURCE_GENERATE_IAM_ROLE.RelationshipRole])) {
148
+ if (templateData.functionName.includes([SOURCE_GENERATE_IAM_ROLE.RelationshipCompleteRole])) {
149
+ // Handle RelationshipComplete items
150
+ if (templateData.handlerType &&
151
+ !groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.RelationshipCompleteRole].handlerType.includes(templateData.handlerType)) {
152
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.RelationshipCompleteRole].handlerType.push(templateData.handlerType);
153
+ }
154
+ processResourcePermissions(
155
+ templateData.additionalResourcePermission,
156
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.RelationshipCompleteRole].resources
157
+ );
158
+ } else {
159
+ // Handle regular Relationship items
160
+ if (templateData.handlerType &&
161
+ !groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.RelationshipRole].handlerType.includes(templateData.handlerType)) {
162
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.RelationshipRole].handlerType.push(templateData.handlerType);
163
+ }
164
+ processResourcePermissions(
165
+ templateData.additionalResourcePermission,
166
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.RelationshipRole].resources
167
+ );
168
+ }
169
+ }
170
+ else if (templateData.functionName &&
171
+ (templateData.functionName.includes('PaginateProcessLogical') ||
172
+ templateData.functionName.includes('FindData') ||
173
+ templateData.functionName.includes('ProcessLogical'))) {
174
+ // Handle ProcessFindData items
175
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.ProcessFindDataRole].handlerType.push(templateData.handlerType);
176
+ processResourcePermissions(
177
+ templateData.additionalResourcePermission,
178
+ groupedByObjectType[SOURCE_GENERATE_IAM_ROLE.ProcessFindDataRole].resources
179
+ );
180
+ }
181
+ else {
182
+ // Handle other items
183
+ groupedByObjectType.Other.push(item);
184
+ }
185
+ return item;
186
+ });
187
+ // Process "Other" items that might belong to existing object types
188
+ groupedByObjectType.Other = groupedByObjectType.Other.filter(item => {
189
+ const templateData = item.templateData;
190
+ if (!templateData.functionName) return true;
191
+ // Find matching objectType
192
+ const matchedObjectType = objectTypeList.find(objectType =>
193
+ templateData.functionName.toLowerCase().includes(objectType.toLowerCase()) ||
194
+ templateData.functionName.includes(objectType.charAt(0).toUpperCase() + objectType.slice(1))
195
+ );
196
+ if (matchedObjectType) {
197
+ // Move the item to the matched object type
198
+ groupedByObjectType[matchedObjectType].actionHandler.push(templateData.handlerType);
199
+ groupedByObjectType[matchedObjectType].resources = {
200
+ ...groupedByObjectType[matchedObjectType].resources,
201
+ ...templateData.additionalResourcePermission
202
+ };
203
+ return false; // Remove from Other
204
+ }
205
+ return true; // Keep in Other
206
+ });
207
+ // Prepare results
208
+
209
+ // Process and prepare data for role definitions and extract any resources
210
+ // that might be related to object types but weren't categorized properly
211
+ const roles = [];
212
+ Object.entries(groupedByObjectType).forEach(([objectType, data]) => {
213
+ if (objectType === 'Other' || !data.resources) return;
214
+ // create policy statements from resources
215
+ const rolePolicyStatement = [];
216
+ Object.entries(data.resources).forEach(([effect, permissionList]) => {
217
+ if (!Array.isArray(permissionList)) {
218
+ // permissionList might be in a different format
219
+ if (typeof permissionList === 'object' && !Array.isArray(permissionList)) {
220
+ // Handle non-standard format
221
+ const actions = [];
222
+ if (permissionList.action) {
223
+ const actionObj = permissionList.action;
224
+ Object.entries(actionObj).forEach(([service, actionList]) => {
225
+ const actionArray = Array.isArray(actionList) ? actionList : [actionList];
226
+ actionArray.forEach(action => actions.push(`${service}:${action}`));
227
+ });
228
+ }
229
+ rolePolicyStatement.push({
230
+ Effect: permissionList.effect || 'Allow',
231
+ Action: actions,
232
+ Resource: permissionList.resource
233
+ });
234
+ return;
235
+ }
236
+ rolePolicyStatement.push({
237
+ Effect: permissionList.effect,
238
+ Action: actions,
239
+ Resource: permission.resource
240
+ });
241
+ return;
242
+ };
243
+ permissionList.forEach(permission => {
244
+ const actions = permission.actions.map(action => `${effect}:${action}`);
245
+ rolePolicyStatement.push({
246
+ Effect: 'Allow',
247
+ Action: actions,
248
+ Resource: permission.resource
249
+ });
250
+ });
251
+ });
252
+ if (rolePolicyStatement.length > 0) {
253
+ roles.push({
254
+ roleName: upperCase(objectType),
255
+ rolePolicyStatement
256
+ });
257
+ }
258
+ });
259
+ const sharedResourceTemplatePath = path.join(__dirname, './sharedResourceTemplate.ejs')
260
+
261
+ return {
262
+ templatePath: sharedResourceTemplatePath,
263
+ templateData: { roles },
264
+ setting: {
265
+ initialData: 'Resources:\n',
266
+ savePath: path.join(srcPath, SOURCE_PATH.appYaml),
267
+ saveFileName: SAVE_FILE_NAME.sharedResourceYaml,
268
+ fileExtension: '.yml',
269
+ isAppend: true
270
+ }
271
+ }
272
+ };
273
+
274
+ module.exports = {
275
+ createSharedResource
276
+ }
@@ -0,0 +1,58 @@
1
+ #IAM Role for Upload Schema functionality
2
+ UploadSchemaRole:
3
+ Type: AWS::IAM::Role
4
+ Properties:
5
+ RoleName: ${self:custom.iz_resourcePrefix}UploadSchemaRole
6
+ AssumeRolePolicyDocument:
7
+ Version: "2012-10-17"
8
+ Statement:
9
+ - Effect: Allow
10
+ Principal:
11
+ Service: "lambda.amazonaws.com"
12
+ Action: sts:AssumeRole
13
+ # this is the managed policy for lambda basic execution ex. logging to cloudwatch
14
+ ManagedPolicyArns:
15
+ - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
16
+ - arn:aws:iam::${self:custom.iz_accountId}:policy/UploadSchemaSharedPolicy
17
+ Policies:
18
+ - PolicyName: ${self:custom.iz_resourcePrefix}UploadSchemaPolicy
19
+ PolicyDocument:
20
+ Version: "2012-10-17"
21
+ Statement:
22
+ - Effect: Allow
23
+ Action:
24
+ - s3:PutObject
25
+ - s3:GetObject
26
+ - s3:ListBucket
27
+ Resource:
28
+ - arn:aws:s3:::object-schema/*
29
+ - arn:aws:s3:::object-schema/perServiceSchemas/${self:custom.iz_serviceTag}/*
30
+ <% if (roles && roles.length > 0) { -%>
31
+ <% roles.forEach(function(role) { %>
32
+ <%= role.roleName %>Role:
33
+ Type: AWS::IAM::Role
34
+ Properties:
35
+ RoleName: ${self:custom.iz_resourcePrefix}<%= role.roleName %>Role
36
+ AssumeRolePolicyDocument:
37
+ Version: "2012-10-17"
38
+ Statement:
39
+ - Effect: Allow
40
+ Principal:
41
+ Service: "lambda.amazonaws.com"
42
+ Action: sts:AssumeRole
43
+ ManagedPolicyArns:
44
+ - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
45
+ Policies:
46
+ - PolicyName: ${self:custom.iz_resourcePrefix}<%= role.roleName %>Policy
47
+ PolicyDocument:
48
+ Version: "2012-10-17"
49
+ Statement:<% role.rolePolicyStatement.forEach(function(statement) { %>
50
+ - Effect: <%= statement.Effect %><%_ if (Array.isArray(statement.Action)) { %>
51
+ Action:<% statement.Action.forEach(function(action) { %>
52
+ - <%= action %><% }); %><% } else { %>Action: <%= statement.Action %><% } -%>
53
+ <% if (Array.isArray(statement.Resource)) { %>
54
+ Resource:<% statement.Resource.forEach(function(resource) { %>
55
+ - <%= resource -%><% }); %><% } else { %>
56
+ Resource: <%= statement.Resource %><% } %><% }); %>
57
+ <% }); %>
58
+ <% } %>