@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
125 lines (124 loc) • 6.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
const format_1 = require("../../utils/format");
/**
* ElastiCache cluster
*/
exports.default = ({ service, account, region, }) => {
const { ARN: arn, CacheClusterId: cacheClusterId, ConfigurationEndpoint: configurationEndpoint, ClientDownloadLandingPage: clientDownloadLandingPage, CacheNodeType: cacheNodeType, Engine: engine, EngineVersion: engineVersion, CacheClusterStatus: cacheClusterStatus, NumCacheNodes: numCacheNodes, PreferredAvailabilityZone: preferredAvailabilityZone, PreferredOutpostArn: preferredOutpostArn, CacheClusterCreateTime: cacheClusterCreateTime, PreferredMaintenanceWindow: preferredMaintenanceWindow, PendingModifiedValues: pendingModifiedValues, NotificationConfiguration: notificationConfiguration, CacheSecurityGroups: cacheSecurityGroups, CacheParameterGroup: cacheParameterGroup, CacheSubnetGroupName: cacheSubnetGroupName, CacheNodes: cacheNodes, AutoMinorVersionUpgrade: autoMinorVersionUpgrade, ReplicationGroupId: replicationGroupId, SnapshotRetentionLimit: snapshotRetentionLimit, SnapshotWindow: snapshotWindow, AuthTokenEnabled: authTokenEnabled, AuthTokenLastModifiedDate: authTokenLastModifiedDate, TransitEncryptionEnabled: transitEncryptionEnabled, AtRestEncryptionEnabled: atRestEncryptionEnabled, ReplicationGroupLogDeliveryEnabled: replicationGroupLogDeliveryEnabled, LogDeliveryConfigurations: logDeliveryConfigurations, Tags = {}, CacheSubnetGroup: cacheSubnetGroup, } = service;
return {
id: arn,
arn,
accountId: account,
region,
cacheClusterId,
configurationEndpoint: {
address: configurationEndpoint?.Address,
port: configurationEndpoint?.Port,
},
clientDownloadLandingPage,
cacheNodeType,
engine,
engineVersion,
cacheClusterStatus,
numCacheNodes,
preferredAvailabilityZone,
preferredOutpostArn,
cacheClusterCreateTime: cacheClusterCreateTime?.toISOString(),
preferredMaintenanceWindow,
pendingModifiedValues: {
numCacheNodes: pendingModifiedValues?.NumCacheNodes,
cacheNodeIdsToRemove: pendingModifiedValues?.CacheNodeIdsToRemove,
engineVersion: pendingModifiedValues?.EngineVersion,
cacheNodeType: pendingModifiedValues?.CacheNodeType,
authTokenStatus: pendingModifiedValues?.AuthTokenStatus,
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,
})),
},
notificationConfiguration: {
topicArn: notificationConfiguration?.TopicArn,
topicStatus: notificationConfiguration?.TopicStatus,
},
cacheSecurityGroups: cacheSecurityGroups?.map(sg => ({
id: sdk_1.generateUniqueId({
arn,
...sg,
}),
cacheSecurityGroupName: sg.CacheSecurityGroupName,
status: sg.Status,
})),
cacheParameterGroup: {
cacheParameterGroupName: cacheParameterGroup?.CacheParameterGroupName,
parameterApplyStatus: cacheParameterGroup?.ParameterApplyStatus,
cacheNodeIdsToReboot: cacheParameterGroup?.CacheNodeIdsToReboot,
},
cacheNodes: cacheNodes?.map(node => ({
id: sdk_1.generateUniqueId({
arn,
...node,
}),
cacheNodeId: node.CacheNodeId,
cacheNodeStatus: node.CacheNodeStatus,
cacheNodeCreateTime: node.CacheNodeCreateTime?.toISOString(),
endpoint: {
address: node.Endpoint?.Address,
port: node.Endpoint?.Port,
},
parameterGroupStatus: node.ParameterGroupStatus,
sourceCacheNodeId: node.SourceCacheNodeId,
customerAvailabilityZone: node.CustomerAvailabilityZone,
customerOutpostArn: node.CustomerOutpostArn,
})),
autoMinorVersionUpgrade,
replicationGroupId,
snapshotRetentionLimit,
snapshotWindow,
authTokenEnabled,
authTokenLastModifiedDate: authTokenLastModifiedDate?.toISOString(),
transitEncryptionEnabled,
atRestEncryptionEnabled,
replicationGroupLogDeliveryEnabled,
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,
})),
tags: format_1.formatTagsFromMap(Tags),
cacheSubnetGroup: {
cacheSubnetGroupName: cacheSubnetGroup?.CacheSubnetGroupName,
cacheSubnetGroupDescription: cacheSubnetGroup?.CacheSubnetGroupDescription,
vpcId: cacheSubnetGroup?.VpcId,
},
};
};