@fjall/components-infrastructure 0.1.10 → 0.1.11

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 +2 -1
  2. package/dist/lib/app.js +4 -2
  3. package/dist/lib/config/aws/accountId.d.ts +6 -0
  4. package/dist/lib/config/aws/accountId.js +33 -0
  5. package/dist/lib/config/aws/cloudTrail.d.ts +10 -0
  6. package/dist/lib/config/aws/cloudTrail.js +22 -0
  7. package/dist/lib/config/aws/costAllocationTags.d.ts +2 -3
  8. package/dist/lib/config/aws/costAllocationTags.js +6 -5
  9. package/dist/lib/config/aws/ecrDefaultImage.d.ts +11 -0
  10. package/dist/lib/config/aws/ecrDefaultImage.js +127 -0
  11. package/dist/lib/config/aws/eventBus.d.ts +7 -0
  12. package/dist/lib/config/aws/eventBus.js +24 -0
  13. package/dist/lib/config/aws/identityCenter.d.ts +11 -3
  14. package/dist/lib/config/aws/identityCenter.js +24 -29
  15. package/dist/lib/config/aws/identityCenterUser.d.ts +16 -0
  16. package/dist/lib/config/aws/identityCenterUser.js +125 -0
  17. package/dist/lib/config/aws/index.d.ts +8 -4
  18. package/dist/lib/config/aws/index.js +9 -5
  19. package/dist/lib/config/aws/ipam.d.ts +2 -2
  20. package/dist/lib/config/aws/ipam.js +25 -7
  21. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +4 -5
  22. package/dist/lib/config/aws/ipamDelegateAdmin.js +9 -13
  23. package/dist/lib/config/aws/ipamPoolId.d.ts +9 -0
  24. package/dist/lib/config/aws/ipamPoolId.js +36 -0
  25. package/dist/lib/config/aws/organisation.d.ts +28 -0
  26. package/dist/lib/config/aws/organisation.js +142 -0
  27. package/dist/lib/config/aws/organisationId.d.ts +4 -2
  28. package/dist/lib/config/aws/organisationId.js +13 -7
  29. package/dist/lib/config/aws/ramSharing.d.ts +4 -0
  30. package/dist/lib/config/aws/ramSharing.js +35 -0
  31. package/dist/lib/patterns/aws/basicApp.d.ts +2 -2
  32. package/dist/lib/patterns/aws/basicApp.js +15 -15
  33. package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
  34. package/dist/lib/patterns/aws/buildkite.js +9 -7
  35. package/dist/lib/patterns/aws/freeTierApp.d.ts +46 -0
  36. package/dist/lib/patterns/aws/freeTierApp.js +95 -0
  37. package/dist/lib/patterns/aws/hostedZone.d.ts +11 -0
  38. package/dist/lib/patterns/aws/hostedZone.js +73 -0
  39. package/dist/lib/patterns/aws/index.d.ts +3 -0
  40. package/dist/lib/patterns/aws/index.js +4 -1
  41. package/dist/lib/patterns/aws/managedAccount.d.ts +13 -0
  42. package/dist/lib/patterns/aws/managedAccount.js +39 -0
  43. package/dist/lib/patterns/aws/managedOrganisation.d.ts +9 -21
  44. package/dist/lib/patterns/aws/managedOrganisation.js +33 -147
  45. package/dist/lib/patterns/aws/managedPlatform.d.ts +13 -0
  46. package/dist/lib/patterns/aws/managedPlatform.js +22 -0
  47. package/dist/lib/patterns/aws/spotInstanceApp.d.ts +46 -0
  48. package/dist/lib/patterns/aws/spotInstanceApp.js +95 -0
  49. package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +9 -0
  50. package/dist/lib/patterns/aws/subdomainHostedZone.js +39 -0
  51. package/dist/lib/resources/aws/compute/ecs.d.ts +2 -4
  52. package/dist/lib/resources/aws/compute/ecs.js +10 -6
  53. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +76 -0
  54. package/dist/lib/resources/aws/compute/ecsFreeTier.js +352 -0
  55. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +76 -0
  56. package/dist/lib/resources/aws/compute/ecsSpot.js +334 -0
  57. package/dist/lib/resources/aws/compute/index.d.ts +2 -0
  58. package/dist/lib/resources/aws/compute/index.js +19 -0
  59. package/dist/lib/resources/aws/compute/lambda.d.ts +7 -7
  60. package/dist/lib/resources/aws/compute/lambda.js +8 -7
  61. package/dist/lib/resources/aws/database/database.d.ts +16 -0
  62. package/dist/lib/resources/aws/database/database.js +30 -0
  63. package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +17 -0
  64. package/dist/lib/resources/aws/database/databaseFreeTier.js +31 -0
  65. package/dist/lib/resources/aws/database/databaseInstance.d.ts +17 -0
  66. package/dist/lib/resources/aws/database/databaseInstance.js +32 -0
  67. package/dist/lib/resources/aws/database/index.d.ts +2 -0
  68. package/dist/lib/resources/aws/database/index.js +19 -0
  69. package/dist/lib/resources/aws/database/rds.d.ts +23 -0
  70. package/dist/lib/resources/aws/database/rds.js +130 -0
  71. package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +36 -0
  72. package/dist/lib/resources/aws/database/rdsFreeTier.js +80 -0
  73. package/dist/lib/resources/aws/database/rdsInstance.d.ts +42 -0
  74. package/dist/lib/resources/aws/database/rdsInstance.js +173 -0
  75. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +18 -0
  76. package/dist/lib/resources/aws/logging/cloudTrail.js +46 -0
  77. package/dist/lib/resources/aws/logging/logGroup.d.ts +3 -3
  78. package/dist/lib/resources/aws/logging/logGroup.js +3 -3
  79. package/dist/lib/resources/aws/networking/index.d.ts +1 -1
  80. package/dist/lib/resources/aws/networking/index.js +2 -2
  81. package/dist/lib/resources/aws/networking/ipamPool.d.ts +16 -3
  82. package/dist/lib/resources/aws/networking/ipamPool.js +75 -6
  83. package/dist/lib/resources/aws/networking/vpc.d.ts +29 -0
  84. package/dist/lib/resources/aws/networking/vpc.js +64 -0
  85. package/dist/lib/resources/aws/secrets/alias.d.ts +5 -0
  86. package/dist/lib/resources/aws/secrets/alias.js +13 -0
  87. package/dist/lib/resources/aws/secrets/index.d.ts +5 -0
  88. package/dist/lib/resources/aws/secrets/index.js +22 -0
  89. package/dist/lib/resources/aws/secrets/kms.d.ts +14 -0
  90. package/dist/lib/resources/aws/secrets/kms.js +34 -0
  91. package/dist/lib/resources/aws/secrets/parameter.d.ts +26 -0
  92. package/dist/lib/resources/aws/secrets/parameter.js +100 -0
  93. package/dist/lib/resources/aws/secrets/secret.d.ts +24 -0
  94. package/dist/lib/resources/aws/secrets/secret.js +53 -0
  95. package/dist/lib/resources/aws/storage/ecr.d.ts +12 -0
  96. package/dist/lib/resources/aws/storage/ecr.js +31 -0
  97. package/dist/lib/resources/aws/storage/index.d.ts +2 -0
  98. package/dist/lib/resources/aws/storage/index.js +19 -0
  99. package/dist/lib/resources/aws/storage/s3.d.ts +11 -0
  100. package/dist/lib/resources/aws/storage/s3.js +44 -0
  101. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +15 -0
  102. package/dist/lib/resources/aws/utilities/codeBuild.js +28 -0
  103. package/dist/lib/resources/aws/utilities/customResource.js +2 -2
  104. package/dist/lib/types.d.ts +3 -0
  105. package/dist/lib/types.js +3 -0
  106. package/dist/lib/utils/capitalizeString.d.ts +1 -0
  107. package/dist/lib/utils/capitalizeString.js +8 -0
  108. package/dist/lib/utils/getAccountId.d.ts +1 -1
  109. package/dist/lib/utils/getAccountId.js +3 -2
  110. package/dist/lib/utils/getCidr.d.ts +8 -0
  111. package/dist/lib/utils/getCidr.js +42 -0
  112. package/dist/lib/utils/getConfig.d.ts +3 -2
  113. package/dist/lib/utils/getConfig.js +20 -6
  114. package/dist/lib/utils/stripAndCamelCase.d.ts +1 -0
  115. package/dist/lib/utils/stripAndCamelCase.js +17 -0
  116. package/dist/lib/utils/usersConfig.d.ts +7 -0
  117. package/dist/lib/utils/usersConfig.js +18 -0
  118. package/package.json +2 -2
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IdentityCenterUser = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const customResources = require("aws-cdk-lib/custom-resources");
6
+ const constructs_1 = require("constructs");
7
+ const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
8
+ const usersConfig_1 = require("../../utils/usersConfig");
9
+ const capitalizeString_1 = require("../../utils/capitalizeString");
10
+ class IdentityCenterUser extends constructs_1.Construct {
11
+ constructor(scope, id, props) {
12
+ super(scope, id);
13
+ const users = new usersConfig_1.default().getUsers();
14
+ const identityStoreId = props.identityStoreId;
15
+ const userCount = users.length;
16
+ for (let i = 0; i < userCount; i++) {
17
+ const user = users[i];
18
+ const givenName = (0, capitalizeString_1.capitalizeString)(user.firstName);
19
+ const familyName = (0, capitalizeString_1.capitalizeString)(user.lastName);
20
+ const userParams = {
21
+ IdentityStoreId: identityStoreId,
22
+ UserName: user.email,
23
+ DisplayName: `${givenName} ${familyName}`,
24
+ Name: {
25
+ FamilyName: user.lastName,
26
+ GivenName: user.firstName
27
+ },
28
+ Emails: [
29
+ {
30
+ Primary: true,
31
+ Value: user.email
32
+ }
33
+ ]
34
+ };
35
+ const createUser = new awsCustomResource_1.AwsCustomResource(this, `createUser${givenName}${familyName}`, {
36
+ functionName: "createUsers",
37
+ onCreate: {
38
+ service: "IdentityStore",
39
+ action: "createUser",
40
+ parameters: userParams,
41
+ physicalResourceId: customResources.PhysicalResourceId.of("createUsers")
42
+ },
43
+ onUpdate: {
44
+ service: "IdentityStore",
45
+ action: "updateUser",
46
+ parameters: userParams,
47
+ physicalResourceId: customResources.PhysicalResourceId.of("updateUsers")
48
+ },
49
+ resourceType: "Custom::IdentityCenterUsers"
50
+ });
51
+ new awsCustomResource_1.AwsCustomResource(this, `deleteUser${givenName}${familyName}`, {
52
+ functionName: "deleteUsers",
53
+ onDelete: {
54
+ service: "IdentityStore",
55
+ action: "deleteUser",
56
+ parameters: {
57
+ IdentityStoreId: identityStoreId,
58
+ UserId: createUser.getResponseField("UserId")
59
+ }
60
+ },
61
+ resourceType: "Custom::IdentityCenterUsers"
62
+ });
63
+ new aws_cdk_lib_1.CfnOutput(this, `UserId${givenName}${familyName}`, {
64
+ key: `UserId${givenName}${familyName}`,
65
+ value: createUser.getResponseField("UserId"),
66
+ exportName: `UserId${givenName}${familyName}`
67
+ });
68
+ // props.identityCenterGroups.forEach((identityCenterGroup))
69
+ user.groups.forEach((group) => {
70
+ const identityCenterGroup = props.identityCenterGroups.find((identityCenterGroup) => identityCenterGroup.displayName === group);
71
+ if (!identityCenterGroup) {
72
+ throw new Error(`Group ${group} does not exist in Identity Center Groups`);
73
+ }
74
+ const groupId = identityCenterGroup.attrGroupId;
75
+ const groupName = identityCenterGroup.displayName;
76
+ const groupMembershipId = new awsCustomResource_1.AwsCustomResource(this, `createGroupMembership${givenName}${familyName}To${groupName}`, {
77
+ functionName: "createGroupMembership",
78
+ onCreate: {
79
+ service: "IdentityStore",
80
+ action: "createGroupMembership",
81
+ parameters: {
82
+ GroupId: groupId,
83
+ IdentityStoreId: identityStoreId,
84
+ MemberId: {
85
+ UserId: createUser.getResponseField("UserId")
86
+ }
87
+ },
88
+ physicalResourceId: customResources.PhysicalResourceId.of(`createGroupMembership${givenName}${familyName}To${groupName}`)
89
+ },
90
+ onUpdate: {
91
+ service: "IdentityStore",
92
+ action: "createGroupMembership",
93
+ parameters: {
94
+ GroupId: groupId,
95
+ IdentityStoreId: identityStoreId,
96
+ MemberId: {
97
+ UserId: createUser.getResponseField("UserId")
98
+ }
99
+ },
100
+ physicalResourceId: customResources.PhysicalResourceId.of(`createGroupMembership${givenName}${familyName}To${groupName}`)
101
+ }
102
+ });
103
+ new awsCustomResource_1.AwsCustomResource(this, `deleteGroupMembership${givenName}${familyName}From${groupName}`, {
104
+ functionName: "deleteGroupMembership",
105
+ onDelete: {
106
+ service: "IdentityStore",
107
+ action: "deleteGroupMembership",
108
+ parameters: {
109
+ IdentityStoreId: identityStoreId,
110
+ MembershipId: groupMembershipId.getResponseField("MembershipId")
111
+ }
112
+ },
113
+ resourceType: "Custom::IdentityCenterUsers"
114
+ });
115
+ new aws_cdk_lib_1.CfnOutput(this, `GroupMembershipId${givenName}${familyName}${groupName}`, {
116
+ key: `GroupMembershipId${givenName}${familyName}${groupName}`,
117
+ value: groupMembershipId.getResponseField("MembershipId"),
118
+ exportName: `GroupMembershipId${givenName}${familyName}${groupName}`
119
+ });
120
+ });
121
+ }
122
+ }
123
+ }
124
+ exports.IdentityCenterUser = IdentityCenterUser;
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHlDZW50ZXJVc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvaWRlbnRpdHlDZW50ZXJVc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3QztBQUN4QyxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBQ3ZDLHVGQUFvRjtBQUNwRix5REFBa0Q7QUFFbEQsbUVBQWdFO0FBNEJoRSxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEtBQUssR0FBVyxJQUFJLHFCQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBRTlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsTUFBTSxVQUFVLEdBQXlCO2dCQUN2QyxlQUFlLEVBQUUsZUFBZTtnQkFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNwQixXQUFXLEVBQUUsR0FBRyxTQUFTLElBQUksVUFBVSxFQUFFO2dCQUN6QyxJQUFJLEVBQUU7b0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN6QixTQUFTLEVBQUUs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Q0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0NBQ0Y7QUF2SkQsZ0RBdUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IFVzZXJzQ29uZmlnIGZyb20gXCIuLi8uLi91dGlscy91c2Vyc0NvbmZpZ1wiO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvZ3JvdXBcIjtcbmltcG9ydCB7IGNhcGl0YWxpemVTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2FwaXRhbGl6ZVN0cmluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICBlbWFpbDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZ3JvdXBzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIGNyZWF0ZVVzZXJQYXJhbWV0ZXJzIHtcbiAgSWRlbnRpdHlTdG9yZUlkOiBzdHJpbmc7XG4gIFVzZXJOYW1lOiBzdHJpbmc7XG4gIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIE5hbWU6IHtcbiAgICBGYW1pbHlOYW1lOiBzdHJpbmc7XG4gICAgR2l2ZW5OYW1lOiBzdHJpbmc7XG4gIH07XG4gIEVtYWlsczoge1xuICAgIFByaW1hcnk6IGJvb2xlYW47XG4gICAgVmFsdWU6IHN0cmluZztcbiAgfVtdO1xufVxuXG5pbnRlcmZhY2UgSWRlbnRpdHlDZW50ZXJVc2VyUHJvcHMge1xuICBpZGVudGl0eVN0b3JlSWQ6IHN0cmluZztcbiAgaWRlbnRpdHlDZW50ZXJHcm91cHM6IEdyb3VwW107XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUNlbnRlclVzZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWRlbnRpdHlDZW50ZXJVc2VyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdXNlcnM6IFVzZXJbXSA9IG5ldyBVc2Vyc0NvbmZpZygpLmdldFVzZXJzKCk7XG4gICAgY29uc3QgaWRlbnRpdHlTdG9yZUlkID0gcHJvcHMuaWRlbnRpdHlTdG9yZUlkO1xuXG4gICAgY29uc3QgdXNlckNvdW50ID0gdXNlcnMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdXNlckNvdW50OyBpKyspIHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2Vyc1tpXTtcbiAgICAgIGNvbnN0IGdpdmVuTmFtZSA9IGNhcGl0YWxpemVTdHJpbmcodXNlci5maXJzdE5hbWUpO1xuICAgICAgY29uc3QgZmFtaWx5TmFtZSA9IGNhcGl0YWxpemVTdHJpbmcodXNlci5sYXN0TmFtZSk7XG4gICAgICBjb25zdCB1c2VyUGFyYW1zOiBjcmVhdGVVc2VyUGFyYW1ldGVycyA9IHtcbiAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgIFVzZXJOYW1lOiB1c2VyLmVtYWlsLFxuICAgICAgICBEaXNwbGF5TmFtZTogYCR7Z2l2ZW5OYW1lfSAke2ZhbWlseU5hbWV9YCxcbiAgICAgICAgTmFtZToge1xuICAgICAgICAgIEZhbWlseU5hbWU6IHVzZXIubGFzdE5hbWUsXG4gICAgICAgICAgR2l2ZW5OYW1lOiB1c2VyLmZpcnN0TmFtZVxuICAgICAgICB9LFxuICAgICAgICBFbWFpbHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBQcmltYXJ5OiB0cnVlLFxuICAgICAgICAgICAgVmFsdWU6IHVzZXIuZW1haWxcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNyZWF0ZVVzZXIgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGBjcmVhdGVVc2VyJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6IFwiY3JlYXRlVXNlcnNcIixcbiAgICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgICAgc2VydmljZTogXCJJZGVudGl0eVN0b3JlXCIsXG4gICAgICAgICAgICBhY3Rpb246IFwiY3JlYXRlVXNlclwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0lkZW50aXR5U3RvcmUuaHRtbCNjcmVhdGVVc2VyLXByb3BlcnR5XG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB1c2VyUGFyYW1zLFxuICAgICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlVXNlcnNcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgIGFjdGlvbjogXCJ1cGRhdGVVc2VyXCIsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB1c2VyUGFyYW1zLFxuICAgICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwidXBkYXRlVXNlcnNcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OklkZW50aXR5Q2VudGVyVXNlcnNcIlxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYGRlbGV0ZVVzZXIke2dpdmVuTmFtZX0ke2ZhbWlseU5hbWV9YCwge1xuICAgICAgICBmdW5jdGlvbk5hbWU6IFwiZGVsZXRlVXNlcnNcIixcbiAgICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICBhY3Rpb246IFwiZGVsZXRlVXNlclwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0lkZW50aXR5U3RvcmUuaHRtbCNkZWxldGVVc2VyLXByb3BlcnR5XG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICBVc2VySWQ6IGNyZWF0ZVVzZXIuZ2V0UmVzcG9uc2VGaWVsZChcIlVzZXJJZFwiKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6SWRlbnRpdHlDZW50ZXJVc2Vyc1wiXG4gICAgICB9KTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgVXNlcklkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfWAsIHtcbiAgICAgICAga2V5OiBgVXNlcklkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfWAsXG4gICAgICAgIHZhbHVlOiBjcmVhdGVVc2VyLmdldFJlc3BvbnNlRmllbGQoXCJVc2VySWRcIiksXG4gICAgICAgIGV4cG9ydE5hbWU6IGBVc2VySWQke2dpdmVuTmFtZX0ke2ZhbWlseU5hbWV9YFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHByb3BzLmlkZW50aXR5Q2VudGVyR3JvdXBzLmZvckVhY2goKGlkZW50aXR5Q2VudGVyR3JvdXApKVxuXG4gICAgICB1c2VyLmdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBjb25zdCBpZGVudGl0eUNlbnRlckdyb3VwID0gcHJvcHMuaWRlbnRpdHlDZW50ZXJHcm91cHMuZmluZChcbiAgICAgICAgICAoaWRlbnRpdHlDZW50ZXJHcm91cCkgPT4gaWRlbnRpdHlDZW50ZXJHcm91cC5kaXNwbGF5TmFtZSA9PT0gZ3JvdXBcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWlkZW50aXR5Q2VudGVyR3JvdXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgR3JvdXAgJHtncm91cH0gZG9lcyBub3QgZXhpc3QgaW4gSWRlbnRpdHkgQ2VudGVyIEdyb3Vwc2BcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ3JvdXBJZCA9IGlkZW50aXR5Q2VudGVyR3JvdXAuYXR0ckdyb3VwSWQ7XG4gICAgICAgIGNvbnN0IGdyb3VwTmFtZSA9IGlkZW50aXR5Q2VudGVyR3JvdXAuZGlzcGxheU5hbWU7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBNZW1iZXJzaGlwSWQgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgY3JlYXRlR3JvdXBNZW1iZXJzaGlwJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfVRvJHtncm91cE5hbWV9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IFwiY3JlYXRlR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgICAgICBzZXJ2aWNlOiBcIklkZW50aXR5U3RvcmVcIixcbiAgICAgICAgICAgICAgYWN0aW9uOiBcImNyZWF0ZUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgR3JvdXBJZDogZ3JvdXBJZCxcbiAgICAgICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgICAgICBNZW1iZXJJZDoge1xuICAgICAgICAgICAgICAgICAgVXNlcklkOiBjcmVhdGVVc2VyLmdldFJlc3BvbnNlRmllbGQoXCJVc2VySWRcIilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICAgICAgICBgY3JlYXRlR3JvdXBNZW1iZXJzaGlwJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfVRvJHtncm91cE5hbWV9YFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgICAgICAgc2VydmljZTogXCJJZGVudGl0eVN0b3JlXCIsXG4gICAgICAgICAgICAgIGFjdGlvbjogXCJjcmVhdGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgIEdyb3VwSWQ6IGdyb3VwSWQsXG4gICAgICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBpZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICAgICAgTWVtYmVySWQ6IHtcbiAgICAgICAgICAgICAgICAgIFVzZXJJZDogY3JlYXRlVXNlci5nZXRSZXNwb25zZUZpZWxkKFwiVXNlcklkXCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICAgICAgYGNyZWF0ZUdyb3VwTWVtYmVyc2hpcCR7Z2l2ZW5OYW1lfSR7ZmFtaWx5TmFtZX1UbyR7Z3JvdXBOYW1lfWBcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgZGVsZXRlR3JvdXBNZW1iZXJzaGlwJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfUZyb20ke2dyb3VwTmFtZX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uTmFtZTogXCJkZWxldGVHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IFwiSWRlbnRpdHlTdG9yZVwiLFxuICAgICAgICAgICAgICBhY3Rpb246IFwiZGVsZXRlR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IGlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgICAgICBNZW1iZXJzaGlwSWQ6IGdyb3VwTWVtYmVyc2hpcElkLmdldFJlc3BvbnNlRmllbGQoXCJNZW1iZXJzaGlwSWRcIilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OklkZW50aXR5Q2VudGVyVXNlcnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYEdyb3VwTWVtYmVyc2hpcElkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfSR7Z3JvdXBOYW1lfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBgR3JvdXBNZW1iZXJzaGlwSWQke2dpdmVuTmFtZX0ke2ZhbWlseU5hbWV9JHtncm91cE5hbWV9YCxcbiAgICAgICAgICAgIHZhbHVlOiBncm91cE1lbWJlcnNoaXBJZC5nZXRSZXNwb25zZUZpZWxkKFwiTWVtYmVyc2hpcElkXCIpLFxuICAgICAgICAgICAgZXhwb3J0TmFtZTogYEdyb3VwTWVtYmVyc2hpcElkJHtnaXZlbk5hbWV9JHtmYW1pbHlOYW1lfSR7Z3JvdXBOYW1lfWBcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -2,7 +2,11 @@ export * from "./costAllocationTags";
2
2
  export * from "./identityCenter";
