@fjall/components-infrastructure 0.1.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/README.md +68 -0
- package/dist/index.js +18 -0
- package/dist/lib/app.d.ts +6 -0
- package/dist/lib/app.js +19 -0
- package/dist/lib/config/aws/base/costAllocationTags.d.ts +5 -0
- package/dist/lib/config/aws/base/costAllocationTags.js +57 -0
- package/dist/lib/config/aws/base/iamIdentityCenter.d.ts +5 -0
- package/dist/lib/config/aws/base/iamIdentityCenter.js +86 -0
- package/dist/lib/config/aws/base/identityCenter.d.ts +5 -0
- package/dist/lib/config/aws/base/identityCenter.js +90 -0
- package/dist/lib/config/aws/base/ipam.d.ts +5 -0
- package/dist/lib/config/aws/base/ipam.js +29 -0
- package/dist/lib/config/aws/base/ipamPool.d.ts +5 -0
- package/dist/lib/config/aws/base/ipamPool.js +46 -0
- package/dist/lib/examples/custom-resources/lambda/aws-cost-allocation-tags/awsCostAllocationTagsLambda.d.ts +2 -0
- package/dist/lib/examples/custom-resources/lambda/aws-cost-allocation-tags/awsCostAllocationTagsLambda.js +62 -0
- package/dist/lib/examples/cutomResourceExample.d.ts +6 -0
- package/dist/lib/examples/cutomResourceExample.js +45 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/patterns/aws/customResource.d.ts +7 -0
- package/dist/lib/patterns/aws/customResource.js +28 -0
- package/dist/lib/patterns/aws/index.d.ts +2 -0
- package/dist/lib/patterns/aws/index.js +19 -0
- package/dist/lib/patterns/aws/multiEnvironmentOrganisation.d.ts +33 -0
- package/dist/lib/patterns/aws/multiEnvironmentOrganisation.js +107 -0
- package/dist/lib/patterns/aws/webApp.d.ts +17 -0
- package/dist/lib/patterns/aws/webApp.js +36 -0
- package/dist/lib/resources/aws/awsStack.d.ts +36 -0
- package/dist/lib/resources/aws/awsStack.js +86 -0
- package/dist/lib/resources/aws/compute/__tests__/fargate.test.d.ts +1 -0
- package/dist/lib/resources/aws/compute/__tests__/fargate.test.js +21 -0
- package/dist/lib/resources/aws/compute/fargate.d.ts +23 -0
- package/dist/lib/resources/aws/compute/fargate.js +50 -0
- package/dist/lib/resources/aws/compute/lambda.d.ts +18 -0
- package/dist/lib/resources/aws/compute/lambda.js +28 -0
- package/dist/lib/resources/aws/constant/__tests__/vpc.test.d.ts +1 -0
- package/dist/lib/resources/aws/constant/__tests__/vpc.test.js +13 -0
- package/dist/lib/resources/aws/constant/ecr.d.ts +12 -0
- package/dist/lib/resources/aws/constant/ecr.js +29 -0
- package/dist/lib/resources/aws/constant/vpc.d.ts +18 -0
- package/dist/lib/resources/aws/constant/vpc.js +53 -0
- package/dist/lib/resources/aws/iam/assignment.d.ts +5 -0
- package/dist/lib/resources/aws/iam/assignment.js +13 -0
- package/dist/lib/resources/aws/iam/group.d.ts +5 -0
- package/dist/lib/resources/aws/iam/group.js +15 -0
- package/dist/lib/resources/aws/iam/iamRole.d.ts +5 -0
- package/dist/lib/resources/aws/iam/iamRole.js +18 -0
- package/dist/lib/resources/aws/iam/permissionSet.d.ts +5 -0
- package/dist/lib/resources/aws/iam/permissionSet.js +13 -0
- package/dist/lib/resources/aws/iam/role.d.ts +5 -0
- package/dist/lib/resources/aws/iam/role.js +18 -0
- package/dist/lib/resources/aws/logging/logGroup.d.ts +9 -0
- package/dist/lib/resources/aws/logging/logGroup.js +24 -0
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +5 -0
- package/dist/lib/resources/aws/networking/hostedZone.js +20 -0
- package/dist/lib/resources/aws/networking/ipam.d.ts +5 -0
- package/dist/lib/resources/aws/networking/ipam.js +15 -0
- package/dist/lib/resources/aws/networking/ipamPool.d.ts +9 -0
- package/dist/lib/resources/aws/networking/ipamPool.js +35 -0
- package/dist/lib/resources/aws/store/database.d.ts +13 -0
- package/dist/lib/resources/aws/store/database.js +29 -0
- package/dist/lib/resources/aws/store/rds.d.ts +25 -0
- package/dist/lib/resources/aws/store/rds.js +90 -0
- package/dist/lib/resources/aws/utilities/awsCustomResource.d.ts +6 -0
- package/dist/lib/resources/aws/utilities/awsCustomResource.js +24 -0
- package/dist/lib/resources/aws/utilities/cfnOutput.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/cfnOutput.js +16 -0
- package/dist/lib/resources/aws/utilities/customResource.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/customResource.js +13 -0
- package/dist/lib/resources/aws/utilities/customResourceProvider.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/customResourceProvider.js +19 -0
- package/dist/lib/utils/addSuffixToEmail.d.ts +1 -0
- package/dist/lib/utils/addSuffixToEmail.js +7 -0
- package/dist/lib/utils/getConfig.d.ts +7 -0
- package/dist/lib/utils/getConfig.js +22 -0
- package/package.json +59 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SingletonFunction, Code, Runtime } from "aws-cdk-lib/aws-lambda";
|
|
2
|
+
import { PolicyDocument } from "aws-cdk-lib/aws-iam";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { Role } from "../iam/role";
|
|
5
|
+
export interface lambdaSingletonFunctionProps {
|
|
6
|
+
code: Code;
|
|
7
|
+
handler: string;
|
|
8
|
+
roleDescription: string;
|
|
9
|
+
runtime: Runtime;
|
|
10
|
+
uuid?: string;
|
|
11
|
+
inlinePolicy: {
|
|
12
|
+
[name: string]: PolicyDocument;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare class lambdaSingletonFunction extends SingletonFunction {
|
|
16
|
+
role: Role;
|
|
17
|
+
constructor(scope: Construct, id: string, props: lambdaSingletonFunctionProps);
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lambdaSingletonFunction = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
6
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
8
|
+
const role_1 = require("../iam/role");
|
|
9
|
+
class lambdaSingletonFunction extends aws_lambda_1.SingletonFunction {
|
|
10
|
+
constructor(scope, id, props) {
|
|
11
|
+
super(scope, id, {
|
|
12
|
+
...props,
|
|
13
|
+
uuid: (0, uuid_1.v4)(),
|
|
14
|
+
timeout: aws_cdk_lib_1.Duration.seconds(300),
|
|
15
|
+
runtime: props.runtime
|
|
16
|
+
});
|
|
17
|
+
this.role = new role_1.Role(this, `${id}LambdaRole`, {
|
|
18
|
+
assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
|
|
19
|
+
description: props.roleDescription || `${id} Lambda IAM role`,
|
|
20
|
+
inlinePolicies: props.inlinePolicy,
|
|
21
|
+
managedPolicies: [
|
|
22
|
+
aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaBasicExecutionRole")
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.lambdaSingletonFunction = lambdaSingletonFunction;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLHVEQUEwRTtBQUMxRSxpREFJNkI7QUFFN0IsK0JBQWtDO0FBRWxDLHNDQUFtQztBQWFuQyxNQUFhLHVCQUF3QixTQUFRLDhCQUFpQjtJQUc1RCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFtQztRQUVuQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLElBQUksRUFBRSxJQUFBLFNBQUksR0FBRTtZQUNaLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDOUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7WUFDNUMsU0FBUyxFQUFFLElBQUksMEJBQWdCLENBQUMsc0JBQXNCLENBQUM7WUFDdkQsV0FBVyxFQUFFLEtBQUssQ0FBQyxlQUFlLElBQUksR0FBRyxFQUFFLGtCQUFrQjtZQUM3RCxjQUFjLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDbEMsZUFBZSxFQUFFO2dCQUNmLHVCQUFhLENBQUMsd0JBQXdCLENBQ3BDLDBDQUEwQyxDQUMzQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMUJELDBEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBTaW5nbGV0b25GdW5jdGlvbiwgQ29kZSwgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQge1xuICBQb2xpY3lEb2N1bWVudCxcbiAgU2VydmljZVByaW5jaXBhbCxcbiAgTWFuYWdlZFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uL2lhbS9yb2xlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgbGFtYmRhU2luZ2xldG9uRnVuY3Rpb25Qcm9wcyB7XG4gIGNvZGU6IENvZGU7XG4gIGhhbmRsZXI6IHN0cmluZztcbiAgcm9sZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHJ1bnRpbWU6IFJ1bnRpbWU7XG4gIHV1aWQ/OiBzdHJpbmc7XG4gIGlubGluZVBvbGljeToge1xuICAgIFtuYW1lOiBzdHJpbmddOiBQb2xpY3lEb2N1bWVudDtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIGxhbWJkYVNpbmdsZXRvbkZ1bmN0aW9uIGV4dGVuZHMgU2luZ2xldG9uRnVuY3Rpb24ge1xuICBwdWJsaWMgcm9sZTogUm9sZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IGxhbWJkYVNpbmdsZXRvbkZ1bmN0aW9uUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHV1aWQ6IHV1aWQoKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIHJ1bnRpbWU6IHByb3BzLnJ1bnRpbWVcbiAgICB9KTtcblxuICAgIHRoaXMucm9sZSA9IG5ldyBSb2xlKHRoaXMsIGAke2lkfUxhbWJkYVJvbGVgLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwibGFtYmRhLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMucm9sZURlc2NyaXB0aW9uIHx8IGAke2lkfSBMYW1iZGEgSUFNIHJvbGVgLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHByb3BzLmlubGluZVBvbGljeSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcInNlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGVcIlxuICAgICAgICApXG4gICAgICBdXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
4
|
+
const awsStack_1 = require("../../awsStack");
|
|
5
|
+
const vpc_1 = require("../vpc");
|
|
6
|
+
describe("VPC", () => {
|
|
7
|
+
it("creates VPC construct", () => {
|
|
8
|
+
const awsStack = new awsStack_1.default("Test").addNetwork(vpc_1.Vpc.build("VPC"));
|
|
9
|
+
const template = assertions_1.Template.fromStack(awsStack.getStack());
|
|
10
|
+
expect(template.toJSON()).toMatchSnapshot();
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9jb25zdGFudC9fX3Rlc3RzX18vdnBjLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBa0Q7QUFDbEQsNkNBQXNDO0FBQ3RDLGdDQUE2QjtBQUU3QixRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNuQixFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IEF3c1N0YWNrIGZyb20gXCIuLi8uLi9hd3NTdGFja1wiO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSBcIi4uL3ZwY1wiO1xuXG5kZXNjcmliZShcIlZQQ1wiLCAoKSA9PiB7XG4gIGl0KFwiY3JlYXRlcyBWUEMgY29uc3RydWN0XCIsICgpID0+IHtcbiAgICBjb25zdCBhd3NTdGFjayA9IG5ldyBBd3NTdGFjayhcIlRlc3RcIikuYWRkTmV0d29yayhWcGMuYnVpbGQoXCJWUENcIikpO1xuXG4gICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soYXdzU3RhY2suZ2V0U3RhY2soKSk7XG4gICAgZXhwZWN0KHRlbXBsYXRlLnRvSlNPTigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { Repository, RepositoryProps } from "aws-cdk-lib/aws-ecr";
|
|
3
|
+
import { StackBuilder } from "../awsStack";
|
|
4
|
+
interface EcrProps {
|
|
5
|
+
}
|
|
6
|
+
export default class Ecr extends Repository {
|
|
7
|
+
private outputs;
|
|
8
|
+
constructor(scope: Construct, id: string, props?: EcrProps);
|
|
9
|
+
static getRepositoryProps(props?: EcrProps): RepositoryProps;
|
|
10
|
+
static build(id: string, props?: EcrProps): (scope: StackBuilder) => Ecr;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const aws_ecr_1 = require("aws-cdk-lib/aws-ecr");
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
class Ecr extends aws_ecr_1.Repository {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, Ecr.getRepositoryProps(props));
|
|
8
|
+
this.outputs = [];
|
|
9
|
+
this.outputs.push(new aws_cdk_lib_1.CfnOutput(this, "RepositoryName", {
|
|
10
|
+
value: this.repositoryName,
|
|
11
|
+
exportName: "RepositoryName"
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
static getRepositoryProps(props) {
|
|
16
|
+
// todo: lifeCycleRules
|
|
17
|
+
// todo: Encryption & EncryptionKey (default is AWS managed KMS key)
|
|
18
|
+
return {
|
|
19
|
+
imageScanOnPush: true,
|
|
20
|
+
imageTagMutability: aws_ecr_1.TagMutability.MUTABLE,
|
|
21
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static build(id, props) {
|
|
25
|
+
return (scope) => new Ecr(scope.getStack(), id, props);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = Ecr;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29uc3RhbnQvZWNyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaURBSTZCO0FBQzdCLDZDQUF1RDtBQU12RCxNQUFxQixHQUFJLFNBQVEsb0JBQVU7SUFHekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQjtRQUN4RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUgxQyxZQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUtoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDZixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYztZQUMxQixVQUFVLEVBQUUsZ0JBQWdCO1NBQzdCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBZ0I7UUFDeEMsdUJBQXVCO1FBQ3ZCLG9FQUFvRTtRQUNwRSxPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUk7WUFDckIsa0JBQWtCLEVBQUUsdUJBQWEsQ0FBQyxPQUFPO1lBQ3pDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUFnQjtRQUN2QyxPQUFPLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUE1QkQsc0JBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIFJlcG9zaXRvcnksXG4gIFJlcG9zaXRvcnlQcm9wcyxcbiAgVGFnTXV0YWJpbGl0eVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9hd3NTdGFja1wiO1xuXG5pbnRlcmZhY2UgRWNyUHJvcHMge31cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWNyIGV4dGVuZHMgUmVwb3NpdG9yeSB7XG4gIHByaXZhdGUgb3V0cHV0czogQ2ZuT3V0cHV0W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEVjclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBFY3IuZ2V0UmVwb3NpdG9yeVByb3BzKHByb3BzKSk7XG5cbiAgICB0aGlzLm91dHB1dHMucHVzaChcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJSZXBvc2l0b3J5TmFtZVwiLCB7XG4gICAgICAgIHZhbHVlOiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICBleHBvcnROYW1lOiBcIlJlcG9zaXRvcnlOYW1lXCJcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgc3RhdGljIGdldFJlcG9zaXRvcnlQcm9wcyhwcm9wcz86IEVjclByb3BzKTogUmVwb3NpdG9yeVByb3BzIHtcbiAgICAvLyB0b2RvOiBsaWZlQ3ljbGVSdWxlc1xuICAgIC8vIHRvZG86IEVuY3J5cHRpb24gJiBFbmNyeXB0aW9uS2V5IChkZWZhdWx0IGlzIEFXUyBtYW5hZ2VkIEtNUyBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIGltYWdlU2Nhbk9uUHVzaDogdHJ1ZSxcbiAgICAgIGltYWdlVGFnTXV0YWJpbGl0eTogVGFnTXV0YWJpbGl0eS5NVVRBQkxFLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkKGlkOiBzdHJpbmcsIHByb3BzPzogRWNyUHJvcHMpOiAoc2NvcGU6IFN0YWNrQnVpbGRlcikgPT4gRWNyIHtcbiAgICByZXR1cm4gKHNjb3BlOiBTdGFja0J1aWxkZXIpID0+IG5ldyBFY3Ioc2NvcGUuZ2V0U3RhY2soKSwgaWQsIHByb3BzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
3
|
+
import { StackBuilder } from "../awsStack";
|
|
4
|
+
export declare class Vpc extends ec2.Vpc {
|
|
5
|
+
constructor(scope: Construct, id: string, props?: ec2.VpcProps);
|
|
6
|
+
static build(id: string, props?: ec2.VpcProps): (sb: StackBuilder) => Construct;
|
|
7
|
+
/**
|
|
8
|
+
* Imports a pre-existing VPC Resource into your Stack
|
|
9
|
+
*
|
|
10
|
+
* Before using an import method ensure you have set the account and region props
|
|
11
|
+
* when creating your AwsStack.
|
|
12
|
+
*
|
|
13
|
+
* @param id
|
|
14
|
+
* @param vpcStackName
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
static import(id: string, vpcStackName: string): (sb: StackBuilder) => Construct;
|
|
18
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Vpc = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
6
|
+
const logGroup_1 = require("../logging/logGroup");
|
|
7
|
+
class Vpc extends ec2.Vpc {
|
|
8
|
+
constructor(scope, id, props) {
|
|
9
|
+
super(scope, `vpc-${id}`, {
|
|
10
|
+
...props,
|
|
11
|
+
vpcName: `vpc-${id}`,
|
|
12
|
+
availabilityZones: ["us-east-1a", "us-east-1b", "us-east-1c"],
|
|
13
|
+
flowLogs: {
|
|
14
|
+
[`${id}VpcFlowLogs`]: {
|
|
15
|
+
destination: ec2.FlowLogDestination.toCloudWatchLogs(new logGroup_1.LogGroup(scope, `${id}FlowLogGroup`, {
|
|
16
|
+
logGroupName: `/vpc/flowlogs/vpc-${id}/`,
|
|
17
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
|
|
18
|
+
}))
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// ipAddresses: ec2.IpAddresses.awsIpamAllocation({
|
|
22
|
+
// ipv4IpamPoolId: "ipam-pool-0f0c5c711e4a9124c",
|
|
23
|
+
// ipv4NetmaskLength: 20,
|
|
24
|
+
// defaultSubnetIpv4NetmaskLength: 23
|
|
25
|
+
// })
|
|
26
|
+
});
|
|
27
|
+
aws_cdk_lib_1.Tags.of(this).add("Pool", "Production");
|
|
28
|
+
}
|
|
29
|
+
static build(id, props) {
|
|
30
|
+
return (sb) => {
|
|
31
|
+
return new this(sb.getStack(), id, props);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Imports a pre-existing VPC Resource into your Stack
|
|
36
|
+
*
|
|
37
|
+
* Before using an import method ensure you have set the account and region props
|
|
38
|
+
* when creating your AwsStack.
|
|
39
|
+
*
|
|
40
|
+
* @param id
|
|
41
|
+
* @param vpcStackName
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
static import(id, vpcStackName) {
|
|
45
|
+
return (sb) => {
|
|
46
|
+
return ec2.Vpc.fromLookup(sb.getStack(), id, {
|
|
47
|
+
vpcName: `${vpcStackName}/${id}`
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.Vpc = Vpc;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29uc3RhbnQvdnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUFrRDtBQUNsRCwyQ0FBMkM7QUFHM0Msa0RBQStDO0FBRS9DLE1BQWEsR0FBSSxTQUFRLEdBQUcsQ0FBQyxHQUFHO0lBQzlCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3hCLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNwQixpQkFBaUIsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDO1lBQzdELFFBQVEsRUFBRTtnQkFDUixDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsRUFBRTtvQkFDcEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxtQkFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFO3dCQUN2QyxZQUFZLEVBQUUscUJBQXFCLEVBQUUsR0FBRzt3QkFDeEMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztxQkFDckMsQ0FBQyxDQUNIO2lCQUNGO2FBQ0Y7WUFDRCxtREFBbUQ7WUFDbkQsbURBQW1EO1lBQ25ELDJCQUEyQjtZQUMzQix1Q0FBdUM7WUFDdkMsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQ1YsRUFBVSxFQUNWLEtBQW9CO1FBRXBCLE9BQU8sQ0FBQyxFQUFnQixFQUFFLEVBQUU7WUFDMUIsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUNYLEVBQVUsRUFDVixZQUFvQjtRQUVwQixPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDM0MsT0FBTyxFQUFFLEdBQUcsWUFBWSxJQUFJLEVBQUUsRUFBRTthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0REQsa0JBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRhZ3MsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuXG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSBcIi4uL2xvZ2dpbmcvbG9nR3JvdXBcIjtcblxuZXhwb3J0IGNsYXNzIFZwYyBleHRlbmRzIGVjMi5WcGMge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IGVjMi5WcGNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBgdnBjLSR7aWR9YCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB2cGNOYW1lOiBgdnBjLSR7aWR9YCxcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmVzOiBbXCJ1cy1lYXN0LTFhXCIsIFwidXMtZWFzdC0xYlwiLCBcInVzLWVhc3QtMWNcIl0sXG4gICAgICBmbG93TG9nczoge1xuICAgICAgICBbYCR7aWR9VnBjRmxvd0xvZ3NgXToge1xuICAgICAgICAgIGRlc3RpbmF0aW9uOiBlYzIuRmxvd0xvZ0Rlc3RpbmF0aW9uLnRvQ2xvdWRXYXRjaExvZ3MoXG4gICAgICAgICAgICBuZXcgTG9nR3JvdXAoc2NvcGUsIGAke2lkfUZsb3dMb2dHcm91cGAsIHtcbiAgICAgICAgICAgICAgbG9nR3JvdXBOYW1lOiBgL3ZwYy9mbG93bG9ncy92cGMtJHtpZH0vYCxcbiAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gaXBBZGRyZXNzZXM6IGVjMi5JcEFkZHJlc3Nlcy5hd3NJcGFtQWxsb2NhdGlvbih7XG4gICAgICAvLyAgIGlwdjRJcGFtUG9vbElkOiBcImlwYW0tcG9vbC0wZjBjNWM3MTFlNGE5MTI0Y1wiLFxuICAgICAgLy8gICBpcHY0TmV0bWFza0xlbmd0aDogMjAsXG4gICAgICAvLyAgIGRlZmF1bHRTdWJuZXRJcHY0TmV0bWFza0xlbmd0aDogMjNcbiAgICAgIC8vIH0pXG4gICAgfSk7XG5cbiAgICBUYWdzLm9mKHRoaXMpLmFkZChcIlBvb2xcIiwgXCJQcm9kdWN0aW9uXCIpO1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM/OiBlYzIuVnBjUHJvcHNcbiAgKTogKHNiOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCB7XG4gICAgcmV0dXJuIChzYjogU3RhY2tCdWlsZGVyKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IHRoaXMoc2IuZ2V0U3RhY2soKSwgaWQsIHByb3BzKTtcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBJbXBvcnRzIGEgcHJlLWV4aXN0aW5nIFZQQyBSZXNvdXJjZSBpbnRvIHlvdXIgU3RhY2tcbiAgICpcbiAgICogQmVmb3JlIHVzaW5nIGFuIGltcG9ydCBtZXRob2QgZW5zdXJlIHlvdSBoYXZlIHNldCB0aGUgYWNjb3VudCBhbmQgcmVnaW9uIHByb3BzXG4gICAqICB3aGVuIGNyZWF0aW5nIHlvdXIgQXdzU3RhY2suXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gdnBjU3RhY2tOYW1lXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgaW1wb3J0KFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdnBjU3RhY2tOYW1lOiBzdHJpbmdcbiAgKTogKHNiOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCB7XG4gICAgcmV0dXJuIChzYjogU3RhY2tCdWlsZGVyKSA9PiB7XG4gICAgICByZXR1cm4gZWMyLlZwYy5mcm9tTG9va3VwKHNiLmdldFN0YWNrKCksIGlkLCB7XG4gICAgICAgIHZwY05hbWU6IGAke3ZwY1N0YWNrTmFtZX0vJHtpZH1gXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Assignment = void 0;
|
|
4
|
+
const aws_sso_1 = require("aws-cdk-lib/aws-sso");
|
|
5
|
+
class Assignment extends aws_sso_1.CfnAssignment {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.Assignment = Assignment;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWdubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9hc3NpZ25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUF3RTtBQUd4RSxNQUFhLFVBQVcsU0FBUSx1QkFBYTtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBTkQsZ0NBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5Bc3NpZ25tZW50LCBDZm5Bc3NpZ25tZW50UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzb1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGNsYXNzIEFzc2lnbm1lbnQgZXh0ZW5kcyBDZm5Bc3NpZ25tZW50IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENmbkFzc2lnbm1lbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Group = void 0;
|
|
4
|
+
const aws_identitystore_1 = require("aws-cdk-lib/aws-identitystore");
|
|
5
|
+
class Group extends aws_identitystore_1.CfnGroup {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props,
|
|
9
|
+
description: props.description || `Iam Identity Center Group ${props.displayName}`,
|
|
10
|
+
identityStoreId: props.identityStoreId
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.Group = Group;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pYW0vZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXdFO0FBR3hFLE1BQWEsS0FBTSxTQUFRLDRCQUFRO0lBQ2pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSw2QkFBNkIsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNsRixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBUkQsc0JBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5Hcm91cCwgQ2ZuR3JvdXBQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pZGVudGl0eXN0b3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBHcm91cCBleHRlbmRzIENmbkdyb3VwIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENmbkdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGBJYW0gSWRlbnRpdHkgQ2VudGVyIEdyb3VwICR7cHJvcHMuZGlzcGxheU5hbWV9YCxcbiAgICAgIGlkZW50aXR5U3RvcmVJZDogcHJvcHMuaWRlbnRpdHlTdG9yZUlkXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IamRole = void 0;
|
|
4
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
5
|
+
class IamRole extends aws_iam_1.Role {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props,
|
|
9
|
+
assumedBy: props.assumedBy,
|
|
10
|
+
description: props.description,
|
|
11
|
+
inlinePolicies: props.inlinePolicies,
|
|
12
|
+
path: props.path,
|
|
13
|
+
roleName: props.roleName
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.IamRole = IamRole;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pYW1Sb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFzRDtBQUd0RCxNQUFhLE9BQVEsU0FBUSxjQUFJO0lBQy9CLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0I7UUFDeEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVhELDBCQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9sZSwgUm9sZVByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBJYW1Sb2xlIGV4dGVuZHMgUm9sZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSb2xlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgYXNzdW1lZEJ5OiBwcm9wcy5hc3N1bWVkQnksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBpbmxpbmVQb2xpY2llczogcHJvcHMuaW5saW5lUG9saWNpZXMsXG4gICAgICBwYXRoOiBwcm9wcy5wYXRoLFxuICAgICAgcm9sZU5hbWU6IHByb3BzLnJvbGVOYW1lXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionSet = void 0;
|
|
4
|
+
const aws_sso_1 = require("aws-cdk-lib/aws-sso");
|
|
5
|
+
class PermissionSet extends aws_sso_1.CfnPermissionSet {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.PermissionSet = PermissionSet;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvblNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9wZXJtaXNzaW9uU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE4RTtBQUc5RSxNQUFhLGFBQWMsU0FBUSwwQkFBZ0I7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQU5ELHNDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUGVybWlzc2lvblNldCwgQ2ZuUGVybWlzc2lvblNldFByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc29cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2V0IGV4dGVuZHMgQ2ZuUGVybWlzc2lvblNldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZm5QZXJtaXNzaW9uU2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Role = void 0;
|
|
4
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
5
|
+
class Role extends iam.Role {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props,
|
|
9
|
+
assumedBy: props.assumedBy,
|
|
10
|
+
description: props.description,
|
|
11
|
+
inlinePolicies: props.inlinePolicies,
|
|
12
|
+
path: props.path,
|
|
13
|
+
roleName: props.roleName
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Role = Role;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9yb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUEyQztBQUczQyxNQUFhLElBQUssU0FBUSxHQUFHLENBQUMsSUFBSTtJQUNoQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFYRCxvQkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGNsYXNzIFJvbGUgZXh0ZW5kcyBpYW0uUm9sZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBpYW0uUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGFzc3VtZWRCeTogcHJvcHMuYXNzdW1lZEJ5LFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHByb3BzLmlubGluZVBvbGljaWVzLFxuICAgICAgcGF0aDogcHJvcHMucGF0aCxcbiAgICAgIHJvbGVOYW1lOiBwcm9wcy5yb2xlTmFtZVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Stack, StackProps } from "aws-cdk-lib";
|
|
2
|
+
import * as logs from "aws-cdk-lib/aws-logs";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export declare class LogGroup extends logs.LogGroup {
|
|
5
|
+
constructor(scope: Construct, id: string, props?: logs.LogGroupProps);
|
|
6
|
+
}
|
|
7
|
+
export declare class LogGroupStack extends Stack {
|
|
8
|
+
constructor(scope: Construct, id: string, params: logs.LogGroupProps, props?: StackProps);
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogGroupStack = exports.LogGroup = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const logs = require("aws-cdk-lib/aws-logs");
|
|
6
|
+
class LogGroup extends logs.LogGroup {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, {
|
|
9
|
+
...props,
|
|
10
|
+
logGroupName: props?.logGroupName
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.LogGroup = LogGroup;
|
|
15
|
+
class LogGroupStack extends aws_cdk_lib_1.Stack {
|
|
16
|
+
constructor(scope, id, params, props) {
|
|
17
|
+
super(scope, id, props);
|
|
18
|
+
new LogGroup(this, id, {
|
|
19
|
+
logGroupName: params.logGroupName
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.LogGroupStack = LogGroupStack;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nR3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9sb2dnaW5nL2xvZ0dyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUErQztBQUMvQyw2Q0FBNkM7QUFHN0MsTUFBYSxRQUFTLFNBQVEsSUFBSSxDQUFDLFFBQVE7SUFDekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFQRCw0QkFPQztBQUVELE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBQ3RDLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLE1BQTBCLEVBQzFCLEtBQWtCO1FBRWxCLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDckIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWJELHNDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0eyBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBMb2dHcm91cCBleHRlbmRzIGxvZ3MuTG9nR3JvdXAge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBsb2dHcm91cE5hbWU6IHByb3BzPy5sb2dHcm91cE5hbWVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9nR3JvdXBTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHBhcmFtczogbG9ncy5Mb2dHcm91cFByb3BzLFxuICAgIHByb3BzPzogU3RhY2tQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIG5ldyBMb2dHcm91cCh0aGlzLCBpZCwge1xuICAgICAgbG9nR3JvdXBOYW1lOiBwYXJhbXMubG9nR3JvdXBOYW1lXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HostedZone = void 0;
|
|
4
|
+
const route53 = require("aws-cdk-lib/aws-route53");
|
|
5
|
+
const logGroup_1 = require("../logging/logGroup");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
class HostedZone extends route53.HostedZone {
|
|
8
|
+
constructor(scope, id, props) {
|
|
9
|
+
super(scope, id, {
|
|
10
|
+
...props,
|
|
11
|
+
zoneName: props.zoneName,
|
|
12
|
+
queryLogsLogGroupArn: new logGroup_1.LogGroup(scope, `${props.zoneName}QueryLogGroup`, {
|
|
13
|
+
logGroupName: `/hostedzone/querylogs/${props.zoneName}/`,
|
|
14
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
|
|
15
|
+
}).logGroupArn
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.HostedZone = HostedZone;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBbUQ7QUFDbkQsa0RBQStDO0FBQy9DLDZDQUE0QztBQUU1QyxNQUFhLFVBQVcsU0FBUSxPQUFPLENBQUMsVUFBVTtJQUNoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLG9CQUFvQixFQUFFLElBQUksbUJBQVEsQ0FDaEMsS0FBSyxFQUNMLEdBQUcsS0FBSyxDQUFDLFFBQVEsZUFBZSxFQUNoQztnQkFDRSxZQUFZLEVBQUUseUJBQXlCLEtBQUssQ0FBQyxRQUFRLEdBQUc7Z0JBQ3hELGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87YUFDckMsQ0FDRixDQUFDLFdBQVc7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFmRCxnQ0FlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgTG9nR3JvdXAgfSBmcm9tIFwiLi4vbG9nZ2luZy9sb2dHcm91cFwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZSBleHRlbmRzIHJvdXRlNTMuSG9zdGVkWm9uZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiByb3V0ZTUzLkhvc3RlZFpvbmUpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgem9uZU5hbWU6IHByb3BzLnpvbmVOYW1lLFxuICAgICAgcXVlcnlMb2dzTG9nR3JvdXBBcm46IG5ldyBMb2dHcm91cChcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGAke3Byb3BzLnpvbmVOYW1lfVF1ZXJ5TG9nR3JvdXBgLFxuICAgICAgICB7XG4gICAgICAgICAgbG9nR3JvdXBOYW1lOiBgL2hvc3RlZHpvbmUvcXVlcnlsb2dzLyR7cHJvcHMuem9uZU5hbWV9L2AsXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAgICAgIH1cbiAgICAgICkubG9nR3JvdXBBcm5cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Ipam = void 0;
|
|
4
|
+
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
5
|
+
// Toggle on IPAM
|
|
6
|
+
class Ipam extends ec2.CfnIPAM {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, {
|
|
9
|
+
...props,
|
|
10
|
+
description: `Default IPAM`
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.Ipam = Ipam;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaXBhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQ0FBMkM7QUFFM0MsaUJBQWlCO0FBQ2pCLE1BQWEsSUFBSyxTQUFRLEdBQUcsQ0FBQyxPQUFPO0lBQ25DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixXQUFXLEVBQUUsY0FBYztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFQRCxvQkFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuXG4vLyBUb2dnbGUgb24gSVBBTVxuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBlYzIuQ2ZuSVBBTSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogZWMyLkNmbklQQU1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZXNjcmlwdGlvbjogYERlZmF1bHQgSVBBTWBcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Stack, StackProps } from "aws-cdk-lib";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
4
|
+
export declare class IpamPool extends ec2.CfnIPAMPool {
|
|
5
|
+
constructor(scope: Construct, id: string, props: ec2.CfnIPAMPoolProps);
|
|
6
|
+
}
|
|
7
|
+
export declare class IpamPoolStack extends Stack {
|
|
8
|
+
constructor(scope: Construct, id: string, params: ec2.CfnIPAMPoolProps, props?: StackProps);
|
|
9
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IpamPoolStack = exports.IpamPool = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
6
|
+
class IpamPool extends ec2.CfnIPAMPool {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, {
|
|
9
|
+
...props,
|
|
10
|
+
description: props.description,
|
|
11
|
+
addressFamily: props.addressFamily,
|
|
12
|
+
ipamScopeId: props.ipamScopeId,
|
|
13
|
+
allocationResourceTags: props.allocationResourceTags,
|
|
14
|
+
autoImport: true,
|
|
15
|
+
provisionedCidrs: props.provisionedCidrs,
|
|
16
|
+
tags: props.tags,
|
|
17
|
+
locale: props.locale
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.IpamPool = IpamPool;
|
|
22
|
+
class IpamPoolStack extends aws_cdk_lib_1.Stack {
|
|
23
|
+
constructor(scope, id, params, props) {
|
|
24
|
+
super(scope, id, props);
|
|
25
|
+
new IpamPool(this, id, {
|
|
26
|
+
description: params.description,
|
|
27
|
+
addressFamily: params.addressFamily,
|
|
28
|
+
ipamScopeId: params.ipamScopeId,
|
|
29
|
+
allocationResourceTags: params.allocationResourceTags,
|
|
30
|
+
locale: params.locale
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.IpamPoolStack = IpamPoolStack;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1Qb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFnRDtBQUVoRCwyQ0FBMkM7QUFFM0MsTUFBYSxRQUFTLFNBQVEsR0FBRyxDQUFDLFdBQVc7SUFDM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDcEQsVUFBVSxFQUFFLElBQUk7WUFDaEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWRELDRCQWNDO0FBRUQsTUFBYSxhQUFjLFNBQVEsbUJBQUs7SUFDdEMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsTUFBNEIsRUFDNUIsS0FBa0I7UUFFbEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNyQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1lBQ25DLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixzQkFBc0IsRUFBRSxNQUFNLENBQUMsc0JBQXNCO1lBQ3JELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqQkQsc0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuZXhwb3J0IGNsYXNzIElwYW1Qb29sIGV4dGVuZHMgZWMyLkNmbklQQU1Qb29sIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGVjMi5DZm5JUEFNUG9vbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGFkZHJlc3NGYW1pbHk6IHByb3BzLmFkZHJlc3NGYW1pbHksXG4gICAgICBpcGFtU2NvcGVJZDogcHJvcHMuaXBhbVNjb3BlSWQsXG4gICAgICBhbGxvY2F0aW9uUmVzb3VyY2VUYWdzOiBwcm9wcy5hbGxvY2F0aW9uUmVzb3VyY2VUYWdzLFxuICAgICAgYXV0b0ltcG9ydDogdHJ1ZSxcbiAgICAgIHByb3Zpc2lvbmVkQ2lkcnM6IHByb3BzLnByb3Zpc2lvbmVkQ2lkcnMsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgbG9jYWxlOiBwcm9wcy5sb2NhbGVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2xTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHBhcmFtczogZWMyLkNmbklQQU1Qb29sUHJvcHMsXG4gICAgcHJvcHM/OiBTdGFja1Byb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IElwYW1Qb29sKHRoaXMsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogcGFyYW1zLmRlc2NyaXB0aW9uLFxuICAgICAgYWRkcmVzc0ZhbWlseTogcGFyYW1zLmFkZHJlc3NGYW1pbHksXG4gICAgICBpcGFtU2NvcGVJZDogcGFyYW1zLmlwYW1TY29wZUlkLFxuICAgICAgYWxsb2NhdGlvblJlc291cmNlVGFnczogcGFyYW1zLmFsbG9jYXRpb25SZXNvdXJjZVRhZ3MsXG4gICAgICBsb2NhbGU6IHBhcmFtcy5sb2NhbGVcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { IConnectable, Vpc, Connections } from "aws-cdk-lib/aws-ec2";
|
|
3
|
+
import { StackBuilder } from "../awsStack";
|
|
4
|
+
interface DatabaseProps {
|
|
5
|
+
vpc: Vpc;
|
|
6
|
+
}
|
|
7
|
+
export default class Database extends Construct implements IConnectable {
|
|
8
|
+
private readonly resource;
|
|
9
|
+
connections: Connections;
|
|
10
|
+
constructor(scope: Construct, id: string, props: DatabaseProps);
|
|
11
|
+
static build(id: string, props?: DatabaseProps): (sb: StackBuilder) => Construct;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constructs_1 = require("constructs");
|
|
4
|
+
const rds_1 = require("./rds");
|
|
5
|
+
class Database extends constructs_1.Construct {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id);
|
|
8
|
+
//todo: intelligently create the right kind of database based
|
|
9
|
+
// on user properties
|
|
10
|
+
this.resource = new rds_1.default(scope, `${id}Rds`, {
|
|
11
|
+
vpc: props.vpc
|
|
12
|
+
});
|
|
13
|
+
this.connections = this.resource.connections;
|
|
14
|
+
}
|
|
15
|
+
//todo: move to generic 'resource' class
|
|
16
|
+
static build(id, props) {
|
|
17
|
+
return (sb) => {
|
|
18
|
+
const newProps = {
|
|
19
|
+
...props,
|
|
20
|
+
...{
|
|
21
|
+
vpc: sb.getNetwork() || props?.vpc
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return new this(sb.getStack(), id, newProps);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = Database;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yZS9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUF1QztBQUd2QywrQkFBd0I7QUFPeEIsTUFBcUIsUUFBUyxTQUFRLHNCQUFTO0lBSTdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiw2REFBNkQ7UUFDN0QscUJBQXFCO1FBRXJCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxhQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDekMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQ1YsRUFBVSxFQUNWLEtBQXFCO1FBRXJCLE9BQU8sQ0FBQyxFQUFnQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQWtCO2dCQUM5QixHQUFHLEtBQUs7Z0JBQ1IsR0FBRztvQkFDRCxHQUFHLEVBQUcsRUFBRSxDQUFDLFVBQVUsRUFBVSxJQUFJLEtBQUssRUFBRSxHQUFHO2lCQUM1QzthQUNGLENBQUM7WUFFRixPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakNELDJCQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQ29ubmVjdGFibGUsIFZwYywgQ29ubmVjdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuXG5pbXBvcnQgUmRzIGZyb20gXCIuL3Jkc1wiO1xuaW1wb3J0IHsgU3RhY2tCdWlsZGVyIH0gZnJvbSBcIi4uL2F3c1N0YWNrXCI7XG5cbmludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgdnBjOiBWcGM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNvbm5lY3RhYmxlIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogUmRzO1xuICBwdWJsaWMgY29ubmVjdGlvbnM6IENvbm5lY3Rpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vdG9kbzogaW50ZWxsaWdlbnRseSBjcmVhdGUgdGhlIHJpZ2h0IGtpbmQgb2YgZGF0YWJhc2UgYmFzZWRcbiAgICAvLyBvbiB1c2VyIHByb3BlcnRpZXNcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgUmRzKHNjb3BlLCBgJHtpZH1SZHNgLCB7XG4gICAgICB2cGM6IHByb3BzLnZwY1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMucmVzb3VyY2UuY29ubmVjdGlvbnM7XG4gIH1cblxuICAvL3RvZG86IG1vdmUgdG8gZ2VuZXJpYyAncmVzb3VyY2UnIGNsYXNzXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzPzogRGF0YWJhc2VQcm9wc1xuICApOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb3BzOiBEYXRhYmFzZVByb3BzID0ge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIHZwYzogKHNiLmdldE5ldHdvcmsoKSBhcyBWcGMpIHx8IHByb3BzPy52cGNcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIG5ldyB0aGlzKHNiLmdldFN0YWNrKCksIGlkLCBuZXdQcm9wcyk7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PostgresEngineVersion, MysqlEngineVersion } from "aws-cdk-lib/aws-rds";
|
|
2
|
+
import { InstanceClass, InstanceSize, Vpc, IConnectable, Connections } from "aws-cdk-lib/aws-ec2";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
interface RdsProps {
|
|
5
|
+
vpc: Vpc;
|
|
6
|
+
databaseName?: string;
|
|
7
|
+
version?: PostgresEngineVersion | MysqlEngineVersion;
|
|
8
|
+
port?: number;
|
|
9
|
+
instanceClass?: InstanceClass;
|
|
10
|
+
instanceSize?: InstanceSize;
|
|
11
|
+
snapshotRetentionInDays?: number;
|
|
12
|
+
retainSnapshotsOnDeletion?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export default class Rds extends Construct implements IConnectable {
|
|
15
|
+
private databaseInstance;
|
|
16
|
+
private outputs;
|
|
17
|
+
private secret;
|
|
18
|
+
private securityGroup;
|
|
19
|
+
connections: Connections;
|
|
20
|
+
constructor(scope: Construct, id: string, props: RdsProps);
|
|
21
|
+
private addDatabaseInstance;
|
|
22
|
+
private addSecretResource;
|
|
23
|
+
private addSecurityGroup;
|
|
24
|
+
}
|
|
25
|
+
export {};
|