@fjall/components-infrastructure 0.69.2 → 0.69.3

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.
@@ -19,17 +19,13 @@ class ManagedPlatform extends managedAccount_1.ManagedAccount {
19
19
  });
20
20
  // Convert accounts to flat array for IpamPool
21
21
  const orgAccounts = Object.values(props.accounts).flatMap((account) => Array.isArray(account) ? account : [account]);
22
- // Create IPAM pools for each configured region
23
- for (const region of allRegions) {
24
- // Use region in the construct ID to ensure uniqueness
25
- const regionSuffix = region.replace(/-/g, "");
26
- new ipamPool_1.IpamPool(this, `IpamPool${regionSuffix}`, {
27
- orgAccounts,
28
- region: region,
29
- ipamScope: ipam.privateDefaultScopeId
30
- });
31
- }
22
+ // Create IPAM pool hierarchy for all regions
23
+ new ipamPool_1.IpamPool(this, "IpamPool", {
24
+ orgAccounts,
25
+ regions: allRegions,
26
+ ipamScope: ipam.privateDefaultScopeId
27
+ });
32
28
  }
33
29
  }
34
30
  exports.ManagedPlatform = ManagedPlatform;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZFBsYXRmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9tYW5hZ2VkUGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQTZDO0FBQzdDLHNFQUFtRTtBQUVuRSxxREFBdUU7QUFDdkUscURBQWtEO0FBVWxELE1BQWEsZUFBZ0IsU0FBUSwrQkFBYztJQUNqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLDZCQUE2QjtRQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFTLEdBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUNuQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyw2Q0FBNkM7UUFFakUsMENBQTBDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbEMsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsOENBQThDO1FBQzlDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDN0MsQ0FBQztRQUVGLCtDQUErQztRQUMvQyxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLHNEQUFzRDtZQUN0RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLG1CQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsWUFBWSxFQUFFLEVBQUU7Z0JBQzVDLFdBQVc7Z0JBQ1gsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxxQkFBcUI7YUFDdEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQS9CRCwwQ0ErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJcGFtIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvaXBhbVwiO1xuaW1wb3J0IHsgSXBhbVBvb2wgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1Qb29sXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTWFuYWdlZEFjY291bnQsIE1hbmFnZWRBY2NvdW50UHJvcHMgfSBmcm9tIFwiLi9tYW5hZ2VkQWNjb3VudFwiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2dldENvbmZpZ1wiO1xuXG50eXBlIEFjY291bnRzQ29uZmlnID0ge1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiByZWFkb25seSBzdHJpbmdbXSB8IHN0cmluZztcbn07XG5cbmludGVyZmFjZSBNYW5hZ2VkUGxhdGZvcm1Qcm9wcyBleHRlbmRzIE1hbmFnZWRBY2NvdW50UHJvcHMge1xuICBhY2NvdW50czogQWNjb3VudHNDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBNYW5hZ2VkUGxhdGZvcm0gZXh0ZW5kcyBNYW5hZ2VkQWNjb3VudCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBNYW5hZ2VkUGxhdGZvcm1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgLy8gR2V0IGFsbCBjb25maWd1cmVkIHJlZ2lvbnNcbiAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTtcbiAgICBjb25zdCBhbGxSZWdpb25zID0gY29uZmlnLmFsbFJlZ2lvbnMubGVuZ3RoID4gMFxuICAgICAgPyBjb25maWcuYWxsUmVnaW9uc1xuICAgICAgOiBbcHJvcHMucmVnaW9uXTsgLy8gRmFsbGJhY2sgdG8gYXQgbGVhc3QgdGhlIGRlcGxveW1lbnQgcmVnaW9uXG5cbiAgICAvLyBDcmVhdGUgSVBBTSB3aXRoIGFsbCByZWdpb25zIGNvbmZpZ3VyZWRcbiAgICBjb25zdCBpcGFtID0gbmV3IElwYW0odGhpcywgXCJJcGFtXCIsIHtcbiAgICAgIHJlZ2lvbnM6IGFsbFJlZ2lvbnNcbiAgICB9KTtcblxuICAgIC8vIENvbnZlcnQgYWNjb3VudHMgdG8gZmxhdCBhcnJheSBmb3IgSXBhbVBvb2xcbiAgICBjb25zdCBvcmdBY2NvdW50cyA9IE9iamVjdC52YWx1ZXMocHJvcHMuYWNjb3VudHMpLmZsYXRNYXAoKGFjY291bnQpID0+XG4gICAgICBBcnJheS5pc0FycmF5KGFjY291bnQpID8gYWNjb3VudCA6IFthY2NvdW50XVxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgSVBBTSBwb29scyBmb3IgZWFjaCBjb25maWd1cmVkIHJlZ2lvblxuICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIGFsbFJlZ2lvbnMpIHtcbiAgICAgIC8vIFVzZSByZWdpb24gaW4gdGhlIGNvbnN0cnVjdCBJRCB0byBlbnN1cmUgdW5pcXVlbmVzc1xuICAgICAgY29uc3QgcmVnaW9uU3VmZml4ID0gcmVnaW9uLnJlcGxhY2UoLy0vZywgXCJcIik7XG4gICAgICBuZXcgSXBhbVBvb2wodGhpcywgYElwYW1Qb29sJHtyZWdpb25TdWZmaXh9YCwge1xuICAgICAgICBvcmdBY2NvdW50cyxcbiAgICAgICAgcmVnaW9uOiByZWdpb24sXG4gICAgICAgIGlwYW1TY29wZTogaXBhbS5wcml2YXRlRGVmYXVsdFNjb3BlSWRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZFBsYXRmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9tYW5hZ2VkUGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQTZDO0FBQzdDLHNFQUFtRTtBQUVuRSxxREFBdUU7QUFDdkUscURBQWtEO0FBVWxELE1BQWEsZUFBZ0IsU0FBUSwrQkFBYztJQUNqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLDZCQUE2QjtRQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFTLEdBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUNuQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyw2Q0FBNkM7UUFFakUsMENBQTBDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbEMsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsOENBQThDO1FBQzlDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDN0MsQ0FBQztRQUVGLDZDQUE2QztRQUM3QyxJQUFJLG1CQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM3QixXQUFXO1lBQ1gsT0FBTyxFQUFFLFVBQVU7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxxQkFBcUI7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0JELDBDQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElwYW0gfSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3cy9pcGFtXCI7XG5pbXBvcnQgeyBJcGFtUG9vbCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaXBhbVBvb2xcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkQWNjb3VudCwgTWFuYWdlZEFjY291bnRQcm9wcyB9IGZyb20gXCIuL21hbmFnZWRBY2NvdW50XCI7XG5pbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZ2V0Q29uZmlnXCI7XG5cbnR5cGUgQWNjb3VudHNDb25maWcgPSB7XG4gIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHJlYWRvbmx5IHN0cmluZ1tdIHwgc3RyaW5nO1xufTtcblxuaW50ZXJmYWNlIE1hbmFnZWRQbGF0Zm9ybVByb3BzIGV4dGVuZHMgTWFuYWdlZEFjY291bnRQcm9wcyB7XG4gIGFjY291bnRzOiBBY2NvdW50c0NvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIE1hbmFnZWRQbGF0Zm9ybSBleHRlbmRzIE1hbmFnZWRBY2NvdW50IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1hbmFnZWRQbGF0Zm9ybVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBHZXQgYWxsIGNvbmZpZ3VyZWQgcmVnaW9uc1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICAgIGNvbnN0IGFsbFJlZ2lvbnMgPSBjb25maWcuYWxsUmVnaW9ucy5sZW5ndGggPiAwXG4gICAgICA/IGNvbmZpZy5hbGxSZWdpb25zXG4gICAgICA6IFtwcm9wcy5yZWdpb25dOyAvLyBGYWxsYmFjayB0byBhdCBsZWFzdCB0aGUgZGVwbG95bWVudCByZWdpb25cblxuICAgIC8vIENyZWF0ZSBJUEFNIHdpdGggYWxsIHJlZ2lvbnMgY29uZmlndXJlZFxuICAgIGNvbnN0IGlwYW0gPSBuZXcgSXBhbSh0aGlzLCBcIklwYW1cIiwge1xuICAgICAgcmVnaW9uczogYWxsUmVnaW9uc1xuICAgIH0pO1xuXG4gICAgLy8gQ29udmVydCBhY2NvdW50cyB0byBmbGF0IGFycmF5IGZvciBJcGFtUG9vbFxuICAgIGNvbnN0IG9yZ0FjY291bnRzID0gT2JqZWN0LnZhbHVlcyhwcm9wcy5hY2NvdW50cykuZmxhdE1hcCgoYWNjb3VudCkgPT5cbiAgICAgIEFycmF5LmlzQXJyYXkoYWNjb3VudCkgPyBhY2NvdW50IDogW2FjY291bnRdXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBJUEFNIHBvb2wgaGllcmFyY2h5IGZvciBhbGwgcmVnaW9uc1xuICAgIG5ldyBJcGFtUG9vbCh0aGlzLCBcIklwYW1Qb29sXCIsIHtcbiAgICAgIG9yZ0FjY291bnRzLFxuICAgICAgcmVnaW9uczogYWxsUmVnaW9ucyxcbiAgICAgIGlwYW1TY29wZTogaXBhbS5wcml2YXRlRGVmYXVsdFNjb3BlSWRcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -3,7 +3,7 @@ import { Construct } from "constructs";
