@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
74 lines (73 loc) • 3.87 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const format_1 = require("../../utils/format"); // TODO: Build this
/**
* DmsReplicationInstance
*/
exports.default = ({ account, service: rawData, region, }) => {
const { ReplicationInstanceIdentifier: replicationInstanceIdentifier, ReplicationInstanceArn: arn, ReplicationInstanceClass: replicationInstanceClass, ReplicationInstanceStatus: replicationInstanceStatus, AllocatedStorage: allocatedStorage, InstanceCreateTime: instanceCreateTime, VpcSecurityGroups: vpcSecurityGroups, AvailabilityZone: availabilityZone, ReplicationSubnetGroup: replicationSubnetGroup, PreferredMaintenanceWindow: preferredMaintenanceWindow, PendingModifiedValues: pendingModifiedValues, MultiAZ: multiAz, EngineVersion: engineVersion, AutoMinorVersionUpgrade: autoMinorVersionUpgrade, KmsKeyId: kmsKeyId, ReplicationInstancePrivateIpAddress: replicationInstancePrivateIpAddress, ReplicationInstancePublicIpAddress: replicationInstancePublicIpAddress, ReplicationInstancePrivateIpAddresses: replicationInstancePrivateIpAddresses, ReplicationInstancePublicIpAddresses: replicationInstancePublicIpAddresses, PubliclyAccessible: publiclyAccessible, SecondaryAvailabilityZone: secondaryAvailabilityZone, FreeUntil: freeUntil, DnsNameServers: dnsNameServers, Tags: tags, } = rawData;
const mappedVpcSecurityGroups = vpcSecurityGroups?.map(({ VpcSecurityGroupId, Status }) => ({
id: sdk_1.generateUniqueId({
arn,
Status,
VpcSecurityGroupId,
}),
status: Status,
vpcSecurityGroupId: VpcSecurityGroupId,
}));
const formattedReplicationSubnetGroup = {
replicationSubnetGroupIdentifier: replicationSubnetGroup?.ReplicationSubnetGroupIdentifier,
replicationSubnetGroupDescription: replicationSubnetGroup?.ReplicationSubnetGroupDescription,
vpcId: replicationSubnetGroup?.VpcId,
subnetGroupStatus: replicationSubnetGroup?.SubnetGroupStatus,
subnets: replicationSubnetGroup?.Subnets?.map(({ SubnetAvailabilityZone, SubnetIdentifier, SubnetStatus }) => ({
id: sdk_1.generateUniqueId({
arn,
SubnetAvailabilityZone,
SubnetIdentifier,
SubnetStatus,
}),
subnetAvailabilityZone: {
name: SubnetAvailabilityZone?.Name,
},
subnetIdentifier: SubnetIdentifier,
subnetStatus: SubnetStatus,
})),
};
const formattedPendingModifiedValues = {
replicationInstanceClass: pendingModifiedValues?.ReplicationInstanceClass,
allocatedStorage: pendingModifiedValues?.AllocatedStorage,
multiAZ: pendingModifiedValues?.MultiAZ,
engineVersion: pendingModifiedValues?.EngineVersion,
};
return {
id: arn,
arn,
region,
accountId: account,
replicationInstanceIdentifier,
replicationInstanceClass,
replicationInstanceStatus,
allocatedStorage,
instanceCreateTime: instanceCreateTime?.toISOString(),
vpcSecurityGroups: mappedVpcSecurityGroups,
availabilityZone,
replicationSubnetGroup: formattedReplicationSubnetGroup,
preferredMaintenanceWindow,
pendingModifiedValues: formattedPendingModifiedValues,
replicationInstancePrivateIpAddress,
replicationInstancePublicIpAddress,
replicationInstancePrivateIpAddresses,
replicationInstancePublicIpAddresses,
multiAz,
engineVersion,
autoMinorVersionUpgrade,
kmsKeyId,
publiclyAccessible,
freeUntil: freeUntil?.toISOString(),
secondaryAvailabilityZone,
dnsNameServers,
tags: format_1.formatTagsFromMap(tags ?? {}),
};
};