1. Packages
  2. AWS
  3. API Docs
  4. networkfirewall
  5. RuleGroup
AWS v6.78.0 published on Thursday, Apr 24, 2025 by Pulumi

aws.networkfirewall.RuleGroup

Explore with Pulumi AI

Provides an AWS Network Firewall Rule Group Resource

Example Usage

Stateful Inspection for denying access to a domain

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.networkfirewall.RuleGroup("example", {
    capacity: 100,
    name: "example",
    type: "STATEFUL",
    ruleGroup: {
        rulesSource: {
            rulesSourceList: {
                generatedRulesType: "DENYLIST",
                targetTypes: ["HTTP_HOST"],
                targets: ["test.example.com"],
            },
        },
    },
    tags: {
        Tag1: "Value1",
        Tag2: "Value2",
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.networkfirewall.RuleGroup("example",
    capacity=100,
    name="example",
    type="STATEFUL",
    rule_group={
        "rules_source": {
            "rules_source_list": {
                "generated_rules_type": "DENYLIST",
                "target_types": ["HTTP_HOST"],
                "targets": ["test.example.com"],
            },
        },
    },
    tags={
        "Tag1": "Value1",
        "Tag2": "Value2",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{
			Capacity: pulumi.Int(100),
			Name:     pulumi.String("example"),
			Type:     pulumi.String("STATEFUL"),
			RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{
				RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{
					RulesSourceList: &networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs{
						GeneratedRulesType: pulumi.String("DENYLIST"),
						TargetTypes: pulumi.StringArray{
							pulumi.String("HTTP_HOST"),
						},
						Targets: pulumi.StringArray{
							pulumi.String("test.example.com"),
						},
					},
				},
			},
			Tags: pulumi.StringMap{
				"Tag1": pulumi.String("Value1"),
				"Tag2": pulumi.String("Value2"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Capacity = 100,
        Name = "example",
        Type = "STATEFUL",
        RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
        {
            RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
            {
                RulesSourceList = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs
                {
                    GeneratedRulesType = "DENYLIST",
                    TargetTypes = new[]
                    {
                        "HTTP_HOST",
                    },
                    Targets = new[]
                    {
                        "test.example.com",
                    },
                },
            },
        },
        Tags = 
        {
            { "Tag1", "Value1" },
            { "Tag2", "Value2" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkfirewall.RuleGroup;
import com.pulumi.aws.networkfirewall.RuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RuleGroup("example", RuleGroupArgs.builder()
            .capacity(100)
            .name("example")
            .type("STATEFUL")
            .ruleGroup(RuleGroupRuleGroupArgs.builder()
                .rulesSource(RuleGroupRuleGroupRulesSourceArgs.builder()
                    .rulesSourceList(RuleGroupRuleGroupRulesSourceRulesSourceListArgs.builder()
                        .generatedRulesType("DENYLIST")
                        .targetTypes("HTTP_HOST")
                        .targets("test.example.com")
                        .build())
                    .build())
                .build())
            .tags(Map.ofEntries(
                Map.entry("Tag1", "Value1"),
                Map.entry("Tag2", "Value2")
            ))
            .build());

    }
}
Copy
resources:
  example:
    type: aws:networkfirewall:RuleGroup
    properties:
      capacity: 100
      name: example
      type: STATEFUL
      ruleGroup:
        rulesSource:
          rulesSourceList:
            generatedRulesType: DENYLIST
            targetTypes:
              - HTTP_HOST
            targets:
              - test.example.com
      tags:
        Tag1: Value1
        Tag2: Value2
Copy

Stateful Inspection for permitting packets from a source IP address

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const ips = [
    "1.1.1.1/32",
    "1.0.0.1/32",
];
const example = new aws.networkfirewall.RuleGroup("example", {
    capacity: 50,
    description: "Permits http traffic from source",
    name: "example",
    type: "STATEFUL",
    ruleGroup: {
        rulesSource: {
            statefulRules: ips.map((v, k) => ({key: k, value: v})).map(entry => ({
                action: "PASS",
                header: {
                    destination: "ANY",
                    destinationPort: "ANY",
                    protocol: "HTTP",
                    direction: "ANY",
                    sourcePort: "ANY",
                    source: entry.value,
                },
                ruleOptions: [{
                    keyword: "sid",
                    settings: ["1"],
                }],
            })),
        },
    },
    tags: {
        Name: "permit HTTP from source",
    },
});
Copy
import pulumi
import pulumi_aws as aws

ips = [
    "1.1.1.1/32",
    "1.0.0.1/32",
]
example = aws.networkfirewall.RuleGroup("example",
    capacity=50,
    description="Permits http traffic from source",
    name="example",
    type="STATEFUL",
    rule_group={
        "rules_source": {
            "stateful_rules": [{
                "action": "PASS",
                "header": {
                    "destination": "ANY",
                    "destination_port": "ANY",
                    "protocol": "HTTP",
                    "direction": "ANY",
                    "source_port": "ANY",
                    "source": entry["value"],
                },
                "rule_options": [{
                    "keyword": "sid",
                    "settings": ["1"],
                }],
            } for entry in [{"key": k, "value": v} for k, v in ips]],
        },
    },
    tags={
        "Name": "permit HTTP from source",
    })
Copy
Coming soon!
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var ips = new[]
    {
        "1.1.1.1/32",
        "1.0.0.1/32",
    };

    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Capacity = 50,
        Description = "Permits http traffic from source",
        Name = "example",
        Type = "STATEFUL",
        RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
        {
            RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
            {
                StatefulRules = ips.Select((v, k) => new { Key = k, Value = v }).Select(entry => 
                {
                    return new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleArgs
                    {
                        Action = "PASS",
                        Header = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs
                        {
                            Destination = "ANY",
                            DestinationPort = "ANY",
                            Protocol = "HTTP",
                            Direction = "ANY",
                            SourcePort = "ANY",
                            Source = entry.Value,
                        },
                        RuleOptions = new[]
                        {
                            new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs
                            {
                                Keyword = "sid",
                                Settings = new[]
                                {
                                    "1",
                                },
                            },
                        },
                    };
                }).ToList(),
            },
        },
        Tags = 
        {
            { "Name", "permit HTTP from source" },
        },
    });

});
Copy
Coming soon!
Coming soon!

Stateful Inspection for blocking packets from going to an intended destination

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.networkfirewall.RuleGroup("example", {
    capacity: 100,
    name: "example",
    type: "STATEFUL",
    ruleGroup: {
        rulesSource: {
            statefulRules: [{
                action: "DROP",
                header: {
                    destination: "124.1.1.24/32",
                    destinationPort: "53",
                    direction: "ANY",
                    protocol: "TCP",
                    source: "1.2.3.4/32",
                    sourcePort: "53",
                },
                ruleOptions: [{
                    keyword: "sid",
                    settings: ["1"],
                }],
            }],
        },
    },
    tags: {
        Tag1: "Value1",
        Tag2: "Value2",
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.networkfirewall.RuleGroup("example",
    capacity=100,
    name="example",
    type="STATEFUL",
    rule_group={
        "rules_source": {
            "stateful_rules": [{
                "action": "DROP",
                "header": {
                    "destination": "124.1.1.24/32",
                    "destination_port": "53",
                    "direction": "ANY",
                    "protocol": "TCP",
                    "source": "1.2.3.4/32",
                    "source_port": "53",
                },
                "rule_options": [{
                    "keyword": "sid",
                    "settings": ["1"],
                }],
            }],
        },
    },
    tags={
        "Tag1": "Value1",
        "Tag2": "Value2",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{
			Capacity: pulumi.Int(100),
			Name:     pulumi.String("example"),
			Type:     pulumi.String("STATEFUL"),
			RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{
				RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{
					StatefulRules: networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleArray{
						&networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleArgs{
							Action: pulumi.String("DROP"),
							Header: &networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs{
								Destination:     pulumi.String("124.1.1.24/32"),
								DestinationPort: pulumi.String("53"),
								Direction:       pulumi.String("ANY"),
								Protocol:        pulumi.String("TCP"),
								Source:          pulumi.String("1.2.3.4/32"),
								SourcePort:      pulumi.String("53"),
							},
							RuleOptions: networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArray{
								&networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs{
									Keyword: pulumi.String("sid"),
									Settings: pulumi.StringArray{
										pulumi.String("1"),
									},
								},
							},
						},
					},
				},
			},
			Tags: pulumi.StringMap{
				"Tag1": pulumi.String("Value1"),
				"Tag2": pulumi.String("Value2"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Capacity = 100,
        Name = "example",
        Type = "STATEFUL",
        RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
        {
            RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
            {
                StatefulRules = new[]
                {
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleArgs
                    {
                        Action = "DROP",
                        Header = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs
                        {
                            Destination = "124.1.1.24/32",
                            DestinationPort = "53",
                            Direction = "ANY",
                            Protocol = "TCP",
                            Source = "1.2.3.4/32",
                            SourcePort = "53",
                        },
                        RuleOptions = new[]
                        {
                            new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs
                            {
                                Keyword = "sid",
                                Settings = new[]
                                {
                                    "1",
                                },
                            },
                        },
                    },
                },
            },
        },
        Tags = 
        {
            { "Tag1", "Value1" },
            { "Tag2", "Value2" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkfirewall.RuleGroup;
import com.pulumi.aws.networkfirewall.RuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RuleGroup("example", RuleGroupArgs.builder()
            .capacity(100)
            .name("example")
            .type("STATEFUL")
            .ruleGroup(RuleGroupRuleGroupArgs.builder()
                .rulesSource(RuleGroupRuleGroupRulesSourceArgs.builder()
                    .statefulRules(RuleGroupRuleGroupRulesSourceStatefulRuleArgs.builder()
                        .action("DROP")
                        .header(RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs.builder()
                            .destination("124.1.1.24/32")
                            .destinationPort("53")
                            .direction("ANY")
                            .protocol("TCP")
                            .source("1.2.3.4/32")
                            .sourcePort("53")
                            .build())
                        .ruleOptions(RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs.builder()
                            .keyword("sid")
                            .settings("1")
                            .build())
                        .build())
                    .build())
                .build())
            .tags(Map.ofEntries(
                Map.entry("Tag1", "Value1"),
                Map.entry("Tag2", "Value2")
            ))
            .build());

    }
}
Copy
resources:
  example:
    type: aws:networkfirewall:RuleGroup
    properties:
      capacity: 100
      name: example
      type: STATEFUL
      ruleGroup:
        rulesSource:
          statefulRules:
            - action: DROP
              header:
                destination: 124.1.1.24/32
                destinationPort: 53
                direction: ANY
                protocol: TCP
                source: 1.2.3.4/32
                sourcePort: 53
              ruleOptions:
                - keyword: sid
                  settings:
                    - '1'
      tags:
        Tag1: Value1
        Tag2: Value2
Copy

Stateful Inspection from rules specifications defined in Suricata flat format

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";

const example = new aws.networkfirewall.RuleGroup("example", {
    capacity: 100,
    name: "example",
    type: "STATEFUL",
    rules: std.file({
        input: "example.rules",
    }).then(invoke => invoke.result),
    tags: {
        Tag1: "Value1",
        Tag2: "Value2",
    },
});
Copy
import pulumi
import pulumi_aws as aws
import pulumi_std as std

example = aws.networkfirewall.RuleGroup("example",
    capacity=100,
    name="example",
    type="STATEFUL",
    rules=std.file(input="example.rules").result,
    tags={
        "Tag1": "Value1",
        "Tag2": "Value2",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "example.rules",
		}, nil)
		if err != nil {
			return err
		}
		_, err = networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{
			Capacity: pulumi.Int(100),
			Name:     pulumi.String("example"),
			Type:     pulumi.String("STATEFUL"),
			Rules:    pulumi.String(invokeFile.Result),
			Tags: pulumi.StringMap{
				"Tag1": pulumi.String("Value1"),
				"Tag2": pulumi.String("Value2"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Capacity = 100,
        Name = "example",
        Type = "STATEFUL",
        Rules = Std.File.Invoke(new()
        {
            Input = "example.rules",
        }).Apply(invoke => invoke.Result),
        Tags = 
        {
            { "Tag1", "Value1" },
            { "Tag2", "Value2" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkfirewall.RuleGroup;
import com.pulumi.aws.networkfirewall.RuleGroupArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RuleGroup("example", RuleGroupArgs.builder()
            .capacity(100)
            .name("example")
            .type("STATEFUL")
            .rules(StdFunctions.file(FileArgs.builder()
                .input("example.rules")
                .build()).result())
            .tags(Map.ofEntries(
                Map.entry("Tag1", "Value1"),
                Map.entry("Tag2", "Value2")
            ))
            .build());

    }
}
Copy
resources:
  example:
    type: aws:networkfirewall:RuleGroup
    properties:
      capacity: 100
      name: example
      type: STATEFUL
      rules:
        fn::invoke:
          function: std:file
          arguments:
            input: example.rules
          return: result
      tags:
        Tag1: Value1
        Tag2: Value2
Copy

Stateful Inspection from rule group specifications using rule variables and Suricata format rules

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";

const example = new aws.networkfirewall.RuleGroup("example", {
    capacity: 100,
    name: "example",
    type: "STATEFUL",
    ruleGroup: {
        ruleVariables: {
            ipSets: [
                {
                    key: "WEBSERVERS_HOSTS",
                    ipSet: {
                        definitions: [
                            "10.0.0.0/16",
                            "10.0.1.0/24",
                            "192.168.0.0/16",
                        ],
                    },
                },
                {
                    key: "EXTERNAL_HOST",
                    ipSet: {
                        definitions: ["1.2.3.4/32"],
                    },
                },
            ],
            portSets: [{
                key: "HTTP_PORTS",
                portSet: {
                    definitions: [
                        "443",
                        "80",
                    ],
                },
            }],
        },
        rulesSource: {
            rulesString: std.file({
                input: "suricata_rules_file",
            }).then(invoke => invoke.result),
        },
    },
    tags: {
        Tag1: "Value1",
        Tag2: "Value2",
    },
});
Copy
import pulumi
import pulumi_aws as aws
import pulumi_std as std

example = aws.networkfirewall.RuleGroup("example",
    capacity=100,
    name="example",
    type="STATEFUL",
    rule_group={
        "rule_variables": {
            "ip_sets": [
                {
                    "key": "WEBSERVERS_HOSTS",
                    "ip_set": {
                        "definitions": [
                            "10.0.0.0/16",
                            "10.0.1.0/24",
                            "192.168.0.0/16",
                        ],
                    },
                },
                {
                    "key": "EXTERNAL_HOST",
                    "ip_set": {
                        "definitions": ["1.2.3.4/32"],
                    },
                },
            ],
            "port_sets": [{
                "key": "HTTP_PORTS",
                "port_set": {
                    "definitions": [
                        "443",
                        "80",
                    ],
                },
            }],
        },
        "rules_source": {
            "rules_string": std.file(input="suricata_rules_file").result,
        },
    },
    tags={
        "Tag1": "Value1",
        "Tag2": "Value2",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "suricata_rules_file",
		}, nil)
		if err != nil {
			return err
		}
		_, err = networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{
			Capacity: pulumi.Int(100),
			Name:     pulumi.String("example"),
			Type:     pulumi.String("STATEFUL"),
			RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{
				RuleVariables: &networkfirewall.RuleGroupRuleGroupRuleVariablesArgs{
					IpSets: networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetArray{
						&networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetArgs{
							Key: pulumi.String("WEBSERVERS_HOSTS"),
							IpSet: &networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs{
								Definitions: pulumi.StringArray{
									pulumi.String("10.0.0.0/16"),
									pulumi.String("10.0.1.0/24"),
									pulumi.String("192.168.0.0/16"),
								},
							},
						},
						&networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetArgs{
							Key: pulumi.String("EXTERNAL_HOST"),
							IpSet: &networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs{
								Definitions: pulumi.StringArray{
									pulumi.String("1.2.3.4/32"),
								},
							},
						},
					},
					PortSets: networkfirewall.RuleGroupRuleGroupRuleVariablesPortSetArray{
						&networkfirewall.RuleGroupRuleGroupRuleVariablesPortSetArgs{
							Key: pulumi.String("HTTP_PORTS"),
							PortSet: &networkfirewall.RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs{
								Definitions: pulumi.StringArray{
									pulumi.String("443"),
									pulumi.String("80"),
								},
							},
						},
					},
				},
				RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{
					RulesString: pulumi.String(invokeFile.Result),
				},
			},
			Tags: pulumi.StringMap{
				"Tag1": pulumi.String("Value1"),
				"Tag2": pulumi.String("Value2"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Capacity = 100,
        Name = "example",
        Type = "STATEFUL",
        RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
        {
            RuleVariables = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesArgs
            {
                IpSets = new[]
                {
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesIpSetArgs
                    {
                        Key = "WEBSERVERS_HOSTS",
                        IpSet = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs
                        {
                            Definitions = new[]
                            {
                                "10.0.0.0/16",
                                "10.0.1.0/24",
                                "192.168.0.0/16",
                            },
                        },
                    },
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesIpSetArgs
                    {
                        Key = "EXTERNAL_HOST",
                        IpSet = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs
                        {
                            Definitions = new[]
                            {
                                "1.2.3.4/32",
                            },
                        },
                    },
                },
                PortSets = new[]
                {
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesPortSetArgs
                    {
                        Key = "HTTP_PORTS",
                        PortSet = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs
                        {
                            Definitions = new[]
                            {
                                "443",
                                "80",
                            },
                        },
                    },
                },
            },
            RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
            {
                RulesString = Std.File.Invoke(new()
                {
                    Input = "suricata_rules_file",
                }).Apply(invoke => invoke.Result),
            },
        },
        Tags = 
        {
            { "Tag1", "Value1" },
            { "Tag2", "Value2" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkfirewall.RuleGroup;
import com.pulumi.aws.networkfirewall.RuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRuleVariablesArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.FileArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RuleGroup("example", RuleGroupArgs.builder()
            .capacity(100)
            .name("example")
            .type("STATEFUL")
            .ruleGroup(RuleGroupRuleGroupArgs.builder()
                .ruleVariables(RuleGroupRuleGroupRuleVariablesArgs.builder()
                    .ipSets(                    
                        RuleGroupRuleGroupRuleVariablesIpSetArgs.builder()
                            .key("WEBSERVERS_HOSTS")
                            .ipSet(RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs.builder()
                                .definitions(                                
                                    "10.0.0.0/16",
                                    "10.0.1.0/24",
                                    "192.168.0.0/16")
                                .build())
                            .build(),
                        RuleGroupRuleGroupRuleVariablesIpSetArgs.builder()
                            .key("EXTERNAL_HOST")
                            .ipSet(RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs.builder()
                                .definitions("1.2.3.4/32")
                                .build())
                            .build())
                    .portSets(RuleGroupRuleGroupRuleVariablesPortSetArgs.builder()
                        .key("HTTP_PORTS")
                        .portSet(RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs.builder()
                            .definitions(                            
                                "443",
                                "80")
                            .build())
                        .build())
                    .build())
                .rulesSource(RuleGroupRuleGroupRulesSourceArgs.builder()
                    .rulesString(StdFunctions.file(FileArgs.builder()
                        .input("suricata_rules_file")
                        .build()).result())
                    .build())
                .build())
            .tags(Map.ofEntries(
                Map.entry("Tag1", "Value1"),
                Map.entry("Tag2", "Value2")
            ))
            .build());

    }
}
Copy
resources:
  example:
    type: aws:networkfirewall:RuleGroup
    properties:
      capacity: 100
      name: example
      type: STATEFUL
      ruleGroup:
        ruleVariables:
          ipSets:
            - key: WEBSERVERS_HOSTS
              ipSet:
                definitions:
                  - 10.0.0.0/16
                  - 10.0.1.0/24
                  - 192.168.0.0/16
            - key: EXTERNAL_HOST
              ipSet:
                definitions:
                  - 1.2.3.4/32
          portSets:
            - key: HTTP_PORTS
              portSet:
                definitions:
                  - '443'
                  - '80'
        rulesSource:
          rulesString:
            fn::invoke:
              function: std:file
              arguments:
                input: suricata_rules_file
              return: result
      tags:
        Tag1: Value1
        Tag2: Value2
Copy

Stateless Inspection with a Custom Action

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.networkfirewall.RuleGroup("example", {
    description: "Stateless Rate Limiting Rule",
    capacity: 100,
    name: "example",
    type: "STATELESS",
    ruleGroup: {
        rulesSource: {
            statelessRulesAndCustomActions: {
                customActions: [{
                    actionDefinition: {
                        publishMetricAction: {
                            dimensions: [{
                                value: "2",
                            }],
                        },
                    },
                    actionName: "ExampleMetricsAction",
                }],
                statelessRules: [{
                    priority: 1,
                    ruleDefinition: {
                        actions: [
                            "aws:pass",
                            "ExampleMetricsAction",
                        ],
                        matchAttributes: {
                            sources: [{
                                addressDefinition: "1.2.3.4/32",
                            }],
                            sourcePorts: [{
                                fromPort: 443,
                                toPort: 443,
                            }],
                            destinations: [{
                                addressDefinition: "124.1.1.5/32",
                            }],
                            destinationPorts: [{
                                fromPort: 443,
                                toPort: 443,
                            }],
                            protocols: [6],
                            tcpFlags: [{
                                flags: ["SYN"],
                                masks: [
                                    "SYN",
                                    "ACK",
                                ],
                            }],
                        },
                    },
                }],
            },
        },
    },
    tags: {
        Tag1: "Value1",
        Tag2: "Value2",
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.networkfirewall.RuleGroup("example",
    description="Stateless Rate Limiting Rule",
    capacity=100,
    name="example",
    type="STATELESS",
    rule_group={
        "rules_source": {
            "stateless_rules_and_custom_actions": {
                "custom_actions": [{
                    "action_definition": {
                        "publish_metric_action": {
                            "dimensions": [{
                                "value": "2",
                            }],
                        },
                    },
                    "action_name": "ExampleMetricsAction",
                }],
                "stateless_rules": [{
                    "priority": 1,
                    "rule_definition": {
                        "actions": [
                            "aws:pass",
                            "ExampleMetricsAction",
                        ],
                        "match_attributes": {
                            "sources": [{
                                "address_definition": "1.2.3.4/32",
                            }],
                            "source_ports": [{
                                "from_port": 443,
                                "to_port": 443,
                            }],
                            "destinations": [{
                                "address_definition": "124.1.1.5/32",
                            }],
                            "destination_ports": [{
                                "from_port": 443,
                                "to_port": 443,
                            }],
                            "protocols": [6],
                            "tcp_flags": [{
                                "flags": ["SYN"],
                                "masks": [
                                    "SYN",
                                    "ACK",
                                ],
                            }],
                        },
                    },
                }],
            },
        },
    },
    tags={
        "Tag1": "Value1",
        "Tag2": "Value2",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{
			Description: pulumi.String("Stateless Rate Limiting Rule"),
			Capacity:    pulumi.Int(100),
			Name:        pulumi.String("example"),
			Type:        pulumi.String("STATELESS"),
			RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{
				RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{
					StatelessRulesAndCustomActions: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs{
						CustomActions: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArray{
							&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs{
								ActionDefinition: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs{
									PublishMetricAction: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs{
										Dimensions: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArray{
											&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs{
												Value: pulumi.String("2"),
											},
										},
									},
								},
								ActionName: pulumi.String("ExampleMetricsAction"),
							},
						},
						StatelessRules: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArray{
							&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs{
								Priority: pulumi.Int(1),
								RuleDefinition: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs{
									Actions: pulumi.StringArray{
										pulumi.String("aws:pass"),
										pulumi.String("ExampleMetricsAction"),
									},
									MatchAttributes: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs{
										Sources: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArray{
											&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs{
												AddressDefinition: pulumi.String("1.2.3.4/32"),
											},
										},
										SourcePorts: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArray{
											&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs{
												FromPort: pulumi.Int(443),
												ToPort:   pulumi.Int(443),
											},
										},
										Destinations: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArray{
											&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs{
												AddressDefinition: pulumi.String("124.1.1.5/32"),
											},
										},
										DestinationPorts: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArray{
											&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs{
												FromPort: pulumi.Int(443),
												ToPort:   pulumi.Int(443),
											},
										},
										Protocols: pulumi.IntArray{
											pulumi.Int(6),
										},
										TcpFlags: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArray{
											&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs{
												Flags: pulumi.StringArray{
													pulumi.String("SYN"),
												},
												Masks: pulumi.StringArray{
													pulumi.String("SYN"),
													pulumi.String("ACK"),
												},
											},
										},
									},
								},
							},
						},
					},
				},
			},
			Tags: pulumi.StringMap{
				"Tag1": pulumi.String("Value1"),
				"Tag2": pulumi.String("Value2"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Description = "Stateless Rate Limiting Rule",
        Capacity = 100,
        Name = "example",
        Type = "STATELESS",
        RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
        {
            RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
            {
                StatelessRulesAndCustomActions = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs
                {
                    CustomActions = new[]
                    {
                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs
                        {
                            ActionDefinition = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs
                            {
                                PublishMetricAction = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs
                                {
                                    Dimensions = new[]
                                    {
                                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs
                                        {
                                            Value = "2",
                                        },
                                    },
                                },
                            },
                            ActionName = "ExampleMetricsAction",
                        },
                    },
                    StatelessRules = new[]
                    {
                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs
                        {
                            Priority = 1,
                            RuleDefinition = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs
                            {
                                Actions = new[]
                                {
                                    "aws:pass",
                                    "ExampleMetricsAction",
                                },
                                MatchAttributes = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs
                                {
                                    Sources = new[]
                                    {
                                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs
                                        {
                                            AddressDefinition = "1.2.3.4/32",
                                        },
                                    },
                                    SourcePorts = new[]
                                    {
                                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs
                                        {
                                            FromPort = 443,
                                            ToPort = 443,
                                        },
                                    },
                                    Destinations = new[]
                                    {
                                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs
                                        {
                                            AddressDefinition = "124.1.1.5/32",
                                        },
                                    },
                                    DestinationPorts = new[]
                                    {
                                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs
                                        {
                                            FromPort = 443,
                                            ToPort = 443,
                                        },
                                    },
                                    Protocols = new[]
                                    {
                                        6,
                                    },
                                    TcpFlags = new[]
                                    {
                                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs
                                        {
                                            Flags = new[]
                                            {
                                                "SYN",
                                            },
                                            Masks = new[]
                                            {
                                                "SYN",
                                                "ACK",
                                            },
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
            },
        },
        Tags = 
        {
            { "Tag1", "Value1" },
            { "Tag2", "Value2" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkfirewall.RuleGroup;
import com.pulumi.aws.networkfirewall.RuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RuleGroup("example", RuleGroupArgs.builder()
            .description("Stateless Rate Limiting Rule")
            .capacity(100)
            .name("example")
            .type("STATELESS")
            .ruleGroup(RuleGroupRuleGroupArgs.builder()
                .rulesSource(RuleGroupRuleGroupRulesSourceArgs.builder()
                    .statelessRulesAndCustomActions(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs.builder()
                        .customActions(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs.builder()
                            .actionDefinition(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs.builder()
                                .publishMetricAction(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs.builder()
                                    .dimensions(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs.builder()
                                        .value("2")
                                        .build())
                                    .build())
                                .build())
                            .actionName("ExampleMetricsAction")
                            .build())
                        .statelessRules(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs.builder()
                            .priority(1)
                            .ruleDefinition(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs.builder()
                                .actions(                                
                                    "aws:pass",
                                    "ExampleMetricsAction")
                                .matchAttributes(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs.builder()
                                    .sources(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs.builder()
                                        .addressDefinition("1.2.3.4/32")
                                        .build())
                                    .sourcePorts(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs.builder()
                                        .fromPort(443)
                                        .toPort(443)
                                        .build())
                                    .destinations(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs.builder()
                                        .addressDefinition("124.1.1.5/32")
                                        .build())
                                    .destinationPorts(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs.builder()
                                        .fromPort(443)
                                        .toPort(443)
                                        .build())
                                    .protocols(6)
                                    .tcpFlags(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs.builder()
                                        .flags("SYN")
                                        .masks(                                        
                                            "SYN",
                                            "ACK")
                                        .build())
                                    .build())
                                .build())
                            .build())
                        .build())
                    .build())
                .build())
            .tags(Map.ofEntries(
                Map.entry("Tag1", "Value1"),
                Map.entry("Tag2", "Value2")
            ))
            .build());

    }
}
Copy
resources:
  example:
    type: aws:networkfirewall:RuleGroup
    properties:
      description: Stateless Rate Limiting Rule
      capacity: 100
      name: example
      type: STATELESS
      ruleGroup:
        rulesSource:
          statelessRulesAndCustomActions:
            customActions:
              - actionDefinition:
                  publishMetricAction:
                    dimensions:
                      - value: '2'
                actionName: ExampleMetricsAction
            statelessRules:
              - priority: 1
                ruleDefinition:
                  actions:
                    - aws:pass
                    - ExampleMetricsAction
                  matchAttributes:
                    sources:
                      - addressDefinition: 1.2.3.4/32
                    sourcePorts:
                      - fromPort: 443
                        toPort: 443
                    destinations:
                      - addressDefinition: 124.1.1.5/32
                    destinationPorts:
                      - fromPort: 443
                        toPort: 443
                    protocols:
                      - 6
                    tcpFlags:
                      - flags:
                          - SYN
                        masks:
                          - SYN
                          - ACK
      tags:
        Tag1: Value1
        Tag2: Value2
Copy

IP Set References to the Rule Group

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.networkfirewall.RuleGroup("example", {
    capacity: 100,
    name: "example",
    type: "STATEFUL",
    ruleGroup: {
        rulesSource: {
            rulesSourceList: {
                generatedRulesType: "DENYLIST",
                targetTypes: ["HTTP_HOST"],
                targets: ["test.example.com"],
            },
        },
        referenceSets: {
            ipSetReferences: [{
                key: "example",
                ipSetReferences: [{
                    referenceArn: _this.arn,
                }],
            }],
        },
    },
    tags: {
        Tag1: "Value1",
        Tag2: "Value2",
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.networkfirewall.RuleGroup("example",
    capacity=100,
    name="example",
    type="STATEFUL",
    rule_group={
        "rules_source": {
            "rules_source_list": {
                "generated_rules_type": "DENYLIST",
                "target_types": ["HTTP_HOST"],
                "targets": ["test.example.com"],
            },
        },
        "reference_sets": {
            "ip_set_references": [{
                "key": "example",
                "ip_set_references": [{
                    "reference_arn": this["arn"],
                }],
            }],
        },
    },
    tags={
        "Tag1": "Value1",
        "Tag2": "Value2",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{
			Capacity: pulumi.Int(100),
			Name:     pulumi.String("example"),
			Type:     pulumi.String("STATEFUL"),
			RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{
				RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{
					RulesSourceList: &networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs{
						GeneratedRulesType: pulumi.String("DENYLIST"),
						TargetTypes: pulumi.StringArray{
							pulumi.String("HTTP_HOST"),
						},
						Targets: pulumi.StringArray{
							pulumi.String("test.example.com"),
						},
					},
				},
				ReferenceSets: &networkfirewall.RuleGroupRuleGroupReferenceSetsArgs{
					IpSetReferences: networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceArray{
						&networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs{
							Key: pulumi.String("example"),
							IpSetReferences: networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArray{
								&networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs{
									ReferenceArn: pulumi.Any(this.Arn),
								},
							},
						},
					},
				},
			},
			Tags: pulumi.StringMap{
				"Tag1": pulumi.String("Value1"),
				"Tag2": pulumi.String("Value2"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.NetworkFirewall.RuleGroup("example", new()
    {
        Capacity = 100,
        Name = "example",
        Type = "STATEFUL",
        RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
        {
            RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
            {
                RulesSourceList = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs
                {
                    GeneratedRulesType = "DENYLIST",
                    TargetTypes = new[]
                    {
                        "HTTP_HOST",
                    },
                    Targets = new[]
                    {
                        "test.example.com",
                    },
                },
            },
            ReferenceSets = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupReferenceSetsArgs
            {
                IpSetReferences = new[]
                {
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs
                    {
                        Key = "example",
                        IpSetReferences = new[]
                        {
                            new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs
                            {
                                ReferenceArn = @this.Arn,
                            },
                        },
                    },
                },
            },
        },
        Tags = 
        {
            { "Tag1", "Value1" },
            { "Tag2", "Value2" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkfirewall.RuleGroup;
import com.pulumi.aws.networkfirewall.RuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs;
import com.pulumi.aws.networkfirewall.inputs.RuleGroupRuleGroupReferenceSetsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new RuleGroup("example", RuleGroupArgs.builder()
            .capacity(100)
            .name("example")
            .type("STATEFUL")
            .ruleGroup(RuleGroupRuleGroupArgs.builder()
                .rulesSource(RuleGroupRuleGroupRulesSourceArgs.builder()
                    .rulesSourceList(RuleGroupRuleGroupRulesSourceRulesSourceListArgs.builder()
                        .generatedRulesType("DENYLIST")
                        .targetTypes("HTTP_HOST")
                        .targets("test.example.com")
                        .build())
                    .build())
                .referenceSets(RuleGroupRuleGroupReferenceSetsArgs.builder()
                    .ipSetReferences(RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs.builder()
                        .key("example")
                        .ipSetReferences(RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs.builder()
                            .referenceArn(this_.arn())
                            .build())
                        .build())
                    .build())
                .build())
            .tags(Map.ofEntries(
                Map.entry("Tag1", "Value1"),
                Map.entry("Tag2", "Value2")
            ))
            .build());

    }
}
Copy
resources:
  example:
    type: aws:networkfirewall:RuleGroup
    properties:
      capacity: 100
      name: example
      type: STATEFUL
      ruleGroup:
        rulesSource:
          rulesSourceList:
            generatedRulesType: DENYLIST
            targetTypes:
              - HTTP_HOST
            targets:
              - test.example.com
        referenceSets:
          ipSetReferences:
            - key: example
              ipSetReferences:
                - referenceArn: ${this.arn}
      tags:
        Tag1: Value1
        Tag2: Value2
Copy

Create RuleGroup Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new RuleGroup(name: string, args: RuleGroupArgs, opts?: CustomResourceOptions);
@overload
def RuleGroup(resource_name: str,
              args: RuleGroupArgs,
              opts: Optional[ResourceOptions] = None)

@overload
def RuleGroup(resource_name: str,
              opts: Optional[ResourceOptions] = None,
              capacity: Optional[int] = None,
              type: Optional[str] = None,
              description: Optional[str] = None,
              encryption_configuration: Optional[RuleGroupEncryptionConfigurationArgs] = None,
              name: Optional[str] = None,
              rule_group: Optional[RuleGroupRuleGroupArgs] = None,
              rules: Optional[str] = None,
              tags: Optional[Mapping[str, str]] = None)
func NewRuleGroup(ctx *Context, name string, args RuleGroupArgs, opts ...ResourceOption) (*RuleGroup, error)
public RuleGroup(string name, RuleGroupArgs args, CustomResourceOptions? opts = null)
public RuleGroup(String name, RuleGroupArgs args)
public RuleGroup(String name, RuleGroupArgs args, CustomResourceOptions options)
type: aws:networkfirewall:RuleGroup
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. RuleGroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. RuleGroupArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. RuleGroupArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. RuleGroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. RuleGroupArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var ruleGroupResource = new Aws.NetworkFirewall.RuleGroup("ruleGroupResource", new()
{
    Capacity = 0,
    Type = "string",
    Description = "string",
    EncryptionConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupEncryptionConfigurationArgs
    {
        Type = "string",
        KeyId = "string",
    },
    Name = "string",
    RuleGroupConfiguration = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs
    {
        RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs
        {
            RulesSourceList = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs
            {
                GeneratedRulesType = "string",
                TargetTypes = new[]
                {
                    "string",
                },
                Targets = new[]
                {
                    "string",
                },
            },
            RulesString = "string",
            StatefulRules = new[]
            {
                new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleArgs
                {
                    Action = "string",
                    Header = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs
                    {
                        Destination = "string",
                        DestinationPort = "string",
                        Direction = "string",
                        Protocol = "string",
                        Source = "string",
                        SourcePort = "string",
                    },
                    RuleOptions = new[]
                    {
                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs
                        {
                            Keyword = "string",
                            Settings = new[]
                            {
                                "string",
                            },
                        },
                    },
                },
            },
            StatelessRulesAndCustomActions = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs
            {
                StatelessRules = new[]
                {
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs
                    {
                        Priority = 0,
                        RuleDefinition = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs
                        {
                            Actions = new[]
                            {
                                "string",
                            },
                            MatchAttributes = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs
                            {
                                DestinationPorts = new[]
                                {
                                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs
                                    {
                                        FromPort = 0,
                                        ToPort = 0,
                                    },
                                },
                                Destinations = new[]
                                {
                                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs
                                    {
                                        AddressDefinition = "string",
                                    },
                                },
                                Protocols = new[]
                                {
                                    0,
                                },
                                SourcePorts = new[]
                                {
                                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs
                                    {
                                        FromPort = 0,
                                        ToPort = 0,
                                    },
                                },
                                Sources = new[]
                                {
                                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs
                                    {
                                        AddressDefinition = "string",
                                    },
                                },
                                TcpFlags = new[]
                                {
                                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs
                                    {
                                        Flags = new[]
                                        {
                                            "string",
                                        },
                                        Masks = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
                CustomActions = new[]
                {
                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs
                    {
                        ActionDefinition = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs
                        {
                            PublishMetricAction = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs
                            {
                                Dimensions = new[]
                                {
                                    new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs
                                    {
                                        Value = "string",
                                    },
                                },
                            },
                        },
                        ActionName = "string",
                    },
                },
            },
        },
        ReferenceSets = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupReferenceSetsArgs
        {
            IpSetReferences = new[]
            {
                new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs
                {
                    IpSetReferences = new[]
                    {
                        new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs
                        {
                            ReferenceArn = "string",
                        },
                    },
                    Key = "string",
                },
            },
        },
        RuleVariables = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesArgs
        {
            IpSets = new[]
            {
                new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesIpSetArgs
                {
                    IpSet = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs
                    {
                        Definitions = new[]
                        {
                            "string",
                        },
                    },
                    Key = "string",
                },
            },
            PortSets = new[]
            {
                new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesPortSetArgs
                {
                    Key = "string",
                    PortSet = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs
                    {
                        Definitions = new[]
                        {
                            "string",
                        },
                    },
                },
            },
        },
        StatefulRuleOptions = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupStatefulRuleOptionsArgs
        {
            RuleOrder = "string",
        },
    },
    Rules = "string",
    Tags = 
    {
        { "string", "string" },
    },
});
Copy
example, err := networkfirewall.NewRuleGroup(ctx, "ruleGroupResource", &networkfirewall.RuleGroupArgs{
	Capacity:    pulumi.Int(0),
	Type:        pulumi.String("string"),
	Description: pulumi.String("string"),
	EncryptionConfiguration: &networkfirewall.RuleGroupEncryptionConfigurationArgs{
		Type:  pulumi.String("string"),
		KeyId: pulumi.String("string"),
	},
	Name: pulumi.String("string"),
	RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{
		RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{
			RulesSourceList: &networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs{
				GeneratedRulesType: pulumi.String("string"),
				TargetTypes: pulumi.StringArray{
					pulumi.String("string"),
				},
				Targets: pulumi.StringArray{
					pulumi.String("string"),
				},
			},
			RulesString: pulumi.String("string"),
			StatefulRules: networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleArray{
				&networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleArgs{
					Action: pulumi.String("string"),
					Header: &networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs{
						Destination:     pulumi.String("string"),
						DestinationPort: pulumi.String("string"),
						Direction:       pulumi.String("string"),
						Protocol:        pulumi.String("string"),
						Source:          pulumi.String("string"),
						SourcePort:      pulumi.String("string"),
					},
					RuleOptions: networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArray{
						&networkfirewall.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs{
							Keyword: pulumi.String("string"),
							Settings: pulumi.StringArray{
								pulumi.String("string"),
							},
						},
					},
				},
			},
			StatelessRulesAndCustomActions: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs{
				StatelessRules: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArray{
					&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs{
						Priority: pulumi.Int(0),
						RuleDefinition: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs{
							Actions: pulumi.StringArray{
								pulumi.String("string"),
							},
							MatchAttributes: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs{
								DestinationPorts: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArray{
									&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs{
										FromPort: pulumi.Int(0),
										ToPort:   pulumi.Int(0),
									},
								},
								Destinations: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArray{
									&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs{
										AddressDefinition: pulumi.String("string"),
									},
								},
								Protocols: pulumi.IntArray{
									pulumi.Int(0),
								},
								SourcePorts: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArray{
									&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs{
										FromPort: pulumi.Int(0),
										ToPort:   pulumi.Int(0),
									},
								},
								Sources: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArray{
									&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs{
										AddressDefinition: pulumi.String("string"),
									},
								},
								TcpFlags: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArray{
									&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs{
										Flags: pulumi.StringArray{
											pulumi.String("string"),
										},
										Masks: pulumi.StringArray{
											pulumi.String("string"),
										},
									},
								},
							},
						},
					},
				},
				CustomActions: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArray{
					&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs{
						ActionDefinition: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs{
							PublishMetricAction: &networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs{
								Dimensions: networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArray{
									&networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs{
										Value: pulumi.String("string"),
									},
								},
							},
						},
						ActionName: pulumi.String("string"),
					},
				},
			},
		},
		ReferenceSets: &networkfirewall.RuleGroupRuleGroupReferenceSetsArgs{
			IpSetReferences: networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceArray{
				&networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs{
					IpSetReferences: networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArray{
						&networkfirewall.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs{
							ReferenceArn: pulumi.String("string"),
						},
					},
					Key: pulumi.String("string"),
				},
			},
		},
		RuleVariables: &networkfirewall.RuleGroupRuleGroupRuleVariablesArgs{
			IpSets: networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetArray{
				&networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetArgs{
					IpSet: &networkfirewall.RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs{
						Definitions: pulumi.StringArray{
							pulumi.String("string"),
						},
					},
					Key: pulumi.String("string"),
				},
			},
			PortSets: networkfirewall.RuleGroupRuleGroupRuleVariablesPortSetArray{
				&networkfirewall.RuleGroupRuleGroupRuleVariablesPortSetArgs{
					Key: pulumi.String("string"),
					PortSet: &networkfirewall.RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs{
						Definitions: pulumi.StringArray{
							pulumi.String("string"),
						},
					},
				},
			},
		},
		StatefulRuleOptions: &networkfirewall.RuleGroupRuleGroupStatefulRuleOptionsArgs{
			RuleOrder: pulumi.String("string"),
		},
	},
	Rules: pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
})
Copy
var ruleGroupResource = new com.pulumi.aws.networkfirewall.RuleGroup("ruleGroupResource", com.pulumi.aws.networkfirewall.RuleGroupArgs.builder()
    .capacity(0)
    .type("string")
    .description("string")
    .encryptionConfiguration(RuleGroupEncryptionConfigurationArgs.builder()
        .type("string")
        .keyId("string")
        .build())
    .name("string")
    .ruleGroup(RuleGroupRuleGroupArgs.builder()
        .rulesSource(RuleGroupRuleGroupRulesSourceArgs.builder()
            .rulesSourceList(RuleGroupRuleGroupRulesSourceRulesSourceListArgs.builder()
                .generatedRulesType("string")
                .targetTypes("string")
                .targets("string")
                .build())
            .rulesString("string")
            .statefulRules(RuleGroupRuleGroupRulesSourceStatefulRuleArgs.builder()
                .action("string")
                .header(RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs.builder()
                    .destination("string")
                    .destinationPort("string")
                    .direction("string")
                    .protocol("string")
                    .source("string")
                    .sourcePort("string")
                    .build())
                .ruleOptions(RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs.builder()
                    .keyword("string")
                    .settings("string")
                    .build())
                .build())
            .statelessRulesAndCustomActions(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs.builder()
                .statelessRules(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs.builder()
                    .priority(0)
                    .ruleDefinition(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs.builder()
                        .actions("string")
                        .matchAttributes(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs.builder()
                            .destinationPorts(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs.builder()
                                .fromPort(0)
                                .toPort(0)
                                .build())
                            .destinations(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs.builder()
                                .addressDefinition("string")
                                .build())
                            .protocols(0)
                            .sourcePorts(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs.builder()
                                .fromPort(0)
                                .toPort(0)
                                .build())
                            .sources(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs.builder()
                                .addressDefinition("string")
                                .build())
                            .tcpFlags(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs.builder()
                                .flags("string")
                                .masks("string")
                                .build())
                            .build())
                        .build())
                    .build())
                .customActions(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs.builder()
                    .actionDefinition(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs.builder()
                        .publishMetricAction(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs.builder()
                            .dimensions(RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs.builder()
                                .value("string")
                                .build())
                            .build())
                        .build())
                    .actionName("string")
                    .build())
                .build())
            .build())
        .referenceSets(RuleGroupRuleGroupReferenceSetsArgs.builder()
            .ipSetReferences(RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs.builder()
                .ipSetReferences(RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs.builder()
                    .referenceArn("string")
                    .build())
                .key("string")
                .build())
            .build())
        .ruleVariables(RuleGroupRuleGroupRuleVariablesArgs.builder()
            .ipSets(RuleGroupRuleGroupRuleVariablesIpSetArgs.builder()
                .ipSet(RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs.builder()
                    .definitions("string")
                    .build())
                .key("string")
                .build())
            .portSets(RuleGroupRuleGroupRuleVariablesPortSetArgs.builder()
                .key("string")
                .portSet(RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs.builder()
                    .definitions("string")
                    .build())
                .build())
            .build())
        .statefulRuleOptions(RuleGroupRuleGroupStatefulRuleOptionsArgs.builder()
            .ruleOrder("string")
            .build())
        .build())
    .rules("string")
    .tags(Map.of("string", "string"))
    .build());
Copy
rule_group_resource = aws.networkfirewall.RuleGroup("ruleGroupResource",
    capacity=0,
    type="string",
    description="string",
    encryption_configuration={
        "type": "string",
        "key_id": "string",
    },
    name="string",
    rule_group={
        "rules_source": {
            "rules_source_list": {
                "generated_rules_type": "string",
                "target_types": ["string"],
                "targets": ["string"],
            },
            "rules_string": "string",
            "stateful_rules": [{
                "action": "string",
                "header": {
                    "destination": "string",
                    "destination_port": "string",
                    "direction": "string",
                    "protocol": "string",
                    "source": "string",
                    "source_port": "string",
                },
                "rule_options": [{
                    "keyword": "string",
                    "settings": ["string"],
                }],
            }],
            "stateless_rules_and_custom_actions": {
                "stateless_rules": [{
                    "priority": 0,
                    "rule_definition": {
                        "actions": ["string"],
                        "match_attributes": {
                            "destination_ports": [{
                                "from_port": 0,
                                "to_port": 0,
                            }],
                            "destinations": [{
                                "address_definition": "string",
                            }],
                            "protocols": [0],
                            "source_ports": [{
                                "from_port": 0,
                                "to_port": 0,
                            }],
                            "sources": [{
                                "address_definition": "string",
                            }],
                            "tcp_flags": [{
                                "flags": ["string"],
                                "masks": ["string"],
                            }],
                        },
                    },
                }],
                "custom_actions": [{
                    "action_definition": {
                        "publish_metric_action": {
                            "dimensions": [{
                                "value": "string",
                            }],
                        },
                    },
                    "action_name": "string",
                }],
            },
        },
        "reference_sets": {
            "ip_set_references": [{
                "ip_set_references": [{
                    "reference_arn": "string",
                }],
                "key": "string",
            }],
        },
        "rule_variables": {
            "ip_sets": [{
                "ip_set": {
                    "definitions": ["string"],
                },
                "key": "string",
            }],
            "port_sets": [{
                "key": "string",
                "port_set": {
                    "definitions": ["string"],
                },
            }],
        },
        "stateful_rule_options": {
            "rule_order": "string",
        },
    },
    rules="string",
    tags={
        "string": "string",
    })
Copy
const ruleGroupResource = new aws.networkfirewall.RuleGroup("ruleGroupResource", {
    capacity: 0,
    type: "string",
    description: "string",
    encryptionConfiguration: {
        type: "string",
        keyId: "string",
    },
    name: "string",
    ruleGroup: {
        rulesSource: {
            rulesSourceList: {
                generatedRulesType: "string",
                targetTypes: ["string"],
                targets: ["string"],
            },
            rulesString: "string",
            statefulRules: [{
                action: "string",
                header: {
                    destination: "string",
                    destinationPort: "string",
                    direction: "string",
                    protocol: "string",
                    source: "string",
                    sourcePort: "string",
                },
                ruleOptions: [{
                    keyword: "string",
                    settings: ["string"],
                }],
            }],
            statelessRulesAndCustomActions: {
                statelessRules: [{
                    priority: 0,
                    ruleDefinition: {
                        actions: ["string"],
                        matchAttributes: {
                            destinationPorts: [{
                                fromPort: 0,
                                toPort: 0,
                            }],
                            destinations: [{
                                addressDefinition: "string",
                            }],
                            protocols: [0],
                            sourcePorts: [{
                                fromPort: 0,
                                toPort: 0,
                            }],
                            sources: [{
                                addressDefinition: "string",
                            }],
                            tcpFlags: [{
                                flags: ["string"],
                                masks: ["string"],
                            }],
                        },
                    },
                }],
                customActions: [{
                    actionDefinition: {
                        publishMetricAction: {
                            dimensions: [{
                                value: "string",
                            }],
                        },
                    },
                    actionName: "string",
                }],
            },
        },
        referenceSets: {
            ipSetReferences: [{
                ipSetReferences: [{
                    referenceArn: "string",
                }],
                key: "string",
            }],
        },
        ruleVariables: {
            ipSets: [{
                ipSet: {
                    definitions: ["string"],
                },
                key: "string",
            }],
            portSets: [{
                key: "string",
                portSet: {
                    definitions: ["string"],
                },
            }],
        },
        statefulRuleOptions: {
            ruleOrder: "string",
        },
    },
    rules: "string",
    tags: {
        string: "string",
    },
});
Copy
type: aws:networkfirewall:RuleGroup
properties:
    capacity: 0
    description: string
    encryptionConfiguration:
        keyId: string
        type: string
    name: string
    ruleGroup:
        referenceSets:
            ipSetReferences:
                - ipSetReferences:
                    - referenceArn: string
                  key: string
        ruleVariables:
            ipSets:
                - ipSet:
                    definitions:
                        - string
                  key: string
            portSets:
                - key: string
                  portSet:
                    definitions:
                        - string
        rulesSource:
            rulesSourceList:
                generatedRulesType: string
                targetTypes:
                    - string
                targets:
                    - string
            rulesString: string
            statefulRules:
                - action: string
                  header:
                    destination: string
                    destinationPort: string
                    direction: string
                    protocol: string
                    source: string
                    sourcePort: string
                  ruleOptions:
                    - keyword: string
                      settings:
                        - string
            statelessRulesAndCustomActions:
                customActions:
                    - actionDefinition:
                        publishMetricAction:
                            dimensions:
                                - value: string
                      actionName: string
                statelessRules:
                    - priority: 0
                      ruleDefinition:
                        actions:
                            - string
                        matchAttributes:
                            destinationPorts:
                                - fromPort: 0
                                  toPort: 0
                            destinations:
                                - addressDefinition: string
                            protocols:
                                - 0
                            sourcePorts:
                                - fromPort: 0
                                  toPort: 0
                            sources:
                                - addressDefinition: string
                            tcpFlags:
                                - flags:
                                    - string
                                  masks:
                                    - string
        statefulRuleOptions:
            ruleOrder: string
    rules: string
    tags:
        string: string
    type: string
Copy

RuleGroup Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The RuleGroup resource accepts the following input properties:

Capacity
This property is required.
Changes to this property will trigger replacement.
int
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
Type This property is required. string
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
Description string
A friendly description of the rule group.
EncryptionConfiguration RuleGroupEncryptionConfiguration
KMS encryption configuration settings. See Encryption Configuration below for details.
Name Changes to this property will trigger replacement. string
A friendly name of the rule group.
RuleGroupConfiguration RuleGroupRuleGroup
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
Rules string
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
Tags Dictionary<string, string>
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
Capacity
This property is required.
Changes to this property will trigger replacement.
int
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
Type This property is required. string
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
Description string
A friendly description of the rule group.
EncryptionConfiguration RuleGroupEncryptionConfigurationArgs
KMS encryption configuration settings. See Encryption Configuration below for details.
Name Changes to this property will trigger replacement. string
A friendly name of the rule group.
RuleGroup RuleGroupRuleGroupArgs
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
Rules string
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
Tags map[string]string
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
capacity
This property is required.
Changes to this property will trigger replacement.
Integer
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
type This property is required. String
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
description String
A friendly description of the rule group.
encryptionConfiguration RuleGroupEncryptionConfiguration
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. String
A friendly name of the rule group.
ruleGroup RuleGroupRuleGroup
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules String
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags Map<String,String>
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
capacity
This property is required.
Changes to this property will trigger replacement.
number
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
type This property is required. string
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
description string
A friendly description of the rule group.
encryptionConfiguration RuleGroupEncryptionConfiguration
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. string
A friendly name of the rule group.
ruleGroup RuleGroupRuleGroup
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules string
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags {[key: string]: string}
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
capacity
This property is required.
Changes to this property will trigger replacement.
int
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
type This property is required. str
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
description str
A friendly description of the rule group.
encryption_configuration RuleGroupEncryptionConfigurationArgs
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. str
A friendly name of the rule group.
rule_group RuleGroupRuleGroupArgs
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules str
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags Mapping[str, str]
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
capacity
This property is required.
Changes to this property will trigger replacement.
Number
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
type This property is required. String
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
description String
A friendly description of the rule group.
encryptionConfiguration Property Map
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. String
A friendly name of the rule group.
ruleGroup Property Map
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules String
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags Map<String>
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Outputs

All input properties are implicitly available as output properties. Additionally, the RuleGroup resource produces the following output properties:

Arn string
The Amazon Resource Name (ARN) that identifies the rule group.
Id string
The provider-assigned unique ID for this managed resource.
TagsAll Dictionary<string, string>
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

UpdateToken string
A string token used when updating the rule group.
Arn string
The Amazon Resource Name (ARN) that identifies the rule group.
Id string
The provider-assigned unique ID for this managed resource.
TagsAll map[string]string
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

UpdateToken string
A string token used when updating the rule group.
arn String
The Amazon Resource Name (ARN) that identifies the rule group.
id String
The provider-assigned unique ID for this managed resource.
tagsAll Map<String,String>
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

updateToken String
A string token used when updating the rule group.
arn string
The Amazon Resource Name (ARN) that identifies the rule group.
id string
The provider-assigned unique ID for this managed resource.
tagsAll {[key: string]: string}
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

updateToken string
A string token used when updating the rule group.
arn str
The Amazon Resource Name (ARN) that identifies the rule group.
id str
The provider-assigned unique ID for this managed resource.
tags_all Mapping[str, str]
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

update_token str
A string token used when updating the rule group.
arn String
The Amazon Resource Name (ARN) that identifies the rule group.
id String
The provider-assigned unique ID for this managed resource.
tagsAll Map<String>
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

updateToken String
A string token used when updating the rule group.

Look up Existing RuleGroup Resource

Get an existing RuleGroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: RuleGroupState, opts?: CustomResourceOptions): RuleGroup
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        arn: Optional[str] = None,
        capacity: Optional[int] = None,
        description: Optional[str] = None,
        encryption_configuration: Optional[RuleGroupEncryptionConfigurationArgs] = None,
        name: Optional[str] = None,
        rule_group: Optional[RuleGroupRuleGroupArgs] = None,
        rules: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        type: Optional[str] = None,
        update_token: Optional[str] = None) -> RuleGroup
func GetRuleGroup(ctx *Context, name string, id IDInput, state *RuleGroupState, opts ...ResourceOption) (*RuleGroup, error)
public static RuleGroup Get(string name, Input<string> id, RuleGroupState? state, CustomResourceOptions? opts = null)
public static RuleGroup get(String name, Output<String> id, RuleGroupState state, CustomResourceOptions options)
resources:  _:    type: aws:networkfirewall:RuleGroup    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Arn string
The Amazon Resource Name (ARN) that identifies the rule group.
Capacity Changes to this property will trigger replacement. int
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
Description string
A friendly description of the rule group.
EncryptionConfiguration RuleGroupEncryptionConfiguration
KMS encryption configuration settings. See Encryption Configuration below for details.
Name Changes to this property will trigger replacement. string
A friendly name of the rule group.
RuleGroupConfiguration RuleGroupRuleGroup
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
Rules string
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
Tags Dictionary<string, string>
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll Dictionary<string, string>
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

Type string
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
UpdateToken string
A string token used when updating the rule group.
Arn string
The Amazon Resource Name (ARN) that identifies the rule group.
Capacity Changes to this property will trigger replacement. int
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
Description string
A friendly description of the rule group.
EncryptionConfiguration RuleGroupEncryptionConfigurationArgs
KMS encryption configuration settings. See Encryption Configuration below for details.
Name Changes to this property will trigger replacement. string
A friendly name of the rule group.
RuleGroup RuleGroupRuleGroupArgs
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
Rules string
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
Tags map[string]string
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll map[string]string
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

Type string
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
UpdateToken string
A string token used when updating the rule group.
arn String
The Amazon Resource Name (ARN) that identifies the rule group.
capacity Changes to this property will trigger replacement. Integer
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
description String
A friendly description of the rule group.
encryptionConfiguration RuleGroupEncryptionConfiguration
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. String
A friendly name of the rule group.
ruleGroup RuleGroupRuleGroup
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules String
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags Map<String,String>
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll Map<String,String>
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

type String
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
updateToken String
A string token used when updating the rule group.
arn string
The Amazon Resource Name (ARN) that identifies the rule group.
capacity Changes to this property will trigger replacement. number
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
description string
A friendly description of the rule group.
encryptionConfiguration RuleGroupEncryptionConfiguration
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. string
A friendly name of the rule group.
ruleGroup RuleGroupRuleGroup
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules string
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags {[key: string]: string}
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll {[key: string]: string}
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

type string
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
updateToken string
A string token used when updating the rule group.
arn str
The Amazon Resource Name (ARN) that identifies the rule group.
capacity Changes to this property will trigger replacement. int
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
description str
A friendly description of the rule group.
encryption_configuration RuleGroupEncryptionConfigurationArgs
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. str
A friendly name of the rule group.
rule_group RuleGroupRuleGroupArgs
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules str
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags Mapping[str, str]
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tags_all Mapping[str, str]
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

type str
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
update_token str
A string token used when updating the rule group.
arn String
The Amazon Resource Name (ARN) that identifies the rule group.
capacity Changes to this property will trigger replacement. Number
The maximum number of operating resources that this rule group can use. For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules. For a stateful rule group, the minimum capacity required is the number of individual rules.
description String
A friendly description of the rule group.
encryptionConfiguration Property Map
KMS encryption configuration settings. See Encryption Configuration below for details.
name Changes to this property will trigger replacement. String
A friendly name of the rule group.
ruleGroup Property Map
A configuration block that defines the rule group rules. Required unless rules is specified. See Rule Group below for details.
rules String
The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless rule_group is specified.
tags Map<String>
A map of key:value pairs to associate with the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll Map<String>
A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

type String
Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: STATEFUL or STATELESS.
updateToken String
A string token used when updating the rule group.

Supporting Types

RuleGroupEncryptionConfiguration
, RuleGroupEncryptionConfigurationArgs

Type This property is required. string
The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are CUSTOMER_KMS and AWS_OWNED_KMS_KEY.
KeyId string
The ID of the customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN.
Type This property is required. string
The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are CUSTOMER_KMS and AWS_OWNED_KMS_KEY.
KeyId string
The ID of the customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN.
type This property is required. String
The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are CUSTOMER_KMS and AWS_OWNED_KMS_KEY.
keyId String
The ID of the customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN.
type This property is required. string
The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are CUSTOMER_KMS and AWS_OWNED_KMS_KEY.
keyId string
The ID of the customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN.
type This property is required. str
The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are CUSTOMER_KMS and AWS_OWNED_KMS_KEY.
key_id str
The ID of the customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN.
type This property is required. String
The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are CUSTOMER_KMS and AWS_OWNED_KMS_KEY.
keyId String
The ID of the customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN.

RuleGroupRuleGroup
, RuleGroupRuleGroupArgs

RulesSource This property is required. RuleGroupRuleGroupRulesSource
A configuration block that defines the stateful or stateless rules for the rule group. See Rules Source below for details.
ReferenceSets RuleGroupRuleGroupReferenceSets
A configuration block that defines the IP Set References for the rule group. See Reference Sets below for details. Please notes that there can only be a maximum of 5 reference_sets in a rule_group. See the AWS documentation for details.
RuleVariables RuleGroupRuleGroupRuleVariables
A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for stateful rule groups. See Rule Variables below for details.
StatefulRuleOptions RuleGroupRuleGroupStatefulRuleOptions
A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details.
RulesSource This property is required. RuleGroupRuleGroupRulesSource
A configuration block that defines the stateful or stateless rules for the rule group. See Rules Source below for details.
ReferenceSets RuleGroupRuleGroupReferenceSets
A configuration block that defines the IP Set References for the rule group. See Reference Sets below for details. Please notes that there can only be a maximum of 5 reference_sets in a rule_group. See the AWS documentation for details.
RuleVariables RuleGroupRuleGroupRuleVariables
A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for stateful rule groups. See Rule Variables below for details.
StatefulRuleOptions RuleGroupRuleGroupStatefulRuleOptions
A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details.
rulesSource This property is required. RuleGroupRuleGroupRulesSource
A configuration block that defines the stateful or stateless rules for the rule group. See Rules Source below for details.
referenceSets RuleGroupRuleGroupReferenceSets
A configuration block that defines the IP Set References for the rule group. See Reference Sets below for details. Please notes that there can only be a maximum of 5 reference_sets in a rule_group. See the AWS documentation for details.
ruleVariables RuleGroupRuleGroupRuleVariables
A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for stateful rule groups. See Rule Variables below for details.
statefulRuleOptions RuleGroupRuleGroupStatefulRuleOptions
A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details.
rulesSource This property is required. RuleGroupRuleGroupRulesSource
A configuration block that defines the stateful or stateless rules for the rule group. See Rules Source below for details.
referenceSets RuleGroupRuleGroupReferenceSets
A configuration block that defines the IP Set References for the rule group. See Reference Sets below for details. Please notes that there can only be a maximum of 5 reference_sets in a rule_group. See the AWS documentation for details.
ruleVariables RuleGroupRuleGroupRuleVariables
A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for stateful rule groups. See Rule Variables below for details.
statefulRuleOptions RuleGroupRuleGroupStatefulRuleOptions
A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details.
rules_source This property is required. RuleGroupRuleGroupRulesSource
A configuration block that defines the stateful or stateless rules for the rule group. See Rules Source below for details.
reference_sets RuleGroupRuleGroupReferenceSets
A configuration block that defines the IP Set References for the rule group. See Reference Sets below for details. Please notes that there can only be a maximum of 5 reference_sets in a rule_group. See the AWS documentation for details.
rule_variables RuleGroupRuleGroupRuleVariables
A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for stateful rule groups. See Rule Variables below for details.
stateful_rule_options RuleGroupRuleGroupStatefulRuleOptions
A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details.
rulesSource This property is required. Property Map
A configuration block that defines the stateful or stateless rules for the rule group. See Rules Source below for details.
referenceSets Property Map
A configuration block that defines the IP Set References for the rule group. See Reference Sets below for details. Please notes that there can only be a maximum of 5 reference_sets in a rule_group. See the AWS documentation for details.
ruleVariables Property Map
A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for stateful rule groups. See Rule Variables below for details.
statefulRuleOptions Property Map
A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details.

RuleGroupRuleGroupReferenceSets
, RuleGroupRuleGroupReferenceSetsArgs

RuleGroupRuleGroupReferenceSetsIpSetReference
, RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs

IpSetReferences This property is required. List<RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference>
Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details.
Key This property is required. string
IpSetReferences This property is required. []RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference
Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details.
Key This property is required. string
ipSetReferences This property is required. List<RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference>
Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details.
key This property is required. String
ipSetReferences This property is required. RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference[]
Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details.
key This property is required. string
ip_set_references This property is required. Sequence[RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference]
Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details.
key This property is required. str
ipSetReferences This property is required. List<Property Map>
Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details.
key This property is required. String

RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference
, RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs

ReferenceArn This property is required. string
Set of Managed Prefix IP ARN(s)
ReferenceArn This property is required. string
Set of Managed Prefix IP ARN(s)
referenceArn This property is required. String
Set of Managed Prefix IP ARN(s)
referenceArn This property is required. string
Set of Managed Prefix IP ARN(s)
reference_arn This property is required. str
Set of Managed Prefix IP ARN(s)
referenceArn This property is required. String
Set of Managed Prefix IP ARN(s)

RuleGroupRuleGroupRuleVariables
, RuleGroupRuleGroupRuleVariablesArgs

IpSets List<RuleGroupRuleGroupRuleVariablesIpSet>
Set of configuration blocks that define IP address information. See IP Sets below for details.
PortSets List<RuleGroupRuleGroupRuleVariablesPortSet>
Set of configuration blocks that define port range information. See Port Sets below for details.
IpSets []RuleGroupRuleGroupRuleVariablesIpSet
Set of configuration blocks that define IP address information. See IP Sets below for details.
PortSets []RuleGroupRuleGroupRuleVariablesPortSet
Set of configuration blocks that define port range information. See Port Sets below for details.
ipSets List<RuleGroupRuleGroupRuleVariablesIpSet>
Set of configuration blocks that define IP address information. See IP Sets below for details.
portSets List<RuleGroupRuleGroupRuleVariablesPortSet>
Set of configuration blocks that define port range information. See Port Sets below for details.
ipSets RuleGroupRuleGroupRuleVariablesIpSet[]
Set of configuration blocks that define IP address information. See IP Sets below for details.
portSets RuleGroupRuleGroupRuleVariablesPortSet[]
Set of configuration blocks that define port range information. See Port Sets below for details.
ip_sets Sequence[RuleGroupRuleGroupRuleVariablesIpSet]
Set of configuration blocks that define IP address information. See IP Sets below for details.
port_sets Sequence[RuleGroupRuleGroupRuleVariablesPortSet]
Set of configuration blocks that define port range information. See Port Sets below for details.
ipSets List<Property Map>
Set of configuration blocks that define IP address information. See IP Sets below for details.
portSets List<Property Map>
Set of configuration blocks that define port range information. See Port Sets below for details.

RuleGroupRuleGroupRuleVariablesIpSet
, RuleGroupRuleGroupRuleVariablesIpSetArgs

IpSet This property is required. RuleGroupRuleGroupRuleVariablesIpSetIpSet
A configuration block that defines a set of IP addresses. See IP Set below for details.
Key This property is required. string
A unique alphanumeric string to identify the ip_set.
IpSet This property is required. RuleGroupRuleGroupRuleVariablesIpSetIpSet
A configuration block that defines a set of IP addresses. See IP Set below for details.
Key This property is required. string
A unique alphanumeric string to identify the ip_set.
ipSet This property is required. RuleGroupRuleGroupRuleVariablesIpSetIpSet
A configuration block that defines a set of IP addresses. See IP Set below for details.
key This property is required. String
A unique alphanumeric string to identify the ip_set.
ipSet This property is required. RuleGroupRuleGroupRuleVariablesIpSetIpSet
A configuration block that defines a set of IP addresses. See IP Set below for details.
key This property is required. string
A unique alphanumeric string to identify the ip_set.
ip_set This property is required. RuleGroupRuleGroupRuleVariablesIpSetIpSet
A configuration block that defines a set of IP addresses. See IP Set below for details.
key This property is required. str
A unique alphanumeric string to identify the ip_set.
ipSet This property is required. Property Map
A configuration block that defines a set of IP addresses. See IP Set below for details.
key This property is required. String
A unique alphanumeric string to identify the ip_set.

RuleGroupRuleGroupRuleVariablesIpSetIpSet
, RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs

Definitions This property is required. List<string>
Set of IP addresses and address ranges, in CIDR notation.
Definitions This property is required. []string
Set of IP addresses and address ranges, in CIDR notation.
definitions This property is required. List<String>
Set of IP addresses and address ranges, in CIDR notation.
definitions This property is required. string[]
Set of IP addresses and address ranges, in CIDR notation.
definitions This property is required. Sequence[str]
Set of IP addresses and address ranges, in CIDR notation.
definitions This property is required. List<String>
Set of IP addresses and address ranges, in CIDR notation.

RuleGroupRuleGroupRuleVariablesPortSet
, RuleGroupRuleGroupRuleVariablesPortSetArgs

Key This property is required. string
An unique alphanumeric string to identify the port_set.
PortSet This property is required. RuleGroupRuleGroupRuleVariablesPortSetPortSet
A configuration block that defines a set of port ranges. See Port Set below for details.
Key This property is required. string
An unique alphanumeric string to identify the port_set.
PortSet This property is required. RuleGroupRuleGroupRuleVariablesPortSetPortSet
A configuration block that defines a set of port ranges. See Port Set below for details.
key This property is required. String
An unique alphanumeric string to identify the port_set.
portSet This property is required. RuleGroupRuleGroupRuleVariablesPortSetPortSet
A configuration block that defines a set of port ranges. See Port Set below for details.
key This property is required. string
An unique alphanumeric string to identify the port_set.
portSet This property is required. RuleGroupRuleGroupRuleVariablesPortSetPortSet
A configuration block that defines a set of port ranges. See Port Set below for details.
key This property is required. str
An unique alphanumeric string to identify the port_set.
port_set This property is required. RuleGroupRuleGroupRuleVariablesPortSetPortSet
A configuration block that defines a set of port ranges. See Port Set below for details.
key This property is required. String
An unique alphanumeric string to identify the port_set.
portSet This property is required. Property Map
A configuration block that defines a set of port ranges. See Port Set below for details.

RuleGroupRuleGroupRuleVariablesPortSetPortSet
, RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs

Definitions This property is required. List<string>
Set of port ranges.
Definitions This property is required. []string
Set of port ranges.
definitions This property is required. List<String>
Set of port ranges.
definitions This property is required. string[]
Set of port ranges.
definitions This property is required. Sequence[str]
Set of port ranges.
definitions This property is required. List<String>
Set of port ranges.

RuleGroupRuleGroupRulesSource
, RuleGroupRuleGroupRulesSourceArgs

RulesSourceList RuleGroupRuleGroupRulesSourceRulesSourceList
A configuration block containing stateful inspection criteria for a domain list rule group. See Rules Source List below for details.
RulesString string
The fully qualified name of a file in an S3 bucket that contains Suricata compatible intrusion preventions system (IPS) rules or the Suricata rules as a string. These rules contain stateful inspection criteria and the action to take for traffic that matches the criteria.
StatefulRules List<RuleGroupRuleGroupRulesSourceStatefulRule>
Set of configuration blocks containing stateful inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details.
StatelessRulesAndCustomActions RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions
A configuration block containing stateless inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details.
RulesSourceList RuleGroupRuleGroupRulesSourceRulesSourceList
A configuration block containing stateful inspection criteria for a domain list rule group. See Rules Source List below for details.
RulesString string
The fully qualified name of a file in an S3 bucket that contains Suricata compatible intrusion preventions system (IPS) rules or the Suricata rules as a string. These rules contain stateful inspection criteria and the action to take for traffic that matches the criteria.
StatefulRules []RuleGroupRuleGroupRulesSourceStatefulRule
Set of configuration blocks containing stateful inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details.
StatelessRulesAndCustomActions RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions
A configuration block containing stateless inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details.
rulesSourceList RuleGroupRuleGroupRulesSourceRulesSourceList
A configuration block containing stateful inspection criteria for a domain list rule group. See Rules Source List below for details.
rulesString String
The fully qualified name of a file in an S3 bucket that contains Suricata compatible intrusion preventions system (IPS) rules or the Suricata rules as a string. These rules contain stateful inspection criteria and the action to take for traffic that matches the criteria.
statefulRules List<RuleGroupRuleGroupRulesSourceStatefulRule>
Set of configuration blocks containing stateful inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details.
statelessRulesAndCustomActions RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions
A configuration block containing stateless inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details.
rulesSourceList RuleGroupRuleGroupRulesSourceRulesSourceList
A configuration block containing stateful inspection criteria for a domain list rule group. See Rules Source List below for details.
rulesString string
The fully qualified name of a file in an S3 bucket that contains Suricata compatible intrusion preventions system (IPS) rules or the Suricata rules as a string. These rules contain stateful inspection criteria and the action to take for traffic that matches the criteria.
statefulRules RuleGroupRuleGroupRulesSourceStatefulRule[]
Set of configuration blocks containing stateful inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details.
statelessRulesAndCustomActions RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions
A configuration block containing stateless inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details.
rules_source_list RuleGroupRuleGroupRulesSourceRulesSourceList
A configuration block containing stateful inspection criteria for a domain list rule group. See Rules Source List below for details.
rules_string str
The fully qualified name of a file in an S3 bucket that contains Suricata compatible intrusion preventions system (IPS) rules or the Suricata rules as a string. These rules contain stateful inspection criteria and the action to take for traffic that matches the criteria.
stateful_rules Sequence[RuleGroupRuleGroupRulesSourceStatefulRule]
Set of configuration blocks containing stateful inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details.
stateless_rules_and_custom_actions RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions
A configuration block containing stateless inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details.
rulesSourceList Property Map
A configuration block containing stateful inspection criteria for a domain list rule group. See Rules Source List below for details.
rulesString String
The fully qualified name of a file in an S3 bucket that contains Suricata compatible intrusion preventions system (IPS) rules or the Suricata rules as a string. These rules contain stateful inspection criteria and the action to take for traffic that matches the criteria.
statefulRules List<Property Map>
Set of configuration blocks containing stateful inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details.
statelessRulesAndCustomActions Property Map
A configuration block containing stateless inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details.

RuleGroupRuleGroupRulesSourceRulesSourceList
, RuleGroupRuleGroupRulesSourceRulesSourceListArgs

GeneratedRulesType This property is required. string
String value to specify whether domains in the target list are allowed or denied access. Valid values: ALLOWLIST, DENYLIST.
TargetTypes This property is required. List<string>
Set of types of domain specifications that are provided in the targets argument. Valid values: HTTP_HOST, TLS_SNI.
Targets This property is required. List<string>
Set of domains that you want to inspect for in your traffic flows.
GeneratedRulesType This property is required. string
String value to specify whether domains in the target list are allowed or denied access. Valid values: ALLOWLIST, DENYLIST.
TargetTypes This property is required. []string
Set of types of domain specifications that are provided in the targets argument. Valid values: HTTP_HOST, TLS_SNI.
Targets This property is required. []string
Set of domains that you want to inspect for in your traffic flows.
generatedRulesType This property is required. String
String value to specify whether domains in the target list are allowed or denied access. Valid values: ALLOWLIST, DENYLIST.
targetTypes This property is required. List<String>
Set of types of domain specifications that are provided in the targets argument. Valid values: HTTP_HOST, TLS_SNI.
targets This property is required. List<String>
Set of domains that you want to inspect for in your traffic flows.
generatedRulesType This property is required. string
String value to specify whether domains in the target list are allowed or denied access. Valid values: ALLOWLIST, DENYLIST.
targetTypes This property is required. string[]
Set of types of domain specifications that are provided in the targets argument. Valid values: HTTP_HOST, TLS_SNI.
targets This property is required. string[]
Set of domains that you want to inspect for in your traffic flows.
generated_rules_type This property is required. str
String value to specify whether domains in the target list are allowed or denied access. Valid values: ALLOWLIST, DENYLIST.
target_types This property is required. Sequence[str]
Set of types of domain specifications that are provided in the targets argument. Valid values: HTTP_HOST, TLS_SNI.
targets This property is required. Sequence[str]
Set of domains that you want to inspect for in your traffic flows.
generatedRulesType This property is required. String
String value to specify whether domains in the target list are allowed or denied access. Valid values: ALLOWLIST, DENYLIST.
targetTypes This property is required. List<String>
Set of types of domain specifications that are provided in the targets argument. Valid values: HTTP_HOST, TLS_SNI.
targets This property is required. List<String>
Set of domains that you want to inspect for in your traffic flows.

RuleGroupRuleGroupRulesSourceStatefulRule
, RuleGroupRuleGroupRulesSourceStatefulRuleArgs

Action This property is required. string
Action to take with packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, AWS Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. Valid values: ALERT, DROP, PASS, or REJECT.
Header This property is required. RuleGroupRuleGroupRulesSourceStatefulRuleHeader
A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details.
RuleOptions This property is required. List<RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption>
Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details.
Action This property is required. string
Action to take with packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, AWS Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. Valid values: ALERT, DROP, PASS, or REJECT.
Header This property is required. RuleGroupRuleGroupRulesSourceStatefulRuleHeader
A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details.
RuleOptions This property is required. []RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption
Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details.
action This property is required. String
Action to take with packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, AWS Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. Valid values: ALERT, DROP, PASS, or REJECT.
header This property is required. RuleGroupRuleGroupRulesSourceStatefulRuleHeader
A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details.
ruleOptions This property is required. List<RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption>
Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details.
action This property is required. string
Action to take with packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, AWS Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. Valid values: ALERT, DROP, PASS, or REJECT.
header This property is required. RuleGroupRuleGroupRulesSourceStatefulRuleHeader
A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details.
ruleOptions This property is required. RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption[]
Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details.
action This property is required. str
Action to take with packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, AWS Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. Valid values: ALERT, DROP, PASS, or REJECT.
header This property is required. RuleGroupRuleGroupRulesSourceStatefulRuleHeader
A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details.
rule_options This property is required. Sequence[RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption]
Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details.
action This property is required. String
Action to take with packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, AWS Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. Valid values: ALERT, DROP, PASS, or REJECT.
header This property is required. Property Map
A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details.
ruleOptions This property is required. List<Property Map>
Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details.

RuleGroupRuleGroupRulesSourceStatefulRuleHeader
, RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs

Destination This property is required. string
The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.
DestinationPort This property is required. string
The destination port to inspect for. To match with any address, specify ANY.
Direction This property is required. string
The direction of traffic flow to inspect. Valid values: ANY or FORWARD.
Protocol This property is required. string
The protocol to inspect. Valid values: IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP.
Source This property is required. string
The source IP address or address range for, in CIDR notation. To match with any address, specify ANY.
SourcePort This property is required. string
The source port to inspect for. To match with any address, specify ANY.
Destination This property is required. string
The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.
DestinationPort This property is required. string
The destination port to inspect for. To match with any address, specify ANY.
Direction This property is required. string
The direction of traffic flow to inspect. Valid values: ANY or FORWARD.
Protocol This property is required. string
The protocol to inspect. Valid values: IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP.
Source This property is required. string
The source IP address or address range for, in CIDR notation. To match with any address, specify ANY.
SourcePort This property is required. string
The source port to inspect for. To match with any address, specify ANY.
destination This property is required. String
The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.
destinationPort This property is required. String
The destination port to inspect for. To match with any address, specify ANY.
direction This property is required. String
The direction of traffic flow to inspect. Valid values: ANY or FORWARD.
protocol This property is required. String
The protocol to inspect. Valid values: IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP.
source This property is required. String
The source IP address or address range for, in CIDR notation. To match with any address, specify ANY.
sourcePort This property is required. String
The source port to inspect for. To match with any address, specify ANY.
destination This property is required. string
The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.
destinationPort This property is required. string
The destination port to inspect for. To match with any address, specify ANY.
direction This property is required. string
The direction of traffic flow to inspect. Valid values: ANY or FORWARD.
protocol This property is required. string
The protocol to inspect. Valid values: IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP.
source This property is required. string
The source IP address or address range for, in CIDR notation. To match with any address, specify ANY.
sourcePort This property is required. string
The source port to inspect for. To match with any address, specify ANY.
destination This property is required. str
The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.
destination_port This property is required. str
The destination port to inspect for. To match with any address, specify ANY.
direction This property is required. str
The direction of traffic flow to inspect. Valid values: ANY or FORWARD.
protocol This property is required. str
The protocol to inspect. Valid values: IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP.
source This property is required. str
The source IP address or address range for, in CIDR notation. To match with any address, specify ANY.
source_port This property is required. str
The source port to inspect for. To match with any address, specify ANY.
destination This property is required. String
The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.
destinationPort This property is required. String
The destination port to inspect for. To match with any address, specify ANY.
direction This property is required. String
The direction of traffic flow to inspect. Valid values: ANY or FORWARD.
protocol This property is required. String
The protocol to inspect. Valid values: IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP.
source This property is required. String
The source IP address or address range for, in CIDR notation. To match with any address, specify ANY.
sourcePort This property is required. String
The source port to inspect for. To match with any address, specify ANY.

RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption
, RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs

Keyword This property is required. string
Keyword defined by open source detection systems like Snort or Suricata for stateful rule inspection. See Snort General Rule Options or Suricata Rule Options for more details.
Settings List<string>
Set of strings for additional settings to use in stateful rule inspection.
Keyword This property is required. string
Keyword defined by open source detection systems like Snort or Suricata for stateful rule inspection. See Snort General Rule Options or Suricata Rule Options for more details.
Settings []string
Set of strings for additional settings to use in stateful rule inspection.
keyword This property is required. String
Keyword defined by open source detection systems like Snort or Suricata for stateful rule inspection. See Snort General Rule Options or Suricata Rule Options for more details.
settings List<String>
Set of strings for additional settings to use in stateful rule inspection.
keyword This property is required. string
Keyword defined by open source detection systems like Snort or Suricata for stateful rule inspection. See Snort General Rule Options or Suricata Rule Options for more details.
settings string[]
Set of strings for additional settings to use in stateful rule inspection.
keyword This property is required. str
Keyword defined by open source detection systems like Snort or Suricata for stateful rule inspection. See Snort General Rule Options or Suricata Rule Options for more details.
settings Sequence[str]
Set of strings for additional settings to use in stateful rule inspection.
keyword This property is required. String
Keyword defined by open source detection systems like Snort or Suricata for stateful rule inspection. See Snort General Rule Options or Suricata Rule Options for more details.
settings List<String>
Set of strings for additional settings to use in stateful rule inspection.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs

StatelessRules This property is required. List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule>
Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details.
CustomActions List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction>
Set of configuration blocks containing custom action definitions that are available for use by the set of stateless rule. See Custom Action below for details.
StatelessRules This property is required. []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule
Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details.
CustomActions []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction
Set of configuration blocks containing custom action definitions that are available for use by the set of stateless rule. See Custom Action below for details.
statelessRules This property is required. List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule>
Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details.
customActions List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction>
Set of configuration blocks containing custom action definitions that are available for use by the set of stateless rule. See Custom Action below for details.
statelessRules This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule[]
Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details.
customActions RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction[]
Set of configuration blocks containing custom action definitions that are available for use by the set of stateless rule. See Custom Action below for details.
stateless_rules This property is required. Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule]
Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details.
custom_actions Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction]
Set of configuration blocks containing custom action definitions that are available for use by the set of stateless rule. See Custom Action below for details.
statelessRules This property is required. List<Property Map>
Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details.
customActions List<Property Map>
Set of configuration blocks containing custom action definitions that are available for use by the set of stateless rule. See Custom Action below for details.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs

ActionDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition
A configuration block describing the custom action associated with the action_name. See Action Definition below for details.
ActionName
This property is required.
Changes to this property will trigger replacement.
string
A friendly name of the custom action.
ActionDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition
A configuration block describing the custom action associated with the action_name. See Action Definition below for details.
ActionName
This property is required.
Changes to this property will trigger replacement.
string
A friendly name of the custom action.
actionDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition
A configuration block describing the custom action associated with the action_name. See Action Definition below for details.
actionName
This property is required.
Changes to this property will trigger replacement.
String
A friendly name of the custom action.
actionDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition
A configuration block describing the custom action associated with the action_name. See Action Definition below for details.
actionName
This property is required.
Changes to this property will trigger replacement.
string
A friendly name of the custom action.
action_definition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition
A configuration block describing the custom action associated with the action_name. See Action Definition below for details.
action_name
This property is required.
Changes to this property will trigger replacement.
str
A friendly name of the custom action.
actionDefinition This property is required. Property Map
A configuration block describing the custom action associated with the action_name. See Action Definition below for details.
actionName
This property is required.
Changes to this property will trigger replacement.
String
A friendly name of the custom action.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs

PublishMetricAction This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction
A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details.
PublishMetricAction This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction
A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details.
publishMetricAction This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction
A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details.
publishMetricAction This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction
A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details.
publish_metric_action This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction
A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details.
publishMetricAction This property is required. Property Map
A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs

Dimensions This property is required. List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension>
Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details.
Dimensions This property is required. []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension
Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details.
dimensions This property is required. List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension>
Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details.
dimensions This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension[]
Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details.
dimensions This property is required. Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension]
Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details.
dimensions This property is required. List<Property Map>
Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs

Value This property is required. string
The value to use in the custom metric dimension.
Value This property is required. string
The value to use in the custom metric dimension.
value This property is required. String
The value to use in the custom metric dimension.
value This property is required. string
The value to use in the custom metric dimension.
value This property is required. str
The value to use in the custom metric dimension.
value This property is required. String
The value to use in the custom metric dimension.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs

Priority This property is required. int
A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting.
RuleDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition
A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details.
Priority This property is required. int
A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting.
RuleDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition
A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details.
priority This property is required. Integer
A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting.
ruleDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition
A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details.
priority This property is required. number
A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting.
ruleDefinition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition
A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details.
priority This property is required. int
A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting.
rule_definition This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition
A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details.
priority This property is required. Number
A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting.
ruleDefinition This property is required. Property Map
A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs

Actions This property is required. List<string>
Set of actions to take on a packet that matches one of the stateless rule definition's match_attributes. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: aws:pass, aws:drop, aws:forward_to_sfe.
MatchAttributes This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes
A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details.
Actions This property is required. []string
Set of actions to take on a packet that matches one of the stateless rule definition's match_attributes. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: aws:pass, aws:drop, aws:forward_to_sfe.
MatchAttributes This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes
A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details.
actions This property is required. List<String>
Set of actions to take on a packet that matches one of the stateless rule definition's match_attributes. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: aws:pass, aws:drop, aws:forward_to_sfe.
matchAttributes This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes
A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details.
actions This property is required. string[]
Set of actions to take on a packet that matches one of the stateless rule definition's match_attributes. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: aws:pass, aws:drop, aws:forward_to_sfe.
matchAttributes This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes
A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details.
actions This property is required. Sequence[str]
Set of actions to take on a packet that matches one of the stateless rule definition's match_attributes. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: aws:pass, aws:drop, aws:forward_to_sfe.
match_attributes This property is required. RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes
A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details.
actions This property is required. List<String>
Set of actions to take on a packet that matches one of the stateless rule definition's match_attributes. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: aws:pass, aws:drop, aws:forward_to_sfe.
matchAttributes This property is required. Property Map
A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs

DestinationPorts List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort>
Set of configuration blocks describing the destination ports to inspect for. If not specified, this matches with any destination port. See Destination Port below for details.
Destinations List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination>
Set of configuration blocks describing the destination IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address. See Destination below for details.
Protocols List<int>
Set of protocols to inspect for, specified using the protocol's assigned internet protocol number (IANA). If not specified, this matches with any protocol.
SourcePorts List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort>
Set of configuration blocks describing the source ports to inspect for. If not specified, this matches with any source port. See Source Port below for details.
Sources List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource>
Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details.
TcpFlags List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag>
Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings.
DestinationPorts []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort
Set of configuration blocks describing the destination ports to inspect for. If not specified, this matches with any destination port. See Destination Port below for details.
Destinations []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination
Set of configuration blocks describing the destination IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address. See Destination below for details.
Protocols []int
Set of protocols to inspect for, specified using the protocol's assigned internet protocol number (IANA). If not specified, this matches with any protocol.
SourcePorts []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort
Set of configuration blocks describing the source ports to inspect for. If not specified, this matches with any source port. See Source Port below for details.
Sources []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource
Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details.
TcpFlags []RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag
Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings.
destinationPorts List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort>
Set of configuration blocks describing the destination ports to inspect for. If not specified, this matches with any destination port. See Destination Port below for details.
destinations List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination>
Set of configuration blocks describing the destination IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address. See Destination below for details.
protocols List<Integer>
Set of protocols to inspect for, specified using the protocol's assigned internet protocol number (IANA). If not specified, this matches with any protocol.
sourcePorts List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort>
Set of configuration blocks describing the source ports to inspect for. If not specified, this matches with any source port. See Source Port below for details.
sources List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource>
Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details.
tcpFlags List<RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag>
Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings.
destinationPorts RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort[]
Set of configuration blocks describing the destination ports to inspect for. If not specified, this matches with any destination port. See Destination Port below for details.
destinations RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination[]
Set of configuration blocks describing the destination IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address. See Destination below for details.
protocols number[]
Set of protocols to inspect for, specified using the protocol's assigned internet protocol number (IANA). If not specified, this matches with any protocol.
sourcePorts RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort[]
Set of configuration blocks describing the source ports to inspect for. If not specified, this matches with any source port. See Source Port below for details.
sources RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource[]
Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details.
tcpFlags RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag[]
Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings.
destination_ports Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort]
Set of configuration blocks describing the destination ports to inspect for. If not specified, this matches with any destination port. See Destination Port below for details.
destinations Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination]
Set of configuration blocks describing the destination IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address. See Destination below for details.
protocols Sequence[int]
Set of protocols to inspect for, specified using the protocol's assigned internet protocol number (IANA). If not specified, this matches with any protocol.
source_ports Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort]
Set of configuration blocks describing the source ports to inspect for. If not specified, this matches with any source port. See Source Port below for details.
sources Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource]
Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details.
tcp_flags Sequence[RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag]
Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings.
destinationPorts List<Property Map>
Set of configuration blocks describing the destination ports to inspect for. If not specified, this matches with any destination port. See Destination Port below for details.
destinations List<Property Map>
Set of configuration blocks describing the destination IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address. See Destination below for details.
protocols List<Number>
Set of protocols to inspect for, specified using the protocol's assigned internet protocol number (IANA). If not specified, this matches with any protocol.
sourcePorts List<Property Map>
Set of configuration blocks describing the source ports to inspect for. If not specified, this matches with any source port. See Source Port below for details.
sources List<Property Map>
Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details.
tcpFlags List<Property Map>
Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs

AddressDefinition This property is required. string
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
AddressDefinition This property is required. string
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
addressDefinition This property is required. String
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
addressDefinition This property is required. string
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
address_definition This property is required. str
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
addressDefinition This property is required. String
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs

FromPort This property is required. int
The lower limit of the port range. This must be less than or equal to the to_port.
ToPort int
The upper limit of the port range. This must be greater than or equal to the from_port.
FromPort This property is required. int
The lower limit of the port range. This must be less than or equal to the to_port.
ToPort int
The upper limit of the port range. This must be greater than or equal to the from_port.
fromPort This property is required. Integer
The lower limit of the port range. This must be less than or equal to the to_port.
toPort Integer
The upper limit of the port range. This must be greater than or equal to the from_port.
fromPort This property is required. number
The lower limit of the port range. This must be less than or equal to the to_port.
toPort number
The upper limit of the port range. This must be greater than or equal to the from_port.
from_port This property is required. int
The lower limit of the port range. This must be less than or equal to the to_port.
to_port int
The upper limit of the port range. This must be greater than or equal to the from_port.
fromPort This property is required. Number
The lower limit of the port range. This must be less than or equal to the to_port.
toPort Number
The upper limit of the port range. This must be greater than or equal to the from_port.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs

AddressDefinition This property is required. string
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
AddressDefinition This property is required. string
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
addressDefinition This property is required. String
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
addressDefinition This property is required. string
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
address_definition This property is required. str
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.
addressDefinition This property is required. String
An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs

FromPort This property is required. int
The lower limit of the port range. This must be less than or equal to the to_port.
ToPort int
The upper limit of the port range. This must be greater than or equal to the from_port.
FromPort This property is required. int
The lower limit of the port range. This must be less than or equal to the to_port.
ToPort int
The upper limit of the port range. This must be greater than or equal to the from_port.
fromPort This property is required. Integer
The lower limit of the port range. This must be less than or equal to the to_port.
toPort Integer
The upper limit of the port range. This must be greater than or equal to the from_port.
fromPort This property is required. number
The lower limit of the port range. This must be less than or equal to the to_port.
toPort number
The upper limit of the port range. This must be greater than or equal to the from_port.
from_port This property is required. int
The lower limit of the port range. This must be less than or equal to the to_port.
to_port int
The upper limit of the port range. This must be greater than or equal to the from_port.
fromPort This property is required. Number
The lower limit of the port range. This must be less than or equal to the to_port.
toPort Number
The upper limit of the port range. This must be greater than or equal to the from_port.

RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag
, RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs

Flags This property is required. List<string>
Set of flags to look for in a packet. This setting can only specify values that are also specified in masks. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
Masks List<string>
Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
Flags This property is required. []string
Set of flags to look for in a packet. This setting can only specify values that are also specified in masks. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
Masks []string
Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
flags This property is required. List<String>
Set of flags to look for in a packet. This setting can only specify values that are also specified in masks. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
masks List<String>
Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
flags This property is required. string[]
Set of flags to look for in a packet. This setting can only specify values that are also specified in masks. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
masks string[]
Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
flags This property is required. Sequence[str]
Set of flags to look for in a packet. This setting can only specify values that are also specified in masks. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
masks Sequence[str]
Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
flags This property is required. List<String>
Set of flags to look for in a packet. This setting can only specify values that are also specified in masks. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.
masks List<String>
Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: FIN, SYN, RST, PSH, ACK, URG, ECE, CWR.

RuleGroupRuleGroupStatefulRuleOptions
, RuleGroupRuleGroupStatefulRuleOptionsArgs

RuleOrder This property is required. string
Indicates how to manage the order of the rule evaluation for the rule group. Default value: DEFAULT_ACTION_ORDER. Valid values: DEFAULT_ACTION_ORDER, STRICT_ORDER.
RuleOrder This property is required. string
Indicates how to manage the order of the rule evaluation for the rule group. Default value: DEFAULT_ACTION_ORDER. Valid values: DEFAULT_ACTION_ORDER, STRICT_ORDER.
ruleOrder This property is required. String
Indicates how to manage the order of the rule evaluation for the rule group. Default value: DEFAULT_ACTION_ORDER. Valid values: DEFAULT_ACTION_ORDER, STRICT_ORDER.
ruleOrder This property is required. string
Indicates how to manage the order of the rule evaluation for the rule group. Default value: DEFAULT_ACTION_ORDER. Valid values: DEFAULT_ACTION_ORDER, STRICT_ORDER.
rule_order This property is required. str
Indicates how to manage the order of the rule evaluation for the rule group. Default value: DEFAULT_ACTION_ORDER. Valid values: DEFAULT_ACTION_ORDER, STRICT_ORDER.
ruleOrder This property is required. String
Indicates how to manage the order of the rule evaluation for the rule group. Default value: DEFAULT_ACTION_ORDER. Valid values: DEFAULT_ACTION_ORDER, STRICT_ORDER.

Import

Using pulumi import, import Network Firewall Rule Groups using their arn. For example:

$ pulumi import aws:networkfirewall/ruleGroup:RuleGroup example arn:aws:network-firewall:us-west-1:123456789012:stateful-rulegroup/example
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.