@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
36 lines (35 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const format_1 = require("../../utils/format");
/**
* IAM Role
*/
exports.default = ({ service: rawData, account, }) => {
const { RoleName: name = '', Arn: arn = '', Path: path = '', CreateDate: createdAt, Description: description = '', RoleLastUsed, AssumeRolePolicyDocument: assumeRolePolicy = '', MaxSessionDuration: maxSessionDuration = 0, InlinePolicies: inlinePolicies = [], Tags: tags = {}, } = rawData;
// Format Role Tags
const roleTags = format_1.formatTagsFromMap(tags);
const role = {
id: arn,
arn,
accountId: account,
name,
path,
createdAt: createdAt?.toISOString() || '',
description,
lastUsedDate: RoleLastUsed?.LastUsedDate?.toISOString() || null,
rawPolicy: assumeRolePolicy,
assumeRolePolicy: format_1.formatIamJsonPolicy(assumeRolePolicy),
maxSessionDuration,
inlinePolicies: inlinePolicies.map(({ name: inlinePolicyName, document: inlinePolicyDocument }) => ({
id: sdk_1.generateUniqueId({
name: inlinePolicyName,
document: format_1.formatIamJsonPolicy(inlinePolicyDocument),
}),
name: inlinePolicyName,
document: format_1.formatIamJsonPolicy(inlinePolicyDocument),
})) ?? [],
tags: roleTags,
};
return role;
};