UNPKG

@csermet/multiprovider

Version:

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

82 lines (81 loc) 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // import { formatTagsFromMap } from '../../utils/format' // TODO: Build this const sdk_1 = require("@cloudgraph/sdk"); const generateArns_1 = require("../../utils/generateArns"); /** * SystemsManagerInstance */ exports.default = ({ account, service: rawData, region, }) => { const { InstanceId: instanceId, PingStatus: pingStatus, LastPingDateTime: lastPingDateTime, AgentVersion: agentVersion, IsLatestVersion: isLatestVersion, PlatformType: platformType, PlatformName: platformName, PlatformVersion: platformVersion, ActivationId: activationId, RegistrationDate: registrationDate, ResourceType: resourceType, Name: name, IPAddress: ipAddress, ComputerName: computerName, AssociationStatus: associationStatus, LastAssociationExecutionDate: lastAssociationExecutionDate, LastSuccessfulAssociationExecutionDate: lastSuccessfulAssociationExecutionDate, AssociationOverview: { DetailedStatus: detailedStatus, InstanceAssociationStatusAggregatedCount: instanceAssociationStatusAggregatedCount, } = {}, complianceItems = [], SourceId: sourceId, SourceType: sourceType, } = rawData; const arn = generateArns_1.ssmManagedInstanceArn({ region, account, name: instanceId }); const mappedComplianceItems = complianceItems.map(complianceItem => { const { ComplianceType: complianceType, ResourceType: complianceResourceType, ResourceId: resourceId, Id: complianceItemId, Title: title, Status: status, Severity: severity, ExecutionSummary: executionSummary, Details: details, } = complianceItem; return { id: sdk_1.generateUniqueId({ arn, ...complianceItem, }), complianceItemId, complianceType, resourceType: complianceResourceType, resourceId, title, status, severity, executionSummary: { executionTime: executionSummary?.ExecutionTime?.toISOString(), executionId: executionSummary?.ExecutionId, executionType: executionSummary?.ExecutionType, }, details: Object.keys(details ?? {}).map(key => ({ id: sdk_1.generateUniqueId({ arn, key, value: details[key], }), key, value: details[key], })), }; }); const mappedInstanceAssociationStatusAggregatedCount = Object.keys(instanceAssociationStatusAggregatedCount ?? {}).map(key => ({ id: sdk_1.generateUniqueId({ arn, key, value: instanceAssociationStatusAggregatedCount[key], }), key, value: instanceAssociationStatusAggregatedCount[key], })); return { id: arn, arn, instanceId, region, accountId: account, pingStatus, lastPingDateTime: lastPingDateTime?.toISOString(), agentVersion, isLatestVersion, platformType, platformName, platformVersion, activationId, registrationDate: registrationDate?.toISOString(), resourceType, name, associationStatus, lastAssociationExecutionDate: lastAssociationExecutionDate?.toISOString(), lastSuccessfulAssociationExecutionDate: lastSuccessfulAssociationExecutionDate?.toISOString(), ipAddress, computerName, associationOverview: { detailedStatus, instanceAssociationStatusAggregatedCount: mappedInstanceAssociationStatusAggregatedCount, }, complianceItems: mappedComplianceItems, sourceId, sourceType, }; };