@fjall/components-infrastructure 0.89.5 → 0.89.6

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 (378) hide show
  1. package/LICENSE +50 -21
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -18
  4. package/dist/lib/app.d.ts +12 -12
  5. package/dist/lib/app.js +61 -56
  6. package/dist/lib/aspects/index.d.ts +1 -1
  7. package/dist/lib/aspects/index.js +1 -6
  8. package/dist/lib/aspects/resourceInventory.js +6 -13
  9. package/dist/lib/config/audit.js +1 -5
  10. package/dist/lib/config/aws/accessAnalyser.d.ts +11 -0
  11. package/dist/lib/config/aws/accessAnalyser.js +17 -0
  12. package/dist/lib/config/aws/accountAuditRole.js +11 -15
  13. package/dist/lib/config/aws/accountMonitoringRole.js +25 -29
  14. package/dist/lib/config/aws/alarmTopic.d.ts +8 -0
  15. package/dist/lib/config/aws/alarmTopic.js +19 -0
  16. package/dist/lib/config/aws/cloudTrail.js +4 -9
  17. package/dist/lib/config/aws/configRecorder.d.ts +16 -0
  18. package/dist/lib/config/aws/configRecorder.js +51 -0
  19. package/dist/lib/config/aws/configRulePreset.d.ts +13 -0
  20. package/dist/lib/config/aws/configRulePreset.js +62 -0
  21. package/dist/lib/config/aws/disasterRecovery.d.ts +1 -1
  22. package/dist/lib/config/aws/disasterRecovery.js +56 -73
  23. package/dist/lib/config/aws/ebsDefaultEncryption.d.ts +8 -0
  24. package/dist/lib/config/aws/ebsDefaultEncryption.js +41 -0
  25. package/dist/lib/config/aws/ecrDefaultImage.js +25 -30
  26. package/dist/lib/config/aws/eventBus.js +8 -11
  27. package/dist/lib/config/aws/guardDutyDetector.d.ts +16 -0
  28. package/dist/lib/config/aws/guardDutyDetector.js +26 -0
  29. package/dist/lib/config/aws/identityCenter.d.ts +1 -1
  30. package/dist/lib/config/aws/identityCenter.js +23 -25
  31. package/dist/lib/config/aws/identityCenterGroupMembership.js +18 -22
  32. package/dist/lib/config/aws/index.d.ts +19 -8
  33. package/dist/lib/config/aws/index.js +19 -25
  34. package/dist/lib/config/aws/inspectorEnablement.d.ts +9 -0
  35. package/dist/lib/config/aws/inspectorEnablement.js +51 -0
  36. package/dist/lib/config/aws/ipam.js +9 -13
  37. package/dist/lib/config/aws/oidcConnector.js +8 -12
  38. package/dist/lib/config/aws/platform.js +1 -5
  39. package/dist/lib/config/aws/s3BlockPublicAccess.d.ts +9 -0
  40. package/dist/lib/config/aws/s3BlockPublicAccess.js +55 -0
  41. package/dist/lib/config/aws/scpPreset.d.ts +21 -0
  42. package/dist/lib/config/aws/scpPreset.js +311 -0
  43. package/dist/lib/config/aws/securityBaseline.d.ts +15 -0
  44. package/dist/lib/config/aws/securityBaseline.js +27 -0
  45. package/dist/lib/config/aws/securityHubHub.d.ts +15 -0
  46. package/dist/lib/config/aws/securityHubHub.js +28 -0
  47. package/dist/lib/config/aws/securityServicesAdmin.d.ts +20 -0
  48. package/dist/lib/config/aws/securityServicesAdmin.js +115 -0
  49. package/dist/lib/config/index.d.ts +2 -2
  50. package/dist/lib/config/index.js +2 -21
  51. package/dist/lib/index.d.ts +4 -4
  52. package/dist/lib/index.js +5 -26
  53. package/dist/lib/patterns/aws/account.d.ts +17 -1
  54. package/dist/lib/patterns/aws/account.js +60 -33
  55. package/dist/lib/patterns/aws/apexDomainPattern.d.ts +26 -0
  56. package/dist/lib/patterns/aws/apexDomainPattern.js +91 -0
  57. package/dist/lib/patterns/aws/auditRole.js +13 -16
  58. package/dist/lib/patterns/aws/buildkite.d.ts +1 -1
  59. package/dist/lib/patterns/aws/buildkite.js +70 -75
  60. package/dist/lib/patterns/aws/cdn.d.ts +5 -5
  61. package/dist/lib/patterns/aws/cdn.js +22 -28
  62. package/dist/lib/patterns/aws/compute.d.ts +1 -1
  63. package/dist/lib/patterns/aws/compute.js +31 -44
  64. package/dist/lib/patterns/aws/computeEc2.d.ts +1 -1
  65. package/dist/lib/patterns/aws/computeEc2.js +11 -14
  66. package/dist/lib/patterns/aws/computeEcs.d.ts +18 -2
  67. package/dist/lib/patterns/aws/computeEcs.js +41 -31
  68. package/dist/lib/patterns/aws/computeLambda.d.ts +2 -2
  69. package/dist/lib/patterns/aws/computeLambda.js +24 -31
  70. package/dist/lib/patterns/aws/database.d.ts +16 -7
  71. package/dist/lib/patterns/aws/database.js +81 -73
  72. package/dist/lib/patterns/aws/delegatedDomainPattern.d.ts +17 -0
  73. package/dist/lib/patterns/aws/delegatedDomainPattern.js +54 -0
  74. package/dist/lib/patterns/aws/dnsRecordComposer.d.ts +25 -0
  75. package/dist/lib/patterns/aws/dnsRecordComposer.js +225 -0
  76. package/dist/lib/patterns/aws/domain.d.ts +32 -0
  77. package/dist/lib/patterns/aws/domain.js +115 -0
  78. package/dist/lib/patterns/aws/domainDelegation.d.ts +3 -3
  79. package/dist/lib/patterns/aws/domainDelegation.js +28 -37
  80. package/dist/lib/patterns/aws/domainFactory.d.ts +20 -5
  81. package/dist/lib/patterns/aws/domainFactory.js +48 -10
  82. package/dist/lib/patterns/aws/domainValidation.d.ts +11 -0
  83. package/dist/lib/patterns/aws/domainValidation.js +145 -0
  84. package/dist/lib/patterns/aws/externalRecordsPattern.d.ts +18 -0
  85. package/dist/lib/patterns/aws/externalRecordsPattern.js +141 -0
  86. package/dist/lib/patterns/aws/fivetranProxy.d.ts +1 -1
  87. package/dist/lib/patterns/aws/fivetranProxy.js +6 -11
  88. package/dist/lib/patterns/aws/index.d.ts +21 -19
  89. package/dist/lib/patterns/aws/index.js +25 -36
  90. package/dist/lib/patterns/aws/interfaces/cdn.js +1 -5
  91. package/dist/lib/patterns/aws/interfaces/compute.js +4 -11
  92. package/dist/lib/patterns/aws/interfaces/connector.js +1 -15
  93. package/dist/lib/patterns/aws/interfaces/database.d.ts +1 -1
  94. package/dist/lib/patterns/aws/interfaces/database.js +6 -15
  95. package/dist/lib/patterns/aws/interfaces/domain.d.ts +80 -2
  96. package/dist/lib/patterns/aws/interfaces/domain.js +1 -6
  97. package/dist/lib/patterns/aws/interfaces/index.js +8 -41
  98. package/dist/lib/patterns/aws/interfaces/messaging.js +4 -11
  99. package/dist/lib/patterns/aws/interfaces/organisation.d.ts +1 -1
  100. package/dist/lib/patterns/aws/interfaces/organisation.js +4 -11
  101. package/dist/lib/patterns/aws/interfaces/pattern.js +2 -7
  102. package/dist/lib/patterns/aws/interfaces/storage.js +1 -5
  103. package/dist/lib/patterns/aws/managedIdentityCenter.js +7 -12
  104. package/dist/lib/patterns/aws/messaging.d.ts +7 -7
  105. package/dist/lib/patterns/aws/messaging.js +22 -33
  106. package/dist/lib/patterns/aws/network.d.ts +2 -2
  107. package/dist/lib/patterns/aws/network.js +9 -14
  108. package/dist/lib/patterns/aws/organisation.d.ts +6 -2
  109. package/dist/lib/patterns/aws/organisation.js +34 -35
  110. package/dist/lib/patterns/aws/organisationFactory.d.ts +3 -3
  111. package/dist/lib/patterns/aws/organisationFactory.js +7 -12
  112. package/dist/lib/patterns/aws/pattern.js +6 -12
  113. package/dist/lib/patterns/aws/payload.js +73 -63
  114. package/dist/lib/patterns/aws/platform.d.ts +6 -3
  115. package/dist/lib/patterns/aws/platform.js +15 -15
  116. package/dist/lib/patterns/aws/storage.d.ts +6 -4
  117. package/dist/lib/patterns/aws/storage.js +35 -40
  118. package/dist/lib/patterns/aws/subdomainHostedZone.js +11 -16
  119. package/dist/lib/patterns/aws/targets/fjallTargets.d.ts +37 -0
  120. package/dist/lib/patterns/aws/targets/fjallTargets.js +66 -0
  121. package/dist/lib/patterns/aws/targets/index.d.ts +2 -0
  122. package/dist/lib/patterns/aws/targets/index.js +2 -0
  123. package/dist/lib/patterns/aws/targets/targetResolution.d.ts +76 -0
  124. package/dist/lib/patterns/aws/targets/targetResolution.js +119 -0
  125. package/dist/lib/patterns/index.d.ts +1 -0
  126. package/dist/lib/patterns/index.js +1 -0
  127. package/dist/lib/resources/aws/analytics/clickhouse.d.ts +15 -0
  128. package/dist/lib/resources/aws/analytics/clickhouse.js +292 -0
  129. package/dist/lib/resources/aws/analytics/clickhouseConstants.d.ts +73 -0
  130. package/dist/lib/resources/aws/analytics/clickhouseConstants.js +87 -0
  131. package/dist/lib/resources/aws/analytics/clickhouseSecurityGroup.d.ts +13 -0
  132. package/dist/lib/resources/aws/analytics/clickhouseSecurityGroup.js +28 -0
  133. package/dist/lib/resources/aws/analytics/clickhouseTypes.d.ts +47 -0
  134. package/dist/lib/resources/aws/analytics/clickhouseTypes.js +1 -0
  135. package/dist/lib/resources/aws/analytics/clickhouseUserData.d.ts +5 -0
  136. package/dist/lib/resources/aws/analytics/clickhouseUserData.js +248 -0
  137. package/dist/lib/resources/aws/analytics/index.d.ts +2 -0
  138. package/dist/lib/resources/aws/analytics/index.js +1 -0
  139. package/dist/lib/resources/aws/audit/auditRole.js +10 -15
  140. package/dist/lib/resources/aws/audit/index.d.ts +1 -1
  141. package/dist/lib/resources/aws/audit/index.js +1 -6
  142. package/dist/lib/resources/aws/backup/backupPlan.d.ts +1 -1
  143. package/dist/lib/resources/aws/backup/backupPlan.js +14 -16
  144. package/dist/lib/resources/aws/backup/backupVault.d.ts +1 -1
  145. package/dist/lib/resources/aws/backup/backupVault.js +13 -15
  146. package/dist/lib/resources/aws/backup/index.d.ts +2 -2
  147. package/dist/lib/resources/aws/backup/index.js +2 -19
  148. package/dist/lib/resources/aws/base/awsStack.js +17 -19
  149. package/dist/lib/resources/aws/base/index.d.ts +1 -1
  150. package/dist/lib/resources/aws/base/index.js +1 -18
  151. package/dist/lib/resources/aws/cdn/cloudFront.js +40 -42
  152. package/dist/lib/resources/aws/cdn/index.d.ts +1 -1
  153. package/dist/lib/resources/aws/cdn/index.js +1 -18
  154. package/dist/lib/resources/aws/compute/ec2.js +39 -39
  155. package/dist/lib/resources/aws/compute/ecs.d.ts +18 -396
  156. package/dist/lib/resources/aws/compute/ecs.js +105 -976
  157. package/dist/lib/resources/aws/compute/ecsCapacityProviderAspect.d.ts +22 -0
  158. package/dist/lib/resources/aws/compute/ecsCapacityProviderAspect.js +35 -0
  159. package/dist/lib/resources/aws/compute/ecsConstants.d.ts +20 -0
  160. package/dist/lib/resources/aws/compute/ecsConstants.js +49 -0
  161. package/dist/lib/resources/aws/compute/ecsContext.d.ts +12 -0
  162. package/dist/lib/resources/aws/compute/ecsContext.js +1 -0
  163. package/dist/lib/resources/aws/compute/ecsImages.d.ts +4 -0
  164. package/dist/lib/resources/aws/compute/ecsImages.js +35 -0
  165. package/dist/lib/resources/aws/compute/ecsNetworking.d.ts +28 -0
  166. package/dist/lib/resources/aws/compute/ecsNetworking.js +290 -0
  167. package/dist/lib/resources/aws/compute/ecsRoles.d.ts +15 -0
  168. package/dist/lib/resources/aws/compute/ecsRoles.js +110 -0
  169. package/dist/lib/resources/aws/compute/ecsServiceFactory.d.ts +33 -0
  170. package/dist/lib/resources/aws/compute/ecsServiceFactory.js +183 -0
  171. package/dist/lib/resources/aws/compute/ecsTaskDefinition.d.ts +30 -0
  172. package/dist/lib/resources/aws/compute/ecsTaskDefinition.js +168 -0
  173. package/dist/lib/resources/aws/compute/ecsTypes.d.ts +337 -0
  174. package/dist/lib/resources/aws/compute/ecsTypes.js +10 -0
  175. package/dist/lib/resources/aws/compute/ecsValidation.d.ts +18 -0
  176. package/dist/lib/resources/aws/compute/ecsValidation.js +72 -0
  177. package/dist/lib/resources/aws/compute/index.d.ts +3 -3
  178. package/dist/lib/resources/aws/compute/index.js +3 -20
  179. package/dist/lib/resources/aws/compute/lambda.d.ts +10 -2
  180. package/dist/lib/resources/aws/compute/lambda.js +81 -71
  181. package/dist/lib/resources/aws/database/dynamodb.js +24 -27
  182. package/dist/lib/resources/aws/database/index.d.ts +7 -7
  183. package/dist/lib/resources/aws/database/index.js +14 -33
  184. package/dist/lib/resources/aws/database/rdsAurora.d.ts +10 -2
  185. package/dist/lib/resources/aws/database/rdsAurora.js +76 -61
  186. package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +2 -2
  187. package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +24 -21
  188. package/dist/lib/resources/aws/database/rdsDefaults.js +3 -7
  189. package/dist/lib/resources/aws/database/rdsHelpers.d.ts +2 -2
  190. package/dist/lib/resources/aws/database/rdsHelpers.js +21 -29
  191. package/dist/lib/resources/aws/database/rdsInstance.d.ts +11 -3
  192. package/dist/lib/resources/aws/database/rdsInstance.js +101 -83
  193. package/dist/lib/resources/aws/database/rdsProxyOutput.js +5 -9
  194. package/dist/lib/resources/aws/iam/delegationRole.d.ts +18 -0
  195. package/dist/lib/resources/aws/iam/delegationRole.js +60 -0
  196. package/dist/lib/resources/aws/iam/identityCenter/assignment.js +4 -9
  197. package/dist/lib/resources/aws/iam/identityCenter/group.js +5 -9
  198. package/dist/lib/resources/aws/iam/identityCenter/index.d.ts +3 -3
  199. package/dist/lib/resources/aws/iam/identityCenter/index.js +3 -20
  200. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.d.ts +1 -1
  201. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +5 -9
  202. package/dist/lib/resources/aws/iam/index.d.ts +5 -4
  203. package/dist/lib/resources/aws/iam/index.js +5 -21
  204. package/dist/lib/resources/aws/iam/instanceProfile.js +2 -7
  205. package/dist/lib/resources/aws/iam/managedPolicy.js +2 -7
  206. package/dist/lib/resources/aws/iam/policy.js +2 -7
  207. package/dist/lib/resources/aws/iam/role.js +2 -7
  208. package/dist/lib/resources/aws/index.d.ts +7 -7
  209. package/dist/lib/resources/aws/index.js +7 -24
  210. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +1 -1
  211. package/dist/lib/resources/aws/logging/cloudTrail.js +18 -22
  212. package/dist/lib/resources/aws/logging/index.d.ts +2 -2
  213. package/dist/lib/resources/aws/logging/index.js +2 -19
  214. package/dist/lib/resources/aws/logging/logGroup.js +4 -10
  215. package/dist/lib/resources/aws/messaging/eventbridge.js +11 -14
  216. package/dist/lib/resources/aws/messaging/index.d.ts +4 -4
  217. package/dist/lib/resources/aws/messaging/index.js +4 -21
  218. package/dist/lib/resources/aws/messaging/sns.js +11 -14
  219. package/dist/lib/resources/aws/messaging/sqs.js +32 -34
  220. package/dist/lib/resources/aws/messaging/utils.d.ts +1 -1
  221. package/dist/lib/resources/aws/messaging/utils.js +1 -6
  222. package/dist/lib/resources/aws/monitoring/alarmDefaults.d.ts +36 -0
  223. package/dist/lib/resources/aws/monitoring/alarmDefaults.js +34 -0
  224. package/dist/lib/resources/aws/monitoring/ecsAlarms.d.ts +21 -0
  225. package/dist/lib/resources/aws/monitoring/ecsAlarms.js +88 -0
  226. package/dist/lib/resources/aws/monitoring/index.d.ts +4 -0
  227. package/dist/lib/resources/aws/monitoring/index.js +4 -5
  228. package/dist/lib/resources/aws/monitoring/lambdaAlarms.d.ts +18 -0
  229. package/dist/lib/resources/aws/monitoring/lambdaAlarms.js +44 -0
  230. package/dist/lib/resources/aws/monitoring/rdsAlarms.d.ts +20 -0
  231. package/dist/lib/resources/aws/monitoring/rdsAlarms.js +52 -0
  232. package/dist/lib/resources/aws/networking/crossAccountDelegationRecord.d.ts +17 -0
  233. package/dist/lib/resources/aws/networking/crossAccountDelegationRecord.js +26 -0
  234. package/dist/lib/resources/aws/networking/dnsRecord/aRecord.d.ts +12 -0
  235. package/dist/lib/resources/aws/networking/dnsRecord/aRecord.js +21 -0
  236. package/dist/lib/resources/aws/networking/dnsRecord/aaaaRecord.d.ts +12 -0
  237. package/dist/lib/resources/aws/networking/dnsRecord/aaaaRecord.js +22 -0
  238. package/dist/lib/resources/aws/networking/dnsRecord/aliasRecord.d.ts +12 -0
  239. package/dist/lib/resources/aws/networking/dnsRecord/aliasRecord.js +23 -0
  240. package/dist/lib/resources/aws/networking/dnsRecord/caaRecord.d.ts +17 -0
  241. package/dist/lib/resources/aws/networking/dnsRecord/caaRecord.js +21 -0
  242. package/dist/lib/resources/aws/networking/dnsRecord/cnameRecord.d.ts +12 -0
  243. package/dist/lib/resources/aws/networking/dnsRecord/cnameRecord.js +22 -0
  244. package/dist/lib/resources/aws/networking/dnsRecord/dnsRecordBase.d.ts +17 -0
  245. package/dist/lib/resources/aws/networking/dnsRecord/dnsRecordBase.js +17 -0
  246. package/dist/lib/resources/aws/networking/dnsRecord/index.d.ts +10 -0
  247. package/dist/lib/resources/aws/networking/dnsRecord/index.js +10 -0
  248. package/dist/lib/resources/aws/networking/dnsRecord/mxRecord.d.ts +16 -0
  249. package/dist/lib/resources/aws/networking/dnsRecord/mxRecord.js +21 -0
  250. package/dist/lib/resources/aws/networking/dnsRecord/nsRecord.d.ts +12 -0
  251. package/dist/lib/resources/aws/networking/dnsRecord/nsRecord.js +21 -0
  252. package/dist/lib/resources/aws/networking/dnsRecord/srvRecord.d.ts +18 -0
  253. package/dist/lib/resources/aws/networking/dnsRecord/srvRecord.js +21 -0
  254. package/dist/lib/resources/aws/networking/dnsRecord/txtRecord.d.ts +12 -0
  255. package/dist/lib/resources/aws/networking/dnsRecord/txtRecord.js +21 -0
  256. package/dist/lib/resources/aws/networking/domain.d.ts +1 -1
  257. package/dist/lib/resources/aws/networking/domain.js +32 -34
  258. package/dist/lib/resources/aws/networking/domainCertificate.d.ts +8 -3
  259. package/dist/lib/resources/aws/networking/domainCertificate.js +22 -16
  260. package/dist/lib/resources/aws/networking/hostedZone.d.ts +23 -19
  261. package/dist/lib/resources/aws/networking/hostedZone.js +70 -134
  262. package/dist/lib/resources/aws/networking/index.d.ts +8 -7
  263. package/dist/lib/resources/aws/networking/index.js +8 -24
  264. package/dist/lib/resources/aws/networking/ipam.js +2 -7
  265. package/dist/lib/resources/aws/networking/ipamPool.d.ts +1 -1
  266. package/dist/lib/resources/aws/networking/ipamPool.js +45 -55
  267. package/dist/lib/resources/aws/networking/securityGroup.js +2 -7
  268. package/dist/lib/resources/aws/networking/vpc.d.ts +1 -1
  269. package/dist/lib/resources/aws/networking/vpc.js +17 -21
  270. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +1 -1
  271. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +11 -15
  272. package/dist/lib/resources/aws/organisation/index.d.ts +5 -5
  273. package/dist/lib/resources/aws/organisation/index.js +4 -12
  274. package/dist/lib/resources/aws/organisation/organisation.js +5 -7
  275. package/dist/lib/resources/aws/organisation/organisationAccount.js +7 -10
  276. package/dist/lib/resources/aws/organisation/organisationPolicy.js +5 -9
  277. package/dist/lib/resources/aws/organisation/organisationalUnit.js +1 -3
  278. package/dist/lib/resources/aws/secrets/alias.js +2 -7
  279. package/dist/lib/resources/aws/secrets/index.d.ts +4 -4
  280. package/dist/lib/resources/aws/secrets/index.js +4 -21
  281. package/dist/lib/resources/aws/secrets/kms.js +15 -18
  282. package/dist/lib/resources/aws/secrets/parameter.d.ts +3 -3
  283. package/dist/lib/resources/aws/secrets/parameter.js +19 -22
  284. package/dist/lib/resources/aws/secrets/secret.d.ts +2 -2
  285. package/dist/lib/resources/aws/secrets/secret.js +12 -14
  286. package/dist/lib/resources/aws/storage/ecr.d.ts +2 -2
  287. package/dist/lib/resources/aws/storage/ecr.js +7 -13
  288. package/dist/lib/resources/aws/storage/index.d.ts +2 -2
  289. package/dist/lib/resources/aws/storage/index.js +2 -19
  290. package/dist/lib/resources/aws/storage/s3.d.ts +1 -1
  291. package/dist/lib/resources/aws/storage/s3.js +24 -12
  292. package/dist/lib/resources/aws/utilities/awsCustomResource.js +3 -7
  293. package/dist/lib/resources/aws/utilities/codeBuild.js +7 -12
  294. package/dist/lib/resources/aws/utilities/customResource.js +14 -17
  295. package/dist/lib/resources/aws/utilities/customResourceProvider.js +2 -7
  296. package/dist/lib/resources/aws/utilities/index.d.ts +5 -5
  297. package/dist/lib/resources/aws/utilities/index.js +5 -22
  298. package/dist/lib/resources/aws/utilities/resourceShare.js +2 -7
  299. package/dist/lib/resources/index.d.ts +1 -1
  300. package/dist/lib/resources/index.js +1 -18
  301. package/dist/lib/types.js +1 -3
  302. package/dist/lib/utils/accountsUtils.d.ts +5 -0
  303. package/dist/lib/utils/accountsUtils.js +18 -0
  304. package/dist/lib/utils/addSuffixToEmail.js +1 -5
  305. package/dist/lib/utils/backupTierMapping.js +2 -6
  306. package/dist/lib/utils/capitaliseString.js +1 -10
  307. package/dist/lib/utils/connections.js +9 -13
  308. package/dist/lib/utils/connector.js +10 -23
  309. package/dist/lib/utils/constructMap.d.ts +33 -0
  310. package/dist/lib/utils/constructMap.js +154 -0
  311. package/dist/lib/utils/databaseTypes.js +4 -10
  312. package/dist/lib/utils/dnsRecords.d.ts +1 -1
  313. package/dist/lib/utils/dnsRecords.js +23 -27
  314. package/dist/lib/utils/domainTypes.d.ts +0 -1
  315. package/dist/lib/utils/domainTypes.js +2 -10
  316. package/dist/lib/utils/env.js +14 -26
  317. package/dist/lib/utils/getAccountId.js +3 -7
  318. package/dist/lib/utils/getAsync.js +7 -10
  319. package/dist/lib/utils/getConfig.d.ts +0 -2
  320. package/dist/lib/utils/getConfig.js +29 -47
  321. package/dist/lib/utils/getStackOutput.js +4 -8
  322. package/dist/lib/utils/index.d.ts +12 -12
  323. package/dist/lib/utils/index.js +12 -29
  324. package/dist/lib/utils/manifestWriter.d.ts +14 -3
  325. package/dist/lib/utils/manifestWriter.js +60 -43
  326. package/dist/lib/utils/orgConfigParser.d.ts +14 -0
  327. package/dist/lib/utils/orgConfigParser.js +49 -0
  328. package/dist/lib/utils/removalPolicy.js +5 -9
  329. package/dist/lib/utils/resourceNaming.js +11 -16
  330. package/dist/lib/utils/standardTagsAspect.js +9 -16
  331. package/dist/lib/utils/stripAndCamelCase.js +1 -5
  332. package/dist/lib/utils/validationLogger.js +12 -18
  333. package/dist/lib/utils/vpcUtils.js +5 -10
  334. package/package.json +25 -8
  335. package/dist/lib/config/aws/accountId.d.ts +0 -6
  336. package/dist/lib/config/aws/accountId.js +0 -32
  337. package/dist/lib/config/aws/backupGlobalSettings.d.ts +0 -29
  338. package/dist/lib/config/aws/backupGlobalSettings.js +0 -49
  339. package/dist/lib/config/aws/costAllocationTags.d.ts +0 -12
  340. package/dist/lib/config/aws/costAllocationTags.js +0 -47
  341. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +0 -8
  342. package/dist/lib/config/aws/ipamDelegateAdmin.js +0 -57
  343. package/dist/lib/config/aws/ipamPoolId.d.ts +0 -16
  344. package/dist/lib/config/aws/ipamPoolId.js +0 -42
  345. package/dist/lib/config/aws/organisation.d.ts +0 -30
  346. package/dist/lib/config/aws/organisation.js +0 -92
  347. package/dist/lib/config/aws/organisationId.d.ts +0 -7
  348. package/dist/lib/config/aws/organisationId.js +0 -45
  349. package/dist/lib/config/aws/organisationsAccess.d.ts +0 -10
  350. package/dist/lib/config/aws/organisationsAccess.js +0 -49
  351. package/dist/lib/config/aws/ramSharing.d.ts +0 -4
  352. package/dist/lib/config/aws/ramSharing.js +0 -34
  353. package/dist/lib/config/monitoring.d.ts +0 -18
  354. package/dist/lib/config/monitoring.js +0 -22
  355. package/dist/lib/patterns/aws/connections.d.ts +0 -46
  356. package/dist/lib/patterns/aws/connections.js +0 -159
  357. package/dist/lib/patterns/aws/hostedZone.d.ts +0 -28
  358. package/dist/lib/patterns/aws/hostedZone.js +0 -150
  359. package/dist/lib/patterns/aws/managedAccount.d.ts +0 -9
  360. package/dist/lib/patterns/aws/managedAccount.js +0 -55
  361. package/dist/lib/patterns/aws/managedOrganisation.d.ts +0 -36
  362. package/dist/lib/patterns/aws/managedOrganisation.js +0 -97
  363. package/dist/lib/patterns/aws/managedPlatform.d.ts +0 -12
  364. package/dist/lib/patterns/aws/managedPlatform.js +0 -29
  365. package/dist/lib/resources/aws/database/database.d.ts +0 -14
  366. package/dist/lib/resources/aws/database/database.js +0 -28
  367. package/dist/lib/resources/aws/database/databaseInstance.d.ts +0 -15
  368. package/dist/lib/resources/aws/database/databaseInstance.js +0 -30
  369. package/dist/lib/resources/aws/database/migrationLambda.d.ts +0 -80
  370. package/dist/lib/resources/aws/database/migrationLambda.js +0 -119
  371. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.d.ts +0 -13
  372. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +0 -51
  373. package/dist/lib/resources/aws/iam/securityGroup.d.ts +0 -5
  374. package/dist/lib/resources/aws/iam/securityGroup.js +0 -14
  375. package/dist/lib/resources/aws/monitoring/monitoringRole.d.ts +0 -29
  376. package/dist/lib/resources/aws/monitoring/monitoringRole.js +0 -120
  377. package/dist/lib/utils/capitalizeString.d.ts +0 -12
  378. package/dist/lib/utils/capitalizeString.js +0 -30
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResourceNaming = void 0;
4
- const capitaliseString_js_1 = require("./capitaliseString.js");
1
+ import { toKebab } from "./capitaliseString.js";
5
2
  /**
6
3
  * Centralised resource naming for infrastructure.
7
4
  * Ensures consistent, predictable names across constructs and tests.
@@ -14,43 +11,43 @@ const capitaliseString_js_1 = require("./capitaliseString.js");
14
11
  * RDS identifiers use toKebab() to handle PascalCase/camelCase inputs.
15
12
  * Secret names preserve the user's original casing (Secrets Manager is case-sensitive).
16
13
  */
