@gradientedge/cdk-utils 4.3.2 → 4.4.3

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