@gradientedge/cdk-utils-aws 1.0.0

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 (288) hide show
  1. package/LICENSE +21 -0
  2. package/dist/src/common/construct.d.ts +85 -0
  3. package/dist/src/common/construct.js +125 -0
  4. package/dist/src/common/index.d.ts +4 -0
  5. package/dist/src/common/index.js +4 -0
  6. package/dist/src/common/resource-name-formatter.d.ts +13 -0
  7. package/dist/src/common/resource-name-formatter.js +30 -0
  8. package/dist/src/common/stack.d.ts +62 -0
  9. package/dist/src/common/stack.js +139 -0
  10. package/dist/src/common/types.d.ts +30 -0
  11. package/dist/src/common/types.js +1 -0
  12. package/dist/src/construct/api-to-any-target/index.d.ts +3 -0
  13. package/dist/src/construct/api-to-any-target/index.js +3 -0
  14. package/dist/src/construct/api-to-any-target/main.d.ts +47 -0
  15. package/dist/src/construct/api-to-any-target/main.js +154 -0
  16. package/dist/src/construct/api-to-any-target/target.d.ts +23 -0
  17. package/dist/src/construct/api-to-any-target/target.js +14 -0
  18. package/dist/src/construct/api-to-any-target/types.d.ts +60 -0
  19. package/dist/src/construct/api-to-any-target/types.js +1 -0
  20. package/dist/src/construct/api-to-eventbridge-target/api.d.ts +34 -0
  21. package/dist/src/construct/api-to-eventbridge-target/api.js +23 -0
  22. package/dist/src/construct/api-to-eventbridge-target/event.d.ts +15 -0
  23. package/dist/src/construct/api-to-eventbridge-target/event.js +12 -0
  24. package/dist/src/construct/api-to-eventbridge-target/index.d.ts +4 -0
  25. package/dist/src/construct/api-to-eventbridge-target/index.js +4 -0
  26. package/dist/src/construct/api-to-eventbridge-target/main.d.ts +121 -0
  27. package/dist/src/construct/api-to-eventbridge-target/main.js +442 -0
  28. package/dist/src/construct/api-to-eventbridge-target/types.d.ts +100 -0
  29. package/dist/src/construct/api-to-eventbridge-target/types.js +1 -0
  30. package/dist/src/construct/api-to-eventbridge-target-with-sns/api-destined-lambda.d.ts +16 -0
  31. package/dist/src/construct/api-to-eventbridge-target-with-sns/api-destined-lambda.js +12 -0
  32. package/dist/src/construct/api-to-eventbridge-target-with-sns/index.d.ts +3 -0
  33. package/dist/src/construct/api-to-eventbridge-target-with-sns/index.js +3 -0
  34. package/dist/src/construct/api-to-eventbridge-target-with-sns/main.d.ts +159 -0
  35. package/dist/src/construct/api-to-eventbridge-target-with-sns/main.js +547 -0
  36. package/dist/src/construct/api-to-eventbridge-target-with-sns/types.d.ts +22 -0
  37. package/dist/src/construct/api-to-eventbridge-target-with-sns/types.js +1 -0
  38. package/dist/src/construct/api-to-lambda-target/api.d.ts +35 -0
  39. package/dist/src/construct/api-to-lambda-target/api.js +24 -0
  40. package/dist/src/construct/api-to-lambda-target/index.d.ts +3 -0
  41. package/dist/src/construct/api-to-lambda-target/index.js +3 -0
  42. package/dist/src/construct/api-to-lambda-target/main.d.ts +70 -0
  43. package/dist/src/construct/api-to-lambda-target/main.js +218 -0
  44. package/dist/src/construct/api-to-lambda-target/types.d.ts +62 -0
  45. package/dist/src/construct/api-to-lambda-target/types.js +1 -0
  46. package/dist/src/construct/application-configuration/index.d.ts +2 -0
  47. package/dist/src/construct/application-configuration/index.js +2 -0
  48. package/dist/src/construct/application-configuration/main.d.ts +23 -0
  49. package/dist/src/construct/application-configuration/main.js +79 -0
  50. package/dist/src/construct/application-configuration/types.d.ts +6 -0
  51. package/dist/src/construct/application-configuration/types.js +1 -0
  52. package/dist/src/construct/event-handler/handler.d.ts +29 -0
  53. package/dist/src/construct/event-handler/handler.js +21 -0
  54. package/dist/src/construct/event-handler/index.d.ts +3 -0
  55. package/dist/src/construct/event-handler/index.js +3 -0
  56. package/dist/src/construct/event-handler/main.d.ts +91 -0
  57. package/dist/src/construct/event-handler/main.js +196 -0
  58. package/dist/src/construct/event-handler/types.d.ts +41 -0
  59. package/dist/src/construct/event-handler/types.js +1 -0
  60. package/dist/src/construct/index.d.ts +14 -0
  61. package/dist/src/construct/index.js +14 -0
  62. package/dist/src/construct/lambda-with-iam-access/index.d.ts +2 -0
  63. package/dist/src/construct/lambda-with-iam-access/index.js +2 -0
  64. package/dist/src/construct/lambda-with-iam-access/main.d.ts +78 -0
  65. package/dist/src/construct/lambda-with-iam-access/main.js +182 -0
  66. package/dist/src/construct/lambda-with-iam-access/types.d.ts +20 -0
  67. package/dist/src/construct/lambda-with-iam-access/types.js +1 -0
  68. package/dist/src/construct/piped-event-handler/index.d.ts +2 -0
  69. package/dist/src/construct/piped-event-handler/index.js +2 -0
  70. package/dist/src/construct/piped-event-handler/main.d.ts +38 -0
  71. package/dist/src/construct/piped-event-handler/main.js +62 -0
  72. package/dist/src/construct/piped-event-handler/types.d.ts +9 -0
  73. package/dist/src/construct/piped-event-handler/types.js +1 -0
  74. package/dist/src/construct/rest-api-lambda/index.d.ts +2 -0
  75. package/dist/src/construct/rest-api-lambda/index.js +2 -0
  76. package/dist/src/construct/rest-api-lambda/main.d.ts +96 -0
  77. package/dist/src/construct/rest-api-lambda/main.js +170 -0
  78. package/dist/src/construct/rest-api-lambda/types.d.ts +23 -0
  79. package/dist/src/construct/rest-api-lambda/types.js +1 -0
  80. package/dist/src/construct/rest-api-lambda-with-cache/index.d.ts +2 -0
  81. package/dist/src/construct/rest-api-lambda-with-cache/index.js +2 -0
  82. package/dist/src/construct/rest-api-lambda-with-cache/main.d.ts +56 -0
  83. package/dist/src/construct/rest-api-lambda-with-cache/main.js +118 -0
  84. package/dist/src/construct/rest-api-lambda-with-cache/types.d.ts +11 -0
  85. package/dist/src/construct/rest-api-lambda-with-cache/types.js +1 -0
  86. package/dist/src/construct/site-with-ecs-backend/constants.d.ts +4 -0
  87. package/dist/src/construct/site-with-ecs-backend/constants.js +5 -0
  88. package/dist/src/construct/site-with-ecs-backend/index.d.ts +3 -0
  89. package/dist/src/construct/site-with-ecs-backend/index.js +3 -0
  90. package/dist/src/construct/site-with-ecs-backend/main.d.ts +154 -0
  91. package/dist/src/construct/site-with-ecs-backend/main.js +437 -0
  92. package/dist/src/construct/site-with-ecs-backend/types.d.ts +49 -0
  93. package/dist/src/construct/site-with-ecs-backend/types.js +1 -0
  94. package/dist/src/construct/site-with-lambda-backend/constants.d.ts +5 -0
  95. package/dist/src/construct/site-with-lambda-backend/constants.js +6 -0
  96. package/dist/src/construct/site-with-lambda-backend/index.d.ts +3 -0
  97. package/dist/src/construct/site-with-lambda-backend/index.js +3 -0
  98. package/dist/src/construct/site-with-lambda-backend/main.d.ts +116 -0
  99. package/dist/src/construct/site-with-lambda-backend/main.js +316 -0
  100. package/dist/src/construct/site-with-lambda-backend/types.d.ts +45 -0
  101. package/dist/src/construct/site-with-lambda-backend/types.js +1 -0
  102. package/dist/src/construct/static-asset-deployment/index.d.ts +2 -0
  103. package/dist/src/construct/static-asset-deployment/index.js +2 -0
  104. package/dist/src/construct/static-asset-deployment/main.d.ts +41 -0
  105. package/dist/src/construct/static-asset-deployment/main.js +113 -0
  106. package/dist/src/construct/static-asset-deployment/types.d.ts +41 -0
  107. package/dist/src/construct/static-asset-deployment/types.js +1 -0
  108. package/dist/src/construct/static-site/index.d.ts +2 -0
  109. package/dist/src/construct/static-site/index.js +2 -0
  110. package/dist/src/construct/static-site/main.d.ts +84 -0
  111. package/dist/src/construct/static-site/main.js +136 -0
  112. package/dist/src/construct/static-site/types.d.ts +30 -0
  113. package/dist/src/construct/static-site/types.js +1 -0
  114. package/dist/src/index.d.ts +5 -0
  115. package/dist/src/index.js +5 -0
  116. package/dist/src/services/api-gateway/index.d.ts +2 -0
  117. package/dist/src/services/api-gateway/index.js +2 -0
  118. package/dist/src/services/api-gateway/main.d.ts +68 -0
  119. package/dist/src/services/api-gateway/main.js +173 -0
  120. package/dist/src/services/api-gateway/types.d.ts +10 -0
  121. package/dist/src/services/api-gateway/types.js +1 -0
  122. package/dist/src/services/appconfig/constants.d.ts +12 -0
  123. package/dist/src/services/appconfig/constants.js +51 -0
  124. package/dist/src/services/appconfig/index.d.ts +3 -0
  125. package/dist/src/services/appconfig/index.js +3 -0
  126. package/dist/src/services/appconfig/main.d.ts +63 -0
  127. package/dist/src/services/appconfig/main.js +119 -0
  128. package/dist/src/services/appconfig/types.d.ts +17 -0
  129. package/dist/src/services/appconfig/types.js +1 -0
  130. package/dist/src/services/certificate-manager/index.d.ts +2 -0
  131. package/dist/src/services/certificate-manager/index.js +2 -0
  132. package/dist/src/services/certificate-manager/main.d.ts +41 -0
  133. package/dist/src/services/certificate-manager/main.js +62 -0
  134. package/dist/src/services/certificate-manager/types.d.ts +11 -0
  135. package/dist/src/services/certificate-manager/types.js +1 -0
  136. package/dist/src/services/cloudfront/index.d.ts +2 -0
  137. package/dist/src/services/cloudfront/index.js +2 -0
  138. package/dist/src/services/cloudfront/main.d.ts +96 -0
  139. package/dist/src/services/cloudfront/main.js +233 -0
  140. package/dist/src/services/cloudfront/types.d.ts +13 -0
  141. package/dist/src/services/cloudfront/types.js +1 -0
  142. package/dist/src/services/cloudtrail/index.d.ts +2 -0
  143. package/dist/src/services/cloudtrail/index.js +2 -0
  144. package/dist/src/services/cloudtrail/main.d.ts +44 -0
  145. package/dist/src/services/cloudtrail/main.js +71 -0
  146. package/dist/src/services/cloudtrail/types.d.ts +5 -0
  147. package/dist/src/services/cloudtrail/types.js +1 -0
  148. package/dist/src/services/cloudwatch/index.d.ts +3 -0
  149. package/dist/src/services/cloudwatch/index.js +3 -0
  150. package/dist/src/services/cloudwatch/logs.d.ts +47 -0
  151. package/dist/src/services/cloudwatch/logs.js +98 -0
  152. package/dist/src/services/cloudwatch/main.d.ts +207 -0
  153. package/dist/src/services/cloudwatch/main.js +552 -0
  154. package/dist/src/services/cloudwatch/types.d.ts +89 -0
  155. package/dist/src/services/cloudwatch/types.js +1 -0
  156. package/dist/src/services/codebuild/index.d.ts +1 -0
  157. package/dist/src/services/codebuild/index.js +1 -0
  158. package/dist/src/services/codebuild/main.d.ts +36 -0
  159. package/dist/src/services/codebuild/main.js +67 -0
  160. package/dist/src/services/constants.d.ts +4 -0
  161. package/dist/src/services/constants.js +5 -0
  162. package/dist/src/services/dynamodb/index.d.ts +2 -0
  163. package/dist/src/services/dynamodb/index.js +2 -0
  164. package/dist/src/services/dynamodb/main.d.ts +35 -0
  165. package/dist/src/services/dynamodb/main.js +72 -0
  166. package/dist/src/services/dynamodb/types.d.ts +10 -0
  167. package/dist/src/services/dynamodb/types.js +1 -0
  168. package/dist/src/services/elastic-container-registry/index.d.ts +1 -0
  169. package/dist/src/services/elastic-container-registry/index.js +1 -0
  170. package/dist/src/services/elastic-container-registry/main.d.ts +27 -0
  171. package/dist/src/services/elastic-container-registry/main.js +33 -0
  172. package/dist/src/services/elastic-container-service/index.d.ts +2 -0
  173. package/dist/src/services/elastic-container-service/index.js +2 -0
  174. package/dist/src/services/elastic-container-service/main.d.ts +56 -0
  175. package/dist/src/services/elastic-container-service/main.js +149 -0
  176. package/dist/src/services/elastic-container-service/types.d.ts +45 -0
  177. package/dist/src/services/elastic-container-service/types.js +1 -0
  178. package/dist/src/services/elastic-file-system/index.d.ts +2 -0
  179. package/dist/src/services/elastic-file-system/index.js +2 -0
  180. package/dist/src/services/elastic-file-system/main.d.ts +42 -0
  181. package/dist/src/services/elastic-file-system/main.js +76 -0
  182. package/dist/src/services/elastic-file-system/types.d.ts +15 -0
  183. package/dist/src/services/elastic-file-system/types.js +1 -0
  184. package/dist/src/services/elastic-kubernetes-service/index.d.ts +2 -0
  185. package/dist/src/services/elastic-kubernetes-service/index.js +2 -0
  186. package/dist/src/services/elastic-kubernetes-service/main.d.ts +32 -0
  187. package/dist/src/services/elastic-kubernetes-service/main.js +85 -0
  188. package/dist/src/services/elastic-kubernetes-service/types.d.ts +7 -0
  189. package/dist/src/services/elastic-kubernetes-service/types.js +1 -0
  190. package/dist/src/services/elasticache/index.d.ts +2 -0
  191. package/dist/src/services/elasticache/index.js +2 -0
  192. package/dist/src/services/elasticache/main.d.ts +47 -0
  193. package/dist/src/services/elasticache/main.js +90 -0
  194. package/dist/src/services/elasticache/types.d.ts +9 -0
  195. package/dist/src/services/elasticache/types.js +1 -0
  196. package/dist/src/services/eventbridge/index.d.ts +3 -0
  197. package/dist/src/services/eventbridge/index.js +3 -0
  198. package/dist/src/services/eventbridge/main.d.ts +93 -0
  199. package/dist/src/services/eventbridge/main.js +295 -0
  200. package/dist/src/services/eventbridge/target.d.ts +57 -0
  201. package/dist/src/services/eventbridge/target.js +61 -0
  202. package/dist/src/services/eventbridge/types.d.ts +43 -0
  203. package/dist/src/services/eventbridge/types.js +1 -0
  204. package/dist/src/services/evidently/index.d.ts +2 -0
  205. package/dist/src/services/evidently/index.js +2 -0
  206. package/dist/src/services/evidently/main.d.ts +56 -0
  207. package/dist/src/services/evidently/main.js +114 -0
  208. package/dist/src/services/evidently/types.d.ts +21 -0
  209. package/dist/src/services/evidently/types.js +1 -0
  210. package/dist/src/services/identity-access-management/index.d.ts +1 -0
  211. package/dist/src/services/identity-access-management/index.js +1 -0
  212. package/dist/src/services/identity-access-management/main.d.ts +263 -0
  213. package/dist/src/services/identity-access-management/main.js +609 -0
  214. package/dist/src/services/index.d.ts +28 -0
  215. package/dist/src/services/index.js +28 -0
  216. package/dist/src/services/key-management-service/index.d.ts +2 -0
  217. package/dist/src/services/key-management-service/index.js +2 -0
  218. package/dist/src/services/key-management-service/main.d.ts +28 -0
  219. package/dist/src/services/key-management-service/main.js +39 -0
  220. package/dist/src/services/key-management-service/types.d.ts +5 -0
  221. package/dist/src/services/key-management-service/types.js +1 -0
  222. package/dist/src/services/lambda/index.d.ts +2 -0
  223. package/dist/src/services/lambda/index.js +2 -0
  224. package/dist/src/services/lambda/main.d.ts +89 -0
  225. package/dist/src/services/lambda/main.js +232 -0
  226. package/dist/src/services/lambda/types.d.ts +54 -0
  227. package/dist/src/services/lambda/types.js +1 -0
  228. package/dist/src/services/route53/index.d.ts +2 -0
  229. package/dist/src/services/route53/index.js +2 -0
  230. package/dist/src/services/route53/main.d.ts +66 -0
  231. package/dist/src/services/route53/main.js +136 -0
  232. package/dist/src/services/route53/types.d.ts +6 -0
  233. package/dist/src/services/route53/types.js +1 -0
  234. package/dist/src/services/secrets-manager/index.d.ts +2 -0
  235. package/dist/src/services/secrets-manager/index.js +2 -0
  236. package/dist/src/services/secrets-manager/main.d.ts +43 -0
  237. package/dist/src/services/secrets-manager/main.js +71 -0
  238. package/dist/src/services/secrets-manager/types.d.ts +3 -0
  239. package/dist/src/services/secrets-manager/types.js +1 -0
  240. package/dist/src/services/simple-notification-service/index.d.ts +2 -0
  241. package/dist/src/services/simple-notification-service/index.js +2 -0
  242. package/dist/src/services/simple-notification-service/main.d.ts +38 -0
  243. package/dist/src/services/simple-notification-service/main.js +68 -0
  244. package/dist/src/services/simple-notification-service/types.d.ts +5 -0
  245. package/dist/src/services/simple-notification-service/types.js +1 -0
  246. package/dist/src/services/simple-queue-service/index.d.ts +2 -0
  247. package/dist/src/services/simple-queue-service/index.js +2 -0
  248. package/dist/src/services/simple-queue-service/main.d.ts +45 -0
  249. package/dist/src/services/simple-queue-service/main.js +101 -0
  250. package/dist/src/services/simple-queue-service/types.d.ts +15 -0
  251. package/dist/src/services/simple-queue-service/types.js +1 -0
  252. package/dist/src/services/simple-storage-service/index.d.ts +2 -0
  253. package/dist/src/services/simple-storage-service/index.js +2 -0
  254. package/dist/src/services/simple-storage-service/main.d.ts +79 -0
  255. package/dist/src/services/simple-storage-service/main.js +191 -0
  256. package/dist/src/services/simple-storage-service/types.d.ts +25 -0
  257. package/dist/src/services/simple-storage-service/types.js +1 -0
  258. package/dist/src/services/step-function/index.d.ts +2 -0
  259. package/dist/src/services/step-function/index.js +2 -0
  260. package/dist/src/services/step-function/main.d.ts +161 -0
  261. package/dist/src/services/step-function/main.js +380 -0
  262. package/dist/src/services/step-function/types.d.ts +88 -0
  263. package/dist/src/services/step-function/types.js +1 -0
  264. package/dist/src/services/systems-manager/index.d.ts +2 -0
  265. package/dist/src/services/systems-manager/index.js +2 -0
  266. package/dist/src/services/systems-manager/main.d.ts +55 -0
  267. package/dist/src/services/systems-manager/main.js +97 -0
  268. package/dist/src/services/systems-manager/types.d.ts +9 -0
  269. package/dist/src/services/systems-manager/types.js +1 -0
  270. package/dist/src/services/virtual-private-cloud/index.d.ts +2 -0
  271. package/dist/src/services/virtual-private-cloud/index.js +2 -0
  272. package/dist/src/services/virtual-private-cloud/ipv6.d.ts +7 -0
  273. package/dist/src/services/virtual-private-cloud/ipv6.js +38 -0
  274. package/dist/src/services/virtual-private-cloud/main.d.ts +43 -0
  275. package/dist/src/services/virtual-private-cloud/main.js +87 -0
  276. package/dist/src/services/virtual-private-cloud/types.d.ts +4 -0
  277. package/dist/src/services/virtual-private-cloud/types.js +1 -0
  278. package/dist/src/services/web-application-firewall/index.d.ts +2 -0
  279. package/dist/src/services/web-application-firewall/index.js +2 -0
  280. package/dist/src/services/web-application-firewall/main.d.ts +35 -0
  281. package/dist/src/services/web-application-firewall/main.js +61 -0
  282. package/dist/src/services/web-application-firewall/types.d.ts +9 -0
  283. package/dist/src/services/web-application-firewall/types.js +1 -0
  284. package/dist/src/types/index.d.ts +6 -0
  285. package/dist/src/types/index.js +1 -0
  286. package/dist/src/utils/index.d.ts +45 -0
  287. package/dist/src/utils/index.js +61 -0
  288. package/package.json +44 -0