17
- class ResourceNaming {
14
+ export class ResourceNaming {
18
15
  /** RDS Instance identifier. AWS lowercases this. */
19
16
  static dbInstanceId(name) {
20
- return (0, capitaliseString_js_1.toKebab)(name);
17
+ return toKebab(name);
21
18
  }
22
19
  /** Aurora cluster identifier. Must be lowercase. */
23
20
  static clusterId(name) {
24
- return `${(0, capitaliseString_js_1.toKebab)(name)}-cluster`;
21
+ return `${toKebab(name)}-cluster`;
25
22
  }
26
23
  /** Global Aurora cluster identifier. Must be lowercase. */
27
24
  static globalClusterId(name) {
28
- return `${(0, capitaliseString_js_1.toKebab)(name)}-global`;
25
+ return `${toKebab(name)}-global`;
29
26
  }
30
27
  /** Primary cluster ID for GlobalAurora. Must be lowercase. */
31
28
  static primaryClusterId(name) {
32
- return `${(0, capitaliseString_js_1.toKebab)(name)}-primary-cluster`;
29
+ return `${toKebab(name)}-primary-cluster`;
33
30
  }
34
31
  /** Secondary cluster ID for GlobalAurora. Must be lowercase. */
35
32
  static secondaryClusterId(name, region) {
36
- return `${(0, capitaliseString_js_1.toKebab)(name)}-secondary-${region}`;
33
+ return `${toKebab(name)}-secondary-${region}`;
37
34
  }
38
35
  /** RDS Proxy name. Must be lowercase for consistency. */
39
36
  static proxyName(name) {
40
- return `${(0, capitaliseString_js_1.toKebab)(name)}-proxy`;
37
+ return `${toKebab(name)}-proxy`;
41
38
  }
42
39
  /** Aurora writer instance identifier. */
43
40
  static writerInstanceId(name, suffix = "primary") {
44
- return `${(0, capitaliseString_js_1.toKebab)(name)}-${suffix}`;
41
+ return `${toKebab(name)}-${suffix}`;
45
42
  }
46
43
  /** Aurora reader instance identifier. */
47
44
  static readerInstanceId(name, index, suffix) {
48
45
  const id = suffix ?? `reader-${index}`;
49
- return `${(0, capitaliseString_js_1.toKebab)(name)}-${id}`;
46
+ return `${toKebab(name)}-${id}`;
50
47
  }
51
48
  /** RDS read replica identifier. */
52
49
  static readReplicaId(name) {
53
- return `${(0, capitaliseString_js_1.toKebab)(name)}-read-replica`;
50
+ return `${toKebab(name)}-read-replica`;
54
51
  }
55
52
  /** Credentials secret name. Preserves original casing (Secrets Manager is case-sensitive). */
56
53
  static credentialsSecretName(name) {
@@ -77,5 +74,3 @@ class ResourceNaming {
77
74
  return `Security group for RDS Read Replica ${name}`;
78
75
  }
79
76
  }
80
- exports.ResourceNaming = ResourceNaming;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VOYW1pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvcmVzb3VyY2VOYW1pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQWdEO0FBRWhEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxjQUFjO0lBQ3pCLG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVk7UUFDOUIsT0FBTyxJQUFBLDZCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxHQUFHLElBQUEsNkJBQU8sRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sR0FBRyxJQUFBLDZCQUFPLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsOERBQThEO0lBQzlELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sR0FBRyxJQUFBLDZCQUFPLEVBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQzVDLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQVksRUFBRSxNQUFjO1FBQ3BELE9BQU8sR0FBRyxJQUFBLDZCQUFPLEVBQUMsSUFBSSxDQUFDLGNBQWMsTUFBTSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxHQUFHLElBQUEsNkJBQU8sRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVksRUFBRSxNQUFNLEdBQUcsU0FBUztRQUN0RCxPQUFPLEdBQUcsSUFBQSw2QkFBTyxFQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsTUFBTSxDQUFDLGdCQUFnQixDQUNyQixJQUFZLEVBQ1osS0FBYSxFQUNiLE1BQWU7UUFFZixNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksVUFBVSxLQUFLLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEdBQUcsSUFBQSw2QkFBTyxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sR0FBRyxJQUFBLDZCQUFPLEVBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsOEZBQThGO0lBQzlGLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsc0dBQXNHO0lBQ3RHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLElBQVk7UUFDbEQsT0FBTyw0Q0FBNEMsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELHFEQUFxRDtJQUNyRCxNQUFNLENBQUMsK0JBQStCLENBQUMsSUFBWTtRQUNqRCxPQUFPLHFDQUFxQyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFZO1FBQy9DLE9BQU8sZ0NBQWdDLElBQUksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLElBQVk7UUFDckQsT0FBTyx1Q0FBdUMsSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBaEZELHdDQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvS2ViYWIgfSBmcm9tIFwiLi9jYXBpdGFsaXNlU3RyaW5nLmpzXCI7XG5cbi8qKlxuICogQ2VudHJhbGlzZWQgcmVzb3VyY2UgbmFtaW5nIGZvciBpbmZyYXN0cnVjdHVyZS5cbiAqIEVuc3VyZXMgY29uc2lzdGVudCwgcHJlZGljdGFibGUgbmFtZXMgYWNyb3NzIGNvbnN0cnVjdHMgYW5kIHRlc3RzLlxuICpcbiAqIEFXUyBOYW1pbmcgQ29uc3RyYWludHM6XG4gKiAtIERCIEluc3RhbmNlL0NsdXN0ZXIgSUQ6IG1heCA2MyBjaGFycywgYWxwaGFudW1lcmljICsgaHlwaGVucywgY2FzZS1pbnNlbnNpdGl2ZSAobG93ZXJjYXNlZCBieSBBV1MpXG4gKiAtIFNlY3JldCBOYW1lOiBtYXggNTEyIGNoYXJzLCBjYXNlLXNlbnNpdGl2ZSwgcGF0aC1zdHlsZSB3aXRoIGAvYCBpcyBjb252ZW50aW9uYWxcbiAqIC0gUHJveHkgTmFtZTogbWF4IDYwIGNoYXJzLCBhbHBoYW51bWVyaWMgKyBoeXBoZW5zXG4gKlxuICogUkRTIGlkZW50aWZpZXJzIHVzZSB0b0tlYmFiKCkgdG8gaGFuZGxlIFBhc2NhbENhc2UvY2FtZWxDYXNlIGlucHV0cy5cbiAqIFNlY3JldCBuYW1lcyBwcmVzZXJ2ZSB0aGUgdXNlcidzIG9yaWdpbmFsIGNhc2luZyAoU2VjcmV0cyBNYW5hZ2VyIGlzIGNhc2Utc2Vuc2l0aXZlKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlTmFtaW5nIHtcbiAgLyoqIFJEUyBJbnN0YW5jZSBpZGVudGlmaWVyLiBBV1MgbG93ZXJjYXNlcyB0aGlzLiAqL1xuICBzdGF0aWMgZGJJbnN0YW5jZUlkKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRvS2ViYWIobmFtZSk7XG4gIH1cblxuICAvKiogQXVyb3JhIGNsdXN0ZXIgaWRlbnRpZmllci4gTXVzdCBiZSBsb3dlcmNhc2UuICovXG4gIHN0YXRpYyBjbHVzdGVySWQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dG9LZWJhYihuYW1lKX0tY2x1c3RlcmA7XG4gIH1cblxuICAvKiogR2xvYmFsIEF1cm9yYSBjbHVzdGVyIGlkZW50aWZpZXIuIE11c3QgYmUgbG93ZXJjYXNlLiAqL1xuICBzdGF0aWMgZ2xvYmFsQ2x1c3RlcklkKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RvS2ViYWIobmFtZSl9LWdsb2JhbGA7XG4gIH1cblxuICAvKiogUHJpbWFyeSBjbHVzdGVyIElEIGZvciBHbG9iYWxBdXJvcmEuIE11c3QgYmUgbG93ZXJjYXNlLiAqL1xuICBzdGF0aWMgcHJpbWFyeUNsdXN0ZXJJZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0b0tlYmFiKG5hbWUpfS1wcmltYXJ5LWNsdXN0ZXJgO1xuICB9XG5cbiAgLyoqIFNlY29uZGFyeSBjbHVzdGVyIElEIGZvciBHbG9iYWxBdXJvcmEuIE11c3QgYmUgbG93ZXJjYXNlLiAqL1xuICBzdGF0aWMgc2Vjb25kYXJ5Q2x1c3RlcklkKG5hbWU6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0b0tlYmFiKG5hbWUpfS1zZWNvbmRhcnktJHtyZWdpb259YDtcbiAgfVxuXG4gIC8qKiBSRFMgUHJveHkgbmFtZS4gTXVzdCBiZSBsb3dlcmNhc2UgZm9yIGNvbnNpc3RlbmN5LiAqL1xuICBzdGF0aWMgcHJveHlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RvS2ViYWIobmFtZSl9LXByb3h5YDtcbiAgfVxuXG4gIC8qKiBBdXJvcmEgd3JpdGVyIGluc3RhbmNlIGlkZW50aWZpZXIuICovXG4gIHN0YXRpYyB3cml0ZXJJbnN0YW5jZUlkKG5hbWU6IHN0cmluZywgc3VmZml4ID0gXCJwcmltYXJ5XCIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0b0tlYmFiKG5hbWUpfS0ke3N1ZmZpeH1gO1xuICB9XG5cbiAgLyoqIEF1cm9yYSByZWFkZXIgaW5zdGFuY2UgaWRlbnRpZmllci4gKi9cbiAgc3RhdGljIHJlYWRlckluc3RhbmNlSWQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgc3VmZml4Pzogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgaWQgPSBzdWZmaXggPz8gYHJlYWRlci0ke2luZGV4fWA7XG4gICAgcmV0dXJuIGAke3RvS2ViYWIobmFtZSl9LSR7aWR9YDtcbiAgfVxuXG4gIC8qKiBSRFMgcmVhZCByZXBsaWNhIGlkZW50aWZpZXIuICovXG4gIHN0YXRpYyByZWFkUmVwbGljYUlkKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RvS2ViYWIobmFtZSl9LXJlYWQtcmVwbGljYWA7XG4gIH1cblxuICAvKiogQ3JlZGVudGlhbHMgc2VjcmV0IG5hbWUuIFByZXNlcnZlcyBvcmlnaW5hbCBjYXNpbmcgKFNlY3JldHMgTWFuYWdlciBpcyBjYXNlLXNlbnNpdGl2ZSkuICovXG4gIHN0YXRpYyBjcmVkZW50aWFsc1NlY3JldE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7bmFtZX0vY3JlZGVudGlhbHNgO1xuICB9XG5cbiAgLyoqIE1hc3RlciBzZWNyZXQgbmFtZSBmb3Igcm90YXRpb24uIFByZXNlcnZlcyBvcmlnaW5hbCBjYXNpbmcgKFNlY3JldHMgTWFuYWdlciBpcyBjYXNlLXNlbnNpdGl2ZSkuICovXG4gIHN0YXRpYyBtYXN0ZXJTZWNyZXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25hbWV9L21hc3Rlci1zZWNyZXRgO1xuICB9XG5cbiAgLyoqIFNlY3VyaXR5IGdyb3VwIGRlc2NyaXB0aW9uIGZvciBSRFMgSW5zdGFuY2UuICovXG4gIHN0YXRpYyBpbnN0YW5jZVNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgU2VjdXJpdHkgZ3JvdXAgZm9yIFJEUyBkYXRhYmFzZSBpbnN0YW5jZSAke25hbWV9YDtcbiAgfVxuXG4gIC8qKiBTZWN1cml0eSBncm91cCBkZXNjcmlwdGlvbiBmb3IgQXVyb3JhIGNsdXN0ZXIuICovXG4gIHN0YXRpYyBjbHVzdGVyU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBTZWN1cml0eSBncm91cCBmb3IgQXVyb3JhIGNsdXN0ZXIgJHtuYW1lfWA7XG4gIH1cblxuICAvKiogU2VjdXJpdHkgZ3JvdXAgZGVzY3JpcHRpb24gZm9yIFJEUyBQcm94eS4gKi9cbiAgc3RhdGljIHByb3h5U2VjdXJpdHlHcm91cERlc2NyaXB0aW9uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBTZWN1cml0eSBncm91cCBmb3IgUkRTIFByb3h5ICR7bmFtZX1gO1xuICB9XG5cbiAgLyoqIFNlY3VyaXR5IGdyb3VwIGRlc2NyaXB0aW9uIGZvciByZWFkIHJlcGxpY2EuICovXG4gIHN0YXRpYyByZWFkUmVwbGljYVNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgU2VjdXJpdHkgZ3JvdXAgZm9yIFJEUyBSZWFkIFJlcGxpY2EgJHtuYW1lfWA7XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StandardTagsAspect = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const backupTierMapping_1 = require("./backupTierMapping");
1
+ import { CfnResource, Stack, Tags } from "aws-cdk-lib";
2
+ import { BACKUP_TIER_TAG_KEY, BACKUP_TIER_TAG_MAP } from "./backupTierMapping.js";
6
3
  /**
7
4
  * Aspect to apply special Fjall tags to specific resource types.
8
5
  *
@@ -16,15 +13,13 @@ const backupTierMapping_1 = require("./backupTierMapping");
16
13
  *
17
14
  * This aspect uses Tags.of(node).add() to properly merge with existing tags
18
15
  */
19
- class StandardTagsAspect {
20
- constructor() {
21
- this.processedResources = new WeakSet();
22
- }
16
+ export class StandardTagsAspect {
17
+ processedResources = new WeakSet();
23
18
  visit(node) {
24
19
  if (this.processedResources.has(node)) {
25
20
  return;
26
21
  }
27
- if (!aws_cdk_lib_1.CfnResource.isCfnResource(node)) {
22
+ if (!CfnResource.isCfnResource(node)) {
28
23
  return;
29
24
  }
30
25
  const resource = node;
@@ -48,13 +43,13 @@ class StandardTagsAspect {
48
43
  if (!ipamPoolId) {
49
44
  return;
50
45
  }
51
- const stack = aws_cdk_lib_1.Stack.of(vpc);
46
+ const stack = Stack.of(vpc);
52
47
  const accountId = stack.node.tryGetContext("accountId") ||
53
48
  stack.account ||
54
49
  process.env.CDK_DEFAULT_ACCOUNT;
55
50
  const region = stack.region || process.env.CDK_DEFAULT_REGION;
56
51
  if (accountId && region) {
57
- aws_cdk_lib_1.Tags.of(vpc).add("fjall:operations:pool", `${accountId}-${region}`);
52
+ Tags.of(vpc).add("fjall:operations:pool", `${accountId}-${region}`);
58
53
  }
59
54
  }
60
55
  /**
@@ -76,13 +71,11 @@ class StandardTagsAspect {
76
71
  const backupConstruct = construct;
77
72
  if (backupConstruct.backupVaultTier) {
78
73
  const tier = backupConstruct.backupVaultTier;
79
- const tagValue = backupTierMapping_1.BACKUP_TIER_TAG_MAP[tier];
80
- aws_cdk_lib_1.Tags.of(resource).add(backupTierMapping_1.BACKUP_TIER_TAG_KEY, tagValue);
74
+ const tagValue = BACKUP_TIER_TAG_MAP[tier];
75
+ Tags.of(resource).add(BACKUP_TIER_TAG_KEY, tagValue);
81
76
  break;
82
77
  }
83
78
  construct = construct.node.scope;
84
79
  }
85
80
  }
86
81
  }
87
- exports.StandardTagsAspect = StandardTagsAspect;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRUYWdzQXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL3N0YW5kYXJkVGFnc0FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBcUU7QUFHckUsMkRBSTZCO0FBTzdCOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsa0JBQWtCO0lBQS9CO1FBQ21CLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7SUE2RWxFLENBQUM7SUEzRUMsS0FBSyxDQUFDLElBQWdCO1FBQ3BCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLHlCQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFtQixDQUFDO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBa0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsR0FBVztRQUNoQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBRXRDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxLQUFLLENBQUMsT0FBTztZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1FBRTlELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLGtCQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ssZ0JBQWdCLENBQUMsUUFBcUI7UUFDNUMsSUFBSSxTQUFTLEdBQTJCLFFBQVEsQ0FBQztRQUNqRCxPQUFPLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sZUFBZSxHQUFHLFNBQWlDLENBQUM7WUFDMUQsSUFBSSxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUM7Z0JBRTdDLE1BQU0sUUFBUSxHQUFHLHVDQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsdUNBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3JELE1BQU07WUFDUixDQUFDO1lBQ0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE5RUQsZ0RBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJQXNwZWN0LCBDZm5SZXNvdXJjZSwgU3RhY2ssIFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHR5cGUgQ2ZuVlBDIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IHR5cGUgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICB0eXBlIEJhY2t1cFRpZXIsXG4gIEJBQ0tVUF9USUVSX1RBR19LRVksXG4gIEJBQ0tVUF9USUVSX1RBR19NQVBcbn0gZnJvbSBcIi4vYmFja3VwVGllck1hcHBpbmdcIjtcblxuLyoqIENvbnN0cnVjdCB3aXRoIG9wdGlvbmFsIGJhY2t1cFZhdWx0VGllciBwcm9wZXJ0eSAqL1xuaW50ZXJmYWNlIElCYWNrdXBUaWVyQ29uc3RydWN0IGV4dGVuZHMgSUNvbnN0cnVjdCB7XG4gIGJhY2t1cFZhdWx0VGllcj86IEJhY2t1cFRpZXI7XG59XG5cbi8qKlxuICogQXNwZWN0IHRvIGFwcGx5IHNwZWNpYWwgRmphbGwgdGFncyB0byBzcGVjaWZpYyByZXNvdXJjZSB0eXBlcy5cbiAqXG4gKiBUaGlzIGFzcGVjdCBoYW5kbGVzIHRhZ3MgdGhhdCBkZXBlbmQgb24gcmVzb3VyY2Utc3BlY2lmaWMgcHJvcGVydGllczpcbiAqIC0gZmphbGw6b3BlcmF0aW9uczpwb29sIG9uIFZQQ3Mgd2l0aCBJUEFNIGNvbmZpZ3VyYXRpb25cbiAqIC0gZmphbGw6ZGlzYXN0ZXJSZWNvdmVyeTp0aWVyIG9uIFMzIGJ1Y2tldHMgd2l0aCBiYWNrdXAgY29uZmlndXJhdGlvblxuICpcbiAqIFN0YW5kYXJkIEZqYWxsIHRhZ3MgKGNvc3RBbGxvY2F0aW9uOmVudmlyb25tZW50LCBjb3N0QWxsb2NhdGlvbjpzZXJ2aWNlLCBldGMuKVxuICogYXJlIGFwcGxpZWQgdmlhIFRhZ3Mub2YoYXBwKS5hZGQoKSBpbiB0aGUgQXBwIGNsYXNzLCB3aGljaCBwcm9wZXJseSBtZXJnZXNcbiAqIHdpdGggZXhpc3RpbmcgdGFncyBmcm9tIEwyIGNvbnN0cnVjdHMuXG4gKlxuICogVGhpcyBhc3BlY3QgdXNlcyBUYWdzLm9mKG5vZGUpLmFkZCgpIHRvIHByb3Blcmx5IG1lcmdlIHdpdGggZXhpc3RpbmcgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRUYWdzQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc2VkUmVzb3VyY2VzID0gbmV3IFdlYWtTZXQ8SUNvbnN0cnVjdD4oKTtcblxuICB2aXNpdChub2RlOiBJQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvY2Vzc2VkUmVzb3VyY2VzLmhhcyhub2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghQ2ZuUmVzb3VyY2UuaXNDZm5SZXNvdXJjZShub2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbm9kZSBhcyBDZm5SZXNvdXJjZTtcbiAgICB0aGlzLnByb2Nlc3NlZFJlc291cmNlcy5hZGQobm9kZSk7XG5cbiAgICBpZiAocmVzb3VyY2Uubm9kZS5wYXRoLmluY2x1ZGVzKFwiU2VjcmV0Um90YXRpb25cIikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzb3VyY2UuY2ZuUmVzb3VyY2VUeXBlID09PSBcIkFXUzo6RUMyOjpWUENcIikge1xuICAgICAgdGhpcy5hZGRJcGFtUG9vbFRhZyhyZXNvdXJjZSBhcyBDZm5WUEMpO1xuICAgIH1cblxuICAgIGlmIChyZXNvdXJjZS5jZm5SZXNvdXJjZVR5cGUgPT09IFwiQVdTOjpTMzo6QnVja2V0XCIpIHtcbiAgICAgIHRoaXMuYWRkQmFja3VwVGllclRhZyhyZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBJUEFNIHBvb2wgdGFnIHRvIFZQQ3MgdGhhdCB1c2UgSVBBTSBmb3IgSVAgYWRkcmVzcyBhbGxvY2F0aW9uLlxuICAgKiBUYWcgZm9ybWF0OiBmamFsbDpvcGVyYXRpb25zOnBvb2wgPSBcInthY2NvdW50SWR9LXtyZWdpb259XCJcbiAgICovXG4gIHByaXZhdGUgYWRkSXBhbVBvb2xUYWcodnBjOiBDZm5WUEMpOiB2b2lkIHtcbiAgICBjb25zdCBpcGFtUG9vbElkID0gdnBjLmlwdjRJcGFtUG9vbElkO1xuXG4gICAgaWYgKCFpcGFtUG9vbElkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih2cGMpO1xuICAgIGNvbnN0IGFjY291bnRJZCA9XG4gICAgICBzdGFjay5ub2RlLnRyeUdldENvbnRleHQoXCJhY2NvdW50SWRcIikgfHxcbiAgICAgIHN0YWNrLmFjY291bnQgfHxcbiAgICAgIHByb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlQ7XG4gICAgY29uc3QgcmVnaW9uID0gc3RhY2sucmVnaW9uIHx8IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTjtcblxuICAgIGlmIChhY2NvdW50SWQgJiYgcmVnaW9uKSB7XG4gICAgICBUYWdzLm9mKHZwYykuYWRkKFwiZmphbGw6b3BlcmF0aW9uczpwb29sXCIsIGAke2FjY291bnRJZH0tJHtyZWdpb259YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBkaXNhc3RlciByZWNvdmVyeSB0aWVyIHRhZyB0byBTMyBidWNrZXRzIHdpdGggYmFja3VwVmF1bHRUaWVyIHByb3BlcnR5LlxuICAgKiBUaGlzIHNlcnZlcyBhcyBhIHBlci1yZXNvdXJjZSBvdmVycmlkZSB3aGVuIGBiYWNrdXBWYXVsdFRpZXJgIGlzIHNldCBvbiBhXG4gICAqIHNwZWNpZmljIFMzIGJ1Y2tldC4gQ0RLIGNoaWxkIHRhZ3Mgb3ZlcnJpZGUgcGFyZW50IHRhZ3MsIHNvIHRoaXMgdGFrZXNcbiAgICogcHJlY2VkZW5jZSBvdmVyIHRoZSBhcHAtbGV2ZWwgYmFja3VwIHRhZyBzZXQgdmlhIGBBcHAuZ2V0QXBwKHsgYmFja3VwIH0pYC5cbiAgICpcbiAgICogVGFnIGZvcm1hdDogZmphbGw6ZGlzYXN0ZXJSZWNvdmVyeTp0aWVyID0gXCJ7dGllcn1cIlxuICAgKlxuICAgKiBUaWVyIG1hcHBpbmc6XG4gICAqIC0gc3RhbmRhcmQgLT4gXCJkZWZhdWx0XCIgKG1hdGNoZXMgZXhpc3RpbmcgYmFja3VwIHBsYW5zKVxuICAgKiAtIHJlc2lsaWVudCAtPiBcInJlc2lsaWVudFwiXG4gICAqIC0gZW50ZXJwcmlzZSAtPiBcImVudGVycHJpc2VcIlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCYWNrdXBUaWVyVGFnKHJlc291cmNlOiBDZm5SZXNvdXJjZSk6IHZvaWQge1xuICAgIGxldCBjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCB1bmRlZmluZWQgPSByZXNvdXJjZTtcbiAgICB3aGlsZSAoY29uc3RydWN0KSB7XG4gICAgICBjb25zdCBiYWNrdXBDb25zdHJ1Y3QgPSBjb25zdHJ1Y3QgYXMgSUJhY2t1cFRpZXJDb25zdHJ1Y3Q7XG4gICAgICBpZiAoYmFja3VwQ29uc3RydWN0LmJhY2t1cFZhdWx0VGllcikge1xuICAgICAgICBjb25zdCB0aWVyID0gYmFja3VwQ29uc3RydWN0LmJhY2t1cFZhdWx0VGllcjtcblxuICAgICAgICBjb25zdCB0YWdWYWx1ZSA9IEJBQ0tVUF9USUVSX1RBR19NQVBbdGllcl07XG4gICAgICAgIFRhZ3Mub2YocmVzb3VyY2UpLmFkZChCQUNLVVBfVElFUl9UQUdfS0VZLCB0YWdWYWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3RydWN0ID0gY29uc3RydWN0Lm5vZGUuc2NvcGU7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stripAndCamelCase = stripAndCamelCase;
4
- function stripAndCamelCase(input) {
1
+ export function stripAndCamelCase(input) {
5
2
  const lettersOnly = input.replace(/[^a-zA-Z]/g, " ");
6
3
  return lettersOnly
7
4
  .split(" ")
@@ -13,4 +10,3 @@ function stripAndCamelCase(input) {
13
10
  })
14
11
  .join("");
15
12
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBBbmRDYW1lbENhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvc3RyaXBBbmRDYW1lbENhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FXQztBQVhELFNBQWdCLGlCQUFpQixDQUFDLEtBQWE7SUFDN0MsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsT0FBTyxXQUFXO1NBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNuQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEUsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzdHJpcEFuZENhbWVsQ2FzZShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGV0dGVyc09ubHkgPSBpbnB1dC5yZXBsYWNlKC9bXmEtekEtWl0vZywgXCIgXCIpO1xuICByZXR1cm4gbGV0dGVyc09ubHlcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCk7XG4gICAgfSlcbiAgICAuam9pbihcIlwiKTtcbn1cbiJdfQ==
@@ -1,25 +1,20 @@
1
- "use strict";
2
1
  /**
3
2
  * Fjall validation logging utilities.
4
3
  * Centralises warning and info messages for consistent formatting.
5
4
  * Also writes to JSONL file for debugging and support.
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.FjallLogger = void 0;
9
- exports.warnIfPropertyIgnored = warnIfPropertyIgnored;
10
- exports.warnIfPropertiesIgnored = warnIfPropertiesIgnored;
11
- const fs_1 = require("fs");
12
- const os_1 = require("os");
13
- const path_1 = require("path");
14
- const LOG_DIR = process.env.FJALL_LOG_DIR ?? (0, path_1.join)((0, os_1.homedir)(), ".fjall", "logs");
15
- const LOG_FILE = (0, path_1.join)(LOG_DIR, "infrastructure.jsonl");
6
+ import { appendFileSync, existsSync, mkdirSync } from "fs";
7
+ import { homedir } from "os";
8
+ import { join } from "path";
9
+ const LOG_DIR = process.env.FJALL_LOG_DIR ?? join(homedir(), ".fjall", "logs");
10
+ const LOG_FILE = join(LOG_DIR, "infrastructure.jsonl");
16
11
  /**
17
12
  * Write a log entry to the infrastructure JSONL file
18
13
  */
19
14
  function writeToLog(level, message) {
20
15
  try {
21
- if (!(0, fs_1.existsSync)(LOG_DIR)) {
22
- (0, fs_1.mkdirSync)(LOG_DIR, { recursive: true });
16
+ if (!existsSync(LOG_DIR)) {
17
+ mkdirSync(LOG_DIR, { recursive: true });
23
18
  }
24
19
  const entry = JSON.stringify({
25
20
  timestamp: new Date().toISOString(),
@@ -28,13 +23,13 @@ function writeToLog(level, message) {
28
23
  message,
29
24
  source: "cdk-subprocess"
30
25
  });
31
- (0, fs_1.appendFileSync)(LOG_FILE, entry + "\n");
26
+ appendFileSync(LOG_FILE, entry + "\n");
32
27
  }
33
28
  catch {
34
29
  // Never crash CDK on logging failure
35
30
  }
36
31
  }
37
- exports.FjallLogger = {
32
+ export const FjallLogger = {
38
33
  /**
39
34
  * Log a warning message with Fjall prefix.
40
35
  */
@@ -59,7 +54,7 @@ exports.FjallLogger = {
59
54
  * @param applicableType - The type(s) where this property is used
60
55
  * @param typeName - Human-readable type name for the message
61
56
  */
62
- function warnIfPropertyIgnored(props, property, applicableType, typeName) {
57
+ export function warnIfPropertyIgnored(props, property, applicableType, typeName) {
63
58
  const propsRecord = props;
64
59
  const types = Array.isArray(applicableType)
65
60
  ? applicableType
@@ -67,7 +62,7 @@ function warnIfPropertyIgnored(props, property, applicableType, typeName) {
67
62
  if (!types.includes(props.type) &&
68
63
  property in propsRecord &&
69
64
  propsRecord[property] !== undefined) {
70
- exports.FjallLogger.warn(`'${property}' is only used for ${typeName} type. ` +
65
+ FjallLogger.warn(`'${property}' is only used for ${typeName} type. ` +
71
66
  `It will be ignored for type '${props.type}'.`);
72
67
  }
73
68
  }
@@ -75,9 +70,8 @@ function warnIfPropertyIgnored(props, property, applicableType, typeName) {
75
70
  * Warn if any of the specified properties are set but will be ignored.
76
71
  * Convenience wrapper for checking multiple properties at once.
77
72
  */
78
- function warnIfPropertiesIgnored(props, properties, applicableType, typeName) {
73
+ export function warnIfPropertiesIgnored(props, properties, applicableType, typeName) {
79
74
  for (const property of properties) {
80
75
  warnIfPropertyIgnored(props, property, applicableType, typeName);
81
76
  }
82
77
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy92YWxpZGF0aW9uTG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUF5REgsc0RBcUJDO0FBTUQsMERBU0M7QUEzRkQsMkJBQTJEO0FBQzNELDJCQUE2QjtBQUM3QiwrQkFBNEI7QUFFNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksSUFBQSxXQUFJLEVBQUMsSUFBQSxZQUFPLEdBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0UsTUFBTSxRQUFRLEdBQUcsSUFBQSxXQUFJLEVBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBZTtJQUNoRCxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBQSxlQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFBLGNBQVMsRUFBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMzQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkMsS0FBSztZQUNMLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsT0FBTztZQUNQLE1BQU0sRUFBRSxnQkFBZ0I7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxtQkFBYyxFQUFDLFFBQVEsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLHFDQUFxQztJQUN2QyxDQUFDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCOztPQUVHO0lBQ0gsSUFBSSxFQUFFLENBQUMsT0FBZSxFQUFRLEVBQUU7UUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1QyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksRUFBRSxDQUFDLE9BQWUsRUFBUSxFQUFFO1FBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDekMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ08sQ0FBQztBQUVYOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLEtBQVEsRUFDUixRQUFnQixFQUNoQixjQUFpQyxFQUNqQyxRQUFnQjtJQUVoQixNQUFNLFdBQVcsR0FBRyxLQUEyQyxDQUFDO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxjQUFjO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXJCLElBQ0UsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDM0IsUUFBUSxJQUFJLFdBQVc7UUFDdkIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFDbkMsQ0FBQztRQUNELG1CQUFXLENBQUMsSUFBSSxDQUNkLElBQUksUUFBUSxzQkFBc0IsUUFBUSxTQUFTO1lBQ2pELGdDQUFnQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQ2pELENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHVCQUF1QixDQUNyQyxLQUFRLEVBQ1IsVUFBb0IsRUFDcEIsY0FBaUMsRUFDakMsUUFBZ0I7SUFFaEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNsQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmphbGwgdmFsaWRhdGlvbiBsb2dnaW5nIHV0aWxpdGllcy5cbiAqIENlbnRyYWxpc2VzIHdhcm5pbmcgYW5kIGluZm8gbWVzc2FnZXMgZm9yIGNvbnNpc3RlbnQgZm9ybWF0dGluZy5cbiAqIEFsc28gd3JpdGVzIHRvIEpTT05MIGZpbGUgZm9yIGRlYnVnZ2luZyBhbmQgc3VwcG9ydC5cbiAqL1xuXG5pbXBvcnQgeyBhcHBlbmRGaWxlU3luYywgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBob21lZGlyIH0gZnJvbSBcIm9zXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcblxuY29uc3QgTE9HX0RJUiA9IHByb2Nlc3MuZW52LkZKQUxMX0xPR19ESVIgPz8gam9pbihob21lZGlyKCksIFwiLmZqYWxsXCIsIFwibG9nc1wiKTtcbmNvbnN0IExPR19GSUxFID0gam9pbihMT0dfRElSLCBcImluZnJhc3RydWN0dXJlLmpzb25sXCIpO1xuXG4vKipcbiAqIFdyaXRlIGEgbG9nIGVudHJ5IHRvIHRoZSBpbmZyYXN0cnVjdHVyZSBKU09OTCBmaWxlXG4gKi9cbmZ1bmN0aW9uIHdyaXRlVG9Mb2cobGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gIHRyeSB7XG4gICAgaWYgKCFleGlzdHNTeW5jKExPR19ESVIpKSB7XG4gICAgICBta2RpclN5bmMoTE9HX0RJUiwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuICAgIGNvbnN0IGVudHJ5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBsZXZlbCxcbiAgICAgIGNvbXBvbmVudDogXCJJbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHNvdXJjZTogXCJjZGstc3VicHJvY2Vzc1wiXG4gICAgfSk7XG4gICAgYXBwZW5kRmlsZVN5bmMoTE9HX0ZJTEUsIGVudHJ5ICsgXCJcXG5cIik7XG4gIH0gY2F0Y2gge1xuICAgIC8vIE5ldmVyIGNyYXNoIENESyBvbiBsb2dnaW5nIGZhaWx1cmVcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRmphbGxMb2dnZXIgPSB7XG4gIC8qKlxuICAgKiBMb2cgYSB3YXJuaW5nIG1lc3NhZ2Ugd2l0aCBGamFsbCBwcmVmaXguXG4gICAqL1xuICB3YXJuOiAobWVzc2FnZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc29sZS53YXJuKGBbRmphbGxdIFdhcm5pbmc6ICR7bWVzc2FnZX1gKTtcbiAgICB3cml0ZVRvTG9nKFwid2FyblwiLCBtZXNzYWdlKTtcbiAgfSxcblxuICAvKipcbiAgICogTG9nIGFuIGluZm8gbWVzc2FnZSB3aXRoIEZqYWxsIHByZWZpeC5cbiAgICovXG4gIGluZm86IChtZXNzYWdlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zb2xlLmluZm8oYFtGamFsbF0gTm90ZTogJHttZXNzYWdlfWApO1xuICAgIHdyaXRlVG9Mb2coXCJpbmZvXCIsIG1lc3NhZ2UpO1xuICB9XG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFdhcm4gaWYgYSBwcm9wZXJ0eSBpcyBzZXQgYnV0IHdpbGwgYmUgaWdub3JlZCBmb3IgdGhlIGdpdmVuIHR5cGUuXG4gKiBVc2VkIGFjcm9zcyBmYWN0b3JpZXMgdG8gYWxlcnQgdXNlcnMgYWJvdXQgdHlwZS1zcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wcyBvYmplY3Qgd2l0aCBhIGB0eXBlYCBkaXNjcmltaW5hdG9yXG4gKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgbmFtZSB0byBjaGVja1xuICogQHBhcmFtIGFwcGxpY2FibGVUeXBlIC0gVGhlIHR5cGUocykgd2hlcmUgdGhpcyBwcm9wZXJ0eSBpcyB1c2VkXG4gKiBAcGFyYW0gdHlwZU5hbWUgLSBIdW1hbi1yZWFkYWJsZSB0eXBlIG5hbWUgZm9yIHRoZSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YXJuSWZQcm9wZXJ0eUlnbm9yZWQ8VCBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+KFxuICBwcm9wczogVCxcbiAgcHJvcGVydHk6IHN0cmluZyxcbiAgYXBwbGljYWJsZVR5cGU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB0eXBlTmFtZTogc3RyaW5nXG4pOiB2b2lkIHtcbiAgY29uc3QgcHJvcHNSZWNvcmQgPSBwcm9wcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCB0eXBlcyA9IEFycmF5LmlzQXJyYXkoYXBwbGljYWJsZVR5cGUpXG4gICAgPyBhcHBsaWNhYmxlVHlwZVxuICAgIDogW2FwcGxpY2FibGVUeXBlXTtcblxuICBpZiAoXG4gICAgIXR5cGVzLmluY2x1ZGVzKHByb3BzLnR5cGUpICYmXG4gICAgcHJvcGVydHkgaW4gcHJvcHNSZWNvcmQgJiZcbiAgICBwcm9wc1JlY29yZFtwcm9wZXJ0eV0gIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICBGamFsbExvZ2dlci53YXJuKFxuICAgICAgYCcke3Byb3BlcnR5fScgaXMgb25seSB1c2VkIGZvciAke3R5cGVOYW1lfSB0eXBlLiBgICtcbiAgICAgICAgYEl0IHdpbGwgYmUgaWdub3JlZCBmb3IgdHlwZSAnJHtwcm9wcy50eXBlfScuYFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBXYXJuIGlmIGFueSBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMgYXJlIHNldCBidXQgd2lsbCBiZSBpZ25vcmVkLlxuICogQ29udmVuaWVuY2Ugd3JhcHBlciBmb3IgY2hlY2tpbmcgbXVsdGlwbGUgcHJvcGVydGllcyBhdCBvbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FybklmUHJvcGVydGllc0lnbm9yZWQ8VCBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+KFxuICBwcm9wczogVCxcbiAgcHJvcGVydGllczogc3RyaW5nW10sXG4gIGFwcGxpY2FibGVUeXBlOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgdHlwZU5hbWU6IHN0cmluZ1xuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgIHdhcm5JZlByb3BlcnR5SWdub3JlZChwcm9wcywgcHJvcGVydHksIGFwcGxpY2FibGVUeXBlLCB0eXBlTmFtZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.vpcHasNatGateways = vpcHasNatGateways;
4
- exports.resolvePrivateSubnetType = resolvePrivateSubnetType;
5
- const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
1
+ import { SubnetType } from "aws-cdk-lib/aws-ec2";
6
2
  /**
7
3
  * Check if a VPC has NAT gateways.
8
4
  * - For Fjall Vpc: uses the hasNatGateways property directly
9
5
  * - For other VPCs: checks if private subnets exist (assumes NAT if present)
10
6
  * - Safe default: false (avoids placing resources in PRIVATE_WITH_EGRESS without connectivity)
11
7
  */
12
- function vpcHasNatGateways(vpc) {
8
+ export function vpcHasNatGateways(vpc) {
13
9
  if ("hasNatGateways" in vpc && typeof vpc.hasNatGateways === "boolean") {
14
10
  return vpc.hasNatGateways;
15
11
  }
@@ -20,9 +16,8 @@ function vpcHasNatGateways(vpc) {
20
16
  * - With NAT: PRIVATE_WITH_EGRESS (internet access via NAT)
21
17
  * - Without NAT: PRIVATE_ISOLATED (VPC endpoints only, no internet)
22
18
  */
23
- function resolvePrivateSubnetType(vpc) {
19
+ export function resolvePrivateSubnetType(vpc) {
24
20
  return vpcHasNatGateways(vpc)
25
- ? aws_ec2_1.SubnetType.PRIVATE_WITH_EGRESS
26
- : aws_ec2_1.SubnetType.PRIVATE_ISOLATED;
21
+ ? SubnetType.PRIVATE_WITH_EGRESS
22
+ : SubnetType.PRIVATE_ISOLATED;
27
23
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvdnBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw4Q0FLQztBQU9ELDREQUlDO0FBeEJELGlEQUE0RDtBQUU1RDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEdBQVM7SUFDekMsSUFBSSxnQkFBZ0IsSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxHQUFTO0lBQ2hELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxvQkFBVSxDQUFDLG1CQUFtQjtRQUNoQyxDQUFDLENBQUMsb0JBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJVnBjLCBTdWJuZXRUeXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuLyoqXG4gKiBDaGVjayBpZiBhIFZQQyBoYXMgTkFUIGdhdGV3YXlzLlxuICogLSBGb3IgRmphbGwgVnBjOiB1c2VzIHRoZSBoYXNOYXRHYXRld2F5cyBwcm9wZXJ0eSBkaXJlY3RseVxuICogLSBGb3Igb3RoZXIgVlBDczogY2hlY2tzIGlmIHByaXZhdGUgc3VibmV0cyBleGlzdCAoYXNzdW1lcyBOQVQgaWYgcHJlc2VudClcbiAqIC0gU2FmZSBkZWZhdWx0OiBmYWxzZSAoYXZvaWRzIHBsYWNpbmcgcmVzb3VyY2VzIGluIFBSSVZBVEVfV0lUSF9FR1JFU1Mgd2l0aG91dCBjb25uZWN0aXZpdHkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2cGNIYXNOYXRHYXRld2F5cyh2cGM6IElWcGMpOiBib29sZWFuIHtcbiAgaWYgKFwiaGFzTmF0R2F0ZXdheXNcIiBpbiB2cGMgJiYgdHlwZW9mIHZwYy5oYXNOYXRHYXRld2F5cyA9PT0gXCJib29sZWFuXCIpIHtcbiAgICByZXR1cm4gdnBjLmhhc05hdEdhdGV3YXlzO1xuICB9XG4gIHJldHVybiB2cGMucHJpdmF0ZVN1Ym5ldHMubGVuZ3RoID4gMDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBhcHByb3ByaWF0ZSBwcml2YXRlIHN1Ym5ldCB0eXBlIGJhc2VkIG9uIE5BVCBnYXRld2F5IGF2YWlsYWJpbGl0eS5cbiAqIC0gV2l0aCBOQVQ6IFBSSVZBVEVfV0lUSF9FR1JFU1MgKGludGVybmV0IGFjY2VzcyB2aWEgTkFUKVxuICogLSBXaXRob3V0IE5BVDogUFJJVkFURV9JU09MQVRFRCAoVlBDIGVuZHBvaW50cyBvbmx5LCBubyBpbnRlcm5ldClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQcml2YXRlU3VibmV0VHlwZSh2cGM6IElWcGMpOiBTdWJuZXRUeXBlIHtcbiAgcmV0dXJuIHZwY0hhc05hdEdhdGV3YXlzKHZwYylcbiAgICA/IFN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU1xuICAgIDogU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVEO1xufVxuIl19
package/package.json CHANGED
@@ -1,12 +1,27 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "0.89.5",
4
- "license": "MIT",
3
+ "version": "0.89.6",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "type": "module",
5
6
  "bin": {
6
7
  "infrastructure": "bin/infrastructure.js"
7
8
  },
8
9
  "main": "dist/index.js",
9
10
  "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "default": "./dist/index.js"
15
+ },
16
+ "./lib/*.js": {
17
+ "types": "./dist/lib/*.d.ts",
18
+ "default": "./dist/lib/*.js"
19
+ },
20
+ "./lib/*": {
21
+ "types": "./dist/lib/*.d.ts",
22
+ "default": "./dist/lib/*.js"
23
+ }
24
+ },
10
25
  "files": [
11
26
  "dist/index.js",
12
27
  "dist/index.d.ts",
@@ -17,27 +32,29 @@
17
32
  "clean:node": "rm -rf ./node_modules",
18
33
  "build": "tsc && cp -r lib/layers dist/lib/layers",
19
34
  "watch": "tsc -w",
20
- "test": "jest",
35
+ "watch:only": "tsc -w",
36
+ "test": "vitest run",
37
+ "test:watch": "vitest",
21
38
  "cdk": "cdk",
39
+ "typecheck": "tsc --noEmit",
22
40
  "check:scripts": "tsc --project tsconfig.scripts.json",
23
41
  "format": "prettier --write \"lib/**/*.{ts,tsx,js,jsx,json}\" \"scripts/**/*.mts\"",
24
42
  "format:check": "prettier --check \"lib/**/*.{ts,tsx,js,jsx,json}\" \"scripts/**/*.mts\""
25
43
  },
26
44
  "devDependencies": {
27
45
  "@types/aws-lambda": "^8.10.109",
28
- "@types/jest": "^29.2.4",
29
46
  "@types/node": "^22.13.10",
30
47
  "@types/uuid": "^10.0.0",
31
48
  "@typescript-eslint/eslint-plugin": "^8.26.1",
32
49
  "@typescript-eslint/parser": "^8.26.1",
33
50
  "eslint": "^9.39.1",
34
- "jest": "^29.3.1",
35
51
  "prettier": "^3.2.5",
36
- "typescript": "^5.8.2"
52
+ "typescript": "^5.8.2",
53
+ "vitest": "^4.1.2"
37
54
  },
38
55
  "dependencies": {
39
56
  "@aws-sdk/client-organizations": "^3.997.0",
40
- "@fjall/util": "^0.89.5",
57
+ "@fjall/util": "^0.89.6",
41
58
  "cdk-time-sleep": "^1.0.0",
42
59
  "constructs": "^10.0.0",
43
60
  "uuid": "^10.0.0"
@@ -45,7 +62,7 @@
45
62
  "overrides": {
46
63
  "@smithy/core": "2.5.5"
47
64
  },
48
- "gitHead": "1680c1a0be16950e9e10e571163ccc42198f6a8e",
65
+ "gitHead": "fb309fa904991ac4f23c49b3bed1be146f738900",
49
66
  "peerDependencies": {
50
67
  "aws-cdk": "^2.239.0",
51
68
  "aws-cdk-lib": "^2.239.0",
@@ -1,6 +0,0 @@
1
- import { CfnOutput } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- export declare class AccountId extends Construct {
4
- readonly accountId: CfnOutput;
5
- constructor(scope: Construct, id: string);
6
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AccountId = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const customResources = require("aws-cdk-lib/custom-resources");
6
- const constructs_1 = require("constructs");
7
- const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
8
- class AccountId extends constructs_1.Construct {
9
- constructor(scope, id) {
10
- super(scope, id);
11
- const sts = new awsCustomResource_1.AwsCustomResource(this, "GetAccountIdResource", {
12
- onCreate: {
13
- service: "sts",
14
- action: "GetCallerIdentityCommand", // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sts/command/GetCallerIdentityCommand/
15
- physicalResourceId: customResources.PhysicalResourceId.of("getAccountId")
16
- },
17
- onUpdate: {
18
- service: "sts",
19
- action: "GetCallerIdentityCommand", // https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sts/command/GetCallerIdentityCommand/
20
- physicalResourceId: customResources.PhysicalResourceId.of("getAccountId")
21
- },
22
- resourceType: "Custom::getAccountId"
23
- });
24
- this.accountId = new aws_cdk_lib_1.CfnOutput(this, "AccountIdOutput", {
25
- key: "AccountId",
26
- value: sts.getResponseField("Account"),
27
- exportName: "AccountId"
28
- });
29
- }
30
- }
31
- exports.AccountId = AccountId;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudElkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvYWNjb3VudElkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3QztBQUN4QyxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBRXZDLHVGQUFvRjtBQUVwRixNQUFhLFNBQVUsU0FBUSxzQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sR0FBRyxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQzlELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsc0dBQXNHO2dCQUMxSSxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDeEQ7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLDBCQUEwQixFQUFFLHNHQUFzRztnQkFDMUksa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQ3hEO1lBQ0QsWUFBWSxFQUFFLHNCQUFzQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDdEQsR0FBRyxFQUFFLFdBQVc7WUFDaEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7WUFDdEMsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBNUJELDhCQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuXG5leHBvcnQgY2xhc3MgQWNjb3VudElkIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFjY291bnRJZDogQ2ZuT3V0cHV0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3Qgc3RzID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiR2V0QWNjb3VudElkUmVzb3VyY2VcIiwge1xuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJzdHNcIixcbiAgICAgICAgYWN0aW9uOiBcIkdldENhbGxlcklkZW50aXR5Q29tbWFuZFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3N0cy9jb21tYW5kL0dldENhbGxlcklkZW50aXR5Q29tbWFuZC9cbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgIGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXCJnZXRBY2NvdW50SWRcIilcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcInN0c1wiLFxuICAgICAgICBhY3Rpb246IFwiR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9jbGllbnQvc3RzL2NvbW1hbmQvR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kL1xuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImdldEFjY291bnRJZFwiKVxuICAgICAgfSxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OmdldEFjY291bnRJZFwiXG4gICAgfSk7XG5cbiAgICB0aGlzLmFjY291bnRJZCA9IG5ldyBDZm5PdXRwdXQodGhpcywgXCJBY2NvdW50SWRPdXRwdXRcIiwge1xuICAgICAga2V5OiBcIkFjY291bnRJZFwiLFxuICAgICAgdmFsdWU6IHN0cy5nZXRSZXNwb25zZUZpZWxkKFwiQWNjb3VudFwiKSxcbiAgICAgIGV4cG9ydE5hbWU6IFwiQWNjb3VudElkXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { type StackProps } from "aws-cdk-lib";
3
- interface BackupGlobalSettingsProps extends StackProps {
4
- account: string;
5
- region: string;
6
- /**
7
- * Enable cross-account backup copying.
8
- * Required for enterprise tier backups to compliance account.
9
- * @default true
10
- */
11
- enableCrossAccountBackup?: boolean;
12
- /**
13
- * Enable delegated administrator for AWS Backup.
14
- * Allows managing backups from a member account instead of root.
15
- * Recommended for security best practices.
16
- * @default false
17
- */
18
- enableDelegatedAdministrator?: boolean;
19
- /**
20
- * Enable Multi-Party Approval for backup restores.
21
- * Requires approval workflow for restore operations.
22
- * @default false
23
- */
24
- enableMpa?: boolean;
25
- }
26
- export declare class BackupGlobalSettings extends Construct {
27
- constructor(scope: Construct, id: string, props: BackupGlobalSettingsProps);
28
- }
29
- export {};
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BackupGlobalSettings = void 0;
4
- const customResources = require("aws-cdk-lib/custom-resources");
5
- const constructs_1 = require("constructs");
6
- const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
7
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
8
- class BackupGlobalSettings extends constructs_1.Construct {
9
- constructor(scope, id, props) {
10
- super(scope, id);
11
- const { enableCrossAccountBackup = true, enableDelegatedAdministrator = false, enableMpa = false } = props;
12
- const globalSettings = {
13
- isCrossAccountBackupEnabled: enableCrossAccountBackup.toString(),
14
- isDelegatedAdministratorEnabled: enableDelegatedAdministrator.toString(),
15
- isMpaEnabled: enableMpa.toString()
16
- };
17
- new awsCustomResource_1.AwsCustomResource(this, "BackupGlobalSettings", {
18
- onCreate: {
19
- service: "backup",
20
- action: "UpdateGlobalSettingsCommand",
21
- parameters: {
22
- GlobalSettings: globalSettings
23
- },
24
- physicalResourceId: customResources.PhysicalResourceId.of("BackupGlobalSettings")
25
- },
26
- onUpdate: {
27
- service: "backup",
28
- action: "UpdateGlobalSettingsCommand",
29
- parameters: {
30
- GlobalSettings: globalSettings
31
- },
32
- physicalResourceId: customResources.PhysicalResourceId.of("BackupGlobalSettings")
33
- },
34
- resourceType: "Custom::BackupGlobalSettings",
35
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
36
- new aws_iam_1.PolicyStatement({
37
- actions: [
38
- "backup:UpdateGlobalSettings",
39
- "backup:DescribeGlobalSettings"
40
- ],
41
- resources: ["*"],
42
- effect: aws_iam_1.Effect.ALLOW
43
- })
44
- ])
45
- });
46
- }
47
- }
48
- exports.BackupGlobalSettings = BackupGlobalSettings;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwR2xvYmFsU2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9iYWNrdXBHbG9iYWxTZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBQ3ZDLHVGQUFvRjtBQUNwRixpREFBOEQ7QUEyQjlELE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFDSix3QkFBd0IsR0FBRyxJQUFJLEVBQy9CLDRCQUE0QixHQUFHLEtBQUssRUFDcEMsU0FBUyxHQUFHLEtBQUssRUFDbEIsR0FBRyxLQUFLLENBQUM7UUFFVixNQUFNLGNBQWMsR0FBMkI7WUFDN0MsMkJBQTJCLEVBQUUsd0JBQXdCLENBQUMsUUFBUSxFQUFFO1lBQ2hFLCtCQUErQixFQUFFLDRCQUE0QixDQUFDLFFBQVEsRUFBRTtZQUN4RSxZQUFZLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRTtTQUNuQyxDQUFDO1FBRUYsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDbEQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUUsNkJBQTZCO2dCQUNyQyxVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFLGNBQWM7aUJBQy9CO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQ3ZELHNCQUFzQixDQUN2QjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUUsNkJBQTZCO2dCQUNyQyxVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFLGNBQWM7aUJBQy9CO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQ3ZELHNCQUFzQixDQUN2QjthQUNGO1lBQ0QsWUFBWSxFQUFFLDhCQUE4QjtZQUM1QyxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0QsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsNkJBQTZCO3dCQUM3QiwrQkFBK0I7cUJBQ2hDO29CQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDaEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztpQkFDckIsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsREQsb0RBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IHR5cGUgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5pbnRlcmZhY2UgQmFja3VwR2xvYmFsU2V0dGluZ3NQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBhY2NvdW50OiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlIGNyb3NzLWFjY291bnQgYmFja3VwIGNvcHlpbmcuXG4gICAqIFJlcXVpcmVkIGZvciBlbnRlcnByaXNlIHRpZXIgYmFja3VwcyB0byBjb21wbGlhbmNlIGFjY291bnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGVuYWJsZUNyb3NzQWNjb3VudEJhY2t1cD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgZGVsZWdhdGVkIGFkbWluaXN0cmF0b3IgZm9yIEFXUyBCYWNrdXAuXG4gICAqIEFsbG93cyBtYW5hZ2luZyBiYWNrdXBzIGZyb20gYSBtZW1iZXIgYWNjb3VudCBpbnN0ZWFkIG9mIHJvb3QuXG4gICAqIFJlY29tbWVuZGVkIGZvciBzZWN1cml0eSBiZXN0IHByYWN0aWNlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGVuYWJsZURlbGVnYXRlZEFkbWluaXN0cmF0b3I/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIE11bHRpLVBhcnR5IEFwcHJvdmFsIGZvciBiYWNrdXAgcmVzdG9yZXMuXG4gICAqIFJlcXVpcmVzIGFwcHJvdmFsIHdvcmtmbG93IGZvciByZXN0b3JlIG9wZXJhdGlvbnMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBlbmFibGVNcGE/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQmFja3VwR2xvYmFsU2V0dGluZ3MgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFja3VwR2xvYmFsU2V0dGluZ3NQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBlbmFibGVDcm9zc0FjY291bnRCYWNrdXAgPSB0cnVlLFxuICAgICAgZW5hYmxlRGVsZWdhdGVkQWRtaW5pc3RyYXRvciA9IGZhbHNlLFxuICAgICAgZW5hYmxlTXBhID0gZmFsc2VcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBnbG9iYWxTZXR0aW5nczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIGlzQ3Jvc3NBY2NvdW50QmFja3VwRW5hYmxlZDogZW5hYmxlQ3Jvc3NBY2NvdW50QmFja3VwLnRvU3RyaW5nKCksXG4gICAgICBpc0RlbGVnYXRlZEFkbWluaXN0cmF0b3JFbmFibGVkOiBlbmFibGVEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yLnRvU3RyaW5nKCksXG4gICAgICBpc01wYUVuYWJsZWQ6IGVuYWJsZU1wYS50b1N0cmluZygpXG4gICAgfTtcblxuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcIkJhY2t1cEdsb2JhbFNldHRpbmdzXCIsIHtcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiYmFja3VwXCIsXG4gICAgICAgIGFjdGlvbjogXCJVcGRhdGVHbG9iYWxTZXR0aW5nc0NvbW1hbmRcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEdsb2JhbFNldHRpbmdzOiBnbG9iYWxTZXR0aW5nc1xuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgXCJCYWNrdXBHbG9iYWxTZXR0aW5nc1wiXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcImJhY2t1cFwiLFxuICAgICAgICBhY3Rpb246IFwiVXBkYXRlR2xvYmFsU2V0dGluZ3NDb21tYW5kXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBHbG9iYWxTZXR0aW5nczogZ2xvYmFsU2V0dGluZ3NcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgIFwiQmFja3VwR2xvYmFsU2V0dGluZ3NcIlxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6QmFja3VwR2xvYmFsU2V0dGluZ3NcIixcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJiYWNrdXA6VXBkYXRlR2xvYmFsU2V0dGluZ3NcIixcbiAgICAgICAgICAgIFwiYmFja3VwOkRlc2NyaWJlR2xvYmFsU2V0dGluZ3NcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XXG4gICAgICAgIH0pXG4gICAgICBdKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,12 +0,0 @@
1
- import { Construct } from "constructs";
2
- export interface ICostAllocationTags {
3
- TagKey: string;
4
- Status: string;
5
- }
6
- interface CostAllocationTagsProps {
7
- costAllocationTags: ICostAllocationTags[];
8
- }
9
- export declare class CostAllocationTags extends Construct {
10
- constructor(scope: Construct, id: string, props: CostAllocationTagsProps);
11
- }
12
- export {};
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CostAllocationTags = void 0;
4
- const customResources = require("aws-cdk-lib/custom-resources");
5
- const constructs_1 = require("constructs");
6
- const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
7
- function toggleCostTag(tags, tagStatus) {
8
- return tags.map((tag) => {
9
- return {
10
- TagKey: tag.TagKey,
11
- Status: tagStatus
12
- };
13
- });
14
- }
15
- class CostAllocationTags extends constructs_1.Construct {
16
- constructor(scope, id, props) {
17
- super(scope, id);
18
- new awsCustomResource_1.AwsCustomResource(this, "costAllocationTags", {
19
- onCreate: {
20
- service: "CostExplorer",
21
- action: "updateCostAllocationTagsStatus",
22
- parameters: {
23
- CostAllocationTagsStatus: toggleCostTag(props.costAllocationTags, "Active")
24
- },
25
- physicalResourceId: customResources.PhysicalResourceId.of("costAllocationTags")
26
- },
27
- onUpdate: {
28
- service: "CostExplorer",
29
- action: "updateCostAllocationTagsStatus",
30
- parameters: {
31
- CostAllocationTagsStatus: toggleCostTag(props.costAllocationTags, "Active")
32
- },
33
- physicalResourceId: customResources.PhysicalResourceId.of("costAllocationTags")
34
- },
35
- onDelete: {
36
- service: "CostExplorer",
37
- action: "updateCostAllocationTagsStatus",
38
- parameters: {
39
- CostAllocationTagsStatus: toggleCostTag(props.costAllocationTags, "Inactive")
40
- }
41
- },
42
- resourceType: "Custom::CostAllocationTags"
43
- });
44
- }
45
- }
46
- exports.CostAllocationTags = CostAllocationTags;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdEFsbG9jYXRpb25UYWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvY29zdEFsbG9jYXRpb25UYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFnRTtBQUNoRSwyQ0FBdUM7QUFFdkMsdUZBQW9GO0FBV3BGLFNBQVMsYUFBYSxDQUFDLElBQTJCLEVBQUUsU0FBaUI7SUFDbkUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEIsT0FBTztZQUNMLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxzQkFBUztJQUMvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDaEQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixNQUFNLEVBQUUsZ0NBQWdDO2dCQUN4QyxVQUFVLEVBQUU7b0JBQ1Ysd0JBQXdCLEVBQUUsYUFBYSxDQUNyQyxLQUFLLENBQUMsa0JBQWtCLEVBQ3hCLFFBQVEsQ0FDVDtpQkFDRjtnQkFDRCxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUM5RDtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsY0FBYztnQkFDdkIsTUFBTSxFQUFFLGdDQUFnQztnQkFDeEMsVUFBVSxFQUFFO29CQUNWLHdCQUF3QixFQUFFLGFBQWEsQ0FDckMsS0FBSyxDQUFDLGtCQUFrQixFQUN4QixRQUFRLENBQ1Q7aUJBQ0Y7Z0JBQ0Qsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDOUQ7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLE1BQU0sRUFBRSxnQ0FBZ0M7Z0JBQ3hDLFVBQVUsRUFBRTtvQkFDVix3QkFBd0IsRUFBRSxhQUFhLENBQ3JDLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsVUFBVSxDQUNYO2lCQUNGO2FBQ0Y7WUFDRCxZQUFZLEVBQUUsNEJBQTRCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFDRCxnREEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2F3c0N1c3RvbVJlc291cmNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvc3RBbGxvY2F0aW9uVGFncyB7XG4gIFRhZ0tleTogc3RyaW5nO1xuICBTdGF0dXM6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENvc3RBbGxvY2F0aW9uVGFnc1Byb3BzIHtcbiAgY29zdEFsbG9jYXRpb25UYWdzOiBJQ29zdEFsbG9jYXRpb25UYWdzW107XG59XG5cbmZ1bmN0aW9uIHRvZ2dsZUNvc3RUYWcodGFnczogSUNvc3RBbGxvY2F0aW9uVGFnc1tdLCB0YWdTdGF0dXM6IHN0cmluZykge1xuICByZXR1cm4gdGFncy5tYXAoKHRhZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBUYWdLZXk6IHRhZy5UYWdLZXksXG4gICAgICBTdGF0dXM6IHRhZ1N0YXR1c1xuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQ29zdEFsbG9jYXRpb25UYWdzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENvc3RBbGxvY2F0aW9uVGFnc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcImNvc3RBbGxvY2F0aW9uVGFnc1wiLCB7XG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkNvc3RFeHBsb3JlclwiLFxuICAgICAgICBhY3Rpb246IFwidXBkYXRlQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXM6IHRvZ2dsZUNvc3RUYWcoXG4gICAgICAgICAgICBwcm9wcy5jb3N0QWxsb2NhdGlvblRhZ3MsXG4gICAgICAgICAgICBcIkFjdGl2ZVwiXG4gICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImNvc3RBbGxvY2F0aW9uVGFnc1wiKVxuICAgICAgfSxcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQ29zdEV4cGxvcmVyXCIsXG4gICAgICAgIGFjdGlvbjogXCJ1cGRhdGVDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXNcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIENvc3RBbGxvY2F0aW9uVGFnc1N0YXR1czogdG9nZ2xlQ29zdFRhZyhcbiAgICAgICAgICAgIHByb3BzLmNvc3RBbGxvY2F0aW9uVGFncyxcbiAgICAgICAgICAgIFwiQWN0aXZlXCJcbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY29zdEFsbG9jYXRpb25UYWdzXCIpXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogXCJDb3N0RXhwbG9yZXJcIixcbiAgICAgICAgYWN0aW9uOiBcInVwZGF0ZUNvc3RBbGxvY2F0aW9uVGFnc1N0YXR1c1wiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzOiB0b2dnbGVDb3N0VGFnKFxuICAgICAgICAgICAgcHJvcHMuY29zdEFsbG9jYXRpb25UYWdzLFxuICAgICAgICAgICAgXCJJbmFjdGl2ZVwiXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6Q29zdEFsbG9jYXRpb25UYWdzXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- import { Construct } from "constructs";
2
- interface IpamDelegateAdminProps {
3
- accountId: string;
4
- }
5
- export declare class IpamDelegateAdmin extends Construct {
6
- constructor(scope: Construct, id: string, props: IpamDelegateAdminProps);
7
- }
8
- export {};