@gradientedge/cdk-utils 4.4.4 → 4.4.8

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