@fjall/components-infrastructure 0.7.0 → 0.8.2

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.
@@ -1,4 +1,12 @@
1
1
  import { Construct } from "constructs";
2
+ export interface ICostAllocationTags {
3
+ TagKey: string;
4
+ Status: string;
5
+ }
6
+ interface CostAllocationTagsProps {
7
+ costAllocationTags: ICostAllocationTags[];
8
+ }
2
9
  export declare class CostAllocationTags extends Construct {
3
- constructor(scope: Construct, id: string);
10
+ constructor(scope: Construct, id: string, props: CostAllocationTagsProps);
4
11
  }
12
+ export {};
@@ -4,27 +4,16 @@ exports.CostAllocationTags = void 0;
4
4
  const customResources = require("aws-cdk-lib/custom-resources");
5
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
- const costAllocationTags = [
9
- "aws:cloudformation:logical-id",
10
- "aws:cloudformation:stack-id",
11
- "aws:cloudformation:stack-name",
12
- "aws:createdBy"
13
- // "fjall:operations:pool"
14
- // "fjall:costAllocation:environment",
15
- // "fjall:costAllocation:service",
16
- // "fjall:costAllocation:owner"
17
- ];
18
7
  function toggleCostTag(tags, tagStatus) {
19
8
  return tags.map((tag) => {
20
9
  return {
21
- TagKey: tag,
10
+ TagKey: tag.TagKey,
22
11
  Status: tagStatus
23
12
  };
24
13
  });
25
14
  }
