@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
59 lines (58 loc) • 2.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const startCase_1 = __importDefault(require("lodash/startCase"));
const translations_1 = __importDefault(require("../../properties/translations"));
const format_1 = require("../../utils/format");
/**
* ALBs
*/
const awsAlbListernerGraphFormat = (listener) => {
const { ListenerArn: id, DefaultActions: rules = [], SslPolicy: sslPolicy, Protocol: protocol, Port: port, } = listener;
return {
arn: id,
settings: {
sslPolicy,
protocol: `${protocol}:${port} ${id}`,
rules: rules.map(({ Order: order, Type: type, TargetGroupArn: targetGroupArn, RedirectConfig, }) => ({
type,
order: order?.toString(),
targetGroupArn,
redirectProtocol: RedirectConfig?.Protocol,
})),
},
};
};
exports.default = ({ service: alb, account, region, }) => {
// TODO: type this from aws
const { LoadBalancerName: name, LoadBalancerArn: arn, DNSName: dnsName, Scheme: scheme, Type: type, Tags = {}, State: { Code: status = '' } = {}, CanonicalHostedZoneId: hostedZone, IpAddressType: ipAddressType, attributes: { 'access_logs.s3.enabled': accessLogsEnabled, 'routing.http.drop_invalid_header_fields.enabled': dropInvalidHeaderFields, 'routing.http2.enabled': http2, 'idle_timeout.timeout_seconds': timeoutSeconds, 'deletion_protection.enabled': deletionProtection, }, CreatedTime: createdAt, listeners = [], } = // attributes = {},
alb;
// let metaData: any = {}
// if (!isEmpty(connections)) {
// metaData = { connections }
// }
const albResult = {
id: arn,
name,
accountId: account,
arn,
dnsName,
scheme,
type: startCase_1.default(type),
hostedZone,
region,
ipAddressType,
idleTimeout: `${timeoutSeconds} ${translations_1.default.seconds}`,
deletionProtection: deletionProtection === translations_1.default.true ? translations_1.default.yes : translations_1.default.no,
http2: http2 === translations_1.default.true ? translations_1.default.yes : translations_1.default.no,
accessLogsEnabled: accessLogsEnabled === translations_1.default.true ? translations_1.default.yes : translations_1.default.no,
dropInvalidHeaderFields: dropInvalidHeaderFields === translations_1.default.true ? translations_1.default.yes : translations_1.default.no,
tags: format_1.formatTagsFromMap(Tags),
createdAt: createdAt.toISOString(),
status,
listeners: listeners.map(awsAlbListernerGraphFormat),
};
return albResult;
};