UNPKG

@aws-amplify/graphql-schema-generator

Version:
51 lines 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSubnetAvailabilityZones = exports.checkHostInDBProxies = void 0; const client_rds_1 = require("@aws-sdk/client-rds"); const client_ec2_1 = require("@aws-sdk/client-ec2"); const supported_db_engines_1 = require("./supported-db-engines"); const filter_subnet_availability_zones_1 = require("./filter-subnet-availability-zones"); const checkHostInDBProxies = async (hostname, region) => { const client = new client_rds_1.RDSClient({ region }); const params = { Filters: [ { Name: 'engine', Values: supported_db_engines_1.DB_ENGINES, }, ], }; const command = new client_rds_1.DescribeDBProxiesCommand(params); const response = await client.send(command); if (!response.DBProxies) { throw new Error('Error in fetching DB Proxies'); } const proxy = response.DBProxies.find((p) => (p === null || p === void 0 ? void 0 : p.Endpoint) === hostname); if (!proxy) { return undefined; } const subnetAvailabilityZones = await (0, exports.getSubnetAvailabilityZones)(proxy.VpcSubnetIds, region); return { vpcId: proxy.VpcId, subnetAvailabilityZoneConfig: subnetAvailabilityZones, securityGroupIds: proxy.VpcSecurityGroupIds, }; }; exports.checkHostInDBProxies = checkHostInDBProxies; const getSubnetAvailabilityZones = async (subnetIds, region) => { var _a; const client = new client_ec2_1.EC2Client({ region }); const params = { SubnetIds: subnetIds, }; const response = await client.send(new client_ec2_1.DescribeSubnetsCommand(params)); const subnetAvailabilityZones = ((_a = response.Subnets) !== null && _a !== void 0 ? _a : []).map((subnet) => { return { subnetId: subnet.SubnetId, availabilityZone: subnet.AvailabilityZone, }; }); return (0, filter_subnet_availability_zones_1.filterSubnetAvailabilityZones)(subnetAvailabilityZones); }; exports.getSubnetAvailabilityZones = getSubnetAvailabilityZones; //# sourceMappingURL=vpc-helper-proxy.js.map