26
15
  class CostAllocationTags extends constructs_1.Construct {
27
- constructor(scope, id) {
16
+ constructor(scope, id, props) {
28
17
  super(scope, id);
29
18
  new awsCustomResource_1.AwsCustomResource(this, "costAllocationTags", {
30
19
  functionName: "enableCostAllocationTags",
@@ -32,7 +21,7 @@ class CostAllocationTags extends constructs_1.Construct {
32
21
  service: "CostExplorer",
33
22
  action: "updateCostAllocationTagsStatus",
34
23
  parameters: {
35
- CostAllocationTagsStatus: toggleCostTag(costAllocationTags, "Active")
24
+ CostAllocationTagsStatus: toggleCostTag(props.costAllocationTags, "Active")
36
25
  },
37
26
  physicalResourceId: customResources.PhysicalResourceId.of("enableCostAllocationTags")
38
27
  },
@@ -40,7 +29,7 @@ class CostAllocationTags extends constructs_1.Construct {
40
29
  service: "CostExplorer",
41
30
  action: "updateCostAllocationTagsStatus",
42
31
  parameters: {
43
- CostAllocationTagsStatus: toggleCostTag(costAllocationTags, "Active")
32
+ CostAllocationTagsStatus: toggleCostTag(props.costAllocationTags, "Active")
44
33
  },
45
34
  physicalResourceId: customResources.PhysicalResourceId.of("updateCostAllocationTags")
46
35
  },
@@ -48,7 +37,7 @@ class CostAllocationTags extends constructs_1.Construct {
48
37
  service: "CostExplorer",
49
38
  action: "updateCostAllocationTagsStatus",
50
39
  parameters: {
51
- CostAllocationTagsStatus: toggleCostTag(costAllocationTags, "Inactive")
40
+ CostAllocationTagsStatus: toggleCostTag(props.costAllocationTags, "Inactive")
52
41
  }
53
42
  },
54
43
  resourceType: "Custom::CostAllocationTags"
@@ -56,4 +45,4 @@ class CostAllocationTags extends constructs_1.Construct {
56
45
  }
57
46
  }
58
47
  exports.CostAllocationTags = CostAllocationTags;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdEFsbG9jYXRpb25UYWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvY29zdEFsbG9jYXRpb25UYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFnRTtBQUNoRSwyQ0FBdUM7QUFFdkMsdUZBQW9GO0FBRXBGLG1GQUFtRjtBQUNuRixNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLCtCQUErQjtJQUMvQiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLGVBQWU7SUFDZiwwQkFBMEI7SUFDMUIsc0NBQXNDO0lBQ3RDLGtDQUFrQztJQUNsQywrQkFBK0I7Q0FDaEMsQ0FBQztBQUVGLFNBQVMsYUFBYSxDQUFDLElBQWMsRUFBRSxTQUFpQjtJQUN0RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QixPQUFPO1lBQ0wsTUFBTSxFQUFFLEdBQUc7WUFDWCxNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxzQkFBUztJQUMvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ2hELFlBQVksRUFBRSwwQkFBMEI7WUFDeEMsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixNQUFNLEVBQUUsZ0NBQWdDO2dCQUN4QyxVQUFVLEVBQUU7b0JBQ1Ysd0JBQXdCLEVBQUUsYUFBYSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztpQkFDdEU7Z0JBQ0Qsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDdkQsMEJBQTBCLENBQzNCO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLE1BQU0sRUFBRSxnQ0FBZ0M7Z0JBQ3hDLFVBQVUsRUFBRTtvQkFDVix3QkFBd0IsRUFBRSxhQUFhLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO2lCQUN0RTtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUN2RCwwQkFBMEIsQ0FDM0I7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsY0FBYztnQkFDdkIsTUFBTSxFQUFFLGdDQUFnQztnQkFDeEMsVUFBVSxFQUFFO29CQUNWLHdCQUF3QixFQUFFLGFBQWEsQ0FDckMsa0JBQWtCLEVBQ2xCLFVBQVUsQ0FDWDtpQkFDRjthQUNGO1lBQ0QsWUFBWSxFQUFFLDRCQUE0QjtTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2Q0QsZ0RBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuXG4vLyBUT0RPOiBVc2UgYW4gQVdTIENESyBjb25kaXRpb25hbCB0cmlnZ2VyIHRvIHdhaXQgZm9yIENvc3QgRXhwbG9yZXIgdG8gYmUgY3JlYXRlZFxuY29uc3QgY29zdEFsbG9jYXRpb25UYWdzID0gW1xuICBcImF3czpjbG91ZGZvcm1hdGlvbjpsb2dpY2FsLWlkXCIsXG4gIFwiYXdzOmNsb3VkZm9ybWF0aW9uOnN0YWNrLWlkXCIsXG4gIFwiYXdzOmNsb3VkZm9ybWF0aW9uOnN0YWNrLW5hbWVcIixcbiAgXCJhd3M6Y3JlYXRlZEJ5XCJcbiAgLy8gXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIlxuICAvLyBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmVudmlyb25tZW50XCIsXG4gIC8vIFwiZmphbGw6Y29zdEFsbG9jYXRpb246c2VydmljZVwiLFxuICAvLyBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOm93bmVyXCJcbl07XG5cbmZ1bmN0aW9uIHRvZ2dsZUNvc3RUYWcodGFnczogc3RyaW5nW10sIHRhZ1N0YXR1czogc3RyaW5nKSB7XG4gIHJldHVybiB0YWdzLm1hcCgodGFnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFRhZ0tleTogdGFnLFxuICAgICAgU3RhdHVzOiB0YWdTdGF0dXNcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIENvc3RBbGxvY2F0aW9uVGFncyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiY29zdEFsbG9jYXRpb25UYWdzXCIsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogXCJlbmFibGVDb3N0QWxsb2NhdGlvblRhZ3NcIixcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQ29zdEV4cGxvcmVyXCIsXG4gICAgICAgIGFjdGlvbjogXCJ1cGRhdGVDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXNcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIENvc3RBbGxvY2F0aW9uVGFnc1N0YXR1czogdG9nZ2xlQ29zdFRhZyhjb3N0QWxsb2NhdGlvblRhZ3MsIFwiQWN0aXZlXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICBcImVuYWJsZUNvc3RBbGxvY2F0aW9uVGFnc1wiXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkNvc3RFeHBsb3JlclwiLFxuICAgICAgICBhY3Rpb246IFwidXBkYXRlQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXM6IHRvZ2dsZUNvc3RUYWcoY29zdEFsbG9jYXRpb25UYWdzLCBcIkFjdGl2ZVwiKVxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgXCJ1cGRhdGVDb3N0QWxsb2NhdGlvblRhZ3NcIlxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogXCJDb3N0RXhwbG9yZXJcIixcbiAgICAgICAgYWN0aW9uOiBcInVwZGF0ZUNvc3RBbGxvY2F0aW9uVGFnc1N0YXR1c1wiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzOiB0b2dnbGVDb3N0VGFnKFxuICAgICAgICAgICAgY29zdEFsbG9jYXRpb25UYWdzLFxuICAgICAgICAgICAgXCJJbmFjdGl2ZVwiXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6Q29zdEFsbG9jYXRpb25UYWdzXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdEFsbG9jYXRpb25UYWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvY29zdEFsbG9jYXRpb25UYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFnRTtBQUNoRSwyQ0FBdUM7QUFFdkMsdUZBQW9GO0FBV3BGLFNBQVMsYUFBYSxDQUFDLElBQTJCLEVBQUUsU0FBaUI7SUFDbkUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEIsT0FBTztZQUNMLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxzQkFBUztJQUMvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDaEQsWUFBWSxFQUFFLDBCQUEwQjtZQUN4QyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLE1BQU0sRUFBRSxnQ0FBZ0M7Z0JBQ3hDLFVBQVUsRUFBRTtvQkFDVix3QkFBd0IsRUFBRSxhQUFhLENBQ3JDLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsUUFBUSxDQUNUO2lCQUNGO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQ3ZELDBCQUEwQixDQUMzQjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixNQUFNLEVBQUUsZ0NBQWdDO2dCQUN4QyxVQUFVLEVBQUU7b0JBQ1Ysd0JBQXdCLEVBQUUsYUFBYSxDQUNyQyxLQUFLLENBQUMsa0JBQWtCLEVBQ3hCLFFBQVEsQ0FDVDtpQkFDRjtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUN2RCwwQkFBMEIsQ0FDM0I7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsY0FBYztnQkFDdkIsTUFBTSxFQUFFLGdDQUFnQztnQkFDeEMsVUFBVSxFQUFFO29CQUNWLHdCQUF3QixFQUFFLGFBQWEsQ0FDckMsS0FBSyxDQUFDLGtCQUFrQixFQUN4QixVQUFVLENBQ1g7aUJBQ0Y7YUFDRjtZQUNELFlBQVksRUFBRSw0QkFBNEI7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBN0NELGdEQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29zdEFsbG9jYXRpb25UYWdzIHtcbiAgVGFnS2V5OiBzdHJpbmc7XG4gIFN0YXR1czogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ29zdEFsbG9jYXRpb25UYWdzUHJvcHMge1xuICBjb3N0QWxsb2NhdGlvblRhZ3M6IElDb3N0QWxsb2NhdGlvblRhZ3NbXTtcbn1cblxuZnVuY3Rpb24gdG9nZ2xlQ29zdFRhZyh0YWdzOiBJQ29zdEFsbG9jYXRpb25UYWdzW10sIHRhZ1N0YXR1czogc3RyaW5nKSB7XG4gIHJldHVybiB0YWdzLm1hcCgodGFnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFRhZ0tleTogdGFnLlRhZ0tleSxcbiAgICAgIFN0YXR1czogdGFnU3RhdHVzXG4gICAgfTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBDb3N0QWxsb2NhdGlvblRhZ3MgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29zdEFsbG9jYXRpb25UYWdzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiY29zdEFsbG9jYXRpb25UYWdzXCIsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogXCJlbmFibGVDb3N0QWxsb2NhdGlvblRhZ3NcIixcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQ29zdEV4cGxvcmVyXCIsXG4gICAgICAgIGFjdGlvbjogXCJ1cGRhdGVDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXNcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIENvc3RBbGxvY2F0aW9uVGFnc1N0YXR1czogdG9nZ2xlQ29zdFRhZyhcbiAgICAgICAgICAgIHByb3BzLmNvc3RBbGxvY2F0aW9uVGFncyxcbiAgICAgICAgICAgIFwiQWN0aXZlXCJcbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICBcImVuYWJsZUNvc3RBbGxvY2F0aW9uVGFnc1wiXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkNvc3RFeHBsb3JlclwiLFxuICAgICAgICBhY3Rpb246IFwidXBkYXRlQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDb3N0QWxsb2NhdGlvblRhZ3NTdGF0dXM6IHRvZ2dsZUNvc3RUYWcoXG4gICAgICAgICAgICBwcm9wcy5jb3N0QWxsb2NhdGlvblRhZ3MsXG4gICAgICAgICAgICBcIkFjdGl2ZVwiXG4gICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgXCJ1cGRhdGVDb3N0QWxsb2NhdGlvblRhZ3NcIlxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogXCJDb3N0RXhwbG9yZXJcIixcbiAgICAgICAgYWN0aW9uOiBcInVwZGF0ZUNvc3RBbGxvY2F0aW9uVGFnc1N0YXR1c1wiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQ29zdEFsbG9jYXRpb25UYWdzU3RhdHVzOiB0b2dnbGVDb3N0VGFnKFxuICAgICAgICAgICAgcHJvcHMuY29zdEFsbG9jYXRpb25UYWdzLFxuICAgICAgICAgICAgXCJJbmFjdGl2ZVwiXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6Q29zdEFsbG9jYXRpb25UYWdzXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,6 +1,7 @@
1
1
  import { Construct } from "constructs";
2
+ import { NestedStack, NestedStackProps } from "aws-cdk-lib";
2
3
  import { KeyValue } from "../../types";
3
- interface IdentityCenterProps {
4
+ interface IdentityCenterProps extends NestedStackProps {
4
5
  accounts: KeyValue;
5
6
  tags?: KeyValue[];
6
7
  }
@@ -8,10 +9,12 @@ export interface PermissionSetConfig {
8
9
  Policy: string;
9
10
  Description?: string;
10
11
  }
11
- export declare class IdentityCenter extends Construct {
12
+ export declare class IdentityCenter extends NestedStack {
12
13
  identityStoreId: string;
13
14
  identityCenterArn: string;
15
+ private identityCenterIamRole;
14
16
  constructor(scope: Construct, id: string, props: IdentityCenterProps);
17
+ createIdentityCenterIamRole(): void;
15
18
  listIdentityCenterInstance(): void;
16
19
  createPermissionSet(props: IdentityCenterProps): void;
17
20
  }
@@ -2,15 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IdentityCenter = void 0;
4
4
  const customResources = require("aws-cdk-lib/custom-resources");
5
- const constructs_1 = require("constructs");
6
5
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
7
  const cfnOutput_1 = require("../../resources/aws/utilities/cfnOutput");
8
8
  const awsCustomResource_1 = require("../../resources/aws/utilities/awsCustomResource");
9
9
  const stripAndCamelCase_1 = require("../../utils/stripAndCamelCase");
10
10
  const identityCenter_1 = require("../../resources/aws/iam/identityCenter");
11
11
  const attachManagedPolicy_1 = require("../../resources/aws/iam/identityCenter/attachManagedPolicy");
12
12
  const cdk_time_sleep_1 = require("cdk-time-sleep");
13
- const aws_cdk_lib_1 = require("aws-cdk-lib");
13
+ const aws_cdk_lib_2 = require("aws-cdk-lib");
14
+ const iam_1 = require("../../resources/aws/iam");
14
15
  const defaultPermissionSets = {
15
16
  AdministratorAccess: {
16
17
  Policy: "arn:aws:iam::aws:policy/AdministratorAccess",
@@ -25,12 +26,48 @@ const defaultPermissionSets = {
25
26
  Description: "Permission set for associated Billing policy"
26
27
  }
27
28
  };
28
- class IdentityCenter extends constructs_1.Construct {
29
+ class IdentityCenter extends aws_cdk_lib_1.NestedStack {
29
30
  constructor(scope, id, props) {
30
- super(scope, id);
31
+ super(scope, id, props);
32
+ this.createIdentityCenterIamRole();
31
33
  this.listIdentityCenterInstance();
32
34
  this.createPermissionSet(props);
33
35
  }
36
+ createIdentityCenterIamRole() {
37
+ // Remove this role, or update permissions when we're ready to troubleshoot intermittent policy errors
38
+ this.identityCenterIamRole = new iam_1.Role(this, "IdentityCenterCustomResourceRole", {
39
+ assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
40
+ description: "Shared role for all Identity Center AwsCustomResources",
41
+ managedPolicies: [
42
+ iam_1.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaBasicExecutionRole"),
43
+ iam_1.ManagedPolicy.fromAwsManagedPolicyName("AWSSSOMasterAccountAdministrator")
44
+ ],
45
+ inlinePolicies: {
46
+ IdentityCenterCustomResourcePolicy: new aws_iam_1.PolicyDocument({
47
+ statements: [
48
+ new aws_iam_1.PolicyStatement({
49
+ actions: ["sso:*", "iam:*"],
50
+ resources: ["*"]
51
+ })
52
+ ]
53
+ })
54
+ }
55
+ });
56
+ // Remove this role, or update permissions when we're ready to troubleshoot intermittent policy errors
57
+ // const cfnRole = this.identityCenterIamRole.node.defaultChild as CfnRole;
58
+ // cfnRole.addPropertyOverride("AssumeRolePolicyDocument", {
59
+ // Version: "2012-10-17",
60
+ // Statement: [
61
+ // {
62
+ // Effect: "Allow",
63
+ // Principal: {
64
+ // AWS: "*"
65
+ // },
66
+ // Action: "sts:AssumeRole"
67
+ // }
68
+ // ]
69
+ // });
70
+ }
34
71
  listIdentityCenterInstance() {
35
72
  const customResource = new awsCustomResource_1.AwsCustomResource(this, "listIdentityCenterInstance", {
36
73
  functionName: "listIdentityCenterInstance",
@@ -42,12 +79,17 @@ class IdentityCenter extends constructs_1.Construct {
42
79
  },
43
80
  physicalResourceId: customResources.PhysicalResourceId.of("listIdentityCenterInstance")
44
81
  },
45
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
46
- new aws_iam_1.PolicyStatement({
47
- actions: ["sso:ListInstances"],
48
- resources: ["*"]
49
- })
50
- ]),
82
+ role: this.identityCenterIamRole,
83
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
84
+ // policy: customResources.AwsCustomResourcePolicy.fromSdkCalls({
85
+ // resources: ["*"]
86
+ // }),
87
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
88
+ // new PolicyStatement({
89
+ // actions: ["sso:ListInstances"],
90
+ // resources: ["*"]
91
+ // })
92
+ // ]),
51
93
  resourceType: "Custom::IamIdentityCenter"
52
94
  });
53
95
  this.identityCenterArn = customResource.getResponseField("Instances.0.InstanceArn");
@@ -70,12 +112,14 @@ class IdentityCenter extends constructs_1.Construct {
70
112
  const group = new identityCenter_1.Group(this, `${name}Group`, {
71
113
  displayName: name,
72
114
  identityStoreId: this.identityStoreId,
73
- description: `Group for associated ${name} permission set`
115
+ description: `Group for associated ${name} permission set`,
116
+ role: this.identityCenterIamRole
74
117
  });
75
118
  const permissionSet = new identityCenter_1.PermissionSet(this, `PermissionSet${name}`, {
76
119
  name: name,
77
120
  instanceArn: this.identityCenterArn,
78
121
  description: config.Description,
122
+ role: this.identityCenterIamRole,
79
123
  tags: props.tags
80
124
  });
81
125
  permissionSet.node.addDependency(group);
@@ -84,7 +128,8 @@ class IdentityCenter extends constructs_1.Construct {
84
128
  instanceArn: this.identityCenterArn,
85
129
  permissionSet: name,
86
130
  permissionSetArn: permissionSet.getPermissionSetArn(),
87
- managedPolicyArn: config.Policy
131
+ managedPolicyArn: config.Policy,
132
+ role: this.identityCenterIamRole
88
133
  });
89
134
  attachManagedPolicy.node.addDependency(permissionSet);
90
135
  new cfnOutput_1.CfnOutput(this, `${name}GroupId`, {
@@ -94,16 +139,19 @@ class IdentityCenter extends constructs_1.Construct {
94
139
  });
95
140
  // Assign Groups to AWS Accounts
96
141
  for (const [accountName, accountId] of Object.entries(props.accounts)) {
142
+ const permissionSetArn = permissionSet.getPermissionSetArn();
143
+ const groupId = group.getGroupId();
97
144
  const assignment = new identityCenter_1.Assignment(this, `${(0, stripAndCamelCase_1.stripAndCamelCase)(accountName)}${permissionSet}Association`, {
98
145
  instanceArn: this.identityCenterArn,
99
- permissionSetArn: permissionSet.getPermissionSetArn(),
146
+ permissionSetArn: permissionSetArn,
100
147
  principalType: "GROUP",
101
- principalId: group.getGroupId(),
148
+ principalId: groupId,
102
149
  targetType: "AWS_ACCOUNT",
103
- targetId: accountId
150
+ targetId: accountId,
151
+ role: this.identityCenterIamRole
104
152
  });
105
153
  const sleep = new cdk_time_sleep_1.TimeSleep(this, `${(0, stripAndCamelCase_1.stripAndCamelCase)(accountName)}${permissionSet}assignmentSleep`, {
106
- destroyDuration: aws_cdk_lib_1.Duration.seconds(60)
154
+ destroyDuration: aws_cdk_lib_2.Duration.seconds(60)
107
155
  });
108
156
  sleep.node.addDependency(attachManagedPolicy);
109
157
  assignment.node.addDependency(sleep);
@@ -112,4 +160,4 @@ class IdentityCenter extends constructs_1.Construct {
112
160
  }
113
161
  }
114
162
  exports.IdentityCenter = IdentityCenter;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHlDZW50ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pZGVudGl0eUNlbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBQ3ZDLGlEQUFzRDtBQUN0RCx1RUFBb0U7QUFDcEUsdUZBQW9GO0FBRXBGLHFFQUFrRTtBQUNsRSwyRUFJZ0Q7QUFDaEQsb0dBQWlHO0FBQ2pHLG1EQUEyQztBQUMzQyw2Q0FBdUM7QUFZdkMsTUFBTSxxQkFBcUIsR0FBd0M7SUFDakUsbUJBQW1CLEVBQUU7UUFDbkIsTUFBTSxFQUFFLDZDQUE2QztRQUNyRCxXQUFXLEVBQUUsMERBQTBEO0tBQ3hFO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsTUFBTSxFQUFFLHdDQUF3QztRQUNoRCxXQUFXLEVBQUUscURBQXFEO0tBQ25FO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLGtEQUFrRDtRQUMxRCxXQUFXLEVBQUUsOENBQThDO0tBQzVEO0NBQ0YsQ0FBQztBQUVGLE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBSTNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixNQUFNLGNBQWMsR0FBRyxJQUFJLHFDQUFpQixDQUMxQyxJQUFJLEVBQ0osNEJBQTRCLEVBQzVCO1lBQ0UsWUFBWSxFQUFFLDRCQUE0QjtZQUMxQyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE1BQU0sRUFBRSxzQkFBc0I7Z0JBQzlCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUUsQ0FBQztpQkFDZDtn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RSxDQUFDO2dCQUN0RSxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFVLENBQy9CLElBQUksRUFDSixHQUFHLElBQUEscUNBQWlCLEVBQUMsV0FBVyxDQUFDLEdBQUcsYUFBYSxhQUFhLEVBQzlEO29CQUNFLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCO29CQUNuQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsbUJBQW1CLEVBQUU7b0JBQ3JELGFBQWEsRUFBRSxPQUFPO29CQUN0QixXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDL0IsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLFFBQVEsRUFBRSxTQUFTO2lCQUNwQixDQUNGLENBQUM7Z0JBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBUyxDQUN6QixJQUFJLEVBQ0osR0FBRyxJQUFBLHFDQUFpQixFQUFDLFdBQVcsQ0FBQyxHQUFHLGFBQWEsaUJBQWlCLEVBQ2xFO29CQUNFLGVBQWUsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7aUJBQ3RDLENBQ0YsQ0FBQztnQkFDRixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZIRCx3Q0F1SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2Nmbk91dHB1dFwiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBzdHJpcEFuZENhbWVsQ2FzZSB9IGZyb20gXCIuLi8uLi91dGlscy9zdHJpcEFuZENhbWVsQ2FzZVwiO1xuaW1wb3J0IHtcbiAgR3JvdXAsXG4gIFBlcm1pc3Npb25TZXQsXG4gIEFzc2lnbm1lbnRcbn0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtL2lkZW50aXR5Q2VudGVyXCI7XG5pbXBvcnQgeyBBdHRhY2hNYW5hZ2VkUG9saWN5IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtL2lkZW50aXR5Q2VudGVyL2F0dGFjaE1hbmFnZWRQb2xpY3lcIjtcbmltcG9ydCB7IFRpbWVTbGVlcCB9IGZyb20gXCJjZGstdGltZS1zbGVlcFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuaW50ZXJmYWNlIElkZW50aXR5Q2VudGVyUHJvcHMge1xuICBhY2NvdW50czogS2V5VmFsdWU7XG4gIHRhZ3M/OiBLZXlWYWx1ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25TZXRDb25maWcge1xuICBQb2xpY3k6IHN0cmluZztcbiAgRGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGRlZmF1bHRQZXJtaXNzaW9uU2V0czogUmVjb3JkPHN0cmluZywgUGVybWlzc2lvblNldENvbmZpZz4gPSB7XG4gIEFkbWluaXN0cmF0b3JBY2Nlc3M6IHtcbiAgICBQb2xpY3k6IFwiYXJuOmF3czppYW06OmF3czpwb2xpY3kvQWRtaW5pc3RyYXRvckFjY2Vzc1wiLFxuICAgIERlc2NyaXB0aW9uOiBcIlBlcm1pc3Npb24gc2V0IGZvciBhc3NvY2lhdGVkIEFkbWluaXN0cmF0b3JBY2Nlc3MgcG9saWN5XCJcbiAgfSxcbiAgUmVhZE9ubHlBY2Nlc3M6IHtcbiAgICBQb2xpY3k6IFwiYXJuOmF3czppYW06OmF3czpwb2xpY3kvUmVhZE9ubHlBY2Nlc3NcIixcbiAgICBEZXNjcmlwdGlvbjogXCJQZXJtaXNzaW9uIHNldCBmb3IgYXNzb2NpYXRlZCBSZWFkT25seUFjY2VzcyBwb2xpY3lcIlxuICB9LFxuICBCaWxsaW5nOiB7XG4gICAgUG9saWN5OiBcImFybjphd3M6aWFtOjphd3M6cG9saWN5L0FXU0JpbGxpbmdSZWFkT25seUFjY2Vzc1wiLFxuICAgIERlc2NyaXB0aW9uOiBcIlBlcm1pc3Npb24gc2V0IGZvciBhc3NvY2lhdGVkIEJpbGxpbmcgcG9saWN5XCJcbiAgfVxufTtcblxuZXhwb3J0IGNsYXNzIElkZW50aXR5Q2VudGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIGlkZW50aXR5U3RvcmVJZDogc3RyaW5nO1xuICBwdWJsaWMgaWRlbnRpdHlDZW50ZXJBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWRlbnRpdHlDZW50ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlKCk7XG4gICAgdGhpcy5jcmVhdGVQZXJtaXNzaW9uU2V0KHByb3BzKTtcbiAgfVxuXG4gIGxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlKCkge1xuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwibGlzdElkZW50aXR5Q2VudGVySW5zdGFuY2VcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBcImxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlXCIsXG4gICAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJzc28tYWRtaW5cIixcbiAgICAgICAgICBhY3Rpb246IFwiTGlzdEluc3RhbmNlc0NvbW1hbmRcIixcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBNYXhSZXN1bHRzOiAxXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICBcImxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlXCJcbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcInNzbzpMaXN0SW5zdGFuY2VzXCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OklhbUlkZW50aXR5Q2VudGVyXCJcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5pZGVudGl0eUNlbnRlckFybiA9IGN1c3RvbVJlc291cmNlLmdldFJlc3BvbnNlRmllbGQoXG4gICAgICBcIkluc3RhbmNlcy4wLkluc3RhbmNlQXJuXCJcbiAgICApO1xuICAgIHRoaXMuaWRlbnRpdHlTdG9yZUlkID0gY3VzdG9tUmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZChcbiAgICAgIFwiSW5zdGFuY2VzLjAuSWRlbnRpdHlTdG9yZUlkXCJcbiAgICApO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJpZGVudGl0eUNlbnRlckFyblwiLCB7XG4gICAgICBrZXk6IFwiaWRlbnRpdHlDZW50ZXJBcm5cIixcbiAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5Q2VudGVyQXJuLFxuICAgICAgZXhwb3J0TmFtZTogXCJpZGVudGl0eUNlbnRlckFyblwiXG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImlkZW50aXR5U3RvcmVJZFwiLCB7XG4gICAgICBrZXk6IFwiaWRlbnRpdHlTdG9yZUlEXCIsXG4gICAgICB2YWx1ZTogdGhpcy5pZGVudGl0eVN0b3JlSWQsXG4gICAgICBleHBvcnROYW1lOiBcImlkZW50aXR5U3RvcmVJZFwiXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVQZXJtaXNzaW9uU2V0KHByb3BzOiBJZGVudGl0eUNlbnRlclByb3BzKSB7XG4gICAgLy8gQ3JlYXRlIHBlcm1pc3Npb24gc2V0c1xuICAgIGZvciAoY29uc3QgW25hbWUsIGNvbmZpZ10gb2YgT2JqZWN0LmVudHJpZXMoZGVmYXVsdFBlcm1pc3Npb25TZXRzKSkge1xuICAgICAgLy8gQ3JlYXRlIEdyb3Vwc1xuICAgICAgY29uc3QgZ3JvdXAgPSBuZXcgR3JvdXAodGhpcywgYCR7bmFtZX1Hcm91cGAsIHtcbiAgICAgICAgZGlzcGxheU5hbWU6IG5hbWUsXG4gICAgICAgIGlkZW50aXR5U3RvcmVJZDogdGhpcy5pZGVudGl0eVN0b3JlSWQsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgR3JvdXAgZm9yIGFzc29jaWF0ZWQgJHtuYW1lfSBwZXJtaXNzaW9uIHNldGBcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwZXJtaXNzaW9uU2V0ID0gbmV3IFBlcm1pc3Npb25TZXQodGhpcywgYFBlcm1pc3Npb25TZXQke25hbWV9YCwge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICBpbnN0YW5jZUFybjogdGhpcy5pZGVudGl0eUNlbnRlckFybixcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbmZpZy5EZXNjcmlwdGlvbixcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfSk7XG4gICAgICBwZXJtaXNzaW9uU2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShncm91cCk7XG5cbiAgICAgIC8vIEF0dGFjaCBQb2xpY2llcyB0byBQZXJtaXNzaW9uIFNldHNcbiAgICAgIGNvbnN0IGF0dGFjaE1hbmFnZWRQb2xpY3kgPSBuZXcgQXR0YWNoTWFuYWdlZFBvbGljeShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYEF0dGFjaE1hbmFnZWRQb2xpY3kke25hbWV9YCxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlQXJuOiB0aGlzLmlkZW50aXR5Q2VudGVyQXJuLFxuICAgICAgICAgIHBlcm1pc3Npb25TZXQ6IG5hbWUsXG4gICAgICAgICAgcGVybWlzc2lvblNldEFybjogcGVybWlzc2lvblNldC5nZXRQZXJtaXNzaW9uU2V0QXJuKCksXG4gICAgICAgICAgbWFuYWdlZFBvbGljeUFybjogY29uZmlnLlBvbGljeVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgYXR0YWNoTWFuYWdlZFBvbGljeS5ub2RlLmFkZERlcGVuZGVuY3kocGVybWlzc2lvblNldCk7XG5cbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7bmFtZX1Hcm91cElkYCwge1xuICAgICAgICBrZXk6IGAke25hbWV9R3JvdXBJZGAsXG4gICAgICAgIHZhbHVlOiBncm91cC5nZXRHcm91cElkKCksXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke25hbWV9R3JvdXBJZGBcbiAgICAgIH0pO1xuXG4gICAgICAvLyBBc3NpZ24gR3JvdXBzIHRvIEFXUyBBY2NvdW50c1xuICAgICAgZm9yIChjb25zdCBbYWNjb3VudE5hbWUsIGFjY291bnRJZF0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMuYWNjb3VudHMpKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgQXNzaWdubWVudChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3N0cmlwQW5kQ2FtZWxDYXNlKGFjY291bnROYW1lKX0ke3Blcm1pc3Npb25TZXR9QXNzb2NpYXRpb25gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGluc3RhbmNlQXJuOiB0aGlzLmlkZW50aXR5Q2VudGVyQXJuLFxuICAgICAgICAgICAgcGVybWlzc2lvblNldEFybjogcGVybWlzc2lvblNldC5nZXRQZXJtaXNzaW9uU2V0QXJuKCksXG4gICAgICAgICAgICBwcmluY2lwYWxUeXBlOiBcIkdST1VQXCIsXG4gICAgICAgICAgICBwcmluY2lwYWxJZDogZ3JvdXAuZ2V0R3JvdXBJZCgpLFxuICAgICAgICAgICAgdGFyZ2V0VHlwZTogXCJBV1NfQUNDT1VOVFwiLFxuICAgICAgICAgICAgdGFyZ2V0SWQ6IGFjY291bnRJZFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzbGVlcCA9IG5ldyBUaW1lU2xlZXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgJHtzdHJpcEFuZENhbWVsQ2FzZShhY2NvdW50TmFtZSl9JHtwZXJtaXNzaW9uU2V0fWFzc2lnbm1lbnRTbGVlcGAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVzdHJveUR1cmF0aW9uOiBEdXJhdGlvbi5zZWNvbmRzKDYwKVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2xlZXAubm9kZS5hZGREZXBlbmRlbmN5KGF0dGFjaE1hbmFnZWRQb2xpY3kpO1xuICAgICAgICBhc3NpZ25tZW50Lm5vZGUuYWRkRGVwZW5kZW5jeShzbGVlcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHlDZW50ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pZGVudGl0eUNlbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBZ0U7QUFFaEUsaURBSzZCO0FBQzdCLDZDQUE0RDtBQUM1RCx1RUFBb0U7QUFDcEUsdUZBQW9GO0FBRXBGLHFFQUFrRTtBQUNsRSwyRUFJZ0Q7QUFDaEQsb0dBQWlHO0FBQ2pHLG1EQUEyQztBQUMzQyw2Q0FBdUM7QUFDdkMsaURBQThEO0FBWTlELE1BQU0scUJBQXFCLEdBQXdDO0lBQ2pFLG1CQUFtQixFQUFFO1FBQ25CLE1BQU0sRUFBRSw2Q0FBNkM7UUFDckQsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSx3Q0FBd0M7UUFDaEQsV0FBVyxFQUFFLHFEQUFxRDtLQUNuRTtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxrREFBa0Q7UUFDMUQsV0FBVyxFQUFFLDhDQUE4QztLQUM1RDtDQUNGLENBQUM7QUFFRixNQUFhLGNBQWUsU0FBUSx5QkFBVztJQUs3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLHNHQUFzRztRQUN0RyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxVQUFJLENBQ25DLElBQUksRUFDSixrQ0FBa0MsRUFDbEM7WUFDRSxTQUFTLEVBQUUsSUFBSSwwQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUN2RCxXQUFX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QVUsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFVLENBQy9CLElBQUksRUFDSixHQUFHLElBQUEscUNBQWlCLEVBQUMsV0FBVyxDQUFDLEdBQUcsYUFBYSxhQUFhLEVBQzlEO29CQUNFLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCO29CQUNuQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7b0JBQ2xDLGFBQWEsRUFBRSxPQUFPO29CQUN0QixXQUFXLEVBQUUsT0FBTztvQkFDcEIsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLFFBQVEsRUFBRSxTQUFTO29CQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtpQkFDakMsQ0FDRixDQUFDO2dCQUVGLE1BQU0sS0FBSyxHQUFHLElBQUksMEJBQVMsQ0FDekIsSUFBSSxFQUNKLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxXQUFXLENBQUMsR0FBRyxhQUFhLGlCQUFpQixFQUNsRTtvQkFDRSxlQUFlLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2lCQUN0QyxDQUNGLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDOUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFoTEQsd0NBZ0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ2ZuUm9sZSxcbiAgUG9saWN5RG9jdW1lbnQsXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgU2VydmljZVByaW5jaXBhbFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgTmVzdGVkU3RhY2ssIE5lc3RlZFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jZm5PdXRwdXRcIjtcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2F3c0N1c3RvbVJlc291cmNlXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgc3RyaXBBbmRDYW1lbENhc2UgfSBmcm9tIFwiLi4vLi4vdXRpbHMvc3RyaXBBbmRDYW1lbENhc2VcIjtcbmltcG9ydCB7XG4gIEdyb3VwLFxuICBQZXJtaXNzaW9uU2V0LFxuICBBc3NpZ25tZW50XG59IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlclwiO1xuaW1wb3J0IHsgQXR0YWNoTWFuYWdlZFBvbGljeSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9hdHRhY2hNYW5hZ2VkUG9saWN5XCI7XG5pbXBvcnQgeyBUaW1lU2xlZXAgfSBmcm9tIFwiY2RrLXRpbWUtc2xlZXBcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBNYW5hZ2VkUG9saWN5LCBSb2xlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtXCI7XG5cbmludGVyZmFjZSBJZGVudGl0eUNlbnRlclByb3BzIGV4dGVuZHMgTmVzdGVkU3RhY2tQcm9wcyB7XG4gIGFjY291bnRzOiBLZXlWYWx1ZTtcbiAgdGFncz86IEtleVZhbHVlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvblNldENvbmZpZyB7XG4gIFBvbGljeTogc3RyaW5nO1xuICBEZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuY29uc3QgZGVmYXVsdFBlcm1pc3Npb25TZXRzOiBSZWNvcmQ8c3RyaW5nLCBQZXJtaXNzaW9uU2V0Q29uZmlnPiA9IHtcbiAgQWRtaW5pc3RyYXRvckFjY2Vzczoge1xuICAgIFBvbGljeTogXCJhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9BZG1pbmlzdHJhdG9yQWNjZXNzXCIsXG4gICAgRGVzY3JpcHRpb246IFwiUGVybWlzc2lvbiBzZXQgZm9yIGFzc29jaWF0ZWQgQWRtaW5pc3RyYXRvckFjY2VzcyBwb2xpY3lcIlxuICB9LFxuICBSZWFkT25seUFjY2Vzczoge1xuICAgIFBvbGljeTogXCJhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9SZWFkT25seUFjY2Vzc1wiLFxuICAgIERlc2NyaXB0aW9uOiBcIlBlcm1pc3Npb24gc2V0IGZvciBhc3NvY2lhdGVkIFJlYWRPbmx5QWNjZXNzIHBvbGljeVwiXG4gIH0sXG4gIEJpbGxpbmc6IHtcbiAgICBQb2xpY3k6IFwiYXJuOmF3czppYW06OmF3czpwb2xpY3kvQVdTQmlsbGluZ1JlYWRPbmx5QWNjZXNzXCIsXG4gICAgRGVzY3JpcHRpb246IFwiUGVybWlzc2lvbiBzZXQgZm9yIGFzc29jaWF0ZWQgQmlsbGluZyBwb2xpY3lcIlxuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlDZW50ZXIgZXh0ZW5kcyBOZXN0ZWRTdGFjayB7XG4gIHB1YmxpYyBpZGVudGl0eVN0b3JlSWQ6IHN0cmluZztcbiAgcHVibGljIGlkZW50aXR5Q2VudGVyQXJuOiBzdHJpbmc7XG4gIHByaXZhdGUgaWRlbnRpdHlDZW50ZXJJYW1Sb2xlOiBSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJZGVudGl0eUNlbnRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmNyZWF0ZUlkZW50aXR5Q2VudGVySWFtUm9sZSgpO1xuICAgIHRoaXMubGlzdElkZW50aXR5Q2VudGVySW5zdGFuY2UoKTtcbiAgICB0aGlzLmNyZWF0ZVBlcm1pc3Npb25TZXQocHJvcHMpO1xuICB9XG5cbiAgY3JlYXRlSWRlbnRpdHlDZW50ZXJJYW1Sb2xlKCkge1xuICAgIC8vIFJlbW92ZSB0aGlzIHJvbGUsIG9yIHVwZGF0ZSBwZXJtaXNzaW9ucyB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgIHRoaXMuaWRlbnRpdHlDZW50ZXJJYW1Sb2xlID0gbmV3IFJvbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJJZGVudGl0eUNlbnRlckN1c3RvbVJlc291cmNlUm9sZVwiLFxuICAgICAge1xuICAgICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwibGFtYmRhLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlNoYXJlZCByb2xlIGZvciBhbGwgSWRlbnRpdHkgQ2VudGVyIEF3c0N1c3RvbVJlc291cmNlc1wiLFxuICAgICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICAgIFwic2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZVwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICAgIFwiQVdTU1NPTWFzdGVyQWNjb3VudEFkbWluaXN0cmF0b3JcIlxuICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgICBJZGVudGl0eUNlbnRlckN1c3RvbVJlc291cmNlUG9saWN5OiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJzc286KlwiLCBcImlhbToqXCJdLFxuICAgICAgICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICAgIC8vIFJlbW92ZSB0aGlzIHJvbGUsIG9yIHVwZGF0ZSBwZXJtaXNzaW9ucyB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgIC8vIGNvbnN0IGNmblJvbGUgPSB0aGlzLmlkZW50aXR5Q2VudGVySWFtUm9sZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5Sb2xlO1xuICAgIC8vIGNmblJvbGUuYWRkUHJvcGVydHlPdmVycmlkZShcIkFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudFwiLCB7XG4gICAgLy8gICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIixcbiAgICAvLyAgIFN0YXRlbWVudDogW1xuICAgIC8vICAgICB7XG4gICAgLy8gICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgLy8gICAgICAgUHJpbmNpcGFsOiB7XG4gICAgLy8gICAgICAgICBBV1M6IFwiKlwiXG4gICAgLy8gICAgICAgfSxcbiAgICAvLyAgICAgICBBY3Rpb246IFwic3RzOkFzc3VtZVJvbGVcIlxuICAgIC8vICAgICB9XG4gICAgLy8gICBdXG4gICAgLy8gfSk7XG4gIH1cblxuICBsaXN0SWRlbnRpdHlDZW50ZXJJbnN0YW5jZSgpIHtcbiAgICBjb25zdCBjdXN0b21SZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICBcImxpc3RJZGVudGl0eUNlbnRlckluc3RhbmNlXCIsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uTmFtZTogXCJsaXN0SWRlbnRpdHlDZW50ZXJJbnN0YW5jZVwiLFxuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgICAgYWN0aW9uOiBcIkxpc3RJbnN0YW5jZXNDb21tYW5kXCIsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgTWF4UmVzdWx0czogMVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgICAgXCJsaXN0SWRlbnRpdHlDZW50ZXJJbnN0YW5jZVwiXG4gICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICByb2xlOiB0aGlzLmlkZW50aXR5Q2VudGVySWFtUm9sZSxcbiAgICAgICAgLy8gVE9ETzogTG9jayBkb3duIHBlcm1pc3Npb25zLCB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgICAgICAvLyBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAvLyAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICAvLyB9KSxcbiAgICAgICAgLy8gcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICAvLyAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAvLyAgICAgYWN0aW9uczogW1wic3NvOkxpc3RJbnN0YW5jZXNcIl0sXG4gICAgICAgIC8vICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgICAgLy8gICB9KVxuICAgICAgICAvLyBdKSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6SWFtSWRlbnRpdHlDZW50ZXJcIlxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmlkZW50aXR5Q2VudGVyQXJuID0gY3VzdG9tUmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZChcbiAgICAgIFwiSW5zdGFuY2VzLjAuSW5zdGFuY2VBcm5cIlxuICAgICk7XG4gICAgdGhpcy5pZGVudGl0eVN0b3JlSWQgPSBjdXN0b21SZXNvdXJjZS5nZXRSZXNwb25zZUZpZWxkKFxuICAgICAgXCJJbnN0YW5jZXMuMC5JZGVudGl0eVN0b3JlSWRcIlxuICAgICk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcImlkZW50aXR5Q2VudGVyQXJuXCIsIHtcbiAgICAgIGtleTogXCJpZGVudGl0eUNlbnRlckFyblwiLFxuICAgICAgdmFsdWU6IHRoaXMuaWRlbnRpdHlDZW50ZXJBcm4sXG4gICAgICBleHBvcnROYW1lOiBcImlkZW50aXR5Q2VudGVyQXJuXCJcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaWRlbnRpdHlTdG9yZUlkXCIsIHtcbiAgICAgIGtleTogXCJpZGVudGl0eVN0b3JlSURcIixcbiAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5U3RvcmVJZCxcbiAgICAgIGV4cG9ydE5hbWU6IFwiaWRlbnRpdHlTdG9yZUlkXCJcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBlcm1pc3Npb25TZXQocHJvcHM6IElkZW50aXR5Q2VudGVyUHJvcHMpIHtcbiAgICAvLyBDcmVhdGUgcGVybWlzc2lvbiBzZXRzXG4gICAgZm9yIChjb25zdCBbbmFtZSwgY29uZmlnXSBvZiBPYmplY3QuZW50cmllcyhkZWZhdWx0UGVybWlzc2lvblNldHMpKSB7XG4gICAgICAvLyBDcmVhdGUgR3JvdXBzXG4gICAgICBjb25zdCBncm91cCA9IG5ldyBHcm91cCh0aGlzLCBgJHtuYW1lfUdyb3VwYCwge1xuICAgICAgICBkaXNwbGF5TmFtZTogbmFtZSxcbiAgICAgICAgaWRlbnRpdHlTdG9yZUlkOiB0aGlzLmlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgZGVzY3JpcHRpb246IGBHcm91cCBmb3IgYXNzb2NpYXRlZCAke25hbWV9IHBlcm1pc3Npb24gc2V0YCxcbiAgICAgICAgcm9sZTogdGhpcy5pZGVudGl0eUNlbnRlcklhbVJvbGVcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwZXJtaXNzaW9uU2V0ID0gbmV3IFBlcm1pc3Npb25TZXQodGhpcywgYFBlcm1pc3Npb25TZXQke25hbWV9YCwge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICBpbnN0YW5jZUFybjogdGhpcy5pZGVudGl0eUNlbnRlckFybixcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbmZpZy5EZXNjcmlwdGlvbixcbiAgICAgICAgcm9sZTogdGhpcy5pZGVudGl0eUNlbnRlcklhbVJvbGUsXG4gICAgICAgIHRhZ3M6IHByb3BzLnRhZ3NcbiAgICAgIH0pO1xuICAgICAgcGVybWlzc2lvblNldC5ub2RlLmFkZERlcGVuZGVuY3koZ3JvdXApO1xuXG4gICAgICAvLyBBdHRhY2ggUG9saWNpZXMgdG8gUGVybWlzc2lvbiBTZXRzXG4gICAgICBjb25zdCBhdHRhY2hNYW5hZ2VkUG9saWN5ID0gbmV3IEF0dGFjaE1hbmFnZWRQb2xpY3koXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGBBdHRhY2hNYW5hZ2VkUG9saWN5JHtuYW1lfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUFybjogdGhpcy5pZGVudGl0eUNlbnRlckFybixcbiAgICAgICAgICBwZXJtaXNzaW9uU2V0OiBuYW1lLFxuICAgICAgICAgIHBlcm1pc3Npb25TZXRBcm46IHBlcm1pc3Npb25TZXQuZ2V0UGVybWlzc2lvblNldEFybigpLFxuICAgICAgICAgIG1hbmFnZWRQb2xpY3lBcm46IGNvbmZpZy5Qb2xpY3ksXG4gICAgICAgICAgcm9sZTogdGhpcy5pZGVudGl0eUNlbnRlcklhbVJvbGVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGF0dGFjaE1hbmFnZWRQb2xpY3kubm9kZS5hZGREZXBlbmRlbmN5KHBlcm1pc3Npb25TZXQpO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke25hbWV9R3JvdXBJZGAsIHtcbiAgICAgICAga2V5OiBgJHtuYW1lfUdyb3VwSWRgLFxuICAgICAgICB2YWx1ZTogZ3JvdXAuZ2V0R3JvdXBJZCgpLFxuICAgICAgICBleHBvcnROYW1lOiBgJHtuYW1lfUdyb3VwSWRgXG4gICAgICB9KTtcblxuICAgICAgLy8gQXNzaWduIEdyb3VwcyB0byBBV1MgQWNjb3VudHNcbiAgICAgIGZvciAoY29uc3QgW2FjY291bnROYW1lLCBhY2NvdW50SWRdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzLmFjY291bnRzKSkge1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9uU2V0QXJuID0gcGVybWlzc2lvblNldC5nZXRQZXJtaXNzaW9uU2V0QXJuKCk7XG4gICAgICAgIGNvbnN0IGdyb3VwSWQgPSBncm91cC5nZXRHcm91cElkKCk7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgQXNzaWdubWVudChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3N0cmlwQW5kQ2FtZWxDYXNlKGFjY291bnROYW1lKX0ke3Blcm1pc3Npb25TZXR9QXNzb2NpYXRpb25gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGluc3RhbmNlQXJuOiB0aGlzLmlkZW50aXR5Q2VudGVyQXJuLFxuICAgICAgICAgICAgcGVybWlzc2lvblNldEFybjogcGVybWlzc2lvblNldEFybixcbiAgICAgICAgICAgIHByaW5jaXBhbFR5cGU6IFwiR1JPVVBcIixcbiAgICAgICAgICAgIHByaW5jaXBhbElkOiBncm91cElkLFxuICAgICAgICAgICAgdGFyZ2V0VHlwZTogXCJBV1NfQUNDT1VOVFwiLFxuICAgICAgICAgICAgdGFyZ2V0SWQ6IGFjY291bnRJZCxcbiAgICAgICAgICAgIHJvbGU6IHRoaXMuaWRlbnRpdHlDZW50ZXJJYW1Sb2xlXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHNsZWVwID0gbmV3IFRpbWVTbGVlcChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3N0cmlwQW5kQ2FtZWxDYXNlKGFjY291bnROYW1lKX0ke3Blcm1pc3Npb25TZXR9YXNzaWdubWVudFNsZWVwYCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXN0cm95RHVyYXRpb246IER1cmF0aW9uLnNlY29uZHMoNjApXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBzbGVlcC5ub2RlLmFkZERlcGVuZGVuY3koYXR0YWNoTWFuYWdlZFBvbGljeSk7XG4gICAgICAgIGFzc2lnbm1lbnQubm9kZS5hZGREZXBlbmRlbmN5KHNsZWVwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Environment, Stack, StackProps } from "aws-cdk-lib";
2
+ import { ICostAllocationTags } from "../../config/aws/costAllocationTags";
2
3
  import { Account } from "@aws-sdk/client-organizations";
3
4
  type ExtendedStackProps = Omit<StackProps, "env"> & {
4
5
  env: Required<Pick<Environment, "region" | "account">> & Partial<Omit<Environment, "region" | "account">>;
@@ -9,6 +10,7 @@ interface ManagedOrganisationProps extends ExtendedStackProps {
9
10
  platformAccount: string;
10
11
  orgEmail: string;
11
12
  existingAccounts?: Account[];
13
+ costAllocationTags: ICostAllocationTags[];
12
14
  identityCenter?: boolean;
13
15
  }
14
16
  export declare class ManagedOrganisation extends Stack {
@@ -39,7 +39,7 @@ class ManagedOrganisation extends aws_cdk_lib_1.Stack {
39
39
  this.setupIpamDelegation(orgAccounts, props);
40
40
  this.enableRamSharing();
41
41
  this.enableTrustedAccess(props);
42
- this.enableCostAllocationTags();
42
+ this.enableCostAllocationTags(props);
43
43
  this.setupIdentityCenter(orgAccounts, props);
44
44
  }
45
45
  setupIpamDelegation(orgAccounts, props) {
@@ -56,8 +56,12 @@ class ManagedOrganisation extends aws_cdk_lib_1.Stack {
56
56
  region: props.env.region
57
57
  });
58
58
  }
59
- enableCostAllocationTags() {
60
- new costAllocationTags_1.CostAllocationTags(this, "CostAllocationTags");
59
+ enableCostAllocationTags(props) {
60
+ if (props.costAllocationTags.length > 0) {
61
+ new costAllocationTags_1.CostAllocationTags(this, "CostAllocationTags", {
62
+ costAllocationTags: props.costAllocationTags
63
+ });
64
+ }
61
65
  }
62
66
  setupIdentityCenter(orgAccounts, props) {
63
67
  if (props.identityCenter) {
@@ -68,4 +72,4 @@ class ManagedOrganisation extends aws_cdk_lib_1.Stack {
68
72
  }
69
73
  }
70
74
  exports.ManagedOrganisation = ManagedOrganisation;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZE9yZ2FuaXNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvbWFuYWdlZE9yZ2FuaXNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkQ7QUFFN0QsbUNBQTRCO0FBRTVCLG9FQUFpRTtBQUNqRSwwRUFBdUU7QUFDdkUsNERBQXlEO0FBQ3pELDRFQUF5RTtBQUN6RSxnRUFBeUQ7QUFFekQsOEVBQW1GO0FBZ0JuRixNQUFhLG1CQUFvQixTQUFRLG1CQUFLO0lBRzVDLFlBQVksRUFBVSxFQUFFLEtBQStCO1FBQ3JELEtBQUssQ0FBQyxhQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztZQUM3QixHQUFHLEtBQUs7WUFDUixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUErQjtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FDYixxQkFDRSxLQUFLLENBQUMsZUFDUix5REFBeUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzdFLElBQUksQ0FDTCxFQUFFLENBQ0osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsRUFBVSxFQUFFLEtBQStCO1FBQ3BFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxzQkFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDN0MsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxLQUErQjtRQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLG1CQUFtQixDQUN6QixXQUFtQyxFQUNuQyxLQUErQjtRQUUvQixJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUMvQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLHVCQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUErQjtRQUN6RCxJQUFJLGlEQUEyQixDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRTtZQUNuRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPO1lBQzFCLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLHVDQUFrQixDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsV0FBbUMsRUFDbkMsS0FBK0I7UUFFL0IsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsSUFBSSwrQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDekMsUUFBUSxFQUFFLFdBQVc7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWhGRCxrREFnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuaW1wb3J0IEFwcCBmcm9tIFwiLi4vLi4vYXBwXCI7XG5cbmltcG9ydCB7IElkZW50aXR5Q2VudGVyIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvaWRlbnRpdHlDZW50ZXJcIjtcbmltcG9ydCB7IElwYW1EZWxlZ2F0ZUFkbWluIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvaXBhbURlbGVnYXRlQWRtaW5cIjtcbmltcG9ydCB7IFJhbVNoYXJpbmcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3cy9yYW1TaGFyaW5nXCI7XG5pbXBvcnQgeyBDb3N0QWxsb2NhdGlvblRhZ3MgfSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3cy9jb3N0QWxsb2NhdGlvblRhZ3NcIjtcbmltcG9ydCBPcmdhbmlzYXRpb24gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3Mvb3JnYW5pc2F0aW9uXCI7XG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1vcmdhbml6YXRpb25zXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZU9yZ2FuaXNhdGlvbnNBY2Nlc3MgfSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3cy9vcmdhbmlzYXRpb25zQWNjZXNzXCI7XG5cbnR5cGUgRXh0ZW5kZWRTdGFja1Byb3BzID0gT21pdDxTdGFja1Byb3BzLCBcImVudlwiPiAmIHtcbiAgZW52OiBSZXF1aXJlZDxQaWNrPEVudmlyb25tZW50LCBcInJlZ2lvblwiIHwgXCJhY2NvdW50XCI+PiAmXG4gICAgUGFydGlhbDxPbWl0PEVudmlyb25tZW50LCBcInJlZ2lvblwiIHwgXCJhY2NvdW50XCI+Pjtcbn07XG5cbmludGVyZmFjZSBNYW5hZ2VkT3JnYW5pc2F0aW9uUHJvcHMgZXh0ZW5kcyBFeHRlbmRlZFN0YWNrUHJvcHMge1xuICBvcmdhbmlzYXRpb25OYW1lOiBzdHJpbmc7XG4gIG9yZ0FjY291bnRzOiBzdHJpbmdbXTtcbiAgcGxhdGZvcm1BY2NvdW50OiBzdHJpbmc7XG4gIG9yZ0VtYWlsOiBzdHJpbmc7XG4gIGV4aXN0aW5nQWNjb3VudHM/OiBBY2NvdW50W107XG4gIGlkZW50aXR5Q2VudGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE1hbmFnZWRPcmdhbmlzYXRpb24gZXh0ZW5kcyBTdGFjayB7XG4gIHByaXZhdGUgb3JnYW5pc2F0aW9uOiBPcmdhbmlzYXRpb247XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcHJvcHM6IE1hbmFnZWRPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKEFwcC5nZXRJbnN0YW5jZSgpLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudmFsaWRhdGVQbGF0Zm9ybUFjY291bnQocHJvcHMpO1xuICAgIHRoaXMuY3JlYXRlT3JnYW5pc2F0aW9uKGlkLCBwcm9wcyk7XG4gICAgdGhpcy5zZXR1cE9yZ2FuaXNhdGlvbkZlYXR1cmVzKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgaWRlbnRpdHlDZW50ZXI6IHByb3BzLmlkZW50aXR5Q2VudGVyID8/IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVQbGF0Zm9ybUFjY291bnQocHJvcHM6IE1hbmFnZWRPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIGlmICghcHJvcHMub3JnQWNjb3VudHMuaW5jbHVkZXMocHJvcHMucGxhdGZvcm1BY2NvdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUGxhdGZvcm0gYWNjb3VudCBcIiR7XG4gICAgICAgICAgcHJvcHMucGxhdGZvcm1BY2NvdW50XG4gICAgICAgIH1cIiBpcyBub3QgbGlzdGVkIGluIGFjY291bnQgbmFtZXMuIFZhbGlkIGFjY291bnRzIGFyZTogJHtwcm9wcy5vcmdBY2NvdW50cy5qb2luKFxuICAgICAgICAgIFwiLCBcIlxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPcmdhbmlzYXRpb24oaWQ6IHN0cmluZywgcHJvcHM6IE1hbmFnZWRPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIHRoaXMub3JnYW5pc2F0aW9uID0gbmV3IE9yZ2FuaXNhdGlvbih0aGlzLCBpZCwge1xuICAgICAgb3JnYW5pc2F0aW9uTmFtZTogcHJvcHMub3JnYW5pc2F0aW9uTmFtZSxcbiAgICAgIG9yZ0FjY291bnRzOiBwcm9wcy5vcmdBY2NvdW50cyxcbiAgICAgIHBsYXRmb3JtQWNjb3VudDogcHJvcHMucGxhdGZvcm1BY2NvdW50LFxuICAgICAgb3JnRW1haWw6IHByb3BzLm9yZ0VtYWlsLFxuICAgICAgZW52OiBwcm9wcy5lbnYsXG4gICAgICBleGlzdGluZ0FjY291bnRzOiBwcm9wcy5leGlzdGluZ0FjY291bnRzXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwT3JnYW5pc2F0aW9uRmVhdHVyZXMocHJvcHM6IE1hbmFnZWRPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIGNvbnN0IG9yZ0FjY291bnRzID0gdGhpcy5vcmdhbmlzYXRpb24uZ2V0QWNjb3VudHMoKTtcblxuICAgIHRoaXMuc2V0dXBJcGFtRGVsZWdhdGlvbihvcmdBY2NvdW50cywgcHJvcHMpO1xuICAgIHRoaXMuZW5hYmxlUmFtU2hhcmluZygpO1xuICAgIHRoaXMuZW5hYmxlVHJ1c3RlZEFjY2Vzcyhwcm9wcyk7XG4gICAgdGhpcy5lbmFibGVDb3N0QWxsb2NhdGlvblRhZ3MoKTtcbiAgICB0aGlzLnNldHVwSWRlbnRpdHlDZW50ZXIob3JnQWNjb3VudHMsIHByb3BzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBJcGFtRGVsZWdhdGlvbihcbiAgICBvcmdBY2NvdW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzXG4gICkge1xuICAgIG5ldyBJcGFtRGVsZWdhdGVBZG1pbih0aGlzLCBcIklwYW1EZWxlZ2F0ZUFkbWluXCIsIHtcbiAgICAgIGFjY291bnRJZDogb3JnQWNjb3VudHNbcHJvcHMucGxhdGZvcm1BY2NvdW50XVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVSYW1TaGFyaW5nKCkge1xuICAgIG5ldyBSYW1TaGFyaW5nKHRoaXMsIFwiUmFtU2hhcmluZ1wiKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlVHJ1c3RlZEFjY2Vzcyhwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzKSB7XG4gICAgbmV3IEFjdGl2YXRlT3JnYW5pc2F0aW9uc0FjY2Vzcyh0aGlzLCBcIkFjdGl2YXRlT3JnYW5pc2F0aW9uc0FjY2Vzc1wiLCB7XG4gICAgICBhY2NvdW50OiBwcm9wcy5lbnYuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogcHJvcHMuZW52LnJlZ2lvblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVDb3N0QWxsb2NhdGlvblRhZ3MoKSB7XG4gICAgbmV3IENvc3RBbGxvY2F0aW9uVGFncyh0aGlzLCBcIkNvc3RBbGxvY2F0aW9uVGFnc1wiKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBJZGVudGl0eUNlbnRlcihcbiAgICBvcmdBY2NvdW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzXG4gICkge1xuICAgIGlmIChwcm9wcy5pZGVudGl0eUNlbnRlcikge1xuICAgICAgbmV3IElkZW50aXR5Q2VudGVyKHRoaXMsIFwiSWRlbnRpdHlDZW50ZXJcIiwge1xuICAgICAgICBhY2NvdW50czogb3JnQWNjb3VudHNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZE9yZ2FuaXNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvbWFuYWdlZE9yZ2FuaXNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkQ7QUFFN0QsbUNBQTRCO0FBRTVCLG9FQUFpRTtBQUNqRSwwRUFBdUU7QUFDdkUsNERBQXlEO0FBQ3pELDRFQUc2QztBQUM3QyxnRUFBeUQ7QUFFekQsOEVBQW1GO0FBaUJuRixNQUFhLG1CQUFvQixTQUFRLG1CQUFLO0lBRzVDLFlBQVksRUFBVSxFQUFFLEtBQStCO1FBQ3JELEtBQUssQ0FBQyxhQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztZQUM3QixHQUFHLEtBQUs7WUFDUixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUErQjtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FDYixxQkFDRSxLQUFLLENBQUMsZUFDUix5REFBeUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzdFLElBQUksQ0FDTCxFQUFFLENBQ0osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsRUFBVSxFQUFFLEtBQStCO1FBQ3BFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxzQkFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDN0MsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxLQUErQjtRQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsV0FBbUMsRUFDbkMsS0FBK0I7UUFFL0IsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDL0MsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBK0I7UUFDekQsSUFBSSxpREFBMkIsQ0FBQyxJQUFJLEVBQUUsNkJBQTZCLEVBQUU7WUFDbkUsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTztZQUMxQixNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxLQUErQjtRQUM5RCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ2pELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7YUFDN0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsV0FBbUMsRUFDbkMsS0FBK0I7UUFFL0IsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsSUFBSSwrQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDekMsUUFBUSxFQUFFLFdBQVc7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXBGRCxrREFvRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuaW1wb3J0IEFwcCBmcm9tIFwiLi4vLi4vYXBwXCI7XG5cbmltcG9ydCB7IElkZW50aXR5Q2VudGVyIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvaWRlbnRpdHlDZW50ZXJcIjtcbmltcG9ydCB7IElwYW1EZWxlZ2F0ZUFkbWluIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvaXBhbURlbGVnYXRlQWRtaW5cIjtcbmltcG9ydCB7IFJhbVNoYXJpbmcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3cy9yYW1TaGFyaW5nXCI7XG5pbXBvcnQge1xuICBDb3N0QWxsb2NhdGlvblRhZ3MsXG4gIElDb3N0QWxsb2NhdGlvblRhZ3Ncbn0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvY29zdEFsbG9jYXRpb25UYWdzXCI7XG5pbXBvcnQgT3JnYW5pc2F0aW9uIGZyb20gXCIuLi8uLi9jb25maWcvYXdzL29yZ2FuaXNhdGlvblwiO1xuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3JnYW5pemF0aW9uc1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVPcmdhbmlzYXRpb25zQWNjZXNzIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3Mvb3JnYW5pc2F0aW9uc0FjY2Vzc1wiO1xuXG50eXBlIEV4dGVuZGVkU3RhY2tQcm9wcyA9IE9taXQ8U3RhY2tQcm9wcywgXCJlbnZcIj4gJiB7XG4gIGVudjogUmVxdWlyZWQ8UGljazxFbnZpcm9ubWVudCwgXCJyZWdpb25cIiB8IFwiYWNjb3VudFwiPj4gJlxuICAgIFBhcnRpYWw8T21pdDxFbnZpcm9ubWVudCwgXCJyZWdpb25cIiB8IFwiYWNjb3VudFwiPj47XG59O1xuXG5pbnRlcmZhY2UgTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzIGV4dGVuZHMgRXh0ZW5kZWRTdGFja1Byb3BzIHtcbiAgb3JnYW5pc2F0aW9uTmFtZTogc3RyaW5nO1xuICBvcmdBY2NvdW50czogc3RyaW5nW107XG4gIHBsYXRmb3JtQWNjb3VudDogc3RyaW5nO1xuICBvcmdFbWFpbDogc3RyaW5nO1xuICBleGlzdGluZ0FjY291bnRzPzogQWNjb3VudFtdO1xuICBjb3N0QWxsb2NhdGlvblRhZ3M6IElDb3N0QWxsb2NhdGlvblRhZ3NbXTtcbiAgaWRlbnRpdHlDZW50ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTWFuYWdlZE9yZ2FuaXNhdGlvbiBleHRlbmRzIFN0YWNrIHtcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb246IE9yZ2FuaXNhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoQXBwLmdldEluc3RhbmNlKCksIGlkLCBwcm9wcyk7XG4gICAgdGhpcy52YWxpZGF0ZVBsYXRmb3JtQWNjb3VudChwcm9wcyk7XG4gICAgdGhpcy5jcmVhdGVPcmdhbmlzYXRpb24oaWQsIHByb3BzKTtcbiAgICB0aGlzLnNldHVwT3JnYW5pc2F0aW9uRmVhdHVyZXMoe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBpZGVudGl0eUNlbnRlcjogcHJvcHMuaWRlbnRpdHlDZW50ZXIgPz8gdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBsYXRmb3JtQWNjb3VudChwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzKSB7XG4gICAgaWYgKCFwcm9wcy5vcmdBY2NvdW50cy5pbmNsdWRlcyhwcm9wcy5wbGF0Zm9ybUFjY291bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQbGF0Zm9ybSBhY2NvdW50IFwiJHtcbiAgICAgICAgICBwcm9wcy5wbGF0Zm9ybUFjY291bnRcbiAgICAgICAgfVwiIGlzIG5vdCBsaXN0ZWQgaW4gYWNjb3VudCBuYW1lcy4gVmFsaWQgYWNjb3VudHMgYXJlOiAke3Byb3BzLm9yZ0FjY291bnRzLmpvaW4oXG4gICAgICAgICAgXCIsIFwiXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9yZ2FuaXNhdGlvbihpZDogc3RyaW5nLCBwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzKSB7XG4gICAgdGhpcy5vcmdhbmlzYXRpb24gPSBuZXcgT3JnYW5pc2F0aW9uKHRoaXMsIGlkLCB7XG4gICAgICBvcmdhbmlzYXRpb25OYW1lOiBwcm9wcy5vcmdhbmlzYXRpb25OYW1lLFxuICAgICAgb3JnQWNjb3VudHM6IHByb3BzLm9yZ0FjY291bnRzLFxuICAgICAgcGxhdGZvcm1BY2NvdW50OiBwcm9wcy5wbGF0Zm9ybUFjY291bnQsXG4gICAgICBvcmdFbWFpbDogcHJvcHMub3JnRW1haWwsXG4gICAgICBlbnY6IHByb3BzLmVudixcbiAgICAgIGV4aXN0aW5nQWNjb3VudHM6IHByb3BzLmV4aXN0aW5nQWNjb3VudHNcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBPcmdhbmlzYXRpb25GZWF0dXJlcyhwcm9wczogTWFuYWdlZE9yZ2FuaXNhdGlvblByb3BzKSB7XG4gICAgY29uc3Qgb3JnQWNjb3VudHMgPSB0aGlzLm9yZ2FuaXNhdGlvbi5nZXRBY2NvdW50cygpO1xuXG4gICAgdGhpcy5zZXR1cElwYW1EZWxlZ2F0aW9uKG9yZ0FjY291bnRzLCBwcm9wcyk7XG4gICAgdGhpcy5lbmFibGVSYW1TaGFyaW5nKCk7XG4gICAgdGhpcy5lbmFibGVUcnVzdGVkQWNjZXNzKHByb3BzKTtcbiAgICB0aGlzLmVuYWJsZUNvc3RBbGxvY2F0aW9uVGFncyhwcm9wcyk7XG4gICAgdGhpcy5zZXR1cElkZW50aXR5Q2VudGVyKG9yZ0FjY291bnRzLCBwcm9wcyk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwSXBhbURlbGVnYXRpb24oXG4gICAgb3JnQWNjb3VudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgcHJvcHM6IE1hbmFnZWRPcmdhbmlzYXRpb25Qcm9wc1xuICApIHtcbiAgICBuZXcgSXBhbURlbGVnYXRlQWRtaW4odGhpcywgXCJJcGFtRGVsZWdhdGVBZG1pblwiLCB7XG4gICAgICBhY2NvdW50SWQ6IG9yZ0FjY291bnRzW3Byb3BzLnBsYXRmb3JtQWNjb3VudF1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlUmFtU2hhcmluZygpIHtcbiAgICBuZXcgUmFtU2hhcmluZyh0aGlzLCBcIlJhbVNoYXJpbmdcIik7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZVRydXN0ZWRBY2Nlc3MocHJvcHM6IE1hbmFnZWRPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIG5ldyBBY3RpdmF0ZU9yZ2FuaXNhdGlvbnNBY2Nlc3ModGhpcywgXCJBY3RpdmF0ZU9yZ2FuaXNhdGlvbnNBY2Nlc3NcIiwge1xuICAgICAgYWNjb3VudDogcHJvcHMuZW52LmFjY291bnQsXG4gICAgICByZWdpb246IHByb3BzLmVudi5yZWdpb25cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlQ29zdEFsbG9jYXRpb25UYWdzKHByb3BzOiBNYW5hZ2VkT3JnYW5pc2F0aW9uUHJvcHMpIHtcbiAgICBpZiAocHJvcHMuY29zdEFsbG9jYXRpb25UYWdzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5ldyBDb3N0QWxsb2NhdGlvblRhZ3ModGhpcywgXCJDb3N0QWxsb2NhdGlvblRhZ3NcIiwge1xuICAgICAgICBjb3N0QWxsb2NhdGlvblRhZ3M6IHByb3BzLmNvc3RBbGxvY2F0aW9uVGFnc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cElkZW50aXR5Q2VudGVyKFxuICAgIG9yZ0FjY291bnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIHByb3BzOiBNYW5hZ2VkT3JnYW5pc2F0aW9uUHJvcHNcbiAgKSB7XG4gICAgaWYgKHByb3BzLmlkZW50aXR5Q2VudGVyKSB7XG4gICAgICBuZXcgSWRlbnRpdHlDZW50ZXIodGhpcywgXCJJZGVudGl0eUNlbnRlclwiLCB7XG4gICAgICAgIGFjY291bnRzOiBvcmdBY2NvdW50c1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Construct } from "constructs";
2
+ import { Role } from "..";
2
3
  export declare class Assignment extends Construct {
3
4
  constructor(scope: Construct, id: string, props: {
4
5
  instanceArn: string;
@@ -7,5 +8,6 @@ export declare class Assignment extends Construct {
7
8
  principalId: string;
8
9
  targetType: string;
9
10
  targetId: string;
11
+ role: Role;
10
12
  });
11
13
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Assignment = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
4
  const constructs_1 = require("constructs");
6
5
  const customResources = require("aws-cdk-lib/custom-resources");
7
6
  const awsCustomResource_1 = require("../../utilities/awsCustomResource");
@@ -36,18 +35,23 @@ class Assignment extends constructs_1.Construct {
36
35
  PrincipalId: props.principalId
37
36
  }
38
37
  },
39
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
40
- new aws_iam_1.PolicyStatement({
41
- actions: [
42
- "sso:CreateAccountAssignment",
43
- "sso:DeleteAccountAssignment"
44
- ],
45
- resources: ["*"]
46
- })
47
- ]),
38
+ policy: customResources.AwsCustomResourcePolicy.fromSdkCalls({
39
+ resources: ["*"]
40
+ }),
41
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
42
+ // role: props.role,
43
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
44
+ // new PolicyStatement({
45
+ // actions: [
46
+ // "sso:CreateAccountAssignment",
47
+ // "sso:DeleteAccountAssignment"
48
+ // ],
49
+ // resources: ["*"]
50
+ // })
51
+ // ]),
48
52
  resourceType: "Custom::SSOAccountAssignment"
49
53
  });
50
54
  }
51
55
  }
52
56
  exports.Assignment = Assignment;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWdubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9hc3NpZ25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFzRDtBQUN0RCwyQ0FBdUM7QUFDdkMsZ0VBQWdFO0FBQ2hFLHlFQUFzRTtBQUV0RSxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQUN2QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQU9DO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxhQUFhLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFL0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzNELFlBQVksRUFBRSxVQUFVO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFLHlCQUF5QixFQUFFLGlIQUFpSDtnQkFDcEosVUFBVSxFQUFFO29CQUNWLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUN4QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7b0JBQzVCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtvQkFDbEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2lCQUMvQjtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN0RTtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFLHlCQUF5QixFQUFFLGlIQUFpSDtnQkFDcEosVUFBVSxFQUFFO29CQUNWLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUN4QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7b0JBQzVCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtvQkFDbEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2lCQUMvQjthQUNGO1lBQ0QsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLDZCQUE2Qjt3QkFDN0IsNkJBQTZCO3FCQUM5QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pCLENBQUM7YUFDSCxDQUFDO1lBQ0YsWUFBWSxFQUFFLDhCQUE4QjtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF4REQsZ0NBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuXG5leHBvcnQgY2xhc3MgQXNzaWdubWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczoge1xuICAgICAgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgICAgIHBlcm1pc3Npb25TZXRBcm46IHN0cmluZztcbiAgICAgIHByaW5jaXBhbFR5cGU6IHN0cmluZztcbiAgICAgIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gICAgICB0YXJnZXRUeXBlOiBzdHJpbmc7XG4gICAgICB0YXJnZXRJZDogc3RyaW5nO1xuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHBoeXNpY2FsSWQgPSBgYXNzaWdubWVudCR7cHJvcHMucGVybWlzc2lvblNldEFybn10byR7cHJvcHMucHJpbmNpcGFsSWR9YDtcblxuICAgIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYGFzc2lnbm1lbnRgLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IHBoeXNpY2FsSWQsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcInNzby1hZG1pblwiLFxuICAgICAgICBhY3Rpb246IFwiQ3JlYXRlQWNjb3VudEFzc2lnbm1lbnRcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9zc28tYWRtaW4vY29tbWFuZC9DcmVhdGVBY2NvdW50QXNzaWdubWVudENvbW1hbmRcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEluc3RhbmNlQXJuOiBwcm9wcy5pbnN0YW5jZUFybixcbiAgICAgICAgICBUYXJnZXRJZDogcHJvcHMudGFyZ2V0SWQsXG4gICAgICAgICAgVGFyZ2V0VHlwZTogcHJvcHMudGFyZ2V0VHlwZSxcbiAgICAgICAgICBQZXJtaXNzaW9uU2V0QXJuOiBwcm9wcy5wZXJtaXNzaW9uU2V0QXJuLFxuICAgICAgICAgIFByaW5jaXBhbFR5cGU6IHByb3BzLnByaW5jaXBhbFR5cGUsXG4gICAgICAgICAgUHJpbmNpcGFsSWQ6IHByb3BzLnByaW5jaXBhbElkXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihwaHlzaWNhbElkKVxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgIGFjdGlvbjogXCJEZWxldGVBY2NvdW50QXNzaWdubWVudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3Nzby1hZG1pbi9jb21tYW5kL0RlbGV0ZUFjY291bnRBc3NpZ25tZW50Q29tbWFuZFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgSW5zdGFuY2VBcm46IHByb3BzLmluc3RhbmNlQXJuLFxuICAgICAgICAgIFRhcmdldElkOiBwcm9wcy50YXJnZXRJZCxcbiAgICAgICAgICBUYXJnZXRUeXBlOiBwcm9wcy50YXJnZXRUeXBlLFxuICAgICAgICAgIFBlcm1pc3Npb25TZXRBcm46IHByb3BzLnBlcm1pc3Npb25TZXRBcm4sXG4gICAgICAgICAgUHJpbmNpcGFsVHlwZTogcHJvcHMucHJpbmNpcGFsVHlwZSxcbiAgICAgICAgICBQcmluY2lwYWxJZDogcHJvcHMucHJpbmNpcGFsSWRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJzc286Q3JlYXRlQWNjb3VudEFzc2lnbm1lbnRcIixcbiAgICAgICAgICAgIFwic3NvOkRlbGV0ZUFjY291bnRBc3NpZ25tZW50XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICB9KVxuICAgICAgXSksXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpTU09BY2NvdW50QXNzaWdubWVudFwiXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWdubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9hc3NpZ25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUF1QztBQUN2QyxnRUFBZ0U7QUFDaEUseUVBQXNFO0FBR3RFLE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBQ3ZDLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBUUM7UUFFRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sVUFBVSxHQUFHLGFBQWEsS0FBSyxDQUFDLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUvRSxNQUFNLFVBQVUsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDM0QsWUFBWSxFQUFFLFVBQVU7WUFDeEIsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUseUJBQXlCLEVBQUUsaUhBQWlIO2dCQUNwSixVQUFVLEVBQUU7b0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7b0JBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtvQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtvQkFDeEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUNsQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7aUJBQy9CO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3RFO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUseUJBQXlCLEVBQUUsaUhBQWlIO2dCQUNwSixVQUFVLEVBQUU7b0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7b0JBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtvQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtvQkFDeEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUNsQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7aUJBQy9CO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDM0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQ2pCLENBQUM7WUFDRiwyRkFBMkY7WUFDM0Ysb0JBQW9CO1lBQ3BCLG1FQUFtRTtZQUNuRSwwQkFBMEI7WUFDMUIsaUJBQWlCO1lBQ2pCLHVDQUF1QztZQUN2QyxzQ0FBc0M7WUFDdEMsU0FBUztZQUNULHVCQUF1QjtZQUN2QixPQUFPO1lBQ1AsTUFBTTtZQUNOLFlBQVksRUFBRSw4QkFBOEI7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBOURELGdDQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi5cIjtcblxuZXhwb3J0IGNsYXNzIEFzc2lnbm1lbnQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IHtcbiAgICAgIGluc3RhbmNlQXJuOiBzdHJpbmc7XG4gICAgICBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmc7XG4gICAgICBwcmluY2lwYWxUeXBlOiBzdHJpbmc7XG4gICAgICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICAgICAgdGFyZ2V0VHlwZTogc3RyaW5nO1xuICAgICAgdGFyZ2V0SWQ6IHN0cmluZztcbiAgICAgIHJvbGU6IFJvbGU7XG4gICAgfVxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcGh5c2ljYWxJZCA9IGBhc3NpZ25tZW50JHtwcm9wcy5wZXJtaXNzaW9uU2V0QXJufXRvJHtwcm9wcy5wcmluY2lwYWxJZH1gO1xuXG4gICAgY29uc3QgYXNzaWdubWVudCA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBgYXNzaWdubWVudGAsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogcGh5c2ljYWxJZCxcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgIGFjdGlvbjogXCJDcmVhdGVBY2NvdW50QXNzaWdubWVudFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3Nzby1hZG1pbi9jb21tYW5kL0NyZWF0ZUFjY291bnRBc3NpZ25tZW50Q29tbWFuZFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgSW5zdGFuY2VBcm46IHByb3BzLmluc3RhbmNlQXJuLFxuICAgICAgICAgIFRhcmdldElkOiBwcm9wcy50YXJnZXRJZCxcbiAgICAgICAgICBUYXJnZXRUeXBlOiBwcm9wcy50YXJnZXRUeXBlLFxuICAgICAgICAgIFBlcm1pc3Npb25TZXRBcm46IHByb3BzLnBlcm1pc3Npb25TZXRBcm4sXG4gICAgICAgICAgUHJpbmNpcGFsVHlwZTogcHJvcHMucHJpbmNpcGFsVHlwZSxcbiAgICAgICAgICBQcmluY2lwYWxJZDogcHJvcHMucHJpbmNpcGFsSWRcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHBoeXNpY2FsSWQpXG4gICAgICB9LFxuICAgICAgb25EZWxldGU6IHtcbiAgICAgICAgc2VydmljZTogXCJzc28tYWRtaW5cIixcbiAgICAgICAgYWN0aW9uOiBcIkRlbGV0ZUFjY291bnRBc3NpZ25tZW50XCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9jbGllbnQvc3NvLWFkbWluL2NvbW1hbmQvRGVsZXRlQWNjb3VudEFzc2lnbm1lbnRDb21tYW5kXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBJbnN0YW5jZUFybjogcHJvcHMuaW5zdGFuY2VBcm4sXG4gICAgICAgICAgVGFyZ2V0SWQ6IHByb3BzLnRhcmdldElkLFxuICAgICAgICAgIFRhcmdldFR5cGU6IHByb3BzLnRhcmdldFR5cGUsXG4gICAgICAgICAgUGVybWlzc2lvblNldEFybjogcHJvcHMucGVybWlzc2lvblNldEFybixcbiAgICAgICAgICBQcmluY2lwYWxUeXBlOiBwcm9wcy5wcmluY2lwYWxUeXBlLFxuICAgICAgICAgIFByaW5jaXBhbElkOiBwcm9wcy5wcmluY2lwYWxJZFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KSxcbiAgICAgIC8vIFRPRE86IExvY2sgZG93biBwZXJtaXNzaW9ucywgd2hlbiB3ZSdyZSByZWFkeSB0byB0cm91Ymxlc2hvb3QgaW50ZXJtaXR0ZW50IHBvbGljeSBlcnJvcnNcbiAgICAgIC8vIHJvbGU6IHByb3BzLnJvbGUsXG4gICAgICAvLyBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAvLyAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgLy8gICAgIGFjdGlvbnM6IFtcbiAgICAgIC8vICAgICAgIFwic3NvOkNyZWF0ZUFjY291bnRBc3NpZ25tZW50XCIsXG4gICAgICAvLyAgICAgICBcInNzbzpEZWxldGVBY2NvdW50QXNzaWdubWVudFwiXG4gICAgICAvLyAgICAgXSxcbiAgICAgIC8vICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgIC8vICAgfSlcbiAgICAgIC8vIF0pLFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6U1NPQWNjb3VudEFzc2lnbm1lbnRcIlxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,9 +1,11 @@
1
1
  import { Construct } from "constructs";
2
+ import { Role } from "..";
2
3
  interface AttachManagedPolicyProps {
3
4
  instanceArn: string;
4
5
  permissionSet: string;
5
6
  permissionSetArn: string;
6
7
  managedPolicyArn: string;
8
+ role: Role;
7
9
  }
8
10
  export declare class AttachManagedPolicy extends Construct {
9
11
  constructor(scope: Construct, id: string, props: AttachManagedPolicyProps);
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AttachManagedPolicy = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
4
  const constructs_1 = require("constructs");
6
5
  const customResources = require("aws-cdk-lib/custom-resources");
7
6
  const awsCustomResource_1 = require("../../utilities/awsCustomResource");
@@ -29,22 +28,25 @@ class AttachManagedPolicy extends constructs_1.Construct {
29
28
  ManagedPolicyArn: props.managedPolicyArn
30
29
  }
31
30
  },
32
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
33
- new aws_iam_1.PolicyStatement({
34
- actions: [
35
- "sso:*"
36
- // TODO: Move into a role policy for entire ManagedOrganisation custom resources
37
- // "sso:ProvisionPermissionSet",
38
- // "sso:AttachManagedPolicyToPermissionSet",
39
- // "sso:DetachManagedPolicyFromPermissionSet",
40
- // "sso:TagResource"
41
- ],
42
- resources: ["*"]
43
- })
44
- ]),
31
+ policy: customResources.AwsCustomResourcePolicy.fromSdkCalls({
32
+ resources: ["*"]
33
+ }),
34
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
35
+ // role: props.role,
36
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
37
+ // new PolicyStatement({
38
+ // actions: [
39
+ // "sso:ProvisionPermissionSet",
40
+ // "sso:AttachManagedPolicyToPermissionSet",
41
+ // "sso:DetachManagedPolicyFromPermissionSet",
42
+ // "sso:TagResource"
43
+ // ],
44
+ // resources: ["*"]
45
+ // })
46
+ // ]),
45
47
  resourceType: "Custom::PermissionSet"
46
48
  });
