Puppet Function: aws_firewall::service::prefixes

Defined in:
functions/service/prefixes.pp
Function type:
Puppet Language

Overview

aws_firewall::service::prefixes(AWS_Firewall::Regions $regions, AWS_Firewall::Services $services, AWS_Firewall::IP_Version $ip_version = 4)Variant[Array[IP::Address::V4::CIDR], Array[IP::Address::V6]]

Get AWS IP prefixes for requested regions and services.

Parameters:

  • regions (AWS_Firewall::Regions)

    AWS regions matched by the ipset

  • services (AWS_Firewall::Services)

    AWS services matched by the ipset

  • ip_version (AWS_Firewall::IP_Version) (defaults to: 4)

    AWS prefixes matched by the ipset (IPv4 or IPv6)

Returns:

  • (Variant[Array[IP::Address::V4::CIDR], Array[IP::Address::V6]])

    Array of IP prefixes



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'functions/service/prefixes.pp', line 9

function aws_firewall::service::prefixes(
  AWS_Firewall::Regions $regions,
  AWS_Firewall::Services $services,
  AWS_Firewall::IP_Version $ip_version = 4,
) >> Variant[Array[IP::Address::V4::CIDR], Array[IP::Address::V6]] {
  delete_undef_values(
    unique(
      flatten(
        aws_firewall::prefixes().map |$region, $services_data| {
          if $region in $regions {
            $services_data.map |$service, $ip_data| {
              if $service in $services {
                $ip_data[$ip_version]
              }
            }
          }
        }
      )
    )
  )
}