3
3
  export * from "./ipam";
4
4
  export * from "./ipamDelegateAdmin";
5
- export * from "./ipamPool";
6
- export * from "./ipamPoolResourceShare";
7
- export * from "./ramEnableSharing";
8
- export * from "./users";
5
+ export * from "./ipamPoolId";
6
+ export * from "./ramSharing";
7
+ export * from "./identityCenterUser";
8
+ export * from "./organisation";
9
+ export * from "./accountId";
10
+ export * from "./ecrDefaultImage";
11
+ export * from "./eventBus";
12
+ export * from "./organisationId";
@@ -18,8 +18,12 @@ __exportStar(require("./costAllocationTags"), exports);
18
18
  __exportStar(require("./identityCenter"), exports);
19
19
  __exportStar(require("./ipam"), exports);
20
20
  __exportStar(require("./ipamDelegateAdmin"), exports);
21
- __exportStar(require("./ipamPool"), exports);
22
- __exportStar(require("./ipamPoolResourceShare"), exports);
23
- __exportStar(require("./ramEnableSharing"), exports);
24
- __exportStar(require("./users"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLG1EQUFpQztBQUNqQyx5Q0FBdUI7QUFDdkIsc0RBQW9DO0FBQ3BDLDZDQUEyQjtBQUMzQiwwREFBd0M7QUFDeEMscURBQW1DO0FBQ25DLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Nvc3RBbGxvY2F0aW9uVGFnc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaWRlbnRpdHlDZW50ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lwYW1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lwYW1EZWxlZ2F0ZUFkbWluXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtUG9vbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXBhbVBvb2xSZXNvdXJjZVNoYXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yYW1FbmFibGVTaGFyaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2Vyc1wiO1xuIl19
21
+ __exportStar(require("./ipamPoolId"), exports);
22
+ __exportStar(require("./ramSharing"), exports);
23
+ __exportStar(require("./identityCenterUser"), exports);
24
+ __exportStar(require("./organisation"), exports);
25
+ __exportStar(require("./accountId"), exports);
26
+ __exportStar(require("./ecrDefaultImage"), exports);
27
+ __exportStar(require("./eventBus"), exports);
28
+ __exportStar(require("./organisationId"), exports);
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLG1EQUFpQztBQUNqQyx5Q0FBdUI7QUFDdkIsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QiwrQ0FBNkI7QUFDN0IsdURBQXFDO0FBQ3JDLGlEQUErQjtBQUMvQiw4Q0FBNEI7QUFDNUIsb0RBQWtDO0FBQ2xDLDZDQUEyQjtBQUMzQixtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb3N0QWxsb2NhdGlvblRhZ3NcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lkZW50aXR5Q2VudGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtRGVsZWdhdGVBZG1pblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXBhbVBvb2xJZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmFtU2hhcmluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaWRlbnRpdHlDZW50ZXJVc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vcmdhbmlzYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FjY291bnRJZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWNyRGVmYXVsdEltYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudEJ1c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3JnYW5pc2F0aW9uSWRcIjtcbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { Stack } from "aws-cdk-lib";
2
1
  import { Construct } from "constructs";
3
- export declare class Ipam extends Stack {
2
+ export declare class Ipam extends Construct {
3
+ readonly privateDefaultScopeId: string;
4
4
  constructor(scope: Construct, id: string);
5
5
  }
@@ -1,17 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Ipam = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
4
+ const constructs_1 = require("constructs");
5
5
  const ipam_1 = require("../../resources/aws/networking/ipam");
6
6
  const cfnOutput_1 = require("../../resources/aws/utilities/cfnOutput");
7
- class Ipam extends aws_cdk_lib_1.Stack {
7
+ const supportedRegions = [
8
+ "us-east-2",
9
+ "us-west-1",
10
+ "us-west-2",
11
+ "ap-southeast-1",
12
+ "ap-southeast-2",
13
+ "ca-central-1",
14
+ "eu-central-1",
15
+ "eu-west-1",
16
+ "eu-west-2",
17
+ "eu-west-3",
18
+ "eu-north-1"
19
+ ];
20
+ function operatingRegions(regions) {
21
+ const operationRegionArray = [];
22
+ for (const region of regions) {
23
+ operationRegionArray.push({ regionName: region });
24
+ }
25
+ return operationRegionArray;
26
+ }
27
+ class Ipam extends constructs_1.Construct {
8
28
  constructor(scope, id) {
9
29
  super(scope, id);
10
30
  const ipam = new ipam_1.Ipam(this, "ipam", {
11
- operatingRegions: [
12
- { regionName: "us-east-1" },
13
- { regionName: "eu-west-1" }
14
- ],
31
+ operatingRegions: operatingRegions(supportedRegions),
15
32
  tags: [
16
33
  {
17
34
  key: "fjall:costAllocation:environment",
@@ -19,6 +36,7 @@ class Ipam extends aws_cdk_lib_1.Stack {
19
36
  }
20
37
  ]
21
38
  });
39
+ this.privateDefaultScopeId = ipam.attrPrivateDefaultScopeId;
22
40
  new cfnOutput_1.CfnOutput(this, "privateDefaultScopeId", {
23
41
  key: "privateDefaultScopeId",
24
42
  value: ipam.attrPrivateDefaultScopeId,
@@ -27,4 +45,4 @@ class Ipam extends aws_cdk_lib_1.Stack {
27
45
  }
28
46
  }
29
47
  exports.Ipam = Ipam;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2lwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW9DO0FBR3BDLDhEQUF3RTtBQUN4RSx1RUFBb0U7QUFFcEUsTUFBYSxJQUFLLFNBQVEsbUJBQUs7SUFDN0IsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLFdBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3ZDLGdCQUFnQixFQUFFO2dCQUNoQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzNCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRTthQUM1QjtZQUNELElBQUksRUFBRTtnQkFDSjtvQkFDRSxHQUFHLEVBQUUsa0NBQWtDO29CQUN2QyxLQUFLLEVBQUUsWUFBWTtpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUkscUJBQVMsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDM0MsR0FBRyxFQUFFLHVCQUF1QjtZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLHlCQUF5QjtZQUNyQyxVQUFVLEVBQUUsMkJBQTJCO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRCRCxvQkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgSXBhbSBhcyBpcGFtQ2xhc3MgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1cIjtcbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jZm5PdXRwdXRcIjtcblxuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGlwYW0gPSBuZXcgaXBhbUNsYXNzKHRoaXMsIFwiaXBhbVwiLCB7XG4gICAgICBvcGVyYXRpbmdSZWdpb25zOiBbXG4gICAgICAgIHsgcmVnaW9uTmFtZTogXCJ1cy1lYXN0LTFcIiB9LFxuICAgICAgICB7IHJlZ2lvbk5hbWU6IFwiZXUtd2VzdC0xXCIgfVxuICAgICAgXSxcbiAgICAgIHRhZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgICAgIHZhbHVlOiBcIm1hbmFnZW1lbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwicHJpdmF0ZURlZmF1bHRTY29wZUlkXCIsIHtcbiAgICAgIGtleTogXCJwcml2YXRlRGVmYXVsdFNjb3BlSWRcIixcbiAgICAgIHZhbHVlOiBpcGFtLmF0dHJQcml2YXRlRGVmYXVsdFNjb3BlSWQsXG4gICAgICBleHBvcnROYW1lOiBcIklwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWRcIlxuICAgIH0pO1xuICB9XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2lwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBRXZDLDhEQUF3RTtBQUN4RSx1RUFBb0U7QUFFcEUsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixXQUFXO0lBQ1gsV0FBVztJQUNYLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxjQUFjO0lBQ2QsV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0lBQ1gsWUFBWTtDQUNiLENBQUM7QUFFRixTQUFTLGdCQUFnQixDQUFDLE9BQWlCO0lBQ3pDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBQzVCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQ25EO0lBQ0QsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBYSxJQUFLLFNBQVEsc0JBQVM7SUFHakMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLFdBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3ZDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1lBQ3BELElBQUksRUFBRTtnQkFDSjtvQkFDRSxHQUFHLEVBQUUsa0NBQWtDO29CQUN2QyxLQUFLLEVBQUUsWUFBWTtpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFFNUQsSUFBSSxxQkFBUyxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUMzQyxHQUFHLEVBQUUsdUJBQXVCO1lBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO1lBQ3JDLFVBQVUsRUFBRSwyQkFBMkI7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdEJELG9CQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IElwYW0gYXMgSXBhbUNsYXNzIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvbmV0d29ya2luZy9pcGFtXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY2ZuT3V0cHV0XCI7XG5cbmNvbnN0IHN1cHBvcnRlZFJlZ2lvbnMgPSBbXG4gIFwidXMtZWFzdC0yXCIsXG4gIFwidXMtd2VzdC0xXCIsXG4gIFwidXMtd2VzdC0yXCIsXG4gIFwiYXAtc291dGhlYXN0LTFcIixcbiAgXCJhcC1zb3V0aGVhc3QtMlwiLFxuICBcImNhLWNlbnRyYWwtMVwiLFxuICBcImV1LWNlbnRyYWwtMVwiLFxuICBcImV1LXdlc3QtMVwiLFxuICBcImV1LXdlc3QtMlwiLFxuICBcImV1LXdlc3QtM1wiLFxuICBcImV1LW5vcnRoLTFcIlxuXTtcblxuZnVuY3Rpb24gb3BlcmF0aW5nUmVnaW9ucyhyZWdpb25zOiBzdHJpbmdbXSk6IHsgcmVnaW9uTmFtZTogc3RyaW5nIH1bXSB7XG4gIGNvbnN0IG9wZXJhdGlvblJlZ2lvbkFycmF5ID0gW107XG4gIGZvciAoY29uc3QgcmVnaW9uIG9mIHJlZ2lvbnMpIHtcbiAgICBvcGVyYXRpb25SZWdpb25BcnJheS5wdXNoKHsgcmVnaW9uTmFtZTogcmVnaW9uIH0pO1xuICB9XG4gIHJldHVybiBvcGVyYXRpb25SZWdpb25BcnJheTtcbn1cblxuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZURlZmF1bHRTY29wZUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgaXBhbSA9IG5ldyBJcGFtQ2xhc3ModGhpcywgXCJpcGFtXCIsIHtcbiAgICAgIG9wZXJhdGluZ1JlZ2lvbnM6IG9wZXJhdGluZ1JlZ2lvbnMoc3VwcG9ydGVkUmVnaW9ucyksXG4gICAgICB0YWdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246ZW52aXJvbm1lbnRcIixcbiAgICAgICAgICB2YWx1ZTogXCJtYW5hZ2VtZW50XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuICAgIHRoaXMucHJpdmF0ZURlZmF1bHRTY29wZUlkID0gaXBhbS5hdHRyUHJpdmF0ZURlZmF1bHRTY29wZUlkO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcInByaXZhdGVEZWZhdWx0U2NvcGVJZFwiLCB7XG4gICAgICBrZXk6IFwicHJpdmF0ZURlZmF1bHRTY29wZUlkXCIsXG4gICAgICB2YWx1ZTogaXBhbS5hdHRyUHJpdmF0ZURlZmF1bHRTY29wZUlkLFxuICAgICAgZXhwb3J0TmFtZTogXCJJcGFtUHJpdmF0ZURlZmF1bHRTY29wZUlkXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,9 +1,8 @@
1
- import { StackProps, Stack } from "aws-cdk-lib";
2
1
  import { Construct } from "constructs";
3
- interface IpamDelegateAdminProps extends StackProps {
4
- accountName?: string;
2
+ interface IpamDelegateAdminProps {
3
+ accountId: string;
5
4
  }
6
- export declare class IpamDelegateAdmin extends Stack {
7
- constructor(scope: Construct, id: string, props?: IpamDelegateAdminProps);
5
+ export declare class IpamDelegateAdmin extends Construct {
6
+ constructor(scope: Construct, id: string, props: IpamDelegateAdminProps);
8
7
  }
9
8
  export {};
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IpamDelegateAdmin = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
4
  const customResources = require("aws-cdk-lib/custom-resources");
6
5
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ const constructs_1 = require("constructs");
7
7
  const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
8
- const getAccountId_1 = require("../../utils/getAccountId");
9
- class IpamDelegateAdmin extends aws_cdk_lib_1.Stack {
8
+ class IpamDelegateAdmin extends constructs_1.Construct {
10
9
  constructor(scope, id, props) {
11
- super(scope, id, props);
10
+ super(scope, id);
12
11
  new awsCustomResource_1.AwsCustomResource(this, "ipamDelegateAdmin", {
13
12
  functionName: "ipamDelegateAdmin",
14
13
  onCreate: {
@@ -16,9 +15,7 @@ class IpamDelegateAdmin extends aws_cdk_lib_1.Stack {
16
15
  action: "enableIpamOrganizationAdminAccount",
17
16
  parameters: {
18
17
  DryRun: false,
19
- DelegatedAdminAccountId: props?.accountName
20
- ? (0, getAccountId_1.default)(props.accountName)
21
- : (0, getAccountId_1.default)("platform")
18
+ DelegatedAdminAccountId: props.accountId
22
19
  },
23
20
  physicalResourceId: customResources.PhysicalResourceId.of("ipamDelegateAdmin")
24
21
  },
@@ -27,9 +24,7 @@ class IpamDelegateAdmin extends aws_cdk_lib_1.Stack {
27
24
  action: "enableIpamOrganizationAdminAccount",
28
25
  parameters: {
29
26
  DryRun: false,
30
- DelegatedAdminAccountId: props?.accountName
31
- ? (0, getAccountId_1.default)(props.accountName)
32
- : (0, getAccountId_1.default)("platform")
27
+ DelegatedAdminAccountId: props.accountId
33
28
  },
34
29
  physicalResourceId: customResources.PhysicalResourceId.of("ipamDelegateAdmin")
35
30
  },
@@ -38,7 +33,7 @@ class IpamDelegateAdmin extends aws_cdk_lib_1.Stack {
38
33
  action: "disableIpamOrganizationAdminAccount",
39
34
  parameters: {
40
35
  DryRun: false,
41
- DelegatedAdminAccountId: (0, getAccountId_1.default)("platform")
36
+ DelegatedAdminAccountId: props.accountId
42
37
  }
43
38
  },
44
39
  resourceType: "Custom::ipamDelegateAdmin",
@@ -50,13 +45,14 @@ class IpamDelegateAdmin extends aws_cdk_lib_1.Stack {
50
45
  "organizations:EnableAWSServiceAccess",
51
46
  "organizations:DisableAWSServiceAccess",
52
47
  "organizations:RegisterDelegatedAdministrator",
48
+ "organizations:DeregisterDelegatedAdministrator",
53
49
  "iam:CreateServiceLinkedRole"
54
50
  ],
55
- resources: ["*"] // TODO: Find out the exact pricipal for this
51
+ resources: ["*"] // TODO: Find out the exact principal for this
56
52
  })
57
53
  ])
58
54
  });
59
55
  }
60
56
  }
61
57
  exports.IpamDelegateAdmin = IpamDelegateAdmin;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbURlbGVnYXRlQWRtaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pcGFtRGVsZWdhdGVBZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBZ0Q7QUFDaEQsZ0VBQWdFO0FBQ2hFLGlEQUFzRDtBQUd0RCx1RkFBb0Y7QUFDcEYsMkRBQW9EO0FBTXBELE1BQWEsaUJBQWtCLFNBQVEsbUJBQUs7SUFDMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUMvQyxZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsb0NBQW9DO2dCQUM1QyxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFdBQVc7d0JBQ3pDLENBQUMsQ0FBQyxJQUFBLHNCQUFZLEVBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQzt3QkFDakMsQ0FBQyxDQUFDLElBQUEsc0JBQVksRUFBQyxVQUFVLENBQUM7aUJBQzdCO2dCQUNELGtCQUFrQixFQUNoQixlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQzdEO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxvQ0FBb0M7Z0JBQzVDLFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsS0FBSztvQkFDYix1QkFBdUIsRUFBRSxLQUFLLEVBQUUsV0FBVzt3QkFDekMsQ0FBQyxDQUFDLElBQUEsc0JBQVksRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDO3dCQUNqQyxDQUFDLENBQUMsSUFBQSxzQkFBWSxFQUFDLFVBQVUsQ0FBQztpQkFDN0I7Z0JBQ0Qsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDN0Q7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLHFDQUFxQztnQkFDN0MsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxLQUFLO29CQUNiLHVCQUF1QixFQUFFLElBQUEsc0JBQVksRUFBQyxVQUFVLENBQUM7aUJBQ2xEO2FBQ0Y7WUFDRCxZQUFZLEVBQUUsMkJBQTJCO1lBQ3pDLE1BQU0sRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUM3RCxJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCx3Q0FBd0M7d0JBQ3hDLHlDQUF5Qzt3QkFDekMsc0NBQXNDO3dCQUN0Qyx1Q0FBdUM7d0JBQ3ZDLDhDQUE4Qzt3QkFDOUMsNkJBQTZCO3FCQUM5QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyw2Q0FBNkM7aUJBQy9ELENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdERELDhDQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrUHJvcHMsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IGdldEFjY291bnRJZCBmcm9tIFwiLi4vLi4vdXRpbHMvZ2V0QWNjb3VudElkXCI7XG5cbmludGVyZmFjZSBJcGFtRGVsZWdhdGVBZG1pblByb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIGFjY291bnROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSXBhbURlbGVnYXRlQWRtaW4gZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSXBhbURlbGVnYXRlQWRtaW5Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiaXBhbURlbGVnYXRlQWRtaW5cIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBcImlwYW1EZWxlZ2F0ZUFkbWluXCIsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkVDMlwiLFxuICAgICAgICBhY3Rpb246IFwiZW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0VDMi5odG1sI2VuYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnQtcHJvcGVydHlcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIERyeVJ1bjogZmFsc2UsXG4gICAgICAgICAgRGVsZWdhdGVkQWRtaW5BY2NvdW50SWQ6IHByb3BzPy5hY2NvdW50TmFtZVxuICAgICAgICAgICAgPyBnZXRBY2NvdW50SWQocHJvcHMuYWNjb3VudE5hbWUpXG4gICAgICAgICAgICA6IGdldEFjY291bnRJZChcInBsYXRmb3JtXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiaXBhbURlbGVnYXRlQWRtaW5cIilcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkVDMlwiLFxuICAgICAgICBhY3Rpb246IFwiZW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgRHJ5UnVuOiBmYWxzZSxcbiAgICAgICAgICBEZWxlZ2F0ZWRBZG1pbkFjY291bnRJZDogcHJvcHM/LmFjY291bnROYW1lXG4gICAgICAgICAgICA/IGdldEFjY291bnRJZChwcm9wcy5hY2NvdW50TmFtZSlcbiAgICAgICAgICAgIDogZ2V0QWNjb3VudElkKFwicGxhdGZvcm1cIilcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgIGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXCJpcGFtRGVsZWdhdGVBZG1pblwiKVxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiRUMyXCIsXG4gICAgICAgIGFjdGlvbjogXCJkaXNhYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0VDMi5odG1sI2Rpc2FibGVJcGFtT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50LXByb3BlcnR5XG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBEcnlSdW46IGZhbHNlLFxuICAgICAgICAgIERlbGVnYXRlZEFkbWluQWNjb3VudElkOiBnZXRBY2NvdW50SWQoXCJwbGF0Zm9ybVwiKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6aXBhbURlbGVnYXRlQWRtaW5cIixcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJlYzI6RW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLFxuICAgICAgICAgICAgXCJlYzI6RGlzYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnRcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpFbmFibGVBV1NTZXJ2aWNlQWNjZXNzXCIsXG4gICAgICAgICAgICBcIm9yZ2FuaXphdGlvbnM6RGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JcIixcbiAgICAgICAgICAgIFwiaWFtOkNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSAvLyBUT0RPOiBGaW5kIG91dCB0aGUgZXhhY3QgcHJpY2lwYWwgZm9yIHRoaXNcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbURlbGVnYXRlQWRtaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pcGFtRGVsZWdhdGVBZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBZ0U7QUFDaEUsaURBQXNEO0FBQ3RELDJDQUF1QztBQUN2Qyx1RkFBb0Y7QUFNcEYsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUM5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDL0MsWUFBWSxFQUFFLG1CQUFtQjtZQUNqQyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLG9DQUFvQztnQkFDNUMsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxLQUFLO29CQUNiLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxTQUFTO2lCQUN6QztnQkFDRCxrQkFBa0IsRUFDaEIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUM3RDtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsb0NBQW9DO2dCQUM1QyxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLFNBQVM7aUJBQ3pDO2dCQUNELGtCQUFrQixFQUNoQixlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQzdEO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxxQ0FBcUM7Z0JBQzdDLFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsS0FBSztvQkFDYix1QkFBdUIsRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDekM7YUFDRjtZQUNELFlBQVksRUFBRSwyQkFBMkI7WUFDekMsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLHdDQUF3Qzt3QkFDeEMseUNBQXlDO3dCQUN6QyxzQ0FBc0M7d0JBQ3RDLHVDQUF1Qzt3QkFDdkMsOENBQThDO3dCQUM5QyxnREFBZ0Q7d0JBQ2hELDZCQUE2QjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsOENBQThDO2lCQUNoRSxDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQW5ERCw4Q0FtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuaW50ZXJmYWNlIElwYW1EZWxlZ2F0ZUFkbWluUHJvcHMge1xuICBhY2NvdW50SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIElwYW1EZWxlZ2F0ZUFkbWluIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1EZWxlZ2F0ZUFkbWluUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiaXBhbURlbGVnYXRlQWRtaW5cIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBcImlwYW1EZWxlZ2F0ZUFkbWluXCIsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkVDMlwiLFxuICAgICAgICBhY3Rpb246IFwiZW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0VDMi5odG1sI2VuYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnQtcHJvcGVydHlcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIERyeVJ1bjogZmFsc2UsXG4gICAgICAgICAgRGVsZWdhdGVkQWRtaW5BY2NvdW50SWQ6IHByb3BzLmFjY291bnRJZFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImlwYW1EZWxlZ2F0ZUFkbWluXCIpXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJFQzJcIixcbiAgICAgICAgYWN0aW9uOiBcImVuYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnRcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIERyeVJ1bjogZmFsc2UsXG4gICAgICAgICAgRGVsZWdhdGVkQWRtaW5BY2NvdW50SWQ6IHByb3BzLmFjY291bnRJZFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImlwYW1EZWxlZ2F0ZUFkbWluXCIpXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogXCJFQzJcIixcbiAgICAgICAgYWN0aW9uOiBcImRpc2FibGVJcGFtT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50XCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvRUMyLmh0bWwjZGlzYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnQtcHJvcGVydHlcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIERyeVJ1bjogZmFsc2UsXG4gICAgICAgICAgRGVsZWdhdGVkQWRtaW5BY2NvdW50SWQ6IHByb3BzLmFjY291bnRJZFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6aXBhbURlbGVnYXRlQWRtaW5cIixcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJlYzI6RW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLFxuICAgICAgICAgICAgXCJlYzI6RGlzYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnRcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpFbmFibGVBV1NTZXJ2aWNlQWNjZXNzXCIsXG4gICAgICAgICAgICBcIm9yZ2FuaXphdGlvbnM6RGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpEZXJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvclwiLFxuICAgICAgICAgICAgXCJpYW06Q3JlYXRlU2VydmljZUxpbmtlZFJvbGVcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdIC8vIFRPRE86IEZpbmQgb3V0IHRoZSBleGFjdCBwcmluY2lwYWwgZm9yIHRoaXNcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { Construct } from "constructs";
2
+ interface IpamPoolIdProps {
3
+ region: string;
4
+ ownerId: string;
5
+ }
6
+ export declare class IpamPoolId extends Construct {
7
+ constructor(scope: Construct, id: string, props: IpamPoolIdProps);
8
+ }
9
+ export {};
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IpamPoolId = void 0;
4
+ const constructs_1 = require("constructs");
5
+ const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
6
+ const customResources = require("aws-cdk-lib/custom-resources");
7
+ const cfnOutput_1 = require("../../resources/aws/utilities/cfnOutput");
8
+ class IpamPoolId extends constructs_1.Construct {
9
+ constructor(scope, id, props) {
10
+ super(scope, id);
11
+ const ipamPoolId = new awsCustomResource_1.AwsCustomResource(this, "CustomResource", {
12
+ functionName: "ipamPoolId",
13
+ onCreate: {
14
+ service: "ec2",
15
+ action: "DescribeIpamPoolsCommand",
16
+ parameters: {
17
+ Filters: [
18
+ {
19
+ Name: "locale",
20
+ Values: [props.region]
21
+ }
22
+ ]
23
+ },
24
+ physicalResourceId: customResources.PhysicalResourceId.of("ipamPoolId")
25
+ },
26
+ resourceType: "Custom::DescribeIpamPools"
27
+ });
28
+ new cfnOutput_1.CfnOutput(this, `Output`, {
29
+ key: `ManagedIpamPoolId`,
30
+ value: ipamPoolId.getResponseField("IpamPools.0.IpamPoolId"),
31
+ exportName: `ManagedIpamPoolId`
32
+ });
33
+ }
34
+ }
35
+ exports.IpamPoolId = IpamPoolId;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2xJZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2lwYW1Qb29sSWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLHVGQUFvRjtBQUNwRixnRUFBZ0U7QUFDaEUsdUVBQW9FO0FBT3BFLE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUMvRCxZQUFZLEVBQUUsWUFBWTtZQUMxQixRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLDBCQUEwQjtnQkFDbEMsVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxJQUFJLEVBQUUsUUFBUTs0QkFDZCxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3lCQUN2QjtxQkFDRjtpQkFDRjtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4RTtZQUNELFlBQVksRUFBRSwyQkFBMkI7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxxQkFBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDNUIsR0FBRyxFQUFFLG1CQUFtQjtZQUN4QixLQUFLLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDO1lBQzVELFVBQVUsRUFBRSxtQkFBbUI7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBNUJELGdDQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY2ZuT3V0cHV0XCI7XG5cbmludGVyZmFjZSBJcGFtUG9vbElkUHJvcHMge1xuICByZWdpb246IHN0cmluZztcbiAgb3duZXJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2xJZCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtUG9vbElkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaXBhbVBvb2xJZCA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcIkN1c3RvbVJlc291cmNlXCIsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogXCJpcGFtUG9vbElkXCIsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcImVjMlwiLFxuICAgICAgICBhY3Rpb246IFwiRGVzY3JpYmVJcGFtUG9vbHNDb21tYW5kXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBGaWx0ZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIE5hbWU6IFwibG9jYWxlXCIsXG4gICAgICAgICAgICAgIFZhbHVlczogW3Byb3BzLnJlZ2lvbl1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcImlwYW1Qb29sSWRcIilcbiAgICAgIH0sXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpEZXNjcmliZUlwYW1Qb29sc1wiXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGBPdXRwdXRgLCB7XG4gICAgICBrZXk6IGBNYW5hZ2VkSXBhbVBvb2xJZGAsXG4gICAgICB2YWx1ZTogaXBhbVBvb2xJZC5nZXRSZXNwb25zZUZpZWxkKFwiSXBhbVBvb2xzLjAuSXBhbVBvb2xJZFwiKSxcbiAgICAgIGV4cG9ydE5hbWU6IGBNYW5hZ2VkSXBhbVBvb2xJZGBcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { CfnOutput } from "aws-cdk-lib";
2
+ import { Construct } from "constructs";
3
+ import { Accounts } from "../../patterns/aws/managedOrganisation";
4
+ interface OrganisationProps {
5
+ organisationName: string;
6
+ orgAccounts: string[];
7
+ platformAccount: string;
8
+ accountEmail: string;
9
+ }
10
+ /**
11
+ * A construct for creating multi environment organisations with a production, staging and development account.
12
+ */
13
+ export default class Organisation extends Construct {
14
+ props: OrganisationProps;
15
+ accountId: CfnOutput;
16
+ private importedAccounts;
17
+ private organisation;
18
+ private organisationalUnits;
19
+ private accounts;
20
+ constructor(scope: Construct, id: string, props: OrganisationProps);
21
+ private importAccounts;
22
+ private addOrganisation;
23
+ private addOrganisationUnitsAndAccounts;
24
+ private addOrganisationalUnit;
25
+ private addAccount;
26
+ getAccounts(): Accounts;
27
+ }
28
+ export {};
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
4
+ const constructs_1 = require("constructs");
5
+ const aws_cdk_lib_2 = require("aws-cdk-lib");
6
+ const stripAndCamelCase_1 = require("../../utils/stripAndCamelCase");
7
+ const customResources = require("aws-cdk-lib/custom-resources");
8
+ const cdk_organizations_1 = require("@pepperize/cdk-organizations");
9
+ const addSuffixToEmail_1 = require("../../utils/addSuffixToEmail");
10
+ const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
11
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
12
+ /**
13
+ * A construct for creating multi environment organisations with a production, staging and development account.
14
+ */
15
+ class Organisation extends constructs_1.Construct {
16
+ constructor(scope, id, props) {
17
+ super(scope, id);
18
+ this.importedAccounts = {};
19
+ this.organisationalUnits = [];
20
+ this.accounts = {};
21
+ this.props = props;
22
+ if (!props.orgAccounts.includes(props.platformAccount)) {
23
+ throw new Error("ERROR: The Platform account specified must be included in the account names");
24
+ }
25
+ this.importAccounts();
26
+ this.addOrganisation();
27
+ this.addOrganisationUnitsAndAccounts();
28
+ }
29
+ importAccounts() {
30
+ const listAccounts = new awsCustomResource_1.AwsCustomResource(this, "ListAccounts", {
31
+ functionName: "listAccounts",
32
+ onCreate: {
33
+ service: "organizations",
34
+ action: "ListAccountsCommand",
35
+ parameters: {
36
+ MaxResults: 20 // TODO: We may hit a limit here, this is higher than the AWS limit for accounts
37
+ },
38
+ physicalResourceId: customResources.PhysicalResourceId.of("listAccounts")
39
+ },
40
+ resourceType: "Custom::ListAccounts",
41
+ policy: customResources.AwsCustomResourcePolicy.fromStatements([
42
+ new aws_iam_1.PolicyStatement({
43
+ actions: ["organizations:ListAccounts"],
44
+ resources: ["*"],
45
+ effect: aws_iam_1.Effect.ALLOW
46
+ })
47
+ ])
48
+ });
49
+ const listAccountsResponse = listAccounts.getResponseField("Accounts");
50
+ const countOccurrences = (str, subStr) => {
51
+ return str.split(subStr).length - 1;
52
+ };
53
+ const idCount = countOccurrences(listAccountsResponse, '"Id"');
54
+ for (let i = 0; i < idCount; i++) {
55
+ const accountName = listAccounts.getResponseField(`Accounts.${i}.Name`);
56
+ const accountEmail = listAccounts.getResponseField(`Accounts.${i}.Email`);
57
+ if (accountName && accountEmail) {
58
+ this.importedAccounts[accountName] = accountEmail;
59
+ }
60
+ }
61
+ }
62
+ addOrganisation() {
63
+ this.organisation = new cdk_organizations_1.Organization(this, this.props.organisationName, {
64
+ featureSet: cdk_organizations_1.FeatureSet.ALL
65
+ });
66
+ // TODO: Validate this enables trusted access
67
+ this.organisation.enableAwsServiceAccess("account.amazonaws.com");
68
+ const enforcedPolicyTypes = [
69
+ cdk_organizations_1.PolicyType.SERVICE_CONTROL_POLICY,
70
+ cdk_organizations_1.PolicyType.TAG_POLICY,
71
+ cdk_organizations_1.PolicyType.BACKUP_POLICY,
72
+ cdk_organizations_1.PolicyType.AISERVICES_OPT_OUT_POLICY
73
+ ];
74
+ for (const policyType of enforcedPolicyTypes) {
75
+ this.organisation.enablePolicyType(policyType);
76
+ }
77
+ }
78
+ addOrganisationUnitsAndAccounts() {
79
+ const orgStructure = [];
80
+ for (const accountName of this.props.orgAccounts) {
81
+ const accountNameId = (0, stripAndCamelCase_1.stripAndCamelCase)(accountName);
82
+ const accountEmail = this.importedAccounts && this.importedAccounts[accountName]
83
+ ? this.importedAccounts[accountName]
84
+ : (0, addSuffixToEmail_1.default)(this.props.accountEmail, accountNameId.toLowerCase());
85
+ const orgUnitStructure = {
86
+ id: `${accountName}OrganizationalUnit`,
87
+ name: accountName,
88
+ accounts: [
89
+ {
90
+ id: `${accountNameId}Account`,
91
+ name: accountName,
92
+ email: accountEmail
93
+ }
94
+ ]
95
+ };
96
+ orgStructure.push(orgUnitStructure);
97
+ }
98
+ for (const orgUnitStructure of orgStructure) {
99
+ const orgUnit = this.addOrganisationalUnit(orgUnitStructure.id, orgUnitStructure.name);
100
+ for (const accountStructure of orgUnitStructure.accounts) {
101
+ this.addAccount(accountStructure.id, accountStructure.name, accountStructure.email, { env: orgUnitStructure.name.toLocaleLowerCase() }, orgUnit);
102
+ }
103
+ }
104
+ }
105
+ addOrganisationalUnit(id, name) {
106
+ const ou = new cdk_organizations_1.OrganizationalUnit(this, id, {
107
+ organizationalUnitName: name,
108
+ parent: this.organisation.root,
109
+ importOnDuplicate: true
110
+ });
111
+ this.organisationalUnits.push(ou);
112
+ return ou;
113
+ }
114
+ addAccount(id, name, email, tags, organisationalUnit) {
115
+ const acc = new cdk_organizations_1.Account(this, id, {
116
+ accountName: name,
117
+ email: email,
118
+ parent: organisationalUnit,
119
+ importOnDuplicate: true
120
+ });
121
+ for (const tag in tags) {
122
+ aws_cdk_lib_2.Tags.of(acc).add(tag, tags[tag]);
123
+ }
124
+ this.accounts[name] = acc.accountId;
125
+ new aws_cdk_lib_1.CfnOutput(this, `${id}Id`, {
126
+ key: `${id}Id`,
127
+ value: acc.accountId,
128
+ exportName: `${id}Id`
129
+ });
130
+ new aws_cdk_lib_1.CfnOutput(this, `${id}Arn`, {
131
+ key: `${id}Arn`,
132
+ value: acc.accountArn,
133
+ exportName: `${id}Arn`
134
+ });
135
+ return acc;
136
+ }
137
+ getAccounts() {
138
+ return this.accounts;
139
+ }
140
+ }
141
+ exports.default = Organisation;
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3Mvb3JnYW5pc2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQXdDO0FBQ3hDLDJDQUF1QztBQUN2Qyw2Q0FBbUM7QUFDbkMscUVBQWtFO0FBQ2xFLGdFQUFnRTtBQUVoRSxvRUFNc0M7QUFFdEMsbUVBQTREO0FBQzVELHVGQUFvRjtBQUNwRixpREFBOEQ7QUFzQjlEOztHQUVHO0FBQ0gsTUFBcUIsWUFBYSxTQUFRLHNCQUFTO0lBU2pELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQU5YLHFCQUFnQixHQUE4QixFQUFFLENBQUM7UUFFakQsd0JBQW1CLEdBQXlCLEVBQUUsQ0FBQztRQUMvQyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBSTlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDYiw2RUFBNkUsQ0FDOUUsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFlBQVksR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDL0QsWUFBWSxFQUFFLGNBQWM7WUFDNUIsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUUscUJBQXFCO2dCQUM3QixVQUFVLEVBQUU7b0JBQ1YsVUFBVSxFQUFFLEVB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QUksRUFBRSxFQUFFLEVBQUU7WUFDaEMsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdEIsa0JBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUVwQyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDN0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ3BCLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDOUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSztTQUN2QixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUE5S0QsK0JBOEtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVGFncyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgc3RyaXBBbmRDYW1lbENhc2UgfSBmcm9tIFwiLi4vLi4vdXRpbHMvc3RyaXBBbmRDYW1lbENhc2VcIjtcbmltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuXG5pbXBvcnQge1xuICBBY2NvdW50LFxuICBGZWF0dXJlU2V0LFxuICBPcmdhbml6YXRpb24sXG4gIE9yZ2FuaXphdGlvbmFsVW5pdCxcbiAgUG9saWN5VHlwZVxufSBmcm9tIFwiQHBlcHBlcml6ZS9jZGstb3JnYW5pemF0aW9uc1wiO1xuXG5pbXBvcnQgYWRkU3VmZml4VG9FbWFpbCBmcm9tIFwiLi4vLi4vdXRpbHMvYWRkU3VmZml4VG9FbWFpbFwiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IEFjY291bnRzIH0gZnJvbSBcIi4uLy4uL3BhdHRlcm5zL2F3cy9tYW5hZ2VkT3JnYW5pc2F0aW9uXCI7XG5cbmludGVyZmFjZSBPcmdhbmlzYXRpb25Qcm9wcyB7XG4gIG9yZ2FuaXNhdGlvbk5hbWU6IHN0cmluZztcbiAgb3JnQWNjb3VudHM6IHN0cmluZ1tdO1xuICBwbGF0Zm9ybUFjY291bnQ6IHN0cmluZztcbiAgYWNjb3VudEVtYWlsOiBzdHJpbmc7XG59XG5cbnR5cGUgQWNjb3VudFN0cnVjdHVyZSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xufTtcblxudHlwZSBPcmdhbmlzYXRpb25TdHJ1Y3R1cmUgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYWNjb3VudHM6IEFjY291bnRTdHJ1Y3R1cmVbXTtcbn07XG5cbi8qKlxuICogQSBjb25zdHJ1Y3QgZm9yIGNyZWF0aW5nIG11bHRpIGVudmlyb25tZW50IG9yZ2FuaXNhdGlvbnMgd2l0aCBhIHByb2R1Y3Rpb24sIHN0YWdpbmcgYW5kIGRldmVsb3BtZW50IGFjY291bnQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9yZ2FuaXNhdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyBwcm9wczogT3JnYW5pc2F0aW9uUHJvcHM7XG4gIHB1YmxpYyBhY2NvdW50SWQ6IENmbk91dHB1dDtcblxuICBwcml2YXRlIGltcG9ydGVkQWNjb3VudHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb246IE9yZ2FuaXphdGlvbjtcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb25hbFVuaXRzOiBPcmdhbml6YXRpb25hbFVuaXRbXSA9IFtdO1xuICBwcml2YXRlIGFjY291bnRzOiBBY2NvdW50cyA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgaWYgKCFwcm9wcy5vcmdBY2NvdW50cy5pbmNsdWRlcyhwcm9wcy5wbGF0Zm9ybUFjY291bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiRVJST1I6IFRoZSBQbGF0Zm9ybSBhY2NvdW50IHNwZWNpZmllZCBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBhY2NvdW50IG5hbWVzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pbXBvcnRBY2NvdW50cygpO1xuICAgIHRoaXMuYWRkT3JnYW5pc2F0aW9uKCk7XG4gICAgdGhpcy5hZGRPcmdhbmlzYXRpb25Vbml0c0FuZEFjY291bnRzKCk7XG4gIH1cblxuICBwcml2YXRlIGltcG9ydEFjY291bnRzKCkge1xuICAgIGNvbnN0IGxpc3RBY2NvdW50cyA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcIkxpc3RBY2NvdW50c1wiLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IFwibGlzdEFjY291bnRzXCIsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIm9yZ2FuaXphdGlvbnNcIixcbiAgICAgICAgYWN0aW9uOiBcIkxpc3RBY2NvdW50c0NvbW1hbmRcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9vcmdhbml6YXRpb25zL2NvbW1hbmQvTGlzdEFjY291bnRzQ29tbWFuZC9cbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE1heFJlc3VsdHM6IDIwIC8vIFRPRE86IFdlIG1heSBoaXQgYSBsaW1pdCBoZXJlLCB0aGlzIGlzIGhpZ2hlciB0aGFuIHRoZSBBV1MgbGltaXQgZm9yIGFjY291bnRzXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwibGlzdEFjY291bnRzXCIpXG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6TGlzdEFjY291bnRzXCIsXG4gICAgICBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcIm9yZ2FuaXphdGlvbnM6TGlzdEFjY291bnRzXCJdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPV1xuICAgICAgICB9KVxuICAgICAgXSlcbiAgICB9KTtcblxuICAgIGNvbnN0IGxpc3RBY2NvdW50c1Jlc3BvbnNlID0gbGlzdEFjY291bnRzLmdldFJlc3BvbnNlRmllbGQoXCJBY2NvdW50c1wiKTtcblxuICAgIGNvbnN0IGNvdW50T2NjdXJyZW5jZXMgPSAoc3RyOiBzdHJpbmcsIHN1YlN0cjogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBzdHIuc3BsaXQoc3ViU3RyKS5sZW5ndGggLSAxO1xuICAgIH07XG4gICAgY29uc3QgaWRDb3VudCA9IGNvdW50T2NjdXJyZW5jZXMobGlzdEFjY291bnRzUmVzcG9uc2UsICdcIklkXCInKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBhY2NvdW50TmFtZSA9IGxpc3RBY2NvdW50cy5nZXRSZXNwb25zZUZpZWxkKGBBY2NvdW50cy4ke2l9Lk5hbWVgKTtcbiAgICAgIGNvbnN0IGFjY291bnRFbWFpbCA9IGxpc3RBY2NvdW50cy5nZXRSZXNwb25zZUZpZWxkKGBBY2NvdW50cy4ke2l9LkVtYWlsYCk7XG4gICAgICBpZiAoYWNjb3VudE5hbWUgJiYgYWNjb3VudEVtYWlsKSB7XG4gICAgICAgIHRoaXMuaW1wb3J0ZWRBY2NvdW50c1thY2NvdW50TmFtZV0gPSBhY2NvdW50RW1haWw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRPcmdhbmlzYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5vcmdhbmlzYXRpb24gPSBuZXcgT3JnYW5pemF0aW9uKHRoaXMsIHRoaXMucHJvcHMub3JnYW5pc2F0aW9uTmFtZSwge1xuICAgICAgZmVhdHVyZVNldDogRmVhdHVyZVNldC5BTExcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IFZhbGlkYXRlIHRoaXMgZW5hYmxlcyB0cnVzdGVkIGFjY2Vzc1xuICAgIHRoaXMub3JnYW5pc2F0aW9uLmVuYWJsZUF3c1NlcnZpY2VBY2Nlc3MoXCJhY2NvdW50LmFtYXpvbmF3cy5jb21cIik7XG5cbiAgICBjb25zdCBlbmZvcmNlZFBvbGljeVR5cGVzOiBQb2xpY3lUeXBlW10gPSBbXG4gICAgICBQb2xpY3lUeXBlLlNFUlZJQ0VfQ09OVFJPTF9QT0xJQ1ksXG4gICAgICBQb2xpY3lUeXBlLlRBR19QT0xJQ1ksXG4gICAgICBQb2xpY3lUeXBlLkJBQ0tVUF9QT0xJQ1ksXG4gICAgICBQb2xpY3lUeXBlLkFJU0VSVklDRVNfT1BUX09VVF9QT0xJQ1lcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCBwb2xpY3lUeXBlIG9mIGVuZm9yY2VkUG9saWN5VHlwZXMpIHtcbiAgICAgIHRoaXMub3JnYW5pc2F0aW9uLmVuYWJsZVBvbGljeVR5cGUocG9saWN5VHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRPcmdhbmlzYXRpb25Vbml0c0FuZEFjY291bnRzKCkge1xuICAgIGNvbnN0IG9yZ1N0cnVjdHVyZTogT3JnYW5pc2F0aW9uU3RydWN0dXJlW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgYWNjb3VudE5hbWUgb2YgdGhpcy5wcm9wcy5vcmdBY2NvdW50cykge1xuICAgICAgY29uc3QgYWNjb3VudE5hbWVJZCA9IHN0cmlwQW5kQ2FtZWxDYXNlKGFjY291bnROYW1lKTtcbiAgICAgIGNvbnN0IGFjY291bnRFbWFpbCA9XG4gICAgICAgIHRoaXMuaW1wb3J0ZWRBY2NvdW50cyAmJiB0aGlzLmltcG9ydGVkQWNjb3VudHNbYWNjb3VudE5hbWVdXG4gICAgICAgICAgPyB0aGlzLmltcG9ydGVkQWNjb3VudHNbYWNjb3VudE5hbWVdXG4gICAgICAgICAgOiBhZGRTdWZmaXhUb0VtYWlsKFxuICAgICAgICAgICAgICB0aGlzLnByb3BzLmFjY291bnRFbWFpbCxcbiAgICAgICAgICAgICAgYWNjb3VudE5hbWVJZC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICApO1xuICAgICAgY29uc3Qgb3JnVW5pdFN0cnVjdHVyZTogT3JnYW5pc2F0aW9uU3RydWN0dXJlID0ge1xuICAgICAgICBpZDogYCR7YWNjb3VudE5hbWV9T3JnYW5pemF0aW9uYWxVbml0YCxcbiAgICAgICAgbmFtZTogYWNjb3VudE5hbWUsXG4gICAgICAgIGFjY291bnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IGAke2FjY291bnROYW1lSWR9QWNjb3VudGAsXG4gICAgICAgICAgICBuYW1lOiBhY2NvdW50TmFtZSxcbiAgICAgICAgICAgIGVtYWlsOiBhY2NvdW50RW1haWxcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgICBvcmdTdHJ1Y3R1cmUucHVzaChvcmdVbml0U3RydWN0dXJlKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG9yZ1VuaXRTdHJ1Y3R1cmUgb2Ygb3JnU3RydWN0dXJlKSB7XG4gICAgICBjb25zdCBvcmdVbml0ID0gdGhpcy5hZGRPcmdhbmlzYXRpb25hbFVuaXQoXG4gICAgICAgIG9yZ1VuaXRTdHJ1Y3R1cmUuaWQsXG4gICAgICAgIG9yZ1VuaXRTdHJ1Y3R1cmUubmFtZVxuICAgICAgKTtcblxuICAgICAgZm9yIChjb25zdCBhY2NvdW50U3RydWN0dXJlIG9mIG9yZ1VuaXRTdHJ1Y3R1cmUuYWNjb3VudHMpIHtcbiAgICAgICAgdGhpcy5hZGRBY2NvdW50KFxuICAgICAgICAgIGFjY291bnRTdHJ1Y3R1cmUuaWQsXG4gICAgICAgICAgYWNjb3VudFN0cnVjdHVyZS5uYW1lLFxuICAgICAgICAgIGFjY291bnRTdHJ1Y3R1cmUuZW1haWwsXG4gICAgICAgICAgeyBlbnY6IG9yZ1VuaXRTdHJ1Y3R1cmUubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpIH0sXG4gICAgICAgICAgb3JnVW5pdFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkT3JnYW5pc2F0aW9uYWxVbml0KGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IE9yZ2FuaXphdGlvbmFsVW5pdCB7XG4gICAgY29uc3Qgb3UgPSBuZXcgT3JnYW5pemF0aW9uYWxVbml0KHRoaXMsIGlkLCB7XG4gICAgICBvcmdhbml6YXRpb25hbFVuaXROYW1lOiBuYW1lLFxuICAgICAgcGFyZW50OiB0aGlzLm9yZ2FuaXNhdGlvbi5yb290LFxuICAgICAgaW1wb3J0T25EdXBsaWNhdGU6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMub3JnYW5pc2F0aW9uYWxVbml0cy5wdXNoKG91KTtcbiAgICByZXR1cm4gb3U7XG4gIH1cblxuICBwcml2YXRlIGFkZEFjY291bnQoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZW1haWw6IHN0cmluZyxcbiAgICB0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIG9yZ2FuaXNhdGlvbmFsVW5pdDogT3JnYW5pemF0aW9uYWxVbml0XG4gICk6IEFjY291bnQge1xuICAgIGNvbnN0IGFjYyA9IG5ldyBBY2NvdW50KHRoaXMsIGlkLCB7XG4gICAgICBhY2NvdW50TmFtZTogbmFtZSxcbiAgICAgIGVtYWlsOiBlbWFpbCxcbiAgICAgIHBhcmVudDogb3JnYW5pc2F0aW9uYWxVbml0LFxuICAgICAgaW1wb3J0T25EdXBsaWNhdGU6IHRydWVcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgdGFnIGluIHRhZ3MpIHtcbiAgICAgIFRhZ3Mub2YoYWNjKS5hZGQodGFnLCB0YWdzW3RhZ10pO1xuICAgIH1cblxuICAgIHRoaXMuYWNjb3VudHNbbmFtZV0gPSBhY2MuYWNjb3VudElkO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1JZGAsIHtcbiAgICAgIGtleTogYCR7aWR9SWRgLFxuICAgICAgdmFsdWU6IGFjYy5hY2NvdW50SWQsXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1JZGBcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2lkfUFybmAsIHtcbiAgICAgIGtleTogYCR7aWR9QXJuYCxcbiAgICAgIHZhbHVlOiBhY2MuYWNjb3VudEFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfUFybmBcbiAgICB9KTtcblxuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjb3VudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudHM7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,7 @@
1
- import { Stack } from "aws-cdk-lib";
1
+ import { CfnOutput } from "aws-cdk-lib";
2
2
  import { Construct } from "constructs";
3
- export declare class OrganisationId extends Stack {
3
+ export declare class OrganisationId extends Construct {
4
+ readonly organisationId: CfnOutput;
5
+ readonly organisationAccountArn: CfnOutput;
4
6
  constructor(scope: Construct, id: string);
5
7
  }