@fjall/components-infrastructure 0.20.0 → 0.20.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.
@@ -4,6 +4,12 @@ export interface IpamPoolProps extends StackProps {
4
4
  orgAccounts: string[];
5
5
  ipamScope?: string;
6
6
  region: string;
7
+ /**
8
+ * The netmask length (/CIDR) each child IPAM pool should receive.
9
+ * Controls the size of CIDR blocks automatically allocated to VPCs from the pool.
10
+ * Accepted range: /16 (65,536 IPs) – /28 (16 IPs). Defaults to /20 (4,096 IPs).
11
+ */
12
+ allocationDefaultNetmaskLength?: number;
7
13
  }
8
14
  interface IpamPoolStackProps extends StackProps {
9
15
  orgAccounts: string[];
@@ -4,7 +4,6 @@ exports.IpamPoolStack = exports.IpamPool = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const constructs_1 = require("constructs");
6
6
  const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
7
- const getCidr_1 = require("../../../utils/getCidr");
8
7
  const resourceShare_1 = require("../utilities/resourceShare");
9
8
  const getAccountId_1 = require("../../../utils/getAccountId");
10
9
  class IpamPool extends constructs_1.Construct {
@@ -15,16 +14,47 @@ class IpamPool extends constructs_1.Construct {
15
14
  // Prioritise region from props, then from env
16
15
  const region = props.region;
17
16
  const organisationAccounts = props.orgAccounts.map((account) => account.toLowerCase());
17
+ // Determine the child-pool CIDR size (defaults to /20)
18
+ const defaultNetmaskLength = props.allocationDefaultNetmaskLength ?? 20;
19
+ // Basic validation – /16 to /28 inclusive are considered safe for VPC allocations
20
+ if (defaultNetmaskLength < 16 || defaultNetmaskLength > 28) {
21
+ throw new Error(`allocationDefaultNetmaskLength must be between 16 and 28 (inclusive). Received: ${defaultNetmaskLength}`);
22
+ }
23
+ // Create the top-level pools
24
+ const rootPool = new aws_ec2_1.CfnIPAMPool(this, "TopLevelIpamPool", {
25
+ description: `Root IPAM pool`,
26
+ addressFamily: "ipv4",
27
+ ipamScopeId: IpamPrivateDefaultScopeId,
28
+ locale: region,
29
+ // Explicitly provision the /8 CIDR once at the top-level
30
+ provisionedCidrs: [
31
+ { cidr: "10.0.0.0/8" },
32
+ { cidr: "172.16.0.0/12" },
33
+ { cidr: "192.168.0.0/16" }
34
+ ],
35
+ autoImport: true,
36
+ tags: [
37
+ {
38
+ key: "fjall:operations:pool",
39
+ value: "top-level"
40
+ },
41
+ {
42
+ key: "fjall:costAllocation:type",
43
+ value: "root"
44
+ }
45
+ ]
46
+ });
47
+ // Create a child pool for each Organisation account
18
48
  for (const account of organisationAccounts) {
19
- const cidrBlock = new getCidr_1.default();
20
- const freeCidrBlock = cidrBlock.getCidrBlock();
21
- cidrBlock.updateState(freeCidrBlock, false);
22
49
  const accountId = (0, getAccountId_1.default)(account);
23
- const ipamPool = new aws_ec2_1.CfnIPAMPool(this, `${account}IpamPool${freeCidrBlock}`, {
24
- description: `${account} - IPAM pool - ${region} - ${freeCidrBlock}`,
50
+ const ipamPool = new aws_ec2_1.CfnIPAMPool(this, `${account}IpamPool`, {
51
+ description: `${account} - IPAM pool - ${region}`,
25
52
  addressFamily: "ipv4",
26
53
  ipamScopeId: IpamPrivateDefaultScopeId,
27
54
  locale: region,
55
+ // Allocate from the root pool automatically
56
+ sourceIpamPoolId: rootPool.attrIpamPoolId,
57
+ allocationDefaultNetmaskLength: defaultNetmaskLength,
28
58
  allocationResourceTags: [
29
59
  {
30
60
  key: "fjall:operations:pool",
@@ -32,11 +62,10 @@ class IpamPool extends constructs_1.Construct {
32
62
  }
33
63
  ],
34
64
  autoImport: true,
35
- provisionedCidrs: [{ cidr: freeCidrBlock }],
36
65
  tags: [
37
66
  {
38
67
  key: "fjall:operations:pool",
39
- value: "top-level"
68
+ value: `${accountId}`
40
69
  },
41
70
  {
42
71
  key: "fjall:costAllocation:accountName",
@@ -44,10 +73,15 @@ class IpamPool extends constructs_1.Construct {
44
73
  }
45
74
  ]
46
75
  });
76
+ // Allocate an initial CIDR block to the child pool so that VPCs can immediately allocate
77
+ new aws_ec2_1.CfnIPAMPoolCidr(this, `${account}PoolCidr${defaultNetmaskLength}`, {
78
+ ipamPoolId: ipamPool.attrIpamPoolId,
79
+ netmaskLength: defaultNetmaskLength
80
+ });
81
+ // Share the pool with the target account so that VPCs can allocate
47
82
  new resourceShare_1.ResourceShare(this, `${account}${region}IpamResourceShare`, {
48
83
  name: `${account}IpamResourceShare.${region}`,
49
84
  allowExternalPrincipals: false,
50
- // TODO: getAccountId expects environment as argument
51
85
  principals: [accountId],
52
86
  resourceArns: [ipamPool.attrArn],
53
87
  tags: [
@@ -57,6 +91,7 @@ class IpamPool extends constructs_1.Construct {
57
91
  }
58
92
  ]
59
93
  });
94
+ // Expose the pool ID for cross-stack usage (e.g. VPC allocations)
60
95
  new aws_cdk_lib_1.CfnOutput(this, `IpamPoolId${accountId}`, {
61
96
  key: `IpamPoolId${accountId}`,
62
97
  value: ipamPool.attrIpamPoolId,
@@ -81,4 +116,4 @@ class IpamPoolStack extends aws_cdk_lib_1.Stack {
81
116
  }
82
117
  }
83
118
  exports.IpamPoolStack = IpamPoolStack;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1Qb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUErRDtBQUMvRCwyQ0FBdUM7QUFDdkMsaURBQW1FO0FBQ25FLG9EQUErQztBQUMvQyw4REFBMkQ7QUFDM0QsOERBQXVEO0FBYXZELE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiwwREFBMEQ7UUFDMUQsTUFBTSx5QkFBeUIsR0FDN0IsS0FBSyxDQUFDLFNBQVMsSUFBSSxnQkFBRSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pFLDhDQUE4QztRQUM5QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRTVCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM3RCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQ3RCLENBQUM7UUFFRixLQUFLLE1BQU0sT0FBTyxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxpQkFBUyxFQUFFLENBQUM7WUFDbEMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9DLFNBQVMsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTVDLE1BQU0sU0FBUyxHQUFHLElBQUEsc0JBQVksRUFBQyxPQUFPLENBQUMsQ0FBQztZQUV4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQ2hDLElBQUksRUFDSixHQUFHLE9BQU8sV0FBVyxhQUFhLEVBQUUsRUFDcEM7Z0JBQ0UsV0FBVyxFQUFFLEdBQUcsT0FBTyxrQkFBa0IsTUFBTSxNQUFNLGFBQWEsRUFBRTtnQkFDcEUsYUFBYSxFQUFFLE1BQU07Z0JBQ3JCLFdBQVcsRUFBRSx5QkFBeUI7Z0JBQ3RDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLHNCQUFzQixFQUFFO29CQUN0Qjt3QkFDRSxHQUFHLEVBQUUsdUJBQXVCO3dCQUM1QixLQUFLLEVBQUUsR0FBRyxTQUFTLEVBQUU7cUJBQ3RCO2lCQUNGO2dCQUNELFVBQVUsRUFBRSxJQUFJO2dCQUNoQixnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLEVBQUU7b0JBQ0o7d0JBQ0UsR0FBRyxFQUFFLHVCQUF1Qjt3QkFDNUIsS0FBSyxFQUFFLFdBQVc7cUJBQ25CO29CQUNEO3dCQUNFLEdBQUcsRUFBRSxrQ0FBa0M7d0JBQ3ZDLEtBQUssRUFBRSxHQUFHLE9BQU8sRUFBRTtxQkFDcEI7aUJBQ0Y7YUFDRixDQUNGLENBQUM7WUFFRixJQUFJLDZCQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sbUJBQW1CLEVBQUU7Z0JBQzlELElBQUksRUFBRSxHQUFHLE9BQU8scUJBQXFCLE1BQU0sRUFBRTtnQkFDN0MsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIscURBQXFEO2dCQUNyRCxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hDLElBQUksRUFBRTtvQkFDSjt3QkFDRSxHQUFHLEVBQUUsOEJBQThCO3dCQUNuQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUU7cUJBQ3BCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxhQUFhLFNBQVMsRUFBRSxFQUFFO2dCQUM1QyxHQUFHLEVBQUUsYUFBYSxTQUFTLEVBQUU7Z0JBQzdCLEtBQUssRUFBRSxRQUFRLENBQUMsY0FBYztnQkFDOUIsVUFBVSxFQUFFLGFBQWEsU0FBUyxFQUFFO2FBQ3JDLENBQUMsQ0FBQztZQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxTQUFTLEVBQUUsRUFBRTtnQkFDN0MsR0FBRyxFQUFFLGNBQWMsU0FBUyxFQUFFO2dCQUM5QixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3ZCLFVBQVUsRUFBRSxjQUFjLFNBQVMsRUFBRTthQUN0QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBN0VELDRCQTZFQztBQUVELE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBQ3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVEQsc0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbiwgQ2ZuT3V0cHV0LCBTdGFja1Byb3BzLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbklQQU1Qb29sIGFzIElwYW1Qb29sQ2xhc3MgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IENpZHJCbG9jayBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZ2V0Q2lkclwiO1xuaW1wb3J0IHsgUmVzb3VyY2VTaGFyZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcmVzb3VyY2VTaGFyZVwiO1xuaW1wb3J0IGdldEFjY291bnRJZCBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZ2V0QWNjb3VudElkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVBvb2xQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBvcmdBY2NvdW50czogc3RyaW5nW107XG4gIGlwYW1TY29wZT86IHN0cmluZztcbiAgcmVnaW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJcGFtUG9vbFN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgb3JnQWNjb3VudHM6IHN0cmluZ1tdO1xuICByZWdpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIElwYW1Qb29sIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1Qb29sUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gR2V0IHRoZSBkZWZhdWx0IElQQU0gc2NvcGUgSUQgZnJvbSBwcm9wcywgb3IgQ0ZOIGltcG9ydFxuICAgIGNvbnN0IElwYW1Qcml2YXRlRGVmYXVsdFNjb3BlSWQgPVxuICAgICAgcHJvcHMuaXBhbVNjb3BlIHx8IEZuLmltcG9ydFZhbHVlKFwiSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZFwiKTtcbiAgICAvLyBQcmlvcml0aXNlIHJlZ2lvbiBmcm9tIHByb3BzLCB0aGVuIGZyb20gZW52XG4gICAgY29uc3QgcmVnaW9uID0gcHJvcHMucmVnaW9uO1xuXG4gICAgY29uc3Qgb3JnYW5pc2F0aW9uQWNjb3VudHMgPSBwcm9wcy5vcmdBY2NvdW50cy5tYXAoKGFjY291bnQpID0+XG4gICAgICBhY2NvdW50LnRvTG93ZXJDYXNlKClcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBhY2NvdW50IG9mIG9yZ2FuaXNhdGlvbkFjY291bnRzKSB7XG4gICAgICBjb25zdCBjaWRyQmxvY2sgPSBuZXcgQ2lkckJsb2NrKCk7XG4gICAgICBjb25zdCBmcmVlQ2lkckJsb2NrID0gY2lkckJsb2NrLmdldENpZHJCbG9jaygpO1xuICAgICAgY2lkckJsb2NrLnVwZGF0ZVN0YXRlKGZyZWVDaWRyQmxvY2ssIGZhbHNlKTtcblxuICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkKGFjY291bnQpO1xuXG4gICAgICBjb25zdCBpcGFtUG9vbCA9IG5ldyBJcGFtUG9vbENsYXNzKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHthY2NvdW50fUlwYW1Qb29sJHtmcmVlQ2lkckJsb2NrfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7YWNjb3VudH0gLSBJUEFNIHBvb2wgLSAke3JlZ2lvbn0gLSAke2ZyZWVDaWRyQmxvY2t9YCxcbiAgICAgICAgICBhZGRyZXNzRmFtaWx5OiBcImlwdjRcIixcbiAgICAgICAgICBpcGFtU2NvcGVJZDogSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCxcbiAgICAgICAgICBsb2NhbGU6IHJlZ2lvbixcbiAgICAgICAgICBhbGxvY2F0aW9uUmVzb3VyY2VUYWdzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleTogXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgICAgICAgICAgdmFsdWU6IGAke2FjY291bnRJZH1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBhdXRvSW1wb3J0OiB0cnVlLFxuICAgICAgICAgIHByb3Zpc2lvbmVkQ2lkcnM6IFt7IGNpZHI6IGZyZWVDaWRyQmxvY2sgfV0sXG4gICAgICAgICAgdGFnczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6IFwiZmphbGw6b3BlcmF0aW9uczpwb29sXCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBcInRvcC1sZXZlbFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246YWNjb3VudE5hbWVcIixcbiAgICAgICAgICAgICAgdmFsdWU6IGAke2FjY291bnR9YFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgbmV3IFJlc291cmNlU2hhcmUodGhpcywgYCR7YWNjb3VudH0ke3JlZ2lvbn1JcGFtUmVzb3VyY2VTaGFyZWAsIHtcbiAgICAgICAgbmFtZTogYCR7YWNjb3VudH1JcGFtUmVzb3VyY2VTaGFyZS4ke3JlZ2lvbn1gLFxuICAgICAgICBhbGxvd0V4dGVybmFsUHJpbmNpcGFsczogZmFsc2UsXG4gICAgICAgIC8vIFRPRE86IGdldEFjY291bnRJZCBleHBlY3RzIGVudmlyb25tZW50IGFzIGFyZ3VtZW50XG4gICAgICAgIHByaW5jaXBhbHM6IFthY2NvdW50SWRdLFxuICAgICAgICByZXNvdXJjZUFybnM6IFtpcGFtUG9vbC5hdHRyQXJuXSxcbiAgICAgICAgdGFnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJmamFsbDpjb3N0QWxsb2NhdGlvbjphY2NvdW50XCIsXG4gICAgICAgICAgICB2YWx1ZTogYCR7YWNjb3VudH1gXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgSXBhbVBvb2xJZCR7YWNjb3VudElkfWAsIHtcbiAgICAgICAga2V5OiBgSXBhbVBvb2xJZCR7YWNjb3VudElkfWAsXG4gICAgICAgIHZhbHVlOiBpcGFtUG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgZXhwb3J0TmFtZTogYElwYW1Qb29sSWQke2FjY291bnRJZH1gXG4gICAgICB9KTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgSXBhbVBvb2xBcm4ke2FjY291bnRJZH1gLCB7XG4gICAgICAgIGtleTogYElwYW1Qb29sQXJuJHthY2NvdW50SWR9YCxcbiAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJBcm4sXG4gICAgICAgIGV4cG9ydE5hbWU6IGBJcGFtUG9vbEFybiR7YWNjb3VudElkfWBcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2xTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1Qb29sU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgSXBhbVBvb2wodGhpcywgXCJJcGFtUG9vbFwiLCB7XG4gICAgICBvcmdBY2NvdW50czogcHJvcHMub3JnQWNjb3VudHMsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuICAgIH0pO1xuICB9XG59XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2lwYW1Qb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUErRDtBQUMvRCwyQ0FBdUM7QUFDdkMsaURBRzZCO0FBQzdCLDhEQUEyRDtBQUMzRCw4REFBdUQ7QUFtQnZELE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiwwREFBMEQ7UUFDMUQsTUFBTSx5QkFBeUIsR0FDN0IsS0FBSyxDQUFDLFNBQVMsSUFBSSxnQkFBRSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pFLDhDQUE4QztRQUM5QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRTVCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM3RCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQ3RCLENBQUM7UUFFRix1REFBdUQ7UUFDdkQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsOEJBQThCLElBQUksRUFBRSxDQUFDO1FBRXhFLGtGQUFrRjtRQUNsRixJQUFJLG9CQUFvQixHQUFHLEVBQUUsSUFBSSxvQkFBb0IsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMzRCxNQUFNLElBQUksS0FBSyxDQUNiLG1GQUFtRixvQkFBb0IsRUFBRSxDQUMxRyxDQUFDO1FBQ0osQ0FBQztRQUVELDZCQUE2QjtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzNELFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsYUFBYSxFQUFFLE1BQU07WUFD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Q0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFsSEQsNEJBa0hDO0FBRUQsTUFBYSxhQUFjLFNBQVEsbUJBQUs7SUFDdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFURCxzQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZuLCBDZm5PdXRwdXQsIFN0YWNrUHJvcHMsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ2ZuSVBBTVBvb2wgYXMgSXBhbVBvb2xDbGFzcyxcbiAgQ2ZuSVBBTVBvb2xDaWRyXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZVNoYXJlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9yZXNvdXJjZVNoYXJlXCI7XG5pbXBvcnQgZ2V0QWNjb3VudElkIGZyb20gXCIuLi8uLi8uLi91dGlscy9nZXRBY2NvdW50SWRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJcGFtUG9vbFByb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIG9yZ0FjY291bnRzOiBzdHJpbmdbXTtcbiAgaXBhbVNjb3BlPzogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuZXRtYXNrIGxlbmd0aCAoL0NJRFIpIGVhY2ggY2hpbGQgSVBBTSBwb29sIHNob3VsZCByZWNlaXZlLlxuICAgKiBDb250cm9scyB0aGUgc2l6ZSBvZiBDSURSIGJsb2NrcyBhdXRvbWF0aWNhbGx5IGFsbG9jYXRlZCB0byBWUENzIGZyb20gdGhlIHBvb2wuXG4gICAqIEFjY2VwdGVkIHJhbmdlOiAvMTYgKDY1LDUzNiBJUHMpIOKAkyAvMjggKDE2IElQcykuIERlZmF1bHRzIHRvIC8yMCAoNCwwOTYgSVBzKS5cbiAgICovXG4gIGFsbG9jYXRpb25EZWZhdWx0TmV0bWFza0xlbmd0aD86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIElwYW1Qb29sU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBvcmdBY2NvdW50czogc3RyaW5nW107XG4gIHJlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2wgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSXBhbVBvb2xQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBHZXQgdGhlIGRlZmF1bHQgSVBBTSBzY29wZSBJRCBmcm9tIHByb3BzLCBvciBDRk4gaW1wb3J0XG4gICAgY29uc3QgSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCA9XG4gICAgICBwcm9wcy5pcGFtU2NvcGUgfHwgRm4uaW1wb3J0VmFsdWUoXCJJcGFtUHJpdmF0ZURlZmF1bHRTY29wZUlkXCIpO1xuICAgIC8vIFByaW9yaXRpc2UgcmVnaW9uIGZyb20gcHJvcHMsIHRoZW4gZnJvbSBlbnZcbiAgICBjb25zdCByZWdpb24gPSBwcm9wcy5yZWdpb247XG5cbiAgICBjb25zdCBvcmdhbmlzYXRpb25BY2NvdW50cyA9IHByb3BzLm9yZ0FjY291bnRzLm1hcCgoYWNjb3VudCkgPT5cbiAgICAgIGFjY291bnQudG9Mb3dlckNhc2UoKVxuICAgICk7XG5cbiAgICAvLyBEZXRlcm1pbmUgdGhlIGNoaWxkLXBvb2wgQ0lEUiBzaXplIChkZWZhdWx0cyB0byAvMjApXG4gICAgY29uc3QgZGVmYXVsdE5ldG1hc2tMZW5ndGggPSBwcm9wcy5hbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGggPz8gMjA7XG5cbiAgICAvLyBCYXNpYyB2YWxpZGF0aW9uIOKAkyAvMTYgdG8gLzI4IGluY2x1c2l2ZSBhcmUgY29uc2lkZXJlZCBzYWZlIGZvciBWUEMgYWxsb2NhdGlvbnNcbiAgICBpZiAoZGVmYXVsdE5ldG1hc2tMZW5ndGggPCAxNiB8fCBkZWZhdWx0TmV0bWFza0xlbmd0aCA+IDI4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGggbXVzdCBiZSBiZXR3ZWVuIDE2IGFuZCAyOCAoaW5jbHVzaXZlKS4gUmVjZWl2ZWQ6ICR7ZGVmYXVsdE5ldG1hc2tMZW5ndGh9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIHRvcC1sZXZlbCBwb29sc1xuICAgIGNvbnN0IHJvb3RQb29sID0gbmV3IElwYW1Qb29sQ2xhc3ModGhpcywgXCJUb3BMZXZlbElwYW1Qb29sXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgUm9vdCBJUEFNIHBvb2xgLFxuICAgICAgYWRkcmVzc0ZhbWlseTogXCJpcHY0XCIsXG4gICAgICBpcGFtU2NvcGVJZDogSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCxcbiAgICAgIGxvY2FsZTogcmVnaW9uLFxuICAgICAgLy8gRXhwbGljaXRseSBwcm92aXNpb24gdGhlIC84IENJRFIgb25jZSBhdCB0aGUgdG9wLWxldmVsXG4gICAgICBwcm92aXNpb25lZENpZHJzOiBbXG4gICAgICAgIHsgY2lkcjogXCIxMC4wLjAuMC84XCIgfSxcbiAgICAgICAgeyBjaWRyOiBcIjE3Mi4xNi4wLjAvMTJcIiB9LFxuICAgICAgICB7IGNpZHI6IFwiMTkyLjE2OC4wLjAvMTZcIiB9XG4gICAgICBdLFxuICAgICAgYXV0b0ltcG9ydDogdHJ1ZSxcbiAgICAgIHRhZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIixcbiAgICAgICAgICB2YWx1ZTogXCJ0b3AtbGV2ZWxcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOnR5cGVcIixcbiAgICAgICAgICB2YWx1ZTogXCJyb290XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGEgY2hpbGQgcG9vbCBmb3IgZWFjaCBPcmdhbmlzYXRpb24gYWNjb3VudFxuICAgIGZvciAoY29uc3QgYWNjb3VudCBvZiBvcmdhbmlzYXRpb25BY2NvdW50cykge1xuICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkKGFjY291bnQpO1xuXG4gICAgICBjb25zdCBpcGFtUG9vbCA9IG5ldyBJcGFtUG9vbENsYXNzKHRoaXMsIGAke2FjY291bnR9SXBhbVBvb2xgLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHthY2NvdW50fSAtIElQQU0gcG9vbCAtICR7cmVnaW9ufWAsXG4gICAgICAgIGFkZHJlc3NGYW1pbHk6IFwiaXB2NFwiLFxuICAgICAgICBpcGFtU2NvcGVJZDogSXBhbVByaXZhdGVEZWZhdWx0U2NvcGVJZCxcbiAgICAgICAgbG9jYWxlOiByZWdpb24sXG4gICAgICAgIC8vIEFsbG9jYXRlIGZyb20gdGhlIHJvb3QgcG9vbCBhdXRvbWF0aWNhbGx5XG4gICAgICAgIHNvdXJjZUlwYW1Qb29sSWQ6IHJvb3RQb29sLmF0dHJJcGFtUG9vbElkLFxuICAgICAgICBhbGxvY2F0aW9uRGVmYXVsdE5ldG1hc2tMZW5ndGg6IGRlZmF1bHROZXRtYXNrTGVuZ3RoLFxuICAgICAgICBhbGxvY2F0aW9uUmVzb3VyY2VUYWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgICAgdmFsdWU6IGAke2FjY291bnRJZH1gXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBhdXRvSW1wb3J0OiB0cnVlLFxuICAgICAgICB0YWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImZqYWxsOm9wZXJhdGlvbnM6cG9vbFwiLFxuICAgICAgICAgICAgdmFsdWU6IGAke2FjY291bnRJZH1gXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246YWNjb3VudE5hbWVcIixcbiAgICAgICAgICAgIHZhbHVlOiBgJHthY2NvdW50fWBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBBbGxvY2F0ZSBhbiBpbml0aWFsIENJRFIgYmxvY2sgdG8gdGhlIGNoaWxkIHBvb2wgc28gdGhhdCBWUENzIGNhbiBpbW1lZGlhdGVseSBhbGxvY2F0ZVxuICAgICAgbmV3IENmbklQQU1Qb29sQ2lkcih0aGlzLCBgJHthY2NvdW50fVBvb2xDaWRyJHtkZWZhdWx0TmV0bWFza0xlbmd0aH1gLCB7XG4gICAgICAgIGlwYW1Qb29sSWQ6IGlwYW1Qb29sLmF0dHJJcGFtUG9vbElkLFxuICAgICAgICBuZXRtYXNrTGVuZ3RoOiBkZWZhdWx0TmV0bWFza0xlbmd0aFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFNoYXJlIHRoZSBwb29sIHdpdGggdGhlIHRhcmdldCBhY2NvdW50IHNvIHRoYXQgVlBDcyBjYW4gYWxsb2NhdGVcbiAgICAgIG5ldyBSZXNvdXJjZVNoYXJlKHRoaXMsIGAke2FjY291bnR9JHtyZWdpb259SXBhbVJlc291cmNlU2hhcmVgLCB7XG4gICAgICAgIG5hbWU6IGAke2FjY291bnR9SXBhbVJlc291cmNlU2hhcmUuJHtyZWdpb259YCxcbiAgICAgICAgYWxsb3dFeHRlcm5hbFByaW5jaXBhbHM6IGZhbHNlLFxuICAgICAgICBwcmluY2lwYWxzOiBbYWNjb3VudElkXSxcbiAgICAgICAgcmVzb3VyY2VBcm5zOiBbaXBhbVBvb2wuYXR0ckFybl0sXG4gICAgICAgIHRhZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiZmphbGw6Y29zdEFsbG9jYXRpb246YWNjb3VudFwiLFxuICAgICAgICAgICAgdmFsdWU6IGAke2FjY291bnR9YFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEV4cG9zZSB0aGUgcG9vbCBJRCBmb3IgY3Jvc3Mtc3RhY2sgdXNhZ2UgKGUuZy4gVlBDIGFsbG9jYXRpb25zKVxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgSXBhbVBvb2xJZCR7YWNjb3VudElkfWAsIHtcbiAgICAgICAga2V5OiBgSXBhbVBvb2xJZCR7YWNjb3VudElkfWAsXG4gICAgICAgIHZhbHVlOiBpcGFtUG9vbC5hdHRySXBhbVBvb2xJZCxcbiAgICAgICAgZXhwb3J0TmFtZTogYElwYW1Qb29sSWQke2FjY291bnRJZH1gXG4gICAgICB9KTtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgSXBhbVBvb2xBcm4ke2FjY291bnRJZH1gLCB7XG4gICAgICAgIGtleTogYElwYW1Qb29sQXJuJHthY2NvdW50SWR9YCxcbiAgICAgICAgdmFsdWU6IGlwYW1Qb29sLmF0dHJBcm4sXG4gICAgICAgIGV4cG9ydE5hbWU6IGBJcGFtUG9vbEFybiR7YWNjb3VudElkfWBcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXBhbVBvb2xTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1Qb29sU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgSXBhbVBvb2wodGhpcywgXCJJcGFtUG9vbFwiLCB7XG4gICAgICBvcmdBY2NvdW50czogcHJvcHMub3JnQWNjb3VudHMsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvblxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,19 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AwsCustomResource = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
4
  const customResource = require("aws-cdk-lib/custom-resources");
6
5
  class AwsCustomResource extends customResource.AwsCustomResource {
7
6
  constructor(scope, id, props) {
8
7
  super(scope, id, {
9
- ...props, // https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.AwsCustomResource
10
- logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_YEAR,
11
- policy: props.policy || customResource.AwsCustomResourcePolicy.fromSdkCalls({
12
- resources: customResource.AwsCustomResourcePolicy.ANY_RESOURCE
13
- }),
8
+ ...props,
9
+ policy: props.policy ||
10
+ customResource.AwsCustomResourcePolicy.fromSdkCalls({
11
+ resources: customResource.AwsCustomResourcePolicy.ANY_RESOURCE
12
+ })
14
13
  });
15
14
  }
16
15
  }
17
16
  exports.AwsCustomResource = AwsCustomResource;
18
- ;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzQ3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLCtEQUErRDtBQUcvRCxNQUFhLGlCQUFrQixTQUFRLGNBQWMsQ0FBQyxpQkFBaUI7SUFHckUsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBNEM7UUFFNUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUssRUFBRSw2RkFBNkY7WUFDdkcsWUFBWSxFQUFFLHNCQUFRLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDN0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDMUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZO2FBQy9ELENBQUM7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUM7QUFmRiw4Q0FlRTtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NfbG9ncyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2UgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBBd3NDdXN0b21SZXNvdXJjZSBleHRlbmRzIGN1c3RvbVJlc291cmNlLkF3c0N1c3RvbVJlc291cmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBjdXN0b21SZXNvdXJjZS5Bd3NDdXN0b21SZXNvdXJjZVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuY3VzdG9tX3Jlc291cmNlcy5Bd3NDdXN0b21SZXNvdXJjZVxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9ZRUFSLFxuICAgICAgcG9saWN5OiBwcm9wcy5wb2xpY3kgfHwgY3VzdG9tUmVzb3VyY2UuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBjdXN0b21SZXNvdXJjZS5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0VcbiAgICAgIH0pLFxuICB9KTtcbn19O1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzQ3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQStEO0FBRy9ELE1BQWEsaUJBQWtCLFNBQVEsY0FBYyxDQUFDLGlCQUFpQjtJQUdyRSxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUE0QztRQUU1QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFDSixLQUFLLENBQUMsTUFBTTtnQkFDWixjQUFjLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDO29CQUNsRCxTQUFTLEVBQUUsY0FBYyxDQUFDLHVCQUF1QixDQUFDLFlBQVk7aUJBQy9ELENBQUM7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqQkQsOENBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2UgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBBd3NDdXN0b21SZXNvdXJjZSBleHRlbmRzIGN1c3RvbVJlc291cmNlLkF3c0N1c3RvbVJlc291cmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBjdXN0b21SZXNvdXJjZS5Bd3NDdXN0b21SZXNvdXJjZVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBwb2xpY3k6XG4gICAgICAgIHByb3BzLnBvbGljeSB8fFxuICAgICAgICBjdXN0b21SZXNvdXJjZS5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAgIHJlc291cmNlczogY3VzdG9tUmVzb3VyY2UuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFXG4gICAgICAgIH0pXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -18,8 +18,7 @@ class CustomResource extends constructs_1.Construct {
18
18
  inlinePolicy: props.inlinePolicy
19
19
  });
20
20
  const provider = new custom_resources_1.Provider(this, `${id}Provider`, {
21
- onEventHandler: lambdaFunction,
22
- logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_YEAR
21
+ onEventHandler: lambdaFunction
23
22
  });
24
23
  const resource = new aws_cdk_lib_1.CustomResource(this, `${id}Resource`, {
25
24
  serviceToken: provider.serviceToken,
@@ -29,4 +28,4 @@ class CustomResource extends constructs_1.Construct {
29
28
  }
30
29
  }
31
30
  exports.CustomResource = CustomResource;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSXFCO0FBQ3JCLG1FQUF3RDtBQUV4RCx1REFBdUQ7QUFDdkQsMkNBQXVDO0FBRXZDLDhDQUFzRDtBQWV0RCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxjQUFjLEdBQUcsSUFBSSwwQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUNoRSxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVTtZQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxTQUFTO1lBQzVELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLEdBQUcsRUFBRSx5QkFBeUI7WUFDeEUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtZQUNuRCxjQUFjLEVBQUUsY0FBYztZQUM5QixZQUFZLEVBQUUsc0JBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUTtTQUM5QyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDekQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBM0JELHdDQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEN1c3RvbVJlc291cmNlIGFzIGN1c3RvbVJlc291cmNlLFxuICBhd3NfbG9ncyxcbiAgQXNzZXRPcHRpb25zXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgUG9saWN5RG9jdW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29kZSwgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBTaW5nbGV0b25GdW5jdGlvbiB9IGZyb20gXCIuLi9jb21wdXRlL2xhbWJkYVwiO1xuXG5pbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIHJ1bnRpbWU6IFJ1bnRpbWU7XG4gIHJvbGVEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGFtYmRhRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlubGluZVBvbGljeToge1xuICAgIFtuYW1lOiBzdHJpbmddOiBQb2xpY3lEb2N1bWVudDtcbiAgfTtcbiAgcHJvcGVydGllcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7IC8vIFVzZWQgdG8gYmUgYFtrZXk6IHN0cmluZ106IGFueWAsIHRoaXMgY291bGQgYnJlYWtcbiAgfTtcbiAgY29kZVBhdGg6IHN0cmluZztcbiAgYXNzZXRPcHRpb25zPzogQXNzZXRPcHRpb25zO1xufVxuZXhwb3J0IGNsYXNzIEN1c3RvbVJlc291cmNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEN1c3RvbVJlc291cmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbGFtYmRhRnVuY3Rpb24gPSBuZXcgU2luZ2xldG9uRnVuY3Rpb24odGhpcywgYCR7aWR9TGFtYmRhYCwge1xuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocHJvcHMuY29kZVBhdGgsIHByb3BzLmFzc2V0T3B0aW9ucyksXG4gICAgICBoYW5kbGVyOiBgJHtpZH0uaGFuZGxlcmAsXG4gICAgICBydW50aW1lOiBwcm9wcy5ydW50aW1lLFxuICAgICAgbGFtYmRhRGVzY3JpcHRpb246IHByb3BzLmxhbWJkYURlc2NyaXB0aW9uIHx8IGAke2lkfSBsYW1iZGFgLFxuICAgICAgcm9sZURlc2NyaXB0aW9uOiBwcm9wcy5yb2xlRGVzY3JpcHRpb24gfHwgYCR7aWR9IGN1c3RvbSByZXNvdXJjZSBsYW1iZGFgLFxuICAgICAgaW5saW5lUG9saWN5OiBwcm9wcy5pbmxpbmVQb2xpY3lcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIGAke2lkfVByb3ZpZGVyYCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGxhbWJkYUZ1bmN0aW9uLFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9ZRUFSXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBjdXN0b21SZXNvdXJjZSh0aGlzLCBgJHtpZH1SZXNvdXJjZWAsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczogcHJvcHMucHJvcGVydGllc1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc291cmNlLmdldEF0dChcIlJlc3BvbnNlXCIpLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTZFO0FBQzdFLG1FQUF3RDtBQUV4RCx1REFBdUQ7QUFDdkQsMkNBQXVDO0FBRXZDLDhDQUFzRDtBQWV0RCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxjQUFjLEdBQUcsSUFBSSwwQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUNoRSxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVTtZQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxTQUFTO1lBQzVELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLEdBQUcsRUFBRSx5QkFBeUI7WUFDeEUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtZQUNuRCxjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDekQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBMUJELHdDQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlIGFzIGN1c3RvbVJlc291cmNlLCBBc3NldE9wdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IFBvbGljeURvY3VtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvZGUsIFJ1bnRpbWUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgU2luZ2xldG9uRnVuY3Rpb24gfSBmcm9tIFwiLi4vY29tcHV0ZS9sYW1iZGFcIjtcblxuaW50ZXJmYWNlIEN1c3RvbVJlc291cmNlUHJvcHMge1xuICBydW50aW1lOiBSdW50aW1lO1xuICByb2xlRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxhbWJkYURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpbmxpbmVQb2xpY3k6IHtcbiAgICBbbmFtZTogc3RyaW5nXTogUG9saWN5RG9jdW1lbnQ7XG4gIH07XG4gIHByb3BlcnRpZXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nOyAvLyBVc2VkIHRvIGJlIGBba2V5OiBzdHJpbmddOiBhbnlgLCB0aGlzIGNvdWxkIGJyZWFrXG4gIH07XG4gIGNvZGVQYXRoOiBzdHJpbmc7XG4gIGFzc2V0T3B0aW9ucz86IEFzc2V0T3B0aW9ucztcbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByZXNwb25zZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21SZXNvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGxhbWJkYUZ1bmN0aW9uID0gbmV3IFNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsIGAke2lkfUxhbWJkYWAsIHtcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHByb3BzLmNvZGVQYXRoLCBwcm9wcy5hc3NldE9wdGlvbnMpLFxuICAgICAgaGFuZGxlcjogYCR7aWR9LmhhbmRsZXJgLFxuICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSxcbiAgICAgIGxhbWJkYURlc2NyaXB0aW9uOiBwcm9wcy5sYW1iZGFEZXNjcmlwdGlvbiB8fCBgJHtpZH0gbGFtYmRhYCxcbiAgICAgIHJvbGVEZXNjcmlwdGlvbjogcHJvcHMucm9sZURlc2NyaXB0aW9uIHx8IGAke2lkfSBjdXN0b20gcmVzb3VyY2UgbGFtYmRhYCxcbiAgICAgIGlubGluZVBvbGljeTogcHJvcHMuaW5saW5lUG9saWN5XG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBQcm92aWRlcih0aGlzLCBgJHtpZH1Qcm92aWRlcmAsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBsYW1iZGFGdW5jdGlvblxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgY3VzdG9tUmVzb3VyY2UodGhpcywgYCR7aWR9UmVzb3VyY2VgLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHByb3BzLnByb3BlcnRpZXNcbiAgICB9KTtcblxuICAgIHRoaXMucmVzcG9uc2UgPSByZXNvdXJjZS5nZXRBdHQoXCJSZXNwb25zZVwiKS50b1N0cmluZygpO1xuICB9XG59XG4iXX0=
@@ -1,15 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CustomResourceProvider = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
4
  const custom_resources_1 = require("aws-cdk-lib/custom-resources");
6
5
  class CustomResourceProvider extends custom_resources_1.Provider {
7
6
  constructor(scope, id, props) {
8
- super(scope, id, {
9
- ...props, // https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CustomResourceProvider.html
10
- logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_YEAR,
11
- });
7
+ super(scope, id, props);
12
8
  }
13
9
  }
14
10
  exports.CustomResourceProvider = CustomResourceProvider;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2VQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jdXN0b21SZXNvdXJjZVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1QztBQUN2QyxtRUFBdUU7QUFHdkUsTUFBYSxzQkFBdUIsU0FBUSwyQkFBUTtJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLLEVBQUUsc0ZBQXNGO1lBQ2hHLFlBQVksRUFBRSxzQkFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVBELHdEQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX2xvZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFByb3ZpZGVyLCBQcm92aWRlclByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZVByb3ZpZGVyIGV4dGVuZHMgUHJvdmlkZXIge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvdmlkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuQ3VzdG9tUmVzb3VyY2VQcm92aWRlci5odG1sXG4gICAgICBsb2dSZXRlbnRpb246IGF3c19sb2dzLlJldGVudGlvbkRheXMuT05FX1lFQVIsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2VQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jdXN0b21SZXNvdXJjZVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUF1RTtBQUd2RSxNQUFhLHNCQUF1QixTQUFRLDJCQUFRO0lBQ2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBSkQsd0RBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgUHJvdmlkZXJQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmVzb3VyY2VQcm92aWRlciBleHRlbmRzIFByb3ZpZGVyIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3ZpZGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxufVxuIl19
@@ -1 +1,2 @@
1
1
  export * from "./getConfig";
2
+ export * from "./standardTagsAspect";
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./getConfig"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2dldENvbmZpZ1wiO1xuIl19
18
+ __exportStar(require("./standardTagsAspect"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1Qix1REFBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9nZXRDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkVGFnc0FzcGVjdFwiO1xuIl19
@@ -0,0 +1,42 @@
1
+ import { IAspect } from "aws-cdk-lib";
2
+ import { IConstruct } from "constructs";
3
+ /**
4
+ * Aspect to enforce a standard set of tags on every tag-capable resource in a construct tree.
5
+ *
6
+ * Usage – attach once near the root of your CDK app (or to an individual stack):
7
+ * ```ts
8
+ * import { App, Aspects } from "aws-cdk-lib";
9
+ * import { StandardTagsAspect } from "./utils";
10
+ *
11
+ * const app = new App();
12
+ *
13
+ * // Define the required tags
14
+ * const tags = {
15
+ * "fjall:costAllocation:environment": "production",
16
+ * "fjall:costAllocation:owner": "engineering"
17
+ * };
18
+ *
19
+ * // Add the aspect – CDK will invoke it for every construct during synthesis
20
+ * Aspects.of(app).add(new StandardTagsAspect(tags));
21
+ *
22
+ * // define stacks/constructs after the aspect is attached
23
+ * new MyStack(app, "MyStack");
24
+ *
25
+ * app.synth();
26
+ * ```
27
+ *
28
+ * How it works:
29
+ * 1. CDK traverses every construct and calls `visit(node)`.
30
+ * 2. For each required tag the aspect adds it to the construct via `Tags.of(node).add()`.
31
+ * 3. Constructs that don't support tagging are silently ignored.
32
+ * 4. The resulting CloudFormation template contains the enforced tags on all resources.
33
+ *
34
+ * If a tag already exists on a construct, CDK de-duplicates by key so no duplication occurs.
35
+ */
36
+ export declare class StandardTagsAspect implements IAspect {
37
+ private readonly requiredTags;
38
+ constructor(requiredTags: {
39
+ [key: string]: string;
40
+ });
41
+ visit(node: IConstruct): void;
42
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardTagsAspect = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ /**
6
+ * Aspect to enforce a standard set of tags on every tag-capable resource in a construct tree.
7
+ *
8
+ * Usage – attach once near the root of your CDK app (or to an individual stack):
9
+ * ```ts
10
+ * import { App, Aspects } from "aws-cdk-lib";
11
+ * import { StandardTagsAspect } from "./utils";
12
+ *
13
+ * const app = new App();
14
+ *
15
+ * // Define the required tags
16
+ * const tags = {
17
+ * "fjall:costAllocation:environment": "production",
18
+ * "fjall:costAllocation:owner": "engineering"
19
+ * };
20
+ *
21
+ * // Add the aspect – CDK will invoke it for every construct during synthesis
22
+ * Aspects.of(app).add(new StandardTagsAspect(tags));
23
+ *
24
+ * // define stacks/constructs after the aspect is attached
25
+ * new MyStack(app, "MyStack");
26
+ *
27
+ * app.synth();
28
+ * ```
29
+ *
30
+ * How it works:
31
+ * 1. CDK traverses every construct and calls `visit(node)`.
32
+ * 2. For each required tag the aspect adds it to the construct via `Tags.of(node).add()`.
33
+ * 3. Constructs that don't support tagging are silently ignored.
34
+ * 4. The resulting CloudFormation template contains the enforced tags on all resources.
35
+ *
36
+ * If a tag already exists on a construct, CDK de-duplicates by key so no duplication occurs.
37
+ */
38
+ class StandardTagsAspect {
39
+ constructor(requiredTags) {
40
+ this.requiredTags = requiredTags;
41
+ }
42
+ visit(node) {
43
+ // Only attempt to tag constructs that support tagging
44
+ for (const [key, value] of Object.entries(this.requiredTags)) {
45
+ aws_cdk_lib_1.Tags.of(node).add(key, value);
46
+ }
47
+ }
48
+ }
49
+ exports.StandardTagsAspect = StandardTagsAspect;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRUYWdzQXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL3N0YW5kYXJkVGFnc0FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNEM7QUFHNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBQ0gsTUFBYSxrQkFBa0I7SUFHN0IsWUFBWSxZQUF1QztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWdCO1FBQ3BCLHNEQUFzRDtRQUN0RCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM3RCxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFiRCxnREFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBc3BlY3QsIFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIEFzcGVjdCB0byBlbmZvcmNlIGEgc3RhbmRhcmQgc2V0IG9mIHRhZ3Mgb24gZXZlcnkgdGFnLWNhcGFibGUgcmVzb3VyY2UgaW4gYSBjb25zdHJ1Y3QgdHJlZS5cbiAqXG4gKiBVc2FnZSDigJMgYXR0YWNoIG9uY2UgbmVhciB0aGUgcm9vdCBvZiB5b3VyIENESyBhcHAgKG9yIHRvIGFuIGluZGl2aWR1YWwgc3RhY2spOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IEFwcCwgQXNwZWN0cyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuICogaW1wb3J0IHsgU3RhbmRhcmRUYWdzQXNwZWN0IH0gZnJvbSBcIi4vdXRpbHNcIjtcbiAqXG4gKiBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4gKlxuICogLy8gRGVmaW5lIHRoZSByZXF1aXJlZCB0YWdzXG4gKiBjb25zdCB0YWdzID0ge1xuICogICBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmVudmlyb25tZW50XCI6IFwicHJvZHVjdGlvblwiLFxuICogICBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOm93bmVyXCI6IFwiZW5naW5lZXJpbmdcIlxuICogfTtcbiAqXG4gKiAvLyBBZGQgdGhlIGFzcGVjdCDigJMgQ0RLIHdpbGwgaW52b2tlIGl0IGZvciBldmVyeSBjb25zdHJ1Y3QgZHVyaW5nIHN5bnRoZXNpc1xuICogQXNwZWN0cy5vZihhcHApLmFkZChuZXcgU3RhbmRhcmRUYWdzQXNwZWN0KHRhZ3MpKTtcbiAqXG4gKiAvLyBkZWZpbmUgc3RhY2tzL2NvbnN0cnVjdHMgYWZ0ZXIgdGhlIGFzcGVjdCBpcyBhdHRhY2hlZFxuICogbmV3IE15U3RhY2soYXBwLCBcIk15U3RhY2tcIik7XG4gKlxuICogYXBwLnN5bnRoKCk7XG4gKiBgYGBcbiAqXG4gKiBIb3cgaXQgd29ya3M6XG4gKiAgIDEuIENESyB0cmF2ZXJzZXMgZXZlcnkgY29uc3RydWN0IGFuZCBjYWxscyBgdmlzaXQobm9kZSlgLlxuICogICAyLiBGb3IgZWFjaCByZXF1aXJlZCB0YWcgdGhlIGFzcGVjdCBhZGRzIGl0IHRvIHRoZSBjb25zdHJ1Y3QgdmlhIGBUYWdzLm9mKG5vZGUpLmFkZCgpYC5cbiAqICAgMy4gQ29uc3RydWN0cyB0aGF0IGRvbid0IHN1cHBvcnQgdGFnZ2luZyBhcmUgc2lsZW50bHkgaWdub3JlZC5cbiAqICAgNC4gVGhlIHJlc3VsdGluZyBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBjb250YWlucyB0aGUgZW5mb3JjZWQgdGFncyBvbiBhbGwgcmVzb3VyY2VzLlxuICpcbiAqIElmIGEgdGFnIGFscmVhZHkgZXhpc3RzIG9uIGEgY29uc3RydWN0LCBDREsgZGUtZHVwbGljYXRlcyBieSBrZXkgc28gbm8gZHVwbGljYXRpb24gb2NjdXJzLlxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRUYWdzQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWlyZWRUYWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHJlcXVpcmVkVGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIHRoaXMucmVxdWlyZWRUYWdzID0gcmVxdWlyZWRUYWdzO1xuICB9XG5cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIC8vIE9ubHkgYXR0ZW1wdCB0byB0YWcgY29uc3RydWN0cyB0aGF0IHN1cHBvcnQgdGFnZ2luZ1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucmVxdWlyZWRUYWdzKSkge1xuICAgICAgVGFncy5vZihub2RlKS5hZGQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "bin": {
5
5
  "infrastructure": "bin/infrastructure.js"
6
6
  },
@@ -35,10 +35,8 @@
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.20.0",
38
+ "@fjall/util": "^0.20.2",
39
39
  "@pepperize/cdk-organizations": "^0.7.135",
40
- "aws-cdk": "^2.146.0",
41
- "aws-cdk-lib": "^2.146.0",
42
40
  "aws-lambda": "^1.0.7",
43
41
  "cdk-time-sleep": "^1.0.0",
44
42
  "constructs": "^10.0.0",
@@ -48,5 +46,10 @@
48
46
  "overrides": {
49
47
  "@smithy/core": "2.5.5"
50
48
  },
51
- "gitHead": "5a47023900fb6437d86b01316ce33b365cf7fe4a"
49
+ "gitHead": "a1ea6da3bdc945248012d2b78e3fae725c16002e",
50
+ "peerDependencies": {
51
+ "aws-cdk": "^2.204.0",
52
+ "aws-cdk-lib": "^2.204.0",
53
+ "constructs": "^10.0.0"
54
+ }
52
55
  }