UNPKG

@csermet/multiprovider

Version:

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

74 lines (73 loc) 3.87 kB
"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 ?? {}), }; };