UNPKG

@csermet/multiprovider

Version:

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

46 lines (45 loc) 1.71 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const services_1 = __importDefault(require("../../enums/services")); exports.default = ({ service: replication, data, region, }) => { const { ReplicationInstanceArn, KmsKeyId, VpcSecurityGroups = [] } = replication; const connections = []; const sgIds = VpcSecurityGroups.map(({ VpcSecurityGroupId }) => VpcSecurityGroupId); /** * Find any kms related data */ const keys = data.find(({ name }) => name === services_1.default.kms); if (keys?.data?.[region]) { const dataAtRegion = keys.data[region].filter(({ Arn }) => Arn === KmsKeyId); for (const key of dataAtRegion) { connections.push({ id: key.KeyId, resourceType: services_1.default.kms, relation: 'child', field: 'kms', }); } } /** * Find any securityGroups related data */ const securityGroups = data.find(({ name }) => name === services_1.default.sg); if (securityGroups?.data?.[region]) { const dataAtRegion = securityGroups.data[region].filter(({ GroupId }) => sgIds.includes(GroupId)); for (const sg of dataAtRegion) { connections.push({ id: sg.GroupId, resourceType: services_1.default.sg, relation: 'child', field: 'securityGroups', }); } } const natResult = { [ReplicationInstanceArn]: connections, }; return natResult; };