UNPKG

@csermet/multiprovider

Version:

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

57 lines (56 loc) 2.19 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 */ exports.default = ({ service: rawData, account, region, }) => { const { Attachments: attachments = [], AvailabilityZone: availabilityZone, CreateTime: createTime, Encrypted: encrypted, MultiAttachEnabled: multiAttachEnabled, State: state, Size: size, SnapshotId: snapshot, Iops: iops, VolumeType: volumeType, Permissions: permissions = [], VolumeId: id, Tags: tags, } = rawData; const arn = generateArns_1.ebsVolumeArn({ 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 attachments const volumeAttachments = attachments.map(attachment => { const attachmentId = `${attachment.InstanceId}:${attachment.Device} (${attachment.State})`; return { id: attachmentId, attachmentInformation: attachmentId, attachedTime: attachment.AttachTime.toISOString(), deleteOnTermination: attachment.DeleteOnTermination, }; }); // Format volume tags const volumeTags = format_1.formatTagsFromMap(tags); const ebs = { id, accountId: account, arn, region, attachments: volumeAttachments, iops, size: `${size} ${translations_1.default.gib}`, state, created: createTime.toISOString(), snapshot, encrypted, isBootDisk: false, volumeType, availabilityZone, multiAttachEnabled, permissions: volumePermissions, tags: volumeTags, }; return ebs; };