@gradientedge/cdk-utils 4.3.0 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. package/README.md +38 -23
  2. package/api-docs/AcmManager.html +619 -0
  3. package/api-docs/AcmProps.html +235 -0
  4. package/api-docs/AlarmProps.html +235 -0
  5. package/api-docs/AlarmStatusWidgetProps.html +235 -0
  6. package/api-docs/ApiDestinationEvent.html +294 -0
  7. package/api-docs/ApiDestinationEventType.html +235 -0
  8. package/api-docs/ApiDestinedLambda.html +294 -0
  9. package/api-docs/ApiDestinedLambdaEnvironment.html +235 -0
  10. package/api-docs/ApiDestinedLambdaType.html +235 -0
  11. package/api-docs/ApiDestinedRestApi.html +294 -0
  12. package/api-docs/ApiDestinedRestApiType.html +235 -0
  13. package/api-docs/ApiManager.html +763 -0
  14. package/api-docs/ApiToEventBridgeTarget.html +1874 -0
  15. package/api-docs/ApiToEventBridgeTarget.jpg +0 -0
  16. package/api-docs/ApiToEventBridgeTargetEventProps.html +235 -0
  17. package/api-docs/ApiToEventBridgeTargetLambdaProps.html +235 -0
  18. package/api-docs/ApiToEventBridgeTargetProps.html +235 -0
  19. package/api-docs/AppConfigManager.html +1200 -0
  20. package/api-docs/AppConfigProps.html +235 -0
  21. package/api-docs/CloudFrontManager.html +2399 -0
  22. package/api-docs/CloudFrontProps.html +235 -0
  23. package/api-docs/CloudTrailManager.html +634 -0
  24. package/api-docs/CloudTrailProps.html +235 -0
  25. package/api-docs/CloudWatchManager.html +2983 -0
  26. package/api-docs/CloudfrontFunctionProps.html +235 -0
  27. package/api-docs/CodeBuildManager.html +733 -0
  28. package/api-docs/CommonConstruct.html +1296 -0
  29. package/api-docs/CommonStack.html +810 -0
  30. package/api-docs/CommonStackProps.html +235 -0
  31. package/api-docs/DashboardProps.html +235 -0
  32. package/api-docs/DistributionProps.html +235 -0
  33. package/api-docs/DynamodbManager.html +527 -0
  34. package/api-docs/EcrManager.html +527 -0
  35. package/api-docs/EcsClusterProps.html +235 -0
  36. package/api-docs/EcsManager.html +877 -0
  37. package/api-docs/EcsTaskProps.html +235 -0
  38. package/api-docs/EksClusterProps.html +235 -0
  39. package/api-docs/EksManager.html +577 -0
  40. package/api-docs/EventBusProps.html +235 -0
  41. package/api-docs/EventManager.html +1451 -0
  42. package/api-docs/EventRuleProps.html +235 -0
  43. package/api-docs/GraphQLApiLambda.html +1668 -0
  44. package/api-docs/GraphQLApiLambda.jpg +0 -0
  45. package/api-docs/GraphQlApiLambdaEnvironment.html +235 -0
  46. package/api-docs/GraphQlApiLambdaProps.html +235 -0
  47. package/api-docs/GraphWidgetProps.html +235 -0
  48. package/api-docs/HealthCheck.html +235 -0
  49. package/api-docs/IamManager.html +3818 -0
  50. package/api-docs/LambdaEdgeProps.html +235 -0
  51. package/api-docs/LambdaEnvironment.html +235 -0
  52. package/api-docs/LambdaManager.html +2375 -0
  53. package/api-docs/LambdaProps.html +235 -0
  54. package/api-docs/LogManager.html +952 -0
  55. package/api-docs/LogProps.html +235 -0
  56. package/api-docs/LogQueryWidgetProps.html +235 -0
  57. package/api-docs/MetricFilterProps.html +235 -0
  58. package/api-docs/MetricProps.html +235 -0
  59. package/api-docs/NumericWidgetProps.html +235 -0
  60. package/api-docs/Route53Manager.html +1457 -0
  61. package/api-docs/Route53Props.html +235 -0
  62. package/api-docs/RuleProps.html +235 -0
  63. package/api-docs/S3BucketProps.html +235 -0
  64. package/api-docs/S3Manager.html +1543 -0
  65. package/api-docs/SSMParameterReader.html +428 -0
  66. package/api-docs/SSMParameterReaderProps.html +235 -0
  67. package/api-docs/SecretsManager.html +1137 -0
  68. package/api-docs/SiteWithEcsBackend.html +2388 -0
  69. package/api-docs/SiteWithEcsBackendProps.html +235 -0
  70. package/api-docs/SnsManager.html +777 -0
  71. package/api-docs/SsmManager.html +952 -0
  72. package/api-docs/StaticSite.html +1355 -0
  73. package/api-docs/StaticSiteProps.html +235 -0
  74. package/api-docs/SubscriptionProps.html +235 -0
  75. package/api-docs/TableProps.html +235 -0
  76. package/api-docs/TextWidgetProps.html +235 -0
  77. package/api-docs/VpcManager.html +983 -0
  78. package/api-docs/WafIPSetProps.html +235 -0
  79. package/api-docs/WafManager.html +727 -0
  80. package/api-docs/WafWebACLProps.html +235 -0
  81. package/api-docs/common_construct.ts.html +275 -0
  82. package/api-docs/common_stack.ts.html +299 -0
  83. package/api-docs/construct_api-to-eventbridge-target_api-destination-event.ts.html +171 -0
  84. package/api-docs/construct_api-to-eventbridge-target_api-destined-lambda.ts.html +174 -0
  85. package/api-docs/construct_api-to-eventbridge-target_api-destined-rest-api.ts.html +186 -0
  86. package/api-docs/construct_api-to-eventbridge-target_main.ts.html +747 -0
  87. package/api-docs/construct_graphql-api-lambda_main.ts.html +404 -0
  88. package/api-docs/construct_site-with-ecs-backend_main.ts.html +540 -0
  89. package/api-docs/construct_static-site_main.ts.html +370 -0
  90. package/api-docs/global.html +1527 -0
  91. package/api-docs/index.html +207 -0
  92. package/api-docs/manager_aws_acm-manager.ts.html +232 -0
  93. package/api-docs/manager_aws_api-manager.ts.html +256 -0
  94. package/api-docs/manager_aws_app-config-manager.ts.html +305 -0
  95. package/api-docs/manager_aws_cloudfront-manager.ts.html +487 -0
  96. package/api-docs/manager_aws_cloudtrail-manager.ts.html +247 -0
  97. package/api-docs/manager_aws_cloudwatch-manager.ts.html +548 -0
  98. package/api-docs/manager_aws_codebuild-manager.ts.html +236 -0
  99. package/api-docs/manager_aws_dynamodb-manager.ts.html +215 -0
  100. package/api-docs/manager_aws_ecr-manager.ts.html +195 -0
  101. package/api-docs/manager_aws_ecs-manager.ts.html +255 -0
  102. package/api-docs/manager_aws_eks-manager.ts.html +256 -0
  103. package/api-docs/manager_aws_event-manager.ts.html +332 -0
  104. package/api-docs/manager_aws_iam-manager.ts.html +569 -0
  105. package/api-docs/manager_aws_lambda-manager.ts.html +396 -0
  106. package/api-docs/manager_aws_log-manager.ts.html +255 -0
  107. package/api-docs/manager_aws_route53-manager.ts.html +329 -0
  108. package/api-docs/manager_aws_s3-manager.ts.html +357 -0
  109. package/api-docs/manager_aws_secrets-manager.ts.html +270 -0
  110. package/api-docs/manager_aws_sns-manager.ts.html +242 -0
  111. package/api-docs/manager_aws_ssm-manager.ts.html +268 -0
  112. package/api-docs/manager_aws_vpc-manager.ts.html +239 -0
  113. package/api-docs/manager_aws_waf-manager.ts.html +228 -0
  114. package/api-docs/scripts/app.min.js +1 -0
  115. package/api-docs/scripts/linenumber.js +26 -0
  116. package/api-docs/scripts/search.js +39 -0
  117. package/api-docs/styles/app.min.css +1 -0
  118. package/api-docs/styles/iframe.css +13 -0
  119. package/api-docs/styles/prettify-jsdoc.css +111 -0
  120. package/api-docs/styles/prettify-tomorrow.css +132 -0
  121. package/api-docs/styles/reset.css +44 -0
  122. package/api-docs/tutorial-Architecture.html +147 -0
  123. package/api-docs/tutorial-Build.html +146 -0
  124. package/api-docs/tutorial-CI-CD.html +150 -0
  125. package/api-docs/tutorial-Development.html +223 -0
  126. package/api-docs/types_aws_index.ts.html +611 -0
  127. package/api-docs/utils_aws_index.ts.html +189 -0
  128. package/api-docs/utils_index.ts.html +225 -0
  129. package/app/api-destined-function/node_modules/.yarn-integrity +180 -0
  130. package/app/api-destined-function/node_modules/@types/uuid/LICENSE +21 -0
  131. package/app/api-destined-function/node_modules/@types/uuid/README.md +16 -0
  132. package/app/api-destined-function/node_modules/@types/uuid/index.d.mts +10 -0
  133. package/app/api-destined-function/node_modules/@types/uuid/index.d.ts +80 -0
  134. package/app/api-destined-function/node_modules/@types/uuid/package.json +54 -0
  135. package/app/api-destined-function/node_modules/balanced-match/LICENSE.md +21 -0
  136. package/app/api-destined-function/node_modules/balanced-match/README.md +97 -0
  137. package/app/api-destined-function/node_modules/balanced-match/index.js +62 -0
  138. package/app/api-destined-function/node_modules/balanced-match/package.json +48 -0
  139. package/app/api-destined-function/node_modules/brace-expansion/LICENSE +21 -0
  140. package/app/api-destined-function/node_modules/brace-expansion/README.md +129 -0
  141. package/app/api-destined-function/node_modules/brace-expansion/index.js +201 -0
  142. package/app/api-destined-function/node_modules/brace-expansion/package.json +47 -0
  143. package/app/api-destined-function/node_modules/concat-map/.travis.yml +4 -0
  144. package/app/api-destined-function/node_modules/concat-map/LICENSE +18 -0
  145. package/app/api-destined-function/node_modules/concat-map/README.markdown +62 -0
  146. package/app/api-destined-function/node_modules/concat-map/example/map.js +6 -0
  147. package/app/api-destined-function/node_modules/concat-map/index.js +13 -0
  148. package/app/api-destined-function/node_modules/concat-map/package.json +43 -0
  149. package/app/api-destined-function/node_modules/fs.realpath/LICENSE +43 -0
  150. package/app/api-destined-function/node_modules/fs.realpath/README.md +33 -0
  151. package/app/api-destined-function/node_modules/fs.realpath/index.js +66 -0
  152. package/app/api-destined-function/node_modules/fs.realpath/old.js +303 -0
  153. package/app/api-destined-function/node_modules/fs.realpath/package.json +26 -0
  154. package/app/api-destined-function/node_modules/glob/LICENSE +21 -0
  155. package/app/api-destined-function/node_modules/glob/README.md +378 -0
  156. package/app/api-destined-function/node_modules/glob/common.js +236 -0
  157. package/app/api-destined-function/node_modules/glob/glob.js +787 -0
  158. package/app/api-destined-function/node_modules/glob/package.json +52 -0
  159. package/app/api-destined-function/node_modules/glob/sync.js +483 -0
  160. package/app/api-destined-function/node_modules/inflight/LICENSE +15 -0
  161. package/app/api-destined-function/node_modules/inflight/README.md +37 -0
  162. package/app/api-destined-function/node_modules/inflight/inflight.js +54 -0
  163. package/app/api-destined-function/node_modules/inflight/package.json +29 -0
  164. package/app/api-destined-function/node_modules/inherits/LICENSE +16 -0
  165. package/app/api-destined-function/node_modules/inherits/README.md +42 -0
  166. package/app/api-destined-function/node_modules/inherits/inherits.js +9 -0
  167. package/app/api-destined-function/node_modules/inherits/inherits_browser.js +27 -0
  168. package/app/api-destined-function/node_modules/inherits/package.json +29 -0
  169. package/app/api-destined-function/node_modules/minimatch/LICENSE +15 -0
  170. package/app/api-destined-function/node_modules/minimatch/README.md +209 -0
  171. package/app/api-destined-function/node_modules/minimatch/minimatch.js +923 -0
  172. package/app/api-destined-function/node_modules/minimatch/package.json +30 -0
  173. package/app/api-destined-function/node_modules/mkdirp/LICENSE +21 -0
  174. package/app/api-destined-function/node_modules/mkdirp/bin/cmd.js +68 -0
  175. package/app/api-destined-function/node_modules/mkdirp/index.js +31 -0
  176. package/app/api-destined-function/node_modules/mkdirp/lib/find-made.js +29 -0
  177. package/app/api-destined-function/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  178. package/app/api-destined-function/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  179. package/app/api-destined-function/node_modules/mkdirp/lib/opts-arg.js +23 -0
  180. package/app/api-destined-function/node_modules/mkdirp/lib/path-arg.js +29 -0
  181. package/app/api-destined-function/node_modules/mkdirp/lib/use-native.js +10 -0
  182. package/app/api-destined-function/node_modules/mkdirp/package.json +44 -0
  183. package/app/api-destined-function/node_modules/mkdirp/readme.markdown +266 -0
  184. package/app/api-destined-function/node_modules/once/LICENSE +15 -0
  185. package/app/api-destined-function/node_modules/once/README.md +79 -0
  186. package/app/api-destined-function/node_modules/once/once.js +42 -0
  187. package/app/api-destined-function/node_modules/once/package.json +33 -0
  188. package/app/api-destined-function/node_modules/path-is-absolute/index.js +20 -0
  189. package/app/api-destined-function/node_modules/path-is-absolute/license +21 -0
  190. package/app/api-destined-function/node_modules/path-is-absolute/package.json +43 -0
  191. package/app/api-destined-function/node_modules/path-is-absolute/readme.md +59 -0
  192. package/app/api-destined-function/node_modules/rimraf/LICENSE +15 -0
  193. package/app/api-destined-function/node_modules/rimraf/README.md +101 -0
  194. package/app/api-destined-function/node_modules/rimraf/bin.js +68 -0
  195. package/app/api-destined-function/node_modules/rimraf/package.json +32 -0
  196. package/app/api-destined-function/node_modules/rimraf/rimraf.js +360 -0
  197. package/app/api-destined-function/node_modules/uuid/LICENSE.md +9 -0
  198. package/app/api-destined-function/node_modules/uuid/README.md +505 -0
  199. package/app/api-destined-function/node_modules/uuid/dist/bin/uuid +2 -0
  200. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/index.js +9 -0
  201. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  202. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  203. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  204. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  205. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/rng.js +19 -0
  206. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  207. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
  208. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  209. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  210. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/v35.js +64 -0
  211. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  212. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  213. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  214. package/app/api-destined-function/node_modules/uuid/dist/esm-browser/version.js +11 -0
  215. package/app/api-destined-function/node_modules/uuid/dist/esm-node/index.js +9 -0
  216. package/app/api-destined-function/node_modules/uuid/dist/esm-node/md5.js +13 -0
  217. package/app/api-destined-function/node_modules/uuid/dist/esm-node/nil.js +1 -0
  218. package/app/api-destined-function/node_modules/uuid/dist/esm-node/parse.js +35 -0
  219. package/app/api-destined-function/node_modules/uuid/dist/esm-node/regex.js +1 -0
  220. package/app/api-destined-function/node_modules/uuid/dist/esm-node/rng.js +12 -0
  221. package/app/api-destined-function/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  222. package/app/api-destined-function/node_modules/uuid/dist/esm-node/stringify.js +29 -0
  223. package/app/api-destined-function/node_modules/uuid/dist/esm-node/v1.js +95 -0
  224. package/app/api-destined-function/node_modules/uuid/dist/esm-node/v3.js +4 -0
  225. package/app/api-destined-function/node_modules/uuid/dist/esm-node/v35.js +64 -0
  226. package/app/api-destined-function/node_modules/uuid/dist/esm-node/v4.js +24 -0
  227. package/app/api-destined-function/node_modules/uuid/dist/esm-node/v5.js +4 -0
  228. package/app/api-destined-function/node_modules/uuid/dist/esm-node/validate.js +7 -0
  229. package/app/api-destined-function/node_modules/uuid/dist/esm-node/version.js +11 -0
  230. package/app/api-destined-function/node_modules/uuid/dist/index.js +79 -0
  231. package/app/api-destined-function/node_modules/uuid/dist/md5-browser.js +223 -0
  232. package/app/api-destined-function/node_modules/uuid/dist/md5.js +23 -0
  233. package/app/api-destined-function/node_modules/uuid/dist/nil.js +8 -0
  234. package/app/api-destined-function/node_modules/uuid/dist/parse.js +45 -0
  235. package/app/api-destined-function/node_modules/uuid/dist/regex.js +8 -0
  236. package/app/api-destined-function/node_modules/uuid/dist/rng-browser.js +26 -0
  237. package/app/api-destined-function/node_modules/uuid/dist/rng.js +24 -0
  238. package/app/api-destined-function/node_modules/uuid/dist/sha1-browser.js +104 -0
  239. package/app/api-destined-function/node_modules/uuid/dist/sha1.js +23 -0
  240. package/app/api-destined-function/node_modules/uuid/dist/stringify.js +39 -0
  241. package/app/api-destined-function/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  242. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
  243. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
  244. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
  245. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
  246. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
  247. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  248. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  249. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  250. package/app/api-destined-function/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  251. package/app/api-destined-function/node_modules/uuid/dist/uuid-bin.js +85 -0
  252. package/app/api-destined-function/node_modules/uuid/dist/v1.js +107 -0
  253. package/app/api-destined-function/node_modules/uuid/dist/v3.js +16 -0
  254. package/app/api-destined-function/node_modules/uuid/dist/v35.js +78 -0
  255. package/app/api-destined-function/node_modules/uuid/dist/v4.js +37 -0
  256. package/app/api-destined-function/node_modules/uuid/dist/v5.js +16 -0
  257. package/app/api-destined-function/node_modules/uuid/dist/validate.js +17 -0
  258. package/app/api-destined-function/node_modules/uuid/dist/version.js +21 -0
  259. package/app/api-destined-function/node_modules/uuid/package.json +135 -0
  260. package/app/api-destined-function/node_modules/uuid/wrapper.mjs +10 -0
  261. package/app/api-destined-function/node_modules/wrappy/LICENSE +15 -0
  262. package/app/api-destined-function/node_modules/wrappy/README.md +36 -0
  263. package/app/api-destined-function/node_modules/wrappy/package.json +29 -0
  264. package/app/api-destined-function/node_modules/wrappy/wrappy.js +33 -0
  265. package/app/api-destined-function/package.json +30 -0
  266. package/app/api-destined-function/src/lib/lambda.ts +31 -0
  267. package/dist/app/api-destined-function/src/lib/lambda.d.ts +19 -0
  268. package/dist/app/api-destined-function/src/lib/lambda.d.ts.map +1 -0
  269. package/dist/app/api-destined-function/src/lib/lambda.js +34 -0
  270. package/dist/app/api-destined-function/src/lib/lambda.js.map +1 -0
  271. package/dist/src/lib/common/{commonConstruct.d.ts → construct.d.ts} +2 -13
  272. package/dist/src/lib/common/construct.d.ts.map +1 -0
  273. package/dist/src/lib/common/{commonConstruct.js → construct.js} +2 -14
  274. package/dist/src/lib/common/construct.js.map +1 -0
  275. package/dist/src/lib/common/index.d.ts +2 -2
  276. package/dist/src/lib/common/index.d.ts.map +1 -1
  277. package/dist/src/lib/common/index.js +2 -2
  278. package/dist/src/lib/common/index.js.map +1 -1
  279. package/dist/src/lib/common/{commonStack.d.ts → stack.d.ts} +3 -14
  280. package/dist/src/lib/common/stack.d.ts.map +1 -0
  281. package/dist/src/lib/common/{commonStack.js → stack.js} +4 -15
  282. package/dist/src/lib/common/stack.js.map +1 -0
  283. package/dist/src/lib/construct/api-to-eventbridge-target/api-destination-event.d.ts +16 -0
  284. package/dist/src/lib/construct/api-to-eventbridge-target/api-destination-event.d.ts.map +1 -0
  285. package/dist/src/lib/construct/api-to-eventbridge-target/api-destination-event.js +17 -0
  286. package/dist/src/lib/construct/api-to-eventbridge-target/api-destination-event.js.map +1 -0
  287. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-lambda.d.ts +19 -0
  288. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-lambda.d.ts.map +1 -0
  289. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-lambda.js +19 -0
  290. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-lambda.js.map +1 -0
  291. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-rest-api.d.ts +35 -0
  292. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-rest-api.d.ts.map +1 -0
  293. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-rest-api.js +29 -0
  294. package/dist/src/lib/construct/api-to-eventbridge-target/api-destined-rest-api.js.map +1 -0
  295. package/dist/src/lib/construct/api-to-eventbridge-target/index.d.ts +5 -0
  296. package/dist/src/lib/construct/api-to-eventbridge-target/index.d.ts.map +1 -0
  297. package/dist/src/lib/construct/api-to-eventbridge-target/index.js +17 -0
  298. package/dist/src/lib/construct/api-to-eventbridge-target/index.js.map +1 -0
  299. package/dist/src/lib/construct/api-to-eventbridge-target/main.d.ts +134 -0
  300. package/dist/src/lib/construct/api-to-eventbridge-target/main.d.ts.map +1 -0
  301. package/dist/src/lib/construct/api-to-eventbridge-target/main.js +487 -0
  302. package/dist/src/lib/construct/api-to-eventbridge-target/main.js.map +1 -0
  303. package/dist/src/lib/construct/graphql-api-lambda/index.d.ts +2 -0
  304. package/dist/src/lib/construct/graphql-api-lambda/index.d.ts.map +1 -0
  305. package/dist/src/lib/construct/graphql-api-lambda/index.js +14 -0
  306. package/dist/src/lib/construct/graphql-api-lambda/index.js.map +1 -0
  307. package/dist/src/lib/construct/{graphQLApiLambda.d.ts → graphql-api-lambda/main.d.ts} +12 -22
  308. package/dist/src/lib/construct/graphql-api-lambda/main.d.ts.map +1 -0
  309. package/dist/src/lib/construct/{graphQLApiLambda.js → graphql-api-lambda/main.js} +14 -24
  310. package/dist/src/lib/construct/graphql-api-lambda/main.js.map +1 -0
  311. package/dist/src/lib/construct/index.d.ts +4 -3
  312. package/dist/src/lib/construct/index.d.ts.map +1 -1
  313. package/dist/src/lib/construct/index.js +4 -3
  314. package/dist/src/lib/construct/index.js.map +1 -1
  315. package/dist/src/lib/construct/site-with-ecs-backend/index.d.ts +2 -0
  316. package/dist/src/lib/construct/site-with-ecs-backend/index.d.ts.map +1 -0
  317. package/dist/src/lib/construct/site-with-ecs-backend/index.js +14 -0
  318. package/dist/src/lib/construct/site-with-ecs-backend/index.js.map +1 -0
  319. package/dist/src/lib/construct/{siteWithEcsBackend.d.ts → site-with-ecs-backend/main.d.ts} +5 -17
  320. package/dist/src/lib/construct/site-with-ecs-backend/main.d.ts.map +1 -0
  321. package/dist/src/lib/construct/{siteWithEcsBackend.js → site-with-ecs-backend/main.js} +4 -16
  322. package/dist/src/lib/construct/site-with-ecs-backend/main.js.map +1 -0
  323. package/dist/src/lib/construct/static-site/index.d.ts +2 -0
  324. package/dist/src/lib/construct/static-site/index.d.ts.map +1 -0
  325. package/dist/src/lib/construct/static-site/index.js +14 -0
  326. package/dist/src/lib/construct/static-site/index.js.map +1 -0
  327. package/dist/src/lib/construct/{staticSite.d.ts → static-site/main.d.ts} +4 -16
  328. package/dist/src/lib/construct/static-site/main.d.ts.map +1 -0
  329. package/dist/src/lib/construct/{staticSite.js → static-site/main.js} +4 -16
  330. package/dist/src/lib/construct/static-site/main.js.map +1 -0
  331. package/dist/src/lib/manager/aws/{acmManager.d.ts → acm-manager.d.ts} +2 -2
  332. package/dist/src/lib/manager/aws/acm-manager.d.ts.map +1 -0
  333. package/dist/src/lib/manager/aws/{acmManager.js → acm-manager.js} +2 -2
  334. package/dist/src/lib/manager/aws/acm-manager.js.map +1 -0
  335. package/dist/src/lib/manager/aws/{apiManager.d.ts → api-manager.d.ts} +5 -5
  336. package/dist/src/lib/manager/aws/api-manager.d.ts.map +1 -0
  337. package/dist/src/lib/manager/aws/{apiManager.js → api-manager.js} +5 -5
  338. package/dist/src/lib/manager/aws/api-manager.js.map +1 -0
  339. package/dist/src/lib/manager/aws/{appConfigManager.d.ts → app-config-manager.d.ts} +2 -2
  340. package/dist/src/lib/manager/aws/app-config-manager.d.ts.map +1 -0
  341. package/dist/src/lib/manager/aws/{appConfigManager.js → app-config-manager.js} +2 -2
  342. package/dist/src/lib/manager/aws/app-config-manager.js.map +1 -0
  343. package/dist/src/lib/manager/aws/{cloudFrontManager.d.ts → cloudfront-manager.d.ts} +2 -2
  344. package/dist/src/lib/manager/aws/cloudfront-manager.d.ts.map +1 -0
  345. package/dist/src/lib/manager/aws/{cloudFrontManager.js → cloudfront-manager.js} +2 -2
  346. package/dist/src/lib/manager/aws/cloudfront-manager.js.map +1 -0
  347. package/dist/src/lib/manager/aws/{cloudTrailManager.d.ts → cloudtrail-manager.d.ts} +2 -2
  348. package/dist/src/lib/manager/aws/cloudtrail-manager.d.ts.map +1 -0
  349. package/dist/src/lib/manager/aws/{cloudTrailManager.js → cloudtrail-manager.js} +2 -2
  350. package/dist/src/lib/manager/aws/cloudtrail-manager.js.map +1 -0
  351. package/dist/src/lib/manager/aws/{cloudWatchManager.d.ts → cloudwatch-manager.d.ts} +2 -2
  352. package/dist/src/lib/manager/aws/cloudwatch-manager.d.ts.map +1 -0
  353. package/dist/src/lib/manager/aws/{cloudWatchManager.js → cloudwatch-manager.js} +2 -2
  354. package/dist/src/lib/manager/aws/cloudwatch-manager.js.map +1 -0
  355. package/dist/src/lib/manager/aws/{codeBuildManager.d.ts → codebuild-manager.d.ts} +2 -2
  356. package/dist/src/lib/manager/aws/codebuild-manager.d.ts.map +1 -0
  357. package/dist/src/lib/manager/aws/{codeBuildManager.js → codebuild-manager.js} +2 -2
  358. package/dist/src/lib/manager/aws/codebuild-manager.js.map +1 -0
  359. package/dist/src/lib/manager/aws/{dynamodbManager.d.ts → dynamodb-manager.d.ts} +2 -2
  360. package/dist/src/lib/manager/aws/dynamodb-manager.d.ts.map +1 -0
  361. package/dist/src/lib/manager/aws/{dynamodbManager.js → dynamodb-manager.js} +2 -2
  362. package/dist/src/lib/manager/aws/dynamodb-manager.js.map +1 -0
  363. package/dist/src/lib/manager/aws/{ecrManager.d.ts → ecr-manager.d.ts} +2 -2
  364. package/dist/src/lib/manager/aws/ecr-manager.d.ts.map +1 -0
  365. package/dist/src/lib/manager/aws/{ecrManager.js → ecr-manager.js} +2 -2
  366. package/dist/src/lib/manager/aws/ecr-manager.js.map +1 -0
  367. package/dist/src/lib/manager/aws/{ecsManager.d.ts → ecs-manager.d.ts} +2 -2
  368. package/dist/src/lib/manager/aws/ecs-manager.d.ts.map +1 -0
  369. package/dist/src/lib/manager/aws/{ecsManager.js → ecs-manager.js} +2 -2
  370. package/dist/src/lib/manager/aws/ecs-manager.js.map +1 -0
  371. package/dist/src/lib/manager/aws/{eksManager.d.ts → eks-manager.d.ts} +2 -2
  372. package/dist/src/lib/manager/aws/eks-manager.d.ts.map +1 -0
  373. package/dist/src/lib/manager/aws/{eksManager.js → eks-manager.js} +2 -2
  374. package/dist/src/lib/manager/aws/eks-manager.js.map +1 -0
  375. package/dist/src/lib/manager/aws/{eventManager.d.ts → event-manager.d.ts} +18 -2
  376. package/dist/src/lib/manager/aws/event-manager.d.ts.map +1 -0
  377. package/dist/src/lib/manager/aws/{eventManager.js → event-manager.js} +44 -2
  378. package/dist/src/lib/manager/aws/event-manager.js.map +1 -0
  379. package/dist/src/lib/manager/aws/{iamManager.d.ts → iam-manager.d.ts} +12 -14
  380. package/dist/src/lib/manager/aws/iam-manager.d.ts.map +1 -0
  381. package/dist/src/lib/manager/aws/{iamManager.js → iam-manager.js} +21 -17
  382. package/dist/src/lib/manager/aws/iam-manager.js.map +1 -0
  383. package/dist/src/lib/manager/aws/index.d.ts +22 -22
  384. package/dist/src/lib/manager/aws/index.d.ts.map +1 -1
  385. package/dist/src/lib/manager/aws/index.js +22 -22
  386. package/dist/src/lib/manager/aws/index.js.map +1 -1
  387. package/dist/src/lib/manager/aws/{lambdaManager.d.ts → lambda-manager.d.ts} +28 -26
  388. package/dist/src/lib/manager/aws/lambda-manager.d.ts.map +1 -0
  389. package/dist/src/lib/manager/aws/{lambdaManager.js → lambda-manager.js} +45 -37
  390. package/dist/src/lib/manager/aws/lambda-manager.js.map +1 -0
  391. package/dist/src/lib/manager/aws/{logManager.d.ts → log-manager.d.ts} +2 -2
  392. package/dist/src/lib/manager/aws/log-manager.d.ts.map +1 -0
  393. package/dist/src/lib/manager/aws/{logManager.js → log-manager.js} +2 -2
  394. package/dist/src/lib/manager/aws/log-manager.js.map +1 -0
  395. package/dist/src/lib/manager/aws/{route53Manager.d.ts → route53-manager.d.ts} +3 -3
  396. package/dist/src/lib/manager/aws/route53-manager.d.ts.map +1 -0
  397. package/dist/src/lib/manager/aws/{route53Manager.js → route53-manager.js} +3 -3
  398. package/dist/src/lib/manager/aws/route53-manager.js.map +1 -0
  399. package/dist/src/lib/manager/aws/{s3Manager.d.ts → s3-manager.d.ts} +2 -2
  400. package/dist/src/lib/manager/aws/s3-manager.d.ts.map +1 -0
  401. package/dist/src/lib/manager/aws/{s3Manager.js → s3-manager.js} +2 -2
  402. package/dist/src/lib/manager/aws/s3-manager.js.map +1 -0
  403. package/dist/src/lib/manager/aws/{secretsManager.d.ts → secrets-manager.d.ts} +2 -2
  404. package/dist/src/lib/manager/aws/secrets-manager.d.ts.map +1 -0
  405. package/dist/src/lib/manager/aws/{secretsManager.js → secrets-manager.js} +2 -2
  406. package/dist/src/lib/manager/aws/secrets-manager.js.map +1 -0
  407. package/dist/src/lib/manager/aws/{snsManager.d.ts → sns-manager.d.ts} +2 -2
  408. package/dist/src/lib/manager/aws/sns-manager.d.ts.map +1 -0
  409. package/dist/src/lib/manager/aws/{snsManager.js → sns-manager.js} +2 -2
  410. package/dist/src/lib/manager/aws/sns-manager.js.map +1 -0
  411. package/dist/src/lib/manager/aws/{ssmManager.d.ts → ssm-manager.d.ts} +4 -9
  412. package/dist/src/lib/manager/aws/ssm-manager.d.ts.map +1 -0
  413. package/dist/src/lib/manager/aws/{ssmManager.js → ssm-manager.js} +4 -9
  414. package/dist/src/lib/manager/aws/ssm-manager.js.map +1 -0
  415. package/dist/src/lib/manager/aws/{vpcManager.d.ts → vpc-manager.d.ts} +4 -3
  416. package/dist/src/lib/manager/aws/vpc-manager.d.ts.map +1 -0
  417. package/dist/src/lib/manager/aws/{vpcManager.js → vpc-manager.js} +6 -4
  418. package/dist/src/lib/manager/aws/vpc-manager.js.map +1 -0
  419. package/dist/src/lib/manager/aws/{wafManager.d.ts → waf-manager.d.ts} +2 -2
  420. package/dist/src/lib/manager/aws/waf-manager.d.ts.map +1 -0
  421. package/dist/src/lib/manager/aws/{wafManager.js → waf-manager.js} +2 -2
  422. package/dist/src/lib/manager/aws/waf-manager.js.map +1 -0
  423. package/dist/src/lib/types/aws/index.d.ts +137 -2
  424. package/dist/src/lib/types/aws/index.d.ts.map +1 -1
  425. package/dist/src/lib/utils/aws/index.d.ts +1 -1
  426. package/dist/src/lib/utils/aws/index.d.ts.map +1 -1
  427. package/dist/src/lib/utils/index.d.ts +1 -0
  428. package/dist/src/lib/utils/index.d.ts.map +1 -1
  429. package/dist/src/lib/utils/index.js +1 -0
  430. package/dist/src/lib/utils/index.js.map +1 -1
  431. package/img/ApiToEventBridgeTarget.jpg +0 -0
  432. package/img/GraphQLApiLambda.jpg +0 -0
  433. package/package.json +12 -13
  434. package/src/lib/common/{commonConstruct.ts → construct.ts} +1 -13
  435. package/src/lib/common/index.ts +2 -2
  436. package/src/lib/common/{commonStack.ts → stack.ts} +3 -13
  437. package/src/lib/construct/api-to-eventbridge-target/api-destination-event.ts +16 -0
  438. package/src/lib/construct/api-to-eventbridge-target/api-destined-lambda.ts +19 -0
  439. package/src/lib/construct/api-to-eventbridge-target/api-destined-rest-api.ts +31 -0
  440. package/src/lib/construct/api-to-eventbridge-target/index.ts +4 -0
  441. package/src/lib/construct/api-to-eventbridge-target/main.ts +592 -0
  442. package/src/lib/construct/graphql-api-lambda/index.ts +1 -0
  443. package/src/lib/construct/{graphQLApiLambda.ts → graphql-api-lambda/main.ts} +13 -23
  444. package/src/lib/construct/index.ts +4 -3
  445. package/src/lib/construct/site-with-ecs-backend/index.ts +1 -0
  446. package/src/lib/construct/{siteWithEcsBackend.ts → site-with-ecs-backend/main.ts} +4 -16
  447. package/src/lib/construct/static-site/index.ts +1 -0
  448. package/src/lib/construct/{staticSite.ts → static-site/main.ts} +3 -15
  449. package/src/lib/manager/aws/{acmManager.ts → acm-manager.ts} +1 -1
  450. package/src/lib/manager/aws/{apiManager.ts → api-manager.ts} +4 -4
  451. package/src/lib/manager/aws/{appConfigManager.ts → app-config-manager.ts} +1 -1
  452. package/src/lib/manager/aws/{cloudFrontManager.ts → cloudfront-manager.ts} +1 -1
  453. package/src/lib/manager/aws/{cloudTrailManager.ts → cloudtrail-manager.ts} +1 -1
  454. package/src/lib/manager/aws/{cloudWatchManager.ts → cloudwatch-manager.ts} +1 -1
  455. package/src/lib/manager/aws/{codeBuildManager.ts → codebuild-manager.ts} +1 -1
  456. package/src/lib/manager/aws/{dynamodbManager.ts → dynamodb-manager.ts} +1 -1
  457. package/src/lib/manager/aws/{ecrManager.ts → ecr-manager.ts} +1 -1
  458. package/src/lib/manager/aws/{ecsManager.ts → ecs-manager.ts} +1 -1
  459. package/src/lib/manager/aws/{eksManager.ts → eks-manager.ts} +1 -1
  460. package/src/lib/manager/aws/{eventManager.ts → event-manager.ts} +55 -1
  461. package/src/lib/manager/aws/{iamManager.ts → iam-manager.ts} +21 -16
  462. package/src/lib/manager/aws/index.ts +22 -22
  463. package/src/lib/manager/aws/{lambdaManager.ts → lambda-manager.ts} +51 -41
  464. package/src/lib/manager/aws/{logManager.ts → log-manager.ts} +1 -1
  465. package/src/lib/manager/aws/{route53Manager.ts → route53-manager.ts} +2 -2
  466. package/src/lib/manager/aws/{s3Manager.ts → s3-manager.ts} +1 -1
  467. package/src/lib/manager/aws/{secretsManager.ts → secrets-manager.ts} +1 -1
  468. package/src/lib/manager/aws/{snsManager.ts → sns-manager.ts} +1 -1
  469. package/src/lib/manager/aws/{ssmManager.ts → ssm-manager.ts} +3 -8
  470. package/src/lib/manager/aws/{vpcManager.ts → vpc-manager.ts} +5 -3
  471. package/src/lib/manager/aws/{wafManager.ts → waf-manager.ts} +1 -1
  472. package/src/lib/types/aws/index.ts +140 -2
  473. package/src/lib/utils/aws/index.ts +1 -1
  474. package/src/lib/utils/index.ts +1 -0
  475. package/.releaserc +0 -9
  476. package/dist/src/lib/common/commonConstruct.d.ts.map +0 -1
  477. package/dist/src/lib/common/commonConstruct.js.map +0 -1
  478. package/dist/src/lib/common/commonStack.d.ts.map +0 -1
  479. package/dist/src/lib/common/commonStack.js.map +0 -1
  480. package/dist/src/lib/construct/graphQLApiLambda.d.ts.map +0 -1
  481. package/dist/src/lib/construct/graphQLApiLambda.js.map +0 -1
  482. package/dist/src/lib/construct/siteWithEcsBackend.d.ts.map +0 -1
  483. package/dist/src/lib/construct/siteWithEcsBackend.js.map +0 -1
  484. package/dist/src/lib/construct/staticSite.d.ts.map +0 -1
  485. package/dist/src/lib/construct/staticSite.js.map +0 -1
  486. package/dist/src/lib/manager/aws/acmManager.d.ts.map +0 -1
  487. package/dist/src/lib/manager/aws/acmManager.js.map +0 -1
  488. package/dist/src/lib/manager/aws/apiManager.d.ts.map +0 -1
  489. package/dist/src/lib/manager/aws/apiManager.js.map +0 -1
  490. package/dist/src/lib/manager/aws/appConfigManager.d.ts.map +0 -1
  491. package/dist/src/lib/manager/aws/appConfigManager.js.map +0 -1
  492. package/dist/src/lib/manager/aws/cloudFrontManager.d.ts.map +0 -1
  493. package/dist/src/lib/manager/aws/cloudFrontManager.js.map +0 -1
  494. package/dist/src/lib/manager/aws/cloudTrailManager.d.ts.map +0 -1
  495. package/dist/src/lib/manager/aws/cloudTrailManager.js.map +0 -1
  496. package/dist/src/lib/manager/aws/cloudWatchManager.d.ts.map +0 -1
  497. package/dist/src/lib/manager/aws/cloudWatchManager.js.map +0 -1
  498. package/dist/src/lib/manager/aws/codeBuildManager.d.ts.map +0 -1
  499. package/dist/src/lib/manager/aws/codeBuildManager.js.map +0 -1
  500. package/dist/src/lib/manager/aws/dynamodbManager.d.ts.map +0 -1
  501. package/dist/src/lib/manager/aws/dynamodbManager.js.map +0 -1
  502. package/dist/src/lib/manager/aws/ecrManager.d.ts.map +0 -1
  503. package/dist/src/lib/manager/aws/ecrManager.js.map +0 -1
  504. package/dist/src/lib/manager/aws/ecsManager.d.ts.map +0 -1
  505. package/dist/src/lib/manager/aws/ecsManager.js.map +0 -1
  506. package/dist/src/lib/manager/aws/eksManager.d.ts.map +0 -1
  507. package/dist/src/lib/manager/aws/eksManager.js.map +0 -1
  508. package/dist/src/lib/manager/aws/eventManager.d.ts.map +0 -1
  509. package/dist/src/lib/manager/aws/eventManager.js.map +0 -1
  510. package/dist/src/lib/manager/aws/iamManager.d.ts.map +0 -1
  511. package/dist/src/lib/manager/aws/iamManager.js.map +0 -1
  512. package/dist/src/lib/manager/aws/lambdaManager.d.ts.map +0 -1
  513. package/dist/src/lib/manager/aws/lambdaManager.js.map +0 -1
  514. package/dist/src/lib/manager/aws/logManager.d.ts.map +0 -1
  515. package/dist/src/lib/manager/aws/logManager.js.map +0 -1
  516. package/dist/src/lib/manager/aws/route53Manager.d.ts.map +0 -1
  517. package/dist/src/lib/manager/aws/route53Manager.js.map +0 -1
  518. package/dist/src/lib/manager/aws/s3Manager.d.ts.map +0 -1
  519. package/dist/src/lib/manager/aws/s3Manager.js.map +0 -1
  520. package/dist/src/lib/manager/aws/secretsManager.d.ts.map +0 -1
  521. package/dist/src/lib/manager/aws/secretsManager.js.map +0 -1
  522. package/dist/src/lib/manager/aws/snsManager.d.ts.map +0 -1
  523. package/dist/src/lib/manager/aws/snsManager.js.map +0 -1
  524. package/dist/src/lib/manager/aws/ssmManager.d.ts.map +0 -1
  525. package/dist/src/lib/manager/aws/ssmManager.js.map +0 -1
  526. package/dist/src/lib/manager/aws/vpcManager.d.ts.map +0 -1
  527. package/dist/src/lib/manager/aws/vpcManager.js.map +0 -1
  528. package/dist/src/lib/manager/aws/wafManager.d.ts.map +0 -1
  529. package/dist/src/lib/manager/aws/wafManager.js.map +0 -1
