async listRuleGroupsForPolicy()

in source/networkFirewallAutomation/lib/service/network-firewall-service.ts [275:298]


  async listRuleGroupsForPolicy(firewallPolicyName: string): Promise<string[]> {
    let ruleGroupArns: string[] = [];
    let response;

    try {
      response = await this.NetworkFirewallInstance.describeFirewallPolicy({ FirewallPolicyName: firewallPolicyName }).promise();
      if (response && response.FirewallPolicy) {
        response.FirewallPolicy?.StatefulRuleGroupReferences?.forEach((ruleGroup) => {
          ruleGroupArns.push(ruleGroup.ResourceArn)
        })
        response.FirewallPolicy?.StatelessRuleGroupReferences?.forEach((ruleGroup) => {
          ruleGroupArns.push(ruleGroup.ResourceArn)
        })
      } else {
        Logger.log(LOG_LEVEL.INFO, `No firewall policy of the name: ${firewallPolicyName}`)
        return Promise.resolve([])
      }
      return Promise.resolve(ruleGroupArns)
    } catch (error) {
      Logger.log(LOG_LEVEL.INFO, `Error trying to retrieve current rule groups configured ${JSON.stringify(error)}`)
      return Promise.resolve([])
    }

  }