UNPKG

@csermet/multiprovider

Version:

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

86 lines (85 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const sdk_1 = require("@cloudgraph/sdk"); const format_1 = require("../../utils/format"); const generateArns_1 = require("../../utils/generateArns"); /** * Vpn Connections */ exports.default = ({ service: rawData, account, region, }) => { const { Tags: tags, VpnConnectionId: id, CustomerGatewayId: cgwId, Category: category, State: state, Type: type, VpnGatewayId: vpnGatewayId, TransitGatewayId: tgwId, Options: options, Routes: routes, VgwTelemetry: vgwTelemetry, } = rawData; const vpnConnectionTags = format_1.formatTagsFromMap(tags); const arn = generateArns_1.vpnConnectionArn({ region, account, id }); const vpnOptions = { id: sdk_1.generateUniqueId({ arn, ...options, }), enableAcceleration: options?.EnableAcceleration, staticRoutesOnly: options?.StaticRoutesOnly, localIpv4NetworkCidr: options?.LocalIpv4NetworkCidr, remoteIpv4NetworkCidr: options?.RemoteIpv4NetworkCidr, tunnelInsideIpVersion: options?.TunnelInsideIpVersion, tunnelOptions: options?.TunnelOptions?.map(({ OutsideIpAddress: outsideIpAddress, TunnelInsideCidr: tunnelInsideCidr, PreSharedKey: preSharedKey, }) => { return { id: sdk_1.generateUniqueId({ arn, outsideIpAddress, tunnelInsideCidr, preSharedKey, }), outsideIpAddress, tunnelInsideCidr, preSharedKey, }; }), }; const vpnVgwTelemetry = vgwTelemetry.map(({ AcceptedRouteCount: acceptedRouteCount, LastStatusChange: lastStatusChange, CertificateArn: certificateArn, OutsideIpAddress: outsideIpAddress, Status: status, StatusMessage: statusMessage, }) => { return { id: sdk_1.generateUniqueId({ arn, acceptedRouteCount, lastStatusChange, certificateArn, outsideIpAddress, status, statusMessage, }), acceptedRouteCount, lastStatusChange: lastStatusChange?.toISOString(), certificateArn, outsideIpAddress, status: status?.toString(), statusMessage, }; }); const vpnRoutes = routes.map(({ DestinationCidrBlock: destinationCidrBlock, Source: source, State: routeState, }) => { return { id: sdk_1.generateUniqueId({ arn, destinationCidrBlock, source, routeState, }), destinationCidrBlock, source, state: routeState, }; }); const vpnConnection = { id, accountId: account, arn, tags: vpnConnectionTags, category, customerGatewayId: cgwId, state, type, vpnGatewayId, transitGatewayId: tgwId, options: vpnOptions, routes: vpnRoutes, vgwTelemetry: vpnVgwTelemetry, }; return vpnConnection; };