47
49
  }
48
50
  }
49
51
  exports.AttachManagedPolicy = AttachManagedPolicy;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoTWFuYWdlZFBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9hdHRhY2hNYW5hZ2VkUG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFzRDtBQUN0RCwyQ0FBdUM7QUFDdkMsZ0VBQWdFO0FBQ2hFLHlFQUFzRTtBQVN0RSxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBQ2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUNqRCxZQUFZLEVBQUUsOEJBQThCLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDakUsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUsb0NBQW9DLEVBQUUsNEhBQTRIO2dCQUMxSyxVQUFVLEVBQUU7b0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO29CQUN4QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2lCQUN6QztnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUN2RCxxQ0FBcUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUMzRDthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUsc0NBQXNDLEVBQUUsK0hBQStIO2dCQUMvSyxVQUFVLEVBQUU7b0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO29CQUN4QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2lCQUN6QzthQUNGO1lBQ0QsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLE9BQU87d0JBQ1AsZ0ZBQWdGO3dCQUNoRixnQ0FBZ0M7d0JBQ2hDLDRDQUE0Qzt3QkFDNUMsOENBQThDO3dCQUM5QyxvQkFBb0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNILENBQUM7WUFDRixZQUFZLEVBQUUsdUJBQXVCO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTNDRCxrREEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2F3c0N1c3RvbVJlc291cmNlXCI7XG5cbmludGVyZmFjZSBBdHRhY2hNYW5hZ2VkUG9saWN5UHJvcHMge1xuICBpbnN0YW5jZUFybjogc3RyaW5nO1xuICBwZXJtaXNzaW9uU2V0OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25TZXRBcm46IHN0cmluZztcbiAgbWFuYWdlZFBvbGljeUFybjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXR0YWNoTWFuYWdlZFBvbGljeSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdHRhY2hNYW5hZ2VkUG9saWN5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiYXR0YWNoTWFuYWdlZFBvbGljeVwiLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IGBhdHRhY2hQb2xpY3lUb1Blcm1pc3Npb25TZXQke3Byb3BzLnBlcm1pc3Npb25TZXR9YCxcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgIGFjdGlvbjogXCJBdHRhY2hNYW5hZ2VkUG9saWN5VG9QZXJtaXNzaW9uU2V0XCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9jbGllbnQvc3NvLWFkbWluL2NvbW1hbmQvQXR0YWNoTWFuYWdlZFBvbGljeVRvUGVybWlzc2lvblNldENvbW1hbmRcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEluc3RhbmNlQXJuOiBwcm9wcy5pbnN0YW5jZUFybixcbiAgICAgICAgICBQZXJtaXNzaW9uU2V0QXJuOiBwcm9wcy5wZXJtaXNzaW9uU2V0QXJuLFxuICAgICAgICAgIE1hbmFnZWRQb2xpY3lBcm46IHByb3BzLm1hbmFnZWRQb2xpY3lBcm5cbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgIGBhdHRhY2hNYW5hZ2VkUG9saWN5VG9QZXJtaXNzaW9uU2V0JHtwcm9wcy5wZXJtaXNzaW9uU2V0fWBcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgIGFjdGlvbjogXCJEZXRhY2hNYW5hZ2VkUG9saWN5RnJvbVBlcm1pc3Npb25TZXRcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9zc28tYWRtaW4vY29tbWFuZC9EZXRhY2hNYW5hZ2VkUG9saWN5RnJvbVBlcm1pc3Npb25TZXRDb21tYW5kL1xuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgSW5zdGFuY2VBcm46IHByb3BzLmluc3RhbmNlQXJuLFxuICAgICAgICAgIFBlcm1pc3Npb25TZXRBcm46IHByb3BzLnBlcm1pc3Npb25TZXRBcm4sXG4gICAgICAgICAgTWFuYWdlZFBvbGljeUFybjogcHJvcHMubWFuYWdlZFBvbGljeUFyblxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNzbzoqXCJcbiAgICAgICAgICAgIC8vIFRPRE86IE1vdmUgaW50byBhIHJvbGUgcG9saWN5IGZvciBlbnRpcmUgTWFuYWdlZE9yZ2FuaXNhdGlvbiBjdXN0b20gcmVzb3VyY2VzXG4gICAgICAgICAgICAvLyBcInNzbzpQcm92aXNpb25QZXJtaXNzaW9uU2V0XCIsXG4gICAgICAgICAgICAvLyBcInNzbzpBdHRhY2hNYW5hZ2VkUG9saWN5VG9QZXJtaXNzaW9uU2V0XCIsXG4gICAgICAgICAgICAvLyBcInNzbzpEZXRhY2hNYW5hZ2VkUG9saWN5RnJvbVBlcm1pc3Npb25TZXRcIixcbiAgICAgICAgICAgIC8vIFwic3NvOlRhZ1Jlc291cmNlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICB9KVxuICAgICAgXSksXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpQZXJtaXNzaW9uU2V0XCJcbiAgICB9KTtcbiAgfVxufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoTWFuYWdlZFBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9hdHRhY2hNYW5hZ2VkUG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUF1QztBQUN2QyxnRUFBZ0U7QUFDaEUseUVBQXNFO0FBV3RFLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFDaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQ2pELFlBQVksRUFBRSw4QkFBOEIsS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUNqRSxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE1BQU0sRUFBRSxvQ0FBb0MsRUFBRSw0SEFBNEg7Z0JBQzFLLFVBQVUsRUFBRTtvQkFDVixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQ3hDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7aUJBQ3pDO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQ3ZELHFDQUFxQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQzNEO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE1BQU0sRUFBRSxzQ0FBc0MsRUFBRSwrSEFBK0g7Z0JBQy9LLFVBQVUsRUFBRTtvQkFDVixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQ3hDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7aUJBQ3pDO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDM0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQ2pCLENBQUM7WUFDRiwyRkFBMkY7WUFDM0Ysb0JBQW9CO1lBQ3BCLG1FQUFtRTtZQUNuRSwwQkFBMEI7WUFDMUIsaUJBQWlCO1lBQ2pCLHNDQUFzQztZQUN0QyxrREFBa0Q7WUFDbEQsb0RBQW9EO1lBQ3BELDBCQUEwQjtZQUMxQixTQUFTO1lBQ1QsdUJBQXVCO1lBQ3ZCLE9BQU87WUFDUCxNQUFNO1lBQ04sWUFBWSxFQUFFLHVCQUF1QjtTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5Q0Qsa0RBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLlwiO1xuXG5pbnRlcmZhY2UgQXR0YWNoTWFuYWdlZFBvbGljeVByb3BzIHtcbiAgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgcGVybWlzc2lvblNldDogc3RyaW5nO1xuICBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmc7XG4gIG1hbmFnZWRQb2xpY3lBcm46IHN0cmluZztcbiAgcm9sZTogUm9sZTtcbn1cblxuZXhwb3J0IGNsYXNzIEF0dGFjaE1hbmFnZWRQb2xpY3kgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXR0YWNoTWFuYWdlZFBvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcImF0dGFjaE1hbmFnZWRQb2xpY3lcIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBgYXR0YWNoUG9saWN5VG9QZXJtaXNzaW9uU2V0JHtwcm9wcy5wZXJtaXNzaW9uU2V0fWAsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcInNzby1hZG1pblwiLFxuICAgICAgICBhY3Rpb246IFwiQXR0YWNoTWFuYWdlZFBvbGljeVRvUGVybWlzc2lvblNldFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3Nzby1hZG1pbi9jb21tYW5kL0F0dGFjaE1hbmFnZWRQb2xpY3lUb1Blcm1pc3Npb25TZXRDb21tYW5kXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBJbnN0YW5jZUFybjogcHJvcHMuaW5zdGFuY2VBcm4sXG4gICAgICAgICAgUGVybWlzc2lvblNldEFybjogcHJvcHMucGVybWlzc2lvblNldEFybixcbiAgICAgICAgICBNYW5hZ2VkUG9saWN5QXJuOiBwcm9wcy5tYW5hZ2VkUG9saWN5QXJuXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICBgYXR0YWNoTWFuYWdlZFBvbGljeVRvUGVybWlzc2lvblNldCR7cHJvcHMucGVybWlzc2lvblNldH1gXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBvbkRlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcInNzby1hZG1pblwiLFxuICAgICAgICBhY3Rpb246IFwiRGV0YWNoTWFuYWdlZFBvbGljeUZyb21QZXJtaXNzaW9uU2V0XCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9jbGllbnQvc3NvLWFkbWluL2NvbW1hbmQvRGV0YWNoTWFuYWdlZFBvbGljeUZyb21QZXJtaXNzaW9uU2V0Q29tbWFuZC9cbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEluc3RhbmNlQXJuOiBwcm9wcy5pbnN0YW5jZUFybixcbiAgICAgICAgICBQZXJtaXNzaW9uU2V0QXJuOiBwcm9wcy5wZXJtaXNzaW9uU2V0QXJuLFxuICAgICAgICAgIE1hbmFnZWRQb2xpY3lBcm46IHByb3BzLm1hbmFnZWRQb2xpY3lBcm5cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgfSksXG4gICAgICAvLyBUT0RPOiBMb2NrIGRvd24gcGVybWlzc2lvbnMsIHdoZW4gd2UncmUgcmVhZHkgdG8gdHJvdWJsZXNob290IGludGVybWl0dGVudCBwb2xpY3kgZXJyb3JzXG4gICAgICAvLyByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgLy8gcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgLy8gICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIC8vICAgICBhY3Rpb25zOiBbXG4gICAgICAvLyAgICAgICBcInNzbzpQcm92aXNpb25QZXJtaXNzaW9uU2V0XCIsXG4gICAgICAvLyAgICAgICBcInNzbzpBdHRhY2hNYW5hZ2VkUG9saWN5VG9QZXJtaXNzaW9uU2V0XCIsXG4gICAgICAvLyAgICAgICBcInNzbzpEZXRhY2hNYW5hZ2VkUG9saWN5RnJvbVBlcm1pc3Npb25TZXRcIixcbiAgICAgIC8vICAgICAgIFwic3NvOlRhZ1Jlc291cmNlXCJcbiAgICAgIC8vICAgICBdLFxuICAgICAgLy8gICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgLy8gICB9KVxuICAgICAgLy8gXSksXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpQZXJtaXNzaW9uU2V0XCJcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,8 +1,10 @@
