@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,573 @@
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/iam-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/iam-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 ecs from 'aws-cdk-lib/aws-ecs'
139
+ import * as iam from 'aws-cdk-lib/aws-iam'
140
+ import * as logs from 'aws-cdk-lib/aws-logs'
141
+ import * as s3 from 'aws-cdk-lib/aws-s3'
142
+ import * as common from '../../common'
143
+ import * as utils from '../../utils'
144
+
145
+ /**
146
+ * @stability stable
147
+ * @category cdk-utils.iam-manager
148
+ * @subcategory Construct
149
+ * @classdesc Provides operations on AWS IAM.
150
+ * - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
151
+ * - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
152
+ * @example
153
+ * import * as common from '@gradientedge/cdk-utils'
154
+ *
155
+ * class CustomConstruct extends common.common.CommonConstruct {
156
+ * constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
157
+ * super(parent, id, props)
158
+ * this.props = props
159
+ * this.iamManager.createRoleForEcsEvent('MyEcsRole', this, cluster, task)
160
+ * }
161
+ * }
162
+ *
163
+ * @see [CDK IAM Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam-readme.html}
164
+ */
165
+ export class IamManager {
166
+ /**
167
+ * @summary Method to create iam statement to read secrets
168
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
169
+ */
170
+ public statementForReadSecrets(scope: common.CommonConstruct) {
171
+ return new iam.PolicyStatement({
172
+ effect: iam.Effect.ALLOW,
173
+ actions: ['secretsmanager:GetSecretValue'],
174
+ resources: [`arn:aws:secretsmanager:${cdk.Stack.of(scope).region}:${cdk.Stack.of(scope).account}:secret:*`],
175
+ })
176
+ }
177
+
178
+ /**
179
+ * @summary Method to create iam statement to put events
180
+ */
181
+ public statementForPutEvents() {
182
+ return new iam.PolicyStatement({
183
+ effect: iam.Effect.ALLOW,
184
+ actions: ['events:PutEvents'],
185
+ resources: ['*'],
186
+ })
187
+ }
188
+
189
+ /**
190
+ * @summary Method to create iam statement to read app config
191
+ */
192
+ public statementForReadAnyAppConfig() {
193
+ return new iam.PolicyStatement({
194
+ effect: iam.Effect.ALLOW,
195
+ actions: [
196
+ 'ssm:GetDocument',
197
+ 'ssm:ListDocuments',
198
+ 'appconfig:ListApplications',
199
+ 'appconfig:GetApplication',
200
+ 'appconfig:ListEnvironments',
201
+ 'appconfig:GetEnvironment',
202
+ 'appconfig:ListConfigurationProfiles',
203
+ 'appconfig:GetConfigurationProfile',
204
+ 'appconfig:ListDeploymentStrategies',
205
+ 'appconfig:GetDeploymentStrategy',
206
+ 'appconfig:GetConfiguration',
207
+ 'appconfig:ListDeployments',
208
+ ],
209
+ resources: ['*'],
210
+ })
211
+ }
212
+
213
+ /**
214
+ * @summary Method to create iam statement to list s3 buckets
215
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
216
+ * @param {s3.IBucket} bucket
217
+ */
218
+ public statementForListBucket(scope: common.CommonConstruct, bucket: s3.IBucket) {
219
+ return new iam.PolicyStatement({
220
+ effect: iam.Effect.ALLOW,
221
+ actions: ['s3:ListBucket'],
222
+ resources: [bucket.bucketArn],
223
+ })
224
+ }
225
+
226
+ /**
227
+ * @summary Method to create iam statement to list all s3 buckets
228
+ */
229
+ public statementForListAllMyBuckets() {
230
+ return new iam.PolicyStatement({
231
+ effect: iam.Effect.ALLOW,
232
+ actions: ['s3:ListAllMyBuckets'],
233
+ resources: ['*'],
234
+ })
235
+ }
236
+
237
+ /**
238
+ * @summary Method to create iam statement to get s3 objects in buckets
239
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
240
+ * @param {s3.IBucket} bucket
241
+ */
242
+ public statementForGetAnyS3Objects(scope: common.CommonConstruct, bucket: s3.IBucket) {
243
+ return new iam.PolicyStatement({
244
+ effect: iam.Effect.ALLOW,
245
+ actions: ['s3:GetObject', 's3:GetObjectAcl'],
246
+ resources: [bucket.arnForObjects(`*`)],
247
+ })
248
+ }
249
+
250
+ /**
251
+ * @summary Method to create iam statement to delete s3 objects in buckets
252
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
253
+ * @param {s3.IBucket} bucket
254
+ */
255
+ public statementForDeleteAnyS3Objects(scope: common.CommonConstruct, bucket: s3.IBucket) {
256
+ return new iam.PolicyStatement({
257
+ effect: iam.Effect.ALLOW,
258
+ actions: ['s3:DeleteObject'],
259
+ resources: [bucket.arnForObjects(`*`)],
260
+ })
261
+ }
262
+
263
+ /**
264
+ * @summary Method to create iam statement to write s3 objects in buckets
265
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
266
+ * @param {s3.IBucket} bucket
267
+ */
268
+ public statementForPutAnyS3Objects(scope: common.CommonConstruct, bucket: s3.IBucket) {
269
+ return new iam.PolicyStatement({
270
+ effect: iam.Effect.ALLOW,
271
+ actions: ['s3:PutObject', 's3:PutObjectAcl'],
272
+ resources: [bucket.arnForObjects(`*`)],
273
+ })
274
+ }
275
+
276
+ /**
277
+ * @summary Method to create iam statement to pass iam role
278
+ */
279
+ public statementForPassRole() {
280
+ return new iam.PolicyStatement({
281
+ effect: iam.Effect.ALLOW,
282
+ actions: ['iam:PassRole'],
283
+ resources: ['*'],
284
+ })
285
+ }
286
+
287
+ /**
288
+ * @summary Method to create iam statement to invalidate cloudfront cache
289
+ */
290
+ public statementForCloudfrontInvalidation() {
291
+ return new iam.PolicyStatement({
292
+ effect: iam.Effect.ALLOW,
293
+ actions: ['cloudfront:GetInvalidation', 'cloudfront:CreateInvalidation'],
294
+ resources: ['*'],
295
+ })
296
+ }
297
+
298
+ /**
299
+ * @summary Method to create iam policy to invalidate cloudfront cache
300
+ */
301
+ public policyForCloudfrontInvalidation() {
302
+ return new iam.PolicyDocument({
303
+ statements: [
304
+ this.statementForCreateAnyLogStream(),
305
+ this.statementForPutAnyLogEvent(),
306
+ this.statementForCloudfrontInvalidation(),
307
+ new iam.PolicyStatement({
308
+ effect: iam.Effect.ALLOW,
309
+ actions: [
310
+ 'ecr:GetDownloadUrlForLayer',
311
+ 'ecr:BatchGetImage',
312
+ 'ecr:BatchCheckLayerAvailability',
313
+ 'ecr:GetAuthorizationToken',
314
+ ],
315
+ resources: ['*'],
316
+ }),
317
+ ],
318
+ })
319
+ }
320
+
321
+ /**
322
+ * @summary Method to create iam role to invalidate cloudfront cache
323
+ * @param {string} id scoped id of the resource
324
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
325
+ */
326
+ public roleForCloudfrontInvalidation(id: string, scope: common.CommonConstruct) {
327
+ return new iam.Role(scope, `${id}-install-deps-project-role`, {
328
+ assumedBy: new iam.ServicePrincipal('codebuild.amazonaws.com'),
329
+ inlinePolicies: {
330
+ codeBuildPolicy: this.policyForCloudfrontInvalidation(),
331
+ },
332
+ })
333
+ }
334
+
335
+ /**
336
+ * @summary Method to create iam statement to assume iam role
337
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
338
+ * @param {iam.ServicePrincipal[]} servicePrincipals
339
+ */
340
+ public statementForAssumeRole(scope: common.CommonConstruct, servicePrincipals: iam.ServicePrincipal[]) {
341
+ return new iam.PolicyStatement({
342
+ effect: iam.Effect.ALLOW,
343
+ actions: ['sts:AssumeRole'],
344
+ principals: servicePrincipals,
345
+ })
346
+ }
347
+
348
+ /**
349
+ * @summary Method to create iam statement to pass ecs role
350
+ */
351
+ public statementForEcsPassRole() {
352
+ return new iam.PolicyStatement({
353
+ effect: iam.Effect.ALLOW,
354
+ actions: ['iam:PassRole'],
355
+ resources: ['*'],
356
+ conditions: { StringLike: { 'iam:PassedToService': 'ecs-tasks.amazonaws.com' } },
357
+ })
358
+ }
359
+
360
+ /**
361
+ * @summary Method to create iam statement to run ecs task
362
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
363
+ * @param {ecs.ICluster} cluster
364
+ * @param {ecs.ITaskDefinition} task
365
+ */
366
+ public statementForRunEcsTask(scope: common.CommonConstruct, cluster: ecs.ICluster, task: ecs.ITaskDefinition) {
367
+ return new iam.PolicyStatement({
368
+ effect: iam.Effect.ALLOW,
369
+ actions: ['ecs:RunTask'],
370
+ resources: [task.taskDefinitionArn],
371
+ conditions: { ArnLike: { 'ecs:cluster': cluster.clusterArn } },
372
+ })
373
+ }
374
+
375
+ /**
376
+ * @summary Method to create iam statement to create log stream
377
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
378
+ * @param {logs.CfnLogGroup} logGroup
379
+ */
380
+ public statementForCreateLogStream(scope: common.CommonConstruct, logGroup: logs.CfnLogGroup) {
381
+ return new iam.PolicyStatement({
382
+ effect: iam.Effect.ALLOW,
383
+ actions: ['logs:CreateLogStream'],
384
+ resources: [
385
+ `arn:aws:logs:${cdk.Stack.of(scope).region}:${cdk.Stack.of(scope).account}:log-group:${
386
+ logGroup.logGroupName
387
+ }:log-stream:${cdk.Stack.of(scope).account}_CloudTrail_eu-west-1*`,
388
+ ],
389
+ sid: 'AWSCloudTrailCreateLogStream2014110',
390
+ })
391
+ }
392
+
393
+ /**
394
+ * @summary Method to create iam statement to create any log stream
395
+ */
396
+ public statementForCreateAnyLogStream() {
397
+ return new iam.PolicyStatement({
398
+ effect: iam.Effect.ALLOW,
399
+ actions: ['logs:CreateLogStream'],
400
+ resources: ['*'],
401
+ })
402
+ }
403
+
404
+ /**
405
+ * @summary Method to create iam statement to write log events
406
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
407
+ * @param {logs.CfnLogGroup} logGroup
408
+ */
409
+ public statementForPutLogEvent(scope: common.CommonConstruct, logGroup: logs.CfnLogGroup) {
410
+ return new iam.PolicyStatement({
411
+ effect: iam.Effect.ALLOW,
412
+ actions: ['logs:PutLogEvents'],
413
+ resources: [
414
+ `arn:aws:logs:${cdk.Stack.of(scope).region}:${cdk.Stack.of(scope).account}:log-group:${
415
+ logGroup.logGroupName
416
+ }:log-stream:${cdk.Stack.of(scope).account}_CloudTrail_eu-west-1*`,
417
+ ],
418
+ sid: 'AWSCloudTrailPutLogEvents20141101',
419
+ })
420
+ }
421
+
422
+ /**
423
+ * @summary Method to create iam statement to write any log events
424
+ */
425
+ public statementForPutAnyLogEvent() {
426
+ return new iam.PolicyStatement({
427
+ effect: iam.Effect.ALLOW,
428
+ actions: ['logs:PutLogEvents'],
429
+ resources: ['*'],
430
+ })
431
+ }
432
+
433
+ /**
434
+ * @summary Method to create iam statement for cloud trail
435
+ * @param {string} id scoped id of the resource
436
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
437
+ * @param {logs.CfnLogGroup} logGroup
438
+ */
439
+ public createRoleForCloudTrail(id: string, scope: common.CommonConstruct, logGroup: logs.CfnLogGroup) {
440
+ const policy = new iam.PolicyDocument({
441
+ statements: [this.statementForCreateLogStream(scope, logGroup), this.statementForPutLogEvent(scope, logGroup)],
442
+ })
443
+ const role = new iam.CfnRole(scope, `${id}`, {
444
+ assumeRolePolicyDocument: new iam.PolicyDocument({
445
+ statements: [this.statementForAssumeRole(scope, [new iam.ServicePrincipal('cloudtrail.amazonaws.com')])],
446
+ }),
447
+ policies: [
448
+ {
449
+ policyName: `${id}-policy-${scope.props.stage}`,
450
+ policyDocument: policy,
451
+ },
452
+ ],
453
+ roleName: `${id}-${scope.props.stage}`,
454
+ })
455
+
456
+ utils.createCfnOutput(`${id}Arn`, scope, role.attrArn)
457
+ utils.createCfnOutput(`${id}Name`, scope, role.roleName)
458
+
459
+ return role
460
+ }
461
+
462
+ /**
463
+ * @summary Method to create iam statement for ecs event
464
+ * @param {string} id scoped id of the resource
465
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
466
+ * @param {ecs.ICluster} cluster
467
+ * @param {ecs.ITaskDefinition} task
468
+ */
469
+ public createRoleForEcsEvent(
470
+ id: string,
471
+ scope: common.CommonConstruct,
472
+ cluster: ecs.ICluster,
473
+ task: ecs.ITaskDefinition
474
+ ) {
475
+ const policy = new iam.PolicyDocument({
476
+ statements: [this.statementForRunEcsTask(scope, cluster, task), this.statementForEcsPassRole()],
477
+ })
478
+
479
+ const role = new iam.Role(scope, `${id}`, {
480
+ assumedBy: new iam.ServicePrincipal('events.amazonaws.com'),
481
+ description: `Role for ${id} ECS Task execution from EventBridge`,
482
+ inlinePolicies: { policy },
483
+ roleName: `${id}-${scope.props.stage}`,
484
+ })
485
+
486
+ utils.createCfnOutput(`${id}Arn`, scope, role.roleArn)
487
+ utils.createCfnOutput(`${id}Name`, scope, role.roleName)
488
+
489
+ return role
490
+ }
491
+
492
+ /**
493
+ * @summary Method to create iam statement for ecs execution
494
+ * @param {string} id scoped id of the resource
495
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
496
+ * @param {iam.PolicyDocument} policy
497
+ */
498
+ public createRoleForEcsExecution(id: string, scope: common.CommonConstruct, policy: iam.PolicyDocument) {
499
+ const role = new iam.Role(scope, `${id}`, {
500
+ assumedBy: new iam.ServicePrincipal('ecs-tasks.amazonaws.com'),
501
+ description: `Role for ${id} ECS Task execution`,
502
+ inlinePolicies: { policy },
503
+ managedPolicies: [
504
+ iam.ManagedPolicy.fromManagedPolicyArn(
505
+ scope,
506
+ 'AmazonECSTaskExecutionRolePolicy',
507
+ 'arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy'
508
+ ),
509
+ ],
510
+ roleName: `${id}-${scope.props.stage}`,
511
+ })
512
+
513
+ utils.createCfnOutput(`${id}Arn`, scope, role.roleArn)
514
+ utils.createCfnOutput(`${id}Name`, scope, role.roleName)
515
+
516
+ return role
517
+ }
518
+
519
+ /**
520
+ * @summary Method to create iam statement for lambda execution
521
+ * @param {string} id scoped id of the resource
522
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
523
+ * @param {iam.PolicyDocument} policy
524
+ * @param {iam.ServicePrincipal} servicePrinicpal
525
+ */
526
+ public createRoleForLambda(
527
+ id: string,
528
+ scope: common.CommonConstruct,
529
+ policy: iam.PolicyDocument,
530
+ servicePrinicpal?: iam.ServicePrincipal
531
+ ) {
532
+ const role = new iam.Role(scope, `${id}`, {
533
+ assumedBy: servicePrinicpal ?? new iam.ServicePrincipal('lambda.amazonaws.com'),
534
+ description: `Role for ${id} Lambda function`,
535
+ inlinePolicies: { policy },
536
+ managedPolicies: [
537
+ iam.ManagedPolicy.fromManagedPolicyArn(
538
+ scope,
539
+ `${id}-AWSLambdaBasicExecutionRole`,
540
+ 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'
541
+ ),
542
+ ],
543
+ roleName: `${id}-${scope.props.stage}`,
544
+ })
545
+
546
+ utils.createCfnOutput(`${id}Arn`, scope, role.roleArn)
547
+ utils.createCfnOutput(`${id}Name`, scope, role.roleName)
548
+
549
+ return role
550
+ }
551
+ }
552
+ </code></pre>
553
+ </article>
554
+ </section>
555
+
556
+
557
+
558
+
559
+ </div>
560
+
561
+ </div>
562
+ <div id="side-nav" class="side-nav">
563
+ </div>
564
+ </div>
565
+ <script src="scripts/app.min.js"></script>
566
+ <script>PR.prettyPrint();</script>
567
+ <script src="scripts/linenumber.js"> </script>
568
+
569
+ <script src="scripts/search.js"> </script>
570
+
571
+
572
+ </body>
573
+ </html>