3
3
  export interface IpamPoolProps extends StackProps {
4
4
  orgAccounts: string[];
5
5
  ipamScope?: string;
6
- region: string;
6
+ regions: string[];
7
7
  /**
8
8
  * The netmask length (/CIDR) each child IPAM pool should receive.
9
9
  * Controls the size of CIDR blocks automatically allocated to VPCs from the pool.
@@ -19,7 +19,7 @@ export interface IpamPoolProps extends StackProps {
19
19
  }
20
20
  interface IpamPoolStackProps extends StackProps {
21
21
  orgAccounts: string[];
22
- region: string;
22
+ regions: string[];
23
23
  }
24
24
  export declare class IpamPool extends Construct {
25
25
  constructor(scope: Construct, id: string, props: IpamPoolProps);
@@ -11,8 +11,10 @@ class IpamPool extends constructs_1.Construct {
11
11
  super(scope, id);
12
12
  // Get the default IPAM scope ID from props, or CFN import
13
13
  const IpamPrivateDefaultScopeId = props.ipamScope || aws_cdk_lib_1.Fn.importValue("IpamPrivateDefaultScopeId");
14
- // Prioritise region from props, then from env
15
- const region = props.region;
14
+ const regions = props.regions;
15
+ if (!regions || regions.length === 0) {
16
+ throw new Error("At least one region must be specified for IPAM pools");
17
+ }
16
18
  const organisationAccounts = props.orgAccounts.map((account) => account.toLowerCase());
17
19
  // Determine the child-pool CIDR size (defaults to /20)
18
20
  const defaultNetmaskLength = props.allocationDefaultNetmaskLength ?? 20;
@@ -31,13 +33,13 @@ class IpamPool extends constructs_1.Construct {
31
33
  console.warn(`Warning: allocationDefaultNetmaskLength (/${defaultNetmaskLength}) is larger than provisionedNetmaskLength (/${provisionedNetmaskLength}). ` +
32
34
  `VPC allocation may fail if the pool cannot satisfy the request.`);
33
35
  }
34
- // Create the top-level pools
36
+ // Create ONE top-level pool (no locale) that contains all CIDRs
35
37
  const rootPool = new aws_ec2_1.CfnIPAMPool(this, "TopLevelIpamPool", {
36
- description: `Root IPAM pool`,
38
+ description: `Root IPAM pool (Global)`,
37
39
  addressFamily: "ipv4",
38
40
  ipamScopeId: IpamPrivateDefaultScopeId,
39
- locale: region,
40
- // Explicitly provision the /8 CIDR once at the top-level
41
+ // No locale for the top-level pool - it's global
42
+ // Explicitly provision the main CIDR blocks at the top-level
41
43
  provisionedCidrs: [
42
44
  { cidr: "10.0.0.0/8" },
43
45
  { cidr: "172.16.0.0/12" },
@@ -55,68 +57,97 @@ class IpamPool extends constructs_1.Construct {
55
57
  }
56
58
  ]
57
59
  });
58
- // Create a child pool for each Organisation account
59
- for (const account of organisationAccounts) {
60
- const accountId = (0, getAccountId_1.default)(account);
61
- const ipamPool = new aws_ec2_1.CfnIPAMPool(this, `${account}IpamPool`, {
62
- description: `${account} - IPAM pool - ${region}`,
60
+ // Create regional pools as children of the root pool
61
+ for (const region of regions) {
62
+ const regionSuffix = region.replace(/-/g, "");
63
+ // Create a regional pool for this specific region
64
+ const regionalPool = new aws_ec2_1.CfnIPAMPool(this, `RegionalPool${regionSuffix}`, {
65
+ description: `Regional IPAM pool - ${region}`,
63
66
  addressFamily: "ipv4",
64
67
  ipamScopeId: IpamPrivateDefaultScopeId,
65
- locale: region,
66
- // Allocate from the root pool automatically
67
- sourceIpamPoolId: rootPool.attrIpamPoolId,
68
- allocationDefaultNetmaskLength: defaultNetmaskLength,
69
- allocationResourceTags: [
70
- {
71
- key: "fjall:operations:pool",
72
- value: `${accountId}`
73
- }
74
- ],
68
+ locale: region, // Set the locale for this regional pool
69
+ sourceIpamPoolId: rootPool.attrIpamPoolId, // Allocate from root pool
75
70
  autoImport: true,
76
71
  tags: [
77
72
  {
78
73
  key: "fjall:operations:pool",
79
- value: `${accountId}`
74
+ value: `regional-${region}`
80
75
  },
81
76
  {
82
- key: "fjall:costAllocation:accountName",
83
- value: `${account}`
77
+ key: "fjall:costAllocation:type",
78
+ value: "regional"
84
79
  }
85
80
  ]
86
81
  });
87
- const cidrAllocation = new aws_ec2_1.CfnIPAMPoolCidr(this, `${account}PoolCidr${provisionedNetmaskLength}`, {
88
- ipamPoolId: ipamPool.attrIpamPoolId,
89
- netmaskLength: provisionedNetmaskLength
90
- });
91
- // Share the pool with the target account so that VPCs can allocate
92
- const share = new resourceShare_1.ResourceShare(this, `${account}${region}IpamResourceShare`, {
93
- name: `${account}IpamResourceShare.${region}`,
94
- allowExternalPrincipals: false,
95
- principals: [accountId],
96
- resourceArns: [ipamPool.attrArn],
97
- tags: [
98
- {
99
- key: "fjall:costAllocation:account",
100
- value: `${account}`
101
- }
102
- ]
103
- });
104
- // Ensure the share is created only after the CIDR is provisioned
105
- share.node.addDependency(cidrAllocation);
106
- // Create region-specific suffix for unique exports
107
- const regionSuffix = region.replace(/-/g, "");
108
- // Expose the pool ID for cross-stack usage (e.g. VPC allocations)
109
- // Include region in export name to ensure uniqueness across regions
110
- new aws_cdk_lib_1.CfnOutput(this, `IpamPoolId${accountId}${regionSuffix}`, {
111
- key: `IpamPoolId${accountId}${regionSuffix}`,
112
- value: ipamPool.attrIpamPoolId,
113
- exportName: `IpamPoolId${accountId}${regionSuffix}`
114
- });
115
- new aws_cdk_lib_1.CfnOutput(this, `IpamPoolArn${accountId}${regionSuffix}`, {
116
- key: `IpamPoolArn${accountId}${regionSuffix}`,
117
- value: ipamPool.attrArn,
118
- exportName: `IpamPoolArn${accountId}${regionSuffix}`
82
+ // Provision a large CIDR block for this regional pool
83
+ // Allocate a /10 for each region from the parent pool
84
+ const regionalCidrAllocation = new aws_ec2_1.CfnIPAMPoolCidr(this, `RegionalPoolCidr${regionSuffix}`, {
85
+ ipamPoolId: regionalPool.attrIpamPoolId,
86
+ netmaskLength: 10 // Each region gets a /10 (4,194,304 IPs)
119
87
  });
88
+ // Create account pools under each regional pool
89
+ for (const account of organisationAccounts) {
90
+ const accountId = (0, getAccountId_1.default)(account);
91
+ const ipamPool = new aws_ec2_1.CfnIPAMPool(this, `${account}IpamPool${regionSuffix}`, {
92
+ description: `${account} - IPAM pool - ${region}`,
93
+ addressFamily: "ipv4",
94
+ ipamScopeId: IpamPrivateDefaultScopeId,
95
+ locale: region,
96
+ // Allocate from the regional pool (not root pool)
97
+ sourceIpamPoolId: regionalPool.attrIpamPoolId,
98
+ allocationDefaultNetmaskLength: defaultNetmaskLength,
99
+ allocationResourceTags: [
100
+ {
101
+ key: "fjall:operations:pool",
102
+ value: `${accountId}`
103
+ }
104
+ ],
105
+ autoImport: true,
106
+ tags: [
107
+ {
108
+ key: "fjall:operations:pool",
109
+ value: `${accountId}`
110
+ },
111
+ {
112
+ key: "fjall:costAllocation:accountName",
113
+ value: `${account}`
114
+ }
115
+ ]
116
+ });
117
+ // Ensure the account pool is created after the regional CIDR allocation
118
+ ipamPool.node.addDependency(regionalCidrAllocation);
119
+ const cidrAllocation = new aws_ec2_1.CfnIPAMPoolCidr(this, `${account}PoolCidr${provisionedNetmaskLength}${regionSuffix}`, {
120
+ ipamPoolId: ipamPool.attrIpamPoolId,
121
+ netmaskLength: provisionedNetmaskLength
122
+ });
123
+ // Share the pool with the target account so that VPCs can allocate
124
+ const share = new resourceShare_1.ResourceShare(this, `${account}IpamResourceShare${regionSuffix}`, {
125
+ name: `${account}IpamResourceShare.${region}`,
126
+ allowExternalPrincipals: false,
127
+ principals: [accountId],
128
+ resourceArns: [ipamPool.attrArn],
129
+ tags: [
130
+ {
131
+ key: "fjall:costAllocation:account",
132
+ value: `${account}`
133
+ }
134
+ ]
135
+ });
136
+ // Ensure the share is created only after the CIDR is provisioned
137
+ share.node.addDependency(cidrAllocation);
138
+ // Expose the pool ID for cross-stack usage (e.g. VPC allocations)
139
+ // Include region in export name to ensure uniqueness across regions
140
+ new aws_cdk_lib_1.CfnOutput(this, `IpamPoolId${accountId}${regionSuffix}`, {
141
+ key: `IpamPoolId${accountId}${regionSuffix}`,
142
+ value: ipamPool.attrIpamPoolId,
143
+ exportName: `IpamPoolId${accountId}${regionSuffix}`
144
+ });
145
+ new aws_cdk_lib_1.CfnOutput(this, `IpamPoolArn${accountId}${regionSuffix}`, {
146
+ key: `IpamPoolArn${accountId}${regionSuffix}`,
147
+ value: ipamPool.attrArn,
148
+ exportName: `IpamPoolArn${accountId}${regionSuffix}`
149
+ });
150
+ }
120
151
  }
121
152
  }
122
153
  }
@@ -126,9 +157,9 @@ class IpamPoolStack extends aws_cdk_lib_1.Stack {
126
157
  super(scope, id);
127
158
  new IpamPool(this, "IpamPool", {
128
159
  orgAccounts: props.orgAccounts,
129
- region: props.region
160
+ regions: props.regions
130
161
  });
131
162
  }
132
163
  }
133
164
  exports.IpamPoolStack = IpamPoolStack;
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1Qb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUErRDtBQUMvRCwyQ0FBdUM7QUFDdkMsaURBRzZCO0FBQzdCLDhEQUEyRDtBQUMzRCw4REFBdUQ7QUF5QnZELE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiwwREFBMEQ7UUFDMUQsTUFBTSx5QkFBeUIsR0FDN0IsS0FBSyxDQUFDLFNBQVMsSUFBSSxnQkFBRSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pFLDhDQUE4QztRQUM5QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRTVCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM3RCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQ3RCLENBQUM7UUFFRix1REFBdUQ7UUFDdkQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsOEJBQThCLElBQUksRUFBRSxDQUFDO1FBQ3hFLE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQztRQUV0RSxrRkFBa0Y7UUFDbEYsSUFBSSxvQkFBb0IsR0FBRyxFQUFFLElBQUksb0JBQW9CLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FDYixtRkFBbUYsb0JBQW9CLEVBQUUsQ0FDMUcsQ0FBQztRQUNKLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsSUFBSSx3QkFBd0IsR0FBRyxFQUFFLElBQUksd0JBQXdCLEdBQUcsRUFBRSxF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aW1wb3J0IHsgRm4sIENmbk91dHB1dCwgU3RhY2tQcm9wcywgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBDZm5JUEFNUG9vbCBhcyBJcGFtUG9vbENsYXNzLFxuICBDZm5JUEFNUG9vbENpZHJcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IFJlc291cmNlU2hhcmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Jlc291cmNlU2hhcmVcIjtcbmltcG9ydCBnZXRBY2NvdW50SWQgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2dldEFjY291bnRJZFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElwYW1Qb29sUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgb3JnQWNjb3VudHM6IHN0cmluZ1tdO1xuICBpcGFtU2NvcGU/OiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5ldG1hc2sgbGVuZ3RoICgvQ0lEUikgZWFjaCBjaGlsZCBJUEFNIHBvb2wgc2hvdWxkIHJlY2VpdmUuXG4gICAqIENvbnRyb2xzIHRoZSBzaXplIG9mIENJRFIgYmxvY2tzIGF1dG9tYXRpY2FsbHkgYWxsb2NhdGVkIHRvIFZQQ3MgZnJvbSB0aGUgcG9vbC5cbiAgICogQWNjZXB0ZWQgcmFuZ2U6IC8xNiAoNjUsNTM2IElQcykg4oCTIC8yOCAoMTYgSVBzKS4gRGVmYXVsdHMgdG8gLzIwICg0LDA5NiBJUHMpLlxuICAgKi9cbiAgYWxsb2NhdGlvbkRlZmF1bHROZXRtYXNrTGVuZ3RoPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIG5ldG1hc2sgbGVuZ3RoICgvQ0lEUikgcHJvdmlzaW9uZWQgaW50byBlYWNoIGNoaWxkIElQQU0gcG9vbCBvbiBjcmVhdGlvbi5cbiAgICogRGV0ZXJtaW5lcyB0aGUgdG90YWwgYWRkcmVzcyBzcGFjZSBhdmFpbGFibGUgZm9yIFZQQyBhbGxvY2F0aW9ucyBpbiB0aGF0IGFjY291bnQuXG4gICAqIEFjY2VwdGVkIHJhbmdlOiAvMTMgKDUyNCwyODggSVBzKSDigJMgLzE2ICg2NSw1MzYgSVBzKS4gRGVmYXVsdHMgdG8gLzE0LlxuICAgKi9cbiAgcHJvdmlzaW9uZWROZXRtYXNrTGVuZ3RoPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgSXBhbVBvb2xTdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIG9yZ0FjY291bnRzOiBzdHJpbmdbXTtcbiAgcmVnaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJcGFtUG9vbCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtUG9vbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIEdldCB0aGUgZGVmYXVsdCBJUEFNIHNjb3BlIElEIGZyb20gcHJvcHMsIG9yIENGTiBpbXBvcnRcbiAgICBjb25zdCBJcGFtUHJpdmF0ZURlZmF1bHRTY29wZUlkID1cbiAgICAgIHByb3BzLmlwYW1TY29wZSB8fCBGbi5pbXBvcnRWYWx1ZShcIklwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWRcIik7XG4gICAgLy8gUHJpb3JpdGlzZSByZWdpb24gZnJvbSBwcm9wcywgdGhlbiBmcm9tIGVudlxuICAgIGNvbnN0IHJlZ2lvbiA9IHByb3BzLnJlZ2lvbjtcblxuICAgIGNvbnN0IG9yZ2FuaXNhdGlvbkFjY291bnRzID0gcHJvcHMub3JnQWNjb3VudHMubWFwKChhY2NvdW50KSA9PlxuICAgICAgYWNjb3VudC50b0xvd2VyQ2FzZSgpXG4gICAgKTtcblxuICAgIC8vIERldGVybWluZSB0aGUgY2hpbGQtcG9vbCBDSURSIHNpemUgKGRlZmF1bHRzIHRvIC8yMClcbiAgICBjb25zdCBkZWZhdWx0TmV0bWFza0xlbmd0aCA9IHByb3BzLmFsbG9jYXRpb25EZWZhdWx0TmV0bWFza0xlbmd0aCA/PyAyMDtcbiAgICBjb25zdCBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPSBwcm9wcy5wcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPz8gMTQ7XG5cbiAgICAvLyBCYXNpYyB2YWxpZGF0aW9uIOKAkyAvMTYgdG8gLzI4IGluY2x1c2l2ZSBhcmUgY29uc2lkZXJlZCBzYWZlIGZvciBWUEMgYWxsb2NhdGlvbnNcbiAgICBpZiAoZGVmYXVsdE5ldG1hc2tMZW5ndGggPCAxNiB8fCBkZWZhdWx0TmV0bWFza0xlbmd0aCA+IDI4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGggbXVzdCBiZSBiZXR3ZWVuIDE2IGFuZCAyOCAoaW5jbHVzaXZlKS4gUmVjZWl2ZWQ6ICR7ZGVmYXVsdE5ldG1hc2tMZW5ndGh9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBwcm92aXNpb25lZCBibG9jayBzaXplICgvMTMgdG8gLzE2KVxuICAgIGlmIChwcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPCAxMyB8fCBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPiAxNikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgcHJvdmlzaW9uZWROZXRtYXNrTGVuZ3RoIG11c3QgYmUgYmV0d2VlbiAxMyBhbmQgMTYgKGluY2x1c2l2ZSkuIFJlY2VpdmVkOiAke3Byb3Zpc2lvbmVkTmV0bWFza0xlbmd0aH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFdhcm4gaWYgdXNlciByZXF1ZXN0cyBWUEMgYWxsb2NhdGlvbnMgbGFyZ2VyIHRoYW4gdGhlIHByb3Zpc2lvbmVkIHBvb2xcbiAgICBpZiAoZGVmYXVsdE5ldG1hc2tMZW5ndGggPCBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGgpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBXYXJuaW5nOiBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGggKC8ke2RlZmF1bHROZXRtYXNrTGVuZ3RofSkgaXMgbGFyZ2VyIHRoYW4gcHJvdmlzaW9uZWROZXRtYXNrTGVuZ3RoICgvJHtwcm92aXNpb25lZE5ldG1hc2tMZW5ndGh9KS4gYCArXG4gICAgICAgICAgYFZQQyBhbGxvY2F0aW9uIG1heSBmYWlsIGlmIHRoZSBwb29sIGNhbm5vdCBzYXRpc2Z5IHRoZSByZXF1ZXN0LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSB0b3AtbGV2ZWwgcG9vbHNcbiAgICBjb25zdCByb290UG9vbCA9IG5ldyBJcGFtUG9vbENsYXNzKHRoaXMsIFwiVG9wTGV2ZWxJcGFtUG9vbFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYFJvb3QgSVBBTSBwb29sYCxcbiAgICAgIGFkZHJlc3NGYW1pbHk6IFwiaXB2NFwiLFxuICAgICAgaXBhbVNjb3BlSWQ6IElwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWQsXG4gICAgICBsb2NhbGU6IHJlZ2lvbixcbiAgICAgIC8vIEV4cGxpY2l0bHkgcHJvdmlzaW9uIHRoZSAvOCBDSURSIG9uY2UgYXQgdGhlIHRvcC1sZXZlbFxuICAgICAgcHJvdmlzaW9uZWRDaWRyczogW1xuICAgICAgICB7IGNpZHI6IFwiMTAuMC4wLjAvOFwiIH0sXG4gICAgICAgIHsgY2lkcjogXCIxNzIuMTYuMC4wLzEyXCIgfSxcbiAgICAgICAgeyBjaWRyOiBcIjE5Mi4xNjguMC4wLzE2XCIgfVxuICAgICAgXSxcbiAgICAgIGF1dG9JbXBvcnQ6IHRydWUsXG4gICAgICB0YWdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiZmphbGw6b3BlcmF0aW9uczpwb29sXCIsXG4gICAgICAgICAgdmFsdWU6IFwidG9wLWxldmVsXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjp0eXBlXCIsXG4gICAgICAgICAgdmFsdWU6IFwicm9vdFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIGNoaWxkIHBvb2wgZm9yIGVhY2ggT3JnYW5pc2F0aW9uIGFjY291bnRcbiAgICBmb3IgKGNvbnN0IGFjY291bnQgb2Ygb3JnYW5pc2F0aW9uQWNjb3VudHMpIHtcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZChhY2NvdW50KTtcblxuICAgICAgY29uc3QgaXBhbVBvb2wgPSBuZXcgSXBhbVBvb2xDbGFzcyh0aGlzLCBgJHthY2NvdW50fUlwYW1Qb29sYCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogYCR7YWNjb3VudH0gLSBJUEFNIHBvb2wgLSAke3JlZ2lvbn1gLFxuICAgICAgICBhZGRyZXNzRmFtaWx5OiBcImlwdjRcIixcbiAgICAgICAgaXBhbVNjb3BlSWQ6IElwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWQsXG4gICAgICAgIGxvY2FsZTogcmVnaW9uLFxuICAgICAgICAvLyBBbGxvY2F0ZSBmcm9tIHRoZSByb290IHBvb2wgYXV0b21hdGljYWxseVxuICAgICAgICBzb3VyY2VJcGFtUG9vbElkOiByb290UG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgYWxsb2NhdGlvbkRlZmF1bHROZXRtYXNrTGVuZ3RoOiBkZWZhdWx0TmV0bWFza0xlbmd0aCxcbiAgICAgICAgYWxsb2NhdGlvblJlc291cmNlVGFnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgICAgICAgIHZhbHVlOiBgJHthY2NvdW50SWR9YFxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgYXV0b0ltcG9ydDogdHJ1ZSxcbiAgICAgICAgdGFnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgICAgICAgIHZhbHVlOiBgJHthY2NvdW50SWR9YFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmFjY291bnROYW1lXCIsXG4gICAgICAgICAgICB2YWx1ZTogYCR7YWNjb3VudH1gXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgY2lkckFsbG9jYXRpb24gPSBuZXcgQ2ZuSVBBTVBvb2xDaWRyKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHthY2NvdW50fVBvb2xDaWRyJHtwcm92aXNpb25lZE5ldG1hc2tMZW5ndGh9YCxcbiAgICAgICAge1xuICAgICAgICAgIGlwYW1Qb29sSWQ6IGlwYW1Qb29sLmF0dHJJcGFtUG9vbElkLFxuICAgICAgICAgIG5ldG1hc2tMZW5ndGg6IHByb3Zpc2lvbmVkTmV0bWFza0xlbmd0aFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICAvLyBTaGFyZSB0aGUgcG9vbCB3aXRoIHRoZSB0YXJnZXQgYWNjb3VudCBzbyB0aGF0IFZQQ3MgY2FuIGFsbG9jYXRlXG4gICAgICBjb25zdCBzaGFyZSA9IG5ldyBSZXNvdXJjZVNoYXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHthY2NvdW50fSR7cmVnaW9ufUlwYW1SZXNvdXJjZVNoYXJlYCxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke2FjY291bnR9SXBhbVJlc291cmNlU2hhcmUuJHtyZWdpb259YCxcbiAgICAgICAgICBhbGxvd0V4dGVybmFsUHJpbmNpcGFsczogZmFsc2UsXG4gICAgICAgICAgcHJpbmNpcGFsczogW2FjY291bnRJZF0sXG4gICAgICAgICAgcmVzb3VyY2VBcm5zOiBbaXBhbVBvb2wuYXR0ckFybl0sXG4gICAgICAgICAgdGFnczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246YWNjb3VudFwiLFxuICAgICAgICAgICAgICB2YWx1ZTogYCR7YWNjb3VudH1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlIGlzIGNyZWF0ZWQgb25seSBhZnRlciB0aGUgQ0lEUiBpcyBwcm92aXNpb25lZFxuICAgICAgc2hhcmUubm9kZS5hZGREZXBlbmRlbmN5KGNpZHJBbGxvY2F0aW9uKTtcblxuICAgICAgLy8gQ3JlYXRlIHJlZ2lvbi1zcGVjaWZpYyBzdWZmaXggZm9yIHVuaXF1ZSBleHBvcnRzXG4gICAgICBjb25zdCByZWdpb25TdWZmaXggPSByZWdpb24ucmVwbGFjZSgvLS9nLCBcIlwiKTtcblxuICAgICAgLy8gRXhwb3NlIHRoZSBwb29sIElEIGZvciBjcm9zcy1zdGFjayB1c2FnZSAoZS5nLiBWUEMgYWxsb2NhdGlvbnMpXG4gICAgICAvLyBJbmNsdWRlIHJlZ2lvbiBpbiBleHBvcnQgbmFtZSB0byBlbnN1cmUgdW5pcXVlbmVzcyBhY3Jvc3MgcmVnaW9uc1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgSXBhbVBvb2xJZCR7YWNjb3VudElkfSR7cmVnaW9uU3VmZml4fWAsIHtcbiAgICAgICAga2V5OiBgSXBhbVBvb2xJZCR7YWNjb3VudElkfSR7cmVnaW9uU3VmZml4fWAsXG4gICAgICAgIHZhbHVlOiBpcGFtUG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgZXhwb3J0TmFtZTogYElwYW1Qb29sSWQke2FjY291bnRJZH0ke3JlZ2lvblN1ZmZpeH1gXG4gICAgICB9KTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgSXBhbVBvb2xBcm4ke2FjY291bnRJZH0ke3JlZ2lvblN1ZmZpeH1gLCB7XG4gICAgICAgIGtleTogYElwYW1Qb29sQXJuJHthY2NvdW50SWR9JHtyZWdpb25TdWZmaXh9YCxcbiAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJBcm4sXG4gICAgICAgIGV4cG9ydE5hbWU6IGBJcGFtUG9vbEFybiR7YWNjb3VudElkfSR7cmVnaW9uU3VmZml4fWBcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2xTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1Qb29sU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgSXBhbVBvb2wodGhpcywgXCJJcGFtUG9vbFwiLCB7XG4gICAgICBvcmdBY2NvdW50czogcHJvcHMub3JnQWNjb3VudHMsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuICAgIH0pO1xuICB9XG59XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1Qb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUErRDtBQUMvRCwyQ0FBdUM7QUFDdkMsaURBRzZCO0FBQzdCLDhEQUEyRDtBQUMzRCw4REFBdUQ7QUF5QnZELE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiwwREFBMEQ7UUFDMUQsTUFBTSx5QkFBeUIsR0FDN0IsS0FBSyxDQUFDLFNBQVMsSUFBSSxnQkFBRSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRWpFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzdELE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FDdEIsQ0FBQztRQUVGLHVEQUF1RDtRQUN2RCxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxFQUFFLENBQUM7UUFDeEUsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUMsd0JBQXdCLElBQUksRUFBRSxDQUFDO1FBRXRFLGtGQUFrRjtRQUNsRixJQUFJLG9CQUFvQixHQUFHLEVBQUUsSUFBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMzRCxNQUFNLElBQUksS0FBSyxDQUNiLG1G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bSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ2ZuSVBBTVBvb2wgYXMgSXBhbVBvb2xDbGFzcyxcbiAgQ2ZuSVBBTVBvb2xDaWRyXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZVNoYXJlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9yZXNvdXJjZVNoYXJlXCI7XG5pbXBvcnQgZ2V0QWNjb3VudElkIGZyb20gXCIuLi8uLi8uLi91dGlscy9nZXRBY2NvdW50SWRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJcGFtUG9vbFByb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIG9yZ0FjY291bnRzOiBzdHJpbmdbXTtcbiAgaXBhbVNjb3BlPzogc3RyaW5nO1xuICByZWdpb25zOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBuZXRtYXNrIGxlbmd0aCAoL0NJRFIpIGVhY2ggY2hpbGQgSVBBTSBwb29sIHNob3VsZCByZWNlaXZlLlxuICAgKiBDb250cm9scyB0aGUgc2l6ZSBvZiBDSURSIGJsb2NrcyBhdXRvbWF0aWNhbGx5IGFsbG9jYXRlZCB0byBWUENzIGZyb20gdGhlIHBvb2wuXG4gICAqIEFjY2VwdGVkIHJhbmdlOiAvMTYgKDY1LDUzNiBJUHMpIOKAkyAvMjggKDE2IElQcykuIERlZmF1bHRzIHRvIC8yMCAoNCwwOTYgSVBzKS5cbiAgICovXG4gIGFsbG9jYXRpb25EZWZhdWx0TmV0bWFza0xlbmd0aD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBuZXRtYXNrIGxlbmd0aCAoL0NJRFIpIHByb3Zpc2lvbmVkIGludG8gZWFjaCBjaGlsZCBJUEFNIHBvb2wgb24gY3JlYXRpb24uXG4gICAqIERldGVybWluZXMgdGhlIHRvdGFsIGFkZHJlc3Mgc3BhY2UgYXZhaWxhYmxlIGZvciBWUEMgYWxsb2NhdGlvbnMgaW4gdGhhdCBhY2NvdW50LlxuICAgKiBBY2NlcHRlZCByYW5nZTogLzEzICg1MjQsMjg4IElQcykg4oCTIC8xNiAoNjUsNTM2IElQcykuIERlZmF1bHRzIHRvIC8xNC5cbiAgICovXG4gIHByb3Zpc2lvbmVkTmV0bWFza0xlbmd0aD86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIElwYW1Qb29sU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBvcmdBY2NvdW50czogc3RyaW5nW107XG4gIHJlZ2lvbnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2wgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSXBhbVBvb2xQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBHZXQgdGhlIGRlZmF1bHQgSVBBTSBzY29wZSBJRCBmcm9tIHByb3BzLCBvciBDRk4gaW1wb3J0XG4gICAgY29uc3QgSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCA9XG4gICAgICBwcm9wcy5pcGFtU2NvcGUgfHwgRm4uaW1wb3J0VmFsdWUoXCJJcGFtUHJpdmF0ZURlZmF1bHRTY29wZUlkXCIpO1xuXG4gICAgY29uc3QgcmVnaW9ucyA9IHByb3BzLnJlZ2lvbnM7XG4gICAgaWYgKCFyZWdpb25zIHx8IHJlZ2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdCBsZWFzdCBvbmUgcmVnaW9uIG11c3QgYmUgc3BlY2lmaWVkIGZvciBJUEFNIHBvb2xzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IG9yZ2FuaXNhdGlvbkFjY291bnRzID0gcHJvcHMub3JnQWNjb3VudHMubWFwKChhY2NvdW50KSA9PlxuICAgICAgYWNjb3VudC50b0xvd2VyQ2FzZSgpXG4gICAgKTtcblxuICAgIC8vIERldGVybWluZSB0aGUgY2hpbGQtcG9vbCBDSURSIHNpemUgKGRlZmF1bHRzIHRvIC8yMClcbiAgICBjb25zdCBkZWZhdWx0TmV0bWFza0xlbmd0aCA9IHByb3BzLmFsbG9jYXRpb25EZWZhdWx0TmV0bWFza0xlbmd0aCA/PyAyMDtcbiAgICBjb25zdCBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPSBwcm9wcy5wcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPz8gMTQ7XG5cbiAgICAvLyBCYXNpYyB2YWxpZGF0aW9uIOKAkyAvMTYgdG8gLzI4IGluY2x1c2l2ZSBhcmUgY29uc2lkZXJlZCBzYWZlIGZvciBWUEMgYWxsb2NhdGlvbnNcbiAgICBpZiAoZGVmYXVsdE5ldG1hc2tMZW5ndGggPCAxNiB8fCBkZWZhdWx0TmV0bWFza0xlbmd0aCA+IDI4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGggbXVzdCBiZSBiZXR3ZWVuIDE2IGFuZCAyOCAoaW5jbHVzaXZlKS4gUmVjZWl2ZWQ6ICR7ZGVmYXVsdE5ldG1hc2tMZW5ndGh9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBwcm92aXNpb25lZCBibG9jayBzaXplICgvMTMgdG8gLzE2KVxuICAgIGlmIChwcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPCAxMyB8fCBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGggPiAxNikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgcHJvdmlzaW9uZWROZXRtYXNrTGVuZ3RoIG11c3QgYmUgYmV0d2VlbiAxMyBhbmQgMTYgKGluY2x1c2l2ZSkuIFJlY2VpdmVkOiAke3Byb3Zpc2lvbmVkTmV0bWFza0xlbmd0aH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFdhcm4gaWYgdXNlciByZXF1ZXN0cyBWUEMgYWxsb2NhdGlvbnMgbGFyZ2VyIHRoYW4gdGhlIHByb3Zpc2lvbmVkIHBvb2xcbiAgICBpZiAoZGVmYXVsdE5ldG1hc2tMZW5ndGggPCBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGgpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBXYXJuaW5nOiBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGggKC8ke2RlZmF1bHROZXRtYXNrTGVuZ3RofSkgaXMgbGFyZ2VyIHRoYW4gcHJvdmlzaW9uZWROZXRtYXNrTGVuZ3RoICgvJHtwcm92aXNpb25lZE5ldG1hc2tMZW5ndGh9KS4gYCArXG4gICAgICAgICAgYFZQQyBhbGxvY2F0aW9uIG1heSBmYWlsIGlmIHRoZSBwb29sIGNhbm5vdCBzYXRpc2Z5IHRoZSByZXF1ZXN0LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIE9ORSB0b3AtbGV2ZWwgcG9vbCAobm8gbG9jYWxlKSB0aGF0IGNvbnRhaW5zIGFsbCBDSURSc1xuICAgIGNvbnN0IHJvb3RQb29sID0gbmV3IElwYW1Qb29sQ2xhc3ModGhpcywgXCJUb3BMZXZlbElwYW1Qb29sXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgUm9vdCBJUEFNIHBvb2wgKEdsb2JhbClgLFxuICAgICAgYWRkcmVzc0ZhbWlseTogXCJpcHY0XCIsXG4gICAgICBpcGFtU2NvcGVJZDogSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCxcbiAgICAgIC8vIE5vIGxvY2FsZSBmb3IgdGhlIHRvcC1sZXZlbCBwb29sIC0gaXQncyBnbG9iYWxcbiAgICAgIC8vIEV4cGxpY2l0bHkgcHJvdmlzaW9uIHRoZSBtYWluIENJRFIgYmxvY2tzIGF0IHRoZSB0b3AtbGV2ZWxcbiAgICAgIHByb3Zpc2lvbmVkQ2lkcnM6IFtcbiAgICAgICAgeyBjaWRyOiBcIjEwLjAuMC4wLzhcIiB9LFxuICAgICAgICB7IGNpZHI6IFwiMTcyLjE2LjAuMC8xMlwiIH0sXG4gICAgICAgIHsgY2lkcjogXCIxOTIuMTY4LjAuMC8xNlwiIH1cbiAgICAgIF0sXG4gICAgICBhdXRvSW1wb3J0OiB0cnVlLFxuICAgICAgdGFnczogW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgIHZhbHVlOiBcInRvcC1sZXZlbFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246dHlwZVwiLFxuICAgICAgICAgIHZhbHVlOiBcInJvb3RcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgcmVnaW9uYWwgcG9vbHMgYXMgY2hpbGRyZW4gb2YgdGhlIHJvb3QgcG9vbFxuICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIHJlZ2lvbnMpIHtcbiAgICAgIGNvbnN0IHJlZ2lvblN1ZmZpeCA9IHJlZ2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpO1xuXG4gICAgICAvLyBDcmVhdGUgYSByZWdpb25hbCBwb29sIGZvciB0aGlzIHNwZWNpZmljIHJlZ2lvblxuICAgICAgY29uc3QgcmVnaW9uYWxQb29sID0gbmV3IElwYW1Qb29sQ2xhc3ModGhpcywgYFJlZ2lvbmFsUG9vbCR7cmVnaW9uU3VmZml4fWAsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IGBSZWdpb25hbCBJUEFNIHBvb2wgLSAke3JlZ2lvbn1gLFxuICAgICAgICBhZGRyZXNzRmFtaWx5OiBcImlwdjRcIixcbiAgICAgICAgaXBhbVNjb3BlSWQ6IElwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWQsXG4gICAgICAgIGxvY2FsZTogcmVnaW9uLCAvLyBTZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyByZWdpb25hbCBwb29sXG4gICAgICAgIHNvdXJjZUlwYW1Qb29sSWQ6IHJvb3RQb29sLmF0dHJJcGFtUG9vbElkLCAvLyBBbGxvY2F0ZSBmcm9tIHJvb3QgcG9vbFxuICAgICAgICBhdXRvSW1wb3J0OiB0cnVlLFxuICAgICAgICB0YWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgICAgdmFsdWU6IGByZWdpb25hbC0ke3JlZ2lvbn1gXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246dHlwZVwiLFxuICAgICAgICAgICAgdmFsdWU6IFwicmVnaW9uYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIC8vIFByb3Zpc2lvbiBhIGxhcmdlIENJRFIgYmxvY2sgZm9yIHRoaXMgcmVnaW9uYWwgcG9vbFxuICAgICAgLy8gQWxsb2NhdGUgYSAvMTAgZm9yIGVhY2ggcmVnaW9uIGZyb20gdGhlIHBhcmVudCBwb29sXG4gICAgICBjb25zdCByZWdpb25hbENpZHJBbGxvY2F0aW9uID0gbmV3IENmbklQQU1Qb29sQ2lkcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYFJlZ2lvbmFsUG9vbENpZHIke3JlZ2lvblN1ZmZpeH1gLFxuICAgICAgICB7XG4gICAgICAgICAgaXBhbVBvb2xJZDogcmVnaW9uYWxQb29sLmF0dHJJcGFtUG9vbElkLFxuICAgICAgICAgIG5ldG1hc2tMZW5ndGg6IDEwIC8vIEVhY2ggcmVnaW9uIGdldHMgYSAvMTAgKDQsMTk0LDMwNCBJUHMpXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIC8vIENyZWF0ZSBhY2NvdW50IHBvb2xzIHVuZGVyIGVhY2ggcmVnaW9uYWwgcG9vbFxuICAgICAgZm9yIChjb25zdCBhY2NvdW50IG9mIG9yZ2FuaXNhdGlvbkFjY291bnRzKSB7XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZChhY2NvdW50KTtcblxuICAgICAgICBjb25zdCBpcGFtUG9vbCA9IG5ldyBJcGFtUG9vbENsYXNzKHRoaXMsIGAke2FjY291bnR9SXBhbVBvb2wke3JlZ2lvblN1ZmZpeH1gLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGAke2FjY291bnR9IC0gSVBBTSBwb29sIC0gJHtyZWdpb259YCxcbiAgICAgICAgICBhZGRyZXNzRmFtaWx5OiBcImlwdjRcIixcbiAgICAgICAgICBpcGFtU2NvcGVJZDogSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCxcbiAgICAgICAgICBsb2NhbGU6IHJlZ2lvbixcbiAgICAgICAgICAvLyBBbGxvY2F0ZSBmcm9tIHRoZSByZWdpb25hbCBwb29sIChub3Qgcm9vdCBwb29sKVxuICAgICAgICAgIHNvdXJjZUlwYW1Qb29sSWQ6IHJlZ2lvbmFsUG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgICBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGg6IGRlZmF1bHROZXRtYXNrTGVuZ3RoLFxuICAgICAgICAgIGFsbG9jYXRpb25SZXNvdXJjZVRhZ3M6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgICAgICB2YWx1ZTogYCR7YWNjb3VudElkfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIGF1dG9JbXBvcnQ6IHRydWUsXG4gICAgICAgICAgdGFnczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6IFwiZmphbGw6b3BlcmF0aW9uczpwb29sXCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBgJHthY2NvdW50SWR9YFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmFjY291bnROYW1lXCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBgJHthY2NvdW50fWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEVuc3VyZSB0aGUgYWNjb3VudCBwb29sIGlzIGNyZWF0ZWQgYWZ0ZXIgdGhlIHJlZ2lvbmFsIENJRFIgYWxsb2NhdGlvblxuICAgICAgICBpcGFtUG9vbC5ub2RlLmFkZERlcGVuZGVuY3kocmVnaW9uYWxDaWRyQWxsb2NhdGlvbik7XG5cbiAgICAgICAgY29uc3QgY2lkckFsbG9jYXRpb24gPSBuZXcgQ2ZuSVBBTVBvb2xDaWRyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYCR7YWNjb3VudH1Qb29sQ2lkciR7cHJvdmlzaW9uZWROZXRtYXNrTGVuZ3RofSR7cmVnaW9uU3VmZml4fWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaXBhbVBvb2xJZDogaXBhbVBvb2wuYXR0cklwYW1Qb29sSWQsXG4gICAgICAgICAgICBuZXRtYXNrTGVuZ3RoOiBwcm92aXNpb25lZE5ldG1hc2tMZW5ndGhcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gU2hhcmUgdGhlIHBvb2wgd2l0aCB0aGUgdGFyZ2V0IGFjY291bnQgc28gdGhhdCBWUENzIGNhbiBhbGxvY2F0ZVxuICAgICAgICBjb25zdCBzaGFyZSA9IG5ldyBSZXNvdXJjZVNoYXJlKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYCR7YWNjb3VudH1JcGFtUmVzb3VyY2VTaGFyZSR7cmVnaW9uU3VmZml4fWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYCR7YWNjb3VudH1JcGFtUmVzb3VyY2VTaGFyZS4ke3JlZ2lvbn1gLFxuICAgICAgICAgICAgYWxsb3dFeHRlcm5hbFByaW5jaXBhbHM6IGZhbHNlLFxuICAgICAgICAgICAgcHJpbmNpcGFsczogW2FjY291bnRJZF0sXG4gICAgICAgICAgICByZXNvdXJjZUFybnM6IFtpcGFtUG9vbC5hdHRyQXJuXSxcbiAgICAgICAgICAgIHRhZ3M6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjphY2NvdW50XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGAke2FjY291bnR9YFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEVuc3VyZSB0aGUgc2hhcmUgaXMgY3JlYXRlZCBvbmx5IGFmdGVyIHRoZSBDSURSIGlzIHByb3Zpc2lvbmVkXG4gICAgICAgIHNoYXJlLm5vZGUuYWRkRGVwZW5kZW5jeShjaWRyQWxsb2NhdGlvbik7XG5cbiAgICAgICAgLy8gRXhwb3NlIHRoZSBwb29sIElEIGZvciBjcm9zcy1zdGFjayB1c2FnZSAoZS5nLiBWUEMgYWxsb2NhdGlvbnMpXG4gICAgICAgIC8vIEluY2x1ZGUgcmVnaW9uIGluIGV4cG9ydCBuYW1lIHRvIGVuc3VyZSB1bmlxdWVuZXNzIGFjcm9zcyByZWdpb25zXG4gICAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYElwYW1Qb29sSWQke2FjY291bnRJZH0ke3JlZ2lvblN1ZmZpeH1gLCB7XG4gICAgICAgICAga2V5OiBgSXBhbVBvb2xJZCR7YWNjb3VudElkfSR7cmVnaW9uU3VmZml4fWAsXG4gICAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJJcGFtUG9vbElkLFxuICAgICAgICAgIGV4cG9ydE5hbWU6IGBJcGFtUG9vbElkJHthY2NvdW50SWR9JHtyZWdpb25TdWZmaXh9YFxuICAgICAgICB9KTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGBJcGFtUG9vbEFybiR7YWNjb3VudElkfSR7cmVnaW9uU3VmZml4fWAsIHtcbiAgICAgICAgICBrZXk6IGBJcGFtUG9vbEFybiR7YWNjb3VudElkfSR7cmVnaW9uU3VmZml4fWAsXG4gICAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJBcm4sXG4gICAgICAgICAgZXhwb3J0TmFtZTogYElwYW1Qb29sQXJuJHthY2NvdW50SWR9JHtyZWdpb25TdWZmaXh9YFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIElwYW1Qb29sU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtUG9vbFN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IElwYW1Qb29sKHRoaXMsIFwiSXBhbVBvb2xcIiwge1xuICAgICAgb3JnQWNjb3VudHM6IHByb3BzLm9yZ0FjY291bnRzLFxuICAgICAgcmVnaW9uczogcHJvcHMucmVnaW9uc1xuICAgIH0pO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "0.69.2",
3
+ "version": "0.69.3",
4
4
  "bin": {
5
5
  "infrastructure": "bin/infrastructure.js"
6
6
  },
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@aws-sdk/client-organizations": "^3.716.0",
38
- "@fjall/util": "^0.69.2",
38
+ "@fjall/util": "^0.69.3",
39
39
  "@pepperize/cdk-organizations": "^0.7.135",
40
40
  "cdk-time-sleep": "^1.0.0",
41
41
  "constructs": "^10.0.0",
@@ -44,7 +44,7 @@
44
44
  "overrides": {
45
45
  "@smithy/core": "2.5.5"
46
46
  },
47
- "gitHead": "c65c83081a974af285e1e7f94dedda9036fd3dde",
47
+ "gitHead": "bbfeb265a90e42d5b6ca8c76412f86833878289b",
48
48
  "peerDependencies": {
49
49
  "aws-cdk": "^2.206.0",
50
50
  "aws-cdk-lib": "^2.206.0",