@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
51 lines (50 loc) • 2.61 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const upperFirst_1 = __importDefault(require("lodash/upperFirst"));
const format_1 = require("../../utils/format");
exports.default = ({ service, account, region }) => {
const { DBInstanceArn: arn, DBInstanceIdentifier: dBInstanceIdentifier, DBInstanceClass: instanceClass, DBInstanceStatus: status, Engine: engine, EngineVersion: engineVersion, MasterUsername: username, AllocatedStorage: allocatedStorage, InstanceCreateTime: createdTime, AvailabilityZone: availabilityZone, MultiAZ: multiAZ, AutoMinorVersionUpgrade: autoMinorVersionUpgrade, PubliclyAccessible: publiclyAccessible, StorageType: storageType, StorageEncrypted: encrypted, KmsKeyId: kmsKey, PromotionTier: failoverPriority, CACertificateIdentifier: certificateAuthority, CopyTagsToSnapshot: copyTagsToSnapshot, DeletionProtection: deletionProtection, PerformanceInsightsEnabled: performanceInsightsEnabled, IAMDatabaseAuthenticationEnabled: iamDbAuthenticationEnabled, DbiResourceId: resourceId, Endpoint: endpoint, LicenseModel: licenseModel, Tags = {}, } = service;
const subnetGroup = service.DBSubnetGroup?.DBSubnetGroupName || '';
const parameterGroup = service.DBParameterGroups.map(({ DBParameterGroupName, ParameterApplyStatus }) => `${DBParameterGroupName} (${ParameterApplyStatus})`).join(' | ');
const optionsGroups = service.OptionGroupMemberships.map(({ OptionGroupName, Status }) => `${OptionGroupName} (${upperFirst_1.default(Status)})`).join(' | ');
return {
id: arn,
accountId: account,
arn,
region,
name: dBInstanceIdentifier,
port: endpoint?.Port,
address: endpoint?.Address,
hostedZoneId: endpoint?.HostedZoneId,
username,
resourceId,
engine,
engineVersion,
createdTime: createdTime?.toISOString(),
copyTagsToSnapshot,
deletionProtection,
dBInstanceIdentifier,
performanceInsightsEnabled,
autoMinorVersionUpgrade,
iamDbAuthenticationEnabled,
optionsGroups,
parameterGroup,
storageType,
instanceClass,
allocatedStorage,
multiAZ,
subnetGroup,
availabilityZone,
publiclyAccessible,
certificateAuthority,
status,
failoverPriority,
kmsKey,
encrypted,
licenseModel,
tags: format_1.formatTagsFromMap(Tags),
};
};