1
1
  import { Construct } from "constructs";
2
+ import { Role } from "..";
2
3
  interface GroupProps {
3
4
  displayName: string;
4
5
  identityStoreId: string;
5
6
  description?: string;
7
+ role: Role;
6
8
  }
7
9
  export declare class Group extends Construct {
8
10
  private groupId;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Group = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
4
  const constructs_1 = require("constructs");
6
5
  const customResources = require("aws-cdk-lib/custom-resources");
7
6
  const awsCustomResource_1 = require("../../utilities/awsCustomResource");
@@ -22,12 +21,14 @@ class Group extends constructs_1.Construct {
22
21
  },
23
22
  physicalResourceId: customResources.PhysicalResourceId.of(physicalId)
24
23
  },
25
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
26
- new aws_iam_1.PolicyStatement({
27
- actions: ["identitystore:CreateGroup"],
28
- resources: ["*"]
29
- })
30
- ])
24
+ role: props.role
25
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
26
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
27
+ // new PolicyStatement({
28
+ // actions: ["identitystore:CreateGroup"],
29
+ // resources: ["*"]
30
+ // })
31
+ // ])
31
32
  });
32
33
  this.groupId = createGroup.getResponseField("GroupId");
33
34
  // Update Group
@@ -53,12 +54,14 @@ class Group extends constructs_1.Construct {
53
54
  },
