@aws-amplify/graphql-schema-generator
Version:
Amplify GraphQL schema generator
51 lines • 2.17 kB
JavaScript
;
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