UNPKG

@csermet/multiprovider

Version:

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

59 lines (58 loc) 2.04 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"); /** * GuardDutyDetector */ exports.default = ({ account, service: rawData, region, }) => { const { id, CreatedAt: createdAt, FindingPublishingFrequency: findingPublishingFrequency, ServiceRole: serviceRole, Status: status, UpdatedAt: updatedAt, DataSources: dataSources, members = [], Tags, } = rawData; const arn = generateArns_1.guardDutyArn({ region, account, detectorId: id }); const formattedDataSources = { cloudTrail: { status: dataSources?.CloudTrail?.Status, }, dnsLogs: { status: dataSources?.DNSLogs?.Status, }, flowLogs: { status: dataSources?.FlowLogs?.Status, }, s3Logs: { status: dataSources?.S3Logs?.Status, }, // kubernetes: { TODO: k8s logs support, maybe need to update aws sdk? // auditLogs: { // status: dataSources?. // } // } }; const mappedMembers = members?.map(member => ({ id: sdk_1.generateUniqueId({ arn, ...member, }), accountId: member?.AccountId, detectorId: member?.DetectorId, masterId: member?.MasterId, email: member?.Email, relationshipStatus: member?.RelationshipStatus, invitedAt: new Date(member?.InvitedAt)?.toISOString(), updatedAt: new Date(member?.UpdatedAt)?.toISOString(), })); return { id, arn, region, accountId: account, createdAt: new Date(createdAt)?.toISOString(), updatedAt: new Date(updatedAt)?.toISOString(), findingPublishingFrequency, serviceRole, status, members: mappedMembers, dataSources: formattedDataSources, tags: format_1.formatTagsFromMap(Tags ?? {}), }; };