54
55
  physicalResourceId: customResources.PhysicalResourceId.of(physicalId)
55
56
  },
56
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
57
- new aws_iam_1.PolicyStatement({
58
- actions: ["identitystore:UpdateGroup"],
59
- resources: ["*"]
60
- })
61
- ]),
57
+ role: props.role,
58
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
59
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
60
+ // new PolicyStatement({
61
+ // actions: ["identitystore:UpdateGroup"],
62
+ // resources: ["*"]
63
+ // })
64
+ // ]),
62
65
  resourceType: "Custom::Group"
63
66
  });
64
67
  // Delete Group
@@ -72,18 +75,24 @@ class Group extends constructs_1.Construct {
72
75
  IdentityStoreId: props.identityStoreId
73
76
  }
74
77
  },
75
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
76
- new aws_iam_1.PolicyStatement({
77
- actions: ["identitystore:DeleteGroup"],
78
- resources: ["*"]
79
- })
80
- ]),
78
+ role: props.role,
79
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
80
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
81
+ // new PolicyStatement({
82
+ // actions: ["identitystore:DeleteGroup"],
83
+ // resources: ["*"]
84
+ // })
85
+ // ]),
81
86
  resourceType: "Custom::Group"
82
87
  });
88
+ // Implement Dependable to make construct dependable
89
+ constructs_1.Dependable.implement(this, {
90
+ dependencyRoots: [createGroup, updateGroup, deleteGroup]
91
+ });
83
92
  }
