@fjall/components-infrastructure 0.89.5 → 0.94.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.
- package/LICENSE +50 -21
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -18
- package/dist/lib/app.d.ts +12 -12
- package/dist/lib/app.js +61 -56
- package/dist/lib/aspects/index.d.ts +1 -1
- package/dist/lib/aspects/index.js +1 -6
- package/dist/lib/aspects/resourceInventory.js +6 -13
- package/dist/lib/config/audit.js +1 -5
- package/dist/lib/config/aws/accessAnalyser.d.ts +11 -0
- package/dist/lib/config/aws/accessAnalyser.js +17 -0
- package/dist/lib/config/aws/accountAuditRole.js +11 -15
- package/dist/lib/config/aws/accountMonitoringRole.js +25 -29
- package/dist/lib/config/aws/alarmTopic.d.ts +8 -0
- package/dist/lib/config/aws/alarmTopic.js +19 -0
- package/dist/lib/config/aws/cloudTrail.js +4 -9
- package/dist/lib/config/aws/configRecorder.d.ts +16 -0
- package/dist/lib/config/aws/configRecorder.js +51 -0
- package/dist/lib/config/aws/configRulePreset.d.ts +13 -0
- package/dist/lib/config/aws/configRulePreset.js +62 -0
- package/dist/lib/config/aws/disasterRecovery.d.ts +1 -1
- package/dist/lib/config/aws/disasterRecovery.js +56 -73
- package/dist/lib/config/aws/ebsDefaultEncryption.d.ts +8 -0
- package/dist/lib/config/aws/ebsDefaultEncryption.js +41 -0
- package/dist/lib/config/aws/ecrDefaultImage.js +25 -30
- package/dist/lib/config/aws/eventBus.js +8 -11
- package/dist/lib/config/aws/guardDutyDetector.d.ts +16 -0
- package/dist/lib/config/aws/guardDutyDetector.js +26 -0
- package/dist/lib/config/aws/identityCenter.d.ts +1 -1
- package/dist/lib/config/aws/identityCenter.js +23 -25
- package/dist/lib/config/aws/identityCenterGroupMembership.js +18 -22
- package/dist/lib/config/aws/index.d.ts +19 -8
- package/dist/lib/config/aws/index.js +19 -25
- package/dist/lib/config/aws/inspectorEnablement.d.ts +9 -0
- package/dist/lib/config/aws/inspectorEnablement.js +51 -0
- package/dist/lib/config/aws/ipam.js +9 -13
- package/dist/lib/config/aws/oidcConnector.js +8 -12
- package/dist/lib/config/aws/platform.js +1 -5
- package/dist/lib/config/aws/s3BlockPublicAccess.d.ts +9 -0
- package/dist/lib/config/aws/s3BlockPublicAccess.js +55 -0
- package/dist/lib/config/aws/scpPreset.d.ts +21 -0
- package/dist/lib/config/aws/scpPreset.js +311 -0
- package/dist/lib/config/aws/securityBaseline.d.ts +15 -0
- package/dist/lib/config/aws/securityBaseline.js +27 -0
- package/dist/lib/config/aws/securityHubHub.d.ts +15 -0
- package/dist/lib/config/aws/securityHubHub.js +28 -0
- package/dist/lib/config/aws/securityServicesAdmin.d.ts +20 -0
- package/dist/lib/config/aws/securityServicesAdmin.js +115 -0
- package/dist/lib/config/index.d.ts +2 -2
- package/dist/lib/config/index.js +2 -21
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +5 -26
- package/dist/lib/patterns/aws/account.d.ts +17 -1
- package/dist/lib/patterns/aws/account.js +60 -33
- package/dist/lib/patterns/aws/apexDomainPattern.d.ts +26 -0
- package/dist/lib/patterns/aws/apexDomainPattern.js +91 -0
- package/dist/lib/patterns/aws/auditRole.js +13 -16
- package/dist/lib/patterns/aws/buildkite.d.ts +1 -1
- package/dist/lib/patterns/aws/buildkite.js +70 -75
- package/dist/lib/patterns/aws/cdn.d.ts +5 -5
- package/dist/lib/patterns/aws/cdn.js +22 -28
- package/dist/lib/patterns/aws/compute.d.ts +1 -1
- package/dist/lib/patterns/aws/compute.js +31 -44
- package/dist/lib/patterns/aws/computeEc2.d.ts +1 -1
- package/dist/lib/patterns/aws/computeEc2.js +11 -14
- package/dist/lib/patterns/aws/computeEcs.d.ts +18 -2
- package/dist/lib/patterns/aws/computeEcs.js +41 -31
- package/dist/lib/patterns/aws/computeLambda.d.ts +2 -2
- package/dist/lib/patterns/aws/computeLambda.js +24 -31
- package/dist/lib/patterns/aws/database.d.ts +16 -7
- package/dist/lib/patterns/aws/database.js +81 -73
- package/dist/lib/patterns/aws/delegatedDomainPattern.d.ts +17 -0
- package/dist/lib/patterns/aws/delegatedDomainPattern.js +54 -0
- package/dist/lib/patterns/aws/dnsRecordComposer.d.ts +25 -0
- package/dist/lib/patterns/aws/dnsRecordComposer.js +225 -0
- package/dist/lib/patterns/aws/domain.d.ts +32 -0
- package/dist/lib/patterns/aws/domain.js +115 -0
- package/dist/lib/patterns/aws/domainDelegation.d.ts +3 -3
- package/dist/lib/patterns/aws/domainDelegation.js +28 -37
- package/dist/lib/patterns/aws/domainFactory.d.ts +20 -5
- package/dist/lib/patterns/aws/domainFactory.js +48 -10
- package/dist/lib/patterns/aws/domainValidation.d.ts +11 -0
- package/dist/lib/patterns/aws/domainValidation.js +145 -0
- package/dist/lib/patterns/aws/externalRecordsPattern.d.ts +18 -0
- package/dist/lib/patterns/aws/externalRecordsPattern.js +141 -0
- package/dist/lib/patterns/aws/fivetranProxy.d.ts +1 -1
- package/dist/lib/patterns/aws/fivetranProxy.js +6 -11
- package/dist/lib/patterns/aws/index.d.ts +21 -19
- package/dist/lib/patterns/aws/index.js +25 -36
- package/dist/lib/patterns/aws/interfaces/cdn.js +1 -5
- package/dist/lib/patterns/aws/interfaces/compute.js +4 -11
- package/dist/lib/patterns/aws/interfaces/connector.js +1 -15
- package/dist/lib/patterns/aws/interfaces/database.d.ts +1 -1
- package/dist/lib/patterns/aws/interfaces/database.js +6 -15
- package/dist/lib/patterns/aws/interfaces/domain.d.ts +80 -2
- package/dist/lib/patterns/aws/interfaces/domain.js +1 -6
- package/dist/lib/patterns/aws/interfaces/index.js +8 -41
- package/dist/lib/patterns/aws/interfaces/messaging.js +4 -11
- package/dist/lib/patterns/aws/interfaces/organisation.d.ts +1 -1
- package/dist/lib/patterns/aws/interfaces/organisation.js +4 -11
- package/dist/lib/patterns/aws/interfaces/pattern.js +2 -7
- package/dist/lib/patterns/aws/interfaces/storage.js +1 -5
- package/dist/lib/patterns/aws/managedIdentityCenter.js +7 -12
- package/dist/lib/patterns/aws/messaging.d.ts +7 -7
- package/dist/lib/patterns/aws/messaging.js +22 -33
- package/dist/lib/patterns/aws/network.d.ts +2 -2
- package/dist/lib/patterns/aws/network.js +9 -14
- package/dist/lib/patterns/aws/organisation.d.ts +6 -2
- package/dist/lib/patterns/aws/organisation.js +34 -35
- package/dist/lib/patterns/aws/organisationFactory.d.ts +3 -3
- package/dist/lib/patterns/aws/organisationFactory.js +7 -12
- package/dist/lib/patterns/aws/pattern.js +6 -12
- package/dist/lib/patterns/aws/payload.js +73 -63
- package/dist/lib/patterns/aws/platform.d.ts +6 -3
- package/dist/lib/patterns/aws/platform.js +15 -15
- package/dist/lib/patterns/aws/storage.d.ts +6 -4
- package/dist/lib/patterns/aws/storage.js +35 -40
- package/dist/lib/patterns/aws/subdomainHostedZone.js +11 -16
- package/dist/lib/patterns/aws/targets/fjallTargets.d.ts +37 -0
- package/dist/lib/patterns/aws/targets/fjallTargets.js +66 -0
- package/dist/lib/patterns/aws/targets/index.d.ts +2 -0
- package/dist/lib/patterns/aws/targets/index.js +2 -0
- package/dist/lib/patterns/aws/targets/targetResolution.d.ts +76 -0
- package/dist/lib/patterns/aws/targets/targetResolution.js +119 -0
- package/dist/lib/patterns/index.d.ts +1 -0
- package/dist/lib/patterns/index.js +1 -0
- package/dist/lib/resources/aws/analytics/clickhouse.d.ts +15 -0
- package/dist/lib/resources/aws/analytics/clickhouse.js +292 -0
- package/dist/lib/resources/aws/analytics/clickhouseConstants.d.ts +73 -0
- package/dist/lib/resources/aws/analytics/clickhouseConstants.js +87 -0
- package/dist/lib/resources/aws/analytics/clickhouseSecurityGroup.d.ts +13 -0
- package/dist/lib/resources/aws/analytics/clickhouseSecurityGroup.js +28 -0
- package/dist/lib/resources/aws/analytics/clickhouseTypes.d.ts +47 -0
- package/dist/lib/resources/aws/analytics/clickhouseTypes.js +1 -0
- package/dist/lib/resources/aws/analytics/clickhouseUserData.d.ts +5 -0
- package/dist/lib/resources/aws/analytics/clickhouseUserData.js +248 -0
- package/dist/lib/resources/aws/analytics/index.d.ts +2 -0
- package/dist/lib/resources/aws/analytics/index.js +1 -0
- package/dist/lib/resources/aws/audit/auditRole.js +10 -15
- package/dist/lib/resources/aws/audit/index.d.ts +1 -1
- package/dist/lib/resources/aws/audit/index.js +1 -6
- package/dist/lib/resources/aws/backup/backupPlan.d.ts +1 -1
- package/dist/lib/resources/aws/backup/backupPlan.js +14 -16
- package/dist/lib/resources/aws/backup/backupVault.d.ts +1 -1
- package/dist/lib/resources/aws/backup/backupVault.js +13 -15
- package/dist/lib/resources/aws/backup/index.d.ts +2 -2
- package/dist/lib/resources/aws/backup/index.js +2 -19
- package/dist/lib/resources/aws/base/awsStack.js +17 -19
- package/dist/lib/resources/aws/base/index.d.ts +1 -1
- package/dist/lib/resources/aws/base/index.js +1 -18
- package/dist/lib/resources/aws/cdn/cloudFront.js +40 -42
- package/dist/lib/resources/aws/cdn/index.d.ts +1 -1
- package/dist/lib/resources/aws/cdn/index.js +1 -18
- package/dist/lib/resources/aws/compute/ec2.js +39 -39
- package/dist/lib/resources/aws/compute/ecs.d.ts +18 -396
- package/dist/lib/resources/aws/compute/ecs.js +105 -976
- package/dist/lib/resources/aws/compute/ecsCapacityProviderAspect.d.ts +22 -0
- package/dist/lib/resources/aws/compute/ecsCapacityProviderAspect.js +35 -0
- package/dist/lib/resources/aws/compute/ecsConstants.d.ts +20 -0
- package/dist/lib/resources/aws/compute/ecsConstants.js +49 -0
- package/dist/lib/resources/aws/compute/ecsContext.d.ts +12 -0
- package/dist/lib/resources/aws/compute/ecsContext.js +1 -0
- package/dist/lib/resources/aws/compute/ecsImages.d.ts +4 -0
- package/dist/lib/resources/aws/compute/ecsImages.js +35 -0
- package/dist/lib/resources/aws/compute/ecsNetworking.d.ts +28 -0
- package/dist/lib/resources/aws/compute/ecsNetworking.js +290 -0
- package/dist/lib/resources/aws/compute/ecsRoles.d.ts +15 -0
- package/dist/lib/resources/aws/compute/ecsRoles.js +110 -0
- package/dist/lib/resources/aws/compute/ecsServiceFactory.d.ts +33 -0
- package/dist/lib/resources/aws/compute/ecsServiceFactory.js +183 -0
- package/dist/lib/resources/aws/compute/ecsTaskDefinition.d.ts +30 -0
- package/dist/lib/resources/aws/compute/ecsTaskDefinition.js +168 -0
- package/dist/lib/resources/aws/compute/ecsTypes.d.ts +337 -0
- package/dist/lib/resources/aws/compute/ecsTypes.js +10 -0
- package/dist/lib/resources/aws/compute/ecsValidation.d.ts +18 -0
- package/dist/lib/resources/aws/compute/ecsValidation.js +72 -0
- package/dist/lib/resources/aws/compute/index.d.ts +3 -3
- package/dist/lib/resources/aws/compute/index.js +3 -20
- package/dist/lib/resources/aws/compute/lambda.d.ts +10 -2
- package/dist/lib/resources/aws/compute/lambda.js +81 -71
- package/dist/lib/resources/aws/database/dynamodb.js +24 -27
- package/dist/lib/resources/aws/database/index.d.ts +7 -7
- package/dist/lib/resources/aws/database/index.js +14 -33
- package/dist/lib/resources/aws/database/rdsAurora.d.ts +10 -2
- package/dist/lib/resources/aws/database/rdsAurora.js +76 -61
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +2 -2
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +24 -21
- package/dist/lib/resources/aws/database/rdsDefaults.js +3 -7
- package/dist/lib/resources/aws/database/rdsHelpers.d.ts +2 -2
- package/dist/lib/resources/aws/database/rdsHelpers.js +21 -29
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +11 -3
- package/dist/lib/resources/aws/database/rdsInstance.js +101 -83
- package/dist/lib/resources/aws/database/rdsProxyOutput.js +5 -9
- package/dist/lib/resources/aws/iam/delegationRole.d.ts +18 -0
- package/dist/lib/resources/aws/iam/delegationRole.js +60 -0
- package/dist/lib/resources/aws/iam/identityCenter/assignment.js +4 -9
- package/dist/lib/resources/aws/iam/identityCenter/group.js +5 -9
- package/dist/lib/resources/aws/iam/identityCenter/index.d.ts +3 -3
- package/dist/lib/resources/aws/iam/identityCenter/index.js +3 -20
- package/dist/lib/resources/aws/iam/identityCenter/permissionSet.d.ts +1 -1
- package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +5 -9
- package/dist/lib/resources/aws/iam/index.d.ts +5 -4
- package/dist/lib/resources/aws/iam/index.js +5 -21
- package/dist/lib/resources/aws/iam/instanceProfile.js +2 -7
- package/dist/lib/resources/aws/iam/managedPolicy.js +2 -7
- package/dist/lib/resources/aws/iam/policy.js +2 -7
- package/dist/lib/resources/aws/iam/role.js +2 -7
- package/dist/lib/resources/aws/index.d.ts +7 -7
- package/dist/lib/resources/aws/index.js +7 -24
- package/dist/lib/resources/aws/logging/cloudTrail.d.ts +1 -1
- package/dist/lib/resources/aws/logging/cloudTrail.js +18 -22
- package/dist/lib/resources/aws/logging/index.d.ts +2 -2
- package/dist/lib/resources/aws/logging/index.js +2 -19
- package/dist/lib/resources/aws/logging/logGroup.js +4 -10
- package/dist/lib/resources/aws/messaging/eventbridge.js +11 -14
- package/dist/lib/resources/aws/messaging/index.d.ts +4 -4
- package/dist/lib/resources/aws/messaging/index.js +4 -21
- package/dist/lib/resources/aws/messaging/sns.js +11 -14
- package/dist/lib/resources/aws/messaging/sqs.js +32 -34
- package/dist/lib/resources/aws/messaging/utils.d.ts +1 -1
- package/dist/lib/resources/aws/messaging/utils.js +1 -6
- package/dist/lib/resources/aws/monitoring/alarmDefaults.d.ts +36 -0
- package/dist/lib/resources/aws/monitoring/alarmDefaults.js +34 -0
- package/dist/lib/resources/aws/monitoring/ecsAlarms.d.ts +21 -0
- package/dist/lib/resources/aws/monitoring/ecsAlarms.js +88 -0
- package/dist/lib/resources/aws/monitoring/index.d.ts +4 -0
- package/dist/lib/resources/aws/monitoring/index.js +4 -5
- package/dist/lib/resources/aws/monitoring/lambdaAlarms.d.ts +18 -0
- package/dist/lib/resources/aws/monitoring/lambdaAlarms.js +44 -0
- package/dist/lib/resources/aws/monitoring/rdsAlarms.d.ts +20 -0
- package/dist/lib/resources/aws/monitoring/rdsAlarms.js +52 -0
- package/dist/lib/resources/aws/networking/crossAccountDelegationRecord.d.ts +17 -0
- package/dist/lib/resources/aws/networking/crossAccountDelegationRecord.js +26 -0
- package/dist/lib/resources/aws/networking/dnsRecord/aRecord.d.ts +12 -0
- package/dist/lib/resources/aws/networking/dnsRecord/aRecord.js +21 -0
- package/dist/lib/resources/aws/networking/dnsRecord/aaaaRecord.d.ts +12 -0
- package/dist/lib/resources/aws/networking/dnsRecord/aaaaRecord.js +22 -0
- package/dist/lib/resources/aws/networking/dnsRecord/aliasRecord.d.ts +12 -0
- package/dist/lib/resources/aws/networking/dnsRecord/aliasRecord.js +23 -0
- package/dist/lib/resources/aws/networking/dnsRecord/caaRecord.d.ts +17 -0
- package/dist/lib/resources/aws/networking/dnsRecord/caaRecord.js +21 -0
- package/dist/lib/resources/aws/networking/dnsRecord/cnameRecord.d.ts +12 -0
- package/dist/lib/resources/aws/networking/dnsRecord/cnameRecord.js +22 -0
- package/dist/lib/resources/aws/networking/dnsRecord/dnsRecordBase.d.ts +17 -0
- package/dist/lib/resources/aws/networking/dnsRecord/dnsRecordBase.js +17 -0
- package/dist/lib/resources/aws/networking/dnsRecord/index.d.ts +10 -0
- package/dist/lib/resources/aws/networking/dnsRecord/index.js +10 -0
- package/dist/lib/resources/aws/networking/dnsRecord/mxRecord.d.ts +16 -0
- package/dist/lib/resources/aws/networking/dnsRecord/mxRecord.js +21 -0
- package/dist/lib/resources/aws/networking/dnsRecord/nsRecord.d.ts +12 -0
- package/dist/lib/resources/aws/networking/dnsRecord/nsRecord.js +21 -0
- package/dist/lib/resources/aws/networking/dnsRecord/srvRecord.d.ts +18 -0
- package/dist/lib/resources/aws/networking/dnsRecord/srvRecord.js +21 -0
- package/dist/lib/resources/aws/networking/dnsRecord/txtRecord.d.ts +12 -0
- package/dist/lib/resources/aws/networking/dnsRecord/txtRecord.js +21 -0
- package/dist/lib/resources/aws/networking/domain.d.ts +1 -1
- package/dist/lib/resources/aws/networking/domain.js +32 -34
- package/dist/lib/resources/aws/networking/domainCertificate.d.ts +8 -3
- package/dist/lib/resources/aws/networking/domainCertificate.js +22 -16
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +23 -19
- package/dist/lib/resources/aws/networking/hostedZone.js +70 -134
- package/dist/lib/resources/aws/networking/index.d.ts +8 -7
- package/dist/lib/resources/aws/networking/index.js +8 -24
- package/dist/lib/resources/aws/networking/ipam.js +2 -7
- package/dist/lib/resources/aws/networking/ipamPool.d.ts +1 -1
- package/dist/lib/resources/aws/networking/ipamPool.js +45 -55
- package/dist/lib/resources/aws/networking/securityGroup.js +2 -7
- package/dist/lib/resources/aws/networking/vpc.d.ts +1 -1
- package/dist/lib/resources/aws/networking/vpc.js +17 -21
- package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +1 -1
- package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +11 -15
- package/dist/lib/resources/aws/organisation/index.d.ts +5 -5
- package/dist/lib/resources/aws/organisation/index.js +4 -12
- package/dist/lib/resources/aws/organisation/organisation.js +5 -7
- package/dist/lib/resources/aws/organisation/organisationAccount.js +7 -10
- package/dist/lib/resources/aws/organisation/organisationPolicy.js +5 -9
- package/dist/lib/resources/aws/organisation/organisationalUnit.js +1 -3
- package/dist/lib/resources/aws/secrets/alias.js +2 -7
- package/dist/lib/resources/aws/secrets/index.d.ts +4 -4
- package/dist/lib/resources/aws/secrets/index.js +4 -21
- package/dist/lib/resources/aws/secrets/kms.js +15 -18
- package/dist/lib/resources/aws/secrets/parameter.d.ts +3 -3
- package/dist/lib/resources/aws/secrets/parameter.js +19 -22
- package/dist/lib/resources/aws/secrets/secret.d.ts +2 -2
- package/dist/lib/resources/aws/secrets/secret.js +12 -14
- package/dist/lib/resources/aws/storage/ecr.d.ts +2 -2
- package/dist/lib/resources/aws/storage/ecr.js +7 -13
- package/dist/lib/resources/aws/storage/index.d.ts +2 -2
- package/dist/lib/resources/aws/storage/index.js +2 -19
- package/dist/lib/resources/aws/storage/s3.d.ts +1 -1
- package/dist/lib/resources/aws/storage/s3.js +24 -12
- package/dist/lib/resources/aws/utilities/awsCustomResource.js +3 -7
- package/dist/lib/resources/aws/utilities/codeBuild.js +7 -12
- package/dist/lib/resources/aws/utilities/customResource.js +14 -17
- package/dist/lib/resources/aws/utilities/customResourceProvider.js +2 -7
- package/dist/lib/resources/aws/utilities/index.d.ts +5 -5
- package/dist/lib/resources/aws/utilities/index.js +5 -22
- package/dist/lib/resources/aws/utilities/resourceShare.js +2 -7
- package/dist/lib/resources/index.d.ts +1 -1
- package/dist/lib/resources/index.js +1 -18
- package/dist/lib/types.js +1 -3
- package/dist/lib/utils/accountsUtils.d.ts +5 -0
- package/dist/lib/utils/accountsUtils.js +18 -0
- package/dist/lib/utils/addSuffixToEmail.js +1 -5
- package/dist/lib/utils/backupTierMapping.js +2 -6
- package/dist/lib/utils/capitaliseString.js +1 -10
- package/dist/lib/utils/connections.js +9 -13
- package/dist/lib/utils/connector.js +10 -23
- package/dist/lib/utils/constructMap.d.ts +33 -0
- package/dist/lib/utils/constructMap.js +154 -0
- package/dist/lib/utils/databaseTypes.js +4 -10
- package/dist/lib/utils/dnsRecords.d.ts +1 -1
- package/dist/lib/utils/dnsRecords.js +23 -27
- package/dist/lib/utils/domainTypes.d.ts +0 -1
- package/dist/lib/utils/domainTypes.js +2 -10
- package/dist/lib/utils/env.js +14 -26
- package/dist/lib/utils/getAccountId.js +3 -7
- package/dist/lib/utils/getAsync.js +7 -10
- package/dist/lib/utils/getConfig.d.ts +0 -2
- package/dist/lib/utils/getConfig.js +29 -47
- package/dist/lib/utils/getStackOutput.js +4 -8
- package/dist/lib/utils/index.d.ts +12 -12
- package/dist/lib/utils/index.js +12 -29
- package/dist/lib/utils/manifestWriter.d.ts +14 -3
- package/dist/lib/utils/manifestWriter.js +60 -43
- package/dist/lib/utils/orgConfigParser.d.ts +14 -0
- package/dist/lib/utils/orgConfigParser.js +49 -0
- package/dist/lib/utils/removalPolicy.js +5 -9
- package/dist/lib/utils/resourceNaming.js +11 -16
- package/dist/lib/utils/standardTagsAspect.js +9 -16
- package/dist/lib/utils/stripAndCamelCase.js +1 -5
- package/dist/lib/utils/validationLogger.js +12 -18
- package/dist/lib/utils/vpcUtils.js +5 -10
- package/package.json +25 -8
- package/dist/lib/config/aws/accountId.d.ts +0 -6
- package/dist/lib/config/aws/accountId.js +0 -32
- package/dist/lib/config/aws/backupGlobalSettings.d.ts +0 -29
- package/dist/lib/config/aws/backupGlobalSettings.js +0 -49
- package/dist/lib/config/aws/costAllocationTags.d.ts +0 -12
- package/dist/lib/config/aws/costAllocationTags.js +0 -47
- package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +0 -8
- package/dist/lib/config/aws/ipamDelegateAdmin.js +0 -57
- package/dist/lib/config/aws/ipamPoolId.d.ts +0 -16
- package/dist/lib/config/aws/ipamPoolId.js +0 -42
- package/dist/lib/config/aws/organisation.d.ts +0 -30
- package/dist/lib/config/aws/organisation.js +0 -92
- package/dist/lib/config/aws/organisationId.d.ts +0 -7
- package/dist/lib/config/aws/organisationId.js +0 -45
- package/dist/lib/config/aws/organisationsAccess.d.ts +0 -10
- package/dist/lib/config/aws/organisationsAccess.js +0 -49
- package/dist/lib/config/aws/ramSharing.d.ts +0 -4
- package/dist/lib/config/aws/ramSharing.js +0 -34
- package/dist/lib/config/monitoring.d.ts +0 -18
- package/dist/lib/config/monitoring.js +0 -22
- package/dist/lib/patterns/aws/connections.d.ts +0 -46
- package/dist/lib/patterns/aws/connections.js +0 -159
- package/dist/lib/patterns/aws/hostedZone.d.ts +0 -28
- package/dist/lib/patterns/aws/hostedZone.js +0 -150
- package/dist/lib/patterns/aws/managedAccount.d.ts +0 -9
- package/dist/lib/patterns/aws/managedAccount.js +0 -55
- package/dist/lib/patterns/aws/managedOrganisation.d.ts +0 -36
- package/dist/lib/patterns/aws/managedOrganisation.js +0 -97
- package/dist/lib/patterns/aws/managedPlatform.d.ts +0 -12
- package/dist/lib/patterns/aws/managedPlatform.js +0 -29
- package/dist/lib/resources/aws/database/database.d.ts +0 -14
- package/dist/lib/resources/aws/database/database.js +0 -28
- package/dist/lib/resources/aws/database/databaseInstance.d.ts +0 -15
- package/dist/lib/resources/aws/database/databaseInstance.js +0 -30
- package/dist/lib/resources/aws/database/migrationLambda.d.ts +0 -80
- package/dist/lib/resources/aws/database/migrationLambda.js +0 -119
- package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.d.ts +0 -13
- package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +0 -51
- package/dist/lib/resources/aws/iam/securityGroup.d.ts +0 -5
- package/dist/lib/resources/aws/iam/securityGroup.js +0 -14
- package/dist/lib/resources/aws/monitoring/monitoringRole.d.ts +0 -29
- package/dist/lib/resources/aws/monitoring/monitoringRole.js +0 -120
- package/dist/lib/utils/capitalizeString.d.ts +0 -12
- package/dist/lib/utils/capitalizeString.js +0 -30
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
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
|
|
17
|
+
return toKebab(name);
|
|
21
18
|
}
|
|
22
19
|
/** Aurora cluster identifier. Must be lowercase. */
|
|
23
20
|
static clusterId(name) {
|
|
24
|
-
return `${
|
|
21
|
+
return `${toKebab(name)}-cluster`;
|
|
25
22
|
}
|
|
26
23
|
/** Global Aurora cluster identifier. Must be lowercase. */
|
|
27
24
|
static globalClusterId(name) {
|
|
28
|
-
return `${
|
|
25
|
+
return `${toKebab(name)}-global`;
|
|
29
26
|
}
|
|
30
27
|
/** Primary cluster ID for GlobalAurora. Must be lowercase. */
|
|
31
28
|
static primaryClusterId(name) {
|
|
32
|
-
return `${
|
|
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 `${
|
|
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 `${
|
|
37
|
+
return `${toKebab(name)}-proxy`;
|
|
41
38
|
}
|
|
42
39
|
/** Aurora writer instance identifier. */
|
|
43
40
|
static writerInstanceId(name, suffix = "primary") {
|
|
44
|
-
return `${
|
|
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 `${
|
|
46
|
+
return `${toKebab(name)}-${id}`;
|
|
50
47
|
}
|
|
51
48
|
/** RDS read replica identifier. */
|
|
52
49
|
static readReplicaId(name) {
|
|
53
|
-
return `${
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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 (!
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
80
|
-
|
|
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
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
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 (!
|
|
22
|
-
|
|
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
|
-
|
|
26
|
+
appendFileSync(LOG_FILE, entry + "\n");
|
|
32
27
|
}
|
|
33
28
|
catch {
|
|
34
29
|
// Never crash CDK on logging failure
|
|
35
30
|
}
|
|
36
31
|
}
|
|
37
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
?
|
|
26
|
-
:
|
|
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.
|
|
4
|
-
"license": "
|
|
3
|
+
"version": "0.94.0",
|
|
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
|
-
"
|
|
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.
|
|
57
|
+
"@fjall/util": "^0.94.0",
|
|
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": "
|
|
65
|
+
"gitHead": "97f6b382405bb3068e841d30866222fd76bc3b15",
|
|
49
66
|
"peerDependencies": {
|
|
50
67
|
"aws-cdk": "^2.239.0",
|
|
51
68
|
"aws-cdk-lib": "^2.239.0",
|
|
@@ -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
|