@fjall/components-infrastructure 0.1.16 → 0.1.18

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 (70) hide show
  1. package/dist/lib/config/aws/ecrDefaultImage.js +3 -3
  2. package/dist/lib/config/aws/identityCenter.d.ts +1 -2
  3. package/dist/lib/config/aws/identityCenter.js +7 -2
  4. package/dist/lib/config/aws/identityCenterGroupMembership.d.ts +10 -0
  5. package/dist/lib/config/aws/identityCenterGroupMembership.js +96 -0
  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/ipamPoolId.d.ts +1 -1
  9. package/dist/lib/config/aws/ipamPoolId.js +3 -3
  10. package/dist/lib/config/aws/organisationsAccess.d.ts +10 -0
  11. package/dist/lib/config/aws/organisationsAccess.js +40 -0
  12. package/dist/lib/patterns/aws/basicApp.d.ts +0 -1
  13. package/dist/lib/patterns/aws/basicApp.js +4 -4
  14. package/dist/lib/patterns/aws/buildkite.d.ts +1 -1
  15. package/dist/lib/patterns/aws/buildkite.js +2 -2
  16. package/dist/lib/patterns/aws/freeTierApp.d.ts +0 -1
  17. package/dist/lib/patterns/aws/freeTierApp.js +2 -4
  18. package/dist/lib/patterns/aws/managedAccount.d.ts +0 -1
  19. package/dist/lib/patterns/aws/managedAccount.js +8 -8
  20. package/dist/lib/patterns/aws/managedIdentityCenter.d.ts +4 -0
  21. package/dist/lib/patterns/aws/managedIdentityCenter.js +24 -0
  22. package/dist/lib/patterns/aws/managedOrganisation.d.ts +1 -2
  23. package/dist/lib/patterns/aws/managedOrganisation.js +11 -12
  24. package/dist/lib/resources/aws/compute/ecs.js +2 -4
  25. package/dist/lib/resources/aws/database/rdsFreeTier.js +2 -3
  26. package/dist/lib/resources/aws/networking/ipamPool.js +11 -12
  27. package/dist/lib/resources/aws/networking/vpc.d.ts +7 -2
  28. package/dist/lib/resources/aws/networking/vpc.js +23 -19
  29. package/dist/lib/utils/getAccountId.js +2 -2
  30. package/dist/lib/utils/getConfig.d.ts +4 -5
  31. package/dist/lib/utils/getConfig.js +23 -45
  32. package/package.json +23 -23
  33. package/dist/lib/config/aws/delegateHostedZoneRole.d.ts +0 -5
  34. package/dist/lib/config/aws/delegateHostedZoneRole.js +0 -77
  35. package/dist/lib/config/aws/identityCenterUser.d.ts +0 -16
  36. package/dist/lib/config/aws/identityCenterUser.js +0 -125
  37. package/dist/lib/config/aws/ipamPool.d.ts +0 -5
  38. package/dist/lib/config/aws/ipamPool.js +0 -56
  39. package/dist/lib/config/aws/ipamPoolResourceShare.d.ts +0 -5
  40. package/dist/lib/config/aws/ipamPoolResourceShare.js +0 -42
  41. package/dist/lib/config/aws/ramEnableSharing.d.ts +0 -5
  42. package/dist/lib/config/aws/ramEnableSharing.js +0 -35
  43. package/dist/lib/config/aws/users.d.ts +0 -5
  44. package/dist/lib/config/aws/users.js +0 -126
  45. package/dist/lib/config/fjall/hostedZones/fjall.io.d.ts +0 -10
  46. package/dist/lib/config/fjall/hostedZones/fjall.io.js +0 -25
  47. package/dist/lib/resources/aws/constant/ecr.d.ts +0 -12
  48. package/dist/lib/resources/aws/constant/ecr.js +0 -30
  49. package/dist/lib/resources/aws/constant/vpc.d.ts +0 -26
  50. package/dist/lib/resources/aws/constant/vpc.js +0 -63
  51. package/dist/lib/resources/aws/networking/hostedZone.d.ts +0 -21
  52. package/dist/lib/resources/aws/networking/hostedZone.js +0 -68
  53. package/dist/lib/resources/aws/store/alias.d.ts +0 -5
  54. package/dist/lib/resources/aws/store/alias.js +0 -13
  55. package/dist/lib/resources/aws/store/database.d.ts +0 -18
  56. package/dist/lib/resources/aws/store/database.js +0 -33
  57. package/dist/lib/resources/aws/store/index.d.ts +0 -7
  58. package/dist/lib/resources/aws/store/index.js +0 -24
  59. package/dist/lib/resources/aws/store/kms.d.ts +0 -14
  60. package/dist/lib/resources/aws/store/kms.js +0 -34
  61. package/dist/lib/resources/aws/store/parameter.d.ts +0 -26
  62. package/dist/lib/resources/aws/store/parameter.js +0 -100
  63. package/dist/lib/resources/aws/store/rds.d.ts +0 -25
  64. package/dist/lib/resources/aws/store/rds.js +0 -132
  65. package/dist/lib/resources/aws/store/s3.d.ts +0 -11
  66. package/dist/lib/resources/aws/store/s3.js +0 -43
  67. package/dist/lib/resources/aws/store/secret.d.ts +0 -26
  68. package/dist/lib/resources/aws/store/secret.js +0 -55
  69. package/dist/lib/utils/usersConfig.d.ts +0 -7
  70. package/dist/lib/utils/usersConfig.js +0 -18
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Users = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const customResources = require("aws-cdk-lib/custom-resources");
6
- const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
7
- const identityStoreId = aws_cdk_lib_1.Fn.importValue("identityStoreID");
8
- // TODO: Will need to customise what group they are assigned to
9
- const adminGroupId = aws_cdk_lib_1.Fn.importValue("AdministratorAccessGroupId");
10
- const adminUsers = [
11
- {
12
- IdentityStoreId: identityStoreId,
13
- UserName: "paul@fjall.io",
14
- DisplayName: "Paul Oram",
15
- Name: {
16
- FamilyName: "Oram",
17
- GivenName: "Paul"
18
- },
19
- Emails: [
20
- {
21
- Primary: true,
22
- Value: "paul@fjall.io"
23
- }
24
- ]
25
- },
26
- {
27
- IdentityStoreId: identityStoreId,
28
- UserName: "joseph@fjall.io",
29
- DisplayName: "Joseph Eigenraam",
30
- Name: {
31
- FamilyName: "Eigenraam",
32
- GivenName: "Joseph"
33
- },
34
- Emails: [
35
- {
36
- Primary: true,
37
- Value: "joseph@fjall.io"
38
- }
39
- ]
40
- }
41
- ];
42
- class Users extends aws_cdk_lib_1.Stack {
43
- constructor(scope, id, props) {
44
- super(scope, id, props);
45
- for (const user of adminUsers) {
46
- const createUser = new awsCustomResource_1.AwsCustomResource(this, `createUser${user.DisplayName.replace(/\s/g, "")}`, {
47
- functionName: "createUsers",
48
- onCreate: {
49
- service: "IdentityStore",
50
- action: "createUser",
51
- parameters: user,
52
- physicalResourceId: customResources.PhysicalResourceId.of("createUsers")
53
- },
54
- onUpdate: {
55
- service: "IdentityStore",
56
- action: "updateUser",
57
- parameters: user,
58
- physicalResourceId: customResources.PhysicalResourceId.of("updateUsers")
59
- },
60
- resourceType: "Custom::IdentityCenterUsers"
61
- });
62
- new awsCustomResource_1.AwsCustomResource(this, `deleteUser${user.DisplayName.replace(/\s/g, "")}`, {
63
- functionName: "deleteUsers",
64
- onDelete: {
65
- service: "IdentityStore",
66
- action: "deleteUser",
67
- parameters: {
68
- IdentityStoreId: identityStoreId,
69
- UserId: createUser.getResponseField("UserId")
70
- }
71
- },
72
- resourceType: "Custom::IdentityCenterUsers"
73
- });
74
- new aws_cdk_lib_1.CfnOutput(this, `${user.DisplayName.replace(/\s/g, "")}UserId`, {
75
- key: `${user.DisplayName.replace(/\s/g, "")}UserId`,
76
- value: createUser.getResponseField("UserId"),
77
- exportName: `${user.DisplayName.replace(/\s/g, "")}UserId`
78
- });
79
- const groupMembershipId = new awsCustomResource_1.AwsCustomResource(this, `createGroupMembership${user.DisplayName.replace(/\s/g, "")}`, {
80
- functionName: "createGroupMembership",
81
- onCreate: {
82
- service: "IdentityStore",
83
- action: "createGroupMembership",
84
- parameters: {
85
- GroupId: adminGroupId,
86
- IdentityStoreId: identityStoreId,
87
- MemberId: {
88
- UserId: createUser.getResponseField("UserId")
89
- }
90
- },
91
- physicalResourceId: customResources.PhysicalResourceId.of("createUsers")
92
- },
93
- onUpdate: {
94
- service: "IdentityStore",
95
- action: "createGroupMembership",
96
- parameters: {
97
- GroupId: adminGroupId,
98
- IdentityStoreId: identityStoreId,
99
- MemberId: {
100
- UserId: createUser.getResponseField("UserId")
101
- }
102
- },
103
- physicalResourceId: customResources.PhysicalResourceId.of("createUsers")
104
- }
105
- });
106
- new awsCustomResource_1.AwsCustomResource(this, `deleteGroupMembership${user.DisplayName.replace(/\s/g, "")}`, {
107
- functionName: "deleteGroupMembership",
108
- onDelete: {
109
- service: "IdentityStore",
110
- action: "deleteGroupMembership",
111
- parameters: {
112
- IdentityStoreId: identityStoreId,
113
- MembershipId: groupMembershipId.getResponseField("MembershipId")
114
- }
115
- },
116
- resourceType: "Custom::IdentityCenterUsers"
117
- });
118
- new aws_cdk_lib_1.CfnOutput(this, `${user.DisplayName.replace(/\s/g, "")}GroupMembershipId`, {
119
- value: groupMembershipId.getResponseField("MembershipId"),
120
- exportName: `${user.DisplayName.replace(/\s/g, "")}GroupMembershipId`
121
- });
122
- }
123
- }
124
- }
125
- exports.Users = Users;
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy91c2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBK0Q7QUFDL0QsZ0VBQWdFO0FBRWhFLHVGQUFvRjtBQUVwRixNQUFNLGVBQWUsR0FBRyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzFELCtEQUErRDtBQUMvRCxNQUFNLFlBQVksR0FBRyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRWxFLE1BQU0sVUFBVSxHQUFHO0lBQ2pCO1FBQ0UsZUFBZSxFQUFFLGVBQWU7UUFDaEMsUUFBUSxFQUFFLGVBQWU7UUFDekIsV0FBVyxFQUFFLFdBQVc7UUFDeEIsSUFBSSxFQUFFO1lBQ0osVUFBVSxFQUFFLE1BQU07WUFDbEIsU0FBUyxFQUFFLE1BQU07U0FDbEI7UUFDRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxPQUFPLEVBQUUsSUFBSTtnQkFDYixLQUFLLEVBQUUsZUFBZTthQUN2QjtTQUNGO0tBQ0Y7SUFDRDtRQUNFLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixJQUFJLEVBQUU7WUFDSixVQUFVLEVBQUUsV0FBVztZQUN2QixTQUFTLEVBQUUsUUFBUTtTQUNwQjtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLEtBQUssRUFBRSxpQkFBaUI7YUFDekI7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGLE1BQWEsS0FBTSxTQUFRLG1CQUFLO0lBQzlCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxxQ0FBaUIsQ0FDdEMsSUFBSSxFQUNKLGFBQWEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQ2xEO2dCQUNFLFlBQVksRUFBRSxhQUFhO2dCQUMzQixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLE1BQU0sRUFBRSxZQUFZO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN2RDtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLE1BQU0sRUFBRSxZQUFZO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN2RDtnQkFDRCxZQUFZLEVBQUUsNkJBQTZCO2FBQzVDLENBQ0YsQ0FBQztZQUVGLElBQUkscUNBQWlCLENBQ25CLElBQUksRUFDSixhQUFhLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUNsRDtnQkFDRSxZQUFZLEVBQUUsYUFBYTtnQkFDM0IsUUFBUSxFQUFFO29CQUNSLE9BQU8sRUFBRSxlQUFlO29CQUN4QixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsVUFBVSxFQUFFO3dCQUNWLGVBQWUsRUFBRSxlQUFlO3dCQUNoQyxNQUFNLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztxQkFDOUM7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLDZCQUE2QjthQUM1QyxDQUNGLENBQUM7WUFFRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUTtnQkFDbkQsS0FBSyxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUTthQUMzRCxDQUFDLENBQUM7WUFFSCxNQUFNLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLENBQzdDLElBQUksRUFDSix3QkFBd0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQzdEO2dCQUNFLFlBQVksRUFBRSx1QkFBdUI7Z0JBQ3JDLFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsZUFBZTtvQkFDeEIsTUFBTSxFQUFFLHVCQUF1QjtvQkFDL0IsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxZQUFZO3dCQUNyQixlQUFlLEVBQUUsZUFBZTt3QkFDaEMsUUFBUSxFQUFFOzRCQUNSLE1BQU0sRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO3lCQUM5QztxQkFDRjtvQkFDRCxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3ZEO2dCQUNELFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsZUFBZTtvQkFDeEIsTUFBTSxFQUFFLHVCQUF1QjtvQkFDL0IsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxZQUFZO3dCQUNyQixlQUFlLEVBQUUsZUFBZTt3QkFDaEMsUUFBUSxFQUFFOzRCQUNSLE1BQU0sRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO3lCQUM5QztxQkFDRjtvQkFDRCxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3ZEO2FBQ0YsQ0FDRixDQUFDO1lBRUYsSUFBSSxxQ0FBaUIsQ0FDbkIsSUFBSSxFQUNKLHdCQUF3QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFDN0Q7Z0JBQ0UsWUFBWSxFQUFFLHVCQUF1QjtnQkFDckMsUUFBUSxFQUFFO29CQUNSLE9BQU8sRUFBRSxlQUFlO29CQUN4QixNQUFNLEVBQUUsdUJBQXVCO29CQUMvQixVQUFVLEVBQUU7d0JBQ1YsZUFBZSxFQUFFLGVBQWU7d0JBQ2hDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7cUJBQ2pFO2lCQUNGO2dCQUNELFlBQVksRUFBRSw2QkFBNkI7YUFDNUMsQ0FDRixDQUFDO1lBRUYsSUFBSSx1QkFBUyxDQUNYLElBQUksRUFDSixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLEVBQ3pEO2dCQUNFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7Z0JBQ3pELFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CO2FBQ3RFLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBaEhELHNCQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgRm4sIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuXG5jb25zdCBpZGVudGl0eVN0b3JlSWQgPSBGbi5pbXBvcnRWYWx1ZShcImlkZW50aXR5U3RvcmVJRFwiKTtcbi8vIFRPRE86IFdpbGwgbmVlZCB0byBjdXN0b21pc2Ugd2hhdCBncm91cCB0aGV5IGFyZSBhc3NpZ25lZCB0b1xuY29uc3QgYWRtaW5Hcm91cElkID0gRm4uaW1wb3J0VmFsdWUoXCJBZG1pbmlzdHJhdG9yQWNjZXNzR3JvdXBJZFwiKTtcblxuY29uc3QgYWRtaW5Vc2VycyA9IFtcbiAge1xuICAgIElkZW50aXR5U3RvcmVJZDogaWRlbnRpdHlTdG9yZUlkLFxuICAgIFVzZXJOYW1lOiBcInBhdWxAZmphbGwuaW9cIixcbiAgICBEaXNwbGF5TmFtZTogXCJQYXVsIE9yYW1cIixcbiAgICBOYW1lOiB7XG4gICAgICBGYW1pbHlOYW1lOiBcIk9yYW1cIixcbiAgICAgIEdpdmVuTmFtZTogXCJQYXVsXCJcbiAgICB9LFxuICAgIEVtYWlsczogW1xuICAgICAge1xuICAgICAgICBQcmltYXJ5OiB0cnVlLFxuICAgICAgICBWYWx1ZTogXCJwYXVsQGZqYWxsLmlvXCJcbiAgICAgIH1cbiAgICBdXG4gIH0sXG4gIHtcbiAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICBVc2VyTmFtZTogXCJqb3NlcGhAZmphbGwuaW9cIixcbiAgICBEaXNwbGF5TmFtZTogXCJKb3NlcGggRWlnZW5yYWFtXCIsXG4gICAgTmFtZToge1xuICAgICAgRmFtaWx5TmFtZTogXCJFaWdlbnJhYW1cIixcbiAgICAgIEdpdmVuTmFtZTogXCJKb3NlcGhcIlxuICAgIH0sXG4gICAgRW1haWxzOiBbXG4gICAgICB7XG4gICAgICAgIFByaW1hcnk6IHRydWUsXG4gICAgICAgIFZhbHVlOiBcImpvc2VwaEBmamFsbC5pb1wiXG4gICAgICB9XG4gICAgXVxuICB9XG5dO1xuXG5leHBvcnQgY2xhc3MgVXNlcnMgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgZm9yIChjb25zdCB1c2VyIG9mIGFkbWluVXNlcnMpIHtcbiAgICAgIGNvbnN0IGNyZWF0ZVVzZXIgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGBjcmVhdGVVc2VyJHt1c2VyLkRpc3BsYXlOYW1lLnJlcGxhY2UoL1xccy9nLCBcIlwiKX1gLFxuICAgICAgICB7XG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiBcImNyZWF0ZVVzZXJzXCIsXG4gICAgICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgICAgIHNlcnZpY2U6IFwiSWRlbnRpdHlTdG9yZVwiLFxuICAgICAgICAgICAgYWN0aW9uOiBcImNyZWF0ZVVzZXJcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvbGF0ZXN0L0FXUy9JZGVudGl0eVN0b3JlLmh0bWwjY3JlYXRlVXNlci1wcm9wZXJ0eVxuICAgICAgICAgICAgcGFyYW1ldGVyczogdXNlcixcbiAgICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImNyZWF0ZVVzZXJzXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgICAgc2VydmljZTogXCJJZGVudGl0eVN0b3JlXCIsXG4gICAgICAgICAgICBhY3Rpb246IFwidXBkYXRlVXNlclwiLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogdXNlcixcbiAgICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcInVwZGF0ZVVzZXJzXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpJZGVudGl0eUNlbnRlclVzZXJzXCJcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgZGVsZXRlVXNlciR7dXNlci5EaXNwbGF5TmFtZS5yZXBsYWNlKC9cXHMvZywgXCJcIil9YCxcbiAgICAgICAge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogXCJkZWxldGVVc2Vyc1wiLFxuICAgICAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgIGFjdGlvbjogXCJkZWxldGVVc2VyXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvSWRlbnRpdHlTdG9yZS5odG1sI2RlbGV0ZVVzZXItcHJvcGVydHlcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICAgIFVzZXJJZDogY3JlYXRlVXNlci5nZXRSZXNwb25zZUZpZWxkKFwiVXNlcklkXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpJZGVudGl0eUNlbnRlclVzZXJzXCJcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHt1c2VyLkRpc3BsYXlOYW1lLnJlcGxhY2UoL1xccy9nLCBcIlwiKX1Vc2VySWRgLCB7XG4gICAgICAgIGtleTogYCR7dXNlci5EaXNwbGF5TmFtZS5yZXBsYWNlKC9cXHMvZywgXCJcIil9VXNlcklkYCxcbiAgICAgICAgdmFsdWU6IGNyZWF0ZVVzZXIuZ2V0UmVzcG9uc2VGaWVsZChcIlVzZXJJZFwiKSxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7dXNlci5EaXNwbGF5TmFtZS5yZXBsYWNlKC9cXHMvZywgXCJcIil9VXNlcklkYFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGdyb3VwTWVtYmVyc2hpcElkID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgY3JlYXRlR3JvdXBNZW1iZXJzaGlwJHt1c2VyLkRpc3BsYXlOYW1lLnJlcGxhY2UoL1xccy9nLCBcIlwiKX1gLFxuICAgICAgICB7XG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiBcImNyZWF0ZUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgIGFjdGlvbjogXCJjcmVhdGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgR3JvdXBJZDogYWRtaW5Hcm91cElkLFxuICAgICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgICAgTWVtYmVySWQ6IHtcbiAgICAgICAgICAgICAgICBVc2VySWQ6IGNyZWF0ZVVzZXIuZ2V0UmVzcG9uc2VGaWVsZChcIlVzZXJJZFwiKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlVXNlcnNcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgIGFjdGlvbjogXCJjcmVhdGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgR3JvdXBJZDogYWRtaW5Hcm91cElkLFxuICAgICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgICAgTWVtYmVySWQ6IHtcbiAgICAgICAgICAgICAgICBVc2VySWQ6IGNyZWF0ZVVzZXIuZ2V0UmVzcG9uc2VGaWVsZChcIlVzZXJJZFwiKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlVXNlcnNcIilcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYGRlbGV0ZUdyb3VwTWVtYmVyc2hpcCR7dXNlci5EaXNwbGF5TmFtZS5yZXBsYWNlKC9cXHMvZywgXCJcIil9YCxcbiAgICAgICAge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogXCJkZWxldGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICBvbkRlbGV0ZToge1xuICAgICAgICAgICAgc2VydmljZTogXCJJZGVudGl0eVN0b3JlXCIsXG4gICAgICAgICAgICBhY3Rpb246IFwiZGVsZXRlR3JvdXBNZW1iZXJzaGlwXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvSWRlbnRpdHlTdG9yZS5odG1sI2RlbGV0ZVVzZXItcHJvcGVydHlcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICAgIE1lbWJlcnNoaXBJZDogZ3JvdXBNZW1iZXJzaGlwSWQuZ2V0UmVzcG9uc2VGaWVsZChcIk1lbWJlcnNoaXBJZFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6SWRlbnRpdHlDZW50ZXJVc2Vyc1wiXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIG5ldyBDZm5PdXRwdXQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke3VzZXIuRGlzcGxheU5hbWUucmVwbGFjZSgvXFxzL2csIFwiXCIpfUdyb3VwTWVtYmVyc2hpcElkYCxcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBncm91cE1lbWJlcnNoaXBJZC5nZXRSZXNwb25zZUZpZWxkKFwiTWVtYmVyc2hpcElkXCIpLFxuICAgICAgICAgIGV4cG9ydE5hbWU6IGAke3VzZXIuRGlzcGxheU5hbWUucmVwbGFjZSgvXFxzL2csIFwiXCIpfUdyb3VwTWVtYmVyc2hpcElkYFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,10 +0,0 @@
1
- import { Stack } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- export declare class FjallHostedZone extends Stack {
4
- constructor(scope: Construct, id: string);
5
- }
6
- export declare class FjallSubdomainHostedZone extends Stack {
7
- constructor(scope: Construct, id: string, props: {
8
- environment?: string;
9
- });
10
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FjallSubdomainHostedZone = exports.FjallHostedZone = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const networking_1 = require("../../../resources/aws/networking");
6
- class FjallHostedZone extends aws_cdk_lib_1.Stack {
7
- constructor(scope, id) {
8
- super(scope, id);
9
- new networking_1.HostedZone(this, "FjallHostedZone", {
10
- zoneName: "fjall.io"
11
- });
12
- }
13
- }
14
- exports.FjallHostedZone = FjallHostedZone;
15
- class FjallSubdomainHostedZone extends aws_cdk_lib_1.Stack {
16
- constructor(scope, id, props) {
17
- super(scope, id);
18
- new networking_1.SubdomainHostedZone(this, "FjallHostedZone", {
19
- delegatedZone: `${props.environment}.fjall.io`,
20
- parentHostedZoneName: "fjall.io"
21
- });
22
- }
23
- }
24
- exports.FjallSubdomainHostedZone = FjallSubdomainHostedZone;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmphbGwuaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29uZmlnL2ZqYWxsL2hvc3RlZFpvbmVzL2ZqYWxsLmlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvQztBQUVwQyxrRUFHMkM7QUFFM0MsTUFBYSxlQUFnQixTQUFRLG1CQUFLO0lBQ3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN0QyxRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFSRCwwQ0FRQztBQUVELE1BQWEsd0JBQXlCLFNBQVEsbUJBQUs7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksZ0NBQW1CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQy9DLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLFdBQVc7WUFDOUMsb0JBQW9CLEVBQUUsVUFBVTtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFURCw0REFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgSG9zdGVkWm9uZSxcbiAgU3ViZG9tYWluSG9zdGVkWm9uZVxufSBmcm9tIFwiLi4vLi4vLi4vcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nXCI7XG5cbmV4cG9ydCBjbGFzcyBGamFsbEhvc3RlZFpvbmUgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEhvc3RlZFpvbmUodGhpcywgXCJGamFsbEhvc3RlZFpvbmVcIiwge1xuICAgICAgem9uZU5hbWU6IFwiZmphbGwuaW9cIlxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGamFsbFN1YmRvbWFpbkhvc3RlZFpvbmUgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiB7IGVudmlyb25tZW50Pzogc3RyaW5nIH0pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IFN1YmRvbWFpbkhvc3RlZFpvbmUodGhpcywgXCJGamFsbEhvc3RlZFpvbmVcIiwge1xuICAgICAgZGVsZWdhdGVkWm9uZTogYCR7cHJvcHMuZW52aXJvbm1lbnR9LmZqYWxsLmlvYCxcbiAgICAgIHBhcmVudEhvc3RlZFpvbmVOYW1lOiBcImZqYWxsLmlvXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -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 default class Ecr extends Repository {
7
- private outputs;
8
- constructor(scope: Construct, id: string, props?: EcrProps);
9
- static getRepositoryProps(props?: EcrProps): RepositoryProps;
10
- static build(id: string, props?: EcrProps): (scope: StackBuilder) => Ecr;
11
- }
12
- export {};
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const aws_ecr_1 = require("aws-cdk-lib/aws-ecr");
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- class Ecr extends aws_ecr_1.Repository {
6
- constructor(scope, id, props) {
7
- super(scope, id, Ecr.getRepositoryProps(props));
8
- this.outputs = [];
9
- this.outputs.push(new aws_cdk_lib_1.CfnOutput(this, "ecrRepository", {
10
- key: "RepositoryName",
11
- value: this.repositoryName,
12
- exportName: `${id}RepositoryName`
13
- }));
14
- }
15
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
- static getRepositoryProps(props) {
17
- // todo: lifeCycleRules
18
- // todo: Encryption & EncryptionKey (default is AWS managed KMS key)
19
- return {
20
- imageScanOnPush: true,
21
- imageTagMutability: aws_ecr_1.TagMutability.MUTABLE,
22
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
23
- };
24
- }
25
- static build(id, props) {
26
- return (scope) => new Ecr(scope.getStack(), id, props);
27
- }
28
- }
29
- exports.default = Ecr;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29uc3RhbnQvZWNyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaURBSTZCO0FBQzdCLDZDQUF1RDtBQU12RCxNQUFxQixHQUFJLFNBQVEsb0JBQVU7SUFHekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQjtRQUN4RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUgxQyxZQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUtoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDZixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUNuQyxHQUFHLEVBQUUsZ0JBQWdCO1lBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYztZQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFLGdCQUFnQjtTQUNsQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQWdCO1FBQ3hDLHVCQUF1QjtRQUN2QixvRUFBb0U7UUFDcEUsT0FBTztZQUNMLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGtCQUFrQixFQUFFLHVCQUFhLENBQUMsT0FBTztZQUN6QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO1NBQ3BDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFVLEVBQUUsS0FBZ0I7UUFDdkMsT0FBTyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBN0JELHNCQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBSZXBvc2l0b3J5LFxuICBSZXBvc2l0b3J5UHJvcHMsXG4gIFRhZ011dGFiaWxpdHlcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3JcIjtcbmltcG9ydCB7IFJlbW92YWxQb2xpY3ksIENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcblxuaW50ZXJmYWNlIEVjclByb3BzIHt9XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVjciBleHRlbmRzIFJlcG9zaXRvcnkge1xuICBwcml2YXRlIG91dHB1dHM6IENmbk91dHB1dFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFY3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgRWNyLmdldFJlcG9zaXRvcnlQcm9wcyhwcm9wcykpO1xuXG4gICAgdGhpcy5vdXRwdXRzLnB1c2goXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiZWNyUmVwb3NpdG9yeVwiLCB7XG4gICAgICAgIGtleTogXCJSZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICB2YWx1ZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7aWR9UmVwb3NpdG9yeU5hbWVgXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHN0YXRpYyBnZXRSZXBvc2l0b3J5UHJvcHMocHJvcHM/OiBFY3JQcm9wcyk6IFJlcG9zaXRvcnlQcm9wcyB7XG4gICAgLy8gdG9kbzogbGlmZUN5Y2xlUnVsZXNcbiAgICAvLyB0b2RvOiBFbmNyeXB0aW9uICYgRW5jcnlwdGlvbktleSAoZGVmYXVsdCBpcyBBV1MgbWFuYWdlZCBLTVMga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZVNjYW5PblB1c2g6IHRydWUsXG4gICAgICBpbWFnZVRhZ011dGFiaWxpdHk6IFRhZ011dGFiaWxpdHkuTVVUQUJMRSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wcz86IEVjclByb3BzKTogKHNjb3BlOiBTdGFja0J1aWxkZXIpID0+IEVjciB7XG4gICAgcmV0dXJuIChzY29wZTogU3RhY2tCdWlsZGVyKSA9PiBuZXcgRWNyKHNjb3BlLmdldFN0YWNrKCksIGlkLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,26 +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 "../compute/ecs";
5
- interface VpcProps extends ec2.VpcProps {
6
- environment?: string;
7
- availabilityZones?: string[];
8
- tags: KeyValue;
9
- }
10
- export declare class Vpc extends ec2.Vpc {
11
- constructor(scope: Construct, id: string, props?: VpcProps);
12
- static ipAddresses(props?: VpcProps): ec2.IIpAddresses | undefined;
13
- static build(id: string, props?: VpcProps): (sb: StackBuilder) => Construct;
14
- /**
15
- * Imports a pre-existing VPC Resource into your Stack
16
- *
17
- * Before using an import method ensure you have set the account and region props
18
- * when creating your AwsStack.
19
- *
20
- * @param id
21
- * @param vpcStackName
22
- * @returns
23
- */
24
- static import(id: string, vpcStackName: string): (sb: StackBuilder) => Construct;
25
- }
26
- export {};
@@ -1,63 +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
- const getStackOutput_1 = require("../../../utils/getStackOutput");
8
- const AVAILABILITY_ZONES = ["us-east-1a", "us-east-1b", "us-east-1c"];
9
- class Vpc extends ec2.Vpc {
10
- constructor(scope, id, props) {
11
- super(scope, `vpc-${id}`, {
12
- ...props,
13
- vpcName: `vpc-${id}`,
14
- availabilityZones: AVAILABILITY_ZONES,
15
- flowLogs: {
16
- [`${id}VpcFlowLogs`]: {
17
- destination: ec2.FlowLogDestination.toCloudWatchLogs(new logGroup_1.LogGroup(scope, `${id}FlowLogGroup`, {
18
- logGroupName: `/vpc/flowlogs/vpc-${id}/`,
19
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
20
- }))
21
- }
22
- },
23
- ipAddresses: Vpc.ipAddresses(props)
24
- });
25
- // Required for the VPC to use the IPAM Pool to provsion IP addresses
26
- aws_cdk_lib_1.Tags.of(this).add("fjall:operations:pool", `${props?.environment}`);
27
- }
28
- static ipAddresses(props) {
29
- const ipv4IpamPoolId = (0, getStackOutput_1.default)("IpamPool", `${props?.environment}IpamPoolId`);
30
- // Default to unspecified ipAddresses if unable to read from stack output
31
- if (!ipv4IpamPoolId)
32
- return undefined;
33
- return ec2.IpAddresses.awsIpamAllocation({
34
- ipv4IpamPoolId: ipv4IpamPoolId,
35
- ipv4NetmaskLength: 20,
36
- defaultSubnetIpv4NetmaskLength: 23
37
- });
38
- }
39
- static build(id, props) {
40
- return (sb) => {
41
- return new this(sb.getStack(), id, props);
42
- };
43
- }
44
- /**
45
- * Imports a pre-existing VPC Resource into your Stack
46
- *
47
- * Before using an import method ensure you have set the account and region props
48
- * when creating your AwsStack.
49
- *
50
- * @param id
51
- * @param vpcStackName
52
- * @returns
53
- */
54
- static import(id, vpcStackName) {
55
- return (sb) => {
56
- return ec2.Vpc.fromLookup(sb.getStack(), id, {
57
- vpcName: `${vpcStackName}/${id}`
58
- });
59
- };
60
- }
61
- }
62
- exports.Vpc = Vpc;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29uc3RhbnQvdnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUFrRDtBQUNsRCwyQ0FBMkM7QUFHM0Msa0RBQStDO0FBQy9DLGtFQUEyRDtBQVMzRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztBQUV0RSxNQUFhLEdBQUksU0FBUSxHQUFHLENBQUMsR0FBRztJQUM5QixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUN4QixHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDcEIsaUJBQWlCLEVBQUUsa0JBQWtCO1lBQ3JDLFFBQVEsRUFBRTtnQkFDUixDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsRUFBRTtvQkFDcEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxtQkFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFO3dCQUN2QyxZQUFZLEVBQUUscUJBQXFCLEVBQUUsR0FBRzt3QkFDeEMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztxQkFDckMsQ0FBQyxDQUNIO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7U0FDcEMsQ0FBQyxDQUFDO1FBRUgscUVBQXFFO1FBQ3JFLGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLElBQUEsd0JBQWMsRUFDbkMsVUFBVSxFQUNWLEdBQUcsS0FBSyxFQUFFLFdBQVcsWUFBWSxDQUNsQyxDQUFDO1FBRUYseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFdEMsT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO1lBQ3ZDLGNBQWMsRUFBRSxjQUFjO1lBQzlCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsOEJBQThCLEVBQUUsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFVLEVBQUUsS0FBZ0I7UUFDdkMsT0FBTyxDQUFDLEVBQWdCLEVBQUUsRUFBRTtZQUMxQixPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQ1gsRUFBVSxFQUNWLFlBQW9CO1FBRXBCLE9BQU8sQ0FBQyxFQUFnQixFQUFFLEVBQUU7WUFDMUIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUMzQyxPQUFPLEVBQUUsR0FBRyxZQUFZLElBQUksRUFBRSxFQUFFO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWhFRCxrQkFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVGFncywgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9hd3NTdGFja1wiO1xuaW1wb3J0IHsgTG9nR3JvdXAgfSBmcm9tIFwiLi4vbG9nZ2luZy9sb2dHcm91cFwiO1xuaW1wb3J0IGdldFN0YWNrT3V0cHV0IGZyb20gXCIuLi8uLi8uLi91dGlscy9nZXRTdGFja091dHB1dFwiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vY29tcHV0ZS9lY3NcIjtcblxuaW50ZXJmYWNlIFZwY1Byb3BzIGV4dGVuZHMgZWMyLlZwY1Byb3BzIHtcbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIGF2YWlsYWJpbGl0eVpvbmVzPzogc3RyaW5nW107XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5jb25zdCBBVkFJTEFCSUxJVFlfWk9ORVMgPSBbXCJ1cy1lYXN0LTFhXCIsIFwidXMtZWFzdC0xYlwiLCBcInVzLWVhc3QtMWNcIl07XG5cbmV4cG9ydCBjbGFzcyBWcGMgZXh0ZW5kcyBlYzIuVnBjIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBWcGNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBgdnBjLSR7aWR9YCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB2cGNOYW1lOiBgdnBjLSR7aWR9YCxcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmVzOiBBVkFJTEFCSUxJVFlfWk9ORVMsXG4gICAgICBmbG93TG9nczoge1xuICAgICAgICBbYCR7aWR9VnBjRmxvd0xvZ3NgXToge1xuICAgICAgICAgIGRlc3RpbmF0aW9uOiBlYzIuRmxvd0xvZ0Rlc3RpbmF0aW9uLnRvQ2xvdWRXYXRjaExvZ3MoXG4gICAgICAgICAgICBuZXcgTG9nR3JvdXAoc2NvcGUsIGAke2lkfUZsb3dMb2dHcm91cGAsIHtcbiAgICAgICAgICAgICAgbG9nR3JvdXBOYW1lOiBgL3ZwYy9mbG93bG9ncy92cGMtJHtpZH0vYCxcbiAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlwQWRkcmVzc2VzOiBWcGMuaXBBZGRyZXNzZXMocHJvcHMpXG4gICAgfSk7XG5cbiAgICAvLyBSZXF1aXJlZCBmb3IgdGhlIFZQQyB0byB1c2UgdGhlIElQQU0gUG9vbCB0byBwcm92c2lvbiBJUCBhZGRyZXNzZXNcbiAgICBUYWdzLm9mKHRoaXMpLmFkZChcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLCBgJHtwcm9wcz8uZW52aXJvbm1lbnR9YCk7XG4gIH1cblxuICBzdGF0aWMgaXBBZGRyZXNzZXMocHJvcHM/OiBWcGNQcm9wcykge1xuICAgIGNvbnN0IGlwdjRJcGFtUG9vbElkID0gZ2V0U3RhY2tPdXRwdXQoXG4gICAgICBcIklwYW1Qb29sXCIsXG4gICAgICBgJHtwcm9wcz8uZW52aXJvbm1lbnR9SXBhbVBvb2xJZGBcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCB0byB1bnNwZWNpZmllZCBpcEFkZHJlc3NlcyBpZiB1bmFibGUgdG8gcmVhZCBmcm9tIHN0YWNrIG91dHB1dFxuICAgIGlmICghaXB2NElwYW1Qb29sSWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZWMyLklwQWRkcmVzc2VzLmF3c0lwYW1BbGxvY2F0aW9uKHtcbiAgICAgIGlwdjRJcGFtUG9vbElkOiBpcHY0SXBhbVBvb2xJZCxcbiAgICAgIGlwdjROZXRtYXNrTGVuZ3RoOiAyMCxcbiAgICAgIGRlZmF1bHRTdWJuZXRJcHY0TmV0bWFza0xlbmd0aDogMjNcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wcz86IFZwY1Byb3BzKTogKHNiOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCB7XG4gICAgcmV0dXJuIChzYjogU3RhY2tCdWlsZGVyKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IHRoaXMoc2IuZ2V0U3RhY2soKSwgaWQsIHByb3BzKTtcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBJbXBvcnRzIGEgcHJlLWV4aXN0aW5nIFZQQyBSZXNvdXJjZSBpbnRvIHlvdXIgU3RhY2tcbiAgICpcbiAgICogQmVmb3JlIHVzaW5nIGFuIGltcG9ydCBtZXRob2QgZW5zdXJlIHlvdSBoYXZlIHNldCB0aGUgYWNjb3VudCBhbmQgcmVnaW9uIHByb3BzXG4gICAqICB3aGVuIGNyZWF0aW5nIHlvdXIgQXdzU3RhY2suXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gdnBjU3RhY2tOYW1lXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgaW1wb3J0KFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdnBjU3RhY2tOYW1lOiBzdHJpbmdcbiAgKTogKHNiOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCB7XG4gICAgcmV0dXJuIChzYjogU3RhY2tCdWlsZGVyKSA9PiB7XG4gICAgICByZXR1cm4gZWMyLlZwYy5mcm9tTG9va3VwKHNiLmdldFN0YWNrKCksIGlkLCB7XG4gICAgICAgIHZwY05hbWU6IGAke3ZwY1N0YWNrTmFtZX0vJHtpZH1gXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { Construct } from "constructs";
2
- export interface hostedZoneProps {
3
- zoneName: string;
4
- }
5
- export interface subdomainHostedZoneProps {
6
- delegatedZone: string;
7
- parentHostedZoneName: string;
8
- }
9
- export interface importedHostedZoneProps {
10
- hostedZoneId: string;
11
- hostedZoneName: string;
12
- }
13
- export declare class HostedZone extends Construct {
14
- constructor(scope: Construct, id: string, props: hostedZoneProps);
15
- }
16
- export declare class SubdomainHostedZone extends Construct {
17
- constructor(scope: Construct, id: string, props: subdomainHostedZoneProps);
18
- }
19
- export declare class ImportedHostedZone extends Construct {
20
- constructor(scope: Construct, id: string, props: importedHostedZoneProps);
21
- }
@@ -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