84
93
  getGroupId() {
85
94
  return this.groupId;
86
95
  }
87
96
  }
88
97
  exports.Group = Group;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXNEO0FBQ3RELDJDQUF1QztBQUN2QyxnRUFBZ0U7QUFDaEUseUVBQXNFO0FBT3RFLE1BQWEsS0FBTSxTQUFRLHNCQUFTO0lBR2xDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUI7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxxQkFBcUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTVELGVBQWU7UUFDZixNQUFNLFdBQVcsR0FBRyxJQUFJLHFDQUFpQixDQUN2QyxJQUFJLEVBQ0osMEJBQTBCLEVBQzFCO1lBQ0UsWUFBWSxFQUFFLDJCQUEyQixLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzVELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsTUFBTSxFQUFFLGFBQWEsRUFBRSx5R0FBeUc7Z0JBQ2hJLFVBQVUsRUFBRTtvQkFDVixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtvQkFDdEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2lCQUMvQjtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN0RTtZQUNELE1BQU0sRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUM3RCxJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pCLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkQsZUFBZTtRQUNmLE1BQU0sV0FBVyxHQUFHLElBQUkscUNBQWlCLENBQ3ZDLElBQUksRUFDSiwwQkFBMEIsRUFDMUI7WUFDRSxZQUFZLEVBQUUsMkJBQTJCLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDNUQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUUsYUFBYSxFQUFFLHlHQUF5RztnQkFDaEksVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO29CQUN0Qyx5REFBeUQ7b0JBQ3pELFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxhQUFhLEVBQUUsYUFBYTs0QkFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxXQUFXO3lCQUNsQzt3QkFDRDs0QkFDRSxhQUFhLEVBQUUsYUFBYTs0QkFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxXQUFXO3lCQUNsQztxQkFDRjtpQkFDRjtnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN0RTtZQUNELE1BQU0sRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUM3RCxJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pCLENBQUM7YUFDSCxDQUFDO1lBQ0YsWUFBWSxFQUFFLGVBQWU7U0FDOUIsQ0FDRixDQUFDO1FBRUYsZUFBZTtRQUNmLE1BQU0sV0FBVyxHQUFHLElBQUkscUNBQWlCLENBQ3ZDLElBQUksRUFDSiwwQkFBMEIsRUFDMUI7WUFDRSxZQUFZLEVBQUUsMkJBQTJCLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDNUQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUUsYUFBYSxFQUFFLHlHQUF5RztnQkFDaEksVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO2lCQUN2QzthQUNGO1lBQ0QsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNILENBQUM7WUFDRixZQUFZLEVBQUUsZUFBZTtTQUM5QixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFuR0Qsc0JBbUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuXG5pbnRlcmZhY2UgR3JvdXBQcm9wcyB7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGlkZW50aXR5U3RvcmVJZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBHcm91cCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgZ3JvdXBJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHBoeXNpY2FsSWQgPSBgaWRlbnRpdHlTdG9yZUdyb3VwJHtwcm9wcy5kaXNwbGF5TmFtZX1gO1xuXG4gICAgLy8gQ3JlYXRlIEdyb3VwXG4gICAgY29uc3QgY3JlYXRlR3JvdXAgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJjcmVhdGVJZGVudGl0eVN0b3JlR3JvdXBcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBgY3JlYXRlSWRlbnRpdHlTdG9yZUdyb3VwJHtwcm9wcy5kaXNwbGF5TmFtZX1gLFxuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwiaWRlbnRpdHlzdG9yZVwiLFxuICAgICAgICAgIGFjdGlvbjogXCJDcmVhdGVHcm91cFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L2lkZW50aXR5c3RvcmUvY29tbWFuZC9DcmVhdGVHcm91cENvbW1hbmRcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBEaXNwbGF5TmFtZTogcHJvcHMuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IHByb3BzLmlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgIERlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvblxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHBoeXNpY2FsSWQpXG4gICAgICAgIH0sXG4gICAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImlkZW50aXR5c3RvcmU6Q3JlYXRlR3JvdXBcIl0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgICAgICB9KVxuICAgICAgICBdKVxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmdyb3VwSWQgPSBjcmVhdGVHcm91cC5nZXRSZXNwb25zZUZpZWxkKFwiR3JvdXBJZFwiKTtcblxuICAgIC8vIFVwZGF0ZSBHcm91cFxuICAgIGNvbnN0IHVwZGF0ZUdyb3VwID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwidXBkYXRlSWRlbnRpdHlTdG9yZUdyb3VwXCIsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uTmFtZTogYHVwZGF0ZUlkZW50aXR5U3RvcmVHcm91cCR7cHJvcHMuZGlzcGxheU5hbWV9YCxcbiAgICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgICBzZXJ2aWNlOiBcImlkZW50aXR5c3RvcmVcIixcbiAgICAgICAgICBhY3Rpb246IFwiVXBkYXRlR3JvdXBcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9pZGVudGl0eXN0b3JlL2NvbW1hbmQvVXBkYXRlR3JvdXBDb21tYW5kXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgR3JvdXBJZDogdGhpcy5ncm91cElkLFxuICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBwcm9wcy5pZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICAvLyBUT0RPOiBTdXBwcG9ydCB0YWtpbmcgaW4gYW55IGNoYW5nZXMgYW5kIHVwZGF0aW5nIHRoZW1cbiAgICAgICAgICAgIE9wZXJhdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEF0dHJpYnV0ZVBhdGg6IFwiRGlzcGxheU5hbWVcIixcbiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVWYWx1ZTogcHJvcHMuZGlzcGxheU5hbWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEF0dHJpYnV0ZVBhdGg6IFwiRGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICBBdHRyaWJ1dGVWYWx1ZTogcHJvcHMuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjdXN0b21SZXNvdXJjZXMuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHBoeXNpY2FsSWQpXG4gICAgICAgIH0sXG4gICAgICAgIHBvbGljeTogY3VzdG9tUmVzb3VyY2VzLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImlkZW50aXR5c3RvcmU6VXBkYXRlR3JvdXBcIl0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgICAgICB9KVxuICAgICAgICBdKSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6R3JvdXBcIlxuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBEZWxldGUgR3JvdXBcbiAgICBjb25zdCBkZWxldGVHcm91cCA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICBcImRlbGV0ZUlkZW50aXR5U3RvcmVHcm91cFwiLFxuICAgICAge1xuICAgICAgICBmdW5jdGlvbk5hbWU6IGBkZWxldGVJZGVudGl0eVN0b3JlR3JvdXAke3Byb3BzLmRpc3BsYXlOYW1lfWAsXG4gICAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJpZGVudGl0eXN0b3JlXCIsXG4gICAgICAgICAgYWN0aW9uOiBcIkRlbGV0ZUdyb3VwXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9jbGllbnQvaWRlbnRpdHlzdG9yZS9jb21tYW5kL0RlbGV0ZUdyb3VwQ29tbWFuZFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIEdyb3VwSWQ6IHRoaXMuZ3JvdXBJZCxcbiAgICAgICAgICAgIElkZW50aXR5U3RvcmVJZDogcHJvcHMuaWRlbnRpdHlTdG9yZUlkXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbXCJpZGVudGl0eXN0b3JlOkRlbGV0ZUdyb3VwXCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Okdyb3VwXCJcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEdyb3VwSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ncm91cElkO1xuICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pYW0vaWRlbnRpdHlDZW50ZXIvZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQW1EO0FBQ25ELGdFQUFnRTtBQUNoRSx5RUFBc0U7QUFTdEUsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFHbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQjtRQUN6RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUQsZUFBZTtRQUNmLE1BQU0sV0FBVyxHQUFHLElBQUkscUNBQWlCLENBQ3ZDLElBQUksRUFDSiwwQkFBMEIsRUFDMUI7WUFDRSxZQUFZLEVBQUUsMkJBQTJCLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDNUQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUUsYUFBYSxFQUFFLHlHQUF5RztnQkFDaEksVUFBVSxFQUFFO29CQUNWLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO29CQUN0QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7aUJBQy9CO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3RFO1lBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLDJGQUEyRjtZQUMzRixtRUFBbUU7WUFDbkUsMEJBQTBCO1lBQzFCLDhDQUE4QztZQUM5Qyx1QkFBdUI7WUFDdkIsT0FBTztZQUNQLEtBQUs7U0FDTixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RCxlQUFlO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQ0FBaUIsQ0FDdkMsSUFBSSxFQUNKLDBCQUEwQixFQUMxQjtZQUNFLFlBQVksRUFBRSwyQkFBMkIsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUM1RCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE1BQU0sRUFBRSxhQUFhLEVBQUUseUdBQXlHO2dCQUNoSSxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7b0JBQ3RDLHlEQUF5RDtvQkFDekQsVUFBVSxFQUFFO3dCQUNWOzRCQUNFLGFBQWEsRUFBRSxhQUFhOzRCQUM1QixjQUFjLEVBQUUsS0FBSyxDQUFDLFdBQVc7eUJBQ2xDO3dCQUNEOzRCQUNFLGFBQWEsRUFBRSxhQUFhOzRCQUM1QixjQUFjLEVBQUUsS0FBSyxDQUFDLFdBQVc7eUJBQ2xDO3FCQUNGO2lCQUNGO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3RFO1lBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLDJGQUEyRjtZQUMzRixtRUFBbUU7WUFDbkUsMEJBQTBCO1lBQzFCLDhDQUE4QztZQUM5Qyx1QkFBdUI7WUFDdkIsT0FBTztZQUNQLE1BQU07WUFDTixZQUFZLEVBQUUsZUFBZTtTQUM5QixDQUNGLENBQUM7UUFFRixlQUFlO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQ0FBaUIsQ0FDdkMsSUFBSSxFQUNKLDBCQUEwQixFQUMxQjtZQUNFLFlBQVksRUFBRSwyQkFBMkIsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUM1RCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE1BQU0sRUFBRSxhQUFhLEVBQUUseUdBQXlHO2dCQUNoSSxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7aUJBQ3ZDO2FBQ0Y7WUFDRCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsMkZBQTJGO1lBQzNGLG1FQUFtRTtZQUNuRSwwQkFBMEI7WUFDMUIsOENBQThDO1lBQzlDLHVCQUF1QjtZQUN2QixPQUFPO1lBQ1AsTUFBTTtZQUNOLFlBQVksRUFBRSxlQUFlO1NBQzlCLENBQ0YsQ0FBQztRQUVGLG9EQUFvRDtRQUNwRCx1QkFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDekIsZUFBZSxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7U0FDekQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBOUdELHNCQThHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIERlcGVuZGFibGUgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi5cIjtcblxuaW50ZXJmYWNlIEdyb3VwUHJvcHMge1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBpZGVudGl0eVN0b3JlSWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJvbGU6IFJvbGU7XG59XG5leHBvcnQgY2xhc3MgR3JvdXAgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIGdyb3VwSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBwaHlzaWNhbElkID0gYGlkZW50aXR5U3RvcmVHcm91cCR7cHJvcHMuZGlzcGxheU5hbWV9YDtcblxuICAgIC8vIENyZWF0ZSBHcm91cFxuICAgIGNvbnN0IGNyZWF0ZUdyb3VwID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiY3JlYXRlSWRlbnRpdHlTdG9yZUdyb3VwXCIsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uTmFtZTogYGNyZWF0ZUlkZW50aXR5U3RvcmVHcm91cCR7cHJvcHMuZGlzcGxheU5hbWV9YCxcbiAgICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgICBzZXJ2aWNlOiBcImlkZW50aXR5c3RvcmVcIixcbiAgICAgICAgICBhY3Rpb246IFwiQ3JlYXRlR3JvdXBcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9pZGVudGl0eXN0b3JlL2NvbW1hbmQvQ3JlYXRlR3JvdXBDb21tYW5kXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgRGlzcGxheU5hbWU6IHByb3BzLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgSWRlbnRpdHlTdG9yZUlkOiBwcm9wcy5pZGVudGl0eVN0b3JlSWQsXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb25cbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihwaHlzaWNhbElkKVxuICAgICAgICB9LFxuICAgICAgICByb2xlOiBwcm9wcy5yb2xlXG4gICAgICAgIC8vIFRPRE86IExvY2sgZG93biBwZXJtaXNzaW9ucywgd2hlbiB3ZSdyZSByZWFkeSB0byB0cm91Ymxlc2hvb3QgaW50ZXJtaXR0ZW50IHBvbGljeSBlcnJvcnNcbiAgICAgICAgLy8gcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICAvLyAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAvLyAgICAgYWN0aW9uczogW1wiaWRlbnRpdHlzdG9yZTpDcmVhdGVHcm91cFwiXSxcbiAgICAgICAgLy8gICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICAvLyAgIH0pXG4gICAgICAgIC8vIF0pXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZ3JvdXBJZCA9IGNyZWF0ZUdyb3VwLmdldFJlc3BvbnNlRmllbGQoXCJHcm91cElkXCIpO1xuXG4gICAgLy8gVXBkYXRlIEdyb3VwXG4gICAgY29uc3QgdXBkYXRlR3JvdXAgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJ1cGRhdGVJZGVudGl0eVN0b3JlR3JvdXBcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBgdXBkYXRlSWRlbnRpdHlTdG9yZUdyb3VwJHtwcm9wcy5kaXNwbGF5TmFtZX1gLFxuICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwiaWRlbnRpdHlzdG9yZVwiLFxuICAgICAgICAgIGFjdGlvbjogXCJVcGRhdGVHcm91cFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L2lkZW50aXR5c3RvcmUvY29tbWFuZC9VcGRhdGVHcm91cENvbW1hbmRcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBHcm91cElkOiB0aGlzLmdyb3VwSWQsXG4gICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IHByb3BzLmlkZW50aXR5U3RvcmVJZCxcbiAgICAgICAgICAgIC8vIFRPRE86IFN1cHBwb3J0IHRha2luZyBpbiBhbnkgY2hhbmdlcyBhbmQgdXBkYXRpbmcgdGhlbVxuICAgICAgICAgICAgT3BlcmF0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQXR0cmlidXRlUGF0aDogXCJEaXNwbGF5TmFtZVwiLFxuICAgICAgICAgICAgICAgIEF0dHJpYnV0ZVZhbHVlOiBwcm9wcy5kaXNwbGF5TmFtZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQXR0cmlidXRlUGF0aDogXCJEZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgIEF0dHJpYnV0ZVZhbHVlOiBwcm9wcy5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YocGh5c2ljYWxJZClcbiAgICAgICAgfSxcbiAgICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgICAgLy8gVE9ETzogTG9jayBkb3duIHBlcm1pc3Npb25zLCB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgICAgICAvLyBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIC8vICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIC8vICAgICBhY3Rpb25zOiBbXCJpZGVudGl0eXN0b3JlOlVwZGF0ZUdyb3VwXCJdLFxuICAgICAgICAvLyAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgIC8vICAgfSlcbiAgICAgICAgLy8gXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Okdyb3VwXCJcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gRGVsZXRlIEdyb3VwXG4gICAgY29uc3QgZGVsZXRlR3JvdXAgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJkZWxldGVJZGVudGl0eVN0b3JlR3JvdXBcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBgZGVsZXRlSWRlbnRpdHlTdG9yZUdyb3VwJHtwcm9wcy5kaXNwbGF5TmFtZX1gLFxuICAgICAgICBvbkRlbGV0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwiaWRlbnRpdHlzdG9yZVwiLFxuICAgICAgICAgIGFjdGlvbjogXCJEZWxldGVHcm91cFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L2lkZW50aXR5c3RvcmUvY29tbWFuZC9EZWxldGVHcm91cENvbW1hbmRcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBHcm91cElkOiB0aGlzLmdyb3VwSWQsXG4gICAgICAgICAgICBJZGVudGl0eVN0b3JlSWQ6IHByb3BzLmlkZW50aXR5U3RvcmVJZFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgICAgLy8gVE9ETzogTG9jayBkb3duIHBlcm1pc3Npb25zLCB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgICAgICAvLyBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIC8vICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIC8vICAgICBhY3Rpb25zOiBbXCJpZGVudGl0eXN0b3JlOkRlbGV0ZUdyb3VwXCJdLFxuICAgICAgICAvLyAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgIC8vICAgfSlcbiAgICAgICAgLy8gXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Okdyb3VwXCJcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gSW1wbGVtZW50IERlcGVuZGFibGUgdG8gbWFrZSBjb25zdHJ1Y3QgZGVwZW5kYWJsZVxuICAgIERlcGVuZGFibGUuaW1wbGVtZW50KHRoaXMsIHtcbiAgICAgIGRlcGVuZGVuY3lSb290czogW2NyZWF0ZUdyb3VwLCB1cGRhdGVHcm91cCwgZGVsZXRlR3JvdXBdXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0R3JvdXBJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdyb3VwSWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,13 @@
1
1
  import { Construct } from "constructs";
2
2
  import { KeyValue } from "../../../../types";
