UNPKG

@csermet/multiprovider

Version:

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

86 lines (85 loc) 3.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isEmpty_1 = __importDefault(require("lodash/isEmpty")); const sdk_1 = require("@cloudgraph/sdk"); const utils_1 = require("./utils"); /** * WafV2WebAcl */ exports.default = ({ account, service: rawData, region, }) => { const { Id: id, ARN: arn, Name: name, Description: description, scope, Rules, DefaultAction, Capacity: capacity, VisibilityConfig, PreProcessFirewallManagerRuleGroups, PostProcessFirewallManagerRuleGroups, ManagedByFirewallManager, LabelNamespace: labelNamespace, CustomResponseBodies, loggingConfiguration, } = rawData; const mappedRules = Rules?.map(rule => ({ id: sdk_1.generateUniqueId({ ...rule, }), name: rule.Name, priority: rule.Priority, statement: utils_1.formatRuleStatement(rule.Statement), action: utils_1.formatRuleAction(rule.Action), overrideAction: utils_1.formatRuleOverrideAction(rule.OverrideAction), ruleLabels: utils_1.formatRuleLabels(rule.RuleLabels), visibilityConfig: utils_1.formatVisibilityConfig(rule.VisibilityConfig), })); const mappedCustomResponseBodies = Object.keys(CustomResponseBodies ?? {}).map(key => ({ id: sdk_1.generateUniqueId({ key, contentType: CustomResponseBodies[key]?.ContentType, content: CustomResponseBodies[key]?.Content, }), key, contentType: CustomResponseBodies[key]?.ContentType, content: CustomResponseBodies[key]?.Content, })); const formattedLoggingConfig = isEmpty_1.default(loggingConfiguration ?? {}) ? { resourceArn: loggingConfiguration?.ResourceArn, logDestinationConfigs: loggingConfiguration?.LogDestinationConfigs, redactedFields: loggingConfiguration?.RedactedFields?.map(utils_1.formatFieldToMatch), managedByFirewallManager: loggingConfiguration?.ManagedByFirewallManager, loggingFilter: { filters: loggingConfiguration?.LoggingFilter?.Filters?.map(filter => ({ id: sdk_1.generateUniqueId({ ...loggingConfiguration, }), behavior: filter.Behavior, requirement: filter.Requirement, conditions: filter.Conditions?.map(condition => ({ id: sdk_1.generateUniqueId({ action: condition?.ActionCondition?.Action, labelName: condition?.LabelNameCondition?.LabelName, }), actionCondtion: { action: condition?.ActionCondition?.Action, }, labelNameCondition: { labelName: condition?.LabelNameCondition?.LabelName, }, })), })), defaultBehavior: loggingConfiguration?.LoggingFilter?.DefaultBehavior, }, } : null; return { id, region, accountId: account, arn, name, scope, description, ManagedByFirewallManager, capacity, labelNamespace, rules: mappedRules, defaultAction: utils_1.formatDefaultAction(DefaultAction), visibilityConfig: utils_1.formatVisibilityConfig(VisibilityConfig), preProcessFirewallManagerRuleGroups: utils_1.formatFirewallManagerRuleGroups(PreProcessFirewallManagerRuleGroups), postProcessFirewallManagerRuleGroups: utils_1.formatFirewallManagerRuleGroups(PostProcessFirewallManagerRuleGroups), customResponseBodies: mappedCustomResponseBodies, loggingConfiguration: formattedLoggingConfig, }; };