@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
56 lines (55 loc) • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const lodash_1 = require("lodash");
const format_1 = require("../../utils/format");
const generateArns_1 = require("../../utils/generateArns");
const formatVpcInfo = (vpcInfo) => {
if (lodash_1.isEmpty(vpcInfo)) {
return {};
}
return {
cidrBlock: vpcInfo.CidrBlock,
ipv6CidrBlockSet: vpcInfo.Ipv6CidrBlockSet?.map(c => ({
id: sdk_1.generateUniqueId({
cidrBlock: vpcInfo.CidrBlock,
...vpcInfo.Ipv6CidrBlockSet,
}),
ipv6CidrBlock: c.Ipv6CidrBlock,
})) || [],
cidrBlockSet: vpcInfo.CidrBlockSet?.map(c => ({
id: sdk_1.generateUniqueId({
cidrBlock: vpcInfo.CidrBlock,
...vpcInfo.CidrBlockSet,
}),
cidrBlock: c.CidrBlock,
})) || [],
peeringOptions: vpcInfo.PeeringOptions
? {
allowDnsResolutionFromRemoteVpc: vpcInfo.PeeringOptions.AllowDnsResolutionFromRemoteVpc,
allowEgressFromLocalClassicLinkToRemoteVpc: vpcInfo.PeeringOptions.AllowEgressFromLocalClassicLinkToRemoteVpc,
allowEgressFromLocalVpcToRemoteClassicLink: vpcInfo.PeeringOptions.AllowEgressFromLocalVpcToRemoteClassicLink,
}
: {},
vpcId: vpcInfo.VpcId,
};
};
/**
* Vpc Peering Connection
*/
exports.default = ({ service: rawData, account, region, }) => {
const { VpcPeeringConnectionId: id, AccepterVpcInfo: accepterVpcInfo = {}, ExpirationTime: expirationTime, RequesterVpcInfo: requesterVpcInfo = {}, Status: status = {}, Tags: tags = {}, } = rawData;
const vpcPeeringConnection = {
id,
accountId: account,
arn: generateArns_1.vpcPeeringConnectionArn({ region, account, id }),
region,
accepterVpcInfo: formatVpcInfo(accepterVpcInfo),
expirationTime: expirationTime?.toISOString(),
requesterVpcInfo: formatVpcInfo(requesterVpcInfo),
statusCode: status?.Code,
statusMessage: status?.Message,
tags: format_1.formatTagsFromMap(tags),
};
return vpcPeeringConnection;
};