@@ -0,0 +1,592 @@
1
+ import * as apig from 'aws-cdk-lib/aws-apigateway'
2
+ import * as eventstargets from 'aws-cdk-lib/aws-events-targets'
3
+ import * as iam from 'aws-cdk-lib/aws-iam'
4
+ import * as lambda from 'aws-cdk-lib/aws-lambda'
5
+ import * as destinations from 'aws-cdk-lib/aws-lambda-destinations'
6
+ import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
7
+ import { Construct } from 'constructs'
8
+ import { CommonConstruct } from '../../common'
9
+ import * as types from '../../types'
10
+ import { ApiDestinationEvent } from './api-destination-event'
11
+ import { ApiDestinedLambda } from './api-destined-lambda'
12
+ import { ApiDestinedRestApi } from './api-destined-rest-api'
13
+
14
+ /**
15
+ * @stability stable
16
+ * @category Constructs
17
+ * @classdesc Provides a construct to create and deploy API Gateway invocations to EventBridge
18
+ *
19
+ * <b>Architecture</b> ![Architecture](./ApiToEventBridgeTarget.jpg)
20
+ *
21
+ * @example
22
+ * import { ApiToEventBridgeTarget, ApiToEventBridgeTargetProps } '@gradientedge/cdk-utils'
23
+ * import { Construct } from 'constructs'
24
+ *
25
+ * class CustomConstruct extends ApiToEventBridgeTarget {
26
+ * constructor(parent: Construct, id: string, props: ApiToEventBridgeTargetProps) {
27
+ * super(parent, id, props)
28
+ * this.props = props
29
+ * this.id = id
30
+ * this.initResources()
31
+ * }
32
+ * }
33
+ *
34
+ */
35
+ export class ApiToEventBridgeTarget extends CommonConstruct {
36
+ props: types.ApiToEventBridgeTargetProps
37
+ id: string
38
+
39
+ /* application related resources */
40
+ applicationSecrets: secretsmanager.ISecret[]
41
+
42
+ /* destined lambda related resources */
43
+ apiDestinedLambdaDirectory = 'app/api-destined-function'
44
+ apiDestinedLambda: types.ApiDestinedLambdaType
45
+
46
+ /* event related resources */
47
+ apiEvent: types.ApiDestinationEventType
48
+
49
+ /* rest restApi related resources */
50
+ apiDestinedRestApi: types.ApiDestinedRestApiType
51
+ apiDestinedBasePathMappings: apig.BasePathMapping[] = []
52
+ apiResource: string
53
+
54
+ constructor(parent: Construct, id: string, props: types.ApiToEventBridgeTargetProps) {
55
+ super(parent, id, props)
56
+
57
+ this.props = props
58
+ this.id = id
59
+
60
+ this.apiDestinedLambda = new ApiDestinedLambda()
61
+ this.apiEvent = new ApiDestinationEvent()
62
+ this.apiDestinedRestApi = new ApiDestinedRestApi()
63
+ this.apiResource = 'notify'
64
+ }
65
+
66
+ protected initResources() {
67
+ /* application related resources */
68
+ this.resolveSecrets()
69
+
70
+ /* core resources */
71
+ this.resolveHostedZone()
72
+ this.resolveCertificate()
73
+
74
+ /* optional custom event bus */
75
+ this.createApiDestinedEventBus()
76
+
77
+ /* destined lambda related resources */
78
+ this.createApiDestinedLambdaPolicy()
79
+ this.createApiDestinedLambdaRole()
80
+ this.createApiDestinedLambdaEnvironment()
81
+ this.createApiDestinedLambdaLayers()
82
+ this.createApiDestinedLambdaDestinations()
83
+ this.createApiDestinedLambdaFunction()
84
+
85
+ /* event related resources */
86
+ this.createApiDestinationLogGroupSuccess()
87
+ this.createApiDestinationRuleSuccess()
88
+ this.createApiDestinationLogGroupFailure()
89
+ this.createApiDestinationRuleFailure()
90
+
91
+ /* restApi related resources */
92
+ this.createApiDestinedTopicRole()
93
+ this.createApiDestinedTopic()
94
+ this.createApiDestinedRestApi()
95
+ this.createApiDestinedResponseModel()
96
+ this.createApiDestinedErrorResponseModel()
97
+ this.createApiDestinedResource()
98
+ this.createApiDestinedIntegrationRequestParameters()
99
+ this.createApiDestinedIntegrationRequestTemplates()
100
+ this.createApiDestinedIntegrationResponse()
101
+ this.createApiDestinedIntegrationErrorResponse()
102
+ this.createApiDestinedIntegration()
103
+ this.createApiDestinedMethodResponse()
104
+ this.createApiDestinedMethodErrorResponse()
105
+ this.createApiDestinedResourceMethod()
106
+ this.createApiDomain()
107
+ this.createApiBasePathMapping()
108
+ this.createApiRouteAssets()
109
+ }
110
+
111
+ /**
112
+ * @summary Method to resolve secrets from SecretsManager
113
+ * - To be implemented in the overriding method in the implementation class
114
+ * @protected
115
+ */
116
+ protected resolveSecrets() {
117
+ this.applicationSecrets = []
118
+ }
119
+
120
+ /**
121
+ * @summary Method to resolve a hosted zone based on domain attributes
122
+ * @protected
123
+ */
124
+ protected resolveHostedZone() {
125
+ this.apiDestinedRestApi.hostedZone = this.route53Manager.withHostedZoneFromFullyQualifiedDomainName(
126
+ `${this.id}-hosted-zone`,
127
+ this,
128
+ this.props.useExistingHostedZone
129
+ )
130
+ }
131
+
132
+ /**
133
+ * @summary Method to resolve a certificate based on attributes
134
+ * @protected
135
+ */
136
+ protected resolveCertificate() {
137
+ if (
138
+ this.props.api.certificate.useExistingCertificate &&
139
+ this.props.api.certificate.certificateSsmName &&
140
+ this.props.api.certificate.certificateRegion
141
+ ) {
142
+ this.props.api.certificate.certificateArn = this.ssMManager.readStringParameterFromRegion(
143
+ `${this.id}-certificate-param`,
144
+ this,
145
+ this.props.api.certificate.certificateSsmName,
146
+ this.props.api.certificate.certificateRegion
147
+ )
148
+ }
149
+
150
+ this.apiDestinedRestApi.certificate = this.acmManager.resolveCertificate(
151
+ `${this.id}-certificate`,
152
+ this,
153
+ this.props.api.certificate
154
+ )
155
+ }
156
+
157
+ /**
158
+ * @summary Method to create iam policy for Api Destined Lambda function
159
+ * @protected
160
+ */
161
+ protected createApiDestinedLambdaPolicy() {
162
+ this.apiDestinedLambda.policy = new iam.PolicyDocument({
163
+ statements: [this.iamManager.statementForReadSecrets(this), this.iamManager.statementForPutEvents()],
164
+ })
165
+ }
166
+
167
+ /**
168
+ * @summary Method to create iam role for Api Destined Lambda function
169
+ * @protected
170
+ */
171
+ protected createApiDestinedLambdaRole() {
172
+ this.apiDestinedLambda.role = this.iamManager.createRoleForLambda(
173
+ `${this.id}-lambda-destined-role`,
174
+ this,
175
+ this.apiDestinedLambda.policy
176
+ )
177
+ }
178
+
179
+ /**
180
+ * @summary Method to create environment variables for Api Destined Lambda function
181
+ * @protected
182
+ */
183
+ protected createApiDestinedLambdaEnvironment() {
184
+ this.apiDestinedLambda.environment = {
185
+ NODE_ENV: this.props.nodeEnv,
186
+ LOG_LEVEL: this.props.logLevel,
187
+ TZ: this.props.timezone,
188
+ SOURCE_ID: this.id,
189
+ }
190
+ }
191
+
192
+ private createApiDestinedLambdaLayersSource() {
193
+ return this.props.lambda.useNative
194
+ ? lambda.AssetCode.fromAsset(`${this.apiDestinedLambdaDirectory}/layers`)
195
+ : lambda.AssetCode.fromAsset(
196
+ `../node_modules/@gradientedge/cdk-utils/dist/${this.apiDestinedLambdaDirectory}/layers`
197
+ )
198
+ }
199
+
200
+ /**
201
+ * @summary Method to create layers for Api Destined Lambda function
202
+ * @protected
203
+ */
204
+ protected createApiDestinedLambdaLayers() {
205
+ const layers: lambda.LayerVersion[] = []
206
+ layers.push(
207
+ this.lambdaManager.createLambdaLayer(
208
+ `${this.id}-lambda-destined-layer`,
209
+ this,
210
+ this.createApiDestinedLambdaLayersSource()
211
+ )
212
+ )
213
+ this.apiDestinedLambda.layers = layers
214
+ }
215
+
216
+ /**
217
+ * @summary Method to create destination for Api Destined function
218
+ * @protected
219
+ */
220
+ protected createApiDestinedLambdaDestinations() {
221
+ this.apiDestinedLambda.destinationSuccess = new destinations.EventBridgeDestination(this.apiEvent.eventBus)
222
+ this.apiDestinedLambda.destinationFailure = new destinations.EventBridgeDestination(this.apiEvent.eventBus)
223
+ }
224
+
225
+ private createApiDestinedLambdaFunctionSource() {
226
+ return this.props.lambda.useNative
227
+ ? lambda.AssetCode.fromAsset(`${this.apiDestinedLambdaDirectory}/src/lib`)
228
+ : lambda.AssetCode.fromAsset(
229
+ `../node_modules/@gradientedge/cdk-utils/dist/${this.apiDestinedLambdaDirectory}/src/lib`
230
+ )
231
+ }
232
+
233
+ /**
234
+ * @summary Method to create lambda function for Api Destined
235
+ * @protected
236
+ */
237
+ protected createApiDestinedLambdaFunction() {
238
+ this.apiDestinedLambda.function = this.lambdaManager.createLambdaFunction(
239
+ `${this.id}-lambda-destined`,
240
+ this,
241
+ {
242
+ ...this.props.lambda.function,
243
+ ...{
244
+ onSuccess: this.apiDestinedLambda.destinationSuccess,
245
+ onFailure: this.apiDestinedLambda.destinationFailure,
246
+ },
247
+ },
248
+ this.apiDestinedLambda.role,
249
+ this.apiDestinedLambda.layers,
250
+ this.createApiDestinedLambdaFunctionSource(),
251
+ 'lambda.handler',
252
+ this.apiDestinedLambda.environment
253
+ )
254
+ }
255
+
256
+ protected createApiDestinedEventBus() {
257
+ this.apiEvent.eventBus = this.eventManager.createEventBus(`${this.id}-destined-event-bus`, this, {
258
+ eventBusName: `${this.props.event.eventBusName}`,
259
+ })
260
+ }
261
+
262
+ protected createApiDestinationLogGroupSuccess() {
263
+ this.apiEvent.logGroupSuccess = this.logManager.createLogGroup(`${this.id}-destination-success-log`, this, {
264
+ ...{
265
+ logGroupName: `/${this.id}/events/api-destination-success`,
266
+ },
267
+ ...this.props.event.logGroupSuccess,
268
+ })
269
+ }
270
+
271
+ /**
272
+ * Method to create EventBridge rule with lambda target for success
273
+ * @protected
274
+ */
275
+ protected createApiDestinationRuleSuccess() {
276
+ this.props.event.ruleSuccess = {
277
+ ...{
278
+ ruleName: `${this.id}-api-destination-success`,
279
+ eventPattern: {
280
+ detail: {
281
+ requestContext: {
282
+ condition: ['Success'],
283
+ },
284
+ responsePayload: {
285
+ source: ['custom:api-destined-lambda'],
286
+ sourceId: [this.id],
287
+ },
288
+ },
289
+ },
290
+ },
291
+ ...this.props.event.ruleSuccess,
292
+ }
293
+ this.apiEvent.ruleSuccess = this.eventManager.createRule(
294
+ `${this.id}-api-destination-rule-success`,
295
+ this,
296
+ this.props.event.ruleSuccess,
297
+ this.apiEvent.eventBus,
298
+ [new eventstargets.CloudWatchLogGroup(this.apiEvent.logGroupSuccess)]
299
+ )
300
+ }
301
+
302
+ protected createApiDestinationLogGroupFailure() {
303
+ this.apiEvent.logGroupFailure = this.logManager.createLogGroup(`${this.id}-destination-failure-log`, this, {
304
+ ...{
305
+ logGroupName: `/${this.id}/events/api-destination-failure`,
306
+ },
307
+ ...this.props.event.logGroupFailure,
308
+ })
309
+ }
310
+
311
+ /**
312
+ * Method to create EventBridge rule with lambda target for failure
313
+ * @protected
314
+ */
315
+ protected createApiDestinationRuleFailure() {
316
+ this.props.event.ruleFailure = {
317
+ ...{
318
+ ruleName: `${this.id}-api-destination-failure`,
319
+ eventPattern: {
320
+ detail: {
321
+ responsePayload: {
322
+ errorType: ['Error'],
323
+ },
324
+ },
325
+ },
326
+ },
327
+ ...this.props.event.ruleFailure,
328
+ }
329
+ this.apiEvent.ruleFailure = this.eventManager.createRule(
330
+ `${this.id}-api-destination-rule-failure`,
331
+ this,
332
+ this.props.event.ruleFailure,
333
+ this.apiEvent.eventBus,
334
+ [new eventstargets.CloudWatchLogGroup(this.apiEvent.logGroupFailure)]
335
+ )
336
+ }
337
+
338
+ protected createApiDestinedTopicRole() {
339
+ this.apiDestinedRestApi.topicRole = new iam.Role(this, `${this.id}-sns-rest-api-role`, {
340
+ assumedBy: new iam.ServicePrincipal('apigateway.amazonaws.com'),
341
+ })
342
+ }
343
+
344
+ protected createApiDestinedTopic() {
345
+ this.apiDestinedRestApi.topic = this.snsManager.createLambdaNotificationService(
346
+ `${this.id}-destined-topic`,
347
+ this,
348
+ {
349
+ topicName: `${this.id}-destined-topic`,
350
+ },
351
+ this.apiDestinedLambda.function
352
+ )
353
+
354
+ this.apiDestinedRestApi.topic.grantPublish(this.apiDestinedRestApi.topicRole)
355
+ }
356
+
357
+ /**
358
+ * @summary Method to create rest restApi for Api
359
+ * @protected
360
+ */
361
+ protected createApiDestinedRestApi() {
362
+ this.apiDestinedRestApi.api = new apig.RestApi(this, `${this.id}-sns-rest-api`, {
363
+ ...{
364
+ deployOptions: {
365
+ dataTraceEnabled: true,
366
+ description: `${this.id} - ${this.props.stage} stage`,
367
+ loggingLevel: apig.MethodLoggingLevel.INFO,
368
+ metricsEnabled: true,
369
+ stageName: this.props.stage,
370
+ },
371
+ endpointConfiguration: {
372
+ types: [apig.EndpointType.REGIONAL],
373
+ },
374
+ defaultCorsPreflightOptions: {
375
+ allowOrigins: apig.Cors.ALL_ORIGINS,
376
+ allowMethods: ['POST'],
377
+ allowHeaders: apig.Cors.DEFAULT_HEADERS,
378
+ },
379
+ restApiName: `${this.id}-destined-rest-api-${this.props.stage}`,
380
+ },
381
+ ...this.props.api,
382
+ })
383
+ }
384
+
385
+ protected createApiDestinedResponseModel() {
386
+ this.apiDestinedRestApi.responseModel = this.apiDestinedRestApi.api.addModel(`${this.id}-response-model`, {
387
+ ...{
388
+ contentType: 'application/json',
389
+ modelName: 'ResponseModel',
390
+ schema: {
391
+ schema: apig.JsonSchemaVersion.DRAFT4,
392
+ title: 'pollResponse',
393
+ type: apig.JsonSchemaType.OBJECT,
394
+ properties: { message: { type: apig.JsonSchemaType.STRING } },
395
+ },
396
+ },
397
+ ...this.props.api.responseModel,
398
+ })
399
+ }
400
+
401
+ protected createApiDestinedErrorResponseModel() {
402
+ this.apiDestinedRestApi.errorResponseModel = this.apiDestinedRestApi.api.addModel(
403
+ `${this.id}-error-response-model`,
404
+ {
405
+ ...{
406
+ contentType: 'application/json',
407
+ modelName: 'ErrorResponseModel',
408
+ schema: {
409
+ schema: apig.JsonSchemaVersion.DRAFT4,
410
+ title: 'errorResponse',
411
+ type: apig.JsonSchemaType.OBJECT,
412
+ properties: {
413
+ state: { type: apig.JsonSchemaType.STRING },
414
+ message: { type: apig.JsonSchemaType.STRING },
415
+ },
416
+ },
417
+ },
418
+ ...this.props.api.errorResponseModel,
419
+ }
420
+ )
421
+ }
422
+
423
+ protected createApiDestinedResource() {
424
+ this.apiDestinedRestApi.resource = this.apiDestinedRestApi.api.root.addResource(
425
+ this.props.api.resource ?? this.apiResource
426
+ )
427
+ }
428
+
429
+ protected createApiDestinedIntegrationRequestParameters() {
430
+ this.apiDestinedRestApi.integrationRequestParameters = {
431
+ 'integration.request.header.Content-Type': "'application/x-www-form-urlencoded'",
432
+ }
433
+ }
434
+
435
+ protected createApiDestinedIntegrationRequestTemplates() {
436
+ this.apiDestinedRestApi.integrationRequestTemplates = {
437
+ 'application/json': [
438
+ 'Action=Publish',
439
+ `TargetArn=$util.urlEncode('${this.apiDestinedRestApi.topic.topicArn}')`,
440
+ 'Message=$input.body',
441
+ 'Version=2010-03-31',
442
+ ].join('&'),
443
+ }
444
+ }
445
+
446
+ protected createApiDestinedIntegrationResponse() {
447
+ this.apiDestinedRestApi.integrationResponse = {
448
+ ...{
449
+ statusCode: '200',
450
+ responseTemplates: {
451
+ 'application/json': JSON.stringify({ message: 'Payload Submitted' }),
452
+ },
453
+ },
454
+ ...this.props.api.integrationResponse,
455
+ }
456
+ }
457
+
458
+ protected createApiDestinedIntegrationErrorResponse() {
459
+ this.apiDestinedRestApi.integrationErrorResponse = {
460
+ ...{
461
+ selectionPattern: '^\\[Error\\].*',
462
+ statusCode: '400',
463
+ responseTemplates: {
464
+ 'application/json': JSON.stringify({
465
+ state: 'error',
466
+ message: "$util.escapeJavaScript($input.path('$.errorMessage'))",
467
+ }),
468
+ },
469
+ responseParameters: {
470
+ 'method.response.header.Content-Type': "'application/json'",
471
+ 'method.response.header.Access-Control-Allow-Origin': "'*'",
472
+ 'method.response.header.Access-Control-Allow-Credentials': "'true'",
473
+ },
474
+ },
475
+ ...this.props.api.integrationErrorResponse,
476
+ }
477
+ }
478
+
479
+ protected createApiDestinedIntegration() {
480
+ this.apiDestinedRestApi.integration = new apig.Integration({
481
+ type: apig.IntegrationType.AWS,
482
+ integrationHttpMethod: 'POST',
483
+ uri: `arn:aws:apigateway:${this.props.region}:sns:path//`,
484
+ options: {
485
+ ...{
486
+ credentialsRole: this.apiDestinedRestApi.topicRole,
487
+ requestParameters: this.apiDestinedRestApi.integrationRequestParameters,
488
+ requestTemplates: this.apiDestinedRestApi.integrationRequestTemplates,
489
+ passthroughBehavior: apig.PassthroughBehavior.NEVER,
490
+ integrationResponses: [
491
+ this.apiDestinedRestApi.integrationResponse,
492
+ this.apiDestinedRestApi.integrationErrorResponse,
493
+ ],
494
+ },
495
+ ...this.props.api.integrationOptions,
496
+ },
497
+ })
498
+ }
499
+
500
+ protected createApiDestinedMethodResponse() {
501
+ this.apiDestinedRestApi.methodResponse = {
502
+ ...{
503
+ statusCode: '200',
504
+ responseParameters: {
505
+ 'method.response.header.Content-Type': true,
506
+ 'method.response.header.Access-Control-Allow-Origin': true,
507
+ 'method.response.header.Access-Control-Allow-Credentials': true,
508
+ },
509
+ responseModels: {
510
+ 'application/json': this.apiDestinedRestApi.responseModel,
511
+ },
512
+ },
513
+ ...this.props.api.methodResponse,
514
+ }
515
+ }
516
+
517
+ protected createApiDestinedMethodErrorResponse() {
518
+ this.apiDestinedRestApi.methodErrorResponse = {
519
+ ...{
520
+ statusCode: '400',
521
+ responseParameters: {
522
+ 'method.response.header.Content-Type': true,
523
+ 'method.response.header.Access-Control-Allow-Origin': true,
524
+ 'method.response.header.Access-Control-Allow-Credentials': true,
525
+ },
526
+ responseModels: {
527
+ 'application/json': this.apiDestinedRestApi.errorResponseModel,
528
+ },
529
+ },
530
+ ...this.props.api.methodErrorResponse,
531
+ }
532
+ }
533
+
534
+ protected createApiDestinedResourceMethod() {
535
+ this.apiDestinedRestApi.method = this.apiDestinedRestApi.resource.addMethod(
536
+ 'POST',
537
+ this.apiDestinedRestApi.integration,
538
+ {
539
+ methodResponses: [this.apiDestinedRestApi.methodResponse, this.apiDestinedRestApi.methodErrorResponse],
540
+ }
541
+ )
542
+ }
543
+
544
+ /**
545
+ * @summary Method to create custom restApi domain for Api API
546
+ * @protected
547
+ */
548
+ protected createApiDomain() {
549
+ this.apiDestinedRestApi.domain = this.apiManager.createApiDomain(
550
+ `${this.id}-api-domain`,
551
+ this,
552
+ this.isProductionStage()
553
+ ? `${this.props.apiSubDomain}.${this.fullyQualifiedDomainName}`
554
+ : `${this.props.apiSubDomain}-${this.props.stage}.${this.fullyQualifiedDomainName}`,
555
+ this.apiDestinedRestApi.certificate
556
+ )
557
+ }
558
+
559
+ /**
560
+ * @summary Method to create base path mappings for Api API
561
+ * @protected
562
+ */
563
+ protected createApiBasePathMapping() {
564
+ const apiRootPaths = this.props.apiRootPaths
565
+ if (apiRootPaths && apiRootPaths.length > 0) {
566
+ apiRootPaths.forEach((apiRootPath: string) => {
567
+ this.apiDestinedBasePathMappings.push(
568
+ new apig.BasePathMapping(this, `${this.id}-base-bath-mapping-${apiRootPath}`, {
569
+ basePath: this.props.api.resource,
570
+ domainName: this.apiDestinedRestApi.domain,
571
+ restApi: this.apiDestinedRestApi.api,
572
+ stage: this.apiDestinedRestApi.api.deploymentStage,
573
+ })
574
+ )
575
+ })
576
+ }
577
+ }
578
+
579
+ /**
580
+ * @summary Method to create route53 records for Api API
581
+ * @protected
582
+ */
583
+ protected createApiRouteAssets() {
584
+ this.route53Manager.createApiGatewayARecord(
585
+ `${this.id}-custom-domain-a-record`,
586
+ this,
587
+ this.props.apiSubDomain,
588
+ this.apiDestinedRestApi.domain,
589
+ this.apiDestinedRestApi.hostedZone
590
+ )
591
+ }
592
+ }
@@ -0,0 +1 @@
1
+ export * from './main'
@@ -5,13 +5,15 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'
5
5
  import * as route53 from 'aws-cdk-lib/aws-route53'
