UNPKG

raindancers-network

Version:
76 lines 9.87 kB
"use strict"; var _a, _b; Object.defineProperty(exports, "__esModule", { value: true }); exports.AssociateSharedResolverRule = exports.ForwardingRules = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cdk_lib_1 = require("aws-cdk-lib"); //import * as cdk from 'aws-cdk-lib'; const constructs = require("constructs"); /** * create forwarding rules and associate them with a vpc. */ class ForwardingRules extends constructs.Construct { constructor(scope, id, props) { super(scope, id); let targetIps = []; props.resolverIP.forEach((targetip) => { targetIps.push({ ip: targetip }); }); props.domains.forEach((domain) => { // create the resolver rule let resolverRule = new aws_cdk_lib_1.aws_route53resolver.CfnResolverRule(this, `r53r${domain}`, { resolverEndpointId: props.resolverId, domainName: domain, ruleType: 'FORWARD', targetIps: targetIps, }); new aws_cdk_lib_1.aws_route53resolver.CfnResolverRuleAssociation(this, `r53rassn${domain}`, { resolverRuleId: resolverRule.attrResolverRuleId, vpcId: props.vpc.vpcId, }); }); } } exports.ForwardingRules = ForwardingRules; _a = JSII_RTTI_SYMBOL_1; ForwardingRules[_a] = { fqn: "raindancers-network.dns.ForwardingRules", version: "1.29.3" }; /** * Associate a resolver rule that has been shared to this account */ class AssociateSharedResolverRule extends constructs.Construct { constructor(scope, id, props) { super(scope, id); props.domainNames.forEach((domain) => { var zoneName = domain.replace(/\./gi, 'dot'); zoneName = zoneName.replace(/-/gi, 'dash'); //const region = cdk.Aws.REGION.replace(/-/gi, ''); const resolverRule = new aws_cdk_lib_1.custom_resources.AwsCustomResource(this, `lookupResolverId'${domain}`, { onCreate: { service: 'Route53Resolver', action: 'listResolverRules', parameters: { Filters: [ { Name: 'DomainName', Values: [`${domain}.`], }, ], }, physicalResourceId: aws_cdk_lib_1.custom_resources.PhysicalResourceId.of('resolverId'), }, policy: aws_cdk_lib_1.custom_resources.AwsCustomResourcePolicy.fromSdkCalls({ resources: aws_cdk_lib_1.custom_resources.AwsCustomResourcePolicy.ANY_RESOURCE, }), }); const resolverRuleId = resolverRule.getResponseField('ResolverRules.0.Id'); new aws_cdk_lib_1.aws_route53resolver.CfnResolverRuleAssociation(this, `${domain}ResolverRuleAssociation`, { resolverRuleId: resolverRuleId, vpcId: props.vpc.vpcId, }); }); } } exports.AssociateSharedResolverRule = AssociateSharedResolverRule; _b = JSII_RTTI_SYMBOL_1; AssociateSharedResolverRule[_b] = { fqn: "raindancers-network.dns.AssociateSharedResolverRule", version: "1.29.3" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZ1J1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Rucy9mb3J3YXJkaW5nUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FLcUI7QUFFckIscUNBQXFDO0FBQ3JDLHlDQUF5QztBQVV6Qzs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxVQUFVLENBQUMsU0FBUztJQUV2RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQy9FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxTQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFFL0IsMkJBQTJCO1lBQzNCLElBQUksWUFBWSxHQUFHLElBQUksaUNBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sTUFBTSxFQUFFLEVBQUU7Z0JBQ2pFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUNwQyxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFNBQVMsRUFBRSxTQUFTO2FBQ3JCLENBQUMsQ0FBQztZQUVILElBQUksaUNBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxNQUFNLEVBQUUsRUFBRTtnQkFDN0QsY0FBYyxFQUFFLFlBQVksQ0FBQyxrQkFBa0I7Z0JBQy9DLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDOztBQTNCSCwwQ0E0QkM7OztBQWVEOztHQUVHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUVuRSxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQXVDO1FBQzNGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUVuQyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3QyxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0MsbURBQW1EO1lBRW5ELE1BQU0sWUFBWSxHQUFHLElBQUksOEJBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLE1BQU0sRUFBRSxFQUFFO2dCQUNoRixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsTUFBTSxFQUFFLG1CQUFtQjtvQkFDM0IsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsWUFBWTtnQ0FDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQzs2QkFDdkI7eUJBQ0Y7cUJBQ0Y7b0JBQ0Qsa0JBQWtCLEVBQUUsOEJBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMzRDtnQkFDRCxNQUFNLEVBQUUsOEJBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7b0JBQzlDLFNBQVMsRUFBRSw4QkFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVk7aUJBQ25ELENBQUM7YUFDSCxDQUFDLENBQUM7WUFFSCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUUzRSxJQUFJLGlDQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBeUIsRUFBRTtnQkFDNUUsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFHTCxDQUFDOztBQXhDSCxrRUF5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3Nfcm91dGU1M3Jlc29sdmVyIGFzIHI1M3IsXG4gIGF3c19lYzIgYXMgZWMyLFxuICBjdXN0b21fcmVzb3VyY2VzIGFzIGNyLFxufVxuICBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8vaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkaW5nUnVsZXNQcm9wcyB7XG4gIHJlYWRvbmx5IHJlc29sdmVySVA6IHN0cmluZ1tdO1xuICByZWFkb25seSBkb21haW5zOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgdnBjOiBlYzIuVnBjO1xuICByZWFkb25seSByZXNvbHZlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogY3JlYXRlIGZvcndhcmRpbmcgcnVsZXMgYW5kIGFzc29jaWF0ZSB0aGVtIHdpdGggYSB2cGMuXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3J3YXJkaW5nUnVsZXMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRm9yd2FyZGluZ1J1bGVzUHJvcHMpIHtcblx0ICBzdXBlcihzY29wZSwgaWQpO1xuXG5cdCAgbGV0IHRhcmdldElwczoge2lwOiBzdHJpbmd9W10gPSBbXTtcbiAgICBwcm9wcy5yZXNvbHZlcklQLmZvckVhY2goKHRhcmdldGlwKSA9PiB7XG4gICAgICB0YXJnZXRJcHMucHVzaCh7IGlwOiB0YXJnZXRpcCB9KTtcbiAgICB9KTtcblxuICAgIHByb3BzLmRvbWFpbnMuZm9yRWFjaCgoZG9tYWluKSA9PiB7XG5cbiAgICAgIC8vIGNyZWF0ZSB0aGUgcmVzb2x2ZXIgcnVsZVxuICAgICAgbGV0IHJlc29sdmVyUnVsZSA9IG5ldyByNTNyLkNmblJlc29sdmVyUnVsZSh0aGlzLCBgcjUzciR7ZG9tYWlufWAsIHtcbiAgICAgICAgcmVzb2x2ZXJFbmRwb2ludElkOiBwcm9wcy5yZXNvbHZlcklkLFxuICAgICAgICBkb21haW5OYW1lOiBkb21haW4sXG4gICAgICAgIHJ1bGVUeXBlOiAnRk9SV0FSRCcsXG4gICAgICAgIHRhcmdldElwczogdGFyZ2V0SXBzLFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyByNTNyLkNmblJlc29sdmVyUnVsZUFzc29jaWF0aW9uKHRoaXMsIGByNTNyYXNzbiR7ZG9tYWlufWAsIHtcbiAgICAgICAgcmVzb2x2ZXJSdWxlSWQ6IHJlc29sdmVyUnVsZS5hdHRyUmVzb2x2ZXJSdWxlSWQsXG4gICAgICAgIHZwY0lkOiBwcm9wcy52cGMudnBjSWQsXG4gICAgICB9KTtcblxuICAgIH0pO1xuXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NvY2lhdGVTaGFyZWRSZXNvbHZlclJ1bGVQcm9wcyB7XG5cbiAgLyoqXG4gICAqIGRvbWFpbk5hbWVzIHdoaWNoIGFyZSB0byBiZSBhc3NvY2lhdGVkXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgVlBDIHdoaWNoIHdpbGwgYmUgYXNzb2NhaXRlZCB3aXRoIHRoZSBSZXNvbHZlclJ1bGVzXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5WcGMgfCBlYzIuSVZwYztcblxufVxuXG4vKipcbiAqIEFzc29jaWF0ZSBhIHJlc29sdmVyIHJ1bGUgdGhhdCBoYXMgYmVlbiBzaGFyZWQgdG8gdGhpcyBhY2NvdW50XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NvY2lhdGVTaGFyZWRSZXNvbHZlclJ1bGUgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXNzb2NpYXRlU2hhcmVkUmVzb2x2ZXJSdWxlUHJvcHMpIHtcblx0ICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgcHJvcHMuZG9tYWluTmFtZXMuZm9yRWFjaCgoZG9tYWluKSA9PiB7XG5cbiAgICAgIHZhciB6b25lTmFtZSA9IGRvbWFpbi5yZXBsYWNlKC9cXC4vZ2ksICdkb3QnKTtcbiAgICAgIHpvbmVOYW1lID0gem9uZU5hbWUucmVwbGFjZSgvLS9naSwgJ2Rhc2gnKTtcbiAgICAgIC8vY29uc3QgcmVnaW9uID0gY2RrLkF3cy5SRUdJT04ucmVwbGFjZSgvLS9naSwgJycpO1xuXG4gICAgICBjb25zdCByZXNvbHZlclJ1bGUgPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYGxvb2t1cFJlc29sdmVySWQnJHtkb21haW59YCwge1xuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6ICdSb3V0ZTUzUmVzb2x2ZXInLFxuICAgICAgICAgIGFjdGlvbjogJ2xpc3RSZXNvbHZlclJ1bGVzJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBGaWx0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBOYW1lOiAnRG9tYWluTmFtZScsXG4gICAgICAgICAgICAgICAgVmFsdWVzOiBbYCR7ZG9tYWlufS5gXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZigncmVzb2x2ZXJJZCcpLFxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc29sdmVyUnVsZUlkID0gcmVzb2x2ZXJSdWxlLmdldFJlc3BvbnNlRmllbGQoJ1Jlc29sdmVyUnVsZXMuMC5JZCcpO1xuXG4gICAgICBuZXcgcjUzci5DZm5SZXNvbHZlclJ1bGVBc3NvY2lhdGlvbih0aGlzLCBgJHtkb21haW59UmVzb2x2ZXJSdWxlQXNzb2NpYXRpb25gLCB7XG4gICAgICAgIHJlc29sdmVyUnVsZUlkOiByZXNvbHZlclJ1bGVJZCxcbiAgICAgICAgdnBjSWQ6IHByb3BzLnZwYy52cGNJZCxcbiAgICAgIH0pO1xuXG4gICAgfSk7XG5cblxuICB9XG59XG4iXX0=