@fjall/components-infrastructure 0.1.6 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/app.d.ts +1 -2
- package/dist/lib/app.js +2 -4
- package/dist/lib/config/aws/costAllocationTags.d.ts +3 -2
- package/dist/lib/config/aws/costAllocationTags.js +5 -6
- package/dist/lib/config/aws/identityCenter.d.ts +3 -11
- package/dist/lib/config/aws/identityCenter.js +29 -24
- package/dist/lib/config/aws/index.d.ts +4 -8
- package/dist/lib/config/aws/index.js +5 -9
- package/dist/lib/config/aws/ipam.d.ts +2 -2
- package/dist/lib/config/aws/ipam.js +7 -25
- package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +5 -4
- package/dist/lib/config/aws/ipamDelegateAdmin.js +13 -9
- package/dist/lib/config/aws/organisationId.d.ts +2 -4
- package/dist/lib/config/aws/organisationId.js +7 -13
- package/dist/lib/patterns/aws/basicApp.d.ts +2 -2
- package/dist/lib/patterns/aws/basicApp.js +15 -15
- package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
- package/dist/lib/patterns/aws/buildkite.js +7 -9
- package/dist/lib/patterns/aws/index.d.ts +0 -3
- package/dist/lib/patterns/aws/index.js +1 -4
- package/dist/lib/patterns/aws/managedOrganisation.d.ts +21 -9
- package/dist/lib/patterns/aws/managedOrganisation.js +147 -33
- package/dist/lib/resources/aws/compute/ecs.d.ts +4 -2
- package/dist/lib/resources/aws/compute/ecs.js +6 -10
- package/dist/lib/resources/aws/compute/lambda.d.ts +7 -7
- package/dist/lib/resources/aws/compute/lambda.js +7 -8
- package/dist/lib/resources/aws/logging/logGroup.d.ts +3 -3
- package/dist/lib/resources/aws/logging/logGroup.js +3 -3
- package/dist/lib/resources/aws/networking/index.d.ts +1 -1
- package/dist/lib/resources/aws/networking/index.js +2 -2
- package/dist/lib/resources/aws/networking/ipamPool.d.ts +3 -16
- package/dist/lib/resources/aws/networking/ipamPool.js +6 -75
- package/dist/lib/resources/aws/utilities/customResource.js +2 -2
- package/dist/lib/utils/getAccountId.d.ts +1 -1
- package/dist/lib/utils/getAccountId.js +2 -3
- package/dist/lib/utils/getConfig.d.ts +2 -3
- package/dist/lib/utils/getConfig.js +6 -20
- package/package.json +2 -2
- package/dist/lib/config/aws/accountId.d.ts +0 -6
- package/dist/lib/config/aws/accountId.js +0 -33
- package/dist/lib/config/aws/cloudTrail.d.ts +0 -10
- package/dist/lib/config/aws/cloudTrail.js +0 -22
- package/dist/lib/config/aws/ecrDefaultImage.d.ts +0 -11
- package/dist/lib/config/aws/ecrDefaultImage.js +0 -127
- package/dist/lib/config/aws/eventBus.d.ts +0 -7
- package/dist/lib/config/aws/eventBus.js +0 -24
- package/dist/lib/config/aws/identityCenterUser.d.ts +0 -16
- package/dist/lib/config/aws/identityCenterUser.js +0 -125
- package/dist/lib/config/aws/ipamPoolId.d.ts +0 -9
- package/dist/lib/config/aws/ipamPoolId.js +0 -36
- package/dist/lib/config/aws/organisation.d.ts +0 -28
- package/dist/lib/config/aws/organisation.js +0 -142
- package/dist/lib/config/aws/ramSharing.d.ts +0 -4
- package/dist/lib/config/aws/ramSharing.js +0 -35
- package/dist/lib/patterns/aws/freeTierApp.d.ts +0 -46
- package/dist/lib/patterns/aws/freeTierApp.js +0 -95
- package/dist/lib/patterns/aws/hostedZone.d.ts +0 -11
- package/dist/lib/patterns/aws/hostedZone.js +0 -73
- package/dist/lib/patterns/aws/managedAccount.d.ts +0 -13
- package/dist/lib/patterns/aws/managedAccount.js +0 -39
- package/dist/lib/patterns/aws/managedPlatform.d.ts +0 -13
- package/dist/lib/patterns/aws/managedPlatform.js +0 -22
- package/dist/lib/patterns/aws/spotInstanceApp.d.ts +0 -46
- package/dist/lib/patterns/aws/spotInstanceApp.js +0 -95
- package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +0 -9
- package/dist/lib/patterns/aws/subdomainHostedZone.js +0 -39
- package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +0 -76
- package/dist/lib/resources/aws/compute/ecsFreeTier.js +0 -352
- package/dist/lib/resources/aws/compute/ecsSpot.d.ts +0 -76
- package/dist/lib/resources/aws/compute/ecsSpot.js +0 -334
- package/dist/lib/resources/aws/compute/index.d.ts +0 -2
- package/dist/lib/resources/aws/compute/index.js +0 -19
- package/dist/lib/resources/aws/database/database.d.ts +0 -16
- package/dist/lib/resources/aws/database/database.js +0 -30
- package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +0 -17
- package/dist/lib/resources/aws/database/databaseFreeTier.js +0 -31
- package/dist/lib/resources/aws/database/databaseInstance.d.ts +0 -17
- package/dist/lib/resources/aws/database/databaseInstance.js +0 -32
- package/dist/lib/resources/aws/database/index.d.ts +0 -2
- package/dist/lib/resources/aws/database/index.js +0 -19
- package/dist/lib/resources/aws/database/rds.d.ts +0 -23
- package/dist/lib/resources/aws/database/rds.js +0 -130
- package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +0 -36
- package/dist/lib/resources/aws/database/rdsFreeTier.js +0 -80
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +0 -42
- package/dist/lib/resources/aws/database/rdsInstance.js +0 -173
- package/dist/lib/resources/aws/logging/cloudTrail.d.ts +0 -18
- package/dist/lib/resources/aws/logging/cloudTrail.js +0 -46
- package/dist/lib/resources/aws/networking/vpc.d.ts +0 -29
- package/dist/lib/resources/aws/networking/vpc.js +0 -64
- package/dist/lib/resources/aws/secrets/alias.d.ts +0 -5
- package/dist/lib/resources/aws/secrets/alias.js +0 -13
- package/dist/lib/resources/aws/secrets/index.d.ts +0 -5
- package/dist/lib/resources/aws/secrets/index.js +0 -22
- package/dist/lib/resources/aws/secrets/kms.d.ts +0 -14
- package/dist/lib/resources/aws/secrets/kms.js +0 -34
- package/dist/lib/resources/aws/secrets/parameter.d.ts +0 -26
- package/dist/lib/resources/aws/secrets/parameter.js +0 -100
- package/dist/lib/resources/aws/secrets/secret.d.ts +0 -24
- package/dist/lib/resources/aws/secrets/secret.js +0 -53
- package/dist/lib/resources/aws/storage/ecr.d.ts +0 -12
- package/dist/lib/resources/aws/storage/ecr.js +0 -31
- package/dist/lib/resources/aws/storage/index.d.ts +0 -2
- package/dist/lib/resources/aws/storage/index.js +0 -19
- package/dist/lib/resources/aws/storage/s3.d.ts +0 -11
- package/dist/lib/resources/aws/storage/s3.js +0 -44
- package/dist/lib/resources/aws/utilities/codeBuild.d.ts +0 -15
- package/dist/lib/resources/aws/utilities/codeBuild.js +0 -28
- package/dist/lib/types.d.ts +0 -3
- package/dist/lib/types.js +0 -3
- package/dist/lib/utils/capitalizeString.d.ts +0 -1
- package/dist/lib/utils/capitalizeString.js +0 -8
- package/dist/lib/utils/getCidr.d.ts +0 -8
- package/dist/lib/utils/getCidr.js +0 -42
- package/dist/lib/utils/stripAndCamelCase.d.ts +0 -1
- package/dist/lib/utils/stripAndCamelCase.js +0 -17
- package/dist/lib/utils/usersConfig.d.ts +0 -7
- package/dist/lib/utils/usersConfig.js +0 -18
package/dist/lib/app.d.ts
CHANGED
package/dist/lib/app.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.App = void 0;
|
|
4
3
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
4
|
class App extends aws_cdk_lib_1.App {
|
|
6
5
|
constructor() {
|
|
@@ -15,7 +14,6 @@ class App extends aws_cdk_lib_1.App {
|
|
|
15
14
|
return App.instance;
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
|
-
exports.App = App;
|
|
19
|
-
App.instance = null;
|
|
20
17
|
exports.default = App;
|
|
21
|
-
|
|
18
|
+
App.instance = null;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUE0QztBQUU1QyxNQUFxQixHQUFJLFNBQVEsaUJBQU07SUFHckM7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVztRQUN2Qiw2REFBNkQ7UUFDN0QsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUMxQjtRQUVELE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUN0QixDQUFDOztBQWZILHNCQWdCQztBQWZnQixZQUFRLEdBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwIGFzIENka0FwcCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcHAgZXh0ZW5kcyBDZGtBcHAge1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogQXBwIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRJbnN0YW5jZSgpOiBBcHAge1xuICAgIC8vIERlc3BpdGUgc3VwcG9ydGluZyBtdWx0aXBsZSBzdGFja3MgeW91IGNhbiBzdGlsbCBvbmx5IGV2ZXJcbiAgICAvLyBoYXZlIGEgc2luZ2xlIEFwcGxpY2F0aW9uIHBlciBDREsgZGVwbG95bWVudFxuICAgIGlmICghQXBwLmluc3RhbmNlKSB7XG4gICAgICBBcHAuaW5zdGFuY2UgPSBuZXcgQXBwKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFwcC5pbnN0YW5jZTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { Stack, StackProps } from "aws-cdk-lib";
|
|
1
2
|
import { Construct } from "constructs";
|
|
2
|
-
export declare class CostAllocationTags extends
|
|
3
|
-
constructor(scope: Construct, id: string);
|
|
3
|
+
export declare class CostAllocationTags extends Stack {
|
|
4
|
+
constructor(scope: Construct, id: string, props?: StackProps);
|
|
4
5
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CostAllocationTags = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
4
5
|
const customResources = require("aws-cdk-lib/custom-resources");
|
|
5
|
-
const constructs_1 = require("constructs");
|
|
6
6
|
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
7
|
-
// TODO: Use an AWS CDK conditional trigger to wait for Cost Explorer to be created
|
|
8
7
|
const costAllocationTags = [
|
|
9
8
|
"aws:cloudformation:logical-id",
|
|
10
9
|
"aws:cloudformation:stack-id",
|
|
@@ -23,9 +22,9 @@ function toggleCostTag(tags, tagStatus) {
|
|
|
23
22
|
};
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
class CostAllocationTags extends
|
|
27
|
-
constructor(scope, id) {
|
|
28
|
-
super(scope, id);
|
|
25
|
+
class CostAllocationTags extends aws_cdk_lib_1.Stack {
|
|
26
|
+
constructor(scope, id, props) {
|
|
27
|
+
super(scope, id, props);
|
|
29
28
|
new awsCustomResource_1.AwsCustomResource(this, "costAllocationTags", {
|
|
30
29
|
functionName: "enableCostAllocationTags",
|
|
31
30
|
onCreate: {
|
|
@@ -56,4 +55,4 @@ class CostAllocationTags extends constructs_1.Construct {
|
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
exports.CostAllocationTags = CostAllocationTags;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdEFsbG9jYXRpb25UYWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvY29zdEFsbG9jYXRpb25UYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFnRDtBQUNoRCxnRUFBZ0U7QUFHaEUsdUZBQW9GO0FBRXBGLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsK0JBQStCO0lBQy9CLDZCQUE2QjtJQUM3QiwrQkFBK0I7SUFDL0IsZUFBZTtJQUNmLDBCQUEwQjtJQUMxQixzQ0FBc0M7SUFDdEMsa0NBQWtDO0lBQ2xDLCtCQUErQjtDQUNoQyxDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsSUFBYyxFQUFFLFNBQWlCO0lBQ3RELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3RCLE9BQU87WUFDTCxNQUFNLEVBQUUsR0FBRztZQUNYLE1BQU0sRUFBRSxTQUFTO1NBQ2xCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFhLGtCQUFtQixTQUFRLG1CQUFLO0lBQzNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDaEQsWUFBWSxFQUFFLDBCQUEwQjtZQUN4QyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLE1BQU0sRUFBRSxnQ0FBZ0M7Z0JBQ3hDLFVBQVUsRUFBRTtvQkFDVix3QkFBd0IsRUFBRSxhQUFhLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO2lCQUN0RTtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUN2RCwwQkFBMEIsQ0FDM0I7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsY0FBYztnQkFDdkIsTUFBTSxFQUFFLGdDQUFnQztnQkFDeEMsVUFBVSxFQUFFO29CQUNWLHdCQUF3QixFQUFFLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7aUJBQ3RFO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQ3ZELDBCQUEwQixDQUMzQjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixNQUFNLEVBQUUsZ0NBQWdDO2dCQUN4QyxVQUFVLEVBQUU7b0JBQ1Ysd0JBQXdCLEVBQUUsYUFBYSxDQUNyQyxrQkFBa0IsRUFDbEIsVUFBVSxDQUNYO2lCQUNGO2FBQ0Y7WUFDRCxZQUFZLEVBQUUsNEJBQTRCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZDRCxnREF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuXG5jb25zdCBjb3N0QWxsb2NhdGlvblRhZ3MgPSBbXG4gIFwiYXdzOmNsb3VkZm9ybWF0aW9uOmxvZ2ljYWwtaWRcIixcbiAgXCJhd3M6Y2xvdWRmb3JtYXRpb246c3RhY2staWRcIixcbiAgXCJhd3M6Y2xvdWRmb3JtYXRpb246c3RhY2stbmFtZVwiLFxuICBcImF3czpjcmVhdGVkQnlcIlxuICAvLyBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiXG4gIC8vIFwiZmphbGw6Y29zdEFsbG9jYXRpb246ZW52aXJvbm1lbnRcIixcbiAgLy8gXCJmamFsbDpjb3N0QWxsb2NhdGlvbjpzZXJ2aWNlXCIsXG4gIC8vIFwiZmphbGw6Y29zdEFsbG9jYXRpb246b3duZXJcIlxuXTtcblxuZnVuY3Rpb24gdG9nZ2xlQ29zdFRhZyh0YWdzOiBzdHJpbmdbXSwgdGFnU3RhdHVzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHRhZ3MubWFwKCh0YWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgVGFnS2V5OiB0YWcsXG4gICAgICBTdGF0dXM6IHRhZ1N0YXR1c1xuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQ29zdEFsbG9jYXRpb25UYWdzIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcImNvc3RBbGxvY2F0aW9uVGFnc1wiLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IFwiZW5hYmxlQ29zdEFsbG9jYXRpb25UYWdzXCIsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkNvc3RFeHBsb3JlclwiLFxuICAgICAgICBhY3Rpb246IFwidXBkYXRlQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXM6IHRvZ2dsZUNvc3RUYWcoY29zdEFsbG9jYXRpb25UYWdzLCBcIkFjdGl2ZVwiKVxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgXCJlbmFibGVDb3N0QWxsb2NhdGlvblRhZ3NcIlxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJDb3N0RXhwbG9yZXJcIixcbiAgICAgICAgYWN0aW9uOiBcInVwZGF0ZUNvc3RBbGxvY2F0aW9uVGFnc1N0YXR1c1wiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzOiB0b2dnbGVDb3N0VGFnKGNvc3RBbGxvY2F0aW9uVGFncywgXCJBY3RpdmVcIilcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgIFwidXBkYXRlQ29zdEFsbG9jYXRpb25UYWdzXCJcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQ29zdEV4cGxvcmVyXCIsXG4gICAgICAgIGFjdGlvbjogXCJ1cGRhdGVDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXNcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIENvc3RBbGxvY2F0aW9uVGFnc1N0YXR1czogdG9nZ2xlQ29zdFRhZyhcbiAgICAgICAgICAgIGNvc3RBbGxvY2F0aW9uVGFncyxcbiAgICAgICAgICAgIFwiSW5hY3RpdmVcIlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OkNvc3RBbGxvY2F0aW9uVGFnc1wiXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
+
import { Stack, StackProps } from "aws-cdk-lib";
|
|
1
2
|
import { Construct } from "constructs";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface IdentityCenterProps {
|
|
5
|
-
accounts: Accounts;
|
|
3
|
+
export declare class IdentityCenter extends Stack {
|
|
4
|
+
constructor(scope: Construct, id: string, props?: StackProps);
|
|
6
5
|
}
|
|
7
|
-
export declare class IdentityCenter extends Construct {
|
|
8
|
-
identityStoreId: string;
|
|
9
|
-
identityCenterArn: string;
|
|
10
|
-
identityCenterGroups: Group[];
|
|
11
|
-
constructor(scope: Construct, id: string, props: IdentityCenterProps);
|
|
12
|
-
}
|
|
13
|
-
export {};
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IdentityCenter = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
4
5
|
const customResources = require("aws-cdk-lib/custom-resources");
|
|
5
|
-
const constructs_1 = require("constructs");
|
|
6
6
|
const cfnOutput_1 = require("../../resources/aws/utilities/cfnOutput");
|
|
7
7
|
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
8
8
|
const group_1 = require("../../resources/aws/iam/identityCenter/group");
|
|
9
9
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
10
10
|
const permissionSet_1 = require("../../resources/aws/iam/identityCenter/permissionSet");
|
|
11
11
|
const assignment_1 = require("../../resources/aws/iam/identityCenter/assignment");
|
|
12
|
-
const
|
|
13
|
-
class
|
|
12
|
+
const getAccountId_1 = require("../../utils/getAccountId");
|
|
13
|
+
// TODO: Potentially have this class take in custom permission sets and policies to overide our defaults
|
|
14
|
+
class IdentityCenter extends aws_cdk_lib_1.Stack {
|
|
14
15
|
constructor(scope, id, props) {
|
|
15
|
-
super(scope, id);
|
|
16
|
-
this.identityCenterGroups = [];
|
|
17
|
-
// TODO: Should only use this if no groups are provided by the end user
|
|
16
|
+
super(scope, id, props);
|
|
18
17
|
const defaultPermissionSets = {
|
|
19
18
|
AdministratorAccess: {
|
|
20
19
|
Policy: "arn:aws:iam::aws:policy/AdministratorAccess"
|
|
@@ -29,11 +28,20 @@ class IdentityCenter extends constructs_1.Construct {
|
|
|
29
28
|
Policy: "arn:aws:iam::aws:policy/job-function/SystemAdministrator"
|
|
30
29
|
}
|
|
31
30
|
};
|
|
31
|
+
// TODO: What's the easier way to pass all accounts into the stack?
|
|
32
|
+
const accounts = {
|
|
33
|
+
management: (0, getAccountId_1.default)("management"),
|
|
34
|
+
production: (0, getAccountId_1.default)("production"),
|
|
35
|
+
staging: (0, getAccountId_1.default)("staging"),
|
|
36
|
+
development: (0, getAccountId_1.default)("development"),
|
|
37
|
+
platform: (0, getAccountId_1.default)("platform"),
|
|
38
|
+
businessContinuity: (0, getAccountId_1.default)("businessContinuity")
|
|
39
|
+
};
|
|
32
40
|
const customResource = new awsCustomResource_1.AwsCustomResource(this, "listIdentityCenterInstance", {
|
|
33
41
|
functionName: "listIdentityCenterInstance",
|
|
34
42
|
onCreate: {
|
|
35
|
-
service: "
|
|
36
|
-
action: "
|
|
43
|
+
service: "SSOAdmin",
|
|
44
|
+
action: "listInstances",
|
|
37
45
|
parameters: {
|
|
38
46
|
MaxResults: 1
|
|
39
47
|
},
|
|
@@ -47,56 +55,53 @@ class IdentityCenter extends constructs_1.Construct {
|
|
|
47
55
|
]),
|
|
48
56
|
resourceType: "Custom::IamIdentityCenter"
|
|
49
57
|
});
|
|
50
|
-
this.identityCenterArn = customResource.getResponseField("Instances.0.InstanceArn");
|
|
51
|
-
this.identityStoreId = customResource.getResponseField("Instances.0.IdentityStoreId");
|
|
52
58
|
new cfnOutput_1.CfnOutput(this, "identityCenterArn", {
|
|
53
59
|
key: "identityCenterArn",
|
|
54
|
-
value:
|
|
60
|
+
value: customResource.getResponseField("Instances.0.InstanceArn"),
|
|
55
61
|
exportName: "identityCenterArn"
|
|
56
62
|
});
|
|
57
|
-
new cfnOutput_1.CfnOutput(this, "
|
|
63
|
+
new cfnOutput_1.CfnOutput(this, "identityStoreID", {
|
|
58
64
|
key: "identityStoreID",
|
|
59
|
-
value:
|
|
60
|
-
exportName: "
|
|
65
|
+
value: customResource.getResponseField("Instances.0.IdentityStoreId"),
|
|
66
|
+
exportName: "identityStoreID"
|
|
61
67
|
});
|
|
62
68
|
for (const [permissionSet, permissionSetAssociation] of Object.entries(defaultPermissionSets)) {
|
|
63
69
|
const permSet = new permissionSet_1.PermissionSet(this, `${permissionSet}PermissionSet`, {
|
|
64
70
|
name: permissionSet,
|
|
65
|
-
instanceArn:
|
|
71
|
+
instanceArn: customResource.getResponseField("Instances.0.InstanceArn"),
|
|
66
72
|
description: `Permission set for associated ${permissionSet} policy`,
|
|
67
73
|
managedPolicies: [permissionSetAssociation.Policy],
|
|
68
74
|
tags: [
|
|
69
75
|
{
|
|
70
|
-
key: "fjall:costAllocation:
|
|
76
|
+
key: "fjall:costAllocation:environments",
|
|
71
77
|
value: "management"
|
|
72
78
|
}
|
|
73
79
|
]
|
|
74
80
|
});
|
|
75
81
|
const group = new group_1.Group(this, `${permissionSet}Group`, {
|
|
76
82
|
displayName: permissionSet,
|
|
77
|
-
identityStoreId:
|
|
83
|
+
identityStoreId: customResource.getResponseField("Instances.0.IdentityStoreId"),
|
|
78
84
|
description: `Group for associated ${permissionSet} permission set`
|
|
79
85
|
});
|
|
80
|
-
this.identityCenterGroups.push(group);
|
|
81
86
|
new cfnOutput_1.CfnOutput(this, `${permissionSet}GroupId`, {
|
|
82
87
|
key: `${permissionSet}GroupId`,
|
|
83
88
|
value: group.attrGroupId,
|
|
84
89
|
exportName: `${permissionSet}GroupId`
|
|
85
90
|
});
|
|
86
|
-
for (const [
|
|
87
|
-
if (!
|
|
91
|
+
for (const [account, accountArn] of Object.entries(accounts)) {
|
|
92
|
+
if (!accountArn)
|
|
88
93
|
continue;
|
|
89
|
-
new assignment_1.Assignment(this, `${
|
|
90
|
-
instanceArn:
|
|
94
|
+
new assignment_1.Assignment(this, `${account}${permissionSet}Association`, {
|
|
95
|
+
instanceArn: customResource.getResponseField("Instances.0.InstanceArn"),
|
|
91
96
|
permissionSetArn: permSet.attrPermissionSetArn,
|
|
92
97
|
principalType: "GROUP",
|
|
93
98
|
principalId: group.attrGroupId,
|
|
94
99
|
targetType: "AWS_ACCOUNT",
|
|
95
|
-
targetId:
|
|
100
|
+
targetId: accountArn
|
|
96
101
|
});
|
|
97
102
|
}
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
105
|
}
|
|
101
106
|
exports.IdentityCenter = IdentityCenter;
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHlDZW50ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pZGVudGl0eUNlbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBRXZDLHVFQUFvRTtBQUNwRSx1RkFBb0Y7QUFDcEYsd0VBQXFFO0FBQ3JFLGlEQUFzRDtBQUN0RCx3RkFBcUY7QUFDckYsa0ZBQStFO0FBRS9FLHFFQUFrRTtBQUtsRSxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUszQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIWix5QkFBb0IsR0FBWSxFQUFFLENBQUM7UUFLeEMsdUVBQXVFO1FBQ3ZFLE1BQU0scUJBQXFCLEdBQUc7WUFDNUIsbUJBQW1CLEVBQUU7Z0JBQ25CLE1BQU0sRUFBRSw2Q0FBNkM7YUFDdEQ7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLDhDQUE4QzthQUN2RDtZQUNELGNBQWMsRUFBRTtnQkFDZCxNQUFNLEVBQUUsd0NBQXdDO2FBQ2pEO1lBQ0QsbUJBQW1CLEVBQUU7Z0JBQ25CLE1BQU0sRUFBRSwwREFBMEQ7YUFDbkU7U0FDRixDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsSUFBSSxxQ0FBaUIsQ0FDMUMsSUFBSSxFQUNKLDRCQUE0QixFQUM1QjtZQUNFLFlBQVksRUFBRSw0QkFBNEI7WUFDMUMsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUsc0JBQXNCO2dCQUM5QixVQUFVLEVBQUU7b0JBQ1YsVUFBVSxFQUFFLENBQUM7aUJBQ2Q7Z0JBQ0Qsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDdkQsNEJBQTRCLENBQzdCO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsZUFBZSxDQUFD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aW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBDZm5PdXRwdXQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY2ZuT3V0cHV0XCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvZ3JvdXBcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2V0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtL2lkZW50aXR5Q2VudGVyL3Blcm1pc3Npb25TZXRcIjtcbmltcG9ydCB7IEFzc2lnbm1lbnQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvYXNzaWdubWVudFwiO1xuaW1wb3J0IHsgQWNjb3VudHMgfSBmcm9tIFwiLi4vLi4vcGF0dGVybnMvYXdzL21hbmFnZWRPcmdhbmlzYXRpb25cIjtcbmltcG9ydCB7IHN0cmlwQW5kQ2FtZWxDYXNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3N0cmlwQW5kQ2FtZWxDYXNlXCI7XG5cbmludGVyZmFjZSBJZGVudGl0eUNlbnRlclByb3BzIHtcbiAgYWNjb3VudHM6IEFjY291bnRzO1xufVxuZXhwb3J0IGNsYXNzIElkZW50aXR5Q2VudGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIGlkZW50aXR5U3RvcmVJZDogc3RyaW5nO1xuICBwdWJsaWMgaWRlbnRpdHlDZW50ZXJBcm46IHN0cmluZztcbiAgcHVibGljIGlkZW50aXR5Q2VudGVyR3JvdXBzOiBHcm91cFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElkZW50aXR5Q2VudGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gVE9ETzogU2hvdWxkIG9ubHkgdXNlIHRoaXMgaWYgbm8gZ3JvdXBzIGFyZSBwcm92aWRlZCBieSB0aGUgZW5kIHVzZXJcbiAgICBjb25zdCBkZWZhdWx0UGVybWlzc2lvblNldHMgPSB7XG4gICAgICBBZG1pbmlzdHJhdG9yQWNjZXNzOiB7XG4gICAgICAgIFBvbGljeTogXCJhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9BZG1pbmlzdHJhdG9yQWNjZXNzXCJcbiAgICAgIH0sXG4gICAgICBCaWxsaW5nOiB7XG4gICAgICAgIFBvbGljeTogXCJhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9qb2ItZnVuY3Rpb24vQmlsbGluZ1wiXG4gICAgICB9LFxuICAgICAgUmVhZE9ubHlBY2Nlc3M6IHtcbiAgICAgICAgUG9saWN5OiBcImFybjphd3M6aWFtOjphd3M6cG9saWN5L1JlYWRPbmx5QWNjZXNzXCJcbiAgICAgIH0sXG4gICAgICBTeXN0ZW1BZG1pbmlzdHJhdG9yOiB7XG4gICAgICAgIFBvbGljeTogXCJhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9qb2ItZnVuY3Rpb24vU3lzdGVtQWRtaW5pc3RyYXRvclwiXG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwibGlzdElkZW50aXR5Q2VudGVySW5zdGFuY2VcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBcImxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlXCIsXG4gICAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJzc28tYWRtaW5cIixcbiAgICAgICAgICBhY3Rpb246IFwiTGlzdEluc3RhbmNlc0NvbW1hbmRcIixcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBNYXhSZXN1bHRzOiAxXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICBcImxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlXCJcbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcInNzbzpMaXN0SW5zdGFuY2VzXCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OklhbUlkZW50aXR5Q2VudGVyXCJcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5pZGVudGl0eUNlbnRlckFybiA9IGN1c3RvbVJlc291cmNlLmdldFJlc3BvbnNlRmllbGQoXG4gICAgICBcIkluc3RhbmNlcy4wLkluc3RhbmNlQXJuXCJcbiAgICApO1xuICAgIHRoaXMuaWRlbnRpdHlTdG9yZUlkID0gY3VzdG9tUmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZChcbiAgICAgIFwiSW5zdGFuY2VzLjAuSWRlbnRpdHlTdG9yZUlkXCJcbiAgICApO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJpZGVudGl0eUNlbnRlckFyblwiLCB7XG4gICAgICBrZXk6IFwiaWRlbnRpdHlDZW50ZXJBcm5cIixcbiAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5Q2VudGVyQXJuLFxuICAgICAgZXhwb3J0TmFtZTogXCJpZGVudGl0eUNlbnRlckFyblwiXG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImlkZW50aXR5U3RvcmVJZFwiLCB7XG4gICAgICBrZXk6IFwiaWRlbnRpdHlTdG9yZUlEXCIsXG4gICAgICB2YWx1ZTogdGhpcy5pZGVudGl0eVN0b3JlSWQsXG4gICAgICBleHBvcnROYW1lOiBcImlkZW50aXR5U3RvcmVJZFwiXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IFtwZXJtaXNzaW9uU2V0LCBwZXJtaXNzaW9uU2V0QXNzb2NpYXRpb25dIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgICAgZGVmYXVsdFBlcm1pc3Npb25TZXRzXG4gICAgKSkge1xuICAgICAgY29uc3QgcGVybVNldCA9IG5ldyBQZXJtaXNzaW9uU2V0KHRoaXMsIGAke3Blcm1pc3Npb25TZXR9UGVybWlzc2lvblNldGAsIHtcbiAgICAgICAgbmFtZTogcGVybWlzc2lvblNldCxcbiAgICAgICAgaW5zdGFuY2VBcm46IHRoaXMuaWRlbnRpdHlDZW50ZXJBcm4sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGVybWlzc2lvbiBzZXQgZm9yIGFzc29jaWF0ZWQgJHtwZXJtaXNzaW9uU2V0fSBwb2xpY3lgLFxuICAgICAgICBtYW5hZ2VkUG9saWNpZXM6IFtwZXJtaXNzaW9uU2V0QXNzb2NpYXRpb24uUG9saWN5XSxcbiAgICAgICAgdGFnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgICAgICAgdmFsdWU6IFwibWFuYWdlbWVudFwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZ3JvdXAgPSBuZXcgR3JvdXAodGhpcywgYCR7cGVybWlzc2lvblNldH1Hcm91cGAsIHtcbiAgICAgICAgZGlzcGxheU5hbWU6IHBlcm1pc3Npb25TZXQsXG4gICAgICAgIGlkZW50aXR5U3RvcmVJZDogdGhpcy5pZGVudGl0eVN0b3JlSWQsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgR3JvdXAgZm9yIGFzc29jaWF0ZWQgJHtwZXJtaXNzaW9uU2V0fSBwZXJtaXNzaW9uIHNldGBcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pZGVudGl0eUNlbnRlckdyb3Vwcy5wdXNoKGdyb3VwKTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtwZXJtaXNzaW9uU2V0fUdyb3VwSWRgLCB7XG4gICAgICAgIGtleTogYCR7cGVybWlzc2lvblNldH1Hcm91cElkYCxcbiAgICAgICAgdmFsdWU6IGdyb3VwLmF0dHJHcm91cElkLFxuICAgICAgICBleHBvcnROYW1lOiBgJHtwZXJtaXNzaW9uU2V0fUdyb3VwSWRgXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBbYWNjb3VudE5hbWUsIGFjY291bnRJZF0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMuYWNjb3VudHMpKSB7XG4gICAgICAgIGlmICghYWNjb3VudElkKSBjb250aW51ZTtcblxuICAgICAgICBuZXcgQXNzaWdubWVudChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3N0cmlwQW5kQ2FtZWxDYXNlKGFjY291bnROYW1lKX0ke3Blcm1pc3Npb25TZXR9QXNzb2NpYXRpb25gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGluc3RhbmNlQXJuOiB0aGlzLmlkZW50aXR5Q2VudGVyQXJuLFxuICAgICAgICAgICAgcGVybWlzc2lvblNldEFybjogcGVybVNldC5hdHRyUGVybWlzc2lvblNldEFybixcbiAgICAgICAgICAgIHByaW5jaXBhbFR5cGU6IFwiR1JPVVBcIixcbiAgICAgICAgICAgIHByaW5jaXBhbElkOiBncm91cC5hdHRyR3JvdXBJZCxcbiAgICAgICAgICAgIHRhcmdldFR5cGU6IFwiQVdTX0FDQ09VTlRcIixcbiAgICAgICAgICAgIHRhcmdldElkOiBhY2NvdW50SWRcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHlDZW50ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pZGVudGl0eUNlbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBZ0Q7QUFDaEQsZ0VBQWdFO0FBR2hFLHVFQUFvRTtBQUNwRSx1RkFBb0Y7QUFDcEYsd0VBQXFFO0FBQ3JFLGlEQUFzRDtBQUN0RCx3RkFBcUY7QUFDckYsa0ZBQStFO0FBQy9FLDJEQUFvRDtBQUVwRCx3R0FBd0c7QUFDeEcsTUFBYSxjQUFlLFNBQVEsbUJBQUs7SUFDdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQjtRQUMxRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixNQUFNLHFCQUFxQixHQUFHO1lBQzVCLG1CQUFtQixFQUFFO2dCQUNuQixNQUFNLEVBQUUsNkNBQTZDO2FBQ3REO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSw4Q0FBOEM7YUFDdkQ7WUFDRCxjQUFjLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLHdDQUF3QzthQUNqRDtZQUNELG1CQUFtQixFQUFFO2dCQUNuQixNQUFNLEVBQUUsMERBQTBEO2FBQ25FO1NBQ0YsQ0FBQztRQUVGLG1FQUFtRTtRQUNuRSxNQUFNLFFBQVEsR0FBRztZQUNmLFVBQVUsRUFBRSxJQUFBLHNCQUFZLEVBQUMsWUFBWSxDQUFDO1lBQ3RDLFVBQVUsRUFBRSxJQUFBLHNCQUFZLEVBQUMsWUFBWSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxJQUFBLHNCQUFZLEVBQUMsU0FBUyxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxJQUFBLHNCQUFZLEVBQUMsYUFBYSxDQUFDO1lBQ3hDLFFBQVEsRUFBRSxJQUFBLHNCQUFZLEVBQUMsVUFBVSxDQUFDO1lBQ2xDLGtCQUFrQixFQUFFLElBQUEsc0JBQVksRUFBQyxvQkFBb0IsQ0FBQztTQUN2RCxDQUFD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O29CQUN0QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixRQUFRLEVBQUUsVUFBVTtpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7Q0FDRjtBQS9HRCx3Q0ErR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBDZm5PdXRwdXQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY2ZuT3V0cHV0XCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvZ3JvdXBcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2V0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtL2lkZW50aXR5Q2VudGVyL3Blcm1pc3Npb25TZXRcIjtcbmltcG9ydCB7IEFzc2lnbm1lbnQgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvYXNzaWdubWVudFwiO1xuaW1wb3J0IGdldEFjY291bnRJZCBmcm9tIFwiLi4vLi4vdXRpbHMvZ2V0QWNjb3VudElkXCI7XG5cbi8vIFRPRE86IFBvdGVudGlhbGx5IGhhdmUgdGhpcyBjbGFzcyB0YWtlIGluIGN1c3RvbSBwZXJtaXNzaW9uIHNldHMgYW5kIHBvbGljaWVzIHRvIG92ZXJpZGUgb3VyIGRlZmF1bHRzXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlDZW50ZXIgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3QgZGVmYXVsdFBlcm1pc3Npb25TZXRzID0ge1xuICAgICAgQWRtaW5pc3RyYXRvckFjY2Vzczoge1xuICAgICAgICBQb2xpY3k6IFwiYXJuOmF3czppYW06OmF3czpwb2xpY3kvQWRtaW5pc3RyYXRvckFjY2Vzc1wiXG4gICAgICB9LFxuICAgICAgQmlsbGluZzoge1xuICAgICAgICBQb2xpY3k6IFwiYXJuOmF3czppYW06OmF3czpwb2xpY3kvam9iLWZ1bmN0aW9uL0JpbGxpbmdcIlxuICAgICAgfSxcbiAgICAgIFJlYWRPbmx5QWNjZXNzOiB7XG4gICAgICAgIFBvbGljeTogXCJhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9SZWFkT25seUFjY2Vzc1wiXG4gICAgICB9LFxuICAgICAgU3lzdGVtQWRtaW5pc3RyYXRvcjoge1xuICAgICAgICBQb2xpY3k6IFwiYXJuOmF3czppYW06OmF3czpwb2xpY3kvam9iLWZ1bmN0aW9uL1N5c3RlbUFkbWluaXN0cmF0b3JcIlxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBUT0RPOiBXaGF0J3MgdGhlIGVhc2llciB3YXkgdG8gcGFzcyBhbGwgYWNjb3VudHMgaW50byB0aGUgc3RhY2s/XG4gICAgY29uc3QgYWNjb3VudHMgPSB7XG4gICAgICBtYW5hZ2VtZW50OiBnZXRBY2NvdW50SWQoXCJtYW5hZ2VtZW50XCIpLFxuICAgICAgcHJvZHVjdGlvbjogZ2V0QWNjb3VudElkKFwicHJvZHVjdGlvblwiKSxcbiAgICAgIHN0YWdpbmc6IGdldEFjY291bnRJZChcInN0YWdpbmdcIiksXG4gICAgICBkZXZlbG9wbWVudDogZ2V0QWNjb3VudElkKFwiZGV2ZWxvcG1lbnRcIiksXG4gICAgICBwbGF0Zm9ybTogZ2V0QWNjb3VudElkKFwicGxhdGZvcm1cIiksXG4gICAgICBidXNpbmVzc0NvbnRpbnVpdHk6IGdldEFjY291bnRJZChcImJ1c2luZXNzQ29udGludWl0eVwiKVxuICAgIH07XG5cbiAgICBjb25zdCBjdXN0b21SZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICBcImxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlXCIsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uTmFtZTogXCJsaXN0SWRlbnRpdHlDZW50ZXJJbnN0YW5jZVwiLFxuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwiU1NPQWRtaW5cIixcbiAgICAgICAgICBhY3Rpb246IFwibGlzdEluc3RhbmNlc1wiLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIE1heFJlc3VsdHM6IDFcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICAgIFwibGlzdElkZW50aXR5Q2VudGVySW5zdGFuY2VcIlxuICAgICAgICAgIClcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wic3NvOkxpc3RJbnN0YW5jZXNcIl0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgICAgICB9KVxuICAgICAgICBdKSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6SWFtSWRlbnRpdHlDZW50ZXJcIlxuICAgICAgfVxuICAgICk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaWRlbnRpdHlDZW50ZXJBcm5cIiwge1xuICAgICAga2V5OiBcImlkZW50aXR5Q2VudGVyQXJuXCIsXG4gICAgICB2YWx1ZTogY3VzdG9tUmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZChcIkluc3RhbmNlcy4wLkluc3RhbmNlQXJuXCIpLFxuICAgICAgZXhwb3J0TmFtZTogXCJpZGVudGl0eUNlbnRlckFyblwiXG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImlkZW50aXR5U3RvcmVJRFwiLCB7XG4gICAgICBrZXk6IFwiaWRlbnRpdHlTdG9yZUlEXCIsXG4gICAgICB2YWx1ZTogY3VzdG9tUmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZChcIkluc3RhbmNlcy4wLklkZW50aXR5U3RvcmVJZFwiKSxcbiAgICAgIGV4cG9ydE5hbWU6IFwiaWRlbnRpdHlTdG9yZUlEXCJcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgW3Blcm1pc3Npb25TZXQsIHBlcm1pc3Npb25TZXRBc3NvY2lhdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoXG4gICAgICBkZWZhdWx0UGVybWlzc2lvblNldHNcbiAgICApKSB7XG4gICAgICBjb25zdCBwZXJtU2V0ID0gbmV3IFBlcm1pc3Npb25TZXQodGhpcywgYCR7cGVybWlzc2lvblNldH1QZXJtaXNzaW9uU2V0YCwge1xuICAgICAgICBuYW1lOiBwZXJtaXNzaW9uU2V0LFxuICAgICAgICBpbnN0YW5jZUFybjogY3VzdG9tUmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZChcIkluc3RhbmNlcy4wLkluc3RhbmNlQXJuXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFBlcm1pc3Npb24gc2V0IGZvciBhc3NvY2lhdGVkICR7cGVybWlzc2lvblNldH0gcG9saWN5YCxcbiAgICAgICAgbWFuYWdlZFBvbGljaWVzOiBbcGVybWlzc2lvblNldEFzc29jaWF0aW9uLlBvbGljeV0sXG4gICAgICAgIHRhZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246ZW52aXJvbm1lbnRzXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJtYW5hZ2VtZW50XCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBncm91cCA9IG5ldyBHcm91cCh0aGlzLCBgJHtwZXJtaXNzaW9uU2V0fUdyb3VwYCwge1xuICAgICAgICBkaXNwbGF5TmFtZTogcGVybWlzc2lvblNldCxcbiAgICAgICAgaWRlbnRpdHlTdG9yZUlkOiBjdXN0b21SZXNvdXJjZS5nZXRSZXNwb25zZUZpZWxkKFxuICAgICAgICAgIFwiSW5zdGFuY2VzLjAuSWRlbnRpdHlTdG9yZUlkXCJcbiAgICAgICAgKSxcbiAgICAgICAgZGVzY3JpcHRpb246IGBHcm91cCBmb3IgYXNzb2NpYXRlZCAke3Blcm1pc3Npb25TZXR9IHBlcm1pc3Npb24gc2V0YFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cGVybWlzc2lvblNldH1Hcm91cElkYCwge1xuICAgICAgICBrZXk6IGAke3Blcm1pc3Npb25TZXR9R3JvdXBJZGAsXG4gICAgICAgIHZhbHVlOiBncm91cC5hdHRyR3JvdXBJZCxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7cGVybWlzc2lvblNldH1Hcm91cElkYFxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgW2FjY291bnQsIGFjY291bnRBcm5dIG9mIE9iamVjdC5lbnRyaWVzKGFjY291bnRzKSkge1xuICAgICAgICBpZiAoIWFjY291bnRBcm4pIGNvbnRpbnVlO1xuXG4gICAgICAgIG5ldyBBc3NpZ25tZW50KHRoaXMsIGAke2FjY291bnR9JHtwZXJtaXNzaW9uU2V0fUFzc29jaWF0aW9uYCwge1xuICAgICAgICAgIGluc3RhbmNlQXJuOiBjdXN0b21SZXNvdXJjZS5nZXRSZXNwb25zZUZpZWxkKFxuICAgICAgICAgICAgXCJJbnN0YW5jZXMuMC5JbnN0YW5jZUFyblwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICBwZXJtaXNzaW9uU2V0QXJuOiBwZXJtU2V0LmF0dHJQZXJtaXNzaW9uU2V0QXJuLFxuICAgICAgICAgIHByaW5jaXBhbFR5cGU6IFwiR1JPVVBcIixcbiAgICAgICAgICBwcmluY2lwYWxJZDogZ3JvdXAuYXR0ckdyb3VwSWQsXG4gICAgICAgICAgdGFyZ2V0VHlwZTogXCJBV1NfQUNDT1VOVFwiLFxuICAgICAgICAgIHRhcmdldElkOiBhY2NvdW50QXJuXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -2,11 +2,7 @@ export * from "./costAllocationTags";
|
|
|
2
2
|
export * from "./identityCenter";
|
|
3
3
|
export * from "./ipam";
|
|
4
4
|
export * from "./ipamDelegateAdmin";
|
|
5
|
-
export * from "./
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./
|
|
8
|
-
export * from "./
|
|
9
|
-
export * from "./accountId";
|
|
10
|
-
export * from "./ecrDefaultImage";
|
|
11
|
-
export * from "./eventBus";
|
|
12
|
-
export * from "./organisationId";
|
|
5
|
+
export * from "./ipamPool";
|
|
6
|
+
export * from "./ipamPoolResourceShare";
|
|
7
|
+
export * from "./ramEnableSharing";
|
|
8
|
+
export * from "./users";
|
|
@@ -18,12 +18,8 @@ __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("./
|
|
22
|
-
__exportStar(require("./
|
|
23
|
-
__exportStar(require("./
|
|
24
|
-
__exportStar(require("./
|
|
25
|
-
|
|
26
|
-
__exportStar(require("./ecrDefaultImage"), exports);
|
|
27
|
-
__exportStar(require("./eventBus"), exports);
|
|
28
|
-
__exportStar(require("./organisationId"), exports);
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLG1EQUFpQztBQUNqQyx5Q0FBdUI7QUFDdkIsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QiwrQ0FBNkI7QUFDN0IsdURBQXFDO0FBQ3JDLGlEQUErQjtBQUMvQiw4Q0FBNEI7QUFDNUIsb0RBQWtDO0FBQ2xDLDZDQUEyQjtBQUMzQixtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb3N0QWxsb2NhdGlvblRhZ3NcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lkZW50aXR5Q2VudGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtRGVsZWdhdGVBZG1pblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXBhbVBvb2xJZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmFtU2hhcmluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaWRlbnRpdHlDZW50ZXJVc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vcmdhbmlzYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FjY291bnRJZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWNyRGVmYXVsdEltYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudEJ1c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3JnYW5pc2F0aW9uSWRcIjtcbiJdfQ==
|
|
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
|
|
@@ -1,34 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Ipam = void 0;
|
|
4
|
-
const
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const ipam_1 = require("../../resources/aws/networking/ipam");
|
|
6
6
|
const cfnOutput_1 = require("../../resources/aws/utilities/cfnOutput");
|
|
7
|
-
|
|
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 {
|
|
7
|
+
class Ipam extends aws_cdk_lib_1.Stack {
|
|
28
8
|
constructor(scope, id) {
|
|
29
9
|
super(scope, id);
|
|
30
10
|
const ipam = new ipam_1.Ipam(this, "ipam", {
|
|
31
|
-
operatingRegions:
|
|
11
|
+
operatingRegions: [
|
|
12
|
+
{ regionName: "us-east-1" },
|
|
13
|
+
{ regionName: "eu-west-1" }
|
|
14
|
+
],
|
|
32
15
|
tags: [
|
|
33
16
|
{
|
|
34
17
|
key: "fjall:costAllocation:environment",
|
|
@@ -36,7 +19,6 @@ class Ipam extends constructs_1.Construct {
|
|
|
36
19
|
}
|
|
37
20
|
]
|
|
38
21
|
});
|
|
39
|
-
this.privateDefaultScopeId = ipam.attrPrivateDefaultScopeId;
|
|
40
22
|
new cfnOutput_1.CfnOutput(this, "privateDefaultScopeId", {
|
|
41
23
|
key: "privateDefaultScopeId",
|
|
42
24
|
value: ipam.attrPrivateDefaultScopeId,
|
|
@@ -45,4 +27,4 @@ class Ipam extends constructs_1.Construct {
|
|
|
45
27
|
}
|
|
46
28
|
}
|
|
47
29
|
exports.Ipam = Ipam;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2lwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW9DO0FBR3BDLDhEQUF3RTtBQUN4RSx1RUFBb0U7QUFFcEUsTUFBYSxJQUFLLFNBQVEsbUJBQUs7SUFDN0IsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLFdBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3ZDLGdCQUFnQixFQUFFO2dCQUNoQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzNCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRTthQUM1QjtZQUNELElBQUksRUFBRTtnQkFDSjtvQkFDRSxHQUFHLEVBQUUsa0NBQWtDO29CQUN2QyxLQUFLLEVBQUUsWUFBWTtpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUkscUJBQVMsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDM0MsR0FBRyxFQUFFLHVCQUF1QjtZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLHlCQUF5QjtZQUNyQyxVQUFVLEVBQUUsMkJBQTJCO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRCRCxvQkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgSXBhbSBhcyBpcGFtQ2xhc3MgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1cIjtcbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jZm5PdXRwdXRcIjtcblxuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGlwYW0gPSBuZXcgaXBhbUNsYXNzKHRoaXMsIFwiaXBhbVwiLCB7XG4gICAgICBvcGVyYXRpbmdSZWdpb25zOiBbXG4gICAgICAgIHsgcmVnaW9uTmFtZTogXCJ1cy1lYXN0LTFcIiB9LFxuICAgICAgICB7IHJlZ2lvbk5hbWU6IFwiZXUtd2VzdC0xXCIgfVxuICAgICAgXSxcbiAgICAgIHRhZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgICAgIHZhbHVlOiBcIm1hbmFnZW1lbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwicHJpdmF0ZURlZmF1bHRTY29wZUlkXCIsIHtcbiAgICAgIGtleTogXCJwcml2YXRlRGVmYXVsdFNjb3BlSWRcIixcbiAgICAgIHZhbHVlOiBpcGFtLmF0dHJQcml2YXRlRGVmYXVsdFNjb3BlSWQsXG4gICAgICBleHBvcnROYW1lOiBcIklwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWRcIlxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { StackProps, Stack } from "aws-cdk-lib";
|
|
1
2
|
import { Construct } from "constructs";
|
|
2
|
-
interface IpamDelegateAdminProps {
|
|
3
|
-
|
|
3
|
+
interface IpamDelegateAdminProps extends StackProps {
|
|
4
|
+
accountName?: string;
|
|
4
5
|
}
|
|
5
|
-
export declare class IpamDelegateAdmin extends
|
|
6
|
-
constructor(scope: Construct, id: string, props
|
|
6
|
+
export declare class IpamDelegateAdmin extends Stack {
|
|
7
|
+
constructor(scope: Construct, id: string, props?: IpamDelegateAdminProps);
|
|
7
8
|
}
|
|
8
9
|
export {};
|
|
@@ -1,13 +1,14 @@
|
|
|
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");
|
|
4
5
|
const customResources = require("aws-cdk-lib/custom-resources");
|
|
5
6
|
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
|
-
|
|
8
|
+
const getAccountId_1 = require("../../utils/getAccountId");
|
|
9
|
+
class IpamDelegateAdmin extends aws_cdk_lib_1.Stack {
|
|
9
10
|
constructor(scope, id, props) {
|
|
10
|
-
super(scope, id);
|
|
11
|
+
super(scope, id, props);
|
|
11
12
|
new awsCustomResource_1.AwsCustomResource(this, "ipamDelegateAdmin", {
|
|
12
13
|
functionName: "ipamDelegateAdmin",
|
|
13
14
|
onCreate: {
|
|
@@ -15,7 +16,9 @@ class IpamDelegateAdmin extends constructs_1.Construct {
|
|
|
15
16
|
action: "enableIpamOrganizationAdminAccount",
|
|
16
17
|
parameters: {
|
|
17
18
|
DryRun: false,
|
|
18
|
-
DelegatedAdminAccountId: props
|
|
19
|
+
DelegatedAdminAccountId: props?.accountName
|
|
20
|
+
? (0, getAccountId_1.default)(props.accountName)
|
|
21
|
+
: (0, getAccountId_1.default)("platform")
|
|
19
22
|
},
|
|
20
23
|
physicalResourceId: customResources.PhysicalResourceId.of("ipamDelegateAdmin")
|
|
21
24
|
},
|
|
@@ -24,7 +27,9 @@ class IpamDelegateAdmin extends constructs_1.Construct {
|
|
|
24
27
|
action: "enableIpamOrganizationAdminAccount",
|
|
25
28
|
parameters: {
|
|
26
29
|
DryRun: false,
|
|
27
|
-
DelegatedAdminAccountId: props
|
|
30
|
+
DelegatedAdminAccountId: props?.accountName
|
|
31
|
+
? (0, getAccountId_1.default)(props.accountName)
|
|
32
|
+
: (0, getAccountId_1.default)("platform")
|
|
28
33
|
},
|
|
29
34
|
physicalResourceId: customResources.PhysicalResourceId.of("ipamDelegateAdmin")
|
|
30
35
|
},
|
|
@@ -33,7 +38,7 @@ class IpamDelegateAdmin extends constructs_1.Construct {
|
|
|
33
38
|
action: "disableIpamOrganizationAdminAccount",
|
|
34
39
|
parameters: {
|
|
35
40
|
DryRun: false,
|
|
36
|
-
DelegatedAdminAccountId:
|
|
41
|
+
DelegatedAdminAccountId: (0, getAccountId_1.default)("platform")
|
|
37
42
|
}
|
|
38
43
|
},
|
|
39
44
|
resourceType: "Custom::ipamDelegateAdmin",
|
|
@@ -45,14 +50,13 @@ class IpamDelegateAdmin extends constructs_1.Construct {
|
|
|
45
50
|
"organizations:EnableAWSServiceAccess",
|
|
46
51
|
"organizations:DisableAWSServiceAccess",
|
|
47
52
|
"organizations:RegisterDelegatedAdministrator",
|
|
48
|
-
"organizations:DeregisterDelegatedAdministrator",
|
|
49
53
|
"iam:CreateServiceLinkedRole"
|
|
50
54
|
],
|
|
51
|
-
resources: ["*"] // TODO: Find out the exact
|
|
55
|
+
resources: ["*"] // TODO: Find out the exact pricipal for this
|
|
52
56
|
})
|
|
53
57
|
])
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
exports.IpamDelegateAdmin = IpamDelegateAdmin;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbURlbGVnYXRlQWRtaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pcGFtRGVsZWdhdGVBZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBZ0Q7QUFDaEQsZ0VBQWdFO0FBQ2hFLGlEQUFzRDtBQUd0RCx1RkFBb0Y7QUFDcEYsMkRBQW9EO0FBTXBELE1BQWEsaUJBQWtCLFNBQVEsbUJBQUs7SUFDMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUMvQyxZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsb0NBQW9DO2dCQUM1QyxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFdBQVc7d0JBQ3pDLENBQUMsQ0FBQyxJQUFBLHNCQUFZLEVBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQzt3QkFDakMsQ0FBQyxDQUFDLElBQUEsc0JBQVksRUFBQyxVQUFVLENBQUM7aUJBQzdCO2dCQUNELGtCQUFrQixFQUNoQixlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQzdEO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxvQ0FBb0M7Z0JBQzVDLFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsS0FBSztvQkFDYix1QkFBdUIsRUFBRSxLQUFLLEVBQUUsV0FBVzt3QkFDekMsQ0FBQyxDQUFDLElBQUEsc0JBQVksRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDO3dCQUNqQyxDQUFDLENBQUMsSUFBQSxzQkFBWSxFQUFDLFVBQVUsQ0FBQztpQkFDN0I7Z0JBQ0Qsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDN0Q7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLHFDQUFxQztnQkFDN0MsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxLQUFLO29CQUNiLHVCQUF1QixFQUFFLElBQUEsc0JBQVksRUFBQyxVQUFVLENBQUM7aUJBQ2xEO2FBQ0Y7WUFDRCxZQUFZLEVBQUUsMkJBQTJCO1lBQ3pDLE1BQU0sRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUM3RCxJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCx3Q0FBd0M7d0JBQ3hDLHlDQUF5Qzt3QkFDekMsc0NBQXNDO3dCQUN0Qyx1Q0FBdUM7d0JBQ3ZDLDhDQUE4Qzt3QkFDOUMsNkJBQTZCO3FCQUM5QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyw2Q0FBNkM7aUJBQy9ELENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdERELDhDQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrUHJvcHMsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IGdldEFjY291bnRJZCBmcm9tIFwiLi4vLi4vdXRpbHMvZ2V0QWNjb3VudElkXCI7XG5cbmludGVyZmFjZSBJcGFtRGVsZWdhdGVBZG1pblByb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIGFjY291bnROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSXBhbURlbGVnYXRlQWRtaW4gZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSXBhbURlbGVnYXRlQWRtaW5Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiaXBhbURlbGVnYXRlQWRtaW5cIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBcImlwYW1EZWxlZ2F0ZUFkbWluXCIsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkVDMlwiLFxuICAgICAgICBhY3Rpb246IFwiZW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0VDMi5odG1sI2VuYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnQtcHJvcGVydHlcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIERyeVJ1bjogZmFsc2UsXG4gICAgICAgICAgRGVsZWdhdGVkQWRtaW5BY2NvdW50SWQ6IHByb3BzPy5hY2NvdW50TmFtZVxuICAgICAgICAgICAgPyBnZXRBY2NvdW50SWQocHJvcHMuYWNjb3VudE5hbWUpXG4gICAgICAgICAgICA6IGdldEFjY291bnRJZChcInBsYXRmb3JtXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDpcbiAgICAgICAgICBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiaXBhbURlbGVnYXRlQWRtaW5cIilcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkVDMlwiLFxuICAgICAgICBhY3Rpb246IFwiZW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgRHJ5UnVuOiBmYWxzZSxcbiAgICAgICAgICBEZWxlZ2F0ZWRBZG1pbkFjY291bnRJZDogcHJvcHM/LmFjY291bnROYW1lXG4gICAgICAgICAgICA/IGdldEFjY291bnRJZChwcm9wcy5hY2NvdW50TmFtZSlcbiAgICAgICAgICAgIDogZ2V0QWNjb3VudElkKFwicGxhdGZvcm1cIilcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOlxuICAgICAgICAgIGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXCJpcGFtRGVsZWdhdGVBZG1pblwiKVxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiRUMyXCIsXG4gICAgICAgIGFjdGlvbjogXCJkaXNhYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL0VDMi5odG1sI2Rpc2FibGVJcGFtT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50LXByb3BlcnR5XG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBEcnlSdW46IGZhbHNlLFxuICAgICAgICAgIERlbGVnYXRlZEFkbWluQWNjb3VudElkOiBnZXRBY2NvdW50SWQoXCJwbGF0Zm9ybVwiKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6aXBhbURlbGVnYXRlQWRtaW5cIixcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJlYzI6RW5hYmxlSXBhbU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiLFxuICAgICAgICAgICAgXCJlYzI6RGlzYWJsZUlwYW1Pcmdhbml6YXRpb25BZG1pbkFjY291bnRcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpFbmFibGVBV1NTZXJ2aWNlQWNjZXNzXCIsXG4gICAgICAgICAgICBcIm9yZ2FuaXphdGlvbnM6RGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NcIixcbiAgICAgICAgICAgIFwib3JnYW5pemF0aW9uczpSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JcIixcbiAgICAgICAgICAgIFwiaWFtOkNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSAvLyBUT0RPOiBGaW5kIG91dCB0aGUgZXhhY3QgcHJpY2lwYWwgZm9yIHRoaXNcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
|
-
export declare class OrganisationId extends
|
|
4
|
-
readonly organisationId: CfnOutput;
|
|
5
|
-
readonly organisationAccountArn: CfnOutput;
|
|
3
|
+
export declare class OrganisationId extends Stack {
|
|
6
4
|
constructor(scope: Construct, id: string);
|
|
7
5
|
}
|
|
@@ -4,24 +4,23 @@ exports.OrganisationId = void 0;
|
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const customResources = require("aws-cdk-lib/custom-resources");
|
|
6
6
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
-
const constructs_1 = require("constructs");
|
|
8
7
|
const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
|
|
9
|
-
class OrganisationId extends
|
|
8
|
+
class OrganisationId extends aws_cdk_lib_1.Stack {
|
|
10
9
|
constructor(scope, id) {
|
|
11
10
|
super(scope, id);
|
|
12
|
-
const organisation = new awsCustomResource_1.AwsCustomResource(this, "
|
|
11
|
+
const organisation = new awsCustomResource_1.AwsCustomResource(this, "ipamDelegateAdmin", {
|
|
13
12
|
functionName: "organisationId",
|
|
14
13
|
onCreate: {
|
|
15
14
|
service: "organizations",
|
|
16
|
-
action: "
|
|
15
|
+
action: "describeOrganization",
|
|
17
16
|
physicalResourceId: customResources.PhysicalResourceId.of("organisationId")
|
|
18
17
|
},
|
|
19
18
|
onUpdate: {
|
|
20
19
|
service: "organizations",
|
|
21
|
-
action: "
|
|
20
|
+
action: "describeOrganization",
|
|
22
21
|
physicalResourceId: customResources.PhysicalResourceId.of("organisationId")
|
|
23
22
|
},
|
|
24
|
-
resourceType: "Custom::
|
|
23
|
+
resourceType: "Custom::organisationId",
|
|
25
24
|
policy: customResources.AwsCustomResourcePolicy.fromStatements([
|
|
26
25
|
new aws_iam_1.PolicyStatement({
|
|
27
26
|
actions: ["organizations:DescribeOrganization"],
|
|
@@ -30,17 +29,12 @@ class OrganisationId extends constructs_1.Construct {
|
|
|
30
29
|
})
|
|
31
30
|
])
|
|
32
31
|
});
|
|
33
|
-
|
|
32
|
+
new aws_cdk_lib_1.CfnOutput(this, "OrganisationId", {
|
|
34
33
|
key: "OrganisationId",
|
|
35
34
|
value: organisation.getResponseField("Organization.Id"),
|
|
36
35
|
exportName: "OrganisationId"
|
|
37
36
|
});
|
|
38
|
-
this.organisationAccountArn = new aws_cdk_lib_1.CfnOutput(this, "OrganisationAccountId", {
|
|
39
|
-
key: "OrganisationAccountArn",
|
|
40
|
-
value: organisation.getResponseField("Organization.MasterAccountArn"),
|
|
41
|
-
exportName: "OrganisationAccountArn"
|
|
42
|
-
});
|
|
43
37
|
}
|
|
44
38
|
}
|
|
45
39
|
exports.OrganisationId = OrganisationId;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uSWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9vcmdhbmlzYXRpb25JZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBK0M7QUFDL0MsZ0VBQWdFO0FBQ2hFLGlEQUE4RDtBQUc5RCx1RkFBb0Y7QUFFcEYsTUFBYSxjQUFlLFNBQVEsbUJBQUs7SUFDdkMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFlBQVksR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUNwRSxZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsa0JBQWtCLEVBQ2hCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDMUQ7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE1BQU0sRUFBRSxzQkFBc0I7Z0JBQzlCLGtCQUFrQixFQUNoQixlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2FBQzFEO1lBQ0QsWUFBWSxFQUFFLHdCQUF3QjtZQUN0QyxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0QsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDL0MsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUNoQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO2lCQUNyQixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDcEMsR0FBRyxFQUFFLGdCQUFnQjtZQUNyQixLQUFLLEVBQUUsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO1lBQ3ZELFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBbENELHdDQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuZXhwb3J0IGNsYXNzIE9yZ2FuaXNhdGlvbklkIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IG9yZ2FuaXNhdGlvbiA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcImlwYW1EZWxlZ2F0ZUFkbWluXCIsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogXCJvcmdhbmlzYXRpb25JZFwiLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJvcmdhbml6YXRpb25zXCIsXG4gICAgICAgIGFjdGlvbjogXCJkZXNjcmliZU9yZ2FuaXphdGlvblwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL09yZ2FuaXphdGlvbnMuaHRtbCNkZXNjcmliZU9yZ2FuaXphdGlvbi1wcm9wZXJ0eVxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcIm9yZ2FuaXNhdGlvbklkXCIpXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJvcmdhbml6YXRpb25zXCIsXG4gICAgICAgIGFjdGlvbjogXCJkZXNjcmliZU9yZ2FuaXphdGlvblwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL09yZ2FuaXphdGlvbnMuaHRtbCNkZXNjcmliZU9yZ2FuaXphdGlvbi1wcm9wZXJ0eVxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6XG4gICAgICAgICAgY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcIm9yZ2FuaXNhdGlvbklkXCIpXG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6b3JnYW5pc2F0aW9uSWRcIixcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wib3JnYW5pemF0aW9uczpEZXNjcmliZU9yZ2FuaXphdGlvblwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1dcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiT3JnYW5pc2F0aW9uSWRcIiwge1xuICAgICAga2V5OiBcIk9yZ2FuaXNhdGlvbklkXCIsXG4gICAgICB2YWx1ZTogb3JnYW5pc2F0aW9uLmdldFJlc3BvbnNlRmllbGQoXCJPcmdhbml6YXRpb24uSWRcIiksXG4gICAgICBleHBvcnROYW1lOiBcIk9yZ2FuaXNhdGlvbklkXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AwsStackProps } from "../../resources/aws/awsStack";
|
|
2
|
+
import { KeyValue } from "../../resources/aws/compute/ecs";
|
|
2
3
|
import { ScalingType, Protocol } from "../../resources/aws/compute/ecs";
|
|
3
4
|
import { IManagedPolicy, PolicyDocument } from "aws-cdk-lib/aws-iam";
|
|
4
|
-
import { KeyValue } from "../../types";
|
|
5
5
|
/**
|
|
6
6
|
* Intersected with BasicAppProps in the getProps method. This allows the BasicApp construct
|
|
7
7
|
* to treat these as required properties and avoid constant null checking.
|
|
@@ -32,7 +32,7 @@ export interface BasicAppProps {
|
|
|
32
32
|
taskRoleInlinePolicies?: {
|
|
33
33
|
[name: string]: PolicyDocument;
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
taskRoleManagegedPolicies?: IManagedPolicy[];
|
|
36
36
|
tags?: KeyValue;
|
|
37
37
|
}
|
|
38
38
|
export declare class BasicApp {
|