UNPKG

@csermet/multiprovider

Version:

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

128 lines (127 loc) 5.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const format_1 = require("../../utils/format"); const sdk_1 = require("@cloudgraph/sdk"); /** * ElastiCache replication group */ exports.default = ({ service, account, region, }) => { const { ARN: arn, ReplicationGroupId: replicationGroupId, Description: description, GlobalReplicationGroupInfo: globalReplicationGroupInfo, Status: status, PendingModifiedValues: pendingModifiedValues, MemberClusters: memberClusters, NodeGroups: nodeGroups, SnapshottingClusterId: snapshottingClusterId, AutomaticFailover: automaticFailover, MultiAZ: multiAZ, ConfigurationEndpoint: configurationEndpoint, SnapshotRetentionLimit: snapshotRetentionLimit, SnapshotWindow: snapshotWindow, ClusterEnabled: clusterEnabled, CacheNodeType: cacheNodeType, AuthTokenEnabled: authTokenEnabled, AuthTokenLastModifiedDate: authTokenLastModifiedDate, TransitEncryptionEnabled: transitEncryptionEnabled, AtRestEncryptionEnabled: atRestEncryptionEnabled, MemberClustersOutpostArns: memberClustersOutpostArns, UserGroupIds: userGroupIds, LogDeliveryConfigurations: logDeliveryConfigurations, ReplicationGroupCreateTime: replicationGroupCreateTime, Tags = {}, } = service; return { id: arn, arn, accountId: account, region, replicationGroupId, description, globalReplicationGroupInfo: { globalReplicationGroupId: globalReplicationGroupInfo?.GlobalReplicationGroupId, globalReplicationGroupMemberRole: globalReplicationGroupInfo?.GlobalReplicationGroupMemberRole, }, status, pendingModifiedValues: { primaryClusterId: pendingModifiedValues?.PrimaryClusterId, automaticFailoverStatus: pendingModifiedValues?.AutomaticFailoverStatus, resharding: { slotMigration: { progressPercentage: pendingModifiedValues?.Resharding?.SlotMigration ?.ProgressPercentage, }, }, authTokenStatus: pendingModifiedValues?.AuthTokenStatus, userGroups: { userGroupIdsToAdd: pendingModifiedValues?.UserGroups?.UserGroupIdsToAdd, userGroupIdsToRemove: pendingModifiedValues?.UserGroups?.UserGroupIdsToRemove, }, logDeliveryConfigurations: pendingModifiedValues?.LogDeliveryConfigurations?.map(config => ({ id: sdk_1.generateUniqueId({ arn, ...config, }), logType: config.LogType, destinationType: config.DestinationType, destinationDetails: { cloudWatchLogsDetails: { logGroup: config.DestinationDetails?.CloudWatchLogsDetails?.LogGroup, }, kinesisFirehoseDetails: { deliveryStream: config.DestinationDetails?.KinesisFirehoseDetails ?.DeliveryStream, }, }, logFormat: config.LogFormat, })), }, memberClusters, nodeGroups: nodeGroups?.map(ng => ({ id: sdk_1.generateUniqueId({ arn, ...ng, }), nodeGroupId: ng.NodeGroupId, status: ng.Status, primaryEndpoint: { address: ng.PrimaryEndpoint?.Address, port: ng.PrimaryEndpoint?.Port, }, readerEndpoint: { address: ng.ReaderEndpoint?.Address, port: ng.ReaderEndpoint?.Port, }, slots: ng.Slots, nodeGroupMembers: ng.NodeGroupMembers?.map(member => ({ id: sdk_1.generateUniqueId({ arn, ...member, }), cacheClusterId: member.CacheClusterId, cacheNodeId: member.CacheNodeId, readEndpoint: { address: member.ReadEndpoint?.Address, port: member.ReadEndpoint?.Port, }, preferredAvailabilityZone: member.PreferredAvailabilityZone, preferredOutpostArn: member.PreferredOutpostArn, currentRole: member.CurrentRole, })), })), snapshottingClusterId, automaticFailover, multiAZ, configurationEndpoint: { address: configurationEndpoint?.Address, port: configurationEndpoint?.Port, }, snapshotRetentionLimit, snapshotWindow, clusterEnabled, cacheNodeType, authTokenEnabled, authTokenLastModifiedDate: authTokenLastModifiedDate?.toISOString(), transitEncryptionEnabled, atRestEncryptionEnabled, memberClustersOutpostArns, userGroupIds, logDeliveryConfigurations: logDeliveryConfigurations?.map(config => ({ id: sdk_1.generateUniqueId({ arn, ...config, }), logType: config.LogType, destinationType: config.DestinationType, destinationDetails: { cloudWatchLogsDetails: { logGroup: config.DestinationDetails?.CloudWatchLogsDetails?.LogGroup, }, kinesisFirehoseDetails: { deliveryStream: config.DestinationDetails?.KinesisFirehoseDetails?.DeliveryStream, }, }, logFormat: config.LogFormat, status: config.Status, message: config.Message, })), replicationGroupCreateTime: replicationGroupCreateTime?.toISOString(), tags: format_1.formatTagsFromMap(Tags), }; };