@fjall/components-infrastructure 0.1.16 → 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.
Files changed (48) hide show
  1. package/dist/lib/config/aws/identityCenter.d.ts +1 -2
  2. package/dist/lib/config/aws/identityCenter.js +7 -2
  3. package/dist/lib/config/aws/identityCenterGroupMembership.d.ts +10 -0
  4. package/dist/lib/config/aws/identityCenterGroupMembership.js +96 -0
  5. package/dist/lib/config/aws/identityCenterUser.js +3 -3
  6. package/dist/lib/config/aws/index.d.ts +0 -1
  7. package/dist/lib/config/aws/index.js +1 -2
  8. package/dist/lib/config/aws/organisationsAccess.d.ts +10 -0
  9. package/dist/lib/config/aws/organisationsAccess.js +40 -0
  10. package/dist/lib/patterns/aws/managedIdentityCenter.d.ts +4 -0
  11. package/dist/lib/patterns/aws/managedIdentityCenter.js +24 -0
  12. package/dist/lib/patterns/aws/managedOrganisation.d.ts +1 -2
  13. package/dist/lib/patterns/aws/managedOrganisation.js +11 -12
  14. package/package.json +22 -22
  15. package/dist/lib/config/aws/delegateHostedZoneRole.d.ts +0 -5
  16. package/dist/lib/config/aws/delegateHostedZoneRole.js +0 -77
  17. package/dist/lib/config/aws/ipamPool.d.ts +0 -5
  18. package/dist/lib/config/aws/ipamPool.js +0 -56
  19. package/dist/lib/config/aws/ipamPoolResourceShare.d.ts +0 -5
  20. package/dist/lib/config/aws/ipamPoolResourceShare.js +0 -42
  21. package/dist/lib/config/aws/ramEnableSharing.d.ts +0 -5
  22. package/dist/lib/config/aws/ramEnableSharing.js +0 -35
  23. package/dist/lib/config/aws/users.d.ts +0 -5
  24. package/dist/lib/config/aws/users.js +0 -126
  25. package/dist/lib/config/fjall/hostedZones/fjall.io.d.ts +0 -10
  26. package/dist/lib/config/fjall/hostedZones/fjall.io.js +0 -25
  27. package/dist/lib/resources/aws/constant/ecr.d.ts +0 -12
  28. package/dist/lib/resources/aws/constant/ecr.js +0 -30
  29. package/dist/lib/resources/aws/constant/vpc.d.ts +0 -26
  30. package/dist/lib/resources/aws/constant/vpc.js +0 -63
  31. package/dist/lib/resources/aws/networking/hostedZone.d.ts +0 -21
  32. package/dist/lib/resources/aws/networking/hostedZone.js +0 -68
  33. package/dist/lib/resources/aws/store/alias.d.ts +0 -5
  34. package/dist/lib/resources/aws/store/alias.js +0 -13
  35. package/dist/lib/resources/aws/store/database.d.ts +0 -18
  36. package/dist/lib/resources/aws/store/database.js +0 -33
  37. package/dist/lib/resources/aws/store/index.d.ts +0 -7
  38. package/dist/lib/resources/aws/store/index.js +0 -24
  39. package/dist/lib/resources/aws/store/kms.d.ts +0 -14
  40. package/dist/lib/resources/aws/store/kms.js +0 -34
  41. package/dist/lib/resources/aws/store/parameter.d.ts +0 -26
  42. package/dist/lib/resources/aws/store/parameter.js +0 -100
  43. package/dist/lib/resources/aws/store/rds.d.ts +0 -25
  44. package/dist/lib/resources/aws/store/rds.js +0 -132
  45. package/dist/lib/resources/aws/store/s3.d.ts +0 -11
  46. package/dist/lib/resources/aws/store/s3.js +0 -43
  47. package/dist/lib/resources/aws/store/secret.d.ts +0 -26
  48. package/dist/lib/resources/aws/store/secret.js +0 -55
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImportedHostedZone = exports.SubdomainHostedZone = exports.HostedZone = void 0;
4
- const constructs_1 = require("constructs");
5
- const route53 = require("aws-cdk-lib/aws-route53");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const iam_1 = require("../iam");
8
- const getAccountId_1 = require("../../../utils/getAccountId");
9
- class HostedZone extends constructs_1.Construct {
10
- constructor(scope, id, props) {
11
- super(scope, id);
12
- const hostedZone = new route53.HostedZone(this, "FjallHostedZone", {
13
- zoneName: props.zoneName
14
- });
15
- const role = iam_1.Role.fromRoleArn(this, "delegateHostedZoneRole", aws_cdk_lib_1.Fn.importValue("DelegateHostedZoneRoleArn"));
16
- hostedZone.grantDelegation(role);
17
- new aws_cdk_lib_1.CfnOutput(this, `${props.zoneName.split(".").join("")}HostedZoneId`, {
18
- key: "HostedZoneId",
19
- value: hostedZone.hostedZoneId,
20
- exportName: `${props.zoneName.split(".").join("")}HostedZoneId`
21
- });
22
- }
23
- }
24
- exports.HostedZone = HostedZone;
25
- class SubdomainHostedZone extends constructs_1.Construct {
26
- constructor(scope, id, props) {
27
- super(scope, id);
28
- // DelegationRoleArn
29
- const delegationRoleArn = aws_cdk_lib_1.Stack.of(this).formatArn({
30
- account: (0, getAccountId_1.default)("production") || "TODO: Fail Gracefully",
31
- region: "",
32
- resource: "role",
33
- resourceName: "DelegateHostedZoneRole",
34
- service: "iam"
35
- });
36
- // Delegate Hosted Zone Role
37
- const hostedZoneDelegationRole = iam_1.Role.fromRoleArn(this, "hostedZoneDelegationRole", delegationRoleArn);
38
- // Subdomains
39
- const delegatedHostedZone = new route53.HostedZone(this, `${props.delegatedZone}HostedZone`, {
40
- zoneName: props.delegatedZone
41
- });
42
- new route53.CrossAccountZoneDelegationRecord(this, `${props.delegatedZone}DelegationRole`, {
43
- delegationRole: hostedZoneDelegationRole,
44
- delegatedZone: delegatedHostedZone,
45
- parentHostedZoneName: props.parentHostedZoneName
46
- });
47
- new aws_cdk_lib_1.CfnOutput(this, `${props.delegatedZone.split(".").join("")}HostedZoneId`, {
48
- key: "HostedZoneId",
49
- value: delegatedHostedZone.hostedZoneId,
50
- exportName: `${props.delegatedZone.split(".").join("")}HostedZoneId`
51
- });
52
- }
53
- }
54
- exports.SubdomainHostedZone = SubdomainHostedZone;
55
- class ImportedHostedZone extends constructs_1.Construct {
56
- constructor(scope, id, props) {
57
- super(scope, id);
58
- const importedHostedZone = route53.HostedZone.fromHostedZoneAttributes(this, "importedHostedZone", {
59
- hostedZoneId: props.hostedZoneId,
60
- zoneName: props.hostedZoneName
61
- });
62
- // Delegate Hosted Zone Role
63
- const role = iam_1.Role.fromRoleArn(this, "delegateHostedZoneRole", aws_cdk_lib_1.Fn.importValue("DelegateHostedZoneRoleArn"));
64
- importedHostedZone.grantDelegation(role);
65
- }
66
- }
67
- exports.ImportedHostedZone = ImportedHostedZone;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsbURBQW1EO0FBQ25ELDZDQUFtRDtBQUNuRCxnQ0FBOEI7QUFDOUIsOERBQXVEO0FBY3ZELE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ2pFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksR0FBRyxVQUFJLENBQUMsV0FBVyxDQUMzQixJQUFJLEVBQ0osd0JBQXdCLEVBQ3hCLGdCQUFFLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLENBQzVDLENBQUM7UUFFRixVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpDLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRTtZQUN2RSxHQUFHLEVBQUUsY0FBYztZQUNuQixLQUFLLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDOUIsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjO1NBQ2hFLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRCRCxnQ0FzQkM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBQ2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixvQkFBb0I7UUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakQsT0FBTyxFQUFFLElBQUEsc0JBQVksRUFBQyxZQUFZLENBQUMsSUFBSSx1QkFBdUI7WUFDOUQsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLE1BQU0sd0JBQXdCLEdBQUcsVUFBSSxDQUFDLFdBQVcsQ0FDL0MsSUFBSSxFQUNKLDBCQUEwQixFQUMxQixpQkFBaUIsQ0FDbEIsQ0FBQztRQUVGLGFBQWE7UUFDYixNQUFNLG1CQUFtQixHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FDaEQsSUFBSSxFQUNKLEdBQUcsS0FBSyxDQUFDLGFBQWEsWUFBWSxFQUNsQztZQUNFLFFBQVEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUM5QixDQUNGLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FDMUMsSUFBSSxFQUNKLEdBQUcsS0FBSyxDQUFDLGFBQWEsZ0JBQWdCLEVBQ3RDO1lBQ0UsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxhQUFhLEVBQUUsbUJBQW1CO1lBQ2xDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7U0FDakQsQ0FDRixDQUFDO1FBRUYsSUFBSSx1QkFBUyxDQUNYLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUN4RDtZQUNFLEdBQUcsRUFBRSxjQUFjO1lBQ25CLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3ZDLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYztTQUNyRSxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFqREQsa0RBaURDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxzQkFBUztJQUMvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUNwRSxJQUFJLEVBQ0osb0JBQW9CLEVBQ3BCO1lBQ0UsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFFBQVEsRUFBRSxLQUFLLENBQUMsY0FBYztTQUMvQixDQUNGLENBQUM7UUFFRiw0QkFBNEI7UUFDNUIsTUFBTSxJQUFJLEdBQUcsVUFBSSxDQUFDLFdBQVcsQ0FDM0IsSUFBSSxFQUNKLHdCQUF3QixFQUN4QixnQkFBRSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUM1QyxDQUFDO1FBRUYsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQXJCRCxnREFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgRm4sIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IGdldEFjY291bnRJZCBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZ2V0QWNjb3VudElkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgaG9zdGVkWm9uZVByb3BzIHtcbiAgem9uZU5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2Ugc3ViZG9tYWluSG9zdGVkWm9uZVByb3BzIHtcbiAgZGVsZWdhdGVkWm9uZTogc3RyaW5nO1xuICBwYXJlbnRIb3N0ZWRab25lTmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBpbXBvcnRlZEhvc3RlZFpvbmVQcm9wcyB7XG4gIGhvc3RlZFpvbmVJZDogc3RyaW5nO1xuICBob3N0ZWRab25lTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBob3N0ZWRab25lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IG5ldyByb3V0ZTUzLkhvc3RlZFpvbmUodGhpcywgXCJGamFsbEhvc3RlZFpvbmVcIiwge1xuICAgICAgem9uZU5hbWU6IHByb3BzLnpvbmVOYW1lXG4gICAgfSk7XG5cbiAgICBjb25zdCByb2xlID0gUm9sZS5mcm9tUm9sZUFybihcbiAgICAgIHRoaXMsXG4gICAgICBcImRlbGVnYXRlSG9zdGVkWm9uZVJvbGVcIixcbiAgICAgIEZuLmltcG9ydFZhbHVlKFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiKVxuICAgICk7XG5cbiAgICBob3N0ZWRab25lLmdyYW50RGVsZWdhdGlvbihyb2xlKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMuem9uZU5hbWUuc3BsaXQoXCIuXCIpLmpvaW4oXCJcIil9SG9zdGVkWm9uZUlkYCwge1xuICAgICAga2V5OiBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgdmFsdWU6IGhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkLFxuICAgICAgZXhwb3J0TmFtZTogYCR7cHJvcHMuem9uZU5hbWUuc3BsaXQoXCIuXCIpLmpvaW4oXCJcIil9SG9zdGVkWm9uZUlkYFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdWJkb21haW5Ib3N0ZWRab25lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IHN1YmRvbWFpbkhvc3RlZFpvbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBEZWxlZ2F0aW9uUm9sZUFyblxuICAgIGNvbnN0IGRlbGVnYXRpb25Sb2xlQXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIGFjY291bnQ6IGdldEFjY291bnRJZChcInByb2R1Y3Rpb25cIikgfHwgXCJUT0RPOiBGYWlsIEdyYWNlZnVsbHlcIixcbiAgICAgIHJlZ2lvbjogXCJcIixcbiAgICAgIHJlc291cmNlOiBcInJvbGVcIixcbiAgICAgIHJlc291cmNlTmFtZTogXCJEZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlXCIsXG4gICAgICBzZXJ2aWNlOiBcImlhbVwiXG4gICAgfSk7XG5cbiAgICAvLyBEZWxlZ2F0ZSBIb3N0ZWQgWm9uZSBSb2xlXG4gICAgY29uc3QgaG9zdGVkWm9uZURlbGVnYXRpb25Sb2xlID0gUm9sZS5mcm9tUm9sZUFybihcbiAgICAgIHRoaXMsXG4gICAgICBcImhvc3RlZFpvbmVEZWxlZ2F0aW9uUm9sZVwiLFxuICAgICAgZGVsZWdhdGlvblJvbGVBcm5cbiAgICApO1xuXG4gICAgLy8gU3ViZG9tYWluc1xuICAgIGNvbnN0IGRlbGVnYXRlZEhvc3RlZFpvbmUgPSBuZXcgcm91dGU1My5Ib3N0ZWRab25lKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlbGVnYXRlZFpvbmV9SG9zdGVkWm9uZWAsXG4gICAgICB7XG4gICAgICAgIHpvbmVOYW1lOiBwcm9wcy5kZWxlZ2F0ZWRab25lXG4gICAgICB9XG4gICAgKTtcblxuICAgIG5ldyByb3V0ZTUzLkNyb3NzQWNjb3VudFpvbmVEZWxlZ2F0aW9uUmVjb3JkKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlbGVnYXRlZFpvbmV9RGVsZWdhdGlvblJvbGVgLFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0aW9uUm9sZTogaG9zdGVkWm9uZURlbGVnYXRpb25Sb2xlLFxuICAgICAgICBkZWxlZ2F0ZWRab25lOiBkZWxlZ2F0ZWRIb3N0ZWRab25lLFxuICAgICAgICBwYXJlbnRIb3N0ZWRab25lTmFtZTogcHJvcHMucGFyZW50SG9zdGVkWm9uZU5hbWVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgbmV3IENmbk91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGAsXG4gICAgICB7XG4gICAgICAgIGtleTogXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgdmFsdWU6IGRlbGVnYXRlZEhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkLFxuICAgICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGBcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRlZEhvc3RlZFpvbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogaW1wb3J0ZWRIb3N0ZWRab25lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGltcG9ydGVkSG9zdGVkWm9uZSA9IHJvdXRlNTMuSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoXG4gICAgICB0aGlzLFxuICAgICAgXCJpbXBvcnRlZEhvc3RlZFpvbmVcIixcbiAgICAgIHtcbiAgICAgICAgaG9zdGVkWm9uZUlkOiBwcm9wcy5ob3N0ZWRab25lSWQsXG4gICAgICAgIHpvbmVOYW1lOiBwcm9wcy5ob3N0ZWRab25lTmFtZVxuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBEZWxlZ2F0ZSBIb3N0ZWQgWm9uZSBSb2xlXG4gICAgY29uc3Qgcm9sZSA9IFJvbGUuZnJvbVJvbGVBcm4oXG4gICAgICB0aGlzLFxuICAgICAgXCJkZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlXCIsXG4gICAgICBGbi5pbXBvcnRWYWx1ZShcIkRlbGVnYXRlSG9zdGVkWm9uZVJvbGVBcm5cIilcbiAgICApO1xuXG4gICAgaW1wb3J0ZWRIb3N0ZWRab25lLmdyYW50RGVsZWdhdGlvbihyb2xlKTtcbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { aws_kms as kms } from "aws-cdk-lib";
3
- export declare class Alias extends kms.Alias {
4
- constructor(scope: Construct, id: string, props: kms.AliasProps);
5
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Alias = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- class Alias extends aws_cdk_lib_1.aws_kms.Alias {
6
- constructor(scope, id, props) {
7
- super(scope, id, {
8
- ...props
9
- });
10
- }
11
- }
12
- exports.Alias = Alias;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yZS9hbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBNkM7QUFFN0MsTUFBYSxLQUFNLFNBQVEscUJBQUcsQ0FBQyxLQUFLO0lBQ2xDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFORCxzQkFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBhd3Nfa21zIGFzIGttcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5leHBvcnQgY2xhc3MgQWxpYXMgZXh0ZW5kcyBrbXMuQWxpYXMge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczoga21zLkFsaWFzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { Connections, IConnectable, Vpc } from "aws-cdk-lib/aws-ec2";
2
- import { Construct } from "constructs";
3
- import { StackBuilder } from "../awsStack";
4
- import { KeyValue } from "../compute/ecs";
5
- interface DatabaseProps {
6
- vpc: Vpc;
7
- securityGroupIds: string[];
8
- tags: KeyValue | undefined;
9
- buildkiteRoleArn?: string;
10
- }
11
- export default class Database extends Construct implements IConnectable {
12
- private readonly resource;
13
- connections: Connections;
14
- databaseSecretName: string;
15
- constructor(scope: Construct, id: string, props: DatabaseProps);
16
- static build(id: string, props?: Partial<DatabaseProps>): (sb: StackBuilder) => Construct;
17
- }
18
- export {};
@@ -1,33 +0,0 @@
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
- this.resource = new rds_1.default(scope, `${id}Rds`, {
9
- vpc: props.vpc,
10
- defaultDatabaseName: id.replace("Database", ""),
11
- tags: props.tags || {},
12
- securityGroupIds: props.securityGroupIds,
13
- buildkiteRoleArn: props.buildkiteRoleArn
14
- });
15
- this.connections = this.resource.connections;
16
- }
17
- //todo: move to generic 'resource' class
18
- static build(id, props) {
19
- return (sb) => {
20
- const newProps = {
21
- ...props,
22
- ...{
23
- vpc: sb.getNetwork() || props?.vpc,
24
- securityGroupIds: props?.securityGroupIds ?? [],
25
- tags: props?.tags
26
- }
27
- };
28
- return new this(sb.getStack(), id, newProps);
29
- };
30
- }
31
- }
32
- exports.default = Database;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yZS9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDJDQUF1QztBQUl2QywrQkFBd0I7QUFTeEIsTUFBcUIsUUFBUyxTQUFRLHNCQUFTO0lBSzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksYUFBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ3pDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUMvQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3RCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQy9DLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsTUFBTSxDQUFDLEtBQUssQ0FDVixFQUFVLEVBQ1YsS0FBOEI7UUFFOUIsT0FBTyxDQUFDLEVBQWdCLEVBQUUsRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBa0I7Z0JBQzlCLEdBQUcsS0FBSztnQkFDUixHQUFHO29CQUNELEdBQUcsRUFBRyxFQUFFLENBQUMsVUFBVSxFQUFVLElBQUksS0FBSyxFQUFFLEdBQUc7b0JBQzNDLGdCQUFnQixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsSUFBSSxFQUFFO29CQUMvQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUk7aUJBQ2xCO2FBQ0YsQ0FBQztZQUVGLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFyQ0QsMkJBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvbnMsIElDb25uZWN0YWJsZSwgVnBjIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9hd3NTdGFja1wiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vY29tcHV0ZS9lY3NcIjtcbmltcG9ydCBSZHMgZnJvbSBcIi4vcmRzXCI7XG5cbmludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgdnBjOiBWcGM7XG4gIHNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuICB0YWdzOiBLZXlWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgYnVpbGRraXRlUm9sZUFybj86IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ29ubmVjdGFibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBSZHM7XG4gIHB1YmxpYyBjb25uZWN0aW9uczogQ29ubmVjdGlvbnM7XG4gIHB1YmxpYyBkYXRhYmFzZVNlY3JldE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IFJkcyhzY29wZSwgYCR7aWR9UmRzYCwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBkZWZhdWx0RGF0YWJhc2VOYW1lOiBpZC5yZXBsYWNlKFwiRGF0YWJhc2VcIiwgXCJcIiksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzIHx8IHt9LFxuICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cElkcyxcbiAgICAgIGJ1aWxka2l0ZVJvbGVBcm46IHByb3BzLmJ1aWxka2l0ZVJvbGVBcm5cbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLnJlc291cmNlLmNvbm5lY3Rpb25zO1xuICB9XG5cbiAgLy90b2RvOiBtb3ZlIHRvIGdlbmVyaWMgJ3Jlc291cmNlJyBjbGFzc1xuICBzdGF0aWMgYnVpbGQoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IFBhcnRpYWw8RGF0YWJhc2VQcm9wcz5cbiAgKTogKHNiOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCB7XG4gICAgcmV0dXJuIChzYjogU3RhY2tCdWlsZGVyKSA9PiB7XG4gICAgICBjb25zdCBuZXdQcm9wczogRGF0YWJhc2VQcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLntcbiAgICAgICAgICB2cGM6IChzYi5nZXROZXR3b3JrKCkgYXMgVnBjKSB8fCBwcm9wcz8udnBjLFxuICAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IHByb3BzPy5zZWN1cml0eUdyb3VwSWRzID8/IFtdLFxuICAgICAgICAgIHRhZ3M6IHByb3BzPy50YWdzXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBuZXcgdGhpcyhzYi5nZXRTdGFjaygpLCBpZCwgbmV3UHJvcHMpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export * from "./alias";
2
- export * from "./database";
3
- export * from "./kms";
4
- export * from "./parameter";
5
- export * from "./rds";
6
- export * from "./s3";
7
- export * from "./secret";
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./alias"), exports);
18
- __exportStar(require("./database"), exports);
19
- __exportStar(require("./kms"), exports);
20
- __exportStar(require("./parameter"), exports);
21
- __exportStar(require("./rds"), exports);
22
- __exportStar(require("./s3"), exports);
23
- __exportStar(require("./secret"), exports);
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLDZDQUEyQjtBQUMzQix3Q0FBc0I7QUFDdEIsOENBQTRCO0FBQzVCLHdDQUFzQjtBQUN0Qix1Q0FBcUI7QUFDckIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYWxpYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGFiYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9rbXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcmFtZXRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zM1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VjcmV0XCI7XG4iXX0=
@@ -1,14 +0,0 @@
1
- import { Alias, Key } from "aws-cdk-lib/aws-kms";
2
- import { Construct } from "constructs";
3
- import { KeyValue } from "../compute/ecs";
4
- interface CustomerManagedKeyProps {
5
- description?: string;
6
- aliasName?: string;
7
- tags: KeyValue;
8
- }
9
- export declare class CustomerManagedKey extends Construct {
10
- readonly key: Key;
11
- readonly alias: Alias;
12
- constructor(scope: Construct, id: string, props: CustomerManagedKeyProps);
13
- }
14
- export {};
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomerManagedKey = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_kms_1 = require("aws-cdk-lib/aws-kms");
6
- const constructs_1 = require("constructs");
7
- const tagResource_1 = require("../../../utils/tagResource");
8
- class CustomerManagedKey extends constructs_1.Construct {
9
- constructor(scope, id, props) {
10
- super(scope, id);
11
- this.key = new aws_kms_1.Key(this, `${id}Key`, {
12
- description: props.description || `${id} KMS Key`,
13
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
14
- });
15
- new aws_cdk_lib_1.CfnOutput(this, `${id}KeyArn`, {
16
- key: `${id}Arn`,
17
- value: this.key.keyArn,
18
- exportName: `${id}KeyArn`
19
- });
20
- (0, tagResource_1.default)(this.key, props.tags);
21
- this.alias = new aws_kms_1.Alias(this, `${id}KeyAlias`, {
22
- aliasName: props.aliasName || `cmk/${id}`,
23
- targetKey: this.key
24
- });
25
- new aws_cdk_lib_1.CfnOutput(this, `${id}KeyAliasArn`, {
26
- key: `${id}AliasArn`,
27
- value: this.alias.aliasArn,
28
- exportName: `${id}KeyAliasArn`
29
- });
30
- (0, tagResource_1.default)(this.alias, props.tags);
31
- }
32
- }
33
- exports.CustomerManagedKey = CustomerManagedKey;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmUva21zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQsMkNBQXVDO0FBQ3ZDLDREQUFxRDtBQVNyRCxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBSS9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksYUFBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ25DLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxVQUFVO1lBQ2pELGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87U0FDckMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDdEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRO1NBQzFCLENBQUMsQ0FBQztRQUVILElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksZUFBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQzVDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUU7WUFDdEMsR0FBRyxFQUFFLEdBQUcsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDMUIsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhO1NBQy9CLENBQUMsQ0FBQztRQUNILElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE5QkQsZ0RBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBBbGlhcywgS2V5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1rbXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdGFnUmVzb3VyY2UgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3RhZ1Jlc291cmNlXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi9jb21wdXRlL2Vjc1wiO1xuXG5pbnRlcmZhY2UgQ3VzdG9tZXJNYW5hZ2VkS2V5UHJvcHMge1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYWxpYXNOYW1lPzogc3RyaW5nO1xuICB0YWdzOiBLZXlWYWx1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyTWFuYWdlZEtleSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBrZXk6IEtleTtcbiAgcHVibGljIHJlYWRvbmx5IGFsaWFzOiBBbGlhcztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ3VzdG9tZXJNYW5hZ2VkS2V5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5rZXkgPSBuZXcgS2V5KHRoaXMsIGAke2lkfUtleWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiB8fCBgJHtpZH0gS01TIEtleWAsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2lkfUtleUFybmAsIHtcbiAgICAgIGtleTogYCR7aWR9QXJuYCxcbiAgICAgIHZhbHVlOiB0aGlzLmtleS5rZXlBcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1LZXlBcm5gXG4gICAgfSk7XG5cbiAgICB0YWdSZXNvdXJjZSh0aGlzLmtleSwgcHJvcHMudGFncyk7XG5cbiAgICB0aGlzLmFsaWFzID0gbmV3IEFsaWFzKHRoaXMsIGAke2lkfUtleUFsaWFzYCwge1xuICAgICAgYWxpYXNOYW1lOiBwcm9wcy5hbGlhc05hbWUgfHwgYGNtay8ke2lkfWAsXG4gICAgICB0YXJnZXRLZXk6IHRoaXMua2V5XG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1LZXlBbGlhc0FybmAsIHtcbiAgICAgIGtleTogYCR7aWR9QWxpYXNBcm5gLFxuICAgICAgdmFsdWU6IHRoaXMuYWxpYXMuYWxpYXNBcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1LZXlBbGlhc0FybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmFsaWFzLCBwcm9wcy50YWdzKTtcbiAgfVxufVxuIl19
@@ -1,26 +0,0 @@
1
- import { aws_ssm as ssm } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- import { KeyValue } from "../compute/ecs";
4
- import { CustomerManagedKey } from "../store";
5
- import { AwsCustomResource } from "../utilities/awsCustomResource";
6
- export declare class StringParameter extends ssm.StringParameter {
7
- constructor(scope: Construct, id: string, props: ssm.StringParameterProps);
8
- }
9
- interface SecureStringParameterProps {
10
- accountId: string;
11
- aliasName?: string;
12
- description?: string;
13
- name: string;
14
- overwrite?: boolean;
15
- region: string;
16
- tags: KeyValue;
17
- value?: string;
18
- cmk?: CustomerManagedKey;
19
- }
20
- export declare class SecureStringParameter extends Construct {
21
- readonly cmk: CustomerManagedKey;
22
- readonly name: string;
23
- readonly parameter: AwsCustomResource;
24
- constructor(scope: Construct, id: string, props: SecureStringParameterProps);
25
- }
26
- export {};
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SecureStringParameter = exports.StringParameter = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
- const custom_resources_1 = require("aws-cdk-lib/custom-resources");
7
- const constructs_1 = require("constructs");
8
- const store_1 = require("../store");
9
- const awsCustomResource_1 = require("../utilities/awsCustomResource");
10
- class StringParameter extends aws_cdk_lib_1.aws_ssm.StringParameter {
11
- constructor(scope, id, props) {
12
- super(scope, id, {
13
- ...props,
14
- description: props.description || `${id} SSM Parameter`,
15
- tier: aws_cdk_lib_1.aws_ssm.ParameterTier.INTELLIGENT_TIERING
16
- });
17
- }
18
- }
19
- exports.StringParameter = StringParameter;
20
- class SecureStringParameter extends constructs_1.Construct {
21
- constructor(scope, id, props) {
22
- super(scope, id);
23
- this.name = props.name;
24
- if (props.cmk) {
25
- this.cmk = props.cmk;
26
- }
27
- else {
28
- this.cmk = new store_1.CustomerManagedKey(this, `${id}Key`, {
29
- description: props.description || `${id} KMS Key`,
30
- aliasName: props.aliasName,
31
- tags: props.tags
32
- });
33
- }
34
- this.parameter = new awsCustomResource_1.AwsCustomResource(this, `${id}SecureStringParameter`, {
35
- resourceType: "Custom::SecureStringParameter",
36
- functionName: `${id}SecureStringParameter`,
37
- onCreate: {
38
- service: "@aws-sdk/client-ssm",
39
- action: "PutParameter",
40
- parameters: {
41
- Name: props.name,
42
- Description: props.description || `${id} secure parameter`,
43
- Value: props.value || process.env.CDK_SECURE_STRING || "placeholderValue",
44
- Type: "SecureString",
45
- KeyId: this.cmk.alias.keyId
46
- // TODO: Add tags to the parameter
47
- },
48
- physicalResourceId: custom_resources_1.PhysicalResourceId.of("createSecureStringParameter")
49
- },
50
- onUpdate: {
51
- service: "@aws-sdk/client-ssm",
52
- action: "PutParameter",
53
- parameters: {
54
- Name: props.name,
55
- Description: props.description || `${id} secure parameter`,
56
- Value: props.value ||
57
- `process.env.CDK_SECURE_STRING_${id}` ||
58
- "placeholderValue",
59
- Overwrite: props.overwrite,
60
- Type: "SecureString",
61
- KeyId: this.cmk.alias.keyId
62
- // TODO: Add tags to the parameter
63
- },
64
- physicalResourceId: custom_resources_1.PhysicalResourceId.of("updateSecureStringParameter")
65
- },
66
- onDelete: {
67
- service: "@aws-sdk/client-ssm",
68
- action: "DeleteParameter",
69
- parameters: {
70
- Name: props.name
71
- }
72
- },
73
- policy: custom_resources_1.AwsCustomResourcePolicy.fromStatements([
74
- new aws_iam_1.PolicyStatement({
75
- actions: ["kms:Encrypt"],
76
- resources: [
77
- `arn:aws:kms:${props.region}:${props.accountId}:key/${this.cmk.key.keyId}`
78
- ]
79
- }),
80
- new aws_iam_1.PolicyStatement({
81
- actions: [
82
- "ssm:DeleteParameter",
83
- "ssm:PutParameter",
84
- "ssm:AddTagsToResource",
85
- "logs:DeleteRetentionPolicy",
86
- "logs:PutRetentionPolicy"
87
- ],
88
- resources: [
89
- `arn:aws:ssm:${props.region}:${props.accountId}:parameter${props.name}`
90
- ]
91
- })
92
- ])
93
- });
94
- if (!props.cmk) {
95
- this.parameter.node.addDependency(this.cmk);
96
- }
97
- }
98
- }
99
- exports.SecureStringParameter = SecureStringParameter;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmUvcGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE2QztBQUM3QyxpREFBc0Q7QUFDdEQsbUVBR3NDO0FBQ3RDLDJDQUF1QztBQUV2QyxvQ0FBOEM7QUFDOUMsc0VBQW1FO0FBRW5FLE1BQWEsZUFBZ0IsU0FBUSxxQkFBRyxDQUFDLGVBQWU7SUFDdEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxnQkFBZ0I7WUFDdkQsSUFBSSxFQUFFLHFCQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQjtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFSRCwwQ0FRQztBQWNELE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUFLbEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSwwQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRTtnQkFDbEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLFVBQVU7Z0JBQ2pELFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsdUJBQXVCLEVBQUU7WUFDekUsWUFBWSxFQUFFLCtCQUErQjtZQUM3QyxZQUFZLEVBQUUsR0FBRyxFQUFFLHVCQUF1QjtZQUMxQyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxtQkFBbUI7b0JBQzFELEtBQUssRUFDSCxLQUFLLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksa0JBQWtCO29CQUNwRSxJQUFJLEVBQUUsY0FBYztvQkFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUs7b0JBQzNCLGtDQUFrQztpQkFDbkM7Z0JBQ0Qsa0JBQWtCLEVBQUUscUNBQWtCLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQ3pFO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO29CQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUUsbUJBQW1CO29CQUMxRCxLQUFLLEVBQ0gsS0FBSyxDQUFDLEtBQUs7d0JBQ1gsaUNBQWlDLEVBQUUsRUFBRTt3QkFDckMsa0JBQWtCO29CQUNwQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7b0JBQzFCLElBQUksRUFBRSxjQUFjO29CQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDM0Isa0NBQWtDO2lCQUNuQztnQkFDRCxrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDekU7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDakI7YUFDRjtZQUNELE1BQU0sRUFBRSwwQ0FBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdDLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1QsZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO3FCQUMzRTtpQkFDRixDQUFDO2dCQUNGLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIseUJBQXlCO3FCQUMxQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLGFBQWEsS0FBSyxDQUFDLElBQUksRUFBRTtxQkFDeEU7aUJBQ0YsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0NBQ0Y7QUF2RkQsc0RBdUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX3NzbSBhcyBzc20gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQge1xuICBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSxcbiAgUGh5c2ljYWxSZXNvdXJjZUlkXG59IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vY29tcHV0ZS9lY3NcIjtcbmltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEtleSB9IGZyb20gXCIuLi9zdG9yZVwiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2F3c0N1c3RvbVJlc291cmNlXCI7XG5cbmV4cG9ydCBjbGFzcyBTdHJpbmdQYXJhbWV0ZXIgZXh0ZW5kcyBzc20uU3RyaW5nUGFyYW1ldGVyIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IHNzbS5TdHJpbmdQYXJhbWV0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IFNTTSBQYXJhbWV0ZXJgLFxuICAgICAgdGllcjogc3NtLlBhcmFtZXRlclRpZXIuSU5URUxMSUdFTlRfVElFUklOR1xuICAgIH0pO1xuICB9XG59XG5cbmludGVyZmFjZSBTZWN1cmVTdHJpbmdQYXJhbWV0ZXJQcm9wcyB7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG92ZXJ3cml0ZT86IGJvb2xlYW47XG4gIHJlZ2lvbjogc3RyaW5nO1xuICB0YWdzOiBLZXlWYWx1ZTtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIGNtaz86IEN1c3RvbWVyTWFuYWdlZEtleTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3VyZVN0cmluZ1BhcmFtZXRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBjbWs6IEN1c3RvbWVyTWFuYWdlZEtleTtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcjogQXdzQ3VzdG9tUmVzb3VyY2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3VyZVN0cmluZ1BhcmFtZXRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG5cbiAgICBpZiAocHJvcHMuY21rKSB7XG4gICAgICB0aGlzLmNtayA9IHByb3BzLmNtaztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbWsgPSBuZXcgQ3VzdG9tZXJNYW5hZ2VkS2V5KHRoaXMsIGAke2lkfUtleWAsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBLTVMgS2V5YCxcbiAgICAgICAgYWxpYXNOYW1lOiBwcm9wcy5hbGlhc05hbWUsXG4gICAgICAgIHRhZ3M6IHByb3BzLnRhZ3NcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucGFyYW1ldGVyID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIGAke2lkfVNlY3VyZVN0cmluZ1BhcmFtZXRlcmAsIHtcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlNlY3VyZVN0cmluZ1BhcmFtZXRlclwiLFxuICAgICAgZnVuY3Rpb25OYW1lOiBgJHtpZH1TZWN1cmVTdHJpbmdQYXJhbWV0ZXJgLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJAYXdzLXNkay9jbGllbnQtc3NtXCIsXG4gICAgICAgIGFjdGlvbjogXCJQdXRQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgRGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBzZWN1cmUgcGFyYW1ldGVyYCxcbiAgICAgICAgICBWYWx1ZTpcbiAgICAgICAgICAgIHByb3BzLnZhbHVlIHx8IHByb2Nlc3MuZW52LkNES19TRUNVUkVfU1RSSU5HIHx8IFwicGxhY2Vob2xkZXJWYWx1ZVwiLFxuICAgICAgICAgIFR5cGU6IFwiU2VjdXJlU3RyaW5nXCIsXG4gICAgICAgICAgS2V5SWQ6IHRoaXMuY21rLmFsaWFzLmtleUlkXG4gICAgICAgICAgLy8gVE9ETzogQWRkIHRhZ3MgdG8gdGhlIHBhcmFtZXRlclxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImNyZWF0ZVNlY3VyZVN0cmluZ1BhcmFtZXRlclwiKVxuICAgICAgfSxcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQGF3cy1zZGsvY2xpZW50LXNzbVwiLFxuICAgICAgICBhY3Rpb246IFwiUHV0UGFyYW1ldGVyXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBOYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiB8fCBgJHtpZH0gc2VjdXJlIHBhcmFtZXRlcmAsXG4gICAgICAgICAgVmFsdWU6XG4gICAgICAgICAgICBwcm9wcy52YWx1ZSB8fFxuICAgICAgICAgICAgYHByb2Nlc3MuZW52LkNES19TRUNVUkVfU1RSSU5HXyR7aWR9YCB8fFxuICAgICAgICAgICAgXCJwbGFjZWhvbGRlclZhbHVlXCIsXG4gICAgICAgICAgT3ZlcndyaXRlOiBwcm9wcy5vdmVyd3JpdGUsXG4gICAgICAgICAgVHlwZTogXCJTZWN1cmVTdHJpbmdcIixcbiAgICAgICAgICBLZXlJZDogdGhpcy5jbWsuYWxpYXMua2V5SWRcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgdGFncyB0byB0aGUgcGFyYW1ldGVyXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwidXBkYXRlU2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIpXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogXCJAYXdzLXNkay9jbGllbnQtc3NtXCIsXG4gICAgICAgIGFjdGlvbjogXCJEZWxldGVQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWVcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJrbXM6RW5jcnlwdFwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIGBhcm46YXdzOmttczoke3Byb3BzLnJlZ2lvbn06JHtwcm9wcy5hY2NvdW50SWR9OmtleS8ke3RoaXMuY21rLmtleS5rZXlJZH1gXG4gICAgICAgICAgXVxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJzc206RGVsZXRlUGFyYW1ldGVyXCIsXG4gICAgICAgICAgICBcInNzbTpQdXRQYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIFwic3NtOkFkZFRhZ3NUb1Jlc291cmNlXCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVsZXRlUmV0ZW50aW9uUG9saWN5XCIsXG4gICAgICAgICAgICBcImxvZ3M6UHV0UmV0ZW50aW9uUG9saWN5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6c3NtOiR7cHJvcHMucmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06cGFyYW1ldGVyJHtwcm9wcy5uYW1lfWBcbiAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgICBdKVxuICAgIH0pO1xuXG4gICAgaWYgKCFwcm9wcy5jbWspIHtcbiAgICAgIHRoaXMucGFyYW1ldGVyLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLmNtayk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,25 +0,0 @@
1
- import { Duration } from "aws-cdk-lib";
2
- import { Connections, IConnectable, Vpc } from "aws-cdk-lib/aws-ec2";
3
- import { BackupProps, ClusterInstance, IClusterEngine } from "aws-cdk-lib/aws-rds";
4
- import { Construct } from "constructs";
5
- import { KeyValue } from "../compute/ecs";
6
- interface RdsProps {
7
- vpc: Vpc;
8
- defaultDatabaseName?: string;
9
- engine?: IClusterEngine;
10
- backup?: BackupProps;
11
- clusterIdentifier?: string;
12
- monitoringInterval?: Duration;
13
- preferredMaintenanceWindow?: string;
14
- port?: number;
15
- writer?: ClusterInstance;
16
- readers?: ClusterInstance[];
17
- tags: KeyValue;
18
- securityGroupIds?: string[];
19
- buildkiteRoleArn?: string;
20
- }
21
- export default class Rds extends Construct implements IConnectable {
22
- connections: Connections;
23
- constructor(scope: Construct, id: string, props: RdsProps);
24
- }
25
- export {};
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const aws_cdk_lib_1 = require("aws-cdk-lib");
4
- const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
5
- const aws_rds_1 = require("aws-cdk-lib/aws-rds");
6
- const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
7
- const constructs_1 = require("constructs");
8
- const iam_1 = require("../iam");
9
- const kms_1 = require("./kms");
10
- const secret_1 = require("./secret");
11
- class Rds extends constructs_1.Construct {
12
- constructor(scope, id, props) {
13
- super(scope, id);
14
- // Database Credentials
15
- const databaseCredentials = new secret_1.default(this, `${props.defaultDatabaseName}Credentials`, {
16
- secretName: `${props.defaultDatabaseName}Credentials`,
17
- generateSecretString: {
18
- secretStringTemplate: JSON.stringify({
19
- username: "postgres"
20
- }),
21
- excludePunctuation: true,
22
- includeSpace: false,
23
- generateStringKey: "password"
24
- },
25
- tags: props.tags,
26
- buildkiteRoleArn: props.buildkiteRoleArn
27
- });
28
- // Customer Managed Keys
29
- const encryptionKey = new kms_1.CustomerManagedKey(this, `${props.defaultDatabaseName}ClusterEncryptionKey`, {
30
- aliasName: `cmk/rds/${props.defaultDatabaseName}/encryptionKey`,
31
- tags: props.tags
32
- });
33
- const primaryReaderInsightsKey = new kms_1.CustomerManagedKey(this, `${props.defaultDatabaseName}PrimaryReaderInsightsKey`, {
34
- aliasName: `cmk/rds/${props.defaultDatabaseName}/PrimaryReaderInsightsKey`,
35
- tags: props.tags
36
- });
37
- const secondaryReaderInsightsKey = new kms_1.CustomerManagedKey(this, `${props.defaultDatabaseName}SecondaryReaderInsightsKey`, {
38
- aliasName: `cmk/rds/${props.defaultDatabaseName}/SecondaryReaderInsightsKey`,
39
- tags: props.tags
40
- });
41
- const primaryWriterPerformanceInsightsKey = new kms_1.CustomerManagedKey(this, `${props.defaultDatabaseName}PrimaryWriterPerformanceInsightsKey`, {
42
- aliasName: `cmk/rds/${props.defaultDatabaseName}/PrimaryWriterInsightsKey`,
43
- tags: props.tags
44
- });
45
- const clusterSecurityGroup = new iam_1.SecurityGroup(this, `${id}SecurityGroup`, {
46
- vpc: props.vpc,
47
- description: `Security group that allows inbound access to the postgres cluster for ${props.defaultDatabaseName}`
48
- });
49
- //TODO: Remove this line, that allows the proxy to connect to the database. Replace with seperated security groups
50
- clusterSecurityGroup.addIngressRule(clusterSecurityGroup, aws_ec2_1.Port.tcp(5432));
51
- this.connections = clusterSecurityGroup.connections;
52
- // Database Cluster
53
- const databaseCluster = new aws_rds_1.DatabaseCluster(scope, `${id}Database`, {
54
- vpc: props.vpc,
55
- vpcSubnets: {
56
- subnetType: aws_ec2_1.SubnetType.PRIVATE_WITH_EGRESS
57
- },
58
- securityGroups: [clusterSecurityGroup],
59
- engine: props.engine ||
60
- aws_rds_1.DatabaseClusterEngine.auroraPostgres({
61
- //TODO: Do we update these when we release a new version? Or try to keep them constantly updated?
62
- version: aws_rds_1.AuroraPostgresEngineVersion.VER_15_6
63
- }),
64
- backup: props.backup || {
65
- retention: aws_cdk_lib_1.Duration.days(14)
66
- },
67
- storageEncrypted: true,
68
- storageEncryptionKey: encryptionKey.key,
69
- clusterIdentifier: props.clusterIdentifier || `${props.defaultDatabaseName}-cluster`,
70
- credentials: aws_rds_1.Credentials.fromSecret(databaseCredentials.secret),
71
- defaultDatabaseName: props.defaultDatabaseName || `${id.replace("Rds", "")}`,
72
- monitoringInterval: props.monitoringInterval || aws_cdk_lib_1.Duration.minutes(1),
73
- preferredMaintenanceWindow: props.preferredMaintenanceWindow || "Sat:12:30-Sat:20:30",
74
- port: props.port || 5432,
75
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.SNAPSHOT,
76
- writer: props.writer ||
77
- aws_rds_1.ClusterInstance.serverlessV2(`${props.defaultDatabaseName}Writer`, {
78
- enablePerformanceInsights: true,
79
- performanceInsightEncryptionKey: primaryWriterPerformanceInsightsKey.key,
80
- instanceIdentifier: `${props.defaultDatabaseName}-primary-writer`,
81
- //TODO: Do we update these when we release a new version? Or try to keep them constantly updated?
82
- caCertificate: aws_rds_1.CaCertificate.RDS_CA_RSA4096_G1
83
- }),
84
- readers: props.readers || [
85
- aws_rds_1.ClusterInstance.serverlessV2(`${props.defaultDatabaseName}PrimaryReader`, {
86
- scaleWithWriter: true,
87
- enablePerformanceInsights: true,
88
- performanceInsightEncryptionKey: primaryReaderInsightsKey.key,
89
- instanceIdentifier: `${props.defaultDatabaseName}-primary-reader`,
90
- caCertificate: aws_rds_1.CaCertificate.RDS_CA_RSA4096_G1
91
- }),
92
- aws_rds_1.ClusterInstance.serverlessV2(`${props.defaultDatabaseName}SecondaryReader`, {
93
- scaleWithWriter: false,
94
- enablePerformanceInsights: true,
95
- performanceInsightEncryptionKey: secondaryReaderInsightsKey.key,
96
- instanceIdentifier: `${props.defaultDatabaseName}-secondary-reader`,
97
- caCertificate: aws_rds_1.CaCertificate.RDS_CA_RSA4096_G1
98
- })
99
- ]
100
- });
101
- const databaseProxy = new aws_rds_1.DatabaseProxy(this, `${props.defaultDatabaseName}DatabaseProxy`, {
102
- proxyTarget: aws_rds_1.ProxyTarget.fromCluster(databaseCluster),
103
- secrets: [databaseCredentials.secret],
104
- securityGroups: [clusterSecurityGroup],
105
- vpc: props.vpc,
106
- vpcSubnets: {
107
- subnetType: aws_ec2_1.SubnetType.PUBLIC
108
- }
109
- });
110
- new aws_cdk_lib_1.CfnOutput(this, `${props.defaultDatabaseName}ProxyEndpointOutput`, {
111
- key: `${props.defaultDatabaseName}ProxyEndpoint`,
112
- exportName: `${props.defaultDatabaseName}ProxyEndpoint`,
113
- value: databaseProxy.endpoint
114
- });
115
- // Rotate the Secret every 30 days
116
- const masterSecret = new secret_1.default(this, `${props.defaultDatabaseName}MasterSecret`, {
117
- secretName: `${props.defaultDatabaseName}MasterSecret`,
118
- tags: props.tags
119
- });
120
- new aws_secretsmanager_1.SecretRotation(this, `${props.defaultDatabaseName}SecretRotation`, {
121
- application: new aws_secretsmanager_1.SecretRotationApplication("SecretsManagerRDSPostgreSQLRotationMultiUser", "1.1.367", {
122
- isMultiUser: true
123
- }),
124
- secret: databaseCredentials.secret,
125
- masterSecret: masterSecret.secret,
126
- target: databaseCluster,
127
- vpc: databaseCluster.vpc
128
- });
129
- }
130
- }
131
- exports.default = Rds;
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmUvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQWlFO0FBQ2pFLGlEQU02QjtBQUM3QixpREFXNkI7QUFDN0IsdUVBR3dDO0FBQ3hDLDJDQUF1QztBQUV2QyxnQ0FBdUM7QUFDdkMsK0JBQTJDO0FBQzNDLHFDQUE4QjtBQWtCOUIsTUFBcUIsR0FBSSxTQUFRLHNCQUFTO0lBR3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZTtRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLHVCQUF1QjtRQUN2QixNQUFNLG1CQUFtQixHQUFHLElBQUksZ0JBQU0sQ0FDcEMsSUFBSSxFQUNKLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixhQUFhLEVBQ3pDO1lBQ0UsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixhQUFhO1lBQ3JELG9CQUFvQixFQUFFO2dCQUNwQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUNuQyxRQUFRLEVBQUUsVUFBVTtpQkFDckIsQ0FBQztnQkFDRixrQkFBa0IsRUFBRSxJQUFJO2dCQUN4QixZQUFZLEVBQUUsS0FBSztnQkFDbkIsaUJBQWlCLEVBQUUsVUFBVTthQUM5QjtZQUNELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1NBQ3pDLENBQ0YsQ0FBQztRQUVGLHdCQUF3QjtRQUN4QixNQUFNLGFBQWEsR0FBRyxJQUFJLHdCQUFrQixDQUMxQyxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsbUJBQW1CLHNCQUFzQixFQUNsRDtZQUNFLFNBQVMsRUFBRSxXQUFXLEtBQUssQ0FBQyxtQkFBbUIsZ0JBQWdCO1lBQy9ELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNq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QUM7WUFDdEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxvQkFBVSxDQUFDLE1BQU07YUFDOUI7U0FDRixDQUNGLENBQUM7UUFFRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixxQkFBcUIsRUFBRTtZQUNyRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsbUJBQW1CLGVBQWU7WUFDaEQsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixlQUFlO1lBQ3ZELEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUTtTQUM5QixDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQkFBTSxDQUM3QixJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsbUJBQW1CLGNBQWMsRUFDMUM7WUFDRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsbUJBQW1CLGNBQWM7WUFDdEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQ0YsQ0FBQztRQUVGLElBQUksbUNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsbUJBQW1CLGdCQUFnQixFQUFFO1lBQ3JFLFdBQVcsRUFBRSxJQUFJLDhDQUF5QixDQUN4Qyw4Q0FBOEMsRUFDOUMsU0FBUyxFQUNUO2dCQUNFLFdBQVcsRUFBRSxJQUFJO2FBQ2xCLENBQ0Y7WUFDRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtZQUNsQyxZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDakMsTUFBTSxFQUFFLGVBQWU7WUFDdkIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWxMRCxzQkFrTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBDb25uZWN0aW9ucyxcbiAgSUNvbm5lY3RhYmxlLFxuICBQb3J0LFxuICBTdWJuZXRUeXBlLFxuICBWcGNcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7XG4gIEF1cm9yYVBvc3RncmVzRW5naW5lVmVyc2lvbixcbiAgQmFja3VwUHJvcHMsXG4gIENhQ2VydGlmaWNhdGUsXG4gIENsdXN0ZXJJbnN0YW5jZSxcbiAgQ3JlZGVudGlhbHMsXG4gIERhdGFiYXNlQ2x1c3RlcixcbiAgRGF0YWJhc2VDbHVzdGVyRW5naW5lLFxuICBEYXRhYmFzZVByb3h5LFxuICBJQ2x1c3RlckVuZ2luZSxcbiAgUHJveHlUYXJnZXRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yZHNcIjtcbmltcG9ydCB7XG4gIFNlY3JldFJvdGF0aW9uLFxuICBTZWNyZXRSb3RhdGlvbkFwcGxpY2F0aW9uXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi9jb21wdXRlL2Vjc1wiO1xuaW1wb3J0IHsgU2VjdXJpdHlHcm91cCB9IGZyb20gXCIuLi9pYW1cIjtcbmltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEtleSB9IGZyb20gXCIuL2ttc1wiO1xuaW1wb3J0IFNlY3JldCBmcm9tIFwiLi9zZWNyZXRcIjtcblxuaW50ZXJmYWNlIFJkc1Byb3BzIHtcbiAgdnBjOiBWcGM7XG4gIGRlZmF1bHREYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIGVuZ2luZT86IElDbHVzdGVyRW5naW5lO1xuICBiYWNrdXA/OiBCYWNrdXBQcm9wcztcbiAgY2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmc7XG4gIG1vbml0b3JpbmdJbnRlcnZhbD86IER1cmF0aW9uO1xuICBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdz86IHN0cmluZztcbiAgcG9ydD86IG51bWJlcjtcbiAgd3JpdGVyPzogQ2x1c3Rlckluc3RhbmNlO1xuICByZWFkZXJzPzogQ2x1c3Rlckluc3RhbmNlW107XG4gIHRhZ3M6IEtleVZhbHVlO1xuICBzZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW107XG4gIGJ1aWxka2l0ZVJvbGVBcm4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJkcyBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElDb25uZWN0YWJsZSB7XG4gIHB1YmxpYyBjb25uZWN0aW9uczogQ29ubmVjdGlvbnM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJkc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIERhdGFiYXNlIENyZWRlbnRpYWxzXG4gICAgY29uc3QgZGF0YWJhc2VDcmVkZW50aWFscyA9IG5ldyBTZWNyZXQoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1DcmVkZW50aWFsc2AsXG4gICAgICB7XG4gICAgICAgIHNlY3JldE5hbWU6IGAke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9Q3JlZGVudGlhbHNgLFxuICAgICAgICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB1c2VybmFtZTogXCJwb3N0Z3Jlc1wiXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZXhjbHVkZVB1bmN0dWF0aW9uOiB0cnVlLFxuICAgICAgICAgIGluY2x1ZGVTcGFjZTogZmFsc2UsXG4gICAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6IFwicGFzc3dvcmRcIlxuICAgICAgICB9LFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgICBidWlsZGtpdGVSb2xlQXJuOiBwcm9wcy5idWlsZGtpdGVSb2xlQXJuXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8vIEN1c3RvbWVyIE1hbmFnZWQgS2V5c1xuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBuZXcgQ3VzdG9tZXJNYW5hZ2VkS2V5KFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9Q2x1c3RlckVuY3J5cHRpb25LZXlgLFxuICAgICAge1xuICAgICAgICBhbGlhc05hbWU6IGBjbWsvcmRzLyR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX0vZW5jcnlwdGlvbktleWAsXG4gICAgICAgIHRhZ3M6IHByb3BzLnRhZ3NcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgcHJpbWFyeVJlYWRlckluc2lnaHRzS2V5ID0gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfVByaW1hcnlSZWFkZXJJbnNpZ2h0c0tleWAsXG4gICAgICB7XG4gICAgICAgIGFsaWFzTmFtZTogYGNtay9yZHMvJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfS9QcmltYXJ5UmVhZGVySW5zaWdodHNLZXlgLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHNlY29uZGFyeVJlYWRlckluc2lnaHRzS2V5ID0gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfVNlY29uZGFyeVJlYWRlckluc2lnaHRzS2V5YCxcbiAgICAgIHtcbiAgICAgICAgYWxpYXNOYW1lOiBgY21rL3Jkcy8ke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9L1NlY29uZGFyeVJlYWRlckluc2lnaHRzS2V5YCxcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBwcmltYXJ5V3JpdGVyUGVyZm9ybWFuY2VJbnNpZ2h0c0tleSA9IG5ldyBDdXN0b21lck1hbmFnZWRLZXkoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1QcmltYXJ5V3JpdGVyUGVyZm9ybWFuY2VJbnNpZ2h0c0tleWAsXG4gICAgICB7XG4gICAgICAgIGFsaWFzTmFtZTogYGNtay9yZHMvJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfS9QcmltYXJ5V3JpdGVySW5zaWdodHNLZXlgLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IGNsdXN0ZXJTZWN1cml0eUdyb3VwID0gbmV3IFNlY3VyaXR5R3JvdXAodGhpcywgYCR7aWR9U2VjdXJpdHlHcm91cGAsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgZGVzY3JpcHRpb246IGBTZWN1cml0eSBncm91cCB0aGF0IGFsbG93cyBpbmJvdW5kIGFjY2VzcyB0byB0aGUgcG9zdGdyZXMgY2x1c3RlciBmb3IgJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfWBcbiAgICB9KTtcblxuICAgIC8vVE9ETzogUmVtb3ZlIHRoaXMgbGluZSwgdGhhdCBhbGxvd3MgdGhlIHByb3h5IHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLiBSZXBsYWNlIHdpdGggc2VwZXJhdGVkIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNsdXN0ZXJTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKGNsdXN0ZXJTZWN1cml0eUdyb3VwLCBQb3J0LnRjcCg1NDMyKSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gY2x1c3RlclNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnM7XG5cbiAgICAvLyBEYXRhYmFzZSBDbHVzdGVyXG4gICAgY29uc3QgZGF0YWJhc2VDbHVzdGVyID0gbmV3IERhdGFiYXNlQ2x1c3RlcihzY29wZSwgYCR7aWR9RGF0YWJhc2VgLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0VHlwZTogU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTXG4gICAgICB9LFxuICAgICAgc2VjdXJpdHlHcm91cHM6IFtjbHVzdGVyU2VjdXJpdHlHcm91cF0sXG4gICAgICBlbmdpbmU6XG4gICAgICAgIHByb3BzLmVuZ2luZSB8fFxuICAgICAgICBEYXRhYmFzZUNsdXN0ZXJFbmdpbmUuYXVyb3JhUG9zdGdyZXMoe1xuICAgICAgICAgIC8vVE9ETzogRG8gd2UgdXBkYXRlIHRoZXNlIHdoZW4gd2UgcmVsZWFzZSBhIG5ldyB2ZXJzaW9uPyBPciB0cnkgdG8ga2VlcCB0aGVtIGNvbnN0YW50bHkgdXBkYXRlZD9cbiAgICAgICAgICB2ZXJzaW9uOiBBdXJvcmFQb3N0Z3Jlc0VuZ2luZVZlcnNpb24uVkVSXzE1XzZcbiAgICAgICAgfSksXG4gICAgICBiYWNrdXA6IHByb3BzLmJhY2t1cCB8fCB7XG4gICAgICAgIHJldGVudGlvbjogRHVyYXRpb24uZGF5cygxNClcbiAgICAgIH0sXG4gICAgICBzdG9yYWdlRW5jcnlwdGVkOiB0cnVlLFxuICAgICAgc3RvcmFnZUVuY3J5cHRpb25LZXk6IGVuY3J5cHRpb25LZXkua2V5LFxuICAgICAgY2x1c3RlcklkZW50aWZpZXI6XG4gICAgICAgIHByb3BzLmNsdXN0ZXJJZGVudGlmaWVyIHx8IGAke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9LWNsdXN0ZXJgLFxuICAgICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLmZyb21TZWNyZXQoZGF0YWJhc2VDcmVkZW50aWFscy5zZWNyZXQpLFxuICAgICAgZGVmYXVsdERhdGFiYXNlTmFtZTpcbiAgICAgICAgcHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZSB8fCBgJHtpZC5yZXBsYWNlKFwiUmRzXCIsIFwiXCIpfWAsXG4gICAgICBtb25pdG9yaW5nSW50ZXJ2YWw6IHByb3BzLm1vbml0b3JpbmdJbnRlcnZhbCB8fCBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6XG4gICAgICAgIHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93IHx8IFwiU2F0OjEyOjMwLVNhdDoyMDozMFwiLFxuICAgICAgcG9ydDogcHJvcHMucG9ydCB8fCA1NDMyLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5TTkFQU0hPVCxcbiAgICAgIHdyaXRlcjpcbiAgICAgICAgcHJvcHMud3JpdGVyIHx8XG4gICAgICAgIENsdXN0ZXJJbnN0YW5jZS5zZXJ2ZXJsZXNzVjIoYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1Xcml0ZXJgLCB7XG4gICAgICAgICAgZW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0czogdHJ1ZSxcbiAgICAgICAgICBwZXJmb3JtYW5jZUluc2lnaHRFbmNyeXB0aW9uS2V5OlxuICAgICAgICAgICAgcHJpbWFyeVdyaXRlclBlcmZvcm1hbmNlSW5zaWdodHNLZXkua2V5LFxuICAgICAgICAgIGluc3RhbmNlSWRlbnRpZmllcjogYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX0tcHJpbWFyeS13cml0ZXJgLFxuICAgICAgICAgIC8vVE9ETzogRG8gd2UgdXBkYXRlIHRoZXNlIHdoZW4gd2UgcmVsZWFzZSBhIG5ldyB2ZXJzaW9uPyBPciB0cnkgdG8ga2VlcCB0aGVtIGNvbnN0YW50bHkgdXBkYXRlZD9cbiAgICAgICAgICBjYUNlcnRpZmljYXRlOiBDYUNlcnRpZmljYXRlLlJEU19DQV9SU0E0MDk2X0cxXG4gICAgICAgIH0pLFxuICAgICAgcmVhZGVyczogcHJvcHMucmVhZGVycyB8fCBbXG4gICAgICAgIENsdXN0ZXJJbnN0YW5jZS5zZXJ2ZXJsZXNzVjIoXG4gICAgICAgICAgYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1QcmltYXJ5UmVhZGVyYCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY2FsZVdpdGhXcml0ZXI6IHRydWUsXG4gICAgICAgICAgICBlbmFibGVQZXJmb3JtYW5jZUluc2lnaHRzOiB0cnVlLFxuICAgICAgICAgICAgcGVyZm9ybWFuY2VJbnNpZ2h0RW5jcnlwdGlvbktleTogcHJpbWFyeVJlYWRlckluc2lnaHRzS2V5LmtleSxcbiAgICAgICAgICAgIGluc3RhbmNlSWRlbnRpZmllcjogYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX0tcHJpbWFyeS1yZWFkZXJgLFxuICAgICAgICAgICAgY2FDZXJ0aWZpY2F0ZTogQ2FDZXJ0aWZpY2F0ZS5SRFNfQ0FfUlNBNDA5Nl9HMVxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgQ2x1c3Rlckluc3RhbmNlLnNlcnZlcmxlc3NWMihcbiAgICAgICAgICBgJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfVNlY29uZGFyeVJlYWRlcmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NhbGVXaXRoV3JpdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIGVuYWJsZVBlcmZvcm1hbmNlSW5zaWdodHM6IHRydWUsXG4gICAgICAgICAgICBwZXJmb3JtYW5jZUluc2lnaHRFbmNyeXB0aW9uS2V5OiBzZWNvbmRhcnlSZWFkZXJJbnNpZ2h0c0tleS5rZXksXG4gICAgICAgICAgICBpbnN0YW5jZUlkZW50aWZpZXI6IGAke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9LXNlY29uZGFyeS1yZWFkZXJgLFxuICAgICAgICAgICAgY2FDZXJ0aWZpY2F0ZTogQ2FDZXJ0aWZpY2F0ZS5SRFNfQ0FfUlNBNDA5Nl9HMVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YWJhc2VQcm94eSA9IG5ldyBEYXRhYmFzZVByb3h5KFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9RGF0YWJhc2VQcm94eWAsXG4gICAgICB7XG4gICAgICAgIHByb3h5VGFyZ2V0OiBQcm94eVRhcmdldC5mcm9tQ2x1c3RlcihkYXRhYmFzZUNsdXN0ZXIpLFxuICAgICAgICBzZWNyZXRzOiBbZGF0YWJhc2VDcmVkZW50aWFscy5zZWNyZXRdLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogW2NsdXN0ZXJTZWN1cml0eUdyb3VwXSxcbiAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgICBzdWJuZXRUeXBlOiBTdWJuZXRUeXBlLlBVQkxJQ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1Qcm94eUVuZHBvaW50T3V0cHV0YCwge1xuICAgICAga2V5OiBgJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfVByb3h5RW5kcG9pbnRgLFxuICAgICAgZXhwb3J0TmFtZTogYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1Qcm94eUVuZHBvaW50YCxcbiAgICAgIHZhbHVlOiBkYXRhYmFzZVByb3h5LmVuZHBvaW50XG4gICAgfSk7XG5cbiAgICAvLyBSb3RhdGUgdGhlIFNlY3JldCBldmVyeSAzMCBkYXlzXG4gICAgY29uc3QgbWFzdGVyU2VjcmV0ID0gbmV3IFNlY3JldChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWZhdWx0RGF0YWJhc2VOYW1lfU1hc3RlclNlY3JldGAsXG4gICAgICB7XG4gICAgICAgIHNlY3JldE5hbWU6IGAke3Byb3BzLmRlZmF1bHREYXRhYmFzZU5hbWV9TWFzdGVyU2VjcmV0YCxcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfVxuICAgICk7XG5cbiAgICBuZXcgU2VjcmV0Um90YXRpb24odGhpcywgYCR7cHJvcHMuZGVmYXVsdERhdGFiYXNlTmFtZX1TZWNyZXRSb3RhdGlvbmAsIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBuZXcgU2VjcmV0Um90YXRpb25BcHBsaWNhdGlvbihcbiAgICAgICAgXCJTZWNyZXRzTWFuYWdlclJEU1Bvc3RncmVTUUxSb3RhdGlvbk11bHRpVXNlclwiLFxuICAgICAgICBcIjEuMS4zNjdcIixcbiAgICAgICAge1xuICAgICAgICAgIGlzTXVsdGlVc2VyOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzZWNyZXQ6IGRhdGFiYXNlQ3JlZGVudGlhbHMuc2VjcmV0LFxuICAgICAgbWFzdGVyU2VjcmV0OiBtYXN0ZXJTZWNyZXQuc2VjcmV0LFxuICAgICAgdGFyZ2V0OiBkYXRhYmFzZUNsdXN0ZXIsXG4gICAgICB2cGM6IGRhdGFiYXNlQ2x1c3Rlci52cGNcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,11 +0,0 @@
1
- import { Bucket, BucketProps } from "aws-cdk-lib/aws-s3";
2
- import { Construct } from "constructs";
3
- export declare class S3Bucket extends Bucket {
4
- constructor(scope: Construct, id: string, props?: BucketProps);
5
- }
6
- export declare class S3WebsiteBucket extends S3Bucket {
7
- constructor(scope: Construct, id: string, props?: BucketProps);
8
- }
9
- export declare class S3PublicReadBucket extends S3Bucket {
10
- constructor(scope: Construct, id: string, props?: BucketProps);
11
- }