6
6
  import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
7
7
  import { Construct } from 'constructs'
8
- import { CommonConstruct } from '../common/commonConstruct'
9
- import { GraphQlApiLambdaEnvironment, GraphQlApiLambdaProps } from '../types'
8
+ import { CommonConstruct } from '../../common'
9
+ import { GraphQlApiLambdaEnvironment, GraphQlApiLambdaProps } from '../../types'
10
10
 
11
11
  /**
12
12
  * @stability stable
13
13
  * @category Constructs
14
- * @summary Provides a construct to create and deploy a Graphql API as Lambda
14
+ * @classdesc Provides a construct to create and deploy a Graphql API as Lambda
15
+ *
16
+ * <b>Architecture</b> ![Architecture](./GraphQLApiLambda.jpg)
15
17
  *
16
18
  * @example
17
19
  * import { GraphQLApiLambda, GraphQlApiLambdaProps } '@gradientedge/cdk-utils'
@@ -25,37 +27,25 @@ import { GraphQlApiLambdaEnvironment, GraphQlApiLambdaProps } from '../types'
25
27
  * this.initResources()
26
28
  * }
27
29
  * }
28
- *
29
- * @mermaid
30
- * graph LR;
31
- * A[GraphQLApiLambda]-.->|extends|B(CommonConstruct);
32
- * B(CommonConstruct)-->|extends|C(Construct);
33
- * C(Construct)-->|implements|D(IConstruct);
34
30
  */
