UNPKG

@csermet/multiprovider

Version:

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

59 lines (58 loc) 2.83 kB
"use strict"; 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; };