UNPKG

@csermet/multiprovider

Version:

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

51 lines (50 loc) 2.04 kB
"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"); 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; };