3
+ import { Role } from "..";
3
4
  export declare class PermissionSet extends Construct {
4
5
  private permissionSetArn;
5
6
  constructor(scope: Construct, id: string, props: {
6
7
  name: string;
7
8
  instanceArn: string;
8
9
  description?: string;
10
+ role: Role;
9
11
  managedPolicies?: string[];
10
12
  tags?: KeyValue[];
11
13
  });
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PermissionSet = void 0;
4
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
4
  const constructs_1 = require("constructs");
6
5
  const customResources = require("aws-cdk-lib/custom-resources");
7
6
  const awsCustomResource_1 = require("../../utilities/awsCustomResource");
@@ -11,7 +10,7 @@ function transformTags(tags) {
11
10
  class PermissionSet extends constructs_1.Construct {
12
11
  constructor(scope, id, props) {
13
12
  super(scope, id);
14
- const physicalId = `permissionSet${props.name}`;
13
+ const permissionSetPhysicalId = `permissionSet${props.name}`;
15
14
  const createPermissionSet = new awsCustomResource_1.AwsCustomResource(this, "createPermissionSet", {
16
15
  functionName: `createPermissionSet${props.name}`,
17
16
  onCreate: {
@@ -23,19 +22,23 @@ class PermissionSet extends constructs_1.Construct {
23
22
  Description: props.description,
24
23
  Tags: transformTags(props.tags)
25
24
  },
26
- physicalResourceId: customResources.PhysicalResourceId.of(physicalId)
25
+ physicalResourceId: customResources.PhysicalResourceId.of(permissionSetPhysicalId)
27
26
  },
28
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
29
- new aws_iam_1.PolicyStatement({
30
- actions: [
31
- "sso:*"
32
- // TODO: Move into a role policy for entire ManagedOrganisation custom resources
33
- // "sso:ProvisionPermissionSet",
34
- // "sso:TagResource"
35
- ],
36
- resources: ["*"]
37
- })
38
- ]),
27
+ policy: customResources.AwsCustomResourcePolicy.fromSdkCalls({
28
+ resources: ["*"]
29
+ }),
30
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
31
+ // role: props.role,
32
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
33
+ // new PolicyStatement({
34
+ // actions: [
35
+ // "sso:CreatePermissionSet",
36
+ // "sso:ProvisionPermissionSet",
37
+ // "sso:TagResource"
38
+ // ],
39
+ // resources: ["*"]
40
+ // })
41
+ // ]),
39
42
  resourceType: "Custom::PermissionSet"
40
43
  });
41
44
  this.permissionSetArn = createPermissionSet.getResponseField("PermissionSet.PermissionSetArn");
@@ -49,20 +52,26 @@ class PermissionSet extends constructs_1.Construct {
49
52
  PermissionSetArn: this.permissionSetArn,
50
53
  Description: props.description
51
54
  },
52
- physicalResourceId: customResources.PhysicalResourceId.of(physicalId)
55
+ physicalResourceId: customResources.PhysicalResourceId.of(permissionSetPhysicalId)
53
56
  },
54
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
55
- new aws_iam_1.PolicyStatement({
56
- actions: [
57
- "sso:UpdatePermissionSet",
58
- "sso:ProvisionPermissionSet",
59
- "sso:TagResource"
60
- ],
61
- resources: ["*"]
62
- })
63
- ]),
57
+ policy: customResources.AwsCustomResourcePolicy.fromSdkCalls({
58
+ resources: ["*"]
59
+ }),
60
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
61
+ // role: props.role,
62
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
63
+ // new PolicyStatement({
64
+ // actions: [
65
+ // "sso:UpdatePermissionSet",
66
+ // "sso:ProvisionPermissionSet",
67
+ // "sso:TagResource"
68
+ // ],
69
+ // resources: ["*"]
70
+ // })
71
+ // ]),
64
72
  resourceType: "Custom::PermissionSet"
65
73
  });
74
+ updatePermissionSet.node.addDependency(createPermissionSet);
66
75
  const deletePermissionSet = new awsCustomResource_1.AwsCustomResource(this, "deletePermissionSet", {
67
76
  functionName: `deletePermissionSet${props.name}`,
68
77
  onDelete: {
@@ -73,22 +82,28 @@ class PermissionSet extends constructs_1.Construct {
73
82
  PermissionSetArn: this.permissionSetArn
74
83
  }
75
84
  },
76
- policy: customResources.AwsCustomResourcePolicy.fromStatements([
77
- new aws_iam_1.PolicyStatement({
78
- actions: [
79
- "sso:UpdatePermissionSet",
80
- "sso:DeletePermissionSet",
81
- "sso:TagResource"
82
- ],
83
- resources: ["*"]
84
- })
85
- ]),
85
+ policy: customResources.AwsCustomResourcePolicy.fromSdkCalls({
86
+ resources: ["*"]
87
+ }),
88
+ // TODO: Lock down permissions, when we're ready to troubleshoot intermittent policy errors
89
+ // role: props.role,
90
+ // policy: customResources.AwsCustomResourcePolicy.fromStatements([
91
+ // new PolicyStatement({
92
+ // actions: [
93
+ // "sso:UpdatePermissionSet",
94
+ // "sso:DeletePermissionSet",
95
+ // "sso:TagResource"
96
+ // ],
97
+ // resources: ["*"]
98
+ // })
99
+ // ]),
86
100
  resourceType: "Custom::PermissionSet"
87
101
  });
102
+ deletePermissionSet.node.addDependency(createPermissionSet);
88
103
  }
89
104
  getPermissionSetArn() {
90
105
  return this.permissionSetArn;
91
106
  }
92
107
  }
93
108
  exports.PermissionSet = PermissionSet;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvblNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9wZXJtaXNzaW9uU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFzRDtBQUN0RCwyQ0FBdUM7QUFDdkMsZ0VBQWdFO0FBQ2hFLHlFQUFzRTtBQUd0RSxTQUFTLGFBQWEsQ0FBQyxJQUFpQjtJQUN0QyxPQUFPLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFHMUMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FNQztRQUVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVoRCxNQUFNLG1CQUFtQixHQUFHLElBQUkscUNBQWlCLENBQy9DLElBQUksRUFDSixxQkFBcUIsRUFDckI7WUFDRSxZQUFZLEVBQUUsc0JBQXNCLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDaEQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUscUJBQXFCLEVBQUUsNkdBQTZHO2dCQUM1SSxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO29CQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2lCQUNoQztnQkFDRCxrQkFBa0IsRUFBRSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN0RTtZQUNELE1BQU0sRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUM3RCxJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCxPQUFPO3dCQUNQLGdGQUFnRjt3QkFDaEYsZ0NBQWdDO3dCQUNoQyxvQkFBb0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNILENBQUM7WUFDRixZQUFZLEVBQUUsdUJBQXVCO1NBQ3RDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FDMUQsZ0NBQWdDLENBQ2pDLENBQUM7UUFFRixNQUFNLG1CQUFtQixHQUFHLElBQUkscUNBQWlCLENBQy9DLElBQUksRUFDSixxQkFBcUIsRUFDckI7WUFDRSxZQUFZLEVBQUUsc0JBQXNCLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDaEQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUscUJBQXFCLEVBQUUsNkdBQTZHO2dCQUM1SSxVQUFVLEVBQUU7b0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO29CQUN2QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7aUJBQy9CO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3RFO1lBQ0QsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdELElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1QixpQkFBaUI7cUJBQ2xCO29CQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNILENBQUM7WUFDRixZQUFZLEVBQUUsdUJBQXVCO1NBQ3RDLENBQ0YsQ0FBQztRQUVGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxxQ0FBaUIsQ0FDL0MsSUFBSSxFQUNKLHFCQUFxQixFQUNyQjtZQUNFLFlBQVksRUFBRSxzQkFBc0IsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNoRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSw2R0FBNkc7Z0JBQzVJLFVBQVUsRUFBRTtvQkFDVixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7aUJBQ3hDO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0QsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6Qix5QkFBeUI7d0JBQ3pCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2lCQUNqQixDQUFDO2FBQ0gsQ0FBQztZQUNGLFlBQVksRUFBRSx1QkFBdUI7U0FDdEMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFoSEQsc0NBZ0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21SZXNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hd3NDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdHlwZXNcIjtcblxuZnVuY3Rpb24gdHJhbnNmb3JtVGFncyh0YWdzPzogS2V5VmFsdWVbXSkge1xuICByZXR1cm4gdGFncz8ubWFwKCh7IGtleSwgdmFsdWUgfSkgPT4gKHsgS2V5OiBrZXksIFZhbHVlOiB2YWx1ZSB9KSk7XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2V0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBpbnN0YW5jZUFybjogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgICBtYW5hZ2VkUG9saWNpZXM/OiBzdHJpbmdbXTtcbiAgICAgIHRhZ3M/OiBLZXlWYWx1ZVtdO1xuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHBoeXNpY2FsSWQgPSBgcGVybWlzc2lvblNldCR7cHJvcHMubmFtZX1gO1xuXG4gICAgY29uc3QgY3JlYXRlUGVybWlzc2lvblNldCA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICBcImNyZWF0ZVBlcm1pc3Npb25TZXRcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBgY3JlYXRlUGVybWlzc2lvblNldCR7cHJvcHMubmFtZX1gLFxuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgICAgYWN0aW9uOiBcIkNyZWF0ZVBlcm1pc3Npb25TZXRcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9zc28tYWRtaW4vY29tbWFuZC9DcmVhdGVQZXJtaXNzaW9uU2V0Q29tbWFuZFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgICBJbnN0YW5jZUFybjogcHJvcHMuaW5zdGFuY2VBcm4sXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBUYWdzOiB0cmFuc2Zvcm1UYWdzKHByb3BzLnRhZ3MpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YocGh5c2ljYWxJZClcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICBcInNzbzoqXCJcbiAgICAgICAgICAgICAgLy8gVE9ETzogTW92ZSBpbnRvIGEgcm9sZSBwb2xpY3kgZm9yIGVudGlyZSBNYW5hZ2VkT3JnYW5pc2F0aW9uIGN1c3RvbSByZXNvdXJjZXNcbiAgICAgICAgICAgICAgLy8gXCJzc286UHJvdmlzaW9uUGVybWlzc2lvblNldFwiLFxuICAgICAgICAgICAgICAvLyBcInNzbzpUYWdSZXNvdXJjZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlBlcm1pc3Npb25TZXRcIlxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnBlcm1pc3Npb25TZXRBcm4gPSBjcmVhdGVQZXJtaXNzaW9uU2V0LmdldFJlc3BvbnNlRmllbGQoXG4gICAgICBcIlBlcm1pc3Npb25TZXQuUGVybWlzc2lvblNldEFyblwiXG4gICAgKTtcblxuICAgIGNvbnN0IHVwZGF0ZVBlcm1pc3Npb25TZXQgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJ1cGRhdGVQZXJtaXNzaW9uU2V0XCIsXG4gICAgICB7XG4gICAgICAgIGZ1bmN0aW9uTmFtZTogYHVwZGF0ZVBlcm1pc3Npb25TZXQke3Byb3BzLm5hbWV9YCxcbiAgICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgICBzZXJ2aWNlOiBcInNzby1hZG1pblwiLFxuICAgICAgICAgIGFjdGlvbjogXCJVcGRhdGVQZXJtaXNzaW9uU2V0XCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL3YzL2xhdGVzdC9jbGllbnQvc3NvLWFkbWluL2NvbW1hbmQvVXBkYXRlUGVybWlzc2lvblNldENvbW1hbmRcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBJbnN0YW5jZUFybjogcHJvcHMuaW5zdGFuY2VBcm4sXG4gICAgICAgICAgICBQZXJtaXNzaW9uU2V0QXJuOiB0aGlzLnBlcm1pc3Npb25TZXRBcm4sXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb25cbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3VzdG9tUmVzb3VyY2VzLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihwaHlzaWNhbElkKVxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIFwic3NvOlVwZGF0ZVBlcm1pc3Npb25TZXRcIixcbiAgICAgICAgICAgICAgXCJzc286UHJvdmlzaW9uUGVybWlzc2lvblNldFwiLFxuICAgICAgICAgICAgICBcInNzbzpUYWdSZXNvdXJjZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlBlcm1pc3Npb25TZXRcIlxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBkZWxldGVQZXJtaXNzaW9uU2V0ID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiZGVsZXRlUGVybWlzc2lvblNldFwiLFxuICAgICAge1xuICAgICAgICBmdW5jdGlvbk5hbWU6IGBkZWxldGVQZXJtaXNzaW9uU2V0JHtwcm9wcy5uYW1lfWAsXG4gICAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJzc28tYWRtaW5cIixcbiAgICAgICAgICBhY3Rpb246IFwiRGVsZXRlUGVybWlzc2lvblNldFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3Nzby1hZG1pbi9jb21tYW5kL0RlbGV0ZVBlcm1pc3Npb25TZXRDb21tYW5kXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgSW5zdGFuY2VBcm46IHByb3BzLmluc3RhbmNlQXJuLFxuICAgICAgICAgICAgUGVybWlzc2lvblNldEFybjogdGhpcy5wZXJtaXNzaW9uU2V0QXJuXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIFwic3NvOlVwZGF0ZVBlcm1pc3Npb25TZXRcIixcbiAgICAgICAgICAgICAgXCJzc286RGVsZXRlUGVybWlzc2lvblNldFwiLFxuICAgICAgICAgICAgICBcInNzbzpUYWdSZXNvdXJjZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlBlcm1pc3Npb25TZXRcIlxuICAgICAgfVxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldFBlcm1pc3Npb25TZXRBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uU2V0QXJuO1xuICB9XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvblNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2lhbS9pZGVudGl0eUNlbnRlci9wZXJtaXNzaW9uU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUF1QztBQUN2QyxnRUFBZ0U7QUFDaEUseUVBQXNFO0FBSXRFLFNBQVMsYUFBYSxDQUFDLElBQWlCO0lBQ3RDLE9BQU8sSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQUcxQyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQU9DO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHFDQUFpQixDQUMvQyxJQUFJLEVBQ0oscUJBQXFCLEVBQ3JCO1lBQ0UsWUFBWSxFQUFFLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2hELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFLHFCQUFxQixFQUFFLDZHQUE2RztnQkFDNUksVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDaEM7Z0JBQ0Qsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDdkQsdUJBQXVCLENBQ3hCO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsZUFBZSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDM0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQ2pCLENBQUM7WUFDRiwyRkFBMkY7WUFDM0Ysb0JBQW9CO1lBQ3BCLG1FQUFtRTtZQUNuRSwwQkFBMEI7WUFDMUIsaUJBQWlCO1lBQ2pCLG1DQUFtQztZQUNuQyxzQ0FBc0M7WUFDdEMsMEJBQTBCO1lBQzFCLFNBQVM7WUFDVCx1QkFBdUI7WUFDdkIsT0FBTztZQUNQLE1BQU07WUFDTixZQUFZLEVBQUUsdUJBQXVCO1NBQ3RDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FDMUQsZ0NBQWdDLENBQ2pDLENBQUM7UUFFRixNQUFNLG1CQUFtQixHQUFHLElBQUkscUNBQWlCLENBQy9DLElBQUksRUFDSixxQkFBcUIsRUFDckI7WUFDRSxZQUFZLEVBQUUsc0JBQXNCLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDaEQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUscUJBQXFCLEVBQUUsNkdBQTZHO2dCQUM1SSxVQUFVLEVBQUU7b0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO29CQUN2QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7aUJBQy9CO2dCQUNELGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQ3ZELHVCQUF1QixDQUN4QjthQUNGO1lBRUQsTUFBTSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7Z0JBQzNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzthQUNqQixDQUFDO1lBQ0YsMkZBQTJGO1lBQzNGLG9CQUFvQjtZQUNwQixtRUFBbUU7WUFDbkUsMEJBQTBCO1lBQzFCLGlCQUFpQjtZQUNqQixtQ0FBbUM7WUFDbkMsc0NBQXNDO1lBQ3RDLDBCQUEwQjtZQUMxQixTQUFTO1lBQ1QsdUJBQXVCO1lBQ3ZCLE9BQU87WUFDUCxNQUFNO1lBQ04sWUFBWSxFQUFFLHVCQUF1QjtTQUN0QyxDQUNGLENBQUM7UUFDRixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFNUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHFDQUFpQixDQUMvQyxJQUFJLEVBQ0oscUJBQXFCLEVBQ3JCO1lBQ0UsWUFBWSxFQUFFLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2hELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFLHFCQUFxQixFQUFFLDZHQUE2RztnQkFDNUksVUFBVSxFQUFFO29CQUNWLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQkFDeEM7YUFDRjtZQUNELE1BQU0sRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDO2dCQUMzRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7YUFDakIsQ0FBQztZQUNGLDJGQUEyRjtZQUMzRixvQkFBb0I7WUFDcEIsbUVBQW1FO1lBQ25FLDBCQUEwQjtZQUMxQixpQkFBaUI7WUFDakIsbUNBQW1DO1lBQ25DLG1DQUFtQztZQUNuQywwQkFBMEI7WUFDMUIsU0FBUztZQUNULHVCQUF1QjtZQUN2QixPQUFPO1lBQ1AsTUFBTTtZQUNOLFlBQVksRUFBRSx1QkFBdUI7U0FDdEMsQ0FDRixDQUFDO1FBQ0YsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBdElELHNDQXNJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uXCI7XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRhZ3ModGFncz86IEtleVZhbHVlW10pIHtcbiAgcmV0dXJuIHRhZ3M/Lm1hcCgoeyBrZXksIHZhbHVlIH0pID0+ICh7IEtleToga2V5LCBWYWx1ZTogdmFsdWUgfSkpO1xufVxuXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcGVybWlzc2lvblNldEFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczoge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgcm9sZTogUm9sZTtcbiAgICAgIG1hbmFnZWRQb2xpY2llcz86IHN0cmluZ1tdO1xuICAgICAgdGFncz86IEtleVZhbHVlW107XG4gICAgfVxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcGVybWlzc2lvblNldFBoeXNpY2FsSWQgPSBgcGVybWlzc2lvblNldCR7cHJvcHMubmFtZX1gO1xuXG4gICAgY29uc3QgY3JlYXRlUGVybWlzc2lvblNldCA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICBcImNyZWF0ZVBlcm1pc3Npb25TZXRcIixcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBgY3JlYXRlUGVybWlzc2lvblNldCR7cHJvcHMubmFtZX1gLFxuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6IFwic3NvLWFkbWluXCIsXG4gICAgICAgICAgYWN0aW9uOiBcIkNyZWF0ZVBlcm1pc3Npb25TZXRcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9zc28tYWRtaW4vY29tbWFuZC9DcmVhdGVQZXJtaXNzaW9uU2V0Q29tbWFuZFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgICBJbnN0YW5jZUFybjogcHJvcHMuaW5zdGFuY2VBcm4sXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBUYWdzOiB0cmFuc2Zvcm1UYWdzKHByb3BzLnRhZ3MpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICBwZXJtaXNzaW9uU2V0UGh5c2ljYWxJZFxuICAgICAgICAgIClcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgICAgfSksXG4gICAgICAgIC8vIFRPRE86IExvY2sgZG93biBwZXJtaXNzaW9ucywgd2hlbiB3ZSdyZSByZWFkeSB0byB0cm91Ymxlc2hvb3QgaW50ZXJtaXR0ZW50IHBvbGljeSBlcnJvcnNcbiAgICAgICAgLy8gcm9sZTogcHJvcHMucm9sZSxcbiAgICAgICAgLy8gcG9saWN5OiBjdXN0b21SZXNvdXJjZXMuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICAvLyAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAvLyAgICAgYWN0aW9uczogW1xuICAgICAgICAvLyAgICAgICBcInNzbzpDcmVhdGVQZXJtaXNzaW9uU2V0XCIsXG4gICAgICAgIC8vICAgICAgIFwic3NvOlByb3Zpc2lvblBlcm1pc3Npb25TZXRcIixcbiAgICAgICAgLy8gICAgICAgXCJzc286VGFnUmVzb3VyY2VcIlxuICAgICAgICAvLyAgICAgXSxcbiAgICAgICAgLy8gICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICAvLyAgIH0pXG4gICAgICAgIC8vIF0pLFxuICAgICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpQZXJtaXNzaW9uU2V0XCJcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5wZXJtaXNzaW9uU2V0QXJuID0gY3JlYXRlUGVybWlzc2lvblNldC5nZXRSZXNwb25zZUZpZWxkKFxuICAgICAgXCJQZXJtaXNzaW9uU2V0LlBlcm1pc3Npb25TZXRBcm5cIlxuICAgICk7XG5cbiAgICBjb25zdCB1cGRhdGVQZXJtaXNzaW9uU2V0ID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwidXBkYXRlUGVybWlzc2lvblNldFwiLFxuICAgICAge1xuICAgICAgICBmdW5jdGlvbk5hbWU6IGB1cGRhdGVQZXJtaXNzaW9uU2V0JHtwcm9wcy5uYW1lfWAsXG4gICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJzc28tYWRtaW5cIixcbiAgICAgICAgICBhY3Rpb246IFwiVXBkYXRlUGVybWlzc2lvblNldFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3Nzby1hZG1pbi9jb21tYW5kL1VwZGF0ZVBlcm1pc3Npb25TZXRDb21tYW5kXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgSW5zdGFuY2VBcm46IHByb3BzLmluc3RhbmNlQXJuLFxuICAgICAgICAgICAgUGVybWlzc2lvblNldEFybjogdGhpcy5wZXJtaXNzaW9uU2V0QXJuLFxuICAgICAgICAgICAgRGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGN1c3RvbVJlc291cmNlcy5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICBwZXJtaXNzaW9uU2V0UGh5c2ljYWxJZFxuICAgICAgICAgIClcbiAgICAgICAgfSxcblxuICAgICAgICBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICB9KSxcbiAgICAgICAgLy8gVE9ETzogTG9jayBkb3duIHBlcm1pc3Npb25zLCB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgICAgICAvLyByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgICAvLyBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIC8vICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIC8vICAgICBhY3Rpb25zOiBbXG4gICAgICAgIC8vICAgICAgIFwic3NvOlVwZGF0ZVBlcm1pc3Npb25TZXRcIixcbiAgICAgICAgLy8gICAgICAgXCJzc286UHJvdmlzaW9uUGVybWlzc2lvblNldFwiLFxuICAgICAgICAvLyAgICAgICBcInNzbzpUYWdSZXNvdXJjZVwiXG4gICAgICAgIC8vICAgICBdLFxuICAgICAgICAvLyAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgIC8vICAgfSlcbiAgICAgICAgLy8gXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlBlcm1pc3Npb25TZXRcIlxuICAgICAgfVxuICAgICk7XG4gICAgdXBkYXRlUGVybWlzc2lvblNldC5ub2RlLmFkZERlcGVuZGVuY3koY3JlYXRlUGVybWlzc2lvblNldCk7XG5cbiAgICBjb25zdCBkZWxldGVQZXJtaXNzaW9uU2V0ID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiZGVsZXRlUGVybWlzc2lvblNldFwiLFxuICAgICAge1xuICAgICAgICBmdW5jdGlvbk5hbWU6IGBkZWxldGVQZXJtaXNzaW9uU2V0JHtwcm9wcy5uYW1lfWAsXG4gICAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJzc28tYWRtaW5cIixcbiAgICAgICAgICBhY3Rpb246IFwiRGVsZXRlUGVybWlzc2lvblNldFwiLCAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy92My9sYXRlc3QvY2xpZW50L3Nzby1hZG1pbi9jb21tYW5kL0RlbGV0ZVBlcm1pc3Npb25TZXRDb21tYW5kXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgSW5zdGFuY2VBcm46IHByb3BzLmluc3RhbmNlQXJuLFxuICAgICAgICAgICAgUGVybWlzc2lvblNldEFybjogdGhpcy5wZXJtaXNzaW9uU2V0QXJuXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICB9KSxcbiAgICAgICAgLy8gVE9ETzogTG9jayBkb3duIHBlcm1pc3Npb25zLCB3aGVuIHdlJ3JlIHJlYWR5IHRvIHRyb3VibGVzaG9vdCBpbnRlcm1pdHRlbnQgcG9saWN5IGVycm9yc1xuICAgICAgICAvLyByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgICAvLyBwb2xpY3k6IGN1c3RvbVJlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIC8vICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIC8vICAgICBhY3Rpb25zOiBbXG4gICAgICAgIC8vICAgICAgIFwic3NvOlVwZGF0ZVBlcm1pc3Npb25TZXRcIixcbiAgICAgICAgLy8gICAgICAgXCJzc286RGVsZXRlUGVybWlzc2lvblNldFwiLFxuICAgICAgICAvLyAgICAgICBcInNzbzpUYWdSZXNvdXJjZVwiXG4gICAgICAgIC8vICAgICBdLFxuICAgICAgICAvLyAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgIC8vICAgfSlcbiAgICAgICAgLy8gXSksXG4gICAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlBlcm1pc3Npb25TZXRcIlxuICAgICAgfVxuICAgICk7XG4gICAgZGVsZXRlUGVybWlzc2lvblNldC5ub2RlLmFkZERlcGVuZGVuY3koY3JlYXRlUGVybWlzc2lvblNldCk7XG4gIH1cbiAgcHVibGljIGdldFBlcm1pc3Npb25TZXRBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uU2V0QXJuO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,10 @@