@@ -0,0 +1,609 @@
1
+ import { Stack } from 'aws-cdk-lib';
2
+ import { CfnRole, Effect, ManagedPolicy, PolicyDocument, PolicyStatement, Role, ServicePrincipal, } from 'aws-cdk-lib/aws-iam';
3
+ import { createCfnOutput } from '../../utils/index.js';
4
+ /**
5
+ * @classdesc Provides operations on AWS
6
+ * - A new instance of this class is injected into {@link CommonConstruct} constructor.
7
+ * - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
8
+ * @example
9
+ * import { CommonConstruct } from '@gradientedge/cdk-utils'
10
+ *
11
+ * class CustomConstruct extends CommonConstruct {
12
+ * constructor(parent: Construct, id: string, props: common.CommonStackProps) {
13
+ * super(parent, id, props)
14
+ * this.props = props
15
+ * this.iamManager.createRoleForEcsEvent('MyEcsRole', this, cluster, task)
16
+ * }
17
+ * }
18
+ * @see [CDK IAM Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam-readme.html}
19
+ */
20
+ export class IamManager {
21
+ /**
22
+ * @summary Method to create iam statement to read secrets
23
+ * @param scope scope in which this resource is defined
24
+ * @param resourceArns list of ARNs to allow access to
25
+ */
26
+ statementForReadSecrets(scope, resourceArns) {
27
+ return new PolicyStatement({
28
+ actions: ['secretsmanager:GetSecretValue'],
29
+ effect: Effect.ALLOW,
30
+ resources: resourceArns ?? [
31
+ `arn:aws:secretsmanager:${Stack.of(scope).region}:${Stack.of(scope).account}:secret:*`,
32
+ ],
33
+ });
34
+ }
35
+ /**
36
+ * @summary Method to create iam statement to put events
37
+ * @param resourceArns list of ARNs to allow access to
38
+ */
39
+ statementForPutEvents(resourceArns) {
40
+ return new PolicyStatement({
41
+ actions: ['events:PutEvents'],
42
+ effect: Effect.ALLOW,
43
+ resources: resourceArns ?? ['*'],
44
+ });
45
+ }
46
+ /**
47
+ * @summary Method to create iam statement to start step function execution
48
+ * @param resourceArns list of ARNs to allow access to
49
+ */
50
+ statementForStartExecution(resourceArns) {
51
+ return new PolicyStatement({
52
+ actions: ['states:StartExecution'],
53
+ effect: Effect.ALLOW,
54
+ resources: resourceArns ?? ['*'],
55
+ });
56
+ }
57
+ /**
58
+ * @summary Method to create iam statement to poll queue
59
+ * @param resourceArns list of ARNs to allow access to
60
+ */
61
+ statementForPollQueue(resourceArns) {
62
+ return new PolicyStatement({
63
+ actions: ['sqs:ReceiveMessage', 'sqs:DeleteMessage', 'sqs:GetQueueAttributes'],
64
+ effect: Effect.ALLOW,
65
+ resources: resourceArns ?? ['*'],
66
+ });
67
+ }
68
+ /**
69
+ * @summary Method to create iam statement to invoke lambda function
70
+ * @param resourceArns list of ARNs to allow access to
71
+ */
72
+ statementForInvokeLambda(resourceArns) {
73
+ return new PolicyStatement({
74
+ actions: ['lambda:InvokeFunction'],
75
+ effect: Effect.ALLOW,
76
+ resources: resourceArns ?? ['*'],
77
+ });
78
+ }
79
+ /**
80
+ * @summary Method to create iam statement to read app config
81
+ * @param resourceArns list of ARNs to allow access to
82
+ */
83
+ statementForReadAnyAppConfig(resourceArns) {
84
+ return new PolicyStatement({
85
+ actions: [
86
+ 'ssm:GetDocument',
87
+ 'ssm:ListDocuments',
88
+ 'appconfig:ListApplications',
89
+ 'appconfig:GetApplication',
90
+ 'appconfig:ListEnvironments',
91
+ 'appconfig:GetEnvironment',
92
+ 'appconfig:ListConfigurationProfiles',
93
+ 'appconfig:GetConfigurationProfile',
94
+ 'appconfig:ListDeploymentStrategies',
95
+ 'appconfig:GetDeploymentStrategy',
96
+ 'appconfig:GetConfiguration',
97
+ 'appconfig:ListDeployments',
98
+ ],
99
+ effect: Effect.ALLOW,
100
+ resources: resourceArns ?? ['*'],
101
+ });
102
+ }
103
+ /**
104
+ * @summary Method to create iam statement to access app config
105
+ * @param resourceArns list of ARNs to allow access to
106
+ */
107
+ statementForAppConfigExecution(resourceArns) {
108
+ return new PolicyStatement({
109
+ actions: ['appconfig:GetLatestConfiguration', 'appconfig:StartConfigurationSession'],
110
+ effect: Effect.ALLOW,
111
+ resources: resourceArns ?? ['*'],
112
+ });
113
+ }
114
+ /**
115
+ * @summary Method to create iam statement to put xray telemetry
116
+ * @param resourceArns list of ARNs to allow access to
117
+ */
118
+ statementForPutXrayTelemetry(resourceArns) {
119
+ return new PolicyStatement({
120
+ actions: ['xray:PutTraceSegments', 'xray:PutTelemetryRecords'],
121
+ effect: Effect.ALLOW,
122
+ resources: resourceArns ?? ['*'],
123
+ });
124
+ }
125
+ /**
126
+ * @summary Method to create iam statement to decrypt kms
127
+ * @param resourceArns list of ARNs to allow access to
128
+ */
129
+ statementForDecryptKms(resourceArns) {
130
+ return new PolicyStatement({
131
+ actions: ['kms:Decrypt'],
132
+ effect: Effect.ALLOW,
133
+ resources: resourceArns ?? ['*'],
134
+ });
135
+ }
136
+ /**
137
+ * @summary Method to create iam statement to list s3 buckets
138
+ * @param scope scope in which this resource is defined
139
+ * @param bucket
140
+ */
141
+ statementForListBucket(scope, bucket) {
142
+ return new PolicyStatement({
143
+ actions: ['s3:ListBucket'],
144
+ effect: Effect.ALLOW,
145
+ resources: [bucket.bucketArn],
146
+ });
147
+ }
148
+ /**
149
+ * @summary Method to create iam statement to list all s3 buckets
150
+ * @param resourceArns list of ARNs to allow access to
151
+ */
152
+ statementForListAllMyBuckets(resourceArns) {
153
+ return new PolicyStatement({
154
+ actions: ['s3:ListAllMyBuckets'],
155
+ effect: Effect.ALLOW,
156
+ resources: resourceArns ?? ['*'],
157
+ });
158
+ }
159
+ /**
160
+ * @summary Method to create iam statement to get s3 objects in buckets
161
+ * @param scope scope in which this resource is defined
162
+ * @param bucket
163
+ * @param resourceArns list of ARNs to allow access to
164
+ */
165
+ statementForGetAnyS3Objects(scope, bucket, resourceArns) {
166
+ return new PolicyStatement({
167
+ actions: ['s3:GetObject', 's3:GetObjectAcl'],
168
+ effect: Effect.ALLOW,
169
+ resources: resourceArns ?? [bucket.arnForObjects(`*`)],
170
+ });
171
+ }
172
+ /**
173
+ * @summary Method to create iam statement to delete s3 objects in buckets
174
+ * @param scope scope in which this resource is defined
175
+ * @param bucket
176
+ * @param resourceArns list of ARNs to allow access to
177
+ */
178
+ statementForDeleteAnyS3Objects(scope, bucket, resourceArns) {
179
+ return new PolicyStatement({
180
+ actions: ['s3:DeleteObject'],
181
+ effect: Effect.ALLOW,
182
+ resources: resourceArns ?? [bucket.arnForObjects(`*`)],
183
+ });
184
+ }
185
+ /**
186
+ * @summary Method to create iam statement to write s3 objects in buckets
187
+ * @param scope scope in which this resource is defined
188
+ * @param bucket
189
+ * @param resourceArns list of ARNs to allow access to
190
+ */
191
+ statementForPutAnyS3Objects(scope, bucket, resourceArns) {
192
+ return new PolicyStatement({
193
+ actions: ['s3:PutObject', 's3:PutObjectAcl'],
194
+ effect: Effect.ALLOW,
195
+ resources: resourceArns ?? [bucket.arnForObjects(`*`)],
196
+ });
197
+ }
198
+ /**
199
+ * @summary Method to create iam statement to pass iam role
200
+ * @param resourceArns list of ARNs to allow access to
201
+ */
202
+ statementForPassRole(resourceArns) {
203
+ return new PolicyStatement({
204
+ actions: ['iam:PassRole'],
205
+ effect: Effect.ALLOW,
206
+ resources: resourceArns ?? ['*'],
207
+ });
208
+ }
209
+ /**
210
+ * @summary Method to create iam statement to invalidate cloudfront cache
211
+ * @param resourceArns list of ARNs to allow access to
212
+ */
213
+ statementForCloudfrontInvalidation(resourceArns) {
214
+ return new PolicyStatement({
215
+ actions: ['cloudfront:GetInvalidation', 'cloudfront:CreateInvalidation'],
216
+ effect: Effect.ALLOW,
217
+ resources: resourceArns ?? ['*'],
218
+ });
219
+ }
220
+ /**
221
+ * @summary Method to create iam statement to access efs
222
+ * @param resourceArns list of ARNs to allow access to
223
+ */
224
+ statementForWriteEfs(resourceArns) {
225
+ return new PolicyStatement({
226
+ actions: ['elasticfilesystem:*'],
227
+ effect: Effect.ALLOW,
228
+ resources: resourceArns ?? ['*'],
229
+ });
230
+ }
231
+ /**
232
+ * @summary Method to create iam statement to assume iam role
233
+ * @param scope scope in which this resource is defined
234
+ * @param servicePrincipals
235
+ */
236
+ statementForAssumeRole(scope, servicePrincipals) {
237
+ return new PolicyStatement({
238
+ actions: ['sts:AssumeRole'],
239
+ effect: Effect.ALLOW,
240
+ principals: servicePrincipals,
241
+ });
242
+ }
243
+ /**
244
+ * @summary Method to create iam statement to pass ecs role
245
+ * @param resourceArns list of ARNs to allow access to
246
+ */
247
+ statementForEcsPassRole(resourceArns) {
248
+ return new PolicyStatement({
249
+ actions: ['iam:PassRole'],
250
+ conditions: { StringLike: { 'iam:PassedToService': 'ecs-tasks.amazonaws.com' } },
251
+ effect: Effect.ALLOW,
252
+ resources: resourceArns ?? ['*'],
253
+ });
254
+ }
255
+ /**
256
+ * @summary Method to create iam statement to run ecs task
257
+ * @param scope scope in which this resource is defined
258
+ * @param cluster
259
+ * @param task
260
+ */
261
+ statementForRunEcsTask(scope, cluster, task) {
262
+ return new PolicyStatement({
263
+ actions: ['ecs:RunTask'],
264
+ conditions: { ArnLike: { 'ecs:cluster': cluster.clusterArn } },
265
+ effect: Effect.ALLOW,
266
+ resources: [task.taskDefinitionArn],
267
+ });
268
+ }
269
+ /**
270
+ * @summary Method to create iam statement to create log stream
271
+ * @param scope scope in which this resource is defined
272
+ * @param logGroup
273
+ */
274
+ statementForCreateLogStream(scope, logGroup) {
275
+ return new PolicyStatement({
276
+ actions: ['logs:CreateLogStream'],
277
+ effect: Effect.ALLOW,
278
+ resources: [
279
+ `arn:aws:logs:${Stack.of(scope).region}:${Stack.of(scope).account}:log-group:${logGroup.logGroupName}:log-stream:${Stack.of(scope).account}_CloudTrail_eu-west-1*`,
280
+ ],
281
+ sid: 'AWSCloudTrailCreateLogStream2014110',
282
+ });
283
+ }
284
+ /**
285
+ * @summary Method to create iam statement to create any log stream
286
+ * @param resourceArns list of ARNs to allow access to
287
+ */
288
+ statementForCreateAnyLogStream(resourceArns) {
289
+ return new PolicyStatement({
290
+ actions: ['logs:CreateLogStream'],
291
+ effect: Effect.ALLOW,
292
+ resources: resourceArns ?? ['*'],
293
+ });
294
+ }
295
+ /**
296
+ * @summary Method to create iam statement to write log events
297
+ * @param scope scope in which this resource is defined
298
+ * @param logGroup
299
+ */
300
+ statementForPutLogEvent(scope, logGroup) {
301
+ return new PolicyStatement({
302
+ actions: ['logs:PutLogEvents'],
303
+ effect: Effect.ALLOW,
304
+ resources: [
305
+ `arn:aws:logs:${Stack.of(scope).region}:${Stack.of(scope).account}:log-group:${logGroup.logGroupName}:log-stream:${Stack.of(scope).account}_CloudTrail_eu-west-1*`,
306
+ ],
307
+ sid: 'AWSCloudTrailPutLogEvents20141101',
308
+ });
309
+ }
310
+ /**
311
+ * @summary Method to create iam statement to write any log events
312
+ * @param resourceArns list of ARNs to allow access to
313
+ */
314
+ statementForPutAnyLogEvent(resourceArns) {
315
+ return new PolicyStatement({
316
+ actions: ['logs:PutLogEvents'],
317
+ effect: Effect.ALLOW,
318
+ resources: resourceArns ?? ['*'],
319
+ });
320
+ }
321
+ /**
322
+ * @summary Method to create iam statement to read items from dynamodb table
323
+ * @param resourceArns list of ARNs to allow access to
324
+ */
325
+ statementForReadTableItems(resourceArns) {
326
+ return new PolicyStatement({
327
+ actions: [
328
+ 'dynamodb:PartiQLSelect',
329
+ 'dynamodb:DescribeTable',
330
+ 'dynamodb:ListTables',
331
+ 'dynamodb:GetItem',
332
+ 'dynamodb:Scan',
333
+ 'dynamodb:Query',
334
+ 'dynamodb:GetRecords',
335
+ 'dynamodb:BatchGetItem',
336
+ ],
337
+ effect: Effect.ALLOW,
338
+ resources: resourceArns ?? ['*'],
339
+ });
340
+ }
341
+ /**
342
+ * @summary Method to create iam statement to write items from dynamodb table
343
+ * @param resourceArns list of ARNs to allow access to
344
+ */
345
+ statementForWriteTableItems(resourceArns) {
346
+ return new PolicyStatement({
347
+ actions: ['dynamodb:BatchWriteItem', 'dynamodb:DeleteItem', 'dynamodb:PutItem', 'dynamodb:UpdateItem'],
348
+ effect: Effect.ALLOW,
349
+ resources: resourceArns ?? ['*'],
350
+ });
351
+ }
352
+ /**
353
+ * @summary Method to create iam statement to poll from dynamodb table
354
+ * @param resourceArns list of ARNs to allow access to
355
+ */
356
+ statementFordynamoDbStream(resourceArns) {
357
+ return new PolicyStatement({
358
+ actions: ['dynamodb:DescribeStream', 'dynamodb:GetRecords', 'dynamodb:GetShardIterator', 'dynamodb:ListStreams'],
359
+ effect: Effect.ALLOW,
360
+ resources: resourceArns ?? ['*'],
361
+ });
362
+ }
363
+ /**
364
+ * @summary Method to create iam policy to invalidate cloudfront cache
365
+ * @param resourceArns list of ARNs to allow access to
366
+ */
367
+ createPolicyForCloudfrontInvalidation(resourceArns) {
368
+ return new PolicyDocument({
369
+ statements: [
370
+ this.statementForCreateAnyLogStream(),
371
+ this.statementForPutAnyLogEvent(),
372
+ this.statementForCloudfrontInvalidation(),
373
+ new PolicyStatement({
374
+ actions: [
375
+ 'ecr:GetDownloadUrlForLayer',
376
+ 'ecr:BatchGetImage',
377
+ 'ecr:BatchCheckLayerAvailability',
378
+ 'ecr:GetAuthorizationToken',
379
+ ],
380
+ effect: Effect.ALLOW,
381
+ resources: resourceArns ?? ['*'],
382
+ }),
383
+ ],
384
+ });
385
+ }
386
+ /**
387
+ * @summary Method to create iam policy for sqs
388
+ * @param id scoped id of the resource
389
+ * @param scope scope in which this resource is defined
390
+ * @param sqsQueue
391
+ * @param eventBridgeRule
392
+ * @param servicePrincipals
393
+ */
394
+ createPolicyForSqsEvent(id, scope, sqsQueue, eventBridgeRule, servicePrincipals) {
395
+ return new PolicyDocument({
396
+ statements: [
397
+ new PolicyStatement({
398
+ actions: ['sqs:*'],
399
+ conditions: {
400
+ ArnEquals: {
401
+ 'aws:SourceArn': eventBridgeRule,
402
+ },
403
+ },
404
+ effect: Effect.ALLOW,
405
+ principals: servicePrincipals ?? [new ServicePrincipal('events.amazonaws.com')],
406
+ resources: [sqsQueue.queueArn],
407
+ }),
408
+ ],
409
+ });
410
+ }
411
+ /**
412
+ * @summary Method to create iam role to invalidate cloudfront cache
413
+ * @param id scoped id of the resource
414
+ * @param scope scope in which this resource is defined
415
+ */
416
+ createRoleForCloudfrontInvalidation(id, scope) {
417
+ return new Role(scope, `${id}-install-deps-project-role`, {
418
+ assumedBy: new ServicePrincipal('codebuild.amazonaws.com'),
419
+ inlinePolicies: {
420
+ codeBuildPolicy: this.createPolicyForCloudfrontInvalidation(),
421
+ },
422
+ roleName: scope.resourceNameFormatter.format(`${id}-cf-invalidation`, scope.props.resourceNameOptions?.iam),
423
+ });
424
+ }
425
+ /**
426
+ * @summary Method to create iam statement for cloud trail
427
+ * @param id scoped id of the resource
428
+ * @param scope scope in which this resource is defined
429
+ * @param logGroup
430
+ */
431
+ createRoleForCloudTrail(id, scope, logGroup) {
432
+ const policy = new PolicyDocument({
433
+ statements: [this.statementForCreateLogStream(scope, logGroup), this.statementForPutLogEvent(scope, logGroup)],
434
+ });
435
+ const role = new CfnRole(scope, `${id}`, {
436
+ assumeRolePolicyDocument: new PolicyDocument({
437
+ statements: [this.statementForAssumeRole(scope, [new ServicePrincipal('cloudtrail.amazonaws.com')])],
438
+ }),
439
+ policies: [
440
+ {
441
+ policyDocument: policy,
442
+ policyName: scope.resourceNameFormatter.format(`${id}-policy`),
443
+ },
444
+ ],
445
+ roleName: scope.resourceNameFormatter.format(`${id}-trail`, scope.props.resourceNameOptions?.iam),
446
+ });
447
+ createCfnOutput(`${id}Arn`, scope, role.attrArn);
448
+ createCfnOutput(`${id}Name`, scope, role.roleName);
449
+ return role;
450
+ }
451
+ /**
452
+ * @summary Method to create iam statement for ecs event
453
+ * @param id scoped id of the resource
454
+ * @param scope scope in which this resource is defined
455
+ * @param cluster
456
+ * @param task
457
+ */
458
+ createRoleForEcsEvent(id, scope, cluster, task) {
459
+ const policy = new PolicyDocument({
460
+ statements: [this.statementForRunEcsTask(scope, cluster, task), this.statementForEcsPassRole()],
461
+ });
462
+ const role = new Role(scope, `${id}`, {
463
+ assumedBy: new ServicePrincipal('events.amazonaws.com'),
464
+ description: `Role for ${id} ECS Task execution from EventBridge`,
465
+ inlinePolicies: { policy },
466
+ roleName: scope.resourceNameFormatter.format(`${id}-ecs-event`, scope.props.resourceNameOptions?.iam),
467
+ });
468
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
469
+ createCfnOutput(`${id}Name`, scope, role.roleName);
470
+ return role;
471
+ }
472
+ /**
473
+ * @summary Method to create iam statement for ecs execution
474
+ * @param id scoped id of the resource
475
+ * @param scope scope in which this resource is defined
476
+ * @param policy
477
+ */
478
+ createRoleForEcsExecution(id, scope, policy) {
479
+ const role = new Role(scope, `${id}`, {
480
+ assumedBy: new ServicePrincipal('ecs-tasks.amazonaws.com'),
481
+ description: `Role for ${id} ECS Task execution`,
482
+ inlinePolicies: { policy },
483
+ managedPolicies: [
484
+ ManagedPolicy.fromManagedPolicyArn(scope, `${id}-AmazonECSTaskExecutionRolePolicy`, 'arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy'),
485
+ ],
486
+ roleName: scope.resourceNameFormatter.format(`${id}-ecs-exec`, scope.props.resourceNameOptions?.iam),
487
+ });
488
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
489
+ createCfnOutput(`${id}Name`, scope, role.roleName);
490
+ return role;
491
+ }
492
+ /**
493
+ * @summary Method to create iam statement for lambda execution
494
+ * @param id scoped id of the resource
495
+ * @param scope scope in which this resource is defined
496
+ * @param policy
497
+ * @param servicePrincipal
498
+ */
499
+ createRoleForLambda(id, scope, policy, servicePrincipal) {
500
+ const role = new Role(scope, `${id}`, {
501
+ assumedBy: servicePrincipal ?? new ServicePrincipal('lambda.amazonaws.com'),
502
+ description: `Role for ${id} Lambda function`,
503
+ inlinePolicies: { policy },
504
+ managedPolicies: [
505
+ ManagedPolicy.fromManagedPolicyArn(scope, `${id}-AWSLambdaBasicExecutionRole`, 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'),
506
+ ],
507
+ roleName: scope.resourceNameFormatter.format(`${id}-lambda`, scope.props.resourceNameOptions?.iam),
508
+ });
509
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
510
+ createCfnOutput(`${id}Name`, scope, role.roleName);
511
+ return role;
512
+ }
513
+ /**
514
+ * @summary Method to create iam statement for appconfig secrets manager integration
515
+ * @param id scoped id of the resource
516
+ * @param scope scope in which this resource is defined
517
+ * @param policy
518
+ * @param servicePrincipal
519
+ */
520
+ createRoleForAppConfigSecrets(id, scope, policy, servicePrincipal) {
521
+ const role = new Role(scope, `${id}`, {
522
+ assumedBy: servicePrincipal ?? new ServicePrincipal('appconfig.amazonaws.com'),
523
+ description: `Role for ${id} AppConfig Secrets`,
524
+ inlinePolicies: { policy },
525
+ roleName: scope.resourceNameFormatter.format(`${id}-config`, scope.props.resourceNameOptions?.iam),
526
+ });
527
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
528
+ createCfnOutput(`${id}Name`, scope, role.roleName);
529
+ return role;
530
+ }
531
+ /**
532
+ * @summary Method to create iam statement for step function execution
533
+ * @param id scoped id of the resource
534
+ * @param scope scope in which this resource is defined
535
+ * @param policy
536
+ * @param servicePrincipal
537
+ */
538
+ createRoleForStepFunction(id, scope, policy, servicePrincipal) {
539
+ const role = new Role(scope, `${id}`, {
540
+ assumedBy: servicePrincipal ?? new ServicePrincipal('states.amazonaws.com'),
541
+ description: `Role for ${id} Lambda function`,
542
+ inlinePolicies: { policy },
543
+ managedPolicies: [
544
+ ManagedPolicy.fromManagedPolicyArn(scope, `${id}-AWSLambdaBasicExecutionRole`, 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'),
545
+ ],
546
+ roleName: scope.resourceNameFormatter.format(`${id}-sfn-exec`, scope.props.resourceNameOptions?.iam),
547
+ });
548
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
549
+ createCfnOutput(`${id}Name`, scope, role.roleName);
550
+ return role;
551
+ }
552
+ /**
553
+ * @summary Method to create iam statement for sqs to step function pipe
554
+ * @param id scoped id of the resource
555
+ * @param scope scope in which this resource is defined
556
+ * @param queueArn the arn of the sqs queue
557
+ * @param stepFunctionArn the arn of the step function
558
+ */
559
+ createRoleForSqsToSfnPipe(id, scope, queueArn, stepFunctionArn) {
560
+ const role = new Role(scope, `${id}`, {
561
+ assumedBy: new ServicePrincipal('pipes.amazonaws.com'),
562
+ description: `Role for ${id} Pipe`,
563
+ roleName: scope.resourceNameFormatter.format(`${id}-pipe`, scope.props.resourceNameOptions?.iam),
564
+ });
565
+ role.addToPolicy(this.statementForPollQueue([queueArn]));
566
+ role.addToPolicy(this.statementForStartExecution([stepFunctionArn]));
567
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
568
+ createCfnOutput(`${id}Name`, scope, role.roleName);
569
+ return role;
570
+ }
571
+ /**
572
+ * @summary Method to create iam statement for sqs to lambda pipe
573
+ * @param id scoped id of the resource
574
+ * @param scope scope in which this resource is defined
575
+ * @param queueArn the arn of the sqs queue
576
+ * @param lambdaArn the arn of the lambda function
577
+ */
578
+ createRoleForSqsToLambdaPipe(id, scope, queueArn, lambdaArn) {
579
+ const role = new Role(scope, `${id}`, {
580
+ assumedBy: new ServicePrincipal('pipes.amazonaws.com'),
581
+ description: `Role for ${id} Pipe`,
582
+ roleName: scope.resourceNameFormatter.format(`${id}-pipe`, scope.props.resourceNameOptions?.iam),
583
+ });
584
+ role.addToPolicy(this.statementForPollQueue([queueArn]));
585
+ role.addToPolicy(this.statementForInvokeLambda([lambdaArn]));
586
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
587
+ createCfnOutput(`${id}Name`, scope, role.roleName);
588
+ return role;
589
+ }
590
+ /**
591
+ * @summary Method to create iam statement for dynamoDb to lambda function pipe
592
+ * @param id scoped id of the resource
593
+ * @param scope scope in which this resource is defined
594
+ * @param dynamoDbStreamArn the arn of the dynamoDb Stream queue
595
+ * @param lambdaFunctionArn the arn of the lambda function
596
+ */
597
+ createRoleForDynamoDbToLambdaPipe(id, scope, dynamoDbStreamArn, lambdaFunctionArn) {
598
+ const role = new Role(scope, `${id}`, {
599
+ assumedBy: new ServicePrincipal('pipes.amazonaws.com'),
600
+ description: `Role for ${id} Pipe`,
601
+ roleName: scope.resourceNameFormatter.format(`${id}-pipe`, scope.props.resourceNameOptions?.iam),
602
+ });
603
+ role.addToPolicy(this.statementFordynamoDbStream([dynamoDbStreamArn]));
604
+ role.addToPolicy(this.statementForInvokeLambda([lambdaFunctionArn]));
605
+ createCfnOutput(`${id}Arn`, scope, role.roleArn);
606
+ createCfnOutput(`${id}Name`, scope, role.roleName);
607
+ return role;
608
+ }
609
+ }
@@ -0,0 +1,28 @@
1
+ export * from './api-gateway/index.js';
2
+ export * from './appconfig/index.js';
3
+ export * from './certificate-manager/index.js';
4
+ export * from './cloudfront/index.js';
5
+ export * from './cloudtrail/index.js';
6
+ export * from './cloudwatch/index.js';
7
+ export * from './codebuild/index.js';
8
+ export * from './constants.js';
9
+ export * from './dynamodb/index.js';
10
+ export * from './elastic-container-registry/index.js';
11
+ export * from './elastic-container-service/index.js';
12
+ export * from './elastic-file-system/index.js';
13
+ export * from './elastic-kubernetes-service/index.js';
14
+ export * from './elasticache/index.js';
15
+ export * from './eventbridge/index.js';
16
+ export * from './evidently/index.js';
17
+ export * from './identity-access-management/index.js';
18
+ export * from './key-management-service/index.js';
19
+ export * from './lambda/index.js';
20
+ export * from './route53/index.js';
21
+ export * from './secrets-manager/index.js';
22
+ export * from './simple-notification-service/index.js';
23
+ export * from './simple-queue-service/index.js';
24
+ export * from './simple-storage-service/index.js';
25
+ export * from './step-function/index.js';
26
+ export * from './systems-manager/index.js';
27
+ export * from './virtual-private-cloud/index.js';
28
+ export * from './web-application-firewall/index.js';
@@ -0,0 +1,28 @@
1
+ export * from './api-gateway/index.js';
2
+ export * from './appconfig/index.js';
3
+ export * from './certificate-manager/index.js';
4
+ export * from './cloudfront/index.js';
5
+ export * from './cloudtrail/index.js';
6
+ export * from './cloudwatch/index.js';
7
+ export * from './codebuild/index.js';
8
+ export * from './constants.js';
9
+ export * from './dynamodb/index.js';
10
+ export * from './elastic-container-registry/index.js';
11
+ export * from './elastic-container-service/index.js';
12
+ export * from './elastic-file-system/index.js';
13
+ export * from './elastic-kubernetes-service/index.js';
14
+ export * from './elasticache/index.js';
15
+ export * from './eventbridge/index.js';
16
+ export * from './evidently/index.js';
17
+ export * from './identity-access-management/index.js';
18
+ export * from './key-management-service/index.js';
19
+ export * from './lambda/index.js';
20
+ export * from './route53/index.js';
21
+ export * from './secrets-manager/index.js';
22
+ export * from './simple-notification-service/index.js';
23
+ export * from './simple-queue-service/index.js';
24
+ export * from './simple-storage-service/index.js';
25
+ export * from './step-function/index.js';
26
+ export * from './systems-manager/index.js';
27
+ export * from './virtual-private-cloud/index.js';
28
+ export * from './web-application-firewall/index.js';
@@ -0,0 +1,2 @@
1
+ export * from './main.js';
2
+ export * from './types.js';
@@ -0,0 +1,2 @@
1
+ export * from './main.js';
2
+ export * from './types.js';