@fjall/components-infrastructure 0.1.5 → 0.1.6

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 (218) 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 +4 -0
  8. package/dist/lib/config/aws/costAllocationTags.js +59 -0
  9. package/dist/lib/config/aws/delegateHostedZoneRole.d.ts +5 -0
  10. package/dist/lib/config/aws/delegateHostedZoneRole.js +77 -0
  11. package/dist/lib/config/aws/ecrDefaultImage.d.ts +11 -0
  12. package/dist/lib/config/aws/ecrDefaultImage.js +127 -0
  13. package/dist/lib/config/aws/eventBus.d.ts +7 -0
  14. package/dist/lib/config/aws/eventBus.js +24 -0
  15. package/dist/lib/config/aws/identityCenter.d.ts +13 -0
  16. package/dist/lib/config/aws/identityCenter.js +102 -0
  17. package/dist/lib/config/aws/identityCenterUser.d.ts +16 -0
  18. package/dist/lib/config/aws/identityCenterUser.js +125 -0
  19. package/dist/lib/config/aws/index.d.ts +12 -0
  20. package/dist/lib/config/aws/index.js +29 -0
  21. package/dist/lib/config/aws/ipam.d.ts +5 -0
  22. package/dist/lib/config/aws/ipam.js +48 -0
  23. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +8 -0
  24. package/dist/lib/config/aws/ipamDelegateAdmin.js +58 -0
  25. package/dist/lib/config/aws/ipamPool.d.ts +5 -0
  26. package/dist/lib/config/aws/ipamPool.js +56 -0
  27. package/dist/lib/config/aws/ipamPoolId.d.ts +9 -0
  28. package/dist/lib/config/aws/ipamPoolId.js +36 -0
  29. package/dist/lib/config/aws/{base/identityCenter.d.ts → ipamPoolResourceShare.d.ts} +2 -2
  30. package/dist/lib/config/aws/ipamPoolResourceShare.js +42 -0
  31. package/dist/lib/config/aws/organisation.d.ts +28 -0
  32. package/dist/lib/config/aws/organisation.js +142 -0
  33. package/dist/lib/config/aws/organisationId.d.ts +7 -0
  34. package/dist/lib/config/aws/organisationId.js +46 -0
  35. package/dist/lib/config/aws/{base/ipamPool.d.ts → ramEnableSharing.d.ts} +1 -1
  36. package/dist/lib/config/aws/ramEnableSharing.js +35 -0
  37. package/dist/lib/config/aws/ramSharing.d.ts +4 -0
  38. package/dist/lib/config/aws/ramSharing.js +35 -0
  39. package/dist/lib/config/aws/{base/ipam.d.ts → users.d.ts} +1 -1
  40. package/dist/lib/config/aws/users.js +126 -0
  41. package/dist/lib/config/fjall/hostedZones/fjall.io.d.ts +10 -0
  42. package/dist/lib/config/fjall/hostedZones/fjall.io.js +25 -0
  43. package/dist/lib/index.d.ts +3 -0
  44. package/dist/lib/index.js +4 -1
  45. package/dist/lib/patterns/aws/basicApp.d.ts +47 -0
  46. package/dist/lib/patterns/aws/basicApp.js +90 -0
  47. package/dist/lib/patterns/aws/buildkite.d.ts +50 -0
  48. package/dist/lib/patterns/aws/buildkite.js +346 -0
  49. package/dist/lib/patterns/aws/freeTierApp.d.ts +46 -0
  50. package/dist/lib/patterns/aws/freeTierApp.js +95 -0
  51. package/dist/lib/patterns/aws/hostedZone.d.ts +11 -0
  52. package/dist/lib/patterns/aws/hostedZone.js +73 -0
  53. package/dist/lib/patterns/aws/index.d.ts +5 -2
  54. package/dist/lib/patterns/aws/index.js +6 -3
  55. package/dist/lib/patterns/aws/managedAccount.d.ts +13 -0
  56. package/dist/lib/patterns/aws/managedAccount.js +39 -0
  57. package/dist/lib/patterns/aws/managedOrganisation.d.ts +19 -0
  58. package/dist/lib/patterns/aws/managedOrganisation.js +45 -0
  59. package/dist/lib/patterns/aws/managedPlatform.d.ts +13 -0
  60. package/dist/lib/patterns/aws/managedPlatform.js +22 -0
  61. package/dist/lib/patterns/aws/spotInstanceApp.d.ts +46 -0
  62. package/dist/lib/patterns/aws/spotInstanceApp.js +95 -0
  63. package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +9 -0
  64. package/dist/lib/patterns/aws/subdomainHostedZone.js +39 -0
  65. package/dist/lib/resources/aws/awsStack.d.ts +5 -0
  66. package/dist/lib/resources/aws/awsStack.js +11 -1
  67. package/dist/lib/resources/aws/compute/ecs.d.ts +74 -0
  68. package/dist/lib/resources/aws/compute/ecs.js +269 -0
  69. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +76 -0
  70. package/dist/lib/resources/aws/compute/ecsFreeTier.js +352 -0
  71. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +76 -0
  72. package/dist/lib/resources/aws/compute/ecsSpot.js +334 -0
  73. package/dist/lib/resources/aws/compute/index.d.ts +2 -0
  74. package/dist/lib/resources/aws/compute/index.js +19 -0
  75. package/dist/lib/resources/aws/compute/lambda.d.ts +13 -6
  76. package/dist/lib/resources/aws/compute/lambda.js +23 -4
  77. package/dist/lib/resources/aws/constant/ecr.js +4 -3
  78. package/dist/lib/resources/aws/constant/vpc.d.ts +10 -2
  79. package/dist/lib/resources/aws/constant/vpc.js +18 -8
  80. package/dist/lib/resources/aws/database/database.d.ts +16 -0
  81. package/dist/lib/resources/aws/database/database.js +30 -0
  82. package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +17 -0
  83. package/dist/lib/resources/aws/database/databaseFreeTier.js +31 -0
  84. package/dist/lib/resources/aws/database/databaseInstance.d.ts +17 -0
  85. package/dist/lib/resources/aws/database/databaseInstance.js +32 -0
  86. package/dist/lib/resources/aws/database/index.d.ts +2 -0
  87. package/dist/lib/resources/aws/database/index.js +19 -0
  88. package/dist/lib/resources/aws/database/rds.d.ts +23 -0
  89. package/dist/lib/resources/aws/database/rds.js +130 -0
  90. package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +36 -0
  91. package/dist/lib/resources/aws/database/rdsFreeTier.js +80 -0
  92. package/dist/lib/resources/aws/database/rdsInstance.d.ts +42 -0
  93. package/dist/lib/resources/aws/database/rdsInstance.js +173 -0
  94. package/dist/lib/resources/aws/iam/identityCenter/assignment.js +13 -0
  95. package/dist/lib/resources/aws/iam/identityCenter/group.js +14 -0
  96. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +13 -0
  97. package/dist/lib/resources/aws/iam/index.d.ts +5 -0
  98. package/dist/lib/resources/aws/iam/index.js +22 -0
  99. package/dist/lib/resources/aws/iam/instanceProfile.d.ts +5 -0
  100. package/dist/lib/resources/aws/iam/instanceProfile.js +13 -0
  101. package/dist/lib/resources/aws/iam/managedPolicy.d.ts +5 -0
  102. package/dist/lib/resources/aws/iam/managedPolicy.js +14 -0
  103. package/dist/lib/resources/aws/iam/policy.d.ts +5 -0
  104. package/dist/lib/resources/aws/iam/policy.js +13 -0
  105. package/dist/lib/resources/aws/iam/role.js +2 -7
  106. package/dist/lib/resources/aws/iam/securityGroup.d.ts +5 -0
  107. package/dist/lib/resources/aws/iam/securityGroup.js +14 -0
  108. package/dist/lib/resources/aws/index.d.ts +1 -0
  109. package/dist/lib/resources/aws/index.js +18 -0
  110. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +18 -0
  111. package/dist/lib/resources/aws/logging/cloudTrail.js +46 -0
  112. package/dist/lib/resources/aws/logging/logGroup.d.ts +8 -4
  113. package/dist/lib/resources/aws/logging/logGroup.js +6 -7
  114. package/dist/lib/resources/aws/networking/hostedZone.d.ts +19 -3
  115. package/dist/lib/resources/aws/networking/hostedZone.js +59 -11
  116. package/dist/lib/resources/aws/networking/index.d.ts +3 -0
  117. package/dist/lib/resources/aws/networking/index.js +20 -0
  118. package/dist/lib/resources/aws/networking/ipam.d.ts +2 -2
  119. package/dist/lib/resources/aws/networking/ipam.js +3 -3
  120. package/dist/lib/resources/aws/networking/ipamPool.d.ts +14 -5
  121. package/dist/lib/resources/aws/networking/ipamPool.js +69 -22
  122. package/dist/lib/resources/aws/networking/vpc.d.ts +29 -0
  123. package/dist/lib/resources/aws/networking/vpc.js +64 -0
  124. package/dist/lib/resources/aws/secrets/alias.d.ts +5 -0
  125. package/dist/lib/resources/aws/secrets/alias.js +13 -0
  126. package/dist/lib/resources/aws/secrets/index.d.ts +5 -0
  127. package/dist/lib/resources/aws/secrets/index.js +22 -0
  128. package/dist/lib/resources/aws/secrets/kms.d.ts +14 -0
  129. package/dist/lib/resources/aws/secrets/kms.js +34 -0
  130. package/dist/lib/resources/aws/secrets/parameter.d.ts +26 -0
  131. package/dist/lib/resources/aws/secrets/parameter.js +100 -0
  132. package/dist/lib/resources/aws/secrets/secret.d.ts +24 -0
  133. package/dist/lib/resources/aws/secrets/secret.js +53 -0
  134. package/dist/lib/resources/aws/storage/ecr.d.ts +12 -0
  135. package/dist/lib/resources/aws/storage/ecr.js +31 -0
  136. package/dist/lib/resources/aws/storage/index.d.ts +2 -0
  137. package/dist/lib/resources/aws/storage/index.js +19 -0
  138. package/dist/lib/resources/aws/storage/s3.d.ts +11 -0
  139. package/dist/lib/resources/aws/storage/s3.js +44 -0
  140. package/dist/lib/resources/aws/store/alias.d.ts +5 -0
  141. package/dist/lib/resources/aws/store/alias.js +13 -0
  142. package/dist/lib/resources/aws/store/database.d.ts +7 -2
  143. package/dist/lib/resources/aws/store/database.js +9 -5
  144. package/dist/lib/resources/aws/store/index.d.ts +7 -0
  145. package/dist/lib/resources/aws/store/index.js +24 -0
  146. package/dist/lib/resources/aws/store/kms.d.ts +14 -0
  147. package/dist/lib/resources/aws/store/kms.js +34 -0
  148. package/dist/lib/resources/aws/store/parameter.d.ts +26 -0
  149. package/dist/lib/resources/aws/store/parameter.js +100 -0
  150. package/dist/lib/resources/aws/store/rds.d.ts +15 -15
  151. package/dist/lib/resources/aws/store/rds.js +110 -68
  152. package/dist/lib/resources/aws/store/s3.d.ts +11 -0
  153. package/dist/lib/resources/aws/store/s3.js +43 -0
  154. package/dist/lib/resources/aws/store/secret.d.ts +26 -0
  155. package/dist/lib/resources/aws/store/secret.js +55 -0
  156. package/dist/lib/resources/aws/utilities/awsCustomResource.js +1 -6
  157. package/dist/lib/resources/aws/utilities/cfnOutput.js +2 -5
  158. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +15 -0
  159. package/dist/lib/resources/aws/utilities/codeBuild.js +28 -0
  160. package/dist/lib/resources/aws/utilities/customResource.d.ts +20 -3
  161. package/dist/lib/resources/aws/utilities/customResource.js +24 -5
  162. package/dist/lib/resources/aws/utilities/customResourceProvider.js +1 -5
  163. package/dist/lib/resources/aws/utilities/resourceShare.d.ts +5 -0
  164. package/dist/lib/resources/aws/utilities/resourceShare.js +13 -0
  165. package/dist/lib/resources/index.d.ts +1 -0
  166. package/dist/lib/resources/index.js +18 -0
  167. package/dist/lib/types.d.ts +3 -0
  168. package/dist/lib/types.js +3 -0
  169. package/dist/lib/utils/capitalizeString.d.ts +1 -0
  170. package/dist/lib/utils/capitalizeString.js +8 -0
  171. package/dist/lib/utils/getAccountId.d.ts +1 -0
  172. package/dist/lib/utils/getAccountId.js +12 -0
  173. package/dist/lib/utils/getCidr.d.ts +8 -0
  174. package/dist/lib/utils/getCidr.js +42 -0
  175. package/dist/lib/utils/getConfig.d.ts +7 -5
  176. package/dist/lib/utils/getConfig.js +39 -11
  177. package/dist/lib/utils/getStackOutput.d.ts +1 -0
  178. package/dist/lib/utils/getStackOutput.js +20 -0
  179. package/dist/lib/utils/index.d.ts +1 -0
  180. package/dist/lib/utils/index.js +18 -0
  181. package/dist/lib/utils/stripAndCamelCase.d.ts +1 -0
  182. package/dist/lib/utils/stripAndCamelCase.js +17 -0
  183. package/dist/lib/utils/tagResource.d.ts +4 -0
  184. package/dist/lib/utils/tagResource.js +10 -0
  185. package/dist/lib/utils/usersConfig.d.ts +7 -0
  186. package/dist/lib/utils/usersConfig.js +18 -0
  187. package/package.json +23 -18
  188. package/dist/lib/config/aws/base/costAllocationTags.d.ts +0 -5
  189. package/dist/lib/config/aws/base/costAllocationTags.js +0 -57
  190. package/dist/lib/config/aws/base/iamIdentityCenter.d.ts +0 -5
  191. package/dist/lib/config/aws/base/iamIdentityCenter.js +0 -86
  192. package/dist/lib/config/aws/base/identityCenter.js +0 -90
  193. package/dist/lib/config/aws/base/ipam.js +0 -29
  194. package/dist/lib/config/aws/base/ipamPool.js +0 -46
  195. package/dist/lib/examples/custom-resources/lambda/aws-cost-allocation-tags/awsCostAllocationTagsLambda.d.ts +0 -2
  196. package/dist/lib/examples/custom-resources/lambda/aws-cost-allocation-tags/awsCostAllocationTagsLambda.js +0 -62
  197. package/dist/lib/examples/cutomResourceExample.d.ts +0 -6
  198. package/dist/lib/examples/cutomResourceExample.js +0 -45
  199. package/dist/lib/patterns/aws/customResource.d.ts +0 -7
  200. package/dist/lib/patterns/aws/customResource.js +0 -28
  201. package/dist/lib/patterns/aws/multiEnvironmentOrganisation.d.ts +0 -33
  202. package/dist/lib/patterns/aws/multiEnvironmentOrganisation.js +0 -107
  203. package/dist/lib/patterns/aws/webApp.d.ts +0 -17
  204. package/dist/lib/patterns/aws/webApp.js +0 -36
  205. package/dist/lib/resources/aws/compute/__tests__/fargate.test.d.ts +0 -1
  206. package/dist/lib/resources/aws/compute/__tests__/fargate.test.js +0 -21
  207. package/dist/lib/resources/aws/compute/fargate.d.ts +0 -23
  208. package/dist/lib/resources/aws/compute/fargate.js +0 -50
  209. package/dist/lib/resources/aws/constant/__tests__/vpc.test.d.ts +0 -1
  210. package/dist/lib/resources/aws/constant/__tests__/vpc.test.js +0 -13
  211. package/dist/lib/resources/aws/iam/assignment.js +0 -13
  212. package/dist/lib/resources/aws/iam/group.js +0 -15
  213. package/dist/lib/resources/aws/iam/iamRole.d.ts +0 -5
  214. package/dist/lib/resources/aws/iam/iamRole.js +0 -18
  215. package/dist/lib/resources/aws/iam/permissionSet.js +0 -13
  216. /package/dist/lib/resources/aws/iam/{assignment.d.ts → identityCenter/assignment.d.ts} +0 -0
  217. /package/dist/lib/resources/aws/iam/{group.d.ts → identityCenter/group.d.ts} +0 -0
  218. /package/dist/lib/resources/aws/iam/{permissionSet.d.ts → identityCenter/permissionSet.d.ts} +0 -0
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MultiEnvironmentOrganisationStack = exports.MultiEnvironmentOrganisation = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const constructs_1 = require("constructs");
6
- const aws_cdk_lib_2 = require("aws-cdk-lib");
7
- const app_1 = require("../../app");
8
- const cdk_organizations_1 = require("@pepperize/cdk-organizations");
9
- const addSuffixToEmail_1 = require("../../utils/addSuffixToEmail");
10
- /**
11
- * A construct for creating multi environment organisations with a production, staging and development account.
12
- */
13
- class MultiEnvironmentOrganisation extends constructs_1.Construct {
14
- constructor(scope, id, props) {
15
- super(scope, id);
16
- this.organisationalUnits = [];
17
- this.accounts = [];
18
- this.props = props;
19
- this.addOrganisation();
20
- this.addProductionUnit();
21
- this.addStagingUnit();
22
- this.addDevelopmentUnit();
23
- //todo: Consider adding the remaining AWS recommended organisational units
24
- // https://aws.amazon.com/blogs/mt/best-practices-for-organizational-units-with-aws-organizations/
25
- // - deployments (build agents - accounts may be specific per 'service')
26
- // - security
27
- // - infrastructure (shared networking and IT services)
28
- // - sandbox (equivalent to development unit?)
29
- // - workloads
30
- }
31
- addOrganisation() {
32
- this.organisation = new cdk_organizations_1.Organization(this, this.props.organisationName, {
33
- featureSet: cdk_organizations_1.FeatureSet.ALL
34
- });
35
- const enforcedPolicyTypes = [
36
- cdk_organizations_1.PolicyType.SERVICE_CONTROL_POLICY,
37
- cdk_organizations_1.PolicyType.TAG_POLICY,
38
- cdk_organizations_1.PolicyType.BACKUP_POLICY,
39
- cdk_organizations_1.PolicyType.AISERVICES_OPT_OUT_POLICY
40
- ];
41
- for (const policyType of enforcedPolicyTypes) {
42
- this.organisation.enablePolicyType(policyType);
43
- }
44
- }
45
- addProductionUnit() {
46
- const prodOrgUnit = this.addOrganisationalUnit("productionOrganizationalUnit", "Production");
47
- this.addAccount("productionAccount", "Production2", (0, addSuffixToEmail_1.default)(this.props.accountEmail, "production2"), { env: "production" }, prodOrgUnit);
48
- }
49
- addStagingUnit() {
50
- const stagOrgUnit = this.addOrganisationalUnit("stagingOrganisationUnit", "Staging");
51
- this.addAccount("stagingAccount", "Staging", (0, addSuffixToEmail_1.default)(this.props.accountEmail, "staging"), { env: "staging" }, stagOrgUnit);
52
- }
53
- addDevelopmentUnit() {
54
- const devOrgUnit = this.addOrganisationalUnit("developmentOrganisationUnit", "Development");
55
- this.addAccount("developmentAccount", "Development", (0, addSuffixToEmail_1.default)(this.props.accountEmail, "development"), { env: "development" }, devOrgUnit);
56
- }
57
- addOrganisationalUnit(id, name) {
58
- const ou = new cdk_organizations_1.OrganizationalUnit(this, id, {
59
- organizationalUnitName: name,
60
- parent: this.organisation.root,
61
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY //todo: validate if this is best practice
62
- // defaults
63
- // importOnDuplicate: false, //todo: should we import pre-existing organisational units?
64
- });
65
- this.organisationalUnits.push(ou);
66
- return ou;
67
- }
68
- addAccount(id, name, email, tags, organisationalUnit) {
69
- const acc = new cdk_organizations_1.Account(this, id, {
70
- accountName: name,
71
- email: email,
72
- parent: organisationalUnit
73
- });
74
- this.accounts.push(acc);
75
- for (const tag in tags) {
76
- aws_cdk_lib_2.Tags.of(acc).add(tag, tags[tag]);
77
- }
78
- new aws_cdk_lib_1.CfnOutput(this, `${id}Id`, {
79
- value: acc.accountId,
80
- exportName: `${id}Id`
81
- });
82
- new aws_cdk_lib_1.CfnOutput(this, `${id}Arn`, {
83
- value: acc.accountId,
84
- exportName: `${id}Arn`
85
- });
86
- return acc;
87
- }
88
- getAccounts() {
89
- return this.accounts;
90
- }
91
- }
92
- exports.MultiEnvironmentOrganisation = MultiEnvironmentOrganisation;
93
- exports.default = MultiEnvironmentOrganisation;
94
- /**
95
- * A stack for creating multi environment organisations with a production, staging and development account.
96
- */
97
- class MultiEnvironmentOrganisationStack extends aws_cdk_lib_1.Stack {
98
- constructor(id, props) {
99
- super(app_1.default.getInstance(), id);
100
- this.resource = new MultiEnvironmentOrganisation(this, id, props);
101
- }
102
- getAccounts() {
103
- return this.resource.getAccounts();
104
- }
105
- }
106
- exports.MultiEnvironmentOrganisationStack = MultiEnvironmentOrganisationStack;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlFbnZpcm9ubWVudE9yZ2FuaXNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvbXVsdGlFbnZpcm9ubWVudE9yZ2FuaXNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBOEQ7QUFDOUQsMkNBQXVDO0FBQ3ZDLDZDQUFtQztBQUVuQyxtQ0FBNEI7QUFFNUIsb0VBTXNDO0FBRXRDLG1FQUE0RDtBQU81RDs7R0FFRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsc0JBQVM7SUFPekQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBd0M7UUFFeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQVJYLHdCQUFtQixHQUF5QixFQUFFLENBQUM7UUFDL0MsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQVEvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLDBFQUEwRTtRQUMxRSxrR0FBa0c7UUFDbEcsd0VBQXdFO1FBQ3hFLGFBQWE7UUFDYix1REFBdUQ7UUFDdkQsOENBQThDO1FBQzlDLGNBQWM7SUFDaEIsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGdDQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEUsVUFBVSxFQUFFLDhCQUFVLENBQUMsR0FBRztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLG1CQUFtQixHQUFpQjtZQUN4Qyw4QkFBVSxDQUFDLHNCQUFzQjtZQUNqQyw4QkFBVSxDQUFDLFVBQVU7WUFDckIs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S0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ3BCLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSztTQUN2QixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUExSUQsb0VBMElDO0FBQ0Qsa0JBQWUsNEJBQTRCLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxNQUFhLGlDQUFrQyxTQUFRLG1CQUFLO0lBRzFELFlBQVksRUFBVSxFQUFFLEtBQXdDO1FBQzlELEtBQUssQ0FBQyxhQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDRCQUE0QixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQVhELDhFQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhY2ssIFJlbW92YWxQb2xpY3ksIENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuaW1wb3J0IEFwcCBmcm9tIFwiLi4vLi4vYXBwXCI7XG5cbmltcG9ydCB7XG4gIEFjY291bnQsXG4gIEZlYXR1cmVTZXQsXG4gIE9yZ2FuaXphdGlvbixcbiAgT3JnYW5pemF0aW9uYWxVbml0LFxuICBQb2xpY3lUeXBlXG59IGZyb20gXCJAcGVwcGVyaXplL2Nkay1vcmdhbml6YXRpb25zXCI7XG5cbmltcG9ydCBhZGRTdWZmaXhUb0VtYWlsIGZyb20gXCIuLi8uLi91dGlscy9hZGRTdWZmaXhUb0VtYWlsXCI7XG5cbmludGVyZmFjZSBNdWx0aUVudmlyb25tZW50T3JnYW5pc2F0aW9uUHJvcHMge1xuICBvcmdhbmlzYXRpb25OYW1lOiBzdHJpbmc7XG4gIGFjY291bnRFbWFpbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29uc3RydWN0IGZvciBjcmVhdGluZyBtdWx0aSBlbnZpcm9ubWVudCBvcmdhbmlzYXRpb25zIHdpdGggYSBwcm9kdWN0aW9uLCBzdGFnaW5nIGFuZCBkZXZlbG9wbWVudCBhY2NvdW50LlxuICovXG5leHBvcnQgY2xhc3MgTXVsdGlFbnZpcm9ubWVudE9yZ2FuaXNhdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyBwcm9wczogTXVsdGlFbnZpcm9ubWVudE9yZ2FuaXNhdGlvblByb3BzO1xuXG4gIHByaXZhdGUgb3JnYW5pc2F0aW9uOiBPcmdhbml6YXRpb247XG4gIHByaXZhdGUgb3JnYW5pc2F0aW9uYWxVbml0czogT3JnYW5pemF0aW9uYWxVbml0W10gPSBbXTtcbiAgcHJpdmF0ZSBhY2NvdW50czogQWNjb3VudFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBNdWx0aUVudmlyb25tZW50T3JnYW5pc2F0aW9uUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLmFkZE9yZ2FuaXNhdGlvbigpO1xuXG4gICAgdGhpcy5hZGRQcm9kdWN0aW9uVW5pdCgpO1xuICAgIHRoaXMuYWRkU3RhZ2luZ1VuaXQoKTtcbiAgICB0aGlzLmFkZERldmVsb3BtZW50VW5pdCgpO1xuXG4gICAgLy90b2RvOiBDb25zaWRlciBhZGRpbmcgdGhlIHJlbWFpbmluZyBBV1MgcmVjb21tZW5kZWQgb3JnYW5pc2F0aW9uYWwgdW5pdHNcbiAgICAvLyBodHRwczovL2F3cy5hbWF6b24uY29tL2Jsb2dzL210L2Jlc3QtcHJhY3RpY2VzLWZvci1vcmdhbml6YXRpb25hbC11bml0cy13aXRoLWF3cy1vcmdhbml6YXRpb25zL1xuICAgIC8vIC0gZGVwbG95bWVudHMgKGJ1aWxkIGFnZW50cyAtIGFjY291bnRzIG1heSBiZSBzcGVjaWZpYyBwZXIgJ3NlcnZpY2UnKVxuICAgIC8vIC0gc2VjdXJpdHlcbiAgICAvLyAtIGluZnJhc3RydWN0dXJlIChzaGFyZWQgbmV0d29ya2luZyBhbmQgSVQgc2VydmljZXMpXG4gICAgLy8gLSBzYW5kYm94IChlcXVpdmFsZW50IHRvIGRldmVsb3BtZW50IHVuaXQ/KVxuICAgIC8vIC0gd29ya2xvYWRzXG4gIH1cblxuICBwcml2YXRlIGFkZE9yZ2FuaXNhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm9yZ2FuaXNhdGlvbiA9IG5ldyBPcmdhbml6YXRpb24odGhpcywgdGhpcy5wcm9wcy5vcmdhbmlzYXRpb25OYW1lLCB7XG4gICAgICBmZWF0dXJlU2V0OiBGZWF0dXJlU2V0LkFMTFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5mb3JjZWRQb2xpY3lUeXBlczogUG9saWN5VHlwZVtdID0gW1xuICAgICAgUG9saWN5VHlwZS5TRVJWSUNFX0NPTlRST0xfUE9MSUNZLFxuICAgICAgUG9saWN5VHlwZS5UQUdfUE9MSUNZLFxuICAgICAgUG9saWN5VHlwZS5CQUNLVVBfUE9MSUNZLFxuICAgICAgUG9saWN5VHlwZS5BSVNFUlZJQ0VTX09QVF9PVVRfUE9MSUNZXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgcG9saWN5VHlwZSBvZiBlbmZvcmNlZFBvbGljeVR5cGVzKSB7XG4gICAgICB0aGlzLm9yZ2FuaXNhdGlvbi5lbmFibGVQb2xpY3lUeXBlKHBvbGljeVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkUHJvZHVjdGlvblVuaXQoKTogdm9pZCB7XG4gICAgY29uc3QgcHJvZE9yZ1VuaXQgPSB0aGlzLmFkZE9yZ2FuaXNhdGlvbmFsVW5pdChcbiAgICAgIFwicHJvZHVjdGlvbk9yZ2FuaXphdGlvbmFsVW5pdFwiLFxuICAgICAgXCJQcm9kdWN0aW9uXCJcbiAgICApO1xuXG4gICAgdGhpcy5hZGRBY2NvdW50KFxuICAgICAgXCJwcm9kdWN0aW9uQWNjb3VudFwiLFxuICAgICAgXCJQcm9kdWN0aW9uMlwiLFxuICAgICAgYWRkU3VmZml4VG9FbWFpbCh0aGlzLnByb3BzLmFjY291bnRFbWFpbCwgXCJwcm9kdWN0aW9uMlwiKSxcbiAgICAgIHsgZW52OiBcInByb2R1Y3Rpb25cIiB9LFxuICAgICAgcHJvZE9yZ1VuaXRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTdGFnaW5nVW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnT3JnVW5pdCA9IHRoaXMuYWRkT3JnYW5pc2F0aW9uYWxVbml0KFxuICAgICAgXCJzdGFnaW5nT3JnYW5pc2F0aW9uVW5pdFwiLFxuICAgICAgXCJTdGFnaW5nXCJcbiAgICApO1xuXG4gICAgdGhpcy5hZGRBY2NvdW50KFxuICAgICAgXCJzdGFnaW5nQWNjb3VudFwiLFxuICAgICAgXCJTdGFnaW5nXCIsXG4gICAgICBhZGRTdWZmaXhUb0VtYWlsKHRoaXMucHJvcHMuYWNjb3VudEVtYWlsLCBcInN0YWdpbmdcIiksXG4gICAgICB7IGVudjogXCJzdGFnaW5nXCIgfSxcbiAgICAgIHN0YWdPcmdVbml0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRGV2ZWxvcG1lbnRVbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRldk9yZ1VuaXQgPSB0aGlzLmFkZE9yZ2FuaXNhdGlvbmFsVW5pdChcbiAgICAgIFwiZGV2ZWxvcG1lbnRPcmdhbmlzYXRpb25Vbml0XCIsXG4gICAgICBcIkRldmVsb3BtZW50XCJcbiAgICApO1xuXG4gICAgdGhpcy5hZGRBY2NvdW50KFxuICAgICAgXCJkZXZlbG9wbWVudEFjY291bnRcIixcbiAgICAgIFwiRGV2ZWxvcG1lbnRcIixcbiAgICAgIGFkZFN1ZmZpeFRvRW1haWwodGhpcy5wcm9wcy5hY2NvdW50RW1haWwsIFwiZGV2ZWxvcG1lbnRcIiksXG4gICAgICB7IGVudjogXCJkZXZlbG9wbWVudFwiIH0sXG4gICAgICBkZXZPcmdVbml0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkT3JnYW5pc2F0aW9uYWxVbml0KGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IE9yZ2FuaXphdGlvbmFsVW5pdCB7XG4gICAgY29uc3Qgb3UgPSBuZXcgT3JnYW5pemF0aW9uYWxVbml0KHRoaXMsIGlkLCB7XG4gICAgICBvcmdhbml6YXRpb25hbFVuaXROYW1lOiBuYW1lLFxuICAgICAgcGFyZW50OiB0aGlzLm9yZ2FuaXNhdGlvbi5yb290LFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIC8vdG9kbzogdmFsaWRhdGUgaWYgdGhpcyBpcyBiZXN0IHByYWN0aWNlXG4gICAgICAvLyBkZWZhdWx0c1xuICAgICAgLy8gaW1wb3J0T25EdXBsaWNhdGU6IGZhbHNlLCAvL3RvZG86IHNob3VsZCB3ZSBpbXBvcnQgcHJlLWV4aXN0aW5nIG9yZ2FuaXNhdGlvbmFsIHVuaXRzP1xuICAgIH0pO1xuXG4gICAgdGhpcy5vcmdhbmlzYXRpb25hbFVuaXRzLnB1c2gob3UpO1xuICAgIHJldHVybiBvdTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQWNjb3VudChcbiAgICBpZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBlbWFpbDogc3RyaW5nLFxuICAgIHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgb3JnYW5pc2F0aW9uYWxVbml0OiBPcmdhbml6YXRpb25hbFVuaXRcbiAgKTogQWNjb3VudCB7XG4gICAgY29uc3QgYWNjID0gbmV3IEFjY291bnQodGhpcywgaWQsIHtcbiAgICAgIGFjY291bnROYW1lOiBuYW1lLFxuICAgICAgZW1haWw6IGVtYWlsLFxuICAgICAgcGFyZW50OiBvcmdhbmlzYXRpb25hbFVuaXRcbiAgICB9KTtcbiAgICB0aGlzLmFjY291bnRzLnB1c2goYWNjKTtcblxuICAgIGZvciAoY29uc3QgdGFnIGluIHRhZ3MpIHtcbiAgICAgIFRhZ3Mub2YoYWNjKS5hZGQodGFnLCB0YWdzW3RhZ10pO1xuICAgIH1cblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9SWRgLCB7XG4gICAgICB2YWx1ZTogYWNjLmFjY291bnRJZCxcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfUlkYFxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9QXJuYCwge1xuICAgICAgdmFsdWU6IGFjYy5hY2NvdW50SWQsXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1Bcm5gXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9XG5cbiAgcHVibGljIGdldEFjY291bnRzKCkge1xuICAgIHJldHVybiB0aGlzLmFjY291bnRzO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCBNdWx0aUVudmlyb25tZW50T3JnYW5pc2F0aW9uO1xuXG4vKipcbiAqIEEgc3RhY2sgZm9yIGNyZWF0aW5nIG11bHRpIGVudmlyb25tZW50IG9yZ2FuaXNhdGlvbnMgd2l0aCBhIHByb2R1Y3Rpb24sIHN0YWdpbmcgYW5kIGRldmVsb3BtZW50IGFjY291bnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNdWx0aUVudmlyb25tZW50T3JnYW5pc2F0aW9uU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIHByaXZhdGUgcmVzb3VyY2U6IE11bHRpRW52aXJvbm1lbnRPcmdhbmlzYXRpb247XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcHJvcHM6IE11bHRpRW52aXJvbm1lbnRPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKEFwcC5nZXRJbnN0YW5jZSgpLCBpZCk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBNdWx0aUVudmlyb25tZW50T3JnYW5pc2F0aW9uKHRoaXMsIGlkLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjb3VudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuZ2V0QWNjb3VudHMoKTtcbiAgfVxufVxuIl19
@@ -1,17 +0,0 @@
1
- import { AwsStackProps } from "../../resources/aws/awsStack";
2
- export interface WebAppProps {
3
- account?: string;
4
- region?: string;
5
- environment?: string;
6
- tags?: {
7
- [key: string]: string;
8
- };
9
- }
10
- export declare class WebApp {
11
- private vpcStack;
12
- private databaseStack;
13
- private computeStack;
14
- constructor(id: string, props?: WebAppProps);
15
- getStackProps(props?: WebAppProps): AwsStackProps | undefined;
16
- }
17
- export default WebApp;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebApp = void 0;
4
- const awsStack_1 = require("../../resources/aws/awsStack");
5
- const vpc_1 = require("../../resources/aws/constant/vpc");
6
- const ecr_1 = require("../../resources/aws/constant/ecr");
7
- const fargate_1 = require("../../resources/aws/compute/fargate");
8
- const database_1 = require("../../resources/aws/store/database");
9
- class WebApp {
10
- constructor(id, props) {
11
- this.vpcStack = new awsStack_1.default(`${id}Network`, [], this.getStackProps(props))
12
- .addNetwork(vpc_1.Vpc.build(`${id}Vpc`))
13
- .addResource(ecr_1.default.build(`${id}Ecr`));
14
- this.databaseStack = new awsStack_1.default(`${id}Database`, this.vpcStack, this.getStackProps(props))
15
- .addNetwork(this.vpcStack.getNetwork())
16
- .addResource(database_1.default.build(`${id}Database`));
17
- //todo: validate id does not contain special characters (no hyphens - no slashes etc)
18
- // this is neccessary as database instances won't allow it
19
- this.computeStack = new awsStack_1.default(`${id}Compute`, [this.vpcStack, this.databaseStack], this.getStackProps(props))
20
- .addNetwork(this.vpcStack.getNetwork())
21
- .addResource(fargate_1.default.build(`${id}Fargate`))
22
- .connect(`${id}Fargate`, this.databaseStack.getResource(`${id}Database`), 5432);
23
- }
24
- getStackProps(props) {
25
- if (!props)
26
- return;
27
- return {
28
- account: props.account,
29
- region: props.region,
30
- environment: props.environment
31
- };
32
- }
33
- }
34
- exports.WebApp = WebApp;
35
- exports.default = WebApp;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViQXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy93ZWJBcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXVFO0FBQ3ZFLDBEQUF1RDtBQUN2RCwwREFBbUQ7QUFDbkQsaUVBQTBEO0FBQzFELGlFQUEwRDtBQVMxRCxNQUFhLE1BQU07SUFLakIsWUFBWSxFQUFVLEVBQUUsS0FBbUI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4RSxVQUFVLENBQUMsU0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDakMsV0FBVyxDQUFDLGFBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGtCQUFRLENBQy9CLEdBQUcsRUFBRSxVQUFVLEVBQ2YsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUMxQjthQUNFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3RDLFdBQVcsQ0FBQyxrQkFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUVoRCxxRkFBcUY7UUFDckYsMkRBQTJEO1FBRTNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxrQkFBUSxDQUM5QixHQUFHLEVBQUUsU0FBUyxFQUNkLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQzFCO2FBQ0UsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDdEMsV0FBVyxDQUFDLGlCQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUMxQyxPQUFPLENBQ04sR0FBRyxFQUFFLFNBQVMsRUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFtQjtRQUMvQixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsT0FBTztZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE1Q0Qsd0JBNENDO0FBQ0Qsa0JBQWUsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF3c1N0YWNrLCB7IEF3c1N0YWNrUHJvcHMgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9hd3NTdGFja1wiO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvY29uc3RhbnQvdnBjXCI7XG5pbXBvcnQgRWNyIGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2NvbnN0YW50L2VjclwiO1xuaW1wb3J0IEZhcmdhdGUgZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9mYXJnYXRlXCI7XG5pbXBvcnQgRGF0YWJhc2UgZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc3RvcmUvZGF0YWJhc2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXZWJBcHBQcm9wcyB7XG4gIGFjY291bnQ/OiBzdHJpbmc7XG4gIHJlZ2lvbj86IHN0cmluZztcbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgY2xhc3MgV2ViQXBwIHtcbiAgcHJpdmF0ZSB2cGNTdGFjazogQXdzU3RhY2s7XG4gIHByaXZhdGUgZGF0YWJhc2VTdGFjazogQXdzU3RhY2s7XG4gIHByaXZhdGUgY29tcHV0ZVN0YWNrOiBBd3NTdGFjaztcblxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBwcm9wcz86IFdlYkFwcFByb3BzKSB7XG4gICAgdGhpcy52cGNTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1OZXR3b3JrYCwgW10sIHRoaXMuZ2V0U3RhY2tQcm9wcyhwcm9wcykpXG4gICAgICAuYWRkTmV0d29yayhWcGMuYnVpbGQoYCR7aWR9VnBjYCkpXG4gICAgICAuYWRkUmVzb3VyY2UoRWNyLmJ1aWxkKGAke2lkfUVjcmApKTtcblxuICAgIHRoaXMuZGF0YWJhc2VTdGFjayA9IG5ldyBBd3NTdGFjayhcbiAgICAgIGAke2lkfURhdGFiYXNlYCxcbiAgICAgIHRoaXMudnBjU3RhY2ssXG4gICAgICB0aGlzLmdldFN0YWNrUHJvcHMocHJvcHMpXG4gICAgKVxuICAgICAgLmFkZE5ldHdvcmsodGhpcy52cGNTdGFjay5nZXROZXR3b3JrKCkpXG4gICAgICAuYWRkUmVzb3VyY2UoRGF0YWJhc2UuYnVpbGQoYCR7aWR9RGF0YWJhc2VgKSk7XG5cbiAgICAvL3RvZG86IHZhbGlkYXRlIGlkIGRvZXMgbm90IGNvbnRhaW4gc3BlY2lhbCBjaGFyYWN0ZXJzIChubyBoeXBoZW5zIC0gbm8gc2xhc2hlcyBldGMpXG4gICAgLy8gIHRoaXMgaXMgbmVjY2Vzc2FyeSBhcyBkYXRhYmFzZSBpbnN0YW5jZXMgd29uJ3QgYWxsb3cgaXRcblxuICAgIHRoaXMuY29tcHV0ZVN0YWNrID0gbmV3IEF3c1N0YWNrKFxuICAgICAgYCR7aWR9Q29tcHV0ZWAsXG4gICAgICBbdGhpcy52cGNTdGFjaywgdGhpcy5kYXRhYmFzZVN0YWNrXSxcbiAgICAgIHRoaXMuZ2V0U3RhY2tQcm9wcyhwcm9wcylcbiAgICApXG4gICAgICAuYWRkTmV0d29yayh0aGlzLnZwY1N0YWNrLmdldE5ldHdvcmsoKSlcbiAgICAgIC5hZGRSZXNvdXJjZShGYXJnYXRlLmJ1aWxkKGAke2lkfUZhcmdhdGVgKSlcbiAgICAgIC5jb25uZWN0KFxuICAgICAgICBgJHtpZH1GYXJnYXRlYCxcbiAgICAgICAgdGhpcy5kYXRhYmFzZVN0YWNrLmdldFJlc291cmNlKGAke2lkfURhdGFiYXNlYCksXG4gICAgICAgIDU0MzJcbiAgICAgICk7XG4gIH1cblxuICBnZXRTdGFja1Byb3BzKHByb3BzPzogV2ViQXBwUHJvcHMpOiBBd3NTdGFja1Byb3BzIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXByb3BzKSByZXR1cm47XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudDogcHJvcHMuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50XG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgV2ViQXBwO1xuIl19
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const assertions_1 = require("aws-cdk-lib/assertions");
4
- const awsStack_1 = require("../../awsStack");
5
- const fargate_1 = require("../fargate");
6
- const vpc_1 = require("../../constant/vpc");
7
- describe("Fargate", () => {
8
- it("creates Fargate construct with default cluster and vpc", () => {
9
- const awsStack = new awsStack_1.default("Test").addResource(fargate_1.default.build("Fargate"));
10
- const template = assertions_1.Template.fromStack(awsStack.getStack());
11
- expect(template.toJSON()).toMatchSnapshot();
12
- });
13
- it("creates Fargate construct with specified VPC and Cluster", () => {
14
- const awsStack = new awsStack_1.default("TestWithVpc")
15
- .addNetwork(vpc_1.Vpc.build("Vpc"))
16
- .addResource(fargate_1.default.build("Fargate"));
17
- const template = assertions_1.Template.fromStack(awsStack.getStack());
18
- expect(template.toJSON()).toMatchSnapshot();
19
- });
20
- });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFyZ2F0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9fX3Rlc3RzX18vZmFyZ2F0ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQWtEO0FBQ2xELDZDQUFzQztBQUN0Qyx3Q0FBaUM7QUFDakMsNENBQXlDO0FBRXpDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3ZCLEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7UUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwREFBMEQsRUFBRSxHQUFHLEVBQUU7UUFDbEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBUSxDQUFDLGFBQWEsQ0FBQzthQUN6QyxVQUFVLENBQUMsU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QixXQUFXLENBQUMsaUJBQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV6QyxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCBBd3NTdGFjayBmcm9tIFwiLi4vLi4vYXdzU3RhY2tcIjtcbmltcG9ydCBGYXJnYXRlIGZyb20gXCIuLi9mYXJnYXRlXCI7XG5pbXBvcnQgeyBWcGMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnQvdnBjXCI7XG5cbmRlc2NyaWJlKFwiRmFyZ2F0ZVwiLCAoKSA9PiB7XG4gIGl0KFwiY3JlYXRlcyBGYXJnYXRlIGNvbnN0cnVjdCB3aXRoIGRlZmF1bHQgY2x1c3RlciBhbmQgdnBjXCIsICgpID0+IHtcbiAgICBjb25zdCBhd3NTdGFjayA9IG5ldyBBd3NTdGFjayhcIlRlc3RcIikuYWRkUmVzb3VyY2UoRmFyZ2F0ZS5idWlsZChcIkZhcmdhdGVcIikpO1xuXG4gICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soYXdzU3RhY2suZ2V0U3RhY2soKSk7XG4gICAgZXhwZWN0KHRlbXBsYXRlLnRvSlNPTigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG5cbiAgaXQoXCJjcmVhdGVzIEZhcmdhdGUgY29uc3RydWN0IHdpdGggc3BlY2lmaWVkIFZQQyBhbmQgQ2x1c3RlclwiLCAoKSA9PiB7XG4gICAgY29uc3QgYXdzU3RhY2sgPSBuZXcgQXdzU3RhY2soXCJUZXN0V2l0aFZwY1wiKVxuICAgICAgLmFkZE5ldHdvcmsoVnBjLmJ1aWxkKFwiVnBjXCIpKVxuICAgICAgLmFkZFJlc291cmNlKEZhcmdhdGUuYnVpbGQoXCJGYXJnYXRlXCIpKTtcblxuICAgIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKGF3c1N0YWNrLmdldFN0YWNrKCkpO1xuICAgIGV4cGVjdCh0ZW1wbGF0ZS50b0pTT04oKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { Cluster as CdkCluster, ClusterProps } from "aws-cdk-lib/aws-ecs";
2
- import { IVpc, IConnectable, Connections } from "aws-cdk-lib/aws-ec2";
3
- import { Construct } from "constructs";
4
- import { StackBuilder } from "../awsStack";
5
- export declare class Cluster extends CdkCluster {
6
- constructor(scope: Construct, id: string, props: ClusterProps);
7
- static build(id: string): (scope: Construct) => Construct;
8
- }
9
- interface FargateProps {
10
- vpc?: IVpc;
11
- cluster?: Cluster;
12
- cpu?: number;
13
- desiredCount?: number;
14
- memoryLimitMiB?: number;
15
- publicLoadBalancer?: boolean;
16
- }
17
- export default class Fargate extends Construct implements IConnectable {
18
- private albFargateService;
19
- connections: Connections;
20
- constructor(scope: Construct, id: string, props: FargateProps);
21
- static build(id: string, props?: FargateProps): (sb: StackBuilder) => Construct;
22
- }
23
- export {};
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cluster = void 0;
4
- const aws_ecs_1 = require("aws-cdk-lib/aws-ecs");
5
- const aws_ecs_patterns_1 = require("aws-cdk-lib/aws-ecs-patterns");
6
- const constructs_1 = require("constructs");
7
- class Cluster extends aws_ecs_1.Cluster {
8
- constructor(scope, id, props) {
9
- super(scope, id, props);
10
- }
11
- static build(id) {
12
- return (scope) => {
13
- return new this(scope, id, {});
14
- };
15
- }
16
- }
17
- exports.Cluster = Cluster;
18
- class Fargate extends constructs_1.Construct {
19
- constructor(scope, id, props) {
20
- super(scope, id);
21
- const cluster = props.cluster ||
22
- new Cluster(this, `${id}Cluster`, {
23
- vpc: props.vpc
24
- });
25
- this.albFargateService = new aws_ecs_patterns_1.ApplicationLoadBalancedFargateService(this, `${id}Service`, {
26
- cluster: cluster,
27
- cpu: props.cpu || 256,
28
- desiredCount: props.desiredCount || 1,
29
- taskImageOptions: {
30
- image: aws_ecs_1.ContainerImage.fromRegistry("amazon/amazon-ecs-sample")
31
- },
32
- memoryLimitMiB: props.memoryLimitMiB || 512,
33
- publicLoadBalancer: props.publicLoadBalancer || true
34
- });
35
- this.connections = this.albFargateService.service.connections;
36
- }
37
- static build(id, props) {
38
- return (sb) => {
39
- const newProps = {
40
- ...props,
41
- ...{
42
- vpc: sb.getNetwork() || props?.vpc
43
- }
44
- };
45
- return new this(sb.getStack(), id, newProps);
46
- };
47
- }
48
- }
49
- exports.default = Fargate;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFyZ2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2NvbXB1dGUvZmFyZ2F0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFJNkI7QUFFN0IsbUVBQXFGO0FBQ3JGLDJDQUF1QztBQUl2QyxNQUFhLE9BQVEsU0FBUSxpQkFBVTtJQUNyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVU7UUFDckIsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUMxQixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBVkQsMEJBVUM7QUFXRCxNQUFxQixPQUFRLFNBQVEsc0JBQVM7SUFJNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUNYLEtBQUssQ0FBQyxPQUFPO1lBQ2IsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUU7Z0JBQ2hDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRzthQUNmLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHdEQUFxQyxDQUNoRSxJQUFJLEVBQ0osR0FBRyxFQUFFLFNBQVMsRUFDZDtZQUNFLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUc7WUFDckIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQztZQUNyQyxnQkFBZ0IsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLHdCQUFjLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDO2FBQy9EO1lBQ0QsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQUksR0FBRztZQUMzQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksSUFBSTtTQUNyRCxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUNWLEVBQVUsRUFDVixLQUFvQjtRQUVwQixPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFpQjtnQkFDN0IsR0FBRyxLQUFLO2dCQUNSLEdBQUc7b0JBQ0QsR0FBRyxFQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQVcsSUFBSSxLQUFLLEVBQUUsR0FBRztpQkFDN0M7YUFDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdDRCwwQkE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbHVzdGVyIGFzIENka0NsdXN0ZXIsXG4gIENsdXN0ZXJQcm9wcyxcbiAgQ29udGFpbmVySW1hZ2Vcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElWcGMsIElDb25uZWN0YWJsZSwgQ29ubmVjdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzLXBhdHRlcm5zXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcblxuZXhwb3J0IGNsYXNzIENsdXN0ZXIgZXh0ZW5kcyBDZGtDbHVzdGVyIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsdXN0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkKGlkOiBzdHJpbmcpOiAoc2NvcGU6IENvbnN0cnVjdCkgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNjb3BlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICAgIHJldHVybiBuZXcgdGhpcyhzY29wZSwgaWQsIHt9KTtcbiAgICB9O1xuICB9XG59XG5cbmludGVyZmFjZSBGYXJnYXRlUHJvcHMge1xuICB2cGM/OiBJVnBjO1xuICBjbHVzdGVyPzogQ2x1c3RlcjtcbiAgY3B1PzogbnVtYmVyO1xuICBkZXNpcmVkQ291bnQ/OiBudW1iZXI7XG4gIG1lbW9yeUxpbWl0TWlCPzogbnVtYmVyO1xuICBwdWJsaWNMb2FkQmFsYW5jZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGYXJnYXRlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNvbm5lY3RhYmxlIHtcbiAgcHJpdmF0ZSBhbGJGYXJnYXRlU2VydmljZTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZTtcbiAgcHVibGljIGNvbm5lY3Rpb25zOiBDb25uZWN0aW9ucztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmFyZ2F0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNsdXN0ZXIgPVxuICAgICAgcHJvcHMuY2x1c3RlciB8fFxuICAgICAgbmV3IENsdXN0ZXIodGhpcywgYCR7aWR9Q2x1c3RlcmAsIHtcbiAgICAgICAgdnBjOiBwcm9wcy52cGNcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5hbGJGYXJnYXRlU2VydmljZSA9IG5ldyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlKFxuICAgICAgdGhpcyxcbiAgICAgIGAke2lkfVNlcnZpY2VgLFxuICAgICAge1xuICAgICAgICBjbHVzdGVyOiBjbHVzdGVyLFxuICAgICAgICBjcHU6IHByb3BzLmNwdSB8fCAyNTYsXG4gICAgICAgIGRlc2lyZWRDb3VudDogcHJvcHMuZGVzaXJlZENvdW50IHx8IDEsXG4gICAgICAgIHRhc2tJbWFnZU9wdGlvbnM6IHtcbiAgICAgICAgICBpbWFnZTogQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KFwiYW1hem9uL2FtYXpvbi1lY3Mtc2FtcGxlXCIpXG4gICAgICAgIH0sXG4gICAgICAgIG1lbW9yeUxpbWl0TWlCOiBwcm9wcy5tZW1vcnlMaW1pdE1pQiB8fCA1MTIsXG4gICAgICAgIHB1YmxpY0xvYWRCYWxhbmNlcjogcHJvcHMucHVibGljTG9hZEJhbGFuY2VyIHx8IHRydWVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuYWxiRmFyZ2F0ZVNlcnZpY2Uuc2VydmljZS5jb25uZWN0aW9ucztcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzPzogRmFyZ2F0ZVByb3BzXG4gICk6IChzYjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3Qge1xuICAgIHJldHVybiAoc2I6IFN0YWNrQnVpbGRlcikgPT4ge1xuICAgICAgY29uc3QgbmV3UHJvcHM6IEZhcmdhdGVQcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLntcbiAgICAgICAgICB2cGM6IChzYi5nZXROZXR3b3JrKCkgYXMgSVZwYykgfHwgcHJvcHM/LnZwY1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIG5ldyB0aGlzKHNiLmdldFN0YWNrKCksIGlkLCBuZXdQcm9wcyk7XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const assertions_1 = require("aws-cdk-lib/assertions");
4
- const awsStack_1 = require("../../awsStack");
5
- const vpc_1 = require("../vpc");
6
- describe("VPC", () => {
7
- it("creates VPC construct", () => {
8
- const awsStack = new awsStack_1.default("Test").addNetwork(vpc_1.Vpc.build("VPC"));
9
- const template = assertions_1.Template.fromStack(awsStack.getStack());
10
- expect(template.toJSON()).toMatchSnapshot();
11
- });
12
- });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9jb25zdGFudC9fX3Rlc3RzX18vdnBjLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBa0Q7QUFDbEQsNkNBQXNDO0FBQ3RDLGdDQUE2QjtBQUU3QixRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNuQixFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IEF3c1N0YWNrIGZyb20gXCIuLi8uLi9hd3NTdGFja1wiO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSBcIi4uL3ZwY1wiO1xuXG5kZXNjcmliZShcIlZQQ1wiLCAoKSA9PiB7XG4gIGl0KFwiY3JlYXRlcyBWUEMgY29uc3RydWN0XCIsICgpID0+IHtcbiAgICBjb25zdCBhd3NTdGFjayA9IG5ldyBBd3NTdGFjayhcIlRlc3RcIikuYWRkTmV0d29yayhWcGMuYnVpbGQoXCJWUENcIikpO1xuXG4gICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soYXdzU3RhY2suZ2V0U3RhY2soKSk7XG4gICAgZXhwZWN0KHRlbXBsYXRlLnRvSlNPTigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Assignment = void 0;
4
- const aws_sso_1 = require("aws-cdk-lib/aws-sso");
5
- class Assignment extends aws_sso_1.CfnAssignment {
6
- constructor(scope, id, props) {
7
- super(scope, id, {
8
- ...props
9
- });
10
- }
11
- }
12
- exports.Assignment = Assignment;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWdubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9hc3NpZ25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUF3RTtBQUd4RSxNQUFhLFVBQVcsU0FBUSx1QkFBYTtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBTkQsZ0NBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5Bc3NpZ25tZW50LCBDZm5Bc3NpZ25tZW50UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzb1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGNsYXNzIEFzc2lnbm1lbnQgZXh0ZW5kcyBDZm5Bc3NpZ25tZW50IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENmbkFzc2lnbm1lbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Group = void 0;
4
- const aws_identitystore_1 = require("aws-cdk-lib/aws-identitystore");
5
- class Group extends aws_identitystore_1.CfnGroup {
6
- constructor(scope, id, props) {
7
- super(scope, id, {
8
- ...props,
9
- description: props.description || `Iam Identity Center Group ${props.displayName}`,
10
- identityStoreId: props.identityStoreId
11
- });
12
- }
13
- }
14
- exports.Group = Group;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pYW0vZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXdFO0FBR3hFLE1BQWEsS0FBTSxTQUFRLDRCQUFRO0lBQ2pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSw2QkFBNkIsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNsRixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBUkQsc0JBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5Hcm91cCwgQ2ZuR3JvdXBQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pZGVudGl0eXN0b3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBHcm91cCBleHRlbmRzIENmbkdyb3VwIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENmbkdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGBJYW0gSWRlbnRpdHkgQ2VudGVyIEdyb3VwICR7cHJvcHMuZGlzcGxheU5hbWV9YCxcbiAgICAgIGlkZW50aXR5U3RvcmVJZDogcHJvcHMuaWRlbnRpdHlTdG9yZUlkXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- import { Role, RoleProps } from "aws-cdk-lib/aws-iam";
2
- import { Construct } from "constructs";
3
- export declare class IamRole extends Role {
4
- constructor(scope: Construct, id: string, props: RoleProps);
5
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IamRole = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
- class IamRole extends aws_iam_1.Role {
6
- constructor(scope, id, props) {
7
- super(scope, id, {
8
- ...props,
9
- assumedBy: props.assumedBy,
10
- description: props.description,
11
- inlinePolicies: props.inlinePolicies,
12
- path: props.path,
13
- roleName: props.roleName
14
- });
15
- }
16
- }
17
- exports.IamRole = IamRole;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pYW1Sb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFzRDtBQUd0RCxNQUFhLE9BQVEsU0FBUSxjQUFJO0lBQy9CLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0I7UUFDeEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVhELDBCQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9sZSwgUm9sZVByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBJYW1Sb2xlIGV4dGVuZHMgUm9sZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSb2xlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgYXNzdW1lZEJ5OiBwcm9wcy5hc3N1bWVkQnksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBpbmxpbmVQb2xpY2llczogcHJvcHMuaW5saW5lUG9saWNpZXMsXG4gICAgICBwYXRoOiBwcm9wcy5wYXRoLFxuICAgICAgcm9sZU5hbWU6IHByb3BzLnJvbGVOYW1lXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermissionSet = void 0;
4
- const aws_sso_1 = require("aws-cdk-lib/aws-sso");
5
- class PermissionSet extends aws_sso_1.CfnPermissionSet {
6
- constructor(scope, id, props) {
7
- super(scope, id, {
8
- ...props
9
- });
10
- }
11
- }
12
- exports.PermissionSet = PermissionSet;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvblNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9wZXJtaXNzaW9uU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE4RTtBQUc5RSxNQUFhLGFBQWMsU0FBUSwwQkFBZ0I7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQU5ELHNDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUGVybWlzc2lvblNldCwgQ2ZuUGVybWlzc2lvblNldFByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc29cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2V0IGV4dGVuZHMgQ2ZuUGVybWlzc2lvblNldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZm5QZXJtaXNzaW9uU2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==