@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
51 lines (50 loc) • 2.04 kB
JavaScript
;
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");
const generateArns_1 = require("../../utils/generateArns");
/**
* EBS Snapshot
*/
exports.default = ({ service: rawData, account, region, }) => {
const { DataEncryptionKeyId: dataEncryptionKeyId, Description: description, Encrypted: encrypted, KmsKeyId: kmsKeyId, OwnerId: ownerId, Progress: progress, SnapshotId: id, StartTime: startTime, State: state, StateMessage: stateMessage, VolumeId: volumeId, VolumeSize: volumeSize, OwnerAlias: ownerAlias, OutpostArn: outpostArn, Tags: tags, StorageTier: storageTier, Permissions: permissions = [], RestoreExpiryTime: restoreExpiryTime, } = rawData;
const arn = generateArns_1.ebsSnapshotArn({ region, account, id });
// Format volume permissions
const volumePermissions = permissions.map(permission => {
return {
id: sdk_1.generateUniqueId({ arn, ...permission }),
group: permission.Group,
userId: permission.UserId,
};
});
// Format volume tags
const snapshotTags = format_1.formatTagsFromMap(tags);
const ebsSnapshot = {
id,
accountId: account,
arn,
region,
dataEncryptionKeyId,
description,
encrypted,
kmsKeyId,
ownerId,
progress,
startTime: startTime?.toISOString() || '',
state,
stateMessage,
volumeId,
volumeSize: `${volumeSize} ${translations_1.default.gib}`,
ownerAlias,
outpostArn,
storageTier,
restoreExpiryTime: restoreExpiryTime?.toISOString() || '',
permissions: volumePermissions,
tags: snapshotTags,
};
return ebsSnapshot;
};