@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,553 @@
1
+
2
+
3
+ <!DOCTYPE html>
4
+ <html lang="en">
5
+
6
+ <head>
7
+
8
+ <meta charset="utf-8">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <title>Gradient Edge CDK Utils manager/aws/cloudwatch-manager.ts</title>
11
+
12
+ <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
13
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
14
+ <script src="./build/entry.js"></script>
15
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
16
+ <!--[if lt IE 9]>
17
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
18
+ <![endif]-->
19
+ <link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
20
+ <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
21
+ <link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
22
+ <link type="text/css" rel="stylesheet" href="styles/app.min.css">
23
+ <link type="text/css" rel="stylesheet" href="styles/iframe.css">
24
+ <link type="text/css" rel="stylesheet" href="styles.css">
25
+ <script async defer src="https://buttons.github.io/buttons.js"></script>
26
+
27
+
28
+ </head>
29
+
30
+
31
+
32
+ <body class="layout small-header">
33
+ <div id="stickyNavbarOverlay"></div>
34
+
35
+
36
+ <div class="top-nav">
37
+ <div class="inner">
38
+ <a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
39
+ <span aria-hidden="true"></span>
40
+ <span aria-hidden="true"></span>
41
+ <span aria-hidden="true"></span>
42
+ </a>
43
+ <div class="logo">
44
+
45
+ <a class="image" href="index.html">
46
+ <img src="logo.png" alt="logo">
47
+ </a>
48
+
49
+
50
+ <a href="index.html">
51
+ <h1 class="navbar-item">Gradient Edge CDK Utils Documentation</h1>
52
+ </a>
53
+
54
+ </div>
55
+ <div class="menu">
56
+
57
+ <div class="navigation">
58
+ <a
59
+ href="index.html"
60
+ class="link"
61
+ >
62
+ API Documentation
63
+ </a>
64
+
65
+ <div class="dropdown is-hoverable is-right">
66
+ <a class="dropdown-trigger link">
67
+ Tutorials
68
+ <i class="fas fa-chevron-down fa-xs"></i>
69
+ </a>
70
+ <div class="dropdown-menu">
71
+ <div class="dropdown-content">
72
+
73
+ <a class="dropdown-item" href="tutorial-Architecture.html">
74
+ Architecture
75
+ </a>
76
+
77
+ <a class="dropdown-item" href="tutorial-Build.html">
78
+ Build
79
+ </a>
80
+
81
+ <a class="dropdown-item" href="tutorial-CI-CD.html">
82
+ CI-CD
83
+ </a>
84
+
85
+ <a class="dropdown-item" href="tutorial-Development.html">
86
+ Development
87
+ </a>
88
+
89
+ </div>
90
+ </div>
91
+ </div>
92
+
93
+
94
+
95
+ <a
96
+ class="link user-link "
97
+ href="https://github.com/gradientedge/cdk-utils"
98
+ >
99
+ Github
100
+ </a>
101
+
102
+
103
+
104
+ </div>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ <div id="main">
109
+ <div
110
+ class="sidebar "
111
+ id="sidebarNav"
112
+ >
113
+
114
+ <div class="search-wrapper">
115
+ <input id="search" type="text" placeholder="Search docs..." class="input">
116
+ </div>
117
+
118
+ <nav>
119
+
120
+ <h2><a href="index.html">Documentation</a></h2><div class="category"></div><div class="category"><h2>cdk-utils.acm-manager</h2><h3>Classes / Construct</h3><ul><li><a href="AcmManager.html">AcmManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="AcmProps.html">AcmProps</a></li></ul></div><div class="category"><h2>cdk-utils.api-manager</h2><h3>Classes / Construct</h3><ul><li><a href="ApiManager.html">ApiManager</a></li></ul></div><div class="category"><h2>cdk-utils.api-to-eventbridge-target</h2><h3>Classes / member</h3><ul><li><a href="ApiDestinationEvent.html">ApiDestinationEvent</a></li><li><a href="ApiDestinedLambda.html">ApiDestinedLambda</a></li><li><a href="ApiDestinedRestApi.html">ApiDestinedRestApi</a></li></ul><h3>Classes / construct</h3><ul><li><a href="ApiToEventBridgeTarget.html">ApiToEventBridgeTarget</a></li></ul><h3>Interfaces / Types</h3><ul><li><a href="ApiDestinationEventType.html">ApiDestinationEventType</a></li><li><a href="ApiDestinedLambdaEnvironment.html">ApiDestinedLambdaEnvironment</a></li><li><a href="ApiDestinedLambdaType.html">ApiDestinedLambdaType</a></li><li><a href="ApiDestinedRestApiType.html">ApiDestinedRestApiType</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="ApiToEventBridgeTargetEventProps.html">ApiToEventBridgeTargetEventProps</a></li><li><a href="ApiToEventBridgeTargetLambdaProps.html">ApiToEventBridgeTargetLambdaProps</a></li><li><a href="ApiToEventBridgeTargetProps.html">ApiToEventBridgeTargetProps</a></li><li><a href="ApiToEventBridgeTargetRestApiProps.html">ApiToEventBridgeTargetRestApiProps</a></li></ul></div><div class="category"><h2>cdk-utils.app-config-manager</h2><h3>Classes / Construct</h3><ul><li><a href="AppConfigManager.html">AppConfigManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="AppConfigProps.html">AppConfigProps</a></li></ul><h3>Global</h3><ul><li><a href="global.html#ArnsByRegion">ArnsByRegion</a></li></ul></div><div class="category"><h2>cdk-utils.cloudfront-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CloudFrontManager.html">CloudFrontManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="CloudfrontFunctionProps.html">CloudfrontFunctionProps</a></li><li><a href="CloudFrontProps.html">CloudFrontProps</a></li><li><a href="DistributionProps.html">DistributionProps</a></li></ul></div><div class="category"><h2>cdk-utils.cloudtrail-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CloudTrailManager.html">CloudTrailManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="CloudTrailProps.html">CloudTrailProps</a></li></ul></div><div class="category"><h2>cdk-utils.cloudwatch-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CloudWatchManager.html">CloudWatchManager</a></li><li><a href="LogManager.html">LogManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="AlarmProps.html">AlarmProps</a></li><li><a href="AlarmStatusWidgetProps.html">AlarmStatusWidgetProps</a></li><li><a href="DashboardProps.html">DashboardProps</a></li><li><a href="GraphWidgetProps.html">GraphWidgetProps</a></li><li><a href="LogProps.html">LogProps</a></li><li><a href="LogQueryWidgetProps.html">LogQueryWidgetProps</a></li><li><a href="MetricFilterProps.html">MetricFilterProps</a></li><li><a href="MetricProps.html">MetricProps</a></li><li><a href="NumericWidgetProps.html">NumericWidgetProps</a></li><li><a href="TextWidgetProps.html">TextWidgetProps</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CloudWatchWidgetType">CloudWatchWidgetType</a></li></ul></div><div class="category"><h2>cdk-utils.codebuild-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CodeBuildManager.html">CodeBuildManager</a></li></ul></div><div class="category"><h2>cdk-utils.common-construct</h2><h3>Classes / Construct</h3><ul><li><a href="CommonConstruct.html">CommonConstruct</a></li></ul></div><div class="category"><h2>cdk-utils.common-stack</h2><h3>Classes / Construct</h3><ul><li><a href="CommonStack.html">CommonStack</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="CommonStackProps.html">CommonStackProps</a></li></ul></div><div class="category"><h2>cdk-utils.dynamodb-manager</h2><h3>Classes / Construct</h3><ul><li><a href="DynamodbManager.html">DynamodbManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="TableProps.html">TableProps</a></li></ul></div><div class="category"><h2>cdk-utils.ecr-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EcrManager.html">EcrManager</a></li></ul></div><div class="category"><h2>cdk-utils.ecs-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EcsManager.html">EcsManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="EcsClusterProps.html">EcsClusterProps</a></li><li><a href="EcsTaskProps.html">EcsTaskProps</a></li></ul></div><div class="category"><h2>cdk-utils.eks-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EksManager.html">EksManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="EksClusterProps.html">EksClusterProps</a></li></ul></div><div class="category"><h2>cdk-utils.event-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EventManager.html">EventManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="EventBusProps.html">EventBusProps</a></li><li><a href="EventRuleProps.html">EventRuleProps</a></li><li><a href="RuleProps.html">RuleProps</a></li></ul></div><div class="category"><h2>cdk-utils.graphql-api-lambda</h2><h3>Classes / construct</h3><ul><li><a href="GraphQLApiLambda.html">GraphQLApiLambda</a></li></ul><h3>Interfaces / Types</h3><ul><li><a href="GraphQlApiLambdaEnvironment.html">GraphQlApiLambdaEnvironment</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="GraphQlApiLambdaProps.html">GraphQlApiLambdaProps</a></li></ul></div><div class="category"><h2>cdk-utils.iam-manager</h2><h3>Classes / Construct</h3><ul><li><a href="IamManager.html">IamManager</a></li></ul></div><div class="category"><h2>cdk-utils.lambda-manager</h2><h3>Classes / Construct</h3><ul><li><a href="LambdaManager.html">LambdaManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="LambdaEdgeProps.html">LambdaEdgeProps</a></li><li><a href="LambdaProps.html">LambdaProps</a></li></ul><h3>Interfaces / Types</h3><ul><li><a href="LambdaEnvironment.html">LambdaEnvironment</a></li></ul></div><div class="category"><h2>cdk-utils.route53-manager</h2><h3>Classes / Construct</h3><ul><li><a href="Route53Manager.html">Route53Manager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="Route53Props.html">Route53Props</a></li></ul></div><div class="category"><h2>cdk-utils.s3-manager</h2><h3>Classes / Construct</h3><ul><li><a href="S3Manager.html">S3Manager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="LifecycleRule.html">LifecycleRule</a></li><li><a href="S3BucketProps.html">S3BucketProps</a></li></ul></div><div class="category"><h2>cdk-utils.secrets-manager</h2><h3>Classes / Construct</h3><ul><li><a href="SecretsManager.html">SecretsManager</a></li></ul></div><div class="category"><h2>cdk-utils.site-with-ecs-backend</h2><h3>Classes / construct</h3><ul><li><a href="SiteWithEcsBackend.html">SiteWithEcsBackend</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="HealthCheck.html">HealthCheck</a></li><li><a href="SiteWithEcsBackendProps.html">SiteWithEcsBackendProps</a></li></ul></div><div class="category"><h2>cdk-utils.sns-manager</h2><h3>Classes / Construct</h3><ul><li><a href="SnsManager.html">SnsManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="SubscriptionProps.html">SubscriptionProps</a></li></ul></div><div class="category"><h2>cdk-utils.ssm-manager</h2><h3>Classes / Construct</h3><ul><li><a href="SsmManager.html">SsmManager</a></li><li><a href="SSMParameterReader.html">SSMParameterReader</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="SSMParameterReaderProps.html">SSMParameterReaderProps</a></li></ul></div><div class="category"><h2>cdk-utils.static-site</h2><h3>Classes / construct</h3><ul><li><a href="StaticSite.html">StaticSite</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="StaticSiteProps.html">StaticSiteProps</a></li></ul></div><div class="category"><h2>cdk-utils.utils</h2><h3>Global</h3><ul><li><a href="global.html#createCfnOutput">createCfnOutput</a></li><li><a href="global.html#defaultResponseObject">defaultResponseObject</a></li><li><a href="global.html#isDevStage">isDevStage</a></li><li><a href="global.html#isPrdStage">isPrdStage</a></li><li><a href="global.html#isTestStage">isTestStage</a></li><li><a href="global.html#isUatStage">isUatStage</a></li><li><a href="global.html#LogLevel">LogLevel</a></li><li><a href="global.html#redirectError">redirectError</a></li><li><a href="global.html#redirectSuccess">redirectSuccess</a></li></ul></div><div class="category"><h2>cdk-utils.vpc-manager</h2><h3>Classes / Construct</h3><ul><li><a href="VpcManager.html">VpcManager</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CommonVpcIdentifier">CommonVpcIdentifier</a></li></ul></div><div class="category"><h2>cdk-utils.waf-manager</h2><h3>Classes / Construct</h3><ul><li><a href="WafManager.html">WafManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="WafIPSetProps.html">WafIPSetProps</a></li><li><a href="WafWebACLProps.html">WafWebACLProps</a></li></ul></div>
121
+
122
+ </nav>
123
+ </div>
124
+ <div class="core" id="main-content-wrapper">
125
+ <div class="content">
126
+ <header class="page-title">
127
+ <p>Source</p>
128
+ <h1>manager/aws/cloudwatch-manager.ts</h1>
129
+ </header>
130
+
131
+
132
+
133
+
134
+
135
+ <section>
136
+ <article>
137
+ <pre class="prettyprint source linenums"><code>import * as cdk from 'aws-cdk-lib'
138
+ import * as watch from 'aws-cdk-lib/aws-cloudwatch'
139
+ import { IMetric } from 'aws-cdk-lib/aws-cloudwatch'
140
+ import * as common from '../../common'
141
+ import * as types from '../../types'
142
+ import * as utils from '../../utils'
143
+
144
+ /**
145
+ * @category cdk-utils.cloudwatch-manager
146
+ * @subcategory Construct
147
+ */
148
+ enum CloudWatchWidgetType {
149
+ Text = 'Text',
150
+ SingleValue = 'SingleValue',
151
+ Graph = 'Graph',
152
+ AlarmStatus = 'AlarmStatus',
153
+ LogQuery = 'LogQuery',
154
+ }
155
+
156
+ /**
157
+ * @stability stable
158
+ * @category cdk-utils.cloudwatch-manager
159
+ * @subcategory Construct
160
+ * @classdesc Provides operations on AWS CloudWatch.
161
+ * - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
162
+ * - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
163
+ * @example
164
+ * import * as common from '@gradientedge/cdk-utils'
165
+ *
166
+ * class CustomConstruct extends common.common.CommonConstruct {
167
+ * constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
168
+ * super(parent, id, props)
169
+ * this.props = props
170
+ * this.cloudWatchManager.createAlarmForMetric('MyAlarm', this, metric)
171
+ * }
172
+ * }
173
+ *
174
+ * @see [CDK CloudWatch Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch-readme.html}
175
+ */
176
+ export class CloudWatchManager {
177
+ /**
178
+ * @summary Method to create a cloudwatch alarm for a given expression
179
+ * @param {string} id scoped id of the resource
180
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
181
+ * @param {types.AlarmProps} props
182
+ */
183
+ public createAlarmForExpression(id: string, scope: common.CommonConstruct, props: types.AlarmProps) {
184
+ if (!props) throw `Alarm props undefined`
185
+
186
+ if (!props.expression) throw `Could not find expression for Alarm props for id:${id}`
187
+ if (!props.metricProps) throw `Could not find metricProps for Alarm props for id:${id}`
188
+
189
+ const metrics: any = {}
190
+ this.determineMetrics(scope, props.metricProps).map(
191
+ (metric: watch.IMetric, index: number) => (metrics[`m${index}`] = metric)
192
+ )
193
+ const expression = new watch.MathExpression({
194
+ expression: props.expression,
195
+ usingMetrics: metrics,
196
+ period: props.periodInSecs ? cdk.Duration.seconds(props.periodInSecs) : cdk.Duration.minutes(5),
197
+ })
198
+
199
+ const alarm = expression.createAlarm(scope, `${id}`, {
200
+ alarmName: props.alarmName,
201
+ alarmDescription: props.alarmDescription,
202
+ threshold: props.threshold,
203
+ evaluationPeriods: props.evaluationPeriods,
204
+ comparisonOperator: props.comparisonOperator,
205
+ treatMissingData: props.treatMissingData,
206
+ datapointsToAlarm: props.datapointsToAlarm,
207
+ })
208
+
209
+ utils.createCfnOutput(`${id}-alarmArn`, scope, alarm.alarmArn)
210
+ utils.createCfnOutput(`${id}-alarmName`, scope, alarm.alarmName)
211
+
212
+ return alarm
213
+ }
214
+
215
+ /**
216
+ * @summary Method to create a cloudwatch alarm for a given metric
217
+ * @param {string} id scoped id of the resource
218
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
219
+ * @param {types.AlarmProps} props
220
+ * @param metric
221
+ */
222
+ public createAlarmForMetric(
223
+ id: string,
224
+ scope: common.CommonConstruct,
225
+ props: types.AlarmProps,
226
+ metric: watch.Metric
227
+ ) {
228
+ if (!props) throw `Alarm props undefined`
229
+
230
+ const alarm = metric.createAlarm(scope, `${id}`, {
231
+ alarmName: props.alarmName,
232
+ alarmDescription: props.alarmDescription,
233
+ threshold: props.threshold,
234
+ evaluationPeriods: props.evaluationPeriods,
235
+ comparisonOperator: props.comparisonOperator,
236
+ treatMissingData: props.treatMissingData,
237
+ datapointsToAlarm: props.datapointsToAlarm,
238
+ })
239
+
240
+ utils.createCfnOutput(`${id}-alarmArn`, scope, alarm.alarmArn)
241
+ utils.createCfnOutput(`${id}-alarmName`, scope, alarm.alarmName)
242
+
243
+ return alarm
244
+ }
245
+
246
+ /**
247
+ * @summary Method to create a cloudwatch dashboard
248
+ * @param {string} id scoped id of the resource
249
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
250
+ * @param {types.DashboardProps} props
251
+ * @param widgets
252
+ */
253
+ public createDashboard(
254
+ id: string,
255
+ scope: common.CommonConstruct,
256
+ props: types.DashboardProps,
257
+ widgets?: watch.IWidget[][]
258
+ ) {
259
+ if (!props) throw `Dashboard props undefined`
260
+
261
+ const dashboard = new watch.Dashboard(scope, `${id}`, {
262
+ dashboardName: props.dashboardName,
263
+ periodOverride: props.periodOverride,
264
+ start: CloudWatchManager.determineTimeRange(props.start),
265
+ end: CloudWatchManager.determineTimeRange(props.end),
266
+ widgets: widgets,
267
+ })
268
+
269
+ utils.createCfnOutput(`${id}-dashboardName`, scope, props.dashboardName)
270
+
271
+ return dashboard
272
+ }
273
+
274
+ /**
275
+ * @summary Method to create cloudwatch widgets
276
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
277
+ * @param props
278
+ */
279
+ public createWidgets(scope: common.CommonConstruct, props: any[]) {
280
+ if (!props || props.length == 0) throw `Widget props undefined`
281
+
282
+ const widgets: any = []
283
+ props.forEach((widgetProps: any) => widgets.push(this.createWidget(widgetProps.id, scope, widgetProps)))
284
+
285
+ return widgets
286
+ }
287
+
288
+ /**
289
+ * @summary Method to create a cloudwatch widget
290
+ * @param {string} id scoped id of the resource
291
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
292
+ * @param props
293
+ */
294
+ public createWidget(id: string, scope: common.CommonConstruct, props: any) {
295
+ if (!props) throw `Widget props undefined`
296
+
297
+ const metrics = this.determineMetrics(scope, props.metricProps)
298
+ let alarms,
299
+ logGroupNames = []
300
+ switch (props.type) {
301
+ case CloudWatchWidgetType.Text:
302
+ return this.createTextWidget(id, scope, props)
303
+ case CloudWatchWidgetType.SingleValue:
304
+ return this.createSingleValueWidget(id, scope, props, metrics)
305
+ case CloudWatchWidgetType.Graph:
306
+ return this.createGraphWidget(id, scope, props, metrics)
307
+ case CloudWatchWidgetType.AlarmStatus:
308
+ alarms = this.determineAlarms(id, scope, props.alarmProps)
309
+ return this.createAlarmStatusWidget(id, scope, props, alarms)
310
+ case CloudWatchWidgetType.LogQuery:
311
+ logGroupNames = props.logGroupNames.map((name: string) => `${name}-${scope.props.stage}`)
312
+ return this.createLogQueryWidget(id, scope, props, logGroupNames)
313
+ default:
314
+ throw 'Unsupported widget type'
315
+ }
316
+ }
317
+
318
+ /**
319
+ * @summary Method to create a cloudwatch text widget
320
+ * @param {string} id scoped id of the resource
321
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
322
+ * @param {types.TextWidgetProps} props
323
+ */
324
+ public createTextWidget(id: string, scope: common.CommonConstruct, props: types.TextWidgetProps) {
325
+ const widget = new watch.TextWidget({
326
+ markdown: props.markdown,
327
+ width: props.width,
328
+ height: props.height,
329
+ })
330
+
331
+ if (props.positionX &amp;&amp; props.positionY) widget.position(props.positionX, props.positionY)
332
+
333
+ return widget
334
+ }
335
+
336
+ /**
337
+ * @summary Method to create a cloudwatch numeric widget
338
+ * @param {string} id scoped id of the resource
339
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
340
+ * @param {types.NumericWidgetProps} props
341
+ * @param metrics
342
+ */
343
+ public createSingleValueWidget(
344
+ id: string,
345
+ scope: common.CommonConstruct,
346
+ props: types.NumericWidgetProps,
347
+ metrics: IMetric[]
348
+ ) {
349
+ const widget = new watch.SingleValueWidget({
350
+ metrics: metrics,
351
+ setPeriodToTimeRange: props.setPeriodToTimeRange,
352
+ fullPrecision: props.fullPrecision,
353
+ title: props.title,
354
+ width: props.width,
355
+ height: props.height,
356
+ })
357
+
358
+ if (props.positionX &amp;&amp; props.positionY) widget.position(props.positionX, props.positionY)
359
+
360
+ return widget
361
+ }
362
+
363
+ /**
364
+ * @summary Method to create a cloudwatch graph widget
365
+ * @param {string} id scoped id of the resource
366
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
367
+ * @param {types.GraphWidgetProps} props
368
+ * @param leftYMetrics
369
+ * @param rightYMetrics
370
+ */
371
+ public createGraphWidget(
372
+ id: string,
373
+ scope: common.CommonConstruct,
374
+ props: types.GraphWidgetProps,
375
+ leftYMetrics?: IMetric[],
376
+ rightYMetrics?: IMetric[]
377
+ ) {
378
+ const widget = new watch.GraphWidget({
379
+ left: leftYMetrics,
380
+ right: rightYMetrics,
381
+ leftAnnotations: props.leftAnnotations,
382
+ rightAnnotations: props.rightAnnotations,
383
+ stacked: props.stacked,
384
+ leftYAxis: props.leftYAxis,
385
+ rightYAxis: props.rightYAxis,
386
+ legendPosition: props.legendPosition,
387
+ liveData: props.liveData,
388
+ view: props.view,
389
+ title: props.title,
390
+ width: props.width,
391
+ height: props.height,
392
+ })
393
+
394
+ if (props.positionX &amp;&amp; props.positionY) widget.position(props.positionX, props.positionY)
395
+
396
+ return widget
397
+ }
398
+
399
+ /**
400
+ * @summary Method to create a cloudwatch alarm status widget
401
+ * @param {string} id scoped id of the resource
402
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
403
+ * @param {types.AlarmStatusWidgetProps} props
404
+ * @param {watch.IAlarm[]} alarms
405
+ */
406
+ public createAlarmStatusWidget(
407
+ id: string,
408
+ scope: common.CommonConstruct,
409
+ props: types.AlarmStatusWidgetProps,
410
+ alarms: watch.IAlarm[]
411
+ ) {
412
+ const widget = new watch.AlarmStatusWidget({
413
+ alarms: alarms,
414
+ title: props.title,
415
+ width: props.width,
416
+ height: props.height,
417
+ })
418
+
419
+ if (props.positionX &amp;&amp; props.positionY) widget.position(props.positionX, props.positionY)
420
+
421
+ return widget
422
+ }
423
+
424
+ /**
425
+ * @summary Method to create a cloudwatch log query widget
426
+ * @param {string} id scoped id of the resource
427
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
428
+ * @param {types.LogQueryWidgetProps} props
429
+ * @param {string[]} logGroupNames
430
+ */
431
+ public createLogQueryWidget(
432
+ id: string,
433
+ scope: common.CommonConstruct,
434
+ props: types.LogQueryWidgetProps,
435
+ logGroupNames: string[]
436
+ ) {
437
+ const widget = new watch.LogQueryWidget({
438
+ logGroupNames: logGroupNames,
439
+ queryString: props.queryString,
440
+ queryLines: props.queryLines,
441
+ view: props.view,
442
+ title: props.title,
443
+ width: props.width,
444
+ height: props.height,
445
+ })
446
+
447
+ if (props.positionX &amp;&amp; props.positionY) widget.position(props.positionX, props.positionY)
448
+
449
+ return widget
450
+ }
451
+
452
+ /**
453
+ * @summary Utility method to determine the metrics and dimensions
454
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
455
+ * @param {types.MetricProps[]} metricProps
456
+ */
457
+ private determineMetrics(scope: common.CommonConstruct, metricProps: types.MetricProps[]) {
458
+ const metrics: watch.IMetric[] = []
459
+ if (metricProps) {
460
+ metricProps.forEach((metricProp: types.MetricProps) => {
461
+ let metricDimensions: watch.DimensionHash = metricProp.dimensionsMap || {}
462
+ if (metricProp.functionName) {
463
+ metricDimensions = {
464
+ ...metricProp.dimensionsMap,
465
+ ...{
466
+ FunctionName: `${metricProp.functionName}-${scope.props.stage}`,
467
+ },
468
+ }
469
+ }
470
+ if (metricProp.dbClusterIdentifier) {
471
+ metricDimensions = {
472
+ ...metricProp.dimensionsMap,
473
+ ...{
474
+ DBClusterIdentifier: `${metricProp.dbClusterIdentifier}-${scope.props.stage}`,
475
+ },
476
+ }
477
+ }
478
+ const metric = new watch.Metric({
479
+ namespace: metricProp.stageSuffix ? `${metricProp.namespace}-${scope.props.stage}` : metricProp.namespace,
480
+ metricName: metricProp.stageSuffix ? `${metricProp.metricName}-${scope.props.stage}` : metricProp.metricName,
481
+ dimensionsMap: metricDimensions,
482
+ statistic: metricProp.statistic,
483
+ region: metricProp.region,
484
+ period: metricProp.periodInSecs ? cdk.Duration.seconds(metricProp.periodInSecs) : cdk.Duration.minutes(5),
485
+ })
486
+ metrics.push(metric)
487
+ })
488
+ }
489
+
490
+ return metrics
491
+ }
492
+
493
+ /**
494
+ * @summary Utility method to determine the time range
495
+ * @param {string?} range
496
+ */
497
+ private static determineTimeRange(range?: string) {
498
+ const moment = require('moment')
499
+
500
+ switch (range) {
501
+ case 'START_TODAY':
502
+ return moment().startOf('day').format()
503
+ case 'END_TODAY':
504
+ return moment().endOf('day').format()
505
+ default:
506
+ return range
507
+ }
508
+ }
509
+
510
+ /**
511
+ * @summary Utility method to determine the configured alarms
512
+ * @param {string} id scoped id of the resource
513
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
514
+ * @param {watch.AlarmProps[]} alarmProps
515
+ */
516
+ private determineAlarms(id: string, scope: common.CommonConstruct, alarmProps: watch.AlarmProps[]) {
517
+ const alarms: watch.IAlarm[] = []
518
+ if (alarmProps) {
519
+ alarmProps.forEach((alarmProp: watch.AlarmProps) => {
520
+ if (!alarmProp.alarmName) throw `Alarm name undefined for ${id}`
521
+ const alarmArn = `arn:aws:cloudwatch:${cdk.Stack.of(scope).region}:${cdk.Stack.of(scope).account}:alarm:${
522
+ alarmProp.alarmName
523
+ }`
524
+ const alarm = watch.Alarm.fromAlarmArn(scope, `${alarmProp.alarmName}`, alarmArn)
525
+ alarms.push(alarm)
526
+ })
527
+ }
528
+
529
+ return alarms
530
+ }
531
+ }
532
+ </code></pre>
533
+ </article>
534
+ </section>
535
+
536
+
537
+
538
+
539
+ </div>
540
+
541
+ </div>
542
+ <div id="side-nav" class="side-nav">
543
+ </div>
544
+ </div>
545
+ <script src="scripts/app.min.js"></script>
546
+ <script>PR.prettyPrint();</script>
547
+ <script src="scripts/linenumber.js"> </script>
548
+
549
+ <script src="scripts/search.js"> </script>
550
+
551
+
552
+ </body>
553
+ </html>