35
31
  export class GraphQLApiLambda extends CommonConstruct {
36
- /* graphql api props */
32
+ /* graphql restApi props */
37
33
  props: GraphQlApiLambdaProps
38
34
  id: string
39
35
 
40
- /* graphql api resources */
36
+ /* graphql restApi resources */
41
37
  applicationSecrets: secretsmanager.ISecret[]
42
- graphQLApiHostedZone: route53.IHostedZone
43
- graphQLApiCertificate: acm.ICertificate
44
- graphQLApiDomain: apig.DomainName
45
- graphQLApiBasePathMappings: apig.BasePathMapping[] = []
46
38
  graphQLApiLambdaPolicy: iam.PolicyDocument
47
39
  graphQLApiLambdaRole: iam.Role
48
40
  graphQLApiLambdaEnvironment: GraphQlApiLambdaEnvironment
49
41
  graphQLApiLambdaLayers: lambda.LayerVersion[] = []
50
42
  graphQLApiLambdaFunction: lambda.Function
51
43
  graphQLApi: apig.RestApi
44
+ graphQLApiHostedZone: route53.IHostedZone
45
+ graphQLApiCertificate: acm.ICertificate
46
+ graphQLApiDomain: apig.DomainName
47
+ graphQLApiBasePathMappings: apig.BasePathMapping[] = []
52
48
 
53
- /**
54
- * @summary Constructor to initialise the GraphQLApiLambda Construct
55
- * @param {Construct} parent
56
- * @param {string} id
57
- * @param {GraphQlApiLambdaProps} props
58
- */
59
49
  constructor(parent: Construct, id: string, props: GraphQlApiLambdaProps) {
60
50
  super(parent, id, props)
61
51
 
@@ -196,7 +186,7 @@ export class GraphQLApiLambda extends CommonConstruct {
196
186
  }
197
187
 
198
188
  /**
199
- * @summary Method to create rest api for GraphQL
189
+ * @summary Method to create rest restApi for GraphQL
200
190
  * @protected
201
191
  */
202
192
  protected createRestApi() {
@@ -209,7 +199,7 @@ export class GraphQLApiLambda extends CommonConstruct {
209
199
  }
210
200
 
211
201
  /**
212
- * @summary Method to create custom api domain for GraphQL API
202
+ * @summary Method to create custom restApi domain for GraphQL API
213
203
  * @protected
214
204
  */
215
205
  protected createApiDomain() {
@@ -1,3 +1,4 @@
1
- export * from './graphQLApiLambda'
2
- export * from './siteWithEcsBackend'
3
- export * from './staticSite'
1
+ export * from './api-to-eventbridge-target'
2
+ export * from './graphql-api-lambda'
3
+ export * from './site-with-ecs-backend'
4
+ export * from './static-site'
@@ -0,0 +1 @@
1
+ export * from './main'