UNPKG

@csermet/multiprovider

Version:

cloud-graph provider plugin for AWS used to fetch AWS cloud data.

56 lines (55 loc) 2.24 kB
"use strict"; 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; };