@fjall/components-infrastructure 0.1.6 → 0.1.10

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 (118) hide show
  1. package/dist/lib/app.d.ts +1 -2
  2. package/dist/lib/app.js +2 -4
  3. package/dist/lib/config/aws/costAllocationTags.d.ts +3 -2
  4. package/dist/lib/config/aws/costAllocationTags.js +5 -6
  5. package/dist/lib/config/aws/identityCenter.d.ts +3 -11
  6. package/dist/lib/config/aws/identityCenter.js +29 -24
  7. package/dist/lib/config/aws/index.d.ts +4 -8
  8. package/dist/lib/config/aws/index.js +5 -9
  9. package/dist/lib/config/aws/ipam.d.ts +2 -2
  10. package/dist/lib/config/aws/ipam.js +7 -25
  11. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +5 -4
  12. package/dist/lib/config/aws/ipamDelegateAdmin.js +13 -9
  13. package/dist/lib/config/aws/organisationId.d.ts +2 -4
  14. package/dist/lib/config/aws/organisationId.js +7 -13
  15. package/dist/lib/patterns/aws/basicApp.d.ts +2 -2
  16. package/dist/lib/patterns/aws/basicApp.js +15 -15
  17. package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
  18. package/dist/lib/patterns/aws/buildkite.js +7 -9
  19. package/dist/lib/patterns/aws/index.d.ts +0 -3
  20. package/dist/lib/patterns/aws/index.js +1 -4
  21. package/dist/lib/patterns/aws/managedOrganisation.d.ts +21 -9
  22. package/dist/lib/patterns/aws/managedOrganisation.js +147 -33
  23. package/dist/lib/resources/aws/compute/ecs.d.ts +4 -2
  24. package/dist/lib/resources/aws/compute/ecs.js +6 -10
  25. package/dist/lib/resources/aws/compute/lambda.d.ts +7 -7
  26. package/dist/lib/resources/aws/compute/lambda.js +7 -8
  27. package/dist/lib/resources/aws/logging/logGroup.d.ts +3 -3
  28. package/dist/lib/resources/aws/logging/logGroup.js +3 -3
  29. package/dist/lib/resources/aws/networking/index.d.ts +1 -1
  30. package/dist/lib/resources/aws/networking/index.js +2 -2
  31. package/dist/lib/resources/aws/networking/ipamPool.d.ts +3 -16
  32. package/dist/lib/resources/aws/networking/ipamPool.js +6 -75
  33. package/dist/lib/resources/aws/utilities/customResource.js +2 -2
  34. package/dist/lib/utils/getAccountId.d.ts +1 -1
  35. package/dist/lib/utils/getAccountId.js +2 -3
  36. package/dist/lib/utils/getConfig.d.ts +2 -3
  37. package/dist/lib/utils/getConfig.js +6 -20
  38. package/package.json +2 -2
  39. package/dist/lib/config/aws/accountId.d.ts +0 -6
  40. package/dist/lib/config/aws/accountId.js +0 -33
  41. package/dist/lib/config/aws/cloudTrail.d.ts +0 -10
  42. package/dist/lib/config/aws/cloudTrail.js +0 -22
  43. package/dist/lib/config/aws/ecrDefaultImage.d.ts +0 -11
  44. package/dist/lib/config/aws/ecrDefaultImage.js +0 -127
  45. package/dist/lib/config/aws/eventBus.d.ts +0 -7
  46. package/dist/lib/config/aws/eventBus.js +0 -24
  47. package/dist/lib/config/aws/identityCenterUser.d.ts +0 -16
  48. package/dist/lib/config/aws/identityCenterUser.js +0 -125
  49. package/dist/lib/config/aws/ipamPoolId.d.ts +0 -9
  50. package/dist/lib/config/aws/ipamPoolId.js +0 -36
  51. package/dist/lib/config/aws/organisation.d.ts +0 -28
  52. package/dist/lib/config/aws/organisation.js +0 -142
  53. package/dist/lib/config/aws/ramSharing.d.ts +0 -4
  54. package/dist/lib/config/aws/ramSharing.js +0 -35
  55. package/dist/lib/patterns/aws/freeTierApp.d.ts +0 -46
  56. package/dist/lib/patterns/aws/freeTierApp.js +0 -95
  57. package/dist/lib/patterns/aws/hostedZone.d.ts +0 -11
  58. package/dist/lib/patterns/aws/hostedZone.js +0 -73
  59. package/dist/lib/patterns/aws/managedAccount.d.ts +0 -13
  60. package/dist/lib/patterns/aws/managedAccount.js +0 -39
  61. package/dist/lib/patterns/aws/managedPlatform.d.ts +0 -13
  62. package/dist/lib/patterns/aws/managedPlatform.js +0 -22
  63. package/dist/lib/patterns/aws/spotInstanceApp.d.ts +0 -46
  64. package/dist/lib/patterns/aws/spotInstanceApp.js +0 -95
  65. package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +0 -9
  66. package/dist/lib/patterns/aws/subdomainHostedZone.js +0 -39
  67. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +0 -76
  68. package/dist/lib/resources/aws/compute/ecsFreeTier.js +0 -352
  69. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +0 -76
  70. package/dist/lib/resources/aws/compute/ecsSpot.js +0 -334
  71. package/dist/lib/resources/aws/compute/index.d.ts +0 -2
  72. package/dist/lib/resources/aws/compute/index.js +0 -19
  73. package/dist/lib/resources/aws/database/database.d.ts +0 -16
  74. package/dist/lib/resources/aws/database/database.js +0 -30
  75. package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +0 -17
  76. package/dist/lib/resources/aws/database/databaseFreeTier.js +0 -31
  77. package/dist/lib/resources/aws/database/databaseInstance.d.ts +0 -17
  78. package/dist/lib/resources/aws/database/databaseInstance.js +0 -32
  79. package/dist/lib/resources/aws/database/index.d.ts +0 -2
  80. package/dist/lib/resources/aws/database/index.js +0 -19
  81. package/dist/lib/resources/aws/database/rds.d.ts +0 -23
  82. package/dist/lib/resources/aws/database/rds.js +0 -130
  83. package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +0 -36
  84. package/dist/lib/resources/aws/database/rdsFreeTier.js +0 -80
  85. package/dist/lib/resources/aws/database/rdsInstance.d.ts +0 -42
  86. package/dist/lib/resources/aws/database/rdsInstance.js +0 -173
  87. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +0 -18
  88. package/dist/lib/resources/aws/logging/cloudTrail.js +0 -46
  89. package/dist/lib/resources/aws/networking/vpc.d.ts +0 -29
  90. package/dist/lib/resources/aws/networking/vpc.js +0 -64
  91. package/dist/lib/resources/aws/secrets/alias.d.ts +0 -5
  92. package/dist/lib/resources/aws/secrets/alias.js +0 -13
  93. package/dist/lib/resources/aws/secrets/index.d.ts +0 -5
  94. package/dist/lib/resources/aws/secrets/index.js +0 -22
  95. package/dist/lib/resources/aws/secrets/kms.d.ts +0 -14
  96. package/dist/lib/resources/aws/secrets/kms.js +0 -34
  97. package/dist/lib/resources/aws/secrets/parameter.d.ts +0 -26
  98. package/dist/lib/resources/aws/secrets/parameter.js +0 -100
  99. package/dist/lib/resources/aws/secrets/secret.d.ts +0 -24
  100. package/dist/lib/resources/aws/secrets/secret.js +0 -53
  101. package/dist/lib/resources/aws/storage/ecr.d.ts +0 -12
  102. package/dist/lib/resources/aws/storage/ecr.js +0 -31
  103. package/dist/lib/resources/aws/storage/index.d.ts +0 -2
  104. package/dist/lib/resources/aws/storage/index.js +0 -19
  105. package/dist/lib/resources/aws/storage/s3.d.ts +0 -11
  106. package/dist/lib/resources/aws/storage/s3.js +0 -44
  107. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +0 -15
  108. package/dist/lib/resources/aws/utilities/codeBuild.js +0 -28
  109. package/dist/lib/types.d.ts +0 -3
  110. package/dist/lib/types.js +0 -3
  111. package/dist/lib/utils/capitalizeString.d.ts +0 -1
  112. package/dist/lib/utils/capitalizeString.js +0 -8
  113. package/dist/lib/utils/getCidr.d.ts +0 -8
  114. package/dist/lib/utils/getCidr.js +0 -42
  115. package/dist/lib/utils/stripAndCamelCase.d.ts +0 -1
  116. package/dist/lib/utils/stripAndCamelCase.js +0 -17
  117. package/dist/lib/utils/usersConfig.d.ts +0 -7
  118. package/dist/lib/utils/usersConfig.js +0 -18
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TrailStack = exports.Trail = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const CloudTrail = require("aws-cdk-lib/aws-cloudtrail");
6
- const constructs_1 = require("constructs");
7
- const secrets_1 = require("../secrets");
8
- const tagResource_1 = require("../../../utils/tagResource");
9
- const storage_1 = require("../storage");
10
- const aws_s3_1 = require("aws-cdk-lib/aws-s3");
11
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
12
- class Trail extends constructs_1.Construct {
13
- constructor(scope, id, props) {
14
- super(scope, id);
15
- const encryptionKey = new secrets_1.CustomerManagedKey(this, `${id}CloudTrailEncryptionKey`, {
16
- aliasName: `cmk/cloudtrail/${id}/encryptionKey`,
17
- tags: props.tags
18
- });
19
- this.bucket = new storage_1.S3Bucket(this, `${id}cloudTrailBucket`, {
20
- bucketName: props.bucketName,
21
- bucketKeyEnabled: true,
22
- encryption: aws_s3_1.BucketEncryption.KMS,
23
- encryptionKey: encryptionKey.key
24
- });
25
- (0, tagResource_1.default)(this.bucket, props.tags);
26
- this.bucket.grantReadWrite(new aws_iam_1.ServicePrincipal("cloudtrail.amazonaws.com"));
27
- this.trail = new CloudTrail.Trail(this, `${id}cloudTrail`, {
28
- ...props,
29
- bucket: this.bucket,
30
- trailName: props.trailName || `${id}Trail`,
31
- encryptionKey: encryptionKey.key
32
- });
33
- (0, tagResource_1.default)(this.trail, props.tags);
34
- }
35
- }
36
- exports.Trail = Trail;
37
- class TrailStack extends aws_cdk_lib_1.Stack {
38
- constructor(scope, id, props) {
39
- super(scope, id);
40
- new Trail(this, id, {
41
- ...props
42
- });
43
- }
44
- }
45
- exports.TrailStack = TrailStack;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRUcmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2xvZ2dpbmcvY2xvdWRUcmFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBb0M7QUFDcEMseURBQXlEO0FBQ3pELDJDQUF1QztBQUN2Qyx3Q0FBZ0Q7QUFDaEQsNERBQXFEO0FBRXJELHdDQUFzQztBQUN0QywrQ0FBc0Q7QUFDdEQsaURBQXVEO0FBT3ZELE1BQWEsS0FBTSxTQUFRLHNCQUFTO0lBSWxDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGFBQWEsR0FBRyxJQUFJLDRCQUFrQixDQUMxQyxJQUFJLEVBQ0osR0FBRyxFQUFFLHlCQUF5QixFQUM5QjtZQUNFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0I7WUFDL0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxrQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUU7WUFDeEQsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsVUFBVSxFQUFFLHlCQUFnQixDQUFDLEdBQUc7WUFDaEMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHO1NBQ2pDLENBQUMsQ0FBQztRQUNILElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDeEIsSUFBSSwwQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7WUFDekQsR0FBRyxLQUFLO1lBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEdBQUcsRUFBRSxPQUFPO1lBQzFDLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRztTQUNqQyxDQUFDLENBQUM7UUFDSCxJQUFBLHFCQUFXLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBbkNELHNCQW1DQztBQUVELE1BQWEsVUFBVyxTQUFRLG1CQUFLO0lBQ25DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2xCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVJELGdDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIENsb3VkVHJhaWwgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHRyYWlsXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5IH0gZnJvbSBcIi4uL3NlY3JldHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBTM0J1Y2tldCB9IGZyb20gXCIuLi9zdG9yYWdlXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmNyeXB0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgU2VydmljZVByaW5jaXBhbCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5cbmludGVyZmFjZSBDbG91ZFRyYWlsUHJvcHMgZXh0ZW5kcyBDbG91ZFRyYWlsLlRyYWlsUHJvcHMge1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhaWwgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhaWw6IENsb3VkVHJhaWwuVHJhaWw7XG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ6IFMzQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZFRyYWlsUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZW5jcnlwdGlvbktleSA9IG5ldyBDdXN0b21lck1hbmFnZWRLZXkoXG4gICAgICB0aGlzLFxuICAgICAgYCR7aWR9Q2xvdWRUcmFpbEVuY3J5cHRpb25LZXlgLFxuICAgICAge1xuICAgICAgICBhbGlhc05hbWU6IGBjbWsvY2xvdWR0cmFpbC8ke2lkfS9lbmNyeXB0aW9uS2V5YCxcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IG5ldyBTM0J1Y2tldCh0aGlzLCBgJHtpZH1jbG91ZFRyYWlsQnVja2V0YCwge1xuICAgICAgYnVja2V0TmFtZTogcHJvcHMuYnVja2V0TmFtZSxcbiAgICAgIGJ1Y2tldEtleUVuYWJsZWQ6IHRydWUsXG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLktNUyxcbiAgICAgIGVuY3J5cHRpb25LZXk6IGVuY3J5cHRpb25LZXkua2V5XG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5idWNrZXQsIHByb3BzLnRhZ3MpO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKFxuICAgICAgbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJjbG91ZHRyYWlsLmFtYXpvbmF3cy5jb21cIilcbiAgICApO1xuXG4gICAgdGhpcy50cmFpbCA9IG5ldyBDbG91ZFRyYWlsLlRyYWlsKHRoaXMsIGAke2lkfWNsb3VkVHJhaWxgLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICB0cmFpbE5hbWU6IHByb3BzLnRyYWlsTmFtZSB8fCBgJHtpZH1UcmFpbGAsXG4gICAgICBlbmNyeXB0aW9uS2V5OiBlbmNyeXB0aW9uS2V5LmtleVxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMudHJhaWwsIHByb3BzLnRhZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFpbFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRUcmFpbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBUcmFpbCh0aGlzLCBpZCwge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { Construct } from "constructs";
2
- import * as ec2 from "aws-cdk-lib/aws-ec2";
3
- import { StackBuilder } from "../awsStack";
4
- import { KeyValue } from "../../../types";
5
- interface VpcProps extends ec2.VpcProps {
6
- environment?: string;
7
- region?: string;
8
- availabilityZones?: string[];
9
- ipv4IpamPoolId?: string;
10
- tags: KeyValue;
11
- }
12
- export declare class Vpc extends ec2.Vpc {
13
- constructor(scope: Construct, id: string, props?: VpcProps);
14
- static availabilityZones(scope: Construct): string[];
15
- static ipAddresses(scope: Construct, props?: VpcProps): ec2.IIpAddresses | undefined;
16
- static build(id: string, props?: VpcProps): (sb: StackBuilder) => Construct;
17
- /**
18
- * Imports a pre-existing VPC Resource into your Stack
19
- *
20
- * Before using an import method ensure you have set the account and region props
21
- * when creating your AwsStack.
22
- *
23
- * @param id
24
- * @param vpcStackName
25
- * @returns
26
- */
27
- static import(id: string, vpcStackName: string): (sb: StackBuilder) => Construct;
28
- }
29
- export {};
@@ -1,64 +0,0 @@
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: Vpc.availabilityZones(scope),
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: Vpc.ipAddresses(scope, props)
22
- });
23
- // Required for the VPC to use the IPAM Pool to provsion IP addresses
24
- aws_cdk_lib_1.Tags.of(this).add("fjall:operations:pool", `${props?.environment}`);
25
- }
26
- static availabilityZones(scope) {
27
- return aws_cdk_lib_1.Stack.of(scope).availabilityZones.slice(0, 3);
28
- }
29
- static ipAddresses(scope, props) {
30
- const ipv4IpamPoolId = props?.ipv4IpamPoolId || aws_cdk_lib_1.Fn.importValue("ManagedIpamPoolId");
31
- // Default to unspecified ipAddresses if unable to read from stack output
32
- if (!ipv4IpamPoolId)
33
- return undefined;
34
- return ec2.IpAddresses.awsIpamAllocation({
35
- ipv4IpamPoolId: ipv4IpamPoolId,
36
- ipv4NetmaskLength: 20,
37
- defaultSubnetIpv4NetmaskLength: 23
38
- });
39
- }
40
- static build(id, props) {
41
- return (sb) => {
42
- return new this(sb.getStack(), id, props);
43
- };
44
- }
45
- /**
46
- * Imports a pre-existing VPC Resource into your Stack
47
- *
48
- * Before using an import method ensure you have set the account and region props
49
- * when creating your AwsStack.
50
- *
51
- * @param id
52
- * @param vpcStackName
53
- * @returns
54
- */
55
- static import(id, vpcStackName) {
56
- return (sb) => {
57
- return ec2.Vpc.fromLookup(sb.getStack(), id, {
58
- vpcName: `${vpcStackName}/${id}`
59
- });
60
- };
61
- }
62
- }
63
- exports.Vpc = Vpc;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvbmV0d29ya2luZy92cGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQTZEO0FBQzdELDJDQUEyQztBQUczQyxrREFBK0M7QUFXL0MsTUFBYSxHQUFJLFNBQVEsR0FBRyxDQUFDLEdBQUc7SUFDOUIsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQjtRQUN4RCxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDeEIsR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3BCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDL0MsUUFBUSxFQUFFO2dCQUNSLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxFQUFFO29CQUNwQixXQUFXLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUNsRCxJQUFJLG1CQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUU7d0JBQ3ZDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxHQUFHO3dCQUN4QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO3FCQUNyQyxDQUFDLENBQ0g7aUJBQ0Y7YUFDRjtZQUNELFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7U0FDM0MsQ0FBQyxDQUFDO1FBRUgscUVBQXFFO1FBQ3JFLGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBZ0I7UUFDdkMsT0FBTyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCLEVBQUUsS0FBZ0I7UUFDbkQsTUFBTSxjQUFjLEdBQ2xCLEtBQUssRUFBRSxjQUFjLElBQUksZ0JBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUvRCx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUV0QyxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDdkMsY0FBYyxFQUFFLGNBQWM7WUFDOUIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQiw4QkFBOEIsRUFBRSxFQUFFO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUFnQjtRQUN2QyxPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0Q7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FDWCxFQUFVLEVBQ1YsWUFBb0I7UUFFcEIsT0FBTyxDQUFDLEVBQWdCLEVBQUUsRUFBRTtZQUMxQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sRUFBRSxHQUFHLFlBQVksSUFBSSxFQUFFLEVBQUU7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbEVELGtCQWtFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUYWdzLCBSZW1vdmFsUG9saWN5LCBTdGFjaywgRm4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuXG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSBcIi4uL2xvZ2dpbmcvbG9nR3JvdXBcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBWcGNQcm9wcyBleHRlbmRzIGVjMi5WcGNQcm9wcyB7XG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICByZWdpb24/OiBzdHJpbmc7XG4gIGF2YWlsYWJpbGl0eVpvbmVzPzogc3RyaW5nW107XG4gIGlwdjRJcGFtUG9vbElkPzogc3RyaW5nO1xuICB0YWdzOiBLZXlWYWx1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFZwYyBleHRlbmRzIGVjMi5WcGMge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFZwY1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGB2cGMtJHtpZH1gLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHZwY05hbWU6IGB2cGMtJHtpZH1gLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZXM6IFZwYy5hdmFpbGFiaWxpdHlab25lcyhzY29wZSksXG4gICAgICBmbG93TG9nczoge1xuICAgICAgICBbYCR7aWR9VnBjRmxvd0xvZ3NgXToge1xuICAgICAgICAgIGRlc3RpbmF0aW9uOiBlYzIuRmxvd0xvZ0Rlc3RpbmF0aW9uLnRvQ2xvdWRXYXRjaExvZ3MoXG4gICAgICAgICAgICBuZXcgTG9nR3JvdXAoc2NvcGUsIGAke2lkfUZsb3dMb2dHcm91cGAsIHtcbiAgICAgICAgICAgICAgbG9nR3JvdXBOYW1lOiBgL3ZwYy9mbG93bG9ncy92cGMtJHtpZH0vYCxcbiAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlwQWRkcmVzc2VzOiBWcGMuaXBBZGRyZXNzZXMoc2NvcGUsIHByb3BzKVxuICAgIH0pO1xuXG4gICAgLy8gUmVxdWlyZWQgZm9yIHRoZSBWUEMgdG8gdXNlIHRoZSBJUEFNIFBvb2wgdG8gcHJvdnNpb24gSVAgYWRkcmVzc2VzXG4gICAgVGFncy5vZih0aGlzKS5hZGQoXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIiwgYCR7cHJvcHM/LmVudmlyb25tZW50fWApO1xuICB9XG5cbiAgc3RhdGljIGF2YWlsYWJpbGl0eVpvbmVzKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gU3RhY2sub2Yoc2NvcGUpLmF2YWlsYWJpbGl0eVpvbmVzLnNsaWNlKDAsIDMpO1xuICB9XG5cbiAgc3RhdGljIGlwQWRkcmVzc2VzKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzPzogVnBjUHJvcHMpIHtcbiAgICBjb25zdCBpcHY0SXBhbVBvb2xJZCA9XG4gICAgICBwcm9wcz8uaXB2NElwYW1Qb29sSWQgfHwgRm4uaW1wb3J0VmFsdWUoXCJNYW5hZ2VkSXBhbVBvb2xJZFwiKTtcblxuICAgIC8vIERlZmF1bHQgdG8gdW5zcGVjaWZpZWQgaXBBZGRyZXNzZXMgaWYgdW5hYmxlIHRvIHJlYWQgZnJvbSBzdGFjayBvdXRwdXRcbiAgICBpZiAoIWlwdjRJcGFtUG9vbElkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGVjMi5JcEFkZHJlc3Nlcy5hd3NJcGFtQWxsb2NhdGlvbih7XG4gICAgICBpcHY0SXBhbVBvb2xJZDogaXB2NElwYW1Qb29sSWQsXG4gICAgICBpcHY0TmV0bWFza0xlbmd0aDogMjAsXG4gICAgICBkZWZhdWx0U3VibmV0SXB2NE5ldG1hc2tMZW5ndGg6IDIzXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgYnVpbGQoaWQ6IHN0cmluZywgcHJvcHM/OiBWcGNQcm9wcyk6IChzYjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3Qge1xuICAgIHJldHVybiAoc2I6IFN0YWNrQnVpbGRlcikgPT4ge1xuICAgICAgcmV0dXJuIG5ldyB0aGlzKHNiLmdldFN0YWNrKCksIGlkLCBwcm9wcyk7XG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogSW1wb3J0cyBhIHByZS1leGlzdGluZyBWUEMgUmVzb3VyY2UgaW50byB5b3VyIFN0YWNrXG4gICAqXG4gICAqIEJlZm9yZSB1c2luZyBhbiBpbXBvcnQgbWV0aG9kIGVuc3VyZSB5b3UgaGF2ZSBzZXQgdGhlIGFjY291bnQgYW5kIHJlZ2lvbiBwcm9wc1xuICAgKiAgd2hlbiBjcmVhdGluZyB5b3VyIEF3c1N0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHZwY1N0YWNrTmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGltcG9ydChcbiAgICBpZDogc3RyaW5nLFxuICAgIHZwY1N0YWNrTmFtZTogc3RyaW5nXG4gICk6IChzYjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3Qge1xuICAgIHJldHVybiAoc2I6IFN0YWNrQnVpbGRlcikgPT4ge1xuICAgICAgcmV0dXJuIGVjMi5WcGMuZnJvbUxvb2t1cChzYi5nZXRTdGFjaygpLCBpZCwge1xuICAgICAgICB2cGNOYW1lOiBgJHt2cGNTdGFja05hbWV9LyR7aWR9YFxuICAgICAgfSk7XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zZWNyZXRzL2FsaWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUE2QztBQUU3QyxNQUFhLEtBQU0sU0FBUSxxQkFBRyxDQUFDLEtBQUs7SUFDbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQU5ELHNCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGF3c19rbXMgYXMga21zIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmV4cG9ydCBjbGFzcyBBbGlhcyBleHRlbmRzIGttcy5BbGlhcyB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBrbXMuQWxpYXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- export * from "./alias";
2
- export * from "../database/database";
3
- export * from "./kms";
4
- export * from "./parameter";
5
- export * from "./secret";
@@ -1,22 +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/database"), exports);
19
- __exportStar(require("./kms"), exports);
20
- __exportStar(require("./parameter"), exports);
21
- __exportStar(require("./secret"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zZWNyZXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsdURBQXFDO0FBQ3JDLHdDQUFzQjtBQUN0Qiw4Q0FBNEI7QUFDNUIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYWxpYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuLi9kYXRhYmFzZS9kYXRhYmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4va21zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJhbWV0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlY3JldFwiO1xuIl19
@@ -1,14 +0,0 @@
1
- import { Alias, Key } from "aws-cdk-lib/aws-kms";
2
- import { Construct } from "constructs";
3
- import { KeyValue } from "../../../types";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9rbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFDdkMsNERBQXFEO0FBU3JELE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFJL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxhQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLFVBQVU7WUFDakQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDakMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtZQUN0QyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFLGFBQWE7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQTdCRCxnREE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsaWFzLCBLZXkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBDdXN0b21lck1hbmFnZWRLZXlQcm9wcyB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJNYW5hZ2VkS2V5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGtleTogS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgYWxpYXM6IEFsaWFzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21lck1hbmFnZWRLZXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmtleSA9IG5ldyBLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBLTVMgS2V5YCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9S2V5QXJuYCwge1xuICAgICAga2V5OiBgJHtpZH1Bcm5gLFxuICAgICAgdmFsdWU6IHRoaXMua2V5LmtleUFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfUtleUFybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmtleSwgcHJvcHMudGFncyk7XG5cbiAgICB0aGlzLmFsaWFzID0gbmV3IEFsaWFzKHRoaXMsIGAke2lkfUtleUFsaWFzYCwge1xuICAgICAgYWxpYXNOYW1lOiBwcm9wcy5hbGlhc05hbWUgfHwgYGNtay8ke2lkfWAsXG4gICAgICB0YXJnZXRLZXk6IHRoaXMua2V5XG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1LZXlBbGlhc0FybmAsIHtcbiAgICAgIGtleTogYCR7aWR9QWxpYXNBcm5gLFxuICAgICAgdmFsdWU6IHRoaXMuYWxpYXMuYWxpYXNBcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1LZXlBbGlhc0FybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmFsaWFzLCBwcm9wcy50YWdzKTtcbiAgfVxufVxuIl19
@@ -1,26 +0,0 @@
1
- import { aws_ssm as ssm } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- import { KeyValue } from "../../../types";
4
- import { CustomerManagedKey } from "./";
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 _1 = require("./");
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 _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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9wYXJhbWV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTZDO0FBQzdDLGlEQUFzRDtBQUN0RCxtRUFHc0M7QUFDdEMsMkNBQXVDO0FBRXZDLHlCQUF3QztBQUN4QyxzRUFBbUU7QUFFbkUsTUFBYSxlQUFnQixTQUFRLHFCQUFHLENBQUMsZUFBZTtJQUN0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLGdCQUFnQjtZQUN2RCxJQUFJLEVBQUUscUJBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVJELDBDQVFDO0FBY0QsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUtsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRXZCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLHFCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO2dCQUNsRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUUsVUFBVTtnQkFDakQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRTtZQUN6RSxZQUFZLEVBQUUsK0JBQStCO1lBQzdDLFlBQVksRUFBRSxHQUFHLEVBQUUsdUJBQXVCO1lBQzFDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsY0FBYztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLG1CQUFtQjtvQkFDMUQsS0FBSyxFQUNILEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxrQkFBa0I7b0JBQ3BFLElBQUksRUFBRSxjQUFjO29CQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDM0Isa0NBQWtDO2lCQUNuQztnQkFDRCxrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDekU7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxtQkFBbUI7b0JBQzFELEtBQUssRUFDSCxLQUFLLENBQUMsS0FBSzt3QkFDWCxpQ0FBaUMsRUFBRSxFQUFFO3dCQUNyQyxrQkFBa0I7b0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztvQkFDMUIsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLO29CQUMzQixrQ0FBa0M7aUJBQ25DO2dCQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUN6RTtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNqQjthQUNGO1lBQ0QsTUFBTSxFQUFFLDBDQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0MsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7cUJBQzNFO2lCQUNGLENBQUM7Z0JBQ0YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qix5QkFBeUI7cUJBQzFCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsYUFBYSxLQUFLLENBQUMsSUFBSSxFQUFFO3FCQUN4RTtpQkFDRixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRjtBQXZGRCxzREF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3Nfc3NtIGFzIHNzbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LFxuICBQaHlzaWNhbFJlc291cmNlSWRcbn0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5IH0gZnJvbSBcIi4vXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuZXhwb3J0IGNsYXNzIFN0cmluZ1BhcmFtZXRlciBleHRlbmRzIHNzbS5TdHJpbmdQYXJhbWV0ZXIge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogc3NtLlN0cmluZ1BhcmFtZXRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiB8fCBgJHtpZH0gU1NNIFBhcmFtZXRlcmAsXG4gICAgICB0aWVyOiBzc20uUGFyYW1ldGVyVGllci5JTlRFTExJR0VOVF9USUVSSU5HXG4gICAgfSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFNlY3VyZVN0cmluZ1BhcmFtZXRlclByb3BzIHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIGFsaWFzTmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3ZlcndyaXRlPzogYm9vbGVhbjtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xuICB2YWx1ZT86IHN0cmluZztcbiAgY21rPzogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xufVxuXG5leHBvcnQgY2xhc3MgU2VjdXJlU3RyaW5nUGFyYW1ldGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNtazogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyOiBBd3NDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjdXJlU3RyaW5nUGFyYW1ldGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcblxuICAgIGlmIChwcm9wcy5jbWspIHtcbiAgICAgIHRoaXMuY21rID0gcHJvcHMuY21rO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNtayA9IG5ldyBDdXN0b21lck1hbmFnZWRLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IEtNUyBLZXlgLFxuICAgICAgICBhbGlhc05hbWU6IHByb3BzLmFsaWFzTmFtZSxcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5wYXJhbWV0ZXIgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYCR7aWR9U2VjdXJlU3RyaW5nUGFyYW1ldGVyYCwge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6U2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIsXG4gICAgICBmdW5jdGlvbk5hbWU6IGAke2lkfVNlY3VyZVN0cmluZ1BhcmFtZXRlcmAsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkBhd3Mtc2RrL2NsaWVudC1zc21cIixcbiAgICAgICAgYWN0aW9uOiBcIlB1dFBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IHNlY3VyZSBwYXJhbWV0ZXJgLFxuICAgICAgICAgIFZhbHVlOlxuICAgICAgICAgICAgcHJvcHMudmFsdWUgfHwgcHJvY2Vzcy5lbnYuQ0RLX1NFQ1VSRV9TVFJJTkcgfHwgXCJwbGFjZWhvbGRlclZhbHVlXCIsXG4gICAgICAgICAgVHlwZTogXCJTZWN1cmVTdHJpbmdcIixcbiAgICAgICAgICBLZXlJZDogdGhpcy5jbWsuYWxpYXMua2V5SWRcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgdGFncyB0byB0aGUgcGFyYW1ldGVyXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlU2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIpXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJAYXdzLXNkay9jbGllbnQtc3NtXCIsXG4gICAgICAgIGFjdGlvbjogXCJQdXRQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgRGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBzZWN1cmUgcGFyYW1ldGVyYCxcbiAgICAgICAgICBWYWx1ZTpcbiAgICAgICAgICAgIHByb3BzLnZhbHVlIHx8XG4gICAgICAgICAgICBgcHJvY2Vzcy5lbnYuQ0RLX1NFQ1VSRV9TVFJJTkdfJHtpZH1gIHx8XG4gICAgICAgICAgICBcInBsYWNlaG9sZGVyVmFsdWVcIixcbiAgICAgICAgICBPdmVyd3JpdGU6IHByb3BzLm92ZXJ3cml0ZSxcbiAgICAgICAgICBUeXBlOiBcIlNlY3VyZVN0cmluZ1wiLFxuICAgICAgICAgIEtleUlkOiB0aGlzLmNtay5hbGlhcy5rZXlJZFxuICAgICAgICAgIC8vIFRPRE86IEFkZCB0YWdzIHRvIHRoZSBwYXJhbWV0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoXCJ1cGRhdGVTZWN1cmVTdHJpbmdQYXJhbWV0ZXJcIilcbiAgICAgIH0sXG4gICAgICBvbkRlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkBhd3Mtc2RrL2NsaWVudC1zc21cIixcbiAgICAgICAgYWN0aW9uOiBcIkRlbGV0ZVBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMubmFtZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcImttczpFbmNyeXB0XCJdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6a21zOiR7cHJvcHMucmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06a2V5LyR7dGhpcy5jbWsua2V5LmtleUlkfWBcbiAgICAgICAgICBdXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNzbTpEZWxldGVQYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIFwic3NtOlB1dFBhcmFtZXRlclwiLFxuICAgICAgICAgICAgXCJzc206QWRkVGFnc1RvUmVzb3VyY2VcIixcbiAgICAgICAgICAgIFwibG9nczpEZWxldGVSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgICAgIFwibG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpzc206JHtwcm9wcy5yZWdpb259OiR7cHJvcHMuYWNjb3VudElkfTpwYXJhbWV0ZXIke3Byb3BzLm5hbWV9YFxuICAgICAgICAgIF1cbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBpZiAoIXByb3BzLmNtaykge1xuICAgICAgdGhpcy5wYXJhbWV0ZXIubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuY21rKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { SecretValue } from "aws-cdk-lib";
2
- import { Secret as CdkSecret, SecretStringGenerator } from "aws-cdk-lib/aws-secretsmanager";
3
- import { Construct } from "constructs";
4
- import { StackBuilder } from "../awsStack";
5
- import { CustomerManagedKey } from "./kms";
6
- import { KeyValue } from "../../../types";
7
- interface SecretProps {
8
- secretName: string;
9
- secretObjectValue?: {
10
- [key: string]: SecretValue;
11
- };
12
- secretStringValue?: string;
13
- description?: string;
14
- aliasName?: string;
15
- generateSecretString?: SecretStringGenerator;
16
- tags: KeyValue;
17
- }
18
- export declare class Secret extends Construct {
19
- readonly secret: CdkSecret;
20
- readonly secretsCustomerManagedKey: CustomerManagedKey;
21
- constructor(scope: Construct, id: string, props: SecretProps);
22
- static build(id: string, props: SecretProps): (sb: StackBuilder) => Construct;
23
- }
24
- export {};
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Secret = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
6
- const constructs_1 = require("constructs");
7
- const tagResource_1 = require("../../../utils/tagResource");
8
- const kms_1 = require("./kms");
9
- class Secret extends constructs_1.Construct {
10
- constructor(scope, id, props) {
11
- super(scope, id);
12
- this.secretsCustomerManagedKey = new kms_1.CustomerManagedKey(this, `${id}CustomerManagedKey`, {
13
- aliasName: `cmk/${id}`,
14
- tags: props.tags
15
- });
16
- /**
17
- * If a secretStringValue is provided, use it to create the secret.
18
- */
19
- const secretStringValue = props.secretStringValue
20
- ? {
21
- secretStringValue: aws_cdk_lib_1.SecretValue.unsafePlainText(props.secretStringValue || "")
22
- }
23
- : {};
24
- /**
25
- * If a generateSecretString is provided, use it to create the secret.
26
- * If a secretStringValue is provided, ignore the generateSecretString.
27
- */
28
- const generateSecretString = !props.secretStringValue && props.generateSecretString
29
- ? { generateSecretString: props.generateSecretString }
30
- : {};
31
- // Construct the base options for CdkSecret
32
- const secretOptions = {
33
- secretName: props.secretName,
34
- secretObjectValue: props.secretObjectValue,
35
- encryptionKey: this.secretsCustomerManagedKey.key,
36
- description: props.description,
37
- ...secretStringValue,
38
- ...generateSecretString
39
- };
40
- this.secret = new aws_secretsmanager_1.Secret(this, `${id}Secret`, secretOptions);
41
- (0, tagResource_1.default)(this.secret, props.tags);
42
- }
43
- static build(id, props) {
44
- return (sb) => {
45
- const newProps = {
46
- ...props
47
- };
48
- return new this(sb.getStack(), id, newProps);
49
- };
50
- }
51
- }
52
- exports.Secret = Secret;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTBDO0FBQzFDLHVFQUd3QztBQUN4QywyQ0FBdUM7QUFDdkMsNERBQXFEO0FBRXJELCtCQUEyQztBQWUzQyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUluQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksd0JBQWtCLENBQ3JELElBQUksRUFDSixHQUFHLEVBQUUsb0JBQW9CLEVBQ3pCO1lBQ0UsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUNGLENBQUM7UUFFRjs7V0FFRztRQUNILE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQjtZQUMvQyxDQUFDLENBQUM7Z0JBQ0UsaUJBQWlCLEVBQUUseUJBQVcsQ0FBQyxlQUFlLENBQzVDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQzlCO2FBQ0Y7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVA7OztXQUdHO1FBQ0gsTUFBTSxvQkFBb0IsR0FDeEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLG9CQUFvQjtZQUNwRCxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUU7WUFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULDJDQUEyQztRQUMzQyxNQUFNLGFBQWEsR0FBRztZQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUMxQyxhQUFhLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUc7WUFDakQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsb0JBQW9CO1NBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksMkJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVoRSxJQUFBLHFCQUFXLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQ1YsRUFBVSxFQUNWLEtBQWtCO1FBRWxCLE9BQU8sQ0FBQyxFQUFnQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQWdCO2dCQUM1QixHQUFHLEtBQUs7YUFDVCxDQUFDO1lBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTlERCx3QkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWNyZXRWYWx1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgU2VjcmV0IGFzIENka1NlY3JldCxcbiAgU2VjcmV0U3RyaW5nR2VuZXJhdG9yXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdGFnUmVzb3VyY2UgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3RhZ1Jlc291cmNlXCI7XG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcbmltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEtleSB9IGZyb20gXCIuL2ttc1wiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuaW50ZXJmYWNlIFNlY3JldFByb3BzIHtcbiAgc2VjcmV0TmFtZTogc3RyaW5nO1xuICBzZWNyZXRPYmplY3RWYWx1ZT86IHtcbiAgICBba2V5OiBzdHJpbmddOiBTZWNyZXRWYWx1ZTtcbiAgfTtcbiAgc2VjcmV0U3RyaW5nVmFsdWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIGdlbmVyYXRlU2VjcmV0U3RyaW5nPzogU2VjcmV0U3RyaW5nR2VuZXJhdG9yO1xuICB0YWdzOiBLZXlWYWx1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3JldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzZWNyZXQ6IENka1NlY3JldDtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldHNDdXN0b21lck1hbmFnZWRLZXk6IEN1c3RvbWVyTWFuYWdlZEtleTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zZWNyZXRzQ3VzdG9tZXJNYW5hZ2VkS2V5ID0gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtpZH1DdXN0b21lck1hbmFnZWRLZXlgLFxuICAgICAge1xuICAgICAgICBhbGlhc05hbWU6IGBjbWsvJHtpZH1gLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIElmIGEgc2VjcmV0U3RyaW5nVmFsdWUgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBjcmVhdGUgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICBjb25zdCBzZWNyZXRTdHJpbmdWYWx1ZSA9IHByb3BzLnNlY3JldFN0cmluZ1ZhbHVlXG4gICAgICA/IHtcbiAgICAgICAgICBzZWNyZXRTdHJpbmdWYWx1ZTogU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KFxuICAgICAgICAgICAgcHJvcHMuc2VjcmV0U3RyaW5nVmFsdWUgfHwgXCJcIlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgOiB7fTtcblxuICAgIC8qKlxuICAgICAqIElmIGEgZ2VuZXJhdGVTZWNyZXRTdHJpbmcgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBjcmVhdGUgdGhlIHNlY3JldC5cbiAgICAgKiBJZiBhIHNlY3JldFN0cmluZ1ZhbHVlIGlzIHByb3ZpZGVkLCBpZ25vcmUgdGhlIGdlbmVyYXRlU2VjcmV0U3RyaW5nLlxuICAgICAqL1xuICAgIGNvbnN0IGdlbmVyYXRlU2VjcmV0U3RyaW5nID1cbiAgICAgICFwcm9wcy5zZWNyZXRTdHJpbmdWYWx1ZSAmJiBwcm9wcy5nZW5lcmF0ZVNlY3JldFN0cmluZ1xuICAgICAgICA/IHsgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHByb3BzLmdlbmVyYXRlU2VjcmV0U3RyaW5nIH1cbiAgICAgICAgOiB7fTtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgYmFzZSBvcHRpb25zIGZvciBDZGtTZWNyZXRcbiAgICBjb25zdCBzZWNyZXRPcHRpb25zID0ge1xuICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgIHNlY3JldE9iamVjdFZhbHVlOiBwcm9wcy5zZWNyZXRPYmplY3RWYWx1ZSxcbiAgICAgIGVuY3J5cHRpb25LZXk6IHRoaXMuc2VjcmV0c0N1c3RvbWVyTWFuYWdlZEtleS5rZXksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAuLi5zZWNyZXRTdHJpbmdWYWx1ZSxcbiAgICAgIC4uLmdlbmVyYXRlU2VjcmV0U3RyaW5nXG4gICAgfTtcblxuICAgIHRoaXMuc2VjcmV0ID0gbmV3IENka1NlY3JldCh0aGlzLCBgJHtpZH1TZWNyZXRgLCBzZWNyZXRPcHRpb25zKTtcblxuICAgIHRhZ1Jlc291cmNlKHRoaXMuc2VjcmV0LCBwcm9wcy50YWdzKTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTZWNyZXRQcm9wc1xuICApOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb3BzOiBTZWNyZXRQcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHNcbiAgICAgIH07XG4gICAgICByZXR1cm4gbmV3IHRoaXMoc2IuZ2V0U3RhY2soKSwgaWQsIG5ld1Byb3BzKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,12 +0,0 @@
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 declare 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 {};
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Ecr = void 0;
4
- const aws_ecr_1 = require("aws-cdk-lib/aws-ecr");
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- class Ecr extends aws_ecr_1.Repository {
7
- constructor(scope, id, props) {
8
- super(scope, id, Ecr.getRepositoryProps(props));
9
- this.outputs = [];
10
- this.outputs.push(new aws_cdk_lib_1.CfnOutput(this, "ecrRepository", {
11
- key: "RepositoryName",
12
- value: this.repositoryName,
13
- exportName: `${id}RepositoryName`
14
- }));
15
- }
16
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- static getRepositoryProps(props) {
18
- // todo: lifeCycleRules
19
- // todo: Encryption & EncryptionKey (default is AWS managed KMS key)
20
- return {
21
- imageScanOnPush: true,
22
- imageTagMutability: aws_ecr_1.TagMutability.MUTABLE,
23
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
24
- };
25
- }
26
- static build(id, props) {
27
- return (scope) => new Ecr(scope.getStack(), id, props);
28
- }
29
- }
30
- exports.Ecr = Ecr;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmFnZS9lY3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBSTZCO0FBQzdCLDZDQUF1RDtBQU12RCxNQUFhLEdBQUksU0FBUSxvQkFBVTtJQUdqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBSDFDLFlBQU8sR0FBZ0IsRUFBRSxDQUFDO1FBS2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzFCLFVBQVUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCO1NBQ2xDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBZ0I7UUFDeEMsdUJBQXVCO1FBQ3ZCLG9FQUFvRTtRQUNwRSxPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUk7WUFDckIsa0JBQWtCLEVBQUUsdUJBQWEsQ0FBQyxPQUFPO1lBQ3pDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUFnQjtRQUN2QyxPQUFPLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUE3QkQsa0JBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIFJlcG9zaXRvcnksXG4gIFJlcG9zaXRvcnlQcm9wcyxcbiAgVGFnTXV0YWJpbGl0eVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9hd3NTdGFja1wiO1xuXG5pbnRlcmZhY2UgRWNyUHJvcHMge31cblxuZXhwb3J0IGNsYXNzIEVjciBleHRlbmRzIFJlcG9zaXRvcnkge1xuICBwcml2YXRlIG91dHB1dHM6IENmbk91dHB1dFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFY3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgRWNyLmdldFJlcG9zaXRvcnlQcm9wcyhwcm9wcykpO1xuXG4gICAgdGhpcy5vdXRwdXRzLnB1c2goXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiZWNyUmVwb3NpdG9yeVwiLCB7XG4gICAgICAgIGtleTogXCJSZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICB2YWx1ZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7aWR9UmVwb3NpdG9yeU5hbWVgXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHN0YXRpYyBnZXRSZXBvc2l0b3J5UHJvcHMocHJvcHM/OiBFY3JQcm9wcyk6IFJlcG9zaXRvcnlQcm9wcyB7XG4gICAgLy8gdG9kbzogbGlmZUN5Y2xlUnVsZXNcbiAgICAvLyB0b2RvOiBFbmNyeXB0aW9uICYgRW5jcnlwdGlvbktleSAoZGVmYXVsdCBpcyBBV1MgbWFuYWdlZCBLTVMga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZVNjYW5PblB1c2g6IHRydWUsXG4gICAgICBpbWFnZVRhZ011dGFiaWxpdHk6IFRhZ011dGFiaWxpdHkuTVVUQUJMRSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wcz86IEVjclByb3BzKTogKHNjb3BlOiBTdGFja0J1aWxkZXIpID0+IEVjciB7XG4gICAgcmV0dXJuIChzY29wZTogU3RhY2tCdWlsZGVyKSA9PiBuZXcgRWNyKHNjb3BlLmdldFN0YWNrKCksIGlkLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from "./s3";
2
- export * from "./ecr";
@@ -1,19 +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("./s3"), exports);
18
- __exportStar(require("./ecr"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBcUI7QUFDckIsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vczNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VjclwiO1xuIl19
@@ -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
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.S3PublicReadBucket = exports.S3WebsiteBucket = exports.S3Bucket = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
- class S3Bucket extends aws_s3_1.Bucket {
7
- constructor(scope, id, props) {
8
- super(scope, id, {
9
- ...props,
10
- autoDeleteObjects: true,
11
- enforceSSL: true,
12
- removalPolicy: props?.removalPolicy || aws_cdk_lib_1.RemovalPolicy.DESTROY,
13
- versioned: true
14
- });
15
- }
16
- }
17
- exports.S3Bucket = S3Bucket;
18
- class S3WebsiteBucket extends S3Bucket {
19
- constructor(scope, id, props) {
20
- super(scope, id, {
21
- ...props,
22
- websiteErrorDocument: "error.html",
23
- websiteIndexDocument: "index.html",
24
- publicReadAccess: true
25
- });
26
- }
27
- }
28
- exports.S3WebsiteBucket = S3WebsiteBucket;
29
- class S3PublicReadBucket extends S3Bucket {
30
- constructor(scope, id, props) {
31
- super(scope, id, {
32
- ...props,
33
- publicReadAccess: true,
34
- blockPublicAccess: new aws_s3_1.BlockPublicAccess({
35
- blockPublicAcls: false,
36
- blockPublicPolicy: false,
37
- ignorePublicAcls: false,
38
- restrictPublicBuckets: false
39
- })
40
- });
41
- }
42
- }
43
- exports.S3PublicReadBucket = S3PublicReadBucket;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yYWdlL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1QywrQ0FBNEU7QUFHNUUsTUFBYSxRQUFTLFNBQVEsZUFBTTtJQUNsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE9BQU87WUFDNUQsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVkQsNEJBVUM7QUFFRCxNQUFhLGVBQWdCLFNBQVEsUUFBUTtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1Isb0JBQW9CLEVBQUUsWUFBWTtZQUNsQyxvQkFBb0IsRUFBRSxZQUFZO1lBQ2xDLGdCQUFnQixFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGtCQUFtQixTQUFRLFFBQVE7SUFDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsSUFBSSwwQkFBaUIsQ0FBQztnQkFDdkMsZUFBZSxFQUFFLEtBQUs7Z0JBQ3RCLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLHFCQUFxQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWJELGdEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgUzNCdWNrZXQgZXh0ZW5kcyBCdWNrZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzPy5yZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM1dlYnNpdGVCdWNrZXQgZXh0ZW5kcyBTM0J1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgd2Vic2l0ZUVycm9yRG9jdW1lbnQ6IFwiZXJyb3IuaHRtbFwiLFxuICAgICAgd2Vic2l0ZUluZGV4RG9jdW1lbnQ6IFwiaW5kZXguaHRtbFwiLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM1B1YmxpY1JlYWRCdWNrZXQgZXh0ZW5kcyBTM0J1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBuZXcgQmxvY2tQdWJsaWNBY2Nlc3Moe1xuICAgICAgICBibG9ja1B1YmxpY0FjbHM6IGZhbHNlLFxuICAgICAgICBibG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgIGlnbm9yZVB1YmxpY0FjbHM6IGZhbHNlLFxuICAgICAgICByZXN0cmljdFB1YmxpY0J1Y2tldHM6IGZhbHNlXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG59XG4iXX0=