1
1
  import { Account } from "@aws-sdk/client-organizations";
2
+ import { ICostAllocationTags } from "../config/aws";
2
3
  interface Config {
3
4
  region: string;
4
5
  environment: string;
5
6
  existingAccounts: Account[];
7
+ costAllocationTags: ICostAllocationTags[];
6
8
  accountId?: string;
7
9
  accountName?: string;
8
10
  }
@@ -8,13 +8,17 @@ function getConfig(accountName) {
8
8
  const config = {
9
9
  region: process.env.AWS_REGION || "us-east-1",
10
10
  environment: "development",
11
- existingAccounts: []
11
+ existingAccounts: [],
12
+ costAllocationTags: []
12
13
  };
13
14
  if (!process.env.AWS_REGION)
14
15
  console.warn("AWS_REGION is not set, defaulting to us-east-1");
15
16
  // Retrieve any pre-existing account config
16
17
  const fjallConfig = util_1.Config.loadConfig();
18
+ // Get existing accounts
17
19
  config.existingAccounts = fjallConfig.getExistingAccounts();
20
+ // Get cost allocation tags
21
+ config.costAllocationTags = fjallConfig.getCostAllocationTags();
18
22
  // If unspecified account name - try to retrieve from context
19
23
  if (!accountName)
20
24
  accountName = app.node.tryGetContext("accountName");
@@ -43,4 +47,4 @@ function getConfig(accountName) {
43
47
  return config;
44
48
  }
45
49
  exports.default = getConfig;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDhCQTRDQztBQXZERCxnQ0FBeUI7QUFDekIsc0NBQW9EO0FBVXBELFNBQWdCLFNBQVMsQ0FBQyxXQUFvQjtJQUM1QyxNQUFNLEdBQUcsR0FBRyxhQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFOUIsTUFBTSxNQUFNLEdBQVc7UUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLFdBQVc7UUFDN0MsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZ0JBQWdCLEVBQUUsRUFBRTtLQUNyQixDQUFDO0lBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFFakUsMkNBQTJDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFFNUQsNkRBQTZEO0lBQzdELElBQUksQ0FBQyxXQUFXO1FBQUUsV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RFLG9FQUFvRTtJQUNwRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QixNQUFNLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtGQUFrRjtJQUNsRixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELHdFQUF3RTtRQUN4RSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFFN0IsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsa0JBQWUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3JnYW5pemF0aW9uc1wiO1xuXG5pbXBvcnQgQXBwIGZyb20gXCIuLi9hcHBcIjtcbmltcG9ydCB7IENvbmZpZyBhcyBGamFsbENvbmZpZyB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG5pbnRlcmZhY2UgQ29uZmlnIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIGV4aXN0aW5nQWNjb3VudHM6IEFjY291bnRbXTtcbiAgYWNjb3VudElkPzogc3RyaW5nO1xuICBhY2NvdW50TmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZyhhY2NvdW50TmFtZT86IHN0cmluZyk6IENvbmZpZyB7XG4gIGNvbnN0IGFwcCA9IEFwcC5nZXRJbnN0YW5jZSgpO1xuXG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCBcInVzLWVhc3QtMVwiLFxuICAgIGVudmlyb25tZW50OiBcImRldmVsb3BtZW50XCIsXG4gICAgZXhpc3RpbmdBY2NvdW50czogW11cbiAgfTtcblxuICBpZiAoIXByb2Nlc3MuZW52LkFXU19SRUdJT04pXG4gICAgY29uc29sZS53YXJuKFwiQVdTX1JFR0lPTiBpcyBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIHVzLWVhc3QtMVwiKTtcblxuICAvLyBSZXRyaWV2ZSBhbnkgcHJlLWV4aXN0aW5nIGFjY291bnQgY29uZmlnXG4gIGNvbnN0IGZqYWxsQ29uZmlnID0gRmphbGxDb25maWcubG9hZENvbmZpZygpO1xuICBjb25maWcuZXhpc3RpbmdBY2NvdW50cyA9IGZqYWxsQ29uZmlnLmdldEV4aXN0aW5nQWNjb3VudHMoKTtcblxuICAvLyBJZiB1bnNwZWNpZmllZCBhY2NvdW50IG5hbWUgLSB0cnkgdG8gcmV0cmlldmUgZnJvbSBjb250ZXh0XG4gIGlmICghYWNjb3VudE5hbWUpIGFjY291bnROYW1lID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImFjY291bnROYW1lXCIpO1xuICAvLyBJZiB3ZSBoYXZlIGFuIGFjY291bnQgbmFtZSAtIGxvb2sgZm9yIGFzc29jaWF0ZWQgcHJvdmlkZXIgYWNjb3VudFxuICBpZiAoYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBwcm92aWRlckFjY291bnQgPSBmamFsbENvbmZpZy5nZXRQcm92aWRlckFjY291bnQoYWNjb3VudE5hbWUpO1xuICAgIGlmICghIXByb3ZpZGVyQWNjb3VudCkge1xuICAgICAgY29uZmlnLmFjY291bnRJZCA9IHByb3ZpZGVyQWNjb3VudC5pZDtcbiAgICAgIGNvbmZpZy5hY2NvdW50TmFtZSA9IHByb3ZpZGVyQWNjb3VudC5uYW1lO1xuICAgICAgY29uZmlnLmVudmlyb25tZW50ID0gcHJvdmlkZXJBY2NvdW50LmVudmlyb25tZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlIHN0aWxsIGRvbid0IGhhdmUgYW4gYWNjb3VudCBuYW1lIC0gdHJ5IHRvIHJldHJpZXZlIGFjY291bnRJZCBmcm9tIGNvbnRleHRcbiAgaWYgKCFjb25maWcuYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBhcHAubm9kZS50cnlHZXRDb250ZXh0KFwiYWNjb3VudElkXCIpO1xuICAgIC8vIElmIHdlIGZpbmQgYW4gYWNjb3VudElkIC0gcmV0cmlldmUgdGhlIGFzc29jaWF0ZWQgYWNjb3VudCBmcm9tIGNvbmZpZ1xuICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgIGNvbmZpZy5hY2NvdW50SWQgPSBhY2NvdW50SWQ7XG5cbiAgICAgIGNvbnN0IHByb3ZpZGVyQWNjb3VudCA9IGZqYWxsQ29uZmlnLmdldFByb3ZpZGVyQWNjb3VudEJ5SWQoYWNjb3VudElkKTtcbiAgICAgIGlmICghIXByb3ZpZGVyQWNjb3VudCkge1xuICAgICAgICBjb25maWcuYWNjb3VudE5hbWUgPSBwcm92aWRlckFjY291bnQubmFtZTtcbiAgICAgICAgY29uZmlnLmVudmlyb25tZW50ID0gcHJvdmlkZXJBY2NvdW50LmVudmlyb25tZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldENvbmZpZztcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLDhCQWtEQztBQS9ERCxnQ0FBeUI7QUFDekIsc0NBQW9EO0FBWXBELFNBQWdCLFNBQVMsQ0FBQyxXQUFvQjtJQUM1QyxNQUFNLEdBQUcsR0FBRyxhQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFOUIsTUFBTSxNQUFNLEdBQVc7UUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLFdBQVc7UUFDN0MsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixrQkFBa0IsRUFBRSxFQUFFO0tBQ3ZCLENBQUM7SUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUVqRSwyQ0FBMkM7SUFDM0MsTUFBTSxXQUFXLEdBQUcsYUFBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTdDLHdCQUF3QjtJQUN4QixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFFNUQsMkJBQTJCO0lBQzNCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUVoRSw2REFBNkQ7SUFDN0QsSUFBSSxDQUFDLFdBQVc7UUFBRSxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsb0VBQW9FO0lBQ3BFLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDMUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsa0ZBQWtGO0lBQ2xGLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsd0VBQXdFO1FBQ3hFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUU3QixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDMUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxrQkFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1vcmdhbml6YXRpb25zXCI7XG5cbmltcG9ydCBBcHAgZnJvbSBcIi4uL2FwcFwiO1xuaW1wb3J0IHsgQ29uZmlnIGFzIEZqYWxsQ29uZmlnIH0gZnJvbSBcIkBmamFsbC91dGlsXCI7XG5pbXBvcnQgeyBJQ29zdEFsbG9jYXRpb25UYWdzIH0gZnJvbSBcIi4uL2NvbmZpZy9hd3NcIjtcblxuaW50ZXJmYWNlIENvbmZpZyB7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBleGlzdGluZ0FjY291bnRzOiBBY2NvdW50W107XG4gIGNvc3RBbGxvY2F0aW9uVGFnczogSUNvc3RBbGxvY2F0aW9uVGFnc1tdO1xuICBhY2NvdW50SWQ/OiBzdHJpbmc7XG4gIGFjY291bnROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZmlnKGFjY291bnROYW1lPzogc3RyaW5nKTogQ29uZmlnIHtcbiAgY29uc3QgYXBwID0gQXBwLmdldEluc3RhbmNlKCk7XG5cbiAgY29uc3QgY29uZmlnOiBDb25maWcgPSB7XG4gICAgcmVnaW9uOiBwcm9jZXNzLmVudi5BV1NfUkVHSU9OIHx8IFwidXMtZWFzdC0xXCIsXG4gICAgZW52aXJvbm1lbnQ6IFwiZGV2ZWxvcG1lbnRcIixcbiAgICBleGlzdGluZ0FjY291bnRzOiBbXSxcbiAgICBjb3N0QWxsb2NhdGlvblRhZ3M6IFtdXG4gIH07XG5cbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NfUkVHSU9OKVxuICAgIGNvbnNvbGUud2FybihcIkFXU19SRUdJT04gaXMgbm90IHNldCwgZGVmYXVsdGluZyB0byB1cy1lYXN0LTFcIik7XG5cbiAgLy8gUmV0cmlldmUgYW55IHByZS1leGlzdGluZyBhY2NvdW50IGNvbmZpZ1xuICBjb25zdCBmamFsbENvbmZpZyA9IEZqYWxsQ29uZmlnLmxvYWRDb25maWcoKTtcblxuICAvLyBHZXQgZXhpc3RpbmcgYWNjb3VudHNcbiAgY29uZmlnLmV4aXN0aW5nQWNjb3VudHMgPSBmamFsbENvbmZpZy5nZXRFeGlzdGluZ0FjY291bnRzKCk7XG5cbiAgLy8gR2V0IGNvc3QgYWxsb2NhdGlvbiB0YWdzXG4gIGNvbmZpZy5jb3N0QWxsb2NhdGlvblRhZ3MgPSBmamFsbENvbmZpZy5nZXRDb3N0QWxsb2NhdGlvblRhZ3MoKTtcblxuICAvLyBJZiB1bnNwZWNpZmllZCBhY2NvdW50IG5hbWUgLSB0cnkgdG8gcmV0cmlldmUgZnJvbSBjb250ZXh0XG4gIGlmICghYWNjb3VudE5hbWUpIGFjY291bnROYW1lID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImFjY291bnROYW1lXCIpO1xuICAvLyBJZiB3ZSBoYXZlIGFuIGFjY291bnQgbmFtZSAtIGxvb2sgZm9yIGFzc29jaWF0ZWQgcHJvdmlkZXIgYWNjb3VudFxuICBpZiAoYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBwcm92aWRlckFjY291bnQgPSBmamFsbENvbmZpZy5nZXRQcm92aWRlckFjY291bnQoYWNjb3VudE5hbWUpO1xuICAgIGlmICghIXByb3ZpZGVyQWNjb3VudCkge1xuICAgICAgY29uZmlnLmFjY291bnRJZCA9IHByb3ZpZGVyQWNjb3VudC5pZDtcbiAgICAgIGNvbmZpZy5hY2NvdW50TmFtZSA9IHByb3ZpZGVyQWNjb3VudC5uYW1lO1xuICAgICAgY29uZmlnLmVudmlyb25tZW50ID0gcHJvdmlkZXJBY2NvdW50LmVudmlyb25tZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlIHN0aWxsIGRvbid0IGhhdmUgYW4gYWNjb3VudCBuYW1lIC0gdHJ5IHRvIHJldHJpZXZlIGFjY291bnRJZCBmcm9tIGNvbnRleHRcbiAgaWYgKCFjb25maWcuYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBhcHAubm9kZS50cnlHZXRDb250ZXh0KFwiYWNjb3VudElkXCIpO1xuICAgIC8vIElmIHdlIGZpbmQgYW4gYWNjb3VudElkIC0gcmV0cmlldmUgdGhlIGFzc29jaWF0ZWQgYWNjb3VudCBmcm9tIGNvbmZpZ1xuICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgIGNvbmZpZy5hY2NvdW50SWQgPSBhY2NvdW50SWQ7XG5cbiAgICAgIGNvbnN0IHByb3ZpZGVyQWNjb3VudCA9IGZqYWxsQ29uZmlnLmdldFByb3ZpZGVyQWNjb3VudEJ5SWQoYWNjb3VudElkKTtcbiAgICAgIGlmICghIXByb3ZpZGVyQWNjb3VudCkge1xuICAgICAgICBjb25maWcuYWNjb3VudE5hbWUgPSBwcm92aWRlckFjY291bnQubmFtZTtcbiAgICAgICAgY29uZmlnLmVudmlyb25tZW50ID0gcHJvdmlkZXJBY2NvdW50LmVudmlyb25tZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldENvbmZpZztcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "0.7.0",
3
+ "version": "0.8.2",
4
4
  "bin": {
5
5
  "infrastructure": "bin/infrastructure.js"
6
6
  },
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@aws-sdk/client-cost-explorer": "^3.717.0",
37
37
  "@aws-sdk/client-organizations": "^3.716.0",
38
- "@fjall/util": "^0.7.0",
38
+ "@fjall/util": "^0.8.2",
39
39
  "@pepperize/cdk-organizations": "^0.7.135",
40
40
  "aws-cdk": "^2.146.0",
41
41
  "aws-cdk-lib": "^2.146.0",
@@ -48,5 +48,5 @@
48
48
  "overrides": {
49
49
  "@smithy/core": "2.5.5"
50
50
  },
51
- "gitHead": "9eef79f12237b08a87a44e4dab94847c14782d40"
51
+ "gitHead": "01591606d3d4b46ac7b39235d34eab664f2af76d"
52
52
  }