@fjall/components-infrastructure 0.1.11 → 0.1.17
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/dist/lib/config/aws/identityCenter.d.ts +3 -4
- package/dist/lib/config/aws/identityCenter.js +7 -2
- package/dist/lib/config/aws/identityCenterGroupMembership.d.ts +10 -0
- package/dist/lib/config/aws/identityCenterGroupMembership.js +96 -0
- package/dist/lib/config/aws/identityCenterUser.js +3 -3
- package/dist/lib/config/aws/index.d.ts +0 -1
- package/dist/lib/config/aws/index.js +1 -2
- package/dist/lib/config/aws/ipamPoolId.d.ts +1 -0
- package/dist/lib/config/aws/ipamPoolId.js +5 -3
- package/dist/lib/config/aws/organisation.d.ts +9 -9
- package/dist/lib/config/aws/organisation.js +31 -61
- package/dist/lib/config/aws/organisationsAccess.d.ts +10 -0
- package/dist/lib/config/aws/organisationsAccess.js +40 -0
- package/dist/lib/patterns/aws/basicApp.d.ts +3 -2
- package/dist/lib/patterns/aws/basicApp.js +5 -5
- package/dist/lib/patterns/aws/buildkite.d.ts +37 -28
- package/dist/lib/patterns/aws/buildkite.js +66 -40
- package/dist/lib/patterns/aws/freeTierApp.d.ts +2 -1
- package/dist/lib/patterns/aws/freeTierApp.js +5 -5
- package/dist/lib/patterns/aws/managedAccount.js +5 -4
- package/dist/lib/patterns/aws/managedIdentityCenter.d.ts +4 -0
- package/dist/lib/patterns/aws/managedIdentityCenter.js +24 -0
- package/dist/lib/patterns/aws/managedOrganisation.d.ts +8 -7
- package/dist/lib/patterns/aws/managedOrganisation.js +22 -16
- package/dist/lib/patterns/aws/spotInstanceApp.d.ts +1 -0
- package/dist/lib/patterns/aws/spotInstanceApp.js +4 -4
- package/dist/lib/resources/aws/awsStack.d.ts +2 -2
- package/dist/lib/resources/aws/awsStack.js +3 -3
- package/dist/lib/resources/aws/database/rdsFreeTier.js +2 -2
- package/dist/lib/resources/aws/networking/ipamPool.js +21 -18
- package/dist/lib/resources/aws/networking/vpc.d.ts +1 -1
- package/dist/lib/resources/aws/networking/vpc.js +5 -3
- package/dist/lib/resources/aws/secrets/kms.js +2 -2
- package/dist/lib/utils/getAccountId.js +5 -4
- package/dist/lib/utils/getAsync.d.ts +10 -0
- package/dist/lib/utils/getAsync.js +37 -0
- package/dist/lib/utils/getCidr.js +4 -4
- package/dist/lib/utils/getConfig.d.ts +4 -2
- package/dist/lib/utils/getConfig.js +20 -16
- package/dist/lib/utils/usersConfig.js +2 -2
- package/package.json +28 -24
- package/dist/lib/config/aws/delegateHostedZoneRole.d.ts +0 -5
- package/dist/lib/config/aws/delegateHostedZoneRole.js +0 -77
- package/dist/lib/config/aws/ipamPool.d.ts +0 -5
- package/dist/lib/config/aws/ipamPool.js +0 -56
- package/dist/lib/config/aws/ipamPoolResourceShare.d.ts +0 -5
- package/dist/lib/config/aws/ipamPoolResourceShare.js +0 -42
- package/dist/lib/config/aws/ramEnableSharing.d.ts +0 -5
- package/dist/lib/config/aws/ramEnableSharing.js +0 -35
- package/dist/lib/config/aws/users.d.ts +0 -5
- package/dist/lib/config/aws/users.js +0 -126
- package/dist/lib/config/fjall/hostedZones/fjall.io.d.ts +0 -10
- package/dist/lib/config/fjall/hostedZones/fjall.io.js +0 -25
- package/dist/lib/resources/aws/constant/ecr.d.ts +0 -12
- package/dist/lib/resources/aws/constant/ecr.js +0 -30
- package/dist/lib/resources/aws/constant/vpc.d.ts +0 -26
- package/dist/lib/resources/aws/constant/vpc.js +0 -63
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +0 -21
- package/dist/lib/resources/aws/networking/hostedZone.js +0 -68
- package/dist/lib/resources/aws/store/alias.d.ts +0 -5
- package/dist/lib/resources/aws/store/alias.js +0 -13
- package/dist/lib/resources/aws/store/database.d.ts +0 -18
- package/dist/lib/resources/aws/store/database.js +0 -33
- package/dist/lib/resources/aws/store/index.d.ts +0 -7
- package/dist/lib/resources/aws/store/index.js +0 -24
- package/dist/lib/resources/aws/store/kms.d.ts +0 -14
- package/dist/lib/resources/aws/store/kms.js +0 -34
- package/dist/lib/resources/aws/store/parameter.d.ts +0 -26
- package/dist/lib/resources/aws/store/parameter.js +0 -100
- package/dist/lib/resources/aws/store/rds.d.ts +0 -25
- package/dist/lib/resources/aws/store/rds.js +0 -132
- package/dist/lib/resources/aws/store/s3.d.ts +0 -11
- package/dist/lib/resources/aws/store/s3.js +0 -43
- package/dist/lib/resources/aws/store/secret.d.ts +0 -26
- package/dist/lib/resources/aws/store/secret.js +0 -55
|
@@ -3,7 +3,7 @@ import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
|
3
3
|
import { StackBuilder } from "../awsStack";
|
|
4
4
|
import { KeyValue } from "../../../types";
|
|
5
5
|
interface VpcProps extends ec2.VpcProps {
|
|
6
|
-
|
|
6
|
+
accountName?: string;
|
|
7
7
|
region?: string;
|
|
8
8
|
availabilityZones?: string[];
|
|
9
9
|
ipv4IpamPoolId?: string;
|
|
@@ -4,6 +4,7 @@ exports.Vpc = void 0;
|
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
6
6
|
const logGroup_1 = require("../logging/logGroup");
|
|
7
|
+
const stripAndCamelCase_1 = require("../../../utils/stripAndCamelCase");
|
|
7
8
|
class Vpc extends ec2.Vpc {
|
|
8
9
|
constructor(scope, id, props) {
|
|
9
10
|
super(scope, `vpc-${id}`, {
|
|
@@ -21,13 +22,14 @@ class Vpc extends ec2.Vpc {
|
|
|
21
22
|
ipAddresses: Vpc.ipAddresses(scope, props)
|
|
22
23
|
});
|
|
23
24
|
// Required for the VPC to use the IPAM Pool to provsion IP addresses
|
|
24
|
-
aws_cdk_lib_1.Tags.of(this).add("fjall:operations:pool", `${props?.
|
|
25
|
+
aws_cdk_lib_1.Tags.of(this).add("fjall:operations:pool", `${props?.accountName || "noPool"}`);
|
|
25
26
|
}
|
|
26
27
|
static availabilityZones(scope) {
|
|
27
28
|
return aws_cdk_lib_1.Stack.of(scope).availabilityZones.slice(0, 3);
|
|
28
29
|
}
|
|
29
30
|
static ipAddresses(scope, props) {
|
|
30
|
-
const ipv4IpamPoolId = props?.ipv4IpamPoolId ||
|
|
31
|
+
const ipv4IpamPoolId = props?.ipv4IpamPoolId ||
|
|
32
|
+
aws_cdk_lib_1.Fn.importValue(`${(0, stripAndCamelCase_1.stripAndCamelCase)(props?.accountName || "noPool")}IpamPoolId`);
|
|
31
33
|
// Default to unspecified ipAddresses if unable to read from stack output
|
|
32
34
|
if (!ipv4IpamPoolId)
|
|
33
35
|
return undefined;
|
|
@@ -61,4 +63,4 @@ class Vpc extends ec2.Vpc {
|
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
exports.Vpc = Vpc;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvbmV0d29ya2luZy92cGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQTZEO0FBQzdELDJDQUEyQztBQUczQyxrREFBK0M7QUFFL0Msd0VBQXFFO0FBVXJFLE1BQWEsR0FBSSxTQUFRLEdBQUcsQ0FBQyxHQUFHO0lBQzlCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0I7UUFDeEQsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3hCLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNwQixpQkFBaUIsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQy9DLFFBQVEsRUFBRTtnQkFDUixDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsRUFBRTtvQkFDcEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxtQkFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFO3dCQUN2QyxZQUFZLEVBQUUscUJBQXFCLEVBQUUsR0FBRzt3QkFDeEMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztxQkFDckMsQ0FBQyxDQUNIO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1NBQzNDLENBQUMsQ0FBQztRQUVILHFFQUFxRTtRQUNyRSxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQ2YsdUJBQXVCLEVBQ3ZCLEdBQUcsS0FBSyxFQUFFLFdBQVcsSUFBSSxRQUFRLEVBQUUsQ0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBZ0I7UUFDdkMsT0FBTyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCLEVBQUUsS0FBZ0I7UUFDbkQsTUFBTSxjQUFjLEdBQ2xCLEtBQUssRUFBRSxjQUFjO1lBQ3JCLGdCQUFFLENBQUMsV0FBVyxDQUNaLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQ2pFLENBQUM7UUFFSix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUV0QyxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDdkMsY0FBYyxFQUFFLGNBQWM7WUFDOUIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQiw4QkFBOEIsRUFBRSxFQUFFO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUFnQjtRQUN2QyxPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0Q7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FDWCxFQUFVLEVBQ1YsWUFBb0I7UUFFcEIsT0FBTyxDQUFDLEVBQWdCLEVBQUUsRUFBRTtZQUMxQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sRUFBRSxHQUFHLFlBQVksSUFBSSxFQUFFLEVBQUU7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBeEVELGtCQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUYWdzLCBSZW1vdmFsUG9saWN5LCBTdGFjaywgRm4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuXG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSBcIi4uL2xvZ2dpbmcvbG9nR3JvdXBcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBzdHJpcEFuZENhbWVsQ2FzZSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9zdHJpcEFuZENhbWVsQ2FzZVwiO1xuXG5pbnRlcmZhY2UgVnBjUHJvcHMgZXh0ZW5kcyBlYzIuVnBjUHJvcHMge1xuICBhY2NvdW50TmFtZT86IHN0cmluZztcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBhdmFpbGFiaWxpdHlab25lcz86IHN0cmluZ1tdO1xuICBpcHY0SXBhbVBvb2xJZD86IHN0cmluZztcbiAgdGFnczogS2V5VmFsdWU7XG59XG5cbmV4cG9ydCBjbGFzcyBWcGMgZXh0ZW5kcyBlYzIuVnBjIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBWcGNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBgdnBjLSR7aWR9YCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB2cGNOYW1lOiBgdnBjLSR7aWR9YCxcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmVzOiBWcGMuYXZhaWxhYmlsaXR5Wm9uZXMoc2NvcGUpLFxuICAgICAgZmxvd0xvZ3M6IHtcbiAgICAgICAgW2Ake2lkfVZwY0Zsb3dMb2dzYF06IHtcbiAgICAgICAgICBkZXN0aW5hdGlvbjogZWMyLkZsb3dMb2dEZXN0aW5hdGlvbi50b0Nsb3VkV2F0Y2hMb2dzKFxuICAgICAgICAgICAgbmV3IExvZ0dyb3VwKHNjb3BlLCBgJHtpZH1GbG93TG9nR3JvdXBgLCB7XG4gICAgICAgICAgICAgIGxvZ0dyb3VwTmFtZTogYC92cGMvZmxvd2xvZ3MvdnBjLSR7aWR9L2AsXG4gICAgICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBpcEFkZHJlc3NlczogVnBjLmlwQWRkcmVzc2VzKHNjb3BlLCBwcm9wcylcbiAgICB9KTtcblxuICAgIC8vIFJlcXVpcmVkIGZvciB0aGUgVlBDIHRvIHVzZSB0aGUgSVBBTSBQb29sIHRvIHByb3ZzaW9uIElQIGFkZHJlc3Nlc1xuICAgIFRhZ3Mub2YodGhpcykuYWRkKFxuICAgICAgXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgIGAke3Byb3BzPy5hY2NvdW50TmFtZSB8fCBcIm5vUG9vbFwifWBcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGF2YWlsYWJpbGl0eVpvbmVzKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gU3RhY2sub2Yoc2NvcGUpLmF2YWlsYWJpbGl0eVpvbmVzLnNsaWNlKDAsIDMpO1xuICB9XG5cbiAgc3RhdGljIGlwQWRkcmVzc2VzKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzPzogVnBjUHJvcHMpIHtcbiAgICBjb25zdCBpcHY0SXBhbVBvb2xJZCA9XG4gICAgICBwcm9wcz8uaXB2NElwYW1Qb29sSWQgfHxcbiAgICAgIEZuLmltcG9ydFZhbHVlKFxuICAgICAgICBgJHtzdHJpcEFuZENhbWVsQ2FzZShwcm9wcz8uYWNjb3VudE5hbWUgfHwgXCJub1Bvb2xcIil9SXBhbVBvb2xJZGBcbiAgICAgICk7XG5cbiAgICAvLyBEZWZhdWx0IHRvIHVuc3BlY2lmaWVkIGlwQWRkcmVzc2VzIGlmIHVuYWJsZSB0byByZWFkIGZyb20gc3RhY2sgb3V0cHV0XG4gICAgaWYgKCFpcHY0SXBhbVBvb2xJZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBlYzIuSXBBZGRyZXNzZXMuYXdzSXBhbUFsbG9jYXRpb24oe1xuICAgICAgaXB2NElwYW1Qb29sSWQ6IGlwdjRJcGFtUG9vbElkLFxuICAgICAgaXB2NE5ldG1hc2tMZW5ndGg6IDIwLFxuICAgICAgZGVmYXVsdFN1Ym5ldElwdjROZXRtYXNrTGVuZ3RoOiAyM1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkKGlkOiBzdHJpbmcsIHByb3BzPzogVnBjUHJvcHMpOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIHJldHVybiBuZXcgdGhpcyhzYi5nZXRTdGFjaygpLCBpZCwgcHJvcHMpO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIEltcG9ydHMgYSBwcmUtZXhpc3RpbmcgVlBDIFJlc291cmNlIGludG8geW91ciBTdGFja1xuICAgKlxuICAgKiBCZWZvcmUgdXNpbmcgYW4gaW1wb3J0IG1ldGhvZCBlbnN1cmUgeW91IGhhdmUgc2V0IHRoZSBhY2NvdW50IGFuZCByZWdpb24gcHJvcHNcbiAgICogIHdoZW4gY3JlYXRpbmcgeW91ciBBd3NTdGFjay5cbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSB2cGNTdGFja05hbWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHN0YXRpYyBpbXBvcnQoXG4gICAgaWQ6IHN0cmluZyxcbiAgICB2cGNTdGFja05hbWU6IHN0cmluZ1xuICApOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIHJldHVybiBlYzIuVnBjLmZyb21Mb29rdXAoc2IuZ2V0U3RhY2soKSwgaWQsIHtcbiAgICAgICAgdnBjTmFtZTogYCR7dnBjU3RhY2tOYW1lfS8ke2lkfWBcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,7 +10,7 @@ class CustomerManagedKey extends constructs_1.Construct {
|
|
|
10
10
|
super(scope, id);
|
|
11
11
|
this.key = new aws_kms_1.Key(this, `${id}Key`, {
|
|
12
12
|
description: props.description || `${id} KMS Key`,
|
|
13
|
-
removalPolicy: aws_cdk_lib_1.RemovalPolicy.
|
|
13
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
|
|
14
14
|
});
|
|
15
15
|
new aws_cdk_lib_1.CfnOutput(this, `${id}KeyArn`, {
|
|
16
16
|
key: `${id}Arn`,
|
|
@@ -31,4 +31,4 @@ class CustomerManagedKey extends constructs_1.Construct {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.CustomerManagedKey = CustomerManagedKey;
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9rbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFDdkMsNERBQXFEO0FBU3JELE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFJL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxhQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLFVBQVU7WUFDakQsYUFBYSxFQUFFLDJCQUFhLENBQUMsTUFBTTtTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDakMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtZQUN0QyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFLGFBQWE7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQTdCRCxnREE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsaWFzLCBLZXkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBDdXN0b21lck1hbmFnZWRLZXlQcm9wcyB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJNYW5hZ2VkS2V5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGtleTogS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgYWxpYXM6IEFsaWFzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21lck1hbmFnZWRLZXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmtleSA9IG5ldyBLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBLTVMgS2V5YCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1LZXlBcm5gLCB7XG4gICAgICBrZXk6IGAke2lkfUFybmAsXG4gICAgICB2YWx1ZTogdGhpcy5rZXkua2V5QXJuLFxuICAgICAgZXhwb3J0TmFtZTogYCR7aWR9S2V5QXJuYFxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMua2V5LCBwcm9wcy50YWdzKTtcblxuICAgIHRoaXMuYWxpYXMgPSBuZXcgQWxpYXModGhpcywgYCR7aWR9S2V5QWxpYXNgLCB7XG4gICAgICBhbGlhc05hbWU6IHByb3BzLmFsaWFzTmFtZSB8fCBgY21rLyR7aWR9YCxcbiAgICAgIHRhcmdldEtleTogdGhpcy5rZXlcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2lkfUtleUFsaWFzQXJuYCwge1xuICAgICAga2V5OiBgJHtpZH1BbGlhc0FybmAsXG4gICAgICB2YWx1ZTogdGhpcy5hbGlhcy5hbGlhc0FybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfUtleUFsaWFzQXJuYFxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuYWxpYXMsIHByb3BzLnRhZ3MpO1xuICB9XG59XG4iXX0=
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const getConfig_1 = require("./getConfig");
|
|
4
4
|
function getAccountId(environment) {
|
|
5
|
-
|
|
5
|
+
//TODO: in the use cases of getAccountId, we are currently passing in accountName
|
|
6
|
+
const config = (0, getConfig_1.getEnvironmentConfig)(environment);
|
|
6
7
|
// TODO: need to fix how we handle this in the VPC module
|
|
7
|
-
if (!config || !config.
|
|
8
|
+
if (!config || !config.accountId)
|
|
8
9
|
return "error";
|
|
9
|
-
return config.
|
|
10
|
+
return config.accountId;
|
|
10
11
|
}
|
|
11
12
|
exports.default = getAccountId;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWNjb3VudElkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldEFjY291bnRJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFtRDtBQUVuRCxTQUF3QixZQUFZLENBQUMsV0FBbUI7SUFDdEQsaUZBQWlGO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLElBQUEsZ0NBQW9CLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDakQseURBQXlEO0lBQ3pELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBRWpELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztBQUMxQixDQUFDO0FBUEQsK0JBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRFbnZpcm9ubWVudENvbmZpZyB9IGZyb20gXCIuL2dldENvbmZpZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBY2NvdW50SWQoZW52aXJvbm1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vVE9ETzogaW4gdGhlIHVzZSBjYXNlcyBvZiBnZXRBY2NvdW50SWQsIHdlIGFyZSBjdXJyZW50bHkgcGFzc2luZyBpbiBhY2NvdW50TmFtZVxuICBjb25zdCBjb25maWcgPSBnZXRFbnZpcm9ubWVudENvbmZpZyhlbnZpcm9ubWVudCk7XG4gIC8vIFRPRE86IG5lZWQgdG8gZml4IGhvdyB3ZSBoYW5kbGUgdGhpcyBpbiB0aGUgVlBDIG1vZHVsZVxuICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLmFjY291bnRJZCkgcmV0dXJuIFwiZXJyb3JcIjtcblxuICByZXR1cm4gY29uZmlnLmFjY291bnRJZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Account } from "@aws-sdk/client-organizations";
|
|
2
|
+
/**
|
|
3
|
+
* This is an example of an async class that will resolve when a synth is run
|
|
4
|
+
*/
|
|
5
|
+
export default class Accounts {
|
|
6
|
+
ready: Promise<void>;
|
|
7
|
+
private configFile;
|
|
8
|
+
constructor(region: string);
|
|
9
|
+
getAccounts(): Account[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_organizations_1 = require("@aws-sdk/client-organizations");
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
/**
|
|
6
|
+
* This is an example of an async class that will resolve when a synth is run
|
|
7
|
+
*/
|
|
8
|
+
class Accounts {
|
|
9
|
+
constructor(region) {
|
|
10
|
+
this.configFile = "fjall/accounts-config.json";
|
|
11
|
+
// Ensure fjall directory exists
|
|
12
|
+
fs.mkdirSync("fjall", { recursive: true });
|
|
13
|
+
// Make API Call
|
|
14
|
+
const client = new client_organizations_1.OrganizationsClient({
|
|
15
|
+
region: region
|
|
16
|
+
});
|
|
17
|
+
const request = new client_organizations_1.ListAccountsCommand({
|
|
18
|
+
MaxResults: Number("20")
|
|
19
|
+
});
|
|
20
|
+
this.ready = new Promise((resolve, reject) => {
|
|
21
|
+
client
|
|
22
|
+
.send(request)
|
|
23
|
+
.then((result) => {
|
|
24
|
+
const configString = JSON.stringify(result.Accounts);
|
|
25
|
+
fs.writeFileSync(this.configFile, configString);
|
|
26
|
+
resolve(undefined);
|
|
27
|
+
})
|
|
28
|
+
.catch(reject);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getAccounts() {
|
|
32
|
+
const data = fs.readFileSync(this.configFile, "utf-8");
|
|
33
|
+
return JSON.parse(data);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.default = Accounts;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvZ2V0QXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3RUFJdUM7QUFDdkMseUJBQXlCO0FBRXpCOztHQUVHO0FBQ0gsTUFBcUIsUUFBUTtJQUszQixZQUFZLE1BQWM7UUFGbEIsZUFBVSxHQUFHLDRCQUE0QixDQUFDO1FBR2hELGdDQUFnQztRQUNoQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLGdCQUFnQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLDBDQUFtQixDQUFDO1lBQ3JDLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQ0FBbUIsQ0FBQztZQUN0QyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLE1BQU07aUJBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDYixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQWMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFoQ0QsMkJBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWNjb3VudCxcbiAgTGlzdEFjY291bnRzQ29tbWFuZCxcbiAgT3JnYW5pemF0aW9uc0NsaWVudFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuXG4vKipcbiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhbiBhc3luYyBjbGFzcyB0aGF0IHdpbGwgcmVzb2x2ZSB3aGVuIGEgc3ludGggaXMgcnVuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFjY291bnRzIHtcbiAgcHVibGljIHJlYWR5OiBQcm9taXNlPHZvaWQ+O1xuXG4gIHByaXZhdGUgY29uZmlnRmlsZSA9IFwiZmphbGwvYWNjb3VudHMtY29uZmlnLmpzb25cIjtcblxuICBjb25zdHJ1Y3RvcihyZWdpb246IHN0cmluZykge1xuICAgIC8vIEVuc3VyZSBmamFsbCBkaXJlY3RvcnkgZXhpc3RzXG4gICAgZnMubWtkaXJTeW5jKFwiZmphbGxcIiwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAvLyBNYWtlIEFQSSBDYWxsXG4gICAgY29uc3QgY2xpZW50ID0gbmV3IE9yZ2FuaXphdGlvbnNDbGllbnQoe1xuICAgICAgcmVnaW9uOiByZWdpb25cbiAgICB9KTtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IExpc3RBY2NvdW50c0NvbW1hbmQoe1xuICAgICAgTWF4UmVzdWx0czogTnVtYmVyKFwiMjBcIilcbiAgICB9KTtcbiAgICB0aGlzLnJlYWR5ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY2xpZW50XG4gICAgICAgIC5zZW5kKHJlcXVlc3QpXG4gICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb25maWdTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShyZXN1bHQuQWNjb3VudHMpO1xuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBjb25maWdTdHJpbmcpO1xuICAgICAgICAgIHJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRBY2NvdW50cygpOiBBY2NvdW50W10ge1xuICAgIGNvbnN0IGRhdGEgPSBmcy5yZWFkRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBcInV0Zi04XCIpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpIGFzIEFjY291bnRbXTtcbiAgfVxufVxuIl19
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const fs = require("fs");
|
|
4
4
|
class CidrBlock {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.configFile = "
|
|
7
|
-
// Ensure
|
|
8
|
-
fs.mkdirSync("
|
|
6
|
+
this.configFile = "fjall/cidr-config.json";
|
|
7
|
+
// Ensure fjall directory exists
|
|
8
|
+
fs.mkdirSync("fjall", { recursive: true });
|
|
9
9
|
// Import config, or create it if it doesn't exist
|
|
10
10
|
if (fs.existsSync(this.configFile)) {
|
|
11
11
|
const configString = fs.readFileSync(this.configFile, "utf-8");
|
|
@@ -39,4 +39,4 @@ class CidrBlock {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
exports.default = CidrBlock;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2lkci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9nZXRDaWRyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUJBQXlCO0FBTXpCLE1BQXFCLFNBQVM7SUFJNUI7UUFGUSxlQUFVLEdBQUcsd0JBQXdCLENBQUM7UUFHNUMsZ0NBQWdDO1FBQ2hDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0Msa0RBQWtEO1FBQ2xELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3ZDO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RCxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLG9DQUFvQztRQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFBWTtRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7U0FDRjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUF6Q0QsNEJBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5cbmludGVyZmFjZSBjaWRyVGFibGUge1xuICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaWRyQmxvY2sge1xuICBwcml2YXRlIGNpZHJCbG9jazogY2lkclRhYmxlO1xuICBwcml2YXRlIGNvbmZpZ0ZpbGUgPSBcImZqYWxsL2NpZHItY29uZmlnLmpzb25cIjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBFbnN1cmUgZmphbGwgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGZzLm1rZGlyU3luYyhcImZqYWxsXCIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgLy8gSW1wb3J0IGNvbmZpZywgb3IgY3JlYXRlIGl0IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICBpZiAoZnMuZXhpc3RzU3luYyh0aGlzLmNvbmZpZ0ZpbGUpKSB7XG4gICAgICBjb25zdCBjb25maWdTdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBcInV0Zi04XCIpO1xuICAgICAgdGhpcy5jaWRyQmxvY2sgPSBKU09OLnBhcnNlKGNvbmZpZ1N0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2lkckJsb2NrID0ge307XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAyNTU7IGkrKykge1xuICAgICAgICB0aGlzLmNpZHJCbG9ja1tgJHtpfS4wLjAuMC84YF0gPSB0cnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgY29uZmlnU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jaWRyQmxvY2ssIG51bGwsIDIpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLmNvbmZpZ0ZpbGUsIGNvbmZpZ1N0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVTdGF0ZSgpIHtcbiAgICAvLyBKU09OLWlmeSBjb25maWcgYW5kIHdyaXRlIHRvIGZpbGVcbiAgICBjb25zdCBjb25maWdTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmNpZHJCbG9jaywgbnVsbCwgMik7XG4gICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLmNvbmZpZ0ZpbGUsIGNvbmZpZ1N0cmluZyk7XG4gIH1cblxuICBnZXRDaWRyQmxvY2soKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5jaWRyQmxvY2spIHtcbiAgICAgIGlmICh0aGlzLmNpZHJCbG9ja1trZXldKSB7XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBcIjAuMC4wLjAvOFwiO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoY2lkckJsb2NrOiBzdHJpbmcsIHN0YXR1czogYm9vbGVhbikge1xuICAgIHRoaXMuY2lkckJsb2NrW2NpZHJCbG9ja10gPSBzdGF0dXM7XG4gICAgdGhpcy53cml0ZVN0YXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { Account } from "@aws-sdk/client-organizations";
|
|
1
2
|
interface Config {
|
|
2
3
|
environment: string;
|
|
3
|
-
|
|
4
|
+
accountId: string;
|
|
4
5
|
accountName: string;
|
|
5
6
|
region: string;
|
|
7
|
+
existingAccounts: Account[];
|
|
6
8
|
}
|
|
7
|
-
export declare function
|
|
9
|
+
export declare function getEnvironmentConfig(accountName: string): Config;
|
|
8
10
|
export declare function getConfig(): Config;
|
|
9
11
|
export default getConfig;
|
|
@@ -1,50 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getConfig = exports.
|
|
3
|
+
exports.getConfig = exports.getEnvironmentConfig = void 0;
|
|
4
4
|
const app_1 = require("../app");
|
|
5
5
|
const util_1 = require("@fjall/util");
|
|
6
|
-
function
|
|
6
|
+
function getEnvironmentConfig(accountName) {
|
|
7
7
|
const config = util_1.Config.loadConfig();
|
|
8
|
-
const providerAccount = config.getProviderAccount(
|
|
8
|
+
const providerAccount = config.getProviderAccount(accountName);
|
|
9
|
+
const existingAccounts = config.getExistingAccounts();
|
|
9
10
|
const region = process.env.AWS_REGION;
|
|
10
11
|
if (!providerAccount) {
|
|
11
|
-
console.error(`No provider account found for
|
|
12
|
-
throw new Error(`No provider account found for
|
|
12
|
+
console.error(`No provider account found for account: ${accountName}`);
|
|
13
|
+
throw new Error(`No provider account found for account: ${accountName}`);
|
|
13
14
|
}
|
|
14
15
|
if (!region) {
|
|
15
16
|
console.error("Variable AWS_REGION is not set in your environment, please specify");
|
|
16
17
|
throw new Error("Variable AWS_REGION is not set in your environment, please specify");
|
|
17
18
|
}
|
|
18
19
|
return {
|
|
19
|
-
environment: environment,
|
|
20
|
-
|
|
20
|
+
environment: providerAccount.environment,
|
|
21
|
+
accountId: providerAccount.id,
|
|
21
22
|
accountName: providerAccount.name,
|
|
22
|
-
region: region
|
|
23
|
+
region: region,
|
|
24
|
+
existingAccounts: existingAccounts
|
|
23
25
|
};
|
|
24
26
|
}
|
|
25
|
-
exports.
|
|
27
|
+
exports.getEnvironmentConfig = getEnvironmentConfig;
|
|
26
28
|
function getConfig() {
|
|
27
29
|
const app = app_1.default.getInstance();
|
|
28
30
|
// Get cdk deploy --context config
|
|
29
|
-
const env = app.node.tryGetContext("
|
|
31
|
+
const env = app.node.tryGetContext("accountName");
|
|
30
32
|
const config = util_1.Config.loadConfig();
|
|
31
33
|
const providerAccount = config.getProviderAccount(env);
|
|
34
|
+
const existingAccounts = config.getExistingAccounts();
|
|
32
35
|
const region = process.env.AWS_REGION;
|
|
33
36
|
if (!providerAccount) {
|
|
34
|
-
console.warn(`No provider account found for
|
|
35
|
-
throw new Error(`No provider account found for
|
|
37
|
+
console.warn(`No provider account found for account: ${env}`);
|
|
38
|
+
throw new Error(`No provider account found for account: ${env}`);
|
|
36
39
|
}
|
|
37
40
|
if (!region) {
|
|
38
41
|
console.error("Variable AWS_REGION is not set in your environment");
|
|
39
42
|
throw new Error("Variable AWS_REGION is not set in your environment");
|
|
40
43
|
}
|
|
41
44
|
return {
|
|
42
|
-
environment:
|
|
43
|
-
|
|
45
|
+
environment: providerAccount.environment,
|
|
46
|
+
accountId: providerAccount.id,
|
|
44
47
|
accountName: providerAccount.name,
|
|
45
|
-
region: region
|
|
48
|
+
region: region,
|
|
49
|
+
existingAccounts: existingAccounts
|
|
46
50
|
};
|
|
47
51
|
}
|
|
48
52
|
exports.getConfig = getConfig;
|
|
49
53
|
exports.default = getConfig;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxnQ0FBeUI7QUFDekIsc0NBQW9EO0FBVXBELFNBQWdCLG9CQUFvQixDQUFDLFdBQW1CO0lBQ3RELE1BQU0sTUFBTSxHQUFHLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUV0QyxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUMxRTtJQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUNYLG9FQUFvRSxDQUNyRSxDQUFDO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYixvRUFBb0UsQ0FDckUsQ0FBQztLQUNIO0lBRUQsT0FBTztRQUNMLFdBQVcsRUFBRSxlQUFlLENBQUMsV0FBVztRQUN4QyxTQUFTLEVBQUUsZUFBZSxDQUFDLEVBQUU7UUFDN0IsV0FBVyxFQUFFLGVBQWUsQ0FBQyxJQUFJO1FBQ2pDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsZ0JBQWdCLEVBQUUsZ0JBQWdCO0tBQ25DLENBQUM7QUFDSixDQUFDO0FBM0JELG9EQTJCQztBQUVELFNBQWdCLFNBQVM7SUFDdkIsTUFBTSxHQUFHLEdBQUcsYUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTlCLGtDQUFrQztJQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRCxNQUFNLE1BQU0sR0FBRyxhQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDdEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFFdEMsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDbEU7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztLQUN2RTtJQUVELE9BQU87UUFDTCxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7UUFDeEMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxFQUFFO1FBQzdCLFdBQVcsRUFBRSxlQUFlLENBQUMsSUFBSTtRQUNqQyxNQUFNLEVBQUUsTUFBTTtRQUNkLGdCQUFnQixFQUFFLGdCQUFnQjtLQUNuQyxDQUFDO0FBQ0osQ0FBQztBQTVCRCw4QkE0QkM7QUFDRCxrQkFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1vcmdhbml6YXRpb25zXCI7XG5cbmltcG9ydCBBcHAgZnJvbSBcIi4uL2FwcFwiO1xuaW1wb3J0IHsgQ29uZmlnIGFzIEZqYWxsQ29uZmlnIH0gZnJvbSBcIkBmamFsbC91dGlsXCI7XG5cbmludGVyZmFjZSBDb25maWcge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGV4aXN0aW5nQWNjb3VudHM6IEFjY291bnRbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudmlyb25tZW50Q29uZmlnKGFjY291bnROYW1lOiBzdHJpbmcpOiBDb25maWcge1xuICBjb25zdCBjb25maWcgPSBGamFsbENvbmZpZy5sb2FkQ29uZmlnKCk7XG4gIGNvbnN0IHByb3ZpZGVyQWNjb3VudCA9IGNvbmZpZy5nZXRQcm92aWRlckFjY291bnQoYWNjb3VudE5hbWUpO1xuICBjb25zdCBleGlzdGluZ0FjY291bnRzID0gY29uZmlnLmdldEV4aXN0aW5nQWNjb3VudHMoKTtcbiAgY29uc3QgcmVnaW9uID0gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcblxuICBpZiAoIXByb3ZpZGVyQWNjb3VudCkge1xuICAgIGNvbnNvbGUuZXJyb3IoYE5vIHByb3ZpZGVyIGFjY291bnQgZm91bmQgZm9yIGFjY291bnQ6ICR7YWNjb3VudE5hbWV9YCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBwcm92aWRlciBhY2NvdW50IGZvdW5kIGZvciBhY2NvdW50OiAke2FjY291bnROYW1lfWApO1xuICB9XG5cbiAgaWYgKCFyZWdpb24pIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgXCJWYXJpYWJsZSBBV1NfUkVHSU9OIGlzIG5vdCBzZXQgaW4geW91ciBlbnZpcm9ubWVudCwgcGxlYXNlIHNwZWNpZnlcIlxuICAgICk7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJWYXJpYWJsZSBBV1NfUkVHSU9OIGlzIG5vdCBzZXQgaW4geW91ciBlbnZpcm9ubWVudCwgcGxlYXNlIHNwZWNpZnlcIlxuICAgICk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVudmlyb25tZW50OiBwcm92aWRlckFjY291bnQuZW52aXJvbm1lbnQsXG4gICAgYWNjb3VudElkOiBwcm92aWRlckFjY291bnQuaWQsXG4gICAgYWNjb3VudE5hbWU6IHByb3ZpZGVyQWNjb3VudC5uYW1lLFxuICAgIHJlZ2lvbjogcmVnaW9uLFxuICAgIGV4aXN0aW5nQWNjb3VudHM6IGV4aXN0aW5nQWNjb3VudHNcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZygpOiBDb25maWcge1xuICBjb25zdCBhcHAgPSBBcHAuZ2V0SW5zdGFuY2UoKTtcblxuICAvLyBHZXQgY2RrIGRlcGxveSAtLWNvbnRleHQgY29uZmlnXG4gIGNvbnN0IGVudiA9IGFwcC5ub2RlLnRyeUdldENvbnRleHQoXCJhY2NvdW50TmFtZVwiKTtcblxuICBjb25zdCBjb25maWcgPSBGamFsbENvbmZpZy5sb2FkQ29uZmlnKCk7XG4gIGNvbnN0IHByb3ZpZGVyQWNjb3VudCA9IGNvbmZpZy5nZXRQcm92aWRlckFjY291bnQoZW52KTtcbiAgY29uc3QgZXhpc3RpbmdBY2NvdW50cyA9IGNvbmZpZy5nZXRFeGlzdGluZ0FjY291bnRzKCk7XG4gIGNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52LkFXU19SRUdJT047XG5cbiAgaWYgKCFwcm92aWRlckFjY291bnQpIHtcbiAgICBjb25zb2xlLndhcm4oYE5vIHByb3ZpZGVyIGFjY291bnQgZm91bmQgZm9yIGFjY291bnQ6ICR7ZW52fWApO1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gcHJvdmlkZXIgYWNjb3VudCBmb3VuZCBmb3IgYWNjb3VudDogJHtlbnZ9YCk7XG4gIH1cblxuICBpZiAoIXJlZ2lvbikge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJWYXJpYWJsZSBBV1NfUkVHSU9OIGlzIG5vdCBzZXQgaW4geW91ciBlbnZpcm9ubWVudFwiKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJWYXJpYWJsZSBBV1NfUkVHSU9OIGlzIG5vdCBzZXQgaW4geW91ciBlbnZpcm9ubWVudFwiKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW52aXJvbm1lbnQ6IHByb3ZpZGVyQWNjb3VudC5lbnZpcm9ubWVudCxcbiAgICBhY2NvdW50SWQ6IHByb3ZpZGVyQWNjb3VudC5pZCxcbiAgICBhY2NvdW50TmFtZTogcHJvdmlkZXJBY2NvdW50Lm5hbWUsXG4gICAgcmVnaW9uOiByZWdpb24sXG4gICAgZXhpc3RpbmdBY2NvdW50czogZXhpc3RpbmdBY2NvdW50c1xuICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgZ2V0Q29uZmlnO1xuIl19
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const fs = require("fs");
|
|
4
4
|
class UsersConfig {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.configFile = "
|
|
6
|
+
this.configFile = "fjall/users-config.json";
|
|
7
7
|
if (!fs.existsSync(this.configFile)) {
|
|
8
8
|
throw new Error(`Config file ${this.configFile} does not exist`);
|
|
9
9
|
}
|
|
@@ -15,4 +15,4 @@ class UsersConfig {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.default = UsersConfig;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnNDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvdXNlcnNDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFHekIsTUFBcUIsV0FBVztJQUk5QjtRQUhRLGVBQVUsR0FBRyx5QkFBeUIsQ0FBQztRQUk3QyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxVQUFVLGlCQUFpQixDQUFDLENBQUM7U0FDbEU7UUFFRCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQWhCRCw4QkFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiLi4vY29uZmlnL2F3cy9pZGVudGl0eUNlbnRlclVzZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXNlcnNDb25maWcge1xuICBwcml2YXRlIGNvbmZpZ0ZpbGUgPSBcImZqYWxsL3VzZXJzLWNvbmZpZy5qc29uXCI7XG4gIHB1YmxpYyB1c2VyczogVXNlcltdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmNvbmZpZ0ZpbGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlICR7dGhpcy5jb25maWdGaWxlfSBkb2VzIG5vdCBleGlzdGApO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKHRoaXMuY29uZmlnRmlsZSwgXCJ1dGYtOFwiKTtcbiAgICB0aGlzLnVzZXJzID0gSlNPTi5wYXJzZShmaWxlQ29udGVudCk7XG4gIH1cblxuICBnZXRVc2VycygpIHtcbiAgICByZXR1cm4gdGhpcy51c2VycztcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/components-infrastructure",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"bin": {
|
|
5
5
|
"infrastructure": "bin/infrastructure.js"
|
|
6
6
|
},
|
|
@@ -12,27 +12,27 @@
|
|
|
12
12
|
"dist/lib"
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
|
-
"deploy:
|
|
16
|
-
"list:
|
|
17
|
-
"destroy:
|
|
18
|
-
"synth:
|
|
19
|
-
"diff:
|
|
20
|
-
"deploy:dev": "npx cdk deploy -c
|
|
21
|
-
"list:dev": "npx cdk list -c
|
|
22
|
-
"destroy:dev": "npx cdk destroy -c
|
|
23
|
-
"synth:dev": "npx cdk synthesize -c
|
|
24
|
-
"deploy:stag": "npx cdk deploy -c
|
|
25
|
-
"list:stag": "npx cdk list -c
|
|
26
|
-
"destroy:stag": "npx cdk destroy -c
|
|
27
|
-
"synth:stag": "npx cdk synthesize -c
|
|
28
|
-
"deploy:prod": "npx cdk deploy -c
|
|
29
|
-
"list:prod": "npx cdk list -c
|
|
30
|
-
"destroy:prod": "npx cdk destroy -c
|
|
31
|
-
"synth:prod": "npx cdk synthesize -c
|
|
32
|
-
"deploy:plat": "npx cdk deploy -c
|
|
33
|
-
"list:plat": "npx cdk list -c
|
|
34
|
-
"destroy:plat": "npx cdk destroy -c
|
|
35
|
-
"synth:plat": "npx cdk synthesize -c
|
|
15
|
+
"deploy:fjall": "npx cdk deploy -c accountName=fjall",
|
|
16
|
+
"list:fjall": "npx cdk list -c accountName=fjall",
|
|
17
|
+
"destroy:fjall": "npx cdk destroy -c accountName=fjall",
|
|
18
|
+
"synth:fjall": "npx cdk synthesize -c accountName=fjall",
|
|
19
|
+
"diff:fjall": "npx cdk diff -c accountName=fjall",
|
|
20
|
+
"deploy:dev": "npx cdk deploy -c accountName=development",
|
|
21
|
+
"list:dev": "npx cdk list -c accountName=development",
|
|
22
|
+
"destroy:dev": "npx cdk destroy -c accountName=development",
|
|
23
|
+
"synth:dev": "npx cdk synthesize -c accountName=development",
|
|
24
|
+
"deploy:stag": "npx cdk deploy -c accountName=staging",
|
|
25
|
+
"list:stag": "npx cdk list -c accountName=staging",
|
|
26
|
+
"destroy:stag": "npx cdk destroy -c accountName=staging",
|
|
27
|
+
"synth:stag": "npx cdk synthesize -c accountName=staging",
|
|
28
|
+
"deploy:prod": "npx cdk deploy -c accountName=production",
|
|
29
|
+
"list:prod": "npx cdk list -c accountName=production",
|
|
30
|
+
"destroy:prod": "npx cdk destroy -c accountName=production",
|
|
31
|
+
"synth:prod": "npx cdk synthesize -c accountName=production",
|
|
32
|
+
"deploy:plat": "npx cdk deploy -c accountName=platform",
|
|
33
|
+
"list:plat": "npx cdk list -c accountName=platform",
|
|
34
|
+
"destroy:plat": "npx cdk destroy -c accountName=platform",
|
|
35
|
+
"synth:plat": "npx cdk synthesize -c accountName=platform",
|
|
36
36
|
"publish": "npm run build && npm publish --access restricted",
|
|
37
37
|
"build": "tsc",
|
|
38
38
|
"watch": "tsc -w",
|
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"typescript": "~4.9.4"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@aws-sdk/client-cost-explorer": "^3.
|
|
57
|
-
"@
|
|
56
|
+
"@aws-sdk/client-cost-explorer": "^3.717.0",
|
|
57
|
+
"@aws-sdk/client-organizations": "^3.716.0",
|
|
58
|
+
"@fjall/util": "^0.1.16",
|
|
58
59
|
"@pepperize/cdk-organizations": "^0.7.135",
|
|
59
60
|
"aws-cdk": "^2.146.0",
|
|
60
61
|
"aws-cdk-lib": "^2.146.0",
|
|
@@ -62,5 +63,8 @@
|
|
|
62
63
|
"constructs": "^10.0.0",
|
|
63
64
|
"source-map-support": "^0.5.21",
|
|
64
65
|
"uuid": "^9.0.0"
|
|
66
|
+
},
|
|
67
|
+
"overrides": {
|
|
68
|
+
"@smithy/core": "2.5.5"
|
|
65
69
|
}
|
|
66
70
|
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DelegateHostedZoneRole = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const iam_1 = require("../../resources/aws/iam");
|
|
6
|
-
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
-
const customResources = require("aws-cdk-lib/custom-resources");
|
|
8
|
-
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
9
|
-
// TODO: Automatically import when a domain is imported, updated or created
|
|
10
|
-
const domains = ["Z08225072O6SFKZASVL1U"];
|
|
11
|
-
class DelegateHostedZoneRole extends aws_cdk_lib_1.Stack {
|
|
12
|
-
constructor(scope, id) {
|
|
13
|
-
super(scope, id);
|
|
14
|
-
const getHostedZoneArn = (domains) => {
|
|
15
|
-
const hostedZoneArn = [];
|
|
16
|
-
for (const domain of domains) {
|
|
17
|
-
hostedZoneArn.push(`arn:aws:route53:::hostedzone/${domain}`);
|
|
18
|
-
}
|
|
19
|
-
return hostedZoneArn;
|
|
20
|
-
};
|
|
21
|
-
const listHostedZones = new awsCustomResource_1.AwsCustomResource(this, "listHostedZones", {
|
|
22
|
-
functionName: "listHostedZones",
|
|
23
|
-
onCreate: {
|
|
24
|
-
service: "route-53",
|
|
25
|
-
action: "ListHostedZonesByNameCommand",
|
|
26
|
-
physicalResourceId: customResources.PhysicalResourceId.of("listHostedZones")
|
|
27
|
-
},
|
|
28
|
-
onUpdate: {
|
|
29
|
-
service: "route-53",
|
|
30
|
-
action: "ListHostedZonesByNameCommand",
|
|
31
|
-
physicalResourceId: customResources.PhysicalResourceId.of("HostedZoneId")
|
|
32
|
-
},
|
|
33
|
-
resourceType: "Custom::ListHostedZones",
|
|
34
|
-
policy: customResources.AwsCustomResourcePolicy.fromStatements([
|
|
35
|
-
new aws_iam_1.PolicyStatement({
|
|
36
|
-
actions: ["route53:ListHostedZonesByName"],
|
|
37
|
-
resources: ["*"],
|
|
38
|
-
effect: aws_iam_1.Effect.ALLOW
|
|
39
|
-
})
|
|
40
|
-
])
|
|
41
|
-
});
|
|
42
|
-
new aws_cdk_lib_1.CfnOutput(this, "HostedZoneIds", {
|
|
43
|
-
key: "HostedZoneIds",
|
|
44
|
-
value: listHostedZones.getResponseField("HostedZoneId"),
|
|
45
|
-
exportName: "HostedZoneIds"
|
|
46
|
-
});
|
|
47
|
-
const role = new iam_1.Role(this, "DelegateHostedZoneRole", {
|
|
48
|
-
assumedBy: new aws_iam_1.OrganizationPrincipal(aws_cdk_lib_1.Fn.importValue("OrganisationId")),
|
|
49
|
-
roleName: "DelegateHostedZoneRole",
|
|
50
|
-
inlinePolicies: {
|
|
51
|
-
["listHostedZones"]: new aws_iam_1.PolicyDocument({
|
|
52
|
-
statements: [
|
|
53
|
-
new aws_iam_1.PolicyStatement({
|
|
54
|
-
actions: ["route53:ListHostedZonesByName"],
|
|
55
|
-
resources: ["*"]
|
|
56
|
-
})
|
|
57
|
-
]
|
|
58
|
-
}),
|
|
59
|
-
["changeResourceRecordSets"]: new aws_iam_1.PolicyDocument({
|
|
60
|
-
statements: [
|
|
61
|
-
new aws_iam_1.PolicyStatement({
|
|
62
|
-
actions: ["route53:ChangeResourceRecordSets"],
|
|
63
|
-
resources: getHostedZoneArn(domains)
|
|
64
|
-
})
|
|
65
|
-
]
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
new aws_cdk_lib_1.CfnOutput(this, "DelegateHostedZoneRoleArn", {
|
|
70
|
-
key: "DelegateHostedZoneRoleArn",
|
|
71
|
-
value: role.roleArn,
|
|
72
|
-
exportName: "DelegateHostedZoneRoleArn"
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.DelegateHostedZoneRole = DelegateHostedZoneRole;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGVIb3N0ZWRab25lUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2RlbGVnYXRlSG9zdGVkWm9uZVJvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW1EO0FBRW5ELGlEQUErQztBQUMvQyxpREFLNkI7QUFDN0IsZ0VBQWdFO0FBQ2hFLHVGQUFvRjtBQUVwRiwyRUFBMkU7QUFDM0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTFDLE1BQWEsc0JBQXVCLFNBQVEsbUJBQUs7SUFDL0MsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBaUIsRUFBRSxFQUFFO1lBQzdDLE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQztZQUVuQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsYUFBYSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUM5RDtZQUNELE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JFLFlBQVksRUFBRSxpQkFBaUI7WUFDL0IsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUUsOEJBQThCO2dCQUN0QyxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUMzRDtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsTUFBTSxFQUFFLDhCQUE4QjtnQkFDdEMsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQ3hEO1lBQ0QsWUFBWSxFQUFFLHlCQUF5QjtZQUN2QyxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0QsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUNoQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO2lCQUNyQixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxlQUFlO1lBQ3BCLEtBQUssRUFBRSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO1lBQ3ZELFVBQVUsRUFBRSxlQUFlO1NBQzVCLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLElBQUksVUFBSSxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUNwRCxTQUFTLEVBQUUsSUFBSSwrQkFBcUIsQ0FBQyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RFLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsY0FBYyxFQUFFO2dCQUNkLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLHdCQUFjLENBQUM7b0JBQ3RDLFVBQVUsRUFBRTt3QkFDVixJQUFJLHlCQUFlLENBQUM7NEJBQ2xCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDOzRCQUMxQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7eUJBQ2pCLENBQUM7cUJBQ0g7aUJBQ0YsQ0FBQztnQkFDRixDQUFDLDBCQUEwQixDQUFDLEVBQUUsSUFBSSx3QkFBYyxDQUFDO29CQUMvQyxVQUFVLEVBQUU7d0JBQ1YsSUFBSSx5QkFBZSxDQUFDOzRCQUNsQixPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzs0QkFDN0MsU0FBUyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQzt5QkFDckMsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFO1lBQy9DLEdBQUcsRUFBRSwyQkFBMkI7WUFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ25CLFVBQVUsRUFBRSwyQkFBMkI7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEVELHdEQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgRm4sIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbVwiO1xuaW1wb3J0IHtcbiAgRWZmZWN0LFxuICBPcmdhbml6YXRpb25QcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuLy8gVE9ETzogQXV0b21hdGljYWxseSBpbXBvcnQgd2hlbiBhIGRvbWFpbiBpcyBpbXBvcnRlZCwgdXBkYXRlZCBvciBjcmVhdGVkXG5jb25zdCBkb21haW5zID0gW1wiWjA4MjI1MDcyTzZTRktaQVNWTDFVXCJdO1xuXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVIb3N0ZWRab25lUm9sZSBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBnZXRIb3N0ZWRab25lQXJuID0gKGRvbWFpbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBjb25zdCBob3N0ZWRab25lQXJuOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGRvbWFpbiBvZiBkb21haW5zKSB7XG4gICAgICAgIGhvc3RlZFpvbmVBcm4ucHVzaChgYXJuOmF3czpyb3V0ZTUzOjo6aG9zdGVkem9uZS8ke2RvbWFpbn1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBob3N0ZWRab25lQXJuO1xuICAgIH07XG5cbiAgICBjb25zdCBsaXN0SG9zdGVkWm9uZXMgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJsaXN0SG9zdGVkWm9uZXNcIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBcImxpc3RIb3N0ZWRab25lc1wiLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJyb3V0ZS01M1wiLFxuICAgICAgICBhY3Rpb246IFwiTGlzdEhvc3RlZFpvbmVzQnlOYW1lQ29tbWFuZFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL1JvdXRlNTMuaHRtbCNsaXN0SG9zdGVkWm9uZXMtcHJvcGVydHlcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgIGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXCJsaXN0SG9zdGVkWm9uZXNcIilcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcInJvdXRlLTUzXCIsXG4gICAgICAgIGFjdGlvbjogXCJMaXN0SG9zdGVkWm9uZXNCeU5hbWVDb21tYW5kXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvUm91dGU1My5odG1sI2xpc3RIb3N0ZWRab25lcy1wcm9wZXJ0eVxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcIkhvc3RlZFpvbmVJZFwiKVxuICAgICAgfSxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Okxpc3RIb3N0ZWRab25lc1wiLFxuICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1dcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiSG9zdGVkWm9uZUlkc1wiLCB7XG4gICAgICBrZXk6IFwiSG9zdGVkWm9uZUlkc1wiLFxuICAgICAgdmFsdWU6IGxpc3RIb3N0ZWRab25lcy5nZXRSZXNwb25zZUZpZWxkKFwiSG9zdGVkWm9uZUlkXCIpLFxuICAgICAgZXhwb3J0TmFtZTogXCJIb3N0ZWRab25lSWRzXCJcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvbGUgPSBuZXcgUm9sZSh0aGlzLCBcIkRlbGVnYXRlSG9zdGVkWm9uZVJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLCAvLyBUT0RPOiBTb3VyY2UgZnJvbSBsb2NhbCBjb25maWcsIHJhdGhlciB0aGFuIGRlcGxveWluZyBpbiBlYWNoIHJlZ2lvblxuICAgICAgcm9sZU5hbWU6IFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZVwiLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW1wibGlzdEhvc3RlZFpvbmVzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcImNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogZ2V0SG9zdGVkWm9uZUFybihkb21haW5zKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiLCB7XG4gICAgICBrZXk6IFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiLFxuICAgICAgdmFsdWU6IHJvbGUucm9sZUFybixcbiAgICAgIGV4cG9ydE5hbWU6IFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IpamPool = void 0;
|
|
4
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
-
const ipamPool_1 = require("../../resources/aws/networking/ipamPool");
|
|
6
|
-
const CidrAllocation = {
|
|
7
|
-
production: "10.0.0.0/8",
|
|
8
|
-
staging: "80.0.0.0/8",
|
|
9
|
-
development: "150.0.0.0/8",
|
|
10
|
-
platform: "200.0.0.0/8",
|
|
11
|
-
businessContinuity: "210.0.0.0/8"
|
|
12
|
-
};
|
|
13
|
-
const IpamPrivateDefaultScopeId = aws_cdk_lib_1.Fn.importValue("IpamPrivateDefaultScopeId");
|
|
14
|
-
class IpamPool extends aws_cdk_lib_1.Stack {
|
|
15
|
-
constructor(scope, id) {
|
|
16
|
-
super(scope, id);
|
|
17
|
-
for (const [environment, cidrBlock] of Object.entries(CidrAllocation)) {
|
|
18
|
-
const ipamPool = new ipamPool_1.IpamPool(this, `${environment}IpamPool`, {
|
|
19
|
-
description: `${environment} IPAM pool - ${cidrBlock}`,
|
|
20
|
-
addressFamily: "ipv4",
|
|
21
|
-
ipamScopeId: IpamPrivateDefaultScopeId,
|
|
22
|
-
locale: environment == "businessContinuity" ? "eu-west-1" : "us-east-1",
|
|
23
|
-
allocationResourceTags: [
|
|
24
|
-
{
|
|
25
|
-
key: "fjall:operations:pool",
|
|
26
|
-
value: `${environment}`
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
autoImport: false,
|
|
30
|
-
provisionedCidrs: [{ cidr: cidrBlock }],
|
|
31
|
-
tags: [
|
|
32
|
-
{
|
|
33
|
-
key: "fjall:operations:pool",
|
|
34
|
-
value: "top-level"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
key: "fjall:costAllocation:environment",
|
|
38
|
-
value: `${environment}`
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
});
|
|
42
|
-
new aws_cdk_lib_1.CfnOutput(this, `${environment}IpamPoolId`, {
|
|
43
|
-
key: `${environment}IpamPoolId`,
|
|
44
|
-
value: ipamPool.attrIpamPoolId,
|
|
45
|
-
exportName: `${environment}IpamPoolId`
|
|
46
|
-
});
|
|
47
|
-
new aws_cdk_lib_1.CfnOutput(this, `${environment}IpamPoolArn`, {
|
|
48
|
-
key: `${environment}IpamPoolArn`,
|
|
49
|
-
value: ipamPool.attrArn,
|
|
50
|
-
exportName: `${environment}IpamPoolArn`
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.IpamPool = IpamPool;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pcGFtUG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBbUQ7QUFHbkQsc0VBQW9GO0FBRXBGLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLGtCQUFrQixFQUFFLGFBQWE7Q0FDbEMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUU5RSxNQUFhLFFBQVMsU0FBUSxtQkFBSztJQUNqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLEtBQUssTUFBTSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3JFLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLFVBQVUsRUFBRTtnQkFDakUsV0FBVyxFQUFFLEdBQUcsV0FBVyxnQkFBZ0IsU0FBUyxFQUFFO2dCQUN0RCxhQUFhLEVBQUUsTUFBTTtnQkFDckIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsTUFBTSxFQUFFLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXO2dCQUN2RSxzQkFBc0IsRUFBRTtvQkFDdEI7d0JBQ0UsR0FBRyxFQUFFLHVCQUF1Qjt3QkFDNUIsS0FBSyxFQUFFLEdBQUcsV0FBVyxFQUFFO3FCQUN4QjtpQkFDRjtnQkFDRCxVQUFVLEVBQUUsS0FBSztnQkFDakIsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxFQUFFO29CQUNKO3dCQUNFLEdBQUcsRUFBRSx1QkFBdUI7d0JBQzVCLEtBQUssRUFBRSxXQUFXO3FCQUNuQjtvQkFDRDt3QkFDRSxHQUFHLEVBQUUsa0NBQWtDO3dCQUN2QyxLQUFLLEVBQUUsR0FBRyxXQUFXLEVBQUU7cUJBQ3hCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLFdBQVcsWUFBWSxFQUFFO2dCQUM5QyxHQUFHLEVBQUUsR0FBRyxXQUFXLFlBQVk7Z0JBQy9CLEtBQUssRUFBRSxRQUFRLENBQUMsY0FBYztnQkFDOUIsVUFBVSxFQUFFLEdBQUcsV0FBVyxZQUFZO2FBQ3ZDLENBQUMsQ0FBQztZQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLGFBQWEsRUFBRTtnQkFDL0MsR0FBRyxFQUFFLEdBQUcsV0FBVyxhQUFhO2dCQUNoQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3ZCLFVBQVUsRUFBRSxHQUFHLFdBQVcsYUFBYTthQUN4QyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRjtBQTNDRCw0QkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbiwgU3RhY2ssIENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgSXBhbVBvb2wgYXMgaXBhbVBvb2xDbGFzcyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaXBhbVBvb2xcIjtcblxuY29uc3QgQ2lkckFsbG9jYXRpb24gPSB7XG4gIHByb2R1Y3Rpb246IFwiMTAuMC4wLjAvOFwiLFxuICBzdGFnaW5nOiBcIjgwLjAuMC4wLzhcIixcbiAgZGV2ZWxvcG1lbnQ6IFwiMTUwLjAuMC4wLzhcIixcbiAgcGxhdGZvcm06IFwiMjAwLjAuMC4wLzhcIixcbiAgYnVzaW5lc3NDb250aW51aXR5OiBcIjIxMC4wLjAuMC84XCJcbn07XG5cbmNvbnN0IElwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWQgPSBGbi5pbXBvcnRWYWx1ZShcIklwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWRcIik7XG5cbmV4cG9ydCBjbGFzcyBJcGFtUG9vbCBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBmb3IgKGNvbnN0IFtlbnZpcm9ubWVudCwgY2lkckJsb2NrXSBvZiBPYmplY3QuZW50cmllcyhDaWRyQWxsb2NhdGlvbikpIHtcbiAgICAgIGNvbnN0IGlwYW1Qb29sID0gbmV3IGlwYW1Qb29sQ2xhc3ModGhpcywgYCR7ZW52aXJvbm1lbnR9SXBhbVBvb2xgLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHtlbnZpcm9ubWVudH0gSVBBTSBwb29sIC0gJHtjaWRyQmxvY2t9YCxcbiAgICAgICAgYWRkcmVzc0ZhbWlseTogXCJpcHY0XCIsXG4gICAgICAgIGlwYW1TY29wZUlkOiBJcGFtUHJpdmF0ZURlZmF1bHRTY29wZUlkLFxuICAgICAgICBsb2NhbGU6IGVudmlyb25tZW50ID09IFwiYnVzaW5lc3NDb250aW51aXR5XCIgPyBcImV1LXdlc3QtMVwiIDogXCJ1cy1lYXN0LTFcIixcbiAgICAgICAgYWxsb2NhdGlvblJlc291cmNlVGFnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgICAgICAgIHZhbHVlOiBgJHtlbnZpcm9ubWVudH1gXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBhdXRvSW1wb3J0OiBmYWxzZSxcbiAgICAgICAgcHJvdmlzaW9uZWRDaWRyczogW3sgY2lkcjogY2lkckJsb2NrIH1dLFxuICAgICAgICB0YWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgICAgdmFsdWU6IFwidG9wLWxldmVsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgICAgICAgdmFsdWU6IGAke2Vudmlyb25tZW50fWBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2Vudmlyb25tZW50fUlwYW1Qb29sSWRgLCB7XG4gICAgICAgIGtleTogYCR7ZW52aXJvbm1lbnR9SXBhbVBvb2xJZGAsXG4gICAgICAgIHZhbHVlOiBpcGFtUG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7ZW52aXJvbm1lbnR9SXBhbVBvb2xJZGBcbiAgICAgIH0pO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYCwge1xuICAgICAgICBrZXk6IGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYCxcbiAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJBcm4sXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2Vudmlyb25tZW50fUlwYW1Qb29sQXJuYFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|