@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
109 lines (108 loc) • 4.63 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const translations_1 = __importDefault(require("../../properties/translations"));
const format_1 = require("../../utils/format");
exports.default = ({ service: rawData, account: accountId, region, }) => {
const { StackId: stackId, StackName: stackName, ChangeSetId: changeSetId, Description: description, Parameters: parameters, CreationTime: creationTime, DeletionTime: deletionTime, LastUpdatedTime: lastUpdatedTime, RollbackConfiguration: rollbackConfiguration, StackStatus: stackStatus, StackStatusReason: stackStatusReason, DisableRollback: disableRollback, NotificationARNs: notificationARNs, TimeoutInMinutes: timeoutInMinutes, Capabilities: capabilities, Outputs: outputs, RoleARN: roleArn, Tags: tags, EnableTerminationProtection: enableTerminationProtection, ParentId: parentId, RootId: rootId, DriftInformation: driftInformation, stackDrifts, } = rawData;
const parameterList = parameters.map(({ ParameterKey: parameterKey, ParameterValue: parameterValue, UsePreviousValue: usePreviousValue, ResolvedValue: resolvedValue, }) => {
return {
id: sdk_1.generateUniqueId({
stackId,
parameterKey,
parameterValue,
usePreviousValue,
resolvedValue,
}),
parameterKey,
parameterValue,
usePreviousValue: usePreviousValue ? translations_1.default.yes : translations_1.default.no,
resolvedValue,
};
});
const rollbackConfigurationRollbackTriggerList = rollbackConfiguration?.RollbackTriggers?.map(({ Arn: arn, Type: type }) => {
return {
id: sdk_1.generateUniqueId({
stackId,
arn,
type,
}),
arn,
type,
};
}) || [];
const outputsList = outputs?.map(({ OutputKey: outputKey, OutputValue: outputValue, Description: outputDescription, ExportName: exportName, }) => {
return {
id: sdk_1.generateUniqueId({
stackId,
outputKey,
outputValue,
outputDescription,
exportName,
}),
outputKey,
outputValue,
description: outputDescription,
exportName,
};
}) || [];
const stackDriftList = stackDrifts?.map(({ ResourceType: resourceType, StackResourceDriftStatus: status, Timestamp, }) => {
return {
id: sdk_1.generateUniqueId({
stackId,
resourceType,
status,
Timestamp,
}),
resourceType,
status,
timestamp: Timestamp.toISOString(),
};
}) || [];
return {
id: stackId,
arn: stackId,
name: stackName,
accountId,
changeSetId: changeSetId || '',
description,
parameters: parameterList,
creationTime: creationTime.toISOString(),
deletionTime: deletionTime?.toISOString() || '',
lastUpdatedTime: lastUpdatedTime?.toISOString() || '',
rollbackConfiguration: {
id: sdk_1.generateUniqueId({
stackId,
rollbackConfigurationRollbackTriggerList,
rollbackConfiguration,
}),
rollbackTriggers: rollbackConfigurationRollbackTriggerList,
monitoringTimeInMinutes: rollbackConfiguration?.MonitoringTimeInMinutes || 0,
},
stackStatus,
stackStatusReason,
disableRollback: disableRollback ? translations_1.default.yes : translations_1.default.no,
notificationARNs,
timeoutInMinutes,
capabilities,
outputs: outputsList,
roleArn: roleArn || '',
tags: format_1.formatTagsFromMap(tags),
enableTerminationProtection: enableTerminationProtection ? translations_1.default.yes : translations_1.default.no,
parentId: parentId || '',
rootId: rootId || '',
stackDriftInfo: {
id: sdk_1.generateUniqueId({
stackId,
driftInformation,
}),
status: driftInformation?.StackDriftStatus || '',
lastCheckTimestamp: driftInformation?.LastCheckTimestamp?.toISOString() || '',
},
stackDriftList,
region,
};
};