aws-sdk-networkfirewall 1.106.0 → 1.108.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -264,7 +264,8 @@ module Aws::NetworkFirewall
264
264
  # An integer representing the maximum number attempts that will be made for
265
265
  # a single request, including the initial attempt. For example,
266
266
  # setting this value to 5 will result in a request being retried up to
267
- # 4 times. Used in `standard` and `adaptive` retry modes.
267
+ # 4 times. Used in `standard` and `adaptive` retry modes. Defaults to 3,
268
+ # except for DynamoDB and DynamoDB Streams, which default to 4.
268
269
  #
269
270
  # @option options [String] :profile ("default")
270
271
  # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
@@ -327,15 +328,15 @@ module Aws::NetworkFirewall
327
328
  # used by the default backoff function. This option is only used in the
328
329
  # `legacy` retry mode.
329
330
  #
330
- # @option options [String] :retry_mode ("legacy")
331
+ # @option options [String] :retry_mode ("standard")
331
332
  # Specifies which retry algorithm to use. Values are:
332
333
  #
333
- # * `legacy` - The pre-existing retry behavior. This is the default
334
- # value if no retry mode is provided.
334
+ # * `legacy` - The pre-existing retry behavior.
335
335
  #
336
336
  # * `standard` - A standardized set of retry rules across the AWS SDKs.
337
337
  # This includes support for retry quotas, which limit the number of
338
- # unsuccessful retries a client can make.
338
+ # unsuccessful retries a client can make. This is the default value
339
+ # if no retry mode is provided.
339
340
  #
340
341
  # * `adaptive` - A retry mode that includes all the functionality of
341
342
  # `standard` mode along with automatic client side throttling.
@@ -1394,6 +1395,232 @@ module Aws::NetworkFirewall
1394
1395
  req.send_request(options)
1395
1396
  end
1396
1397
 
1398
+ # Creates a Next Generation policy according to the specifications.
1399
+ #
1400
+ # A Next Generation policy defines the behavior of a firewall in a
1401
+ # collection of firewall engine and IPS engine rule groups and other
1402
+ # settings. You can use one firewall policy for multiple firewalls. For
1403
+ # more information, see [Next Generation policies][1] in the *Network
1404
+ # Firewall Developer Guide*.
1405
+ #
1406
+ #
1407
+ #
1408
+ # [1]: https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-policies-v2.html
1409
+ #
1410
+ # @option params [required, String] :firewall_policy_v2_name
1411
+ # The descriptive name of the Next Generation policy. You can't change
1412
+ # the name of a firewall policy after you create it.
1413
+ #
1414
+ # @option params [required, Types::FirewallPolicyV2] :firewall_policy_v2
1415
+ # The rule groups and other settings that define the Next Generation
1416
+ # policy.
1417
+ #
1418
+ # @option params [String] :description
1419
+ # A description of the firewall policy.
1420
+ #
1421
+ # @option params [Array<Types::Tag>] :tags
1422
+ # The key:value pairs to associate with the resource.
1423
+ #
1424
+ # @option params [Boolean] :dry_run
1425
+ # Indicates whether you want Network Firewall to just check the validity
1426
+ # of the request, rather than run the request.
1427
+ #
1428
+ # If set to `TRUE`, Network Firewall checks whether the request can run
1429
+ # successfully, but doesn't actually make the requested changes. The
1430
+ # call returns the value that the request would return if you ran it
1431
+ # with dry run set to `FALSE`, but doesn't make additions or changes to
1432
+ # your resources. This option allows you to make sure that you have the
1433
+ # required permissions to run the request and that your request
1434
+ # parameters are valid.
1435
+ #
1436
+ # If set to `FALSE`, Network Firewall makes the requested changes to
1437
+ # your resources.
1438
+ #
1439
+ # @option params [Types::EncryptionConfiguration] :encryption_configuration
1440
+ # A complex type that contains settings for encryption of your firewall
1441
+ # policy resources.
1442
+ #
1443
+ # @return [Types::CreateFirewallPolicyV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1444
+ #
1445
+ # * {Types::CreateFirewallPolicyV2Response#update_token #update_token} => String
1446
+ # * {Types::CreateFirewallPolicyV2Response#firewall_policy_v2_response #firewall_policy_v2_response} => Types::FirewallPolicyV2Response
1447
+ #
1448
+ # @example Request syntax with placeholder values
1449
+ #
1450
+ # resp = client.create_firewall_policy_v2({
1451
+ # firewall_policy_v2_name: "ResourceName", # required
1452
+ # firewall_policy_v2: { # required
1453
+ # firewall_rule_group_entries: [
1454
+ # {
1455
+ # priority: 1,
1456
+ # resource_arn: "ResourceArn",
1457
+ # inline_rule_group: {
1458
+ # rules_source: { # required
1459
+ # rules_string: "RulesString",
1460
+ # firewall_rules: [
1461
+ # {
1462
+ # action: "ACCEPT", # required, accepts ACCEPT, DROP, REJECT, REJECT_DST, REJECT_BOTH
1463
+ # action_scope: "FLOW", # required, accepts FLOW, TX, HOOK, PACKET
1464
+ # hook: "TCP_ALL", # required, accepts TCP_ALL, TCP_FLOW_START, TCP_PRE_FLOW, TCP_PRE_STREAM, SCTP_ALL, SCTP_FLOW_START, SCTP_PRE_FLOW, SCTP_PRE_STREAM, IPV6_ALL, IPV6_FLOW_START, IPV6_PRE_FLOW, IPV6_PRE_STREAM, ICMPV6_ALL, ICMPV6_FLOW_START, ICMPV6_PRE_FLOW, ICMPV6_PRE_STREAM, UDP_ALL, UDP_FLOW_START, UDP_PRE_FLOW, UDP_PRE_STREAM, ICMP_ALL, ICMP_FLOW_START, ICMP_PRE_FLOW, ICMP_PRE_STREAM, ICMPV4_ALL, ICMPV4_FLOW_START, ICMPV4_PRE_FLOW, ICMPV4_PRE_STREAM, IP_ALL, IP_FLOW_START, IP_PRE_FLOW, IP_PRE_STREAM, IPV4_ALL, IPV4_FLOW_START, IPV4_PRE_FLOW, IPV4_PRE_STREAM, TLS_CLIENT_STARTED, TLS_CLIENT_HELLO, TLS_CLIENT_CERT, TLS_CLIENT_DATA, TLS_CLIENT_FINISHED, TLS_SERVER_STARTED, TLS_SERVER_HELLO, TLS_SERVER_CERT, TLS_SERVER_DATA, TLS_SERVER_FINISHED, HTTP1_REQUEST_STARTED, HTTP1_REQUEST_LINE, HTTP1_REQUEST_HEADERS, HTTP1_REQUEST_BODY, HTTP1_REQUEST_TRAILER, HTTP1_REQUEST_COMPLETE, HTTP1_RESPONSE_STARTED, HTTP1_RESPONSE_LINE, HTTP1_RESPONSE_HEADERS, HTTP1_RESPONSE_BODY, HTTP1_RESPONSE_TRAILER, HTTP1_RESPONSE_COMPLETE, HTTP2_STREAM_REQUEST_STARTED, HTTP2_STREAM_REQUEST_HEADERS, HTTP2_STREAM_REQUEST_DATA, HTTP2_STREAM_REQUEST_CLOSED, HTTP2_STREAM_REQUEST_COMPLETE, HTTP2_STREAM_RESPONSE_STARTED, HTTP2_STREAM_RESPONSE_HEADERS, HTTP2_STREAM_RESPONSE_DATA, HTTP2_STREAM_RESPONSE_CLOSED, HTTP2_STREAM_RESPONSE_COMPLETE, HTTP2_GLOBAL_REQUEST_STARTED, HTTP2_GLOBAL_REQUEST_COMPLETE, HTTP2_GLOBAL_RESPONSE_STARTED, HTTP2_GLOBAL_RESPONSE_COMPLETE, DOH2_STREAM_REQUEST_STARTED, DOH2_STREAM_REQUEST_HEADERS, DOH2_STREAM_REQUEST_DATA, DOH2_STREAM_REQUEST_CLOSED, DOH2_STREAM_REQUEST_COMPLETE, DOH2_STREAM_RESPONSE_STARTED, DOH2_STREAM_RESPONSE_HEADERS, DOH2_STREAM_RESPONSE_DATA, DOH2_STREAM_RESPONSE_CLOSED, DOH2_STREAM_RESPONSE_COMPLETE, DOH2_GLOBAL_REQUEST_STARTED, DOH2_GLOBAL_REQUEST_COMPLETE, DOH2_GLOBAL_RESPONSE_STARTED, DOH2_GLOBAL_RESPONSE_COMPLETE, DNS_REQUEST_STARTED, DNS_REQUEST_COMPLETE, DNS_RESPONSE_STARTED, DNS_RESPONSE_COMPLETE, SMTP_REQUEST_STARTED, SMTP_REQUEST_DATA, SMTP_REQUEST_COMPLETE, SMTP_RESPONSE_STARTED, SMTP_RESPONSE_DATA, SMTP_RESPONSE_COMPLETE, FTP_REQUEST_STARTED, FTP_REQUEST_COMPLETE, FTP_RESPONSE_STARTED, FTP_RESPONSE_COMPLETE, FTP_DATA_REQUEST_STARTED, FTP_DATA_REQUEST_COMPLETE, FTP_DATA_RESPONSE_STARTED, FTP_DATA_RESPONSE_COMPLETE, SMB_REQUEST_STARTED, SMB_REQUEST_COMPLETE, SMB_RESPONSE_STARTED, SMB_RESPONSE_COMPLETE, DCERPC_REQUEST_STARTED, DCERPC_REQUEST_COMPLETE, DCERPC_RESPONSE_STARTED, DCERPC_RESPONSE_COMPLETE, NFS_REQUEST_STARTED, NFS_REQUEST_COMPLETE, NFS_RESPONSE_STARTED, NFS_RESPONSE_COMPLETE, KRB5_REQUEST_STARTED, KRB5_REQUEST_COMPLETE, KRB5_RESPONSE_STARTED, KRB5_RESPONSE_COMPLETE, IKE_REQUEST_STARTED, IKE_REQUEST_COMPLETE, IKE_RESPONSE_STARTED, IKE_RESPONSE_COMPLETE, TFTP_REQUEST_STARTED, TFTP_REQUEST_COMPLETE, TFTP_RESPONSE_STARTED, TFTP_RESPONSE_COMPLETE, DHCP_REQUEST_STARTED, DHCP_REQUEST_COMPLETE, DHCP_RESPONSE_STARTED, DHCP_RESPONSE_COMPLETE, QUIC_REQUEST_STARTED, QUIC_REQUEST_COMPLETE, QUIC_RESPONSE_STARTED, QUIC_RESPONSE_COMPLETE, RDP_REQUEST_STARTED, RDP_REQUEST_COMPLETE, RDP_RESPONSE_STARTED, RDP_RESPONSE_COMPLETE, RFB_REQUEST_STARTED, RFB_REQUEST_COMPLETE, RFB_RESPONSE_STARTED, RFB_RESPONSE_COMPLETE, MQTT_REQUEST_STARTED, MQTT_REQUEST_COMPLETE, MQTT_RESPONSE_STARTED, MQTT_RESPONSE_COMPLETE, PGSQL_REQUEST_STARTED, PGSQL_REQUEST_COMPLETE, PGSQL_RESPONSE_STARTED, PGSQL_RESPONSE_COMPLETE, SNMP_REQUEST_STARTED, SNMP_REQUEST_COMPLETE, SNMP_RESPONSE_STARTED, SNMP_RESPONSE_COMPLETE, NTP_REQUEST_STARTED, NTP_REQUEST_COMPLETE, NTP_RESPONSE_STARTED, NTP_RESPONSE_COMPLETE, TELNET_REQUEST_STARTED, TELNET_REQUEST_COMPLETE, TELNET_RESPONSE_STARTED, TELNET_RESPONSE_COMPLETE, WEBSOCKET_REQUEST_STARTED, WEBSOCKET_REQUEST_COMPLETE, WEBSOCKET_RESPONSE_STARTED, WEBSOCKET_RESPONSE_COMPLETE, LDAP_REQUEST_STARTED, LDAP_REQUEST_COMPLETE, LDAP_RESPONSE_STARTED, LDAP_RESPONSE_COMPLETE, POP3_REQUEST_STARTED, POP3_REQUEST_COMPLETE, POP3_RESPONSE_STARTED, POP3_RESPONSE_COMPLETE, MDNS_REQUEST_STARTED, MDNS_REQUEST_COMPLETE, MDNS_RESPONSE_STARTED, MDNS_RESPONSE_COMPLETE, BITTORRENT_DHT_REQUEST_STARTED, BITTORRENT_DHT_REQUEST_COMPLETE, BITTORRENT_DHT_RESPONSE_STARTED, BITTORRENT_DHT_RESPONSE_COMPLETE, DNP3_REQUEST_STARTED, DNP3_REQUEST_COMPLETE, DNP3_RESPONSE_STARTED, DNP3_RESPONSE_COMPLETE, SSH_REQUEST_IN_PROGRESS, SSH_REQUEST_BANNER_WAIT_EOL, SSH_REQUEST_BANNER_DONE, SSH_REQUEST_FINISHED, SSH_RESPONSE_IN_PROGRESS, SSH_RESPONSE_BANNER_WAIT_EOL, SSH_RESPONSE_BANNER_DONE, SSH_RESPONSE_FINISHED
1465
+ # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP, HTTP2, QUIC, ICMPV4, ICMPV6, SCTP, IPV4, IPV6, DOH2, FTP_DATA, NFS, RDP, RFB, MQTT, PGSQL, SNMP, TELNET, WEBSOCKET, LDAP, POP3, MDNS, BITTORRENT_DHT, DNP3
1466
+ # source_i_ps: "Source",
1467
+ # dest_i_ps: "Destination",
1468
+ # source_ports: "Port",
1469
+ # dest_ports: "Port",
1470
+ # rule_options: [
1471
+ # {
1472
+ # keyword: "Keyword", # required
1473
+ # settings: ["Setting"],
1474
+ # },
1475
+ # ],
1476
+ # accept_prior_hooks: false,
1477
+ # alert_enabled: false,
1478
+ # bypass_ips_enabled: false,
1479
+ # rule_metadata: {
1480
+ # rule_enabled: false,
1481
+ # rule_description: "RuleDescriptionText",
1482
+ # },
1483
+ # },
1484
+ # ],
1485
+ # rules_source_list: {
1486
+ # targets: ["CollectionMember_String"], # required
1487
+ # target_types: ["TLS_SNI"], # required, accepts TLS_SNI, HTTP_HOST, AWS_ROUTE_53_RESOLVED_DOMAIN
1488
+ # generated_rules_type: "ALLOWLIST", # required, accepts ALLOWLIST, DENYLIST, REJECTLIST, ALERTLIST
1489
+ # },
1490
+ # },
1491
+ # rule_variables: {
1492
+ # ip_sets: {
1493
+ # "RuleVariableName" => {
1494
+ # definition: ["VariableDefinition"], # required
1495
+ # },
1496
+ # },
1497
+ # port_sets: {
1498
+ # "RuleVariableName" => {
1499
+ # definition: ["VariableDefinition"],
1500
+ # },
1501
+ # },
1502
+ # },
1503
+ # reference_sets: {
1504
+ # ip_set_references: {
1505
+ # "IPSetReferenceName" => {
1506
+ # reference_arn: "ResourceArn",
1507
+ # },
1508
+ # },
1509
+ # },
1510
+ # },
1511
+ # },
1512
+ # ],
1513
+ # ips_rule_group_entries: [
1514
+ # {
1515
+ # resource_arn: "ResourceArn",
1516
+ # inline_rule_group: {
1517
+ # rules_source: { # required
1518
+ # rules_string: "RulesString",
1519
+ # },
1520
+ # rule_variables: {
1521
+ # ip_sets: {
1522
+ # "RuleVariableName" => {
1523
+ # definition: ["VariableDefinition"], # required
1524
+ # },
1525
+ # },
1526
+ # port_sets: {
1527
+ # "RuleVariableName" => {
1528
+ # definition: ["VariableDefinition"],
1529
+ # },
1530
+ # },
1531
+ # },
1532
+ # reference_sets: {
1533
+ # ip_set_references: {
1534
+ # "IPSetReferenceName" => {
1535
+ # reference_arn: "ResourceArn",
1536
+ # },
1537
+ # },
1538
+ # },
1539
+ # },
1540
+ # override: {
1541
+ # action: "DROP_TO_ALERT", # accepts DROP_TO_ALERT
1542
+ # },
1543
+ # },
1544
+ # ],
1545
+ # policy_mode: "ENFORCE", # accepts ENFORCE, MONITOR
1546
+ # firewall_default_action: "DROP", # accepts DROP, ACCEPT, REJECT, ALERT
1547
+ # stateful_engine_options: {
1548
+ # stream_exception_policy: "DROP", # accepts DROP, REJECT
1549
+ # flow_timeouts: {
1550
+ # tcp_idle_timeout_seconds: 1,
1551
+ # },
1552
+ # },
1553
+ # tls_inspection_configuration_arn: "ResourceArn",
1554
+ # policy_variables: {
1555
+ # rule_variables: {
1556
+ # "RuleVariableName" => {
1557
+ # definition: ["VariableDefinition"], # required
1558
+ # },
1559
+ # },
1560
+ # },
1561
+ # route_53_resolved_ip_validation: {
1562
+ # action: "REJECT", # required, accepts REJECT, DROP, ALERT
1563
+ # dns_firewall_rule_group_id: "DNSFirewallRuleGroupId", # required
1564
+ # dns_expiry_exception_policy: "REJECT", # required, accepts REJECT, DROP, CONTINUE
1565
+ # bypass_destination_validation_ip_ranges: [
1566
+ # {
1567
+ # address_definition: "AddressDefinition", # required
1568
+ # },
1569
+ # ],
1570
+ # source_ip_ranges: [
1571
+ # {
1572
+ # address_definition: "AddressDefinition", # required
1573
+ # },
1574
+ # ],
1575
+ # },
1576
+ # },
1577
+ # description: "Description",
1578
+ # tags: [
1579
+ # {
1580
+ # key: "TagKey", # required
1581
+ # value: "TagValue", # required
1582
+ # },
1583
+ # ],
1584
+ # dry_run: false,
1585
+ # encryption_configuration: {
1586
+ # key_id: "KeyId",
1587
+ # type: "CUSTOMER_KMS", # required, accepts CUSTOMER_KMS, AWS_OWNED_KMS_KEY
1588
+ # },
1589
+ # })
1590
+ #
1591
+ # @example Response structure
1592
+ #
1593
+ # resp.update_token #=> String
1594
+ # resp.firewall_policy_v2_response.firewall_policy_v2_name #=> String
1595
+ # resp.firewall_policy_v2_response.firewall_policy_v2_arn #=> String
1596
+ # resp.firewall_policy_v2_response.firewall_policy_v2_id #=> String
1597
+ # resp.firewall_policy_v2_response.description #=> String
1598
+ # resp.firewall_policy_v2_response.firewall_policy_v2_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
1599
+ # resp.firewall_policy_v2_response.status_message #=> String
1600
+ # resp.firewall_policy_v2_response.tags #=> Array
1601
+ # resp.firewall_policy_v2_response.tags[0].key #=> String
1602
+ # resp.firewall_policy_v2_response.tags[0].value #=> String
1603
+ # resp.firewall_policy_v2_response.consumed_firewall_rule_capacity #=> Integer
1604
+ # resp.firewall_policy_v2_response.consumed_ips_rule_capacity #=> Integer
1605
+ # resp.firewall_policy_v2_response.consumed_ips_domain_capacity #=> Integer
1606
+ # resp.firewall_policy_v2_response.number_of_associations #=> Integer
1607
+ # resp.firewall_policy_v2_response.encryption_configuration.key_id #=> String
1608
+ # resp.firewall_policy_v2_response.encryption_configuration.type #=> String, one of "CUSTOMER_KMS", "AWS_OWNED_KMS_KEY"
1609
+ # resp.firewall_policy_v2_response.errors #=> Array
1610
+ # resp.firewall_policy_v2_response.errors[0].code #=> String, one of "DNS_FIREWALL_RULE_GROUP_UNAVAILABLE", "ROUTE53_RESOLVED_IP_VALIDATION_MISSING"
1611
+ # resp.firewall_policy_v2_response.errors[0].message #=> String
1612
+ # resp.firewall_policy_v2_response.errors[0].resource_id #=> String
1613
+ # resp.firewall_policy_v2_response.last_modified_time #=> Time
1614
+ #
1615
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateFirewallPolicyV2 AWS API Documentation
1616
+ #
1617
+ # @overload create_firewall_policy_v2(params = {})
1618
+ # @param [Hash] params ({})
1619
+ def create_firewall_policy_v2(params = {}, options = {})
1620
+ req = build_request(:create_firewall_policy_v2, params)
1621
+ req.send_request(options)
1622
+ end
1623
+
1397
1624
  # Creates an Network Firewall Proxy
1398
1625
  #
1399
1626
  # Attaches a Proxy configuration to a NAT Gateway.
@@ -1875,6 +2102,14 @@ module Aws::NetworkFirewall
1875
2102
  #
1876
2103
  # </note>
1877
2104
  #
2105
+ # @option params [Types::FirewallRuleGroup] :firewall_rule_group
2106
+ # An object that defines the rules in a firewall engine rule group, for
2107
+ # use in a Next Generation policy.
2108
+ #
2109
+ # @option params [Types::IpsRuleGroup] :ips_rule_group
2110
+ # An object that defines the rules in an IPS engine rule group, for use
2111
+ # in a Next Generation policy.
2112
+ #
1878
2113
  # @option params [String] :rules
1879
2114
  # A string containing stateful rule group rules specifications in
1880
2115
  # Suricata flat format, with one rule per line. Use this to import your
@@ -1891,9 +2126,18 @@ module Aws::NetworkFirewall
1891
2126
  # populated from your string.
1892
2127
  #
1893
2128
  # @option params [required, String] :type
1894
- # Indicates whether the rule group is stateless or stateful. If the rule
1895
- # group is stateless, it contains stateless rules. If it is stateful, it
1896
- # contains stateful rules.
2129
+ # Indicates the type of the rule group. Valid values are:
2130
+ #
2131
+ # * `STATELESS` - Stateless rules, for use in a Classic Network Firewall
2132
+ # policy.
2133
+ #
2134
+ # * `STATEFUL` - Stateful rules, for use in a Classic Network Firewall
2135
+ # policy.
2136
+ #
2137
+ # * `FIREWALL` - Firewall engine rules, for use in a Next Generation
2138
+ # policy.
2139
+ #
2140
+ # * `IPS` - IPS engine rules, for use in a Next Generation policy.
1897
2141
  #
1898
2142
  # @option params [String] :description
1899
2143
  # A description of the rule group.
@@ -2106,8 +2350,86 @@ module Aws::NetworkFirewall
2106
2350
  # rule_order: "DEFAULT_ACTION_ORDER", # accepts DEFAULT_ACTION_ORDER, STRICT_ORDER
2107
2351
  # },
2108
2352
  # },
2353
+ # firewall_rule_group: {
2354
+ # rules_source: { # required
2355
+ # rules_string: "RulesString",
2356
+ # firewall_rules: [
2357
+ # {
2358
+ # action: "ACCEPT", # required, accepts ACCEPT, DROP, REJECT, REJECT_DST, REJECT_BOTH
2359
+ # action_scope: "FLOW", # required, accepts FLOW, TX, HOOK, PACKET
2360
+ # hook: "TCP_ALL", # required, accepts TCP_ALL, TCP_FLOW_START, TCP_PRE_FLOW, TCP_PRE_STREAM, SCTP_ALL, SCTP_FLOW_START, SCTP_PRE_FLOW, SCTP_PRE_STREAM, IPV6_ALL, IPV6_FLOW_START, IPV6_PRE_FLOW, IPV6_PRE_STREAM, ICMPV6_ALL, ICMPV6_FLOW_START, ICMPV6_PRE_FLOW, ICMPV6_PRE_STREAM, UDP_ALL, UDP_FLOW_START, UDP_PRE_FLOW, UDP_PRE_STREAM, ICMP_ALL, ICMP_FLOW_START, ICMP_PRE_FLOW, ICMP_PRE_STREAM, ICMPV4_ALL, ICMPV4_FLOW_START, ICMPV4_PRE_FLOW, ICMPV4_PRE_STREAM, IP_ALL, IP_FLOW_START, IP_PRE_FLOW, IP_PRE_STREAM, IPV4_ALL, IPV4_FLOW_START, IPV4_PRE_FLOW, IPV4_PRE_STREAM, TLS_CLIENT_STARTED, TLS_CLIENT_HELLO, TLS_CLIENT_CERT, TLS_CLIENT_DATA, TLS_CLIENT_FINISHED, TLS_SERVER_STARTED, TLS_SERVER_HELLO, TLS_SERVER_CERT, TLS_SERVER_DATA, TLS_SERVER_FINISHED, HTTP1_REQUEST_STARTED, HTTP1_REQUEST_LINE, HTTP1_REQUEST_HEADERS, HTTP1_REQUEST_BODY, HTTP1_REQUEST_TRAILER, HTTP1_REQUEST_COMPLETE, HTTP1_RESPONSE_STARTED, HTTP1_RESPONSE_LINE, HTTP1_RESPONSE_HEADERS, HTTP1_RESPONSE_BODY, HTTP1_RESPONSE_TRAILER, HTTP1_RESPONSE_COMPLETE, HTTP2_STREAM_REQUEST_STARTED, HTTP2_STREAM_REQUEST_HEADERS, HTTP2_STREAM_REQUEST_DATA, HTTP2_STREAM_REQUEST_CLOSED, HTTP2_STREAM_REQUEST_COMPLETE, HTTP2_STREAM_RESPONSE_STARTED, HTTP2_STREAM_RESPONSE_HEADERS, HTTP2_STREAM_RESPONSE_DATA, HTTP2_STREAM_RESPONSE_CLOSED, HTTP2_STREAM_RESPONSE_COMPLETE, HTTP2_GLOBAL_REQUEST_STARTED, HTTP2_GLOBAL_REQUEST_COMPLETE, HTTP2_GLOBAL_RESPONSE_STARTED, HTTP2_GLOBAL_RESPONSE_COMPLETE, DOH2_STREAM_REQUEST_STARTED, DOH2_STREAM_REQUEST_HEADERS, DOH2_STREAM_REQUEST_DATA, DOH2_STREAM_REQUEST_CLOSED, DOH2_STREAM_REQUEST_COMPLETE, DOH2_STREAM_RESPONSE_STARTED, DOH2_STREAM_RESPONSE_HEADERS, DOH2_STREAM_RESPONSE_DATA, DOH2_STREAM_RESPONSE_CLOSED, DOH2_STREAM_RESPONSE_COMPLETE, DOH2_GLOBAL_REQUEST_STARTED, DOH2_GLOBAL_REQUEST_COMPLETE, DOH2_GLOBAL_RESPONSE_STARTED, DOH2_GLOBAL_RESPONSE_COMPLETE, DNS_REQUEST_STARTED, DNS_REQUEST_COMPLETE, DNS_RESPONSE_STARTED, DNS_RESPONSE_COMPLETE, SMTP_REQUEST_STARTED, SMTP_REQUEST_DATA, SMTP_REQUEST_COMPLETE, SMTP_RESPONSE_STARTED, SMTP_RESPONSE_DATA, SMTP_RESPONSE_COMPLETE, FTP_REQUEST_STARTED, FTP_REQUEST_COMPLETE, FTP_RESPONSE_STARTED, FTP_RESPONSE_COMPLETE, FTP_DATA_REQUEST_STARTED, FTP_DATA_REQUEST_COMPLETE, FTP_DATA_RESPONSE_STARTED, FTP_DATA_RESPONSE_COMPLETE, SMB_REQUEST_STARTED, SMB_REQUEST_COMPLETE, SMB_RESPONSE_STARTED, SMB_RESPONSE_COMPLETE, DCERPC_REQUEST_STARTED, DCERPC_REQUEST_COMPLETE, DCERPC_RESPONSE_STARTED, DCERPC_RESPONSE_COMPLETE, NFS_REQUEST_STARTED, NFS_REQUEST_COMPLETE, NFS_RESPONSE_STARTED, NFS_RESPONSE_COMPLETE, KRB5_REQUEST_STARTED, KRB5_REQUEST_COMPLETE, KRB5_RESPONSE_STARTED, KRB5_RESPONSE_COMPLETE, IKE_REQUEST_STARTED, IKE_REQUEST_COMPLETE, IKE_RESPONSE_STARTED, IKE_RESPONSE_COMPLETE, TFTP_REQUEST_STARTED, TFTP_REQUEST_COMPLETE, TFTP_RESPONSE_STARTED, TFTP_RESPONSE_COMPLETE, DHCP_REQUEST_STARTED, DHCP_REQUEST_COMPLETE, DHCP_RESPONSE_STARTED, DHCP_RESPONSE_COMPLETE, QUIC_REQUEST_STARTED, QUIC_REQUEST_COMPLETE, QUIC_RESPONSE_STARTED, QUIC_RESPONSE_COMPLETE, RDP_REQUEST_STARTED, RDP_REQUEST_COMPLETE, RDP_RESPONSE_STARTED, RDP_RESPONSE_COMPLETE, RFB_REQUEST_STARTED, RFB_REQUEST_COMPLETE, RFB_RESPONSE_STARTED, RFB_RESPONSE_COMPLETE, MQTT_REQUEST_STARTED, MQTT_REQUEST_COMPLETE, MQTT_RESPONSE_STARTED, MQTT_RESPONSE_COMPLETE, PGSQL_REQUEST_STARTED, PGSQL_REQUEST_COMPLETE, PGSQL_RESPONSE_STARTED, PGSQL_RESPONSE_COMPLETE, SNMP_REQUEST_STARTED, SNMP_REQUEST_COMPLETE, SNMP_RESPONSE_STARTED, SNMP_RESPONSE_COMPLETE, NTP_REQUEST_STARTED, NTP_REQUEST_COMPLETE, NTP_RESPONSE_STARTED, NTP_RESPONSE_COMPLETE, TELNET_REQUEST_STARTED, TELNET_REQUEST_COMPLETE, TELNET_RESPONSE_STARTED, TELNET_RESPONSE_COMPLETE, WEBSOCKET_REQUEST_STARTED, WEBSOCKET_REQUEST_COMPLETE, WEBSOCKET_RESPONSE_STARTED, WEBSOCKET_RESPONSE_COMPLETE, LDAP_REQUEST_STARTED, LDAP_REQUEST_COMPLETE, LDAP_RESPONSE_STARTED, LDAP_RESPONSE_COMPLETE, POP3_REQUEST_STARTED, POP3_REQUEST_COMPLETE, POP3_RESPONSE_STARTED, POP3_RESPONSE_COMPLETE, MDNS_REQUEST_STARTED, MDNS_REQUEST_COMPLETE, MDNS_RESPONSE_STARTED, MDNS_RESPONSE_COMPLETE, BITTORRENT_DHT_REQUEST_STARTED, BITTORRENT_DHT_REQUEST_COMPLETE, BITTORRENT_DHT_RESPONSE_STARTED, BITTORRENT_DHT_RESPONSE_COMPLETE, DNP3_REQUEST_STARTED, DNP3_REQUEST_COMPLETE, DNP3_RESPONSE_STARTED, DNP3_RESPONSE_COMPLETE, SSH_REQUEST_IN_PROGRESS, SSH_REQUEST_BANNER_WAIT_EOL, SSH_REQUEST_BANNER_DONE, SSH_REQUEST_FINISHED, SSH_RESPONSE_IN_PROGRESS, SSH_RESPONSE_BANNER_WAIT_EOL, SSH_RESPONSE_BANNER_DONE, SSH_RESPONSE_FINISHED
2361
+ # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP, HTTP2, QUIC, ICMPV4, ICMPV6, SCTP, IPV4, IPV6, DOH2, FTP_DATA, NFS, RDP, RFB, MQTT, PGSQL, SNMP, TELNET, WEBSOCKET, LDAP, POP3, MDNS, BITTORRENT_DHT, DNP3
2362
+ # source_i_ps: "Source",
2363
+ # dest_i_ps: "Destination",
2364
+ # source_ports: "Port",
2365
+ # dest_ports: "Port",
2366
+ # rule_options: [
2367
+ # {
2368
+ # keyword: "Keyword", # required
2369
+ # settings: ["Setting"],
2370
+ # },
2371
+ # ],
2372
+ # accept_prior_hooks: false,
2373
+ # alert_enabled: false,
2374
+ # bypass_ips_enabled: false,
2375
+ # rule_metadata: {
2376
+ # rule_enabled: false,
2377
+ # rule_description: "RuleDescriptionText",
2378
+ # },
2379
+ # },
2380
+ # ],
2381
+ # rules_source_list: {
2382
+ # targets: ["CollectionMember_String"], # required
2383
+ # target_types: ["TLS_SNI"], # required, accepts TLS_SNI, HTTP_HOST, AWS_ROUTE_53_RESOLVED_DOMAIN
2384
+ # generated_rules_type: "ALLOWLIST", # required, accepts ALLOWLIST, DENYLIST, REJECTLIST, ALERTLIST
2385
+ # },
2386
+ # },
2387
+ # rule_variables: {
2388
+ # ip_sets: {
2389
+ # "RuleVariableName" => {
2390
+ # definition: ["VariableDefinition"], # required
2391
+ # },
2392
+ # },
2393
+ # port_sets: {
2394
+ # "RuleVariableName" => {
2395
+ # definition: ["VariableDefinition"],
2396
+ # },
2397
+ # },
2398
+ # },
2399
+ # reference_sets: {
2400
+ # ip_set_references: {
2401
+ # "IPSetReferenceName" => {
2402
+ # reference_arn: "ResourceArn",
2403
+ # },
2404
+ # },
2405
+ # },
2406
+ # },
2407
+ # ips_rule_group: {
2408
+ # rules_source: { # required
2409
+ # rules_string: "RulesString",
2410
+ # },
2411
+ # rule_variables: {
2412
+ # ip_sets: {
2413
+ # "RuleVariableName" => {
2414
+ # definition: ["VariableDefinition"], # required
2415
+ # },
2416
+ # },
2417
+ # port_sets: {
2418
+ # "RuleVariableName" => {
2419
+ # definition: ["VariableDefinition"],
2420
+ # },
2421
+ # },
2422
+ # },
2423
+ # reference_sets: {
2424
+ # ip_set_references: {
2425
+ # "IPSetReferenceName" => {
2426
+ # reference_arn: "ResourceArn",
2427
+ # },
2428
+ # },
2429
+ # },
2430
+ # },
2109
2431
  # rules: "RulesString",
2110
- # type: "STATELESS", # required, accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
2432
+ # type: "STATELESS", # required, accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
2111
2433
  # description: "Description",
2112
2434
  # capacity: 1, # required
2113
2435
  # tags: [
@@ -2138,7 +2460,7 @@ module Aws::NetworkFirewall
2138
2460
  # resp.rule_group_response.rule_group_name #=> String
2139
2461
  # resp.rule_group_response.rule_group_id #=> String
2140
2462
  # resp.rule_group_response.description #=> String
2141
- # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN"
2463
+ # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN", "FIREWALL", "IPS"
2142
2464
  # resp.rule_group_response.capacity #=> Integer
2143
2465
  # resp.rule_group_response.rule_group_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
2144
2466
  # resp.rule_group_response.tags #=> Array
@@ -2363,9 +2685,9 @@ module Aws::NetworkFirewall
2363
2685
  #
2364
2686
  # @option params [required, Types::SubnetMapping] :subnet_mapping
2365
2687
  # The ID for a subnet that's used in an association with a firewall.
2366
- # This is used in CreateFirewall, AssociateSubnets, and
2367
- # CreateVpcEndpointAssociation. Network Firewall creates an instance of
2368
- # the associated firewall in each subnet that you specify, to filter
2688
+ # This is used in `CreateFirewall`, `AssociateSubnets`, and
2689
+ # `CreateVpcEndpointAssociation`. Network Firewall creates an instance
2690
+ # of the associated firewall in each subnet that you specify, to filter
2369
2691
  # traffic in the subnet's Availability Zone.
2370
2692
  #
2371
2693
  # @option params [String] :description
@@ -2634,6 +2956,62 @@ module Aws::NetworkFirewall
2634
2956
  req.send_request(options)
2635
2957
  end
2636
2958
 
2959
+ # Deletes the specified FirewallPolicyV2.
2960
+ #
2961
+ # @option params [String] :firewall_policy_v2_arn
2962
+ # The Amazon Resource Name (ARN) of the Next Generation policy.
2963
+ #
2964
+ # You must specify the ARN or the name, and you can specify both.
2965
+ #
2966
+ # @option params [String] :firewall_policy_v2_name
2967
+ # The descriptive name of the Next Generation policy. You can't change
2968
+ # the name of a firewall policy after you create it.
2969
+ #
2970
+ # You must specify the ARN or the name, and you can specify both.
2971
+ #
2972
+ # @return [Types::DeleteFirewallPolicyV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2973
+ #
2974
+ # * {Types::DeleteFirewallPolicyV2Response#firewall_policy_v2_response #firewall_policy_v2_response} => Types::FirewallPolicyV2Response
2975
+ #
2976
+ # @example Request syntax with placeholder values
2977
+ #
2978
+ # resp = client.delete_firewall_policy_v2({
2979
+ # firewall_policy_v2_arn: "ResourceArn",
2980
+ # firewall_policy_v2_name: "ResourceName",
2981
+ # })
2982
+ #
2983
+ # @example Response structure
2984
+ #
2985
+ # resp.firewall_policy_v2_response.firewall_policy_v2_name #=> String
2986
+ # resp.firewall_policy_v2_response.firewall_policy_v2_arn #=> String
2987
+ # resp.firewall_policy_v2_response.firewall_policy_v2_id #=> String
2988
+ # resp.firewall_policy_v2_response.description #=> String
2989
+ # resp.firewall_policy_v2_response.firewall_policy_v2_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
2990
+ # resp.firewall_policy_v2_response.status_message #=> String
2991
+ # resp.firewall_policy_v2_response.tags #=> Array
2992
+ # resp.firewall_policy_v2_response.tags[0].key #=> String
2993
+ # resp.firewall_policy_v2_response.tags[0].value #=> String
2994
+ # resp.firewall_policy_v2_response.consumed_firewall_rule_capacity #=> Integer
2995
+ # resp.firewall_policy_v2_response.consumed_ips_rule_capacity #=> Integer
2996
+ # resp.firewall_policy_v2_response.consumed_ips_domain_capacity #=> Integer
2997
+ # resp.firewall_policy_v2_response.number_of_associations #=> Integer
2998
+ # resp.firewall_policy_v2_response.encryption_configuration.key_id #=> String
2999
+ # resp.firewall_policy_v2_response.encryption_configuration.type #=> String, one of "CUSTOMER_KMS", "AWS_OWNED_KMS_KEY"
3000
+ # resp.firewall_policy_v2_response.errors #=> Array
3001
+ # resp.firewall_policy_v2_response.errors[0].code #=> String, one of "DNS_FIREWALL_RULE_GROUP_UNAVAILABLE", "ROUTE53_RESOLVED_IP_VALIDATION_MISSING"
3002
+ # resp.firewall_policy_v2_response.errors[0].message #=> String
3003
+ # resp.firewall_policy_v2_response.errors[0].resource_id #=> String
3004
+ # resp.firewall_policy_v2_response.last_modified_time #=> Time
3005
+ #
3006
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewallPolicyV2 AWS API Documentation
3007
+ #
3008
+ # @overload delete_firewall_policy_v2(params = {})
3009
+ # @param [Hash] params ({})
3010
+ def delete_firewall_policy_v2(params = {}, options = {})
3011
+ req = build_request(:delete_firewall_policy_v2, params)
3012
+ req.send_request(options)
3013
+ end
3014
+
2637
3015
  # Deletes a transit gateway attachment from a Network Firewall. Either
2638
3016
  # the firewall owner or the transit gateway owner can delete the
2639
3017
  # attachment.
@@ -2912,9 +3290,18 @@ module Aws::NetworkFirewall
2912
3290
  # You must specify the ARN or the name, and you can specify both.
2913
3291
  #
2914
3292
  # @option params [String] :type
2915
- # Indicates whether the rule group is stateless or stateful. If the rule
2916
- # group is stateless, it contains stateless rules. If it is stateful, it
2917
- # contains stateful rules.
3293
+ # Indicates the type of the rule group. Valid values are:
3294
+ #
3295
+ # * `STATELESS` - Stateless rules, for use in a Classic Network Firewall
3296
+ # policy.
3297
+ #
3298
+ # * `STATEFUL` - Stateful rules, for use in a Classic Network Firewall
3299
+ # policy.
3300
+ #
3301
+ # * `FIREWALL` - Firewall engine rules, for use in a Next Generation
3302
+ # policy.
3303
+ #
3304
+ # * `IPS` - IPS engine rules, for use in a Next Generation policy.
2918
3305
  #
2919
3306
  # <note markdown="1"> This setting is required for requests that do not include the
2920
3307
  # `RuleGroupARN`.
@@ -2930,7 +3317,7 @@ module Aws::NetworkFirewall
2930
3317
  # resp = client.delete_rule_group({
2931
3318
  # rule_group_name: "ResourceName",
2932
3319
  # rule_group_arn: "ResourceArn",
2933
- # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
3320
+ # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
2934
3321
  # })
2935
3322
  #
2936
3323
  # @example Response structure
@@ -2939,7 +3326,7 @@ module Aws::NetworkFirewall
2939
3326
  # resp.rule_group_response.rule_group_name #=> String
2940
3327
  # resp.rule_group_response.rule_group_id #=> String
2941
3328
  # resp.rule_group_response.description #=> String
2942
- # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN"
3329
+ # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN", "FIREWALL", "IPS"
2943
3330
  # resp.rule_group_response.capacity #=> Integer
2944
3331
  # resp.rule_group_response.rule_group_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
2945
3332
  # resp.rule_group_response.tags #=> Array
@@ -3375,6 +3762,136 @@ module Aws::NetworkFirewall
3375
3762
  req.send_request(options)
3376
3763
  end
3377
3764
 
3765
+ # Returns the data objects for the specified Next Generation policy.
3766
+ #
3767
+ # @option params [String] :firewall_policy_v2_arn
3768
+ # The Amazon Resource Name (ARN) of the Next Generation policy.
3769
+ #
3770
+ # You must specify the ARN or the name, and you can specify both.
3771
+ #
3772
+ # @option params [String] :firewall_policy_v2_name
3773
+ # The descriptive name of the Next Generation policy. You can't change
3774
+ # the name of a firewall policy after you create it.
3775
+ #
3776
+ # You must specify the ARN or the name, and you can specify both.
3777
+ #
3778
+ # @option params [String] :rule_output_format
3779
+ # The format in which to return the rules of any firewall engine rule
3780
+ # groups that are embedded in the policy. Specify `FIREWALL_RULES` for
3781
+ # structured `FirewallRule` objects or `RULES_STRING` for a
3782
+ # Suricata-compatible firewall-mode rule string. If you don't specify a
3783
+ # format, Network Firewall returns each embedded rule group in the
3784
+ # format you provided it in. Referenced rule groups aren't affected.
3785
+ #
3786
+ # @return [Types::DescribeFirewallPolicyV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3787
+ #
3788
+ # * {Types::DescribeFirewallPolicyV2Response#update_token #update_token} => String
3789
+ # * {Types::DescribeFirewallPolicyV2Response#firewall_policy_v2_response #firewall_policy_v2_response} => Types::FirewallPolicyV2Response
3790
+ # * {Types::DescribeFirewallPolicyV2Response#firewall_policy_v2 #firewall_policy_v2} => Types::FirewallPolicyV2
3791
+ #
3792
+ # @example Request syntax with placeholder values
3793
+ #
3794
+ # resp = client.describe_firewall_policy_v2({
3795
+ # firewall_policy_v2_arn: "ResourceArn",
3796
+ # firewall_policy_v2_name: "ResourceName",
3797
+ # rule_output_format: "FIREWALL_RULES", # accepts FIREWALL_RULES, RULES_STRING
3798
+ # })
3799
+ #
3800
+ # @example Response structure
3801
+ #
3802
+ # resp.update_token #=> String
3803
+ # resp.firewall_policy_v2_response.firewall_policy_v2_name #=> String
3804
+ # resp.firewall_policy_v2_response.firewall_policy_v2_arn #=> String
3805
+ # resp.firewall_policy_v2_response.firewall_policy_v2_id #=> String
3806
+ # resp.firewall_policy_v2_response.description #=> String
3807
+ # resp.firewall_policy_v2_response.firewall_policy_v2_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
3808
+ # resp.firewall_policy_v2_response.status_message #=> String
3809
+ # resp.firewall_policy_v2_response.tags #=> Array
3810
+ # resp.firewall_policy_v2_response.tags[0].key #=> String
3811
+ # resp.firewall_policy_v2_response.tags[0].value #=> String
3812
+ # resp.firewall_policy_v2_response.consumed_firewall_rule_capacity #=> Integer
3813
+ # resp.firewall_policy_v2_response.consumed_ips_rule_capacity #=> Integer
3814
+ # resp.firewall_policy_v2_response.consumed_ips_domain_capacity #=> Integer
3815
+ # resp.firewall_policy_v2_response.number_of_associations #=> Integer
3816
+ # resp.firewall_policy_v2_response.encryption_configuration.key_id #=> String
3817
+ # resp.firewall_policy_v2_response.encryption_configuration.type #=> String, one of "CUSTOMER_KMS", "AWS_OWNED_KMS_KEY"
3818
+ # resp.firewall_policy_v2_response.errors #=> Array
3819
+ # resp.firewall_policy_v2_response.errors[0].code #=> String, one of "DNS_FIREWALL_RULE_GROUP_UNAVAILABLE", "ROUTE53_RESOLVED_IP_VALIDATION_MISSING"
3820
+ # resp.firewall_policy_v2_response.errors[0].message #=> String
3821
+ # resp.firewall_policy_v2_response.errors[0].resource_id #=> String
3822
+ # resp.firewall_policy_v2_response.last_modified_time #=> Time
3823
+ # resp.firewall_policy_v2.firewall_rule_group_entries #=> Array
3824
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].priority #=> Integer
3825
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].resource_arn #=> String
3826
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.rules_string #=> String
3827
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules #=> Array
3828
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].action #=> String, one of "ACCEPT", "DROP", "REJECT", "REJECT_DST", "REJECT_BOTH"
3829
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].action_scope #=> String, one of "FLOW", "TX", "HOOK", "PACKET"
3830
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].hook #=> String, one of "TCP_ALL", "TCP_FLOW_START", "TCP_PRE_FLOW", "TCP_PRE_STREAM", "SCTP_ALL", "SCTP_FLOW_START", "SCTP_PRE_FLOW", "SCTP_PRE_STREAM", "IPV6_ALL", "IPV6_FLOW_START", "IPV6_PRE_FLOW", "IPV6_PRE_STREAM", "ICMPV6_ALL", "ICMPV6_FLOW_START", "ICMPV6_PRE_FLOW", "ICMPV6_PRE_STREAM", "UDP_ALL", "UDP_FLOW_START", "UDP_PRE_FLOW", "UDP_PRE_STREAM", "ICMP_ALL", "ICMP_FLOW_START", "ICMP_PRE_FLOW", "ICMP_PRE_STREAM", "ICMPV4_ALL", "ICMPV4_FLOW_START", "ICMPV4_PRE_FLOW", "ICMPV4_PRE_STREAM", "IP_ALL", "IP_FLOW_START", "IP_PRE_FLOW", "IP_PRE_STREAM", "IPV4_ALL", "IPV4_FLOW_START", "IPV4_PRE_FLOW", "IPV4_PRE_STREAM", "TLS_CLIENT_STARTED", "TLS_CLIENT_HELLO", "TLS_CLIENT_CERT", "TLS_CLIENT_DATA", "TLS_CLIENT_FINISHED", "TLS_SERVER_STARTED", "TLS_SERVER_HELLO", "TLS_SERVER_CERT", "TLS_SERVER_DATA", "TLS_SERVER_FINISHED", "HTTP1_REQUEST_STARTED", "HTTP1_REQUEST_LINE", "HTTP1_REQUEST_HEADERS", "HTTP1_REQUEST_BODY", "HTTP1_REQUEST_TRAILER", "HTTP1_REQUEST_COMPLETE", "HTTP1_RESPONSE_STARTED", "HTTP1_RESPONSE_LINE", "HTTP1_RESPONSE_HEADERS", "HTTP1_RESPONSE_BODY", "HTTP1_RESPONSE_TRAILER", "HTTP1_RESPONSE_COMPLETE", "HTTP2_STREAM_REQUEST_STARTED", "HTTP2_STREAM_REQUEST_HEADERS", "HTTP2_STREAM_REQUEST_DATA", "HTTP2_STREAM_REQUEST_CLOSED", "HTTP2_STREAM_REQUEST_COMPLETE", "HTTP2_STREAM_RESPONSE_STARTED", "HTTP2_STREAM_RESPONSE_HEADERS", "HTTP2_STREAM_RESPONSE_DATA", "HTTP2_STREAM_RESPONSE_CLOSED", "HTTP2_STREAM_RESPONSE_COMPLETE", "HTTP2_GLOBAL_REQUEST_STARTED", "HTTP2_GLOBAL_REQUEST_COMPLETE", "HTTP2_GLOBAL_RESPONSE_STARTED", "HTTP2_GLOBAL_RESPONSE_COMPLETE", "DOH2_STREAM_REQUEST_STARTED", "DOH2_STREAM_REQUEST_HEADERS", "DOH2_STREAM_REQUEST_DATA", "DOH2_STREAM_REQUEST_CLOSED", "DOH2_STREAM_REQUEST_COMPLETE", "DOH2_STREAM_RESPONSE_STARTED", "DOH2_STREAM_RESPONSE_HEADERS", "DOH2_STREAM_RESPONSE_DATA", "DOH2_STREAM_RESPONSE_CLOSED", "DOH2_STREAM_RESPONSE_COMPLETE", "DOH2_GLOBAL_REQUEST_STARTED", "DOH2_GLOBAL_REQUEST_COMPLETE", "DOH2_GLOBAL_RESPONSE_STARTED", "DOH2_GLOBAL_RESPONSE_COMPLETE", "DNS_REQUEST_STARTED", "DNS_REQUEST_COMPLETE", "DNS_RESPONSE_STARTED", "DNS_RESPONSE_COMPLETE", "SMTP_REQUEST_STARTED", "SMTP_REQUEST_DATA", "SMTP_REQUEST_COMPLETE", "SMTP_RESPONSE_STARTED", "SMTP_RESPONSE_DATA", "SMTP_RESPONSE_COMPLETE", "FTP_REQUEST_STARTED", "FTP_REQUEST_COMPLETE", "FTP_RESPONSE_STARTED", "FTP_RESPONSE_COMPLETE", "FTP_DATA_REQUEST_STARTED", "FTP_DATA_REQUEST_COMPLETE", "FTP_DATA_RESPONSE_STARTED", "FTP_DATA_RESPONSE_COMPLETE", "SMB_REQUEST_STARTED", "SMB_REQUEST_COMPLETE", "SMB_RESPONSE_STARTED", "SMB_RESPONSE_COMPLETE", "DCERPC_REQUEST_STARTED", "DCERPC_REQUEST_COMPLETE", "DCERPC_RESPONSE_STARTED", "DCERPC_RESPONSE_COMPLETE", "NFS_REQUEST_STARTED", "NFS_REQUEST_COMPLETE", "NFS_RESPONSE_STARTED", "NFS_RESPONSE_COMPLETE", "KRB5_REQUEST_STARTED", "KRB5_REQUEST_COMPLETE", "KRB5_RESPONSE_STARTED", "KRB5_RESPONSE_COMPLETE", "IKE_REQUEST_STARTED", "IKE_REQUEST_COMPLETE", "IKE_RESPONSE_STARTED", "IKE_RESPONSE_COMPLETE", "TFTP_REQUEST_STARTED", "TFTP_REQUEST_COMPLETE", "TFTP_RESPONSE_STARTED", "TFTP_RESPONSE_COMPLETE", "DHCP_REQUEST_STARTED", "DHCP_REQUEST_COMPLETE", "DHCP_RESPONSE_STARTED", "DHCP_RESPONSE_COMPLETE", "QUIC_REQUEST_STARTED", "QUIC_REQUEST_COMPLETE", "QUIC_RESPONSE_STARTED", "QUIC_RESPONSE_COMPLETE", "RDP_REQUEST_STARTED", "RDP_REQUEST_COMPLETE", "RDP_RESPONSE_STARTED", "RDP_RESPONSE_COMPLETE", "RFB_REQUEST_STARTED", "RFB_REQUEST_COMPLETE", "RFB_RESPONSE_STARTED", "RFB_RESPONSE_COMPLETE", "MQTT_REQUEST_STARTED", "MQTT_REQUEST_COMPLETE", "MQTT_RESPONSE_STARTED", "MQTT_RESPONSE_COMPLETE", "PGSQL_REQUEST_STARTED", "PGSQL_REQUEST_COMPLETE", "PGSQL_RESPONSE_STARTED", "PGSQL_RESPONSE_COMPLETE", "SNMP_REQUEST_STARTED", "SNMP_REQUEST_COMPLETE", "SNMP_RESPONSE_STARTED", "SNMP_RESPONSE_COMPLETE", "NTP_REQUEST_STARTED", "NTP_REQUEST_COMPLETE", "NTP_RESPONSE_STARTED", "NTP_RESPONSE_COMPLETE", "TELNET_REQUEST_STARTED", "TELNET_REQUEST_COMPLETE", "TELNET_RESPONSE_STARTED", "TELNET_RESPONSE_COMPLETE", "WEBSOCKET_REQUEST_STARTED", "WEBSOCKET_REQUEST_COMPLETE", "WEBSOCKET_RESPONSE_STARTED", "WEBSOCKET_RESPONSE_COMPLETE", "LDAP_REQUEST_STARTED", "LDAP_REQUEST_COMPLETE", "LDAP_RESPONSE_STARTED", "LDAP_RESPONSE_COMPLETE", "POP3_REQUEST_STARTED", "POP3_REQUEST_COMPLETE", "POP3_RESPONSE_STARTED", "POP3_RESPONSE_COMPLETE", "MDNS_REQUEST_STARTED", "MDNS_REQUEST_COMPLETE", "MDNS_RESPONSE_STARTED", "MDNS_RESPONSE_COMPLETE", "BITTORRENT_DHT_REQUEST_STARTED", "BITTORRENT_DHT_REQUEST_COMPLETE", "BITTORRENT_DHT_RESPONSE_STARTED", "BITTORRENT_DHT_RESPONSE_COMPLETE", "DNP3_REQUEST_STARTED", "DNP3_REQUEST_COMPLETE", "DNP3_RESPONSE_STARTED", "DNP3_RESPONSE_COMPLETE", "SSH_REQUEST_IN_PROGRESS", "SSH_REQUEST_BANNER_WAIT_EOL", "SSH_REQUEST_BANNER_DONE", "SSH_REQUEST_FINISHED", "SSH_RESPONSE_IN_PROGRESS", "SSH_RESPONSE_BANNER_WAIT_EOL", "SSH_RESPONSE_BANNER_DONE", "SSH_RESPONSE_FINISHED"
3831
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].protocol #=> String, one of "IP", "TCP", "UDP", "ICMP", "HTTP", "FTP", "TLS", "SMB", "DNS", "DCERPC", "SSH", "SMTP", "MSN", "KRB5", "IKEV2", "TFTP", "NTP", "DHCP", "HTTP2", "QUIC", "ICMPV4", "ICMPV6", "SCTP", "IPV4", "IPV6", "DOH2", "FTP_DATA", "NFS", "RDP", "RFB", "MQTT", "PGSQL", "SNMP", "TELNET", "WEBSOCKET", "LDAP", "POP3", "MDNS", "BITTORRENT_DHT", "DNP3"
3832
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].source_i_ps #=> String
3833
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].dest_i_ps #=> String
3834
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].source_ports #=> String
3835
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].dest_ports #=> String
3836
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].rule_options #=> Array
3837
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].rule_options[0].keyword #=> String
3838
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].rule_options[0].settings #=> Array
3839
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].rule_options[0].settings[0] #=> String
3840
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].accept_prior_hooks #=> Boolean
3841
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].alert_enabled #=> Boolean
3842
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].bypass_ips_enabled #=> Boolean
3843
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].rule_metadata.rule_enabled #=> Boolean
3844
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.firewall_rules[0].rule_metadata.rule_description #=> String
3845
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.rules_source_list.targets #=> Array
3846
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.rules_source_list.targets[0] #=> String
3847
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.rules_source_list.target_types #=> Array
3848
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.rules_source_list.target_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST", "AWS_ROUTE_53_RESOLVED_DOMAIN"
3849
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rules_source.rules_source_list.generated_rules_type #=> String, one of "ALLOWLIST", "DENYLIST", "REJECTLIST", "ALERTLIST"
3850
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rule_variables.ip_sets #=> Hash
3851
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rule_variables.ip_sets["RuleVariableName"].definition #=> Array
3852
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rule_variables.ip_sets["RuleVariableName"].definition[0] #=> String
3853
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rule_variables.port_sets #=> Hash
3854
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rule_variables.port_sets["RuleVariableName"].definition #=> Array
3855
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.rule_variables.port_sets["RuleVariableName"].definition[0] #=> String
3856
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.reference_sets.ip_set_references #=> Hash
3857
+ # resp.firewall_policy_v2.firewall_rule_group_entries[0].inline_rule_group.reference_sets.ip_set_references["IPSetReferenceName"].reference_arn #=> String
3858
+ # resp.firewall_policy_v2.ips_rule_group_entries #=> Array
3859
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].resource_arn #=> String
3860
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rules_source.rules_string #=> String
3861
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rule_variables.ip_sets #=> Hash
3862
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rule_variables.ip_sets["RuleVariableName"].definition #=> Array
3863
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rule_variables.ip_sets["RuleVariableName"].definition[0] #=> String
3864
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rule_variables.port_sets #=> Hash
3865
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rule_variables.port_sets["RuleVariableName"].definition #=> Array
3866
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.rule_variables.port_sets["RuleVariableName"].definition[0] #=> String
3867
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.reference_sets.ip_set_references #=> Hash
3868
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].inline_rule_group.reference_sets.ip_set_references["IPSetReferenceName"].reference_arn #=> String
3869
+ # resp.firewall_policy_v2.ips_rule_group_entries[0].override.action #=> String, one of "DROP_TO_ALERT"
3870
+ # resp.firewall_policy_v2.policy_mode #=> String, one of "ENFORCE", "MONITOR"
3871
+ # resp.firewall_policy_v2.firewall_default_action #=> String, one of "DROP", "ACCEPT", "REJECT", "ALERT"
3872
+ # resp.firewall_policy_v2.stateful_engine_options.stream_exception_policy #=> String, one of "DROP", "REJECT"
3873
+ # resp.firewall_policy_v2.stateful_engine_options.flow_timeouts.tcp_idle_timeout_seconds #=> Integer
3874
+ # resp.firewall_policy_v2.tls_inspection_configuration_arn #=> String
3875
+ # resp.firewall_policy_v2.policy_variables.rule_variables #=> Hash
3876
+ # resp.firewall_policy_v2.policy_variables.rule_variables["RuleVariableName"].definition #=> Array
3877
+ # resp.firewall_policy_v2.policy_variables.rule_variables["RuleVariableName"].definition[0] #=> String
3878
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.action #=> String, one of "REJECT", "DROP", "ALERT"
3879
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.dns_firewall_rule_group_id #=> String
3880
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.dns_expiry_exception_policy #=> String, one of "REJECT", "DROP", "CONTINUE"
3881
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.bypass_destination_validation_ip_ranges #=> Array
3882
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.bypass_destination_validation_ip_ranges[0].address_definition #=> String
3883
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.source_ip_ranges #=> Array
3884
+ # resp.firewall_policy_v2.route_53_resolved_ip_validation.source_ip_ranges[0].address_definition #=> String
3885
+ #
3886
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewallPolicyV2 AWS API Documentation
3887
+ #
3888
+ # @overload describe_firewall_policy_v2(params = {})
3889
+ # @param [Hash] params ({})
3890
+ def describe_firewall_policy_v2(params = {}, options = {})
3891
+ req = build_request(:describe_firewall_policy_v2, params)
3892
+ req.send_request(options)
3893
+ end
3894
+
3378
3895
  # Returns key information about a specific flow operation.
3379
3896
  #
3380
3897
  # @option params [required, String] :firewall_arn
@@ -3790,9 +4307,18 @@ module Aws::NetworkFirewall
3790
4307
  # You must specify the ARN or the name, and you can specify both.
3791
4308
  #
3792
4309
  # @option params [String] :type
3793
- # Indicates whether the rule group is stateless or stateful. If the rule
3794
- # group is stateless, it contains stateless rules. If it is stateful, it
3795
- # contains stateful rules.
4310
+ # Indicates the type of the rule group. Valid values are:
4311
+ #
4312
+ # * `STATELESS` - Stateless rules, for use in a Classic Network Firewall
4313
+ # policy.
4314
+ #
4315
+ # * `STATEFUL` - Stateful rules, for use in a Classic Network Firewall
4316
+ # policy.
4317
+ #
4318
+ # * `FIREWALL` - Firewall engine rules, for use in a Next Generation
4319
+ # policy.
4320
+ #
4321
+ # * `IPS` - IPS engine rules, for use in a Next Generation policy.
3796
4322
  #
3797
4323
  # <note markdown="1"> This setting is required for requests that do not include the
3798
4324
  # `RuleGroupARN`.
@@ -3804,10 +4330,27 @@ module Aws::NetworkFirewall
3804
4330
  # rules in the rule group for rule behavior such as asymmetric routing.
3805
4331
  # If set to `TRUE`, Network Firewall runs the analysis.
3806
4332
  #
4333
+ # @option params [String] :rule_output_format
4334
+ # For a firewall engine rule group, the format in which to return the
4335
+ # rules. Specify one of the following values:
4336
+ #
4337
+ # * `FIREWALL_RULES` - Returns the rules as structured `FirewallRule`
4338
+ # objects.
4339
+ #
4340
+ # * `RULES_STRING` - Returns the rules as a Suricata-compatible
4341
+ # firewall-mode rule string.
4342
+ #
4343
+ # If you don't specify a format, Network Firewall returns the rules in
4344
+ # the format you provided them in. This setting applies only to
4345
+ # `FIREWALL` and `IPS` rule groups; IPS engine rule groups support only
4346
+ # `RULES_STRING`.
4347
+ #
3807
4348
  # @return [Types::DescribeRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3808
4349
  #
3809
4350
  # * {Types::DescribeRuleGroupResponse#update_token #update_token} => String
3810
4351
  # * {Types::DescribeRuleGroupResponse#rule_group #rule_group} => Types::RuleGroup
4352
+ # * {Types::DescribeRuleGroupResponse#firewall_rule_group #firewall_rule_group} => Types::FirewallRuleGroup
4353
+ # * {Types::DescribeRuleGroupResponse#ips_rule_group #ips_rule_group} => Types::IpsRuleGroup
3811
4354
  # * {Types::DescribeRuleGroupResponse#rule_group_response #rule_group_response} => Types::RuleGroupResponse
3812
4355
  #
3813
4356
  # @example Request syntax with placeholder values
@@ -3815,8 +4358,9 @@ module Aws::NetworkFirewall
3815
4358
  # resp = client.describe_rule_group({
3816
4359
  # rule_group_name: "ResourceName",
3817
4360
  # rule_group_arn: "ResourceArn",
3818
- # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
4361
+ # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
3819
4362
  # analyze_rule_group: false,
4363
+ # rule_output_format: "FIREWALL_RULES", # accepts FIREWALL_RULES, RULES_STRING
3820
4364
  # })
3821
4365
  #
3822
4366
  # @example Response structure
@@ -3874,11 +4418,52 @@ module Aws::NetworkFirewall
3874
4418
  # resp.rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[0].action_definition.publish_metric_action.dimensions #=> Array
3875
4419
  # resp.rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[0].action_definition.publish_metric_action.dimensions[0].value #=> String
3876
4420
  # resp.rule_group.stateful_rule_options.rule_order #=> String, one of "DEFAULT_ACTION_ORDER", "STRICT_ORDER"
4421
+ # resp.firewall_rule_group.rules_source.rules_string #=> String
4422
+ # resp.firewall_rule_group.rules_source.firewall_rules #=> Array
4423
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].action #=> String, one of "ACCEPT", "DROP", "REJECT", "REJECT_DST", "REJECT_BOTH"
4424
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].action_scope #=> String, one of "FLOW", "TX", "HOOK", "PACKET"
4425
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].hook #=> String, one of "TCP_ALL", "TCP_FLOW_START", "TCP_PRE_FLOW", "TCP_PRE_STREAM", "SCTP_ALL", "SCTP_FLOW_START", "SCTP_PRE_FLOW", "SCTP_PRE_STREAM", "IPV6_ALL", "IPV6_FLOW_START", "IPV6_PRE_FLOW", "IPV6_PRE_STREAM", "ICMPV6_ALL", "ICMPV6_FLOW_START", "ICMPV6_PRE_FLOW", "ICMPV6_PRE_STREAM", "UDP_ALL", "UDP_FLOW_START", "UDP_PRE_FLOW", "UDP_PRE_STREAM", "ICMP_ALL", "ICMP_FLOW_START", "ICMP_PRE_FLOW", "ICMP_PRE_STREAM", "ICMPV4_ALL", "ICMPV4_FLOW_START", "ICMPV4_PRE_FLOW", "ICMPV4_PRE_STREAM", "IP_ALL", "IP_FLOW_START", "IP_PRE_FLOW", "IP_PRE_STREAM", "IPV4_ALL", "IPV4_FLOW_START", "IPV4_PRE_FLOW", "IPV4_PRE_STREAM", "TLS_CLIENT_STARTED", "TLS_CLIENT_HELLO", "TLS_CLIENT_CERT", "TLS_CLIENT_DATA", "TLS_CLIENT_FINISHED", "TLS_SERVER_STARTED", "TLS_SERVER_HELLO", "TLS_SERVER_CERT", "TLS_SERVER_DATA", "TLS_SERVER_FINISHED", "HTTP1_REQUEST_STARTED", "HTTP1_REQUEST_LINE", "HTTP1_REQUEST_HEADERS", "HTTP1_REQUEST_BODY", "HTTP1_REQUEST_TRAILER", "HTTP1_REQUEST_COMPLETE", "HTTP1_RESPONSE_STARTED", "HTTP1_RESPONSE_LINE", "HTTP1_RESPONSE_HEADERS", "HTTP1_RESPONSE_BODY", "HTTP1_RESPONSE_TRAILER", "HTTP1_RESPONSE_COMPLETE", "HTTP2_STREAM_REQUEST_STARTED", "HTTP2_STREAM_REQUEST_HEADERS", "HTTP2_STREAM_REQUEST_DATA", "HTTP2_STREAM_REQUEST_CLOSED", "HTTP2_STREAM_REQUEST_COMPLETE", "HTTP2_STREAM_RESPONSE_STARTED", "HTTP2_STREAM_RESPONSE_HEADERS", "HTTP2_STREAM_RESPONSE_DATA", "HTTP2_STREAM_RESPONSE_CLOSED", "HTTP2_STREAM_RESPONSE_COMPLETE", "HTTP2_GLOBAL_REQUEST_STARTED", "HTTP2_GLOBAL_REQUEST_COMPLETE", "HTTP2_GLOBAL_RESPONSE_STARTED", "HTTP2_GLOBAL_RESPONSE_COMPLETE", "DOH2_STREAM_REQUEST_STARTED", "DOH2_STREAM_REQUEST_HEADERS", "DOH2_STREAM_REQUEST_DATA", "DOH2_STREAM_REQUEST_CLOSED", "DOH2_STREAM_REQUEST_COMPLETE", "DOH2_STREAM_RESPONSE_STARTED", "DOH2_STREAM_RESPONSE_HEADERS", "DOH2_STREAM_RESPONSE_DATA", "DOH2_STREAM_RESPONSE_CLOSED", "DOH2_STREAM_RESPONSE_COMPLETE", "DOH2_GLOBAL_REQUEST_STARTED", "DOH2_GLOBAL_REQUEST_COMPLETE", "DOH2_GLOBAL_RESPONSE_STARTED", "DOH2_GLOBAL_RESPONSE_COMPLETE", "DNS_REQUEST_STARTED", "DNS_REQUEST_COMPLETE", "DNS_RESPONSE_STARTED", "DNS_RESPONSE_COMPLETE", "SMTP_REQUEST_STARTED", "SMTP_REQUEST_DATA", "SMTP_REQUEST_COMPLETE", "SMTP_RESPONSE_STARTED", "SMTP_RESPONSE_DATA", "SMTP_RESPONSE_COMPLETE", "FTP_REQUEST_STARTED", "FTP_REQUEST_COMPLETE", "FTP_RESPONSE_STARTED", "FTP_RESPONSE_COMPLETE", "FTP_DATA_REQUEST_STARTED", "FTP_DATA_REQUEST_COMPLETE", "FTP_DATA_RESPONSE_STARTED", "FTP_DATA_RESPONSE_COMPLETE", "SMB_REQUEST_STARTED", "SMB_REQUEST_COMPLETE", "SMB_RESPONSE_STARTED", "SMB_RESPONSE_COMPLETE", "DCERPC_REQUEST_STARTED", "DCERPC_REQUEST_COMPLETE", "DCERPC_RESPONSE_STARTED", "DCERPC_RESPONSE_COMPLETE", "NFS_REQUEST_STARTED", "NFS_REQUEST_COMPLETE", "NFS_RESPONSE_STARTED", "NFS_RESPONSE_COMPLETE", "KRB5_REQUEST_STARTED", "KRB5_REQUEST_COMPLETE", "KRB5_RESPONSE_STARTED", "KRB5_RESPONSE_COMPLETE", "IKE_REQUEST_STARTED", "IKE_REQUEST_COMPLETE", "IKE_RESPONSE_STARTED", "IKE_RESPONSE_COMPLETE", "TFTP_REQUEST_STARTED", "TFTP_REQUEST_COMPLETE", "TFTP_RESPONSE_STARTED", "TFTP_RESPONSE_COMPLETE", "DHCP_REQUEST_STARTED", "DHCP_REQUEST_COMPLETE", "DHCP_RESPONSE_STARTED", "DHCP_RESPONSE_COMPLETE", "QUIC_REQUEST_STARTED", "QUIC_REQUEST_COMPLETE", "QUIC_RESPONSE_STARTED", "QUIC_RESPONSE_COMPLETE", "RDP_REQUEST_STARTED", "RDP_REQUEST_COMPLETE", "RDP_RESPONSE_STARTED", "RDP_RESPONSE_COMPLETE", "RFB_REQUEST_STARTED", "RFB_REQUEST_COMPLETE", "RFB_RESPONSE_STARTED", "RFB_RESPONSE_COMPLETE", "MQTT_REQUEST_STARTED", "MQTT_REQUEST_COMPLETE", "MQTT_RESPONSE_STARTED", "MQTT_RESPONSE_COMPLETE", "PGSQL_REQUEST_STARTED", "PGSQL_REQUEST_COMPLETE", "PGSQL_RESPONSE_STARTED", "PGSQL_RESPONSE_COMPLETE", "SNMP_REQUEST_STARTED", "SNMP_REQUEST_COMPLETE", "SNMP_RESPONSE_STARTED", "SNMP_RESPONSE_COMPLETE", "NTP_REQUEST_STARTED", "NTP_REQUEST_COMPLETE", "NTP_RESPONSE_STARTED", "NTP_RESPONSE_COMPLETE", "TELNET_REQUEST_STARTED", "TELNET_REQUEST_COMPLETE", "TELNET_RESPONSE_STARTED", "TELNET_RESPONSE_COMPLETE", "WEBSOCKET_REQUEST_STARTED", "WEBSOCKET_REQUEST_COMPLETE", "WEBSOCKET_RESPONSE_STARTED", "WEBSOCKET_RESPONSE_COMPLETE", "LDAP_REQUEST_STARTED", "LDAP_REQUEST_COMPLETE", "LDAP_RESPONSE_STARTED", "LDAP_RESPONSE_COMPLETE", "POP3_REQUEST_STARTED", "POP3_REQUEST_COMPLETE", "POP3_RESPONSE_STARTED", "POP3_RESPONSE_COMPLETE", "MDNS_REQUEST_STARTED", "MDNS_REQUEST_COMPLETE", "MDNS_RESPONSE_STARTED", "MDNS_RESPONSE_COMPLETE", "BITTORRENT_DHT_REQUEST_STARTED", "BITTORRENT_DHT_REQUEST_COMPLETE", "BITTORRENT_DHT_RESPONSE_STARTED", "BITTORRENT_DHT_RESPONSE_COMPLETE", "DNP3_REQUEST_STARTED", "DNP3_REQUEST_COMPLETE", "DNP3_RESPONSE_STARTED", "DNP3_RESPONSE_COMPLETE", "SSH_REQUEST_IN_PROGRESS", "SSH_REQUEST_BANNER_WAIT_EOL", "SSH_REQUEST_BANNER_DONE", "SSH_REQUEST_FINISHED", "SSH_RESPONSE_IN_PROGRESS", "SSH_RESPONSE_BANNER_WAIT_EOL", "SSH_RESPONSE_BANNER_DONE", "SSH_RESPONSE_FINISHED"
4426
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].protocol #=> String, one of "IP", "TCP", "UDP", "ICMP", "HTTP", "FTP", "TLS", "SMB", "DNS", "DCERPC", "SSH", "SMTP", "MSN", "KRB5", "IKEV2", "TFTP", "NTP", "DHCP", "HTTP2", "QUIC", "ICMPV4", "ICMPV6", "SCTP", "IPV4", "IPV6", "DOH2", "FTP_DATA", "NFS", "RDP", "RFB", "MQTT", "PGSQL", "SNMP", "TELNET", "WEBSOCKET", "LDAP", "POP3", "MDNS", "BITTORRENT_DHT", "DNP3"
4427
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].source_i_ps #=> String
4428
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].dest_i_ps #=> String
4429
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].source_ports #=> String
4430
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].dest_ports #=> String
4431
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].rule_options #=> Array
4432
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].rule_options[0].keyword #=> String
4433
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].rule_options[0].settings #=> Array
4434
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].rule_options[0].settings[0] #=> String
4435
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].accept_prior_hooks #=> Boolean
4436
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].alert_enabled #=> Boolean
4437
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].bypass_ips_enabled #=> Boolean
4438
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].rule_metadata.rule_enabled #=> Boolean
4439
+ # resp.firewall_rule_group.rules_source.firewall_rules[0].rule_metadata.rule_description #=> String
4440
+ # resp.firewall_rule_group.rules_source.rules_source_list.targets #=> Array
4441
+ # resp.firewall_rule_group.rules_source.rules_source_list.targets[0] #=> String
4442
+ # resp.firewall_rule_group.rules_source.rules_source_list.target_types #=> Array
4443
+ # resp.firewall_rule_group.rules_source.rules_source_list.target_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST", "AWS_ROUTE_53_RESOLVED_DOMAIN"
4444
+ # resp.firewall_rule_group.rules_source.rules_source_list.generated_rules_type #=> String, one of "ALLOWLIST", "DENYLIST", "REJECTLIST", "ALERTLIST"
4445
+ # resp.firewall_rule_group.rule_variables.ip_sets #=> Hash
4446
+ # resp.firewall_rule_group.rule_variables.ip_sets["RuleVariableName"].definition #=> Array
4447
+ # resp.firewall_rule_group.rule_variables.ip_sets["RuleVariableName"].definition[0] #=> String
4448
+ # resp.firewall_rule_group.rule_variables.port_sets #=> Hash
4449
+ # resp.firewall_rule_group.rule_variables.port_sets["RuleVariableName"].definition #=> Array
4450
+ # resp.firewall_rule_group.rule_variables.port_sets["RuleVariableName"].definition[0] #=> String
4451
+ # resp.firewall_rule_group.reference_sets.ip_set_references #=> Hash
4452
+ # resp.firewall_rule_group.reference_sets.ip_set_references["IPSetReferenceName"].reference_arn #=> String
4453
+ # resp.ips_rule_group.rules_source.rules_string #=> String
4454
+ # resp.ips_rule_group.rule_variables.ip_sets #=> Hash
4455
+ # resp.ips_rule_group.rule_variables.ip_sets["RuleVariableName"].definition #=> Array
4456
+ # resp.ips_rule_group.rule_variables.ip_sets["RuleVariableName"].definition[0] #=> String
4457
+ # resp.ips_rule_group.rule_variables.port_sets #=> Hash
4458
+ # resp.ips_rule_group.rule_variables.port_sets["RuleVariableName"].definition #=> Array
4459
+ # resp.ips_rule_group.rule_variables.port_sets["RuleVariableName"].definition[0] #=> String
4460
+ # resp.ips_rule_group.reference_sets.ip_set_references #=> Hash
4461
+ # resp.ips_rule_group.reference_sets.ip_set_references["IPSetReferenceName"].reference_arn #=> String
3877
4462
  # resp.rule_group_response.rule_group_arn #=> String
3878
4463
  # resp.rule_group_response.rule_group_name #=> String
3879
4464
  # resp.rule_group_response.rule_group_id #=> String
3880
4465
  # resp.rule_group_response.description #=> String
3881
- # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN"
4466
+ # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN", "FIREWALL", "IPS"
3882
4467
  # resp.rule_group_response.capacity #=> Integer
3883
4468
  # resp.rule_group_response.rule_group_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
3884
4469
  # resp.rule_group_response.tags #=> Array
@@ -3927,9 +4512,18 @@ module Aws::NetworkFirewall
3927
4512
  # You must specify the ARN or the name, and you can specify both.
3928
4513
  #
3929
4514
  # @option params [String] :type
3930
- # Indicates whether the rule group is stateless or stateful. If the rule
3931
- # group is stateless, it contains stateless rules. If it is stateful, it
3932
- # contains stateful rules.
4515
+ # Indicates the type of the rule group. Valid values are:
4516
+ #
4517
+ # * `STATELESS` - Stateless rules, for use in a Classic Network Firewall
4518
+ # policy.
4519
+ #
4520
+ # * `STATEFUL` - Stateful rules, for use in a Classic Network Firewall
4521
+ # policy.
4522
+ #
4523
+ # * `FIREWALL` - Firewall engine rules, for use in a Next Generation
4524
+ # policy.
4525
+ #
4526
+ # * `IPS` - IPS engine rules, for use in a Next Generation policy.
3933
4527
  #
3934
4528
  # <note markdown="1"> This setting is required for requests that do not include the
3935
4529
  # `RuleGroupARN`.
@@ -3954,7 +4548,7 @@ module Aws::NetworkFirewall
3954
4548
  # resp = client.describe_rule_group_metadata({
3955
4549
  # rule_group_name: "ResourceName",
3956
4550
  # rule_group_arn: "ResourceArn",
3957
- # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
4551
+ # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
3958
4552
  # })
3959
4553
  #
3960
4554
  # @example Response structure
@@ -3962,7 +4556,7 @@ module Aws::NetworkFirewall
3962
4556
  # resp.rule_group_arn #=> String
3963
4557
  # resp.rule_group_name #=> String
3964
4558
  # resp.description #=> String
3965
- # resp.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN"
4559
+ # resp.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN", "FIREWALL", "IPS"
3966
4560
  # resp.capacity #=> Integer
3967
4561
  # resp.stateful_rule_options.rule_order #=> String, one of "DEFAULT_ACTION_ORDER", "STRICT_ORDER"
3968
4562
  # resp.last_modified_time #=> Time
@@ -4021,7 +4615,7 @@ module Aws::NetworkFirewall
4021
4615
  # resp = client.describe_rule_group_summary({
4022
4616
  # rule_group_name: "ResourceName",
4023
4617
  # rule_group_arn: "ResourceArn",
4024
- # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
4618
+ # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
4025
4619
  # })
4026
4620
  #
4027
4621
  # @example Response structure
@@ -4639,6 +5233,53 @@ module Aws::NetworkFirewall
4639
5233
  req.send_request(options)
4640
5234
  end
4641
5235
 
5236
+ # Retrieves the metadata for the Next Generation policies that you have
5237
+ # defined. Depending on your setting for max results and the number of
5238
+ # firewall policies, a single call might not return the full list.
5239
+ #
5240
+ # @option params [String] :next_token
5241
+ # When you request a list of objects with a `MaxResults` setting, if the
5242
+ # number of objects that are still available for retrieval exceeds the
5243
+ # maximum you requested, Network Firewall returns a `NextToken` value in
5244
+ # the response. To retrieve the next batch of objects, use the token
5245
+ # returned from the prior request in your next request.
5246
+ #
5247
+ # @option params [Integer] :max_results
5248
+ # The maximum number of objects that you want Network Firewall to return
5249
+ # for this request. If more objects are available, in the response,
5250
+ # Network Firewall provides a `NextToken` value that you can use in a
5251
+ # subsequent call to get the next batch of objects.
5252
+ #
5253
+ # @return [Types::ListFirewallPoliciesV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5254
+ #
5255
+ # * {Types::ListFirewallPoliciesV2Response#next_token #next_token} => String
5256
+ # * {Types::ListFirewallPoliciesV2Response#firewall_policies_v2 #firewall_policies_v2} => Array&lt;Types::FirewallPolicyV2Metadata&gt;
5257
+ #
5258
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5259
+ #
5260
+ # @example Request syntax with placeholder values
5261
+ #
5262
+ # resp = client.list_firewall_policies_v2({
5263
+ # next_token: "PaginationToken",
5264
+ # max_results: 1,
5265
+ # })
5266
+ #
5267
+ # @example Response structure
5268
+ #
5269
+ # resp.next_token #=> String
5270
+ # resp.firewall_policies_v2 #=> Array
5271
+ # resp.firewall_policies_v2[0].name #=> String
5272
+ # resp.firewall_policies_v2[0].arn #=> String
5273
+ #
5274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewallPoliciesV2 AWS API Documentation
5275
+ #
5276
+ # @overload list_firewall_policies_v2(params = {})
5277
+ # @param [Hash] params ({})
5278
+ def list_firewall_policies_v2(params = {}, options = {})
5279
+ req = build_request(:list_firewall_policies_v2, params)
5280
+ req.send_request(options)
5281
+ end
5282
+
4642
5283
  # Retrieves the metadata for the firewalls that you have defined. If you
4643
5284
  # provide VPC identifiers in your request, this returns only the
4644
5285
  # firewalls for those VPCs.
@@ -5094,7 +5735,7 @@ module Aws::NetworkFirewall
5094
5735
  # scope: "MANAGED", # accepts MANAGED, ACCOUNT
5095
5736
  # managed_type: "AWS_MANAGED_THREAT_SIGNATURES", # accepts AWS_MANAGED_THREAT_SIGNATURES, AWS_MANAGED_DOMAIN_LISTS, ACTIVE_THREAT_DEFENSE, PARTNER_MANAGED
5096
5737
  # subscription_status: "NOT_SUBSCRIBED", # accepts NOT_SUBSCRIBED, SUBSCRIBED
5097
- # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
5738
+ # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
5098
5739
  # })
5099
5740
  #
5100
5741
  # @example Response structure
@@ -6455,6 +7096,235 @@ module Aws::NetworkFirewall
6455
7096
  req.send_request(options)
6456
7097
  end
6457
7098
 
7099
+ # Updates the properties of the specified Next Generation policy.
7100
+ #
7101
+ # @option params [required, String] :update_token
7102
+ # A token used for optimistic locking. Network Firewall returns a token
7103
+ # to your requests that access the firewall policy. The token marks the
7104
+ # state of the policy resource at the time of the request.
7105
+ #
7106
+ # To make changes to the policy, you provide the token in your request.
7107
+ # Network Firewall uses the token to ensure that the policy hasn't
7108
+ # changed since you last retrieved it. If it has changed, the operation
7109
+ # fails with an `InvalidTokenException`. If this happens, retrieve the
7110
+ # firewall policy again to get a current copy of it with current token.
7111
+ # Reapply your changes as needed, then try the operation again using the
7112
+ # new token.
7113
+ #
7114
+ # @option params [String] :firewall_policy_v2_arn
7115
+ # The Amazon Resource Name (ARN) of the Next Generation policy.
7116
+ #
7117
+ # You must specify the ARN or the name, and you can specify both.
7118
+ #
7119
+ # @option params [String] :firewall_policy_v2_name
7120
+ # The descriptive name of the Next Generation policy. You can't change
7121
+ # the name of a firewall policy after you create it.
7122
+ #
7123
+ # You must specify the ARN or the name, and you can specify both.
7124
+ #
7125
+ # @option params [required, Types::FirewallPolicyV2] :firewall_policy_v2
7126
+ # The updated rule groups and other settings that define the Next
7127
+ # Generation policy.
7128
+ #
7129
+ # @option params [String] :description
7130
+ # A description of the firewall policy.
7131
+ #
7132
+ # @option params [Boolean] :dry_run
7133
+ # Indicates whether you want Network Firewall to just check the validity
7134
+ # of the request, rather than run the request.
7135
+ #
7136
+ # If set to `TRUE`, Network Firewall checks whether the request can run
7137
+ # successfully, but doesn't actually make the requested changes. The
7138
+ # call returns the value that the request would return if you ran it
7139
+ # with dry run set to `FALSE`, but doesn't make additions or changes to
7140
+ # your resources. This option allows you to make sure that you have the
7141
+ # required permissions to run the request and that your request
7142
+ # parameters are valid.
7143
+ #
7144
+ # If set to `FALSE`, Network Firewall makes the requested changes to
7145
+ # your resources.
7146
+ #
7147
+ # @option params [Types::EncryptionConfiguration] :encryption_configuration
7148
+ # A complex type that contains settings for encryption of your firewall
7149
+ # policy resources.
7150
+ #
7151
+ # @return [Types::UpdateFirewallPolicyV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7152
+ #
7153
+ # * {Types::UpdateFirewallPolicyV2Response#update_token #update_token} => String
7154
+ # * {Types::UpdateFirewallPolicyV2Response#firewall_policy_v2_response #firewall_policy_v2_response} => Types::FirewallPolicyV2Response
7155
+ #
7156
+ # @example Request syntax with placeholder values
7157
+ #
7158
+ # resp = client.update_firewall_policy_v2({
7159
+ # update_token: "UpdateToken", # required
7160
+ # firewall_policy_v2_arn: "ResourceArn",
7161
+ # firewall_policy_v2_name: "ResourceName",
7162
+ # firewall_policy_v2: { # required
7163
+ # firewall_rule_group_entries: [
7164
+ # {
7165
+ # priority: 1,
7166
+ # resource_arn: "ResourceArn",
7167
+ # inline_rule_group: {
7168
+ # rules_source: { # required
7169
+ # rules_string: "RulesString",
7170
+ # firewall_rules: [
7171
+ # {
7172
+ # action: "ACCEPT", # required, accepts ACCEPT, DROP, REJECT, REJECT_DST, REJECT_BOTH
7173
+ # action_scope: "FLOW", # required, accepts FLOW, TX, HOOK, PACKET
7174
+ # hook: "TCP_ALL", # required, accepts TCP_ALL, TCP_FLOW_START, TCP_PRE_FLOW, TCP_PRE_STREAM, SCTP_ALL, SCTP_FLOW_START, SCTP_PRE_FLOW, SCTP_PRE_STREAM, IPV6_ALL, IPV6_FLOW_START, IPV6_PRE_FLOW, IPV6_PRE_STREAM, ICMPV6_ALL, ICMPV6_FLOW_START, ICMPV6_PRE_FLOW, ICMPV6_PRE_STREAM, UDP_ALL, UDP_FLOW_START, UDP_PRE_FLOW, UDP_PRE_STREAM, ICMP_ALL, ICMP_FLOW_START, ICMP_PRE_FLOW, ICMP_PRE_STREAM, ICMPV4_ALL, ICMPV4_FLOW_START, ICMPV4_PRE_FLOW, ICMPV4_PRE_STREAM, IP_ALL, IP_FLOW_START, IP_PRE_FLOW, IP_PRE_STREAM, IPV4_ALL, IPV4_FLOW_START, IPV4_PRE_FLOW, IPV4_PRE_STREAM, TLS_CLIENT_STARTED, TLS_CLIENT_HELLO, TLS_CLIENT_CERT, TLS_CLIENT_DATA, TLS_CLIENT_FINISHED, TLS_SERVER_STARTED, TLS_SERVER_HELLO, TLS_SERVER_CERT, TLS_SERVER_DATA, TLS_SERVER_FINISHED, HTTP1_REQUEST_STARTED, HTTP1_REQUEST_LINE, HTTP1_REQUEST_HEADERS, HTTP1_REQUEST_BODY, HTTP1_REQUEST_TRAILER, HTTP1_REQUEST_COMPLETE, HTTP1_RESPONSE_STARTED, HTTP1_RESPONSE_LINE, HTTP1_RESPONSE_HEADERS, HTTP1_RESPONSE_BODY, HTTP1_RESPONSE_TRAILER, HTTP1_RESPONSE_COMPLETE, HTTP2_STREAM_REQUEST_STARTED, HTTP2_STREAM_REQUEST_HEADERS, HTTP2_STREAM_REQUEST_DATA, HTTP2_STREAM_REQUEST_CLOSED, HTTP2_STREAM_REQUEST_COMPLETE, HTTP2_STREAM_RESPONSE_STARTED, HTTP2_STREAM_RESPONSE_HEADERS, HTTP2_STREAM_RESPONSE_DATA, HTTP2_STREAM_RESPONSE_CLOSED, HTTP2_STREAM_RESPONSE_COMPLETE, HTTP2_GLOBAL_REQUEST_STARTED, HTTP2_GLOBAL_REQUEST_COMPLETE, HTTP2_GLOBAL_RESPONSE_STARTED, HTTP2_GLOBAL_RESPONSE_COMPLETE, DOH2_STREAM_REQUEST_STARTED, DOH2_STREAM_REQUEST_HEADERS, DOH2_STREAM_REQUEST_DATA, DOH2_STREAM_REQUEST_CLOSED, DOH2_STREAM_REQUEST_COMPLETE, DOH2_STREAM_RESPONSE_STARTED, DOH2_STREAM_RESPONSE_HEADERS, DOH2_STREAM_RESPONSE_DATA, DOH2_STREAM_RESPONSE_CLOSED, DOH2_STREAM_RESPONSE_COMPLETE, DOH2_GLOBAL_REQUEST_STARTED, DOH2_GLOBAL_REQUEST_COMPLETE, DOH2_GLOBAL_RESPONSE_STARTED, DOH2_GLOBAL_RESPONSE_COMPLETE, DNS_REQUEST_STARTED, DNS_REQUEST_COMPLETE, DNS_RESPONSE_STARTED, DNS_RESPONSE_COMPLETE, SMTP_REQUEST_STARTED, SMTP_REQUEST_DATA, SMTP_REQUEST_COMPLETE, SMTP_RESPONSE_STARTED, SMTP_RESPONSE_DATA, SMTP_RESPONSE_COMPLETE, FTP_REQUEST_STARTED, FTP_REQUEST_COMPLETE, FTP_RESPONSE_STARTED, FTP_RESPONSE_COMPLETE, FTP_DATA_REQUEST_STARTED, FTP_DATA_REQUEST_COMPLETE, FTP_DATA_RESPONSE_STARTED, FTP_DATA_RESPONSE_COMPLETE, SMB_REQUEST_STARTED, SMB_REQUEST_COMPLETE, SMB_RESPONSE_STARTED, SMB_RESPONSE_COMPLETE, DCERPC_REQUEST_STARTED, DCERPC_REQUEST_COMPLETE, DCERPC_RESPONSE_STARTED, DCERPC_RESPONSE_COMPLETE, NFS_REQUEST_STARTED, NFS_REQUEST_COMPLETE, NFS_RESPONSE_STARTED, NFS_RESPONSE_COMPLETE, KRB5_REQUEST_STARTED, KRB5_REQUEST_COMPLETE, KRB5_RESPONSE_STARTED, KRB5_RESPONSE_COMPLETE, IKE_REQUEST_STARTED, IKE_REQUEST_COMPLETE, IKE_RESPONSE_STARTED, IKE_RESPONSE_COMPLETE, TFTP_REQUEST_STARTED, TFTP_REQUEST_COMPLETE, TFTP_RESPONSE_STARTED, TFTP_RESPONSE_COMPLETE, DHCP_REQUEST_STARTED, DHCP_REQUEST_COMPLETE, DHCP_RESPONSE_STARTED, DHCP_RESPONSE_COMPLETE, QUIC_REQUEST_STARTED, QUIC_REQUEST_COMPLETE, QUIC_RESPONSE_STARTED, QUIC_RESPONSE_COMPLETE, RDP_REQUEST_STARTED, RDP_REQUEST_COMPLETE, RDP_RESPONSE_STARTED, RDP_RESPONSE_COMPLETE, RFB_REQUEST_STARTED, RFB_REQUEST_COMPLETE, RFB_RESPONSE_STARTED, RFB_RESPONSE_COMPLETE, MQTT_REQUEST_STARTED, MQTT_REQUEST_COMPLETE, MQTT_RESPONSE_STARTED, MQTT_RESPONSE_COMPLETE, PGSQL_REQUEST_STARTED, PGSQL_REQUEST_COMPLETE, PGSQL_RESPONSE_STARTED, PGSQL_RESPONSE_COMPLETE, SNMP_REQUEST_STARTED, SNMP_REQUEST_COMPLETE, SNMP_RESPONSE_STARTED, SNMP_RESPONSE_COMPLETE, NTP_REQUEST_STARTED, NTP_REQUEST_COMPLETE, NTP_RESPONSE_STARTED, NTP_RESPONSE_COMPLETE, TELNET_REQUEST_STARTED, TELNET_REQUEST_COMPLETE, TELNET_RESPONSE_STARTED, TELNET_RESPONSE_COMPLETE, WEBSOCKET_REQUEST_STARTED, WEBSOCKET_REQUEST_COMPLETE, WEBSOCKET_RESPONSE_STARTED, WEBSOCKET_RESPONSE_COMPLETE, LDAP_REQUEST_STARTED, LDAP_REQUEST_COMPLETE, LDAP_RESPONSE_STARTED, LDAP_RESPONSE_COMPLETE, POP3_REQUEST_STARTED, POP3_REQUEST_COMPLETE, POP3_RESPONSE_STARTED, POP3_RESPONSE_COMPLETE, MDNS_REQUEST_STARTED, MDNS_REQUEST_COMPLETE, MDNS_RESPONSE_STARTED, MDNS_RESPONSE_COMPLETE, BITTORRENT_DHT_REQUEST_STARTED, BITTORRENT_DHT_REQUEST_COMPLETE, BITTORRENT_DHT_RESPONSE_STARTED, BITTORRENT_DHT_RESPONSE_COMPLETE, DNP3_REQUEST_STARTED, DNP3_REQUEST_COMPLETE, DNP3_RESPONSE_STARTED, DNP3_RESPONSE_COMPLETE, SSH_REQUEST_IN_PROGRESS, SSH_REQUEST_BANNER_WAIT_EOL, SSH_REQUEST_BANNER_DONE, SSH_REQUEST_FINISHED, SSH_RESPONSE_IN_PROGRESS, SSH_RESPONSE_BANNER_WAIT_EOL, SSH_RESPONSE_BANNER_DONE, SSH_RESPONSE_FINISHED
7175
+ # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP, HTTP2, QUIC, ICMPV4, ICMPV6, SCTP, IPV4, IPV6, DOH2, FTP_DATA, NFS, RDP, RFB, MQTT, PGSQL, SNMP, TELNET, WEBSOCKET, LDAP, POP3, MDNS, BITTORRENT_DHT, DNP3
7176
+ # source_i_ps: "Source",
7177
+ # dest_i_ps: "Destination",
7178
+ # source_ports: "Port",
7179
+ # dest_ports: "Port",
7180
+ # rule_options: [
7181
+ # {
7182
+ # keyword: "Keyword", # required
7183
+ # settings: ["Setting"],
7184
+ # },
7185
+ # ],
7186
+ # accept_prior_hooks: false,
7187
+ # alert_enabled: false,
7188
+ # bypass_ips_enabled: false,
7189
+ # rule_metadata: {
7190
+ # rule_enabled: false,
7191
+ # rule_description: "RuleDescriptionText",
7192
+ # },
7193
+ # },
7194
+ # ],
7195
+ # rules_source_list: {
7196
+ # targets: ["CollectionMember_String"], # required
7197
+ # target_types: ["TLS_SNI"], # required, accepts TLS_SNI, HTTP_HOST, AWS_ROUTE_53_RESOLVED_DOMAIN
7198
+ # generated_rules_type: "ALLOWLIST", # required, accepts ALLOWLIST, DENYLIST, REJECTLIST, ALERTLIST
7199
+ # },
7200
+ # },
7201
+ # rule_variables: {
7202
+ # ip_sets: {
7203
+ # "RuleVariableName" => {
7204
+ # definition: ["VariableDefinition"], # required
7205
+ # },
7206
+ # },
7207
+ # port_sets: {
7208
+ # "RuleVariableName" => {
7209
+ # definition: ["VariableDefinition"],
7210
+ # },
7211
+ # },
7212
+ # },
7213
+ # reference_sets: {
7214
+ # ip_set_references: {
7215
+ # "IPSetReferenceName" => {
7216
+ # reference_arn: "ResourceArn",
7217
+ # },
7218
+ # },
7219
+ # },
7220
+ # },
7221
+ # },
7222
+ # ],
7223
+ # ips_rule_group_entries: [
7224
+ # {
7225
+ # resource_arn: "ResourceArn",
7226
+ # inline_rule_group: {
7227
+ # rules_source: { # required
7228
+ # rules_string: "RulesString",
7229
+ # },
7230
+ # rule_variables: {
7231
+ # ip_sets: {
7232
+ # "RuleVariableName" => {
7233
+ # definition: ["VariableDefinition"], # required
7234
+ # },
7235
+ # },
7236
+ # port_sets: {
7237
+ # "RuleVariableName" => {
7238
+ # definition: ["VariableDefinition"],
7239
+ # },
7240
+ # },
7241
+ # },
7242
+ # reference_sets: {
7243
+ # ip_set_references: {
7244
+ # "IPSetReferenceName" => {
7245
+ # reference_arn: "ResourceArn",
7246
+ # },
7247
+ # },
7248
+ # },
7249
+ # },
7250
+ # override: {
7251
+ # action: "DROP_TO_ALERT", # accepts DROP_TO_ALERT
7252
+ # },
7253
+ # },
7254
+ # ],
7255
+ # policy_mode: "ENFORCE", # accepts ENFORCE, MONITOR
7256
+ # firewall_default_action: "DROP", # accepts DROP, ACCEPT, REJECT, ALERT
7257
+ # stateful_engine_options: {
7258
+ # stream_exception_policy: "DROP", # accepts DROP, REJECT
7259
+ # flow_timeouts: {
7260
+ # tcp_idle_timeout_seconds: 1,
7261
+ # },
7262
+ # },
7263
+ # tls_inspection_configuration_arn: "ResourceArn",
7264
+ # policy_variables: {
7265
+ # rule_variables: {
7266
+ # "RuleVariableName" => {
7267
+ # definition: ["VariableDefinition"], # required
7268
+ # },
7269
+ # },
7270
+ # },
7271
+ # route_53_resolved_ip_validation: {
7272
+ # action: "REJECT", # required, accepts REJECT, DROP, ALERT
7273
+ # dns_firewall_rule_group_id: "DNSFirewallRuleGroupId", # required
7274
+ # dns_expiry_exception_policy: "REJECT", # required, accepts REJECT, DROP, CONTINUE
7275
+ # bypass_destination_validation_ip_ranges: [
7276
+ # {
7277
+ # address_definition: "AddressDefinition", # required
7278
+ # },
7279
+ # ],
7280
+ # source_ip_ranges: [
7281
+ # {
7282
+ # address_definition: "AddressDefinition", # required
7283
+ # },
7284
+ # ],
7285
+ # },
7286
+ # },
7287
+ # description: "Description",
7288
+ # dry_run: false,
7289
+ # encryption_configuration: {
7290
+ # key_id: "KeyId",
7291
+ # type: "CUSTOMER_KMS", # required, accepts CUSTOMER_KMS, AWS_OWNED_KMS_KEY
7292
+ # },
7293
+ # })
7294
+ #
7295
+ # @example Response structure
7296
+ #
7297
+ # resp.update_token #=> String
7298
+ # resp.firewall_policy_v2_response.firewall_policy_v2_name #=> String
7299
+ # resp.firewall_policy_v2_response.firewall_policy_v2_arn #=> String
7300
+ # resp.firewall_policy_v2_response.firewall_policy_v2_id #=> String
7301
+ # resp.firewall_policy_v2_response.description #=> String
7302
+ # resp.firewall_policy_v2_response.firewall_policy_v2_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
7303
+ # resp.firewall_policy_v2_response.status_message #=> String
7304
+ # resp.firewall_policy_v2_response.tags #=> Array
7305
+ # resp.firewall_policy_v2_response.tags[0].key #=> String
7306
+ # resp.firewall_policy_v2_response.tags[0].value #=> String
7307
+ # resp.firewall_policy_v2_response.consumed_firewall_rule_capacity #=> Integer
7308
+ # resp.firewall_policy_v2_response.consumed_ips_rule_capacity #=> Integer
7309
+ # resp.firewall_policy_v2_response.consumed_ips_domain_capacity #=> Integer
7310
+ # resp.firewall_policy_v2_response.number_of_associations #=> Integer
7311
+ # resp.firewall_policy_v2_response.encryption_configuration.key_id #=> String
7312
+ # resp.firewall_policy_v2_response.encryption_configuration.type #=> String, one of "CUSTOMER_KMS", "AWS_OWNED_KMS_KEY"
7313
+ # resp.firewall_policy_v2_response.errors #=> Array
7314
+ # resp.firewall_policy_v2_response.errors[0].code #=> String, one of "DNS_FIREWALL_RULE_GROUP_UNAVAILABLE", "ROUTE53_RESOLVED_IP_VALIDATION_MISSING"
7315
+ # resp.firewall_policy_v2_response.errors[0].message #=> String
7316
+ # resp.firewall_policy_v2_response.errors[0].resource_id #=> String
7317
+ # resp.firewall_policy_v2_response.last_modified_time #=> Time
7318
+ #
7319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallPolicyV2 AWS API Documentation
7320
+ #
7321
+ # @overload update_firewall_policy_v2(params = {})
7322
+ # @param [Hash] params ({})
7323
+ def update_firewall_policy_v2(params = {}, options = {})
7324
+ req = build_request(:update_firewall_policy_v2, params)
7325
+ req.send_request(options)
7326
+ end
7327
+
6458
7328
  # Sets the logging configuration for the specified firewall.
6459
7329
  #
6460
7330
  # To change the logging configuration, retrieve the LoggingConfiguration
@@ -7099,6 +7969,14 @@ module Aws::NetworkFirewall
7099
7969
  #
7100
7970
  # </note>
7101
7971
  #
7972
+ # @option params [Types::FirewallRuleGroup] :firewall_rule_group
7973
+ # An object that defines the rules in a firewall engine rule group, for
7974
+ # use in a Next Generation policy.
7975
+ #
7976
+ # @option params [Types::IpsRuleGroup] :ips_rule_group
7977
+ # An object that defines the rules in an IPS engine rule group, for use
7978
+ # in a Next Generation policy.
7979
+ #
7102
7980
  # @option params [String] :rules
7103
7981
  # A string containing stateful rule group rules specifications in
7104
7982
  # Suricata flat format, with one rule per line. Use this to import your
@@ -7115,9 +7993,18 @@ module Aws::NetworkFirewall
7115
7993
  # populated from your string.
7116
7994
  #
7117
7995
  # @option params [String] :type
7118
- # Indicates whether the rule group is stateless or stateful. If the rule
7119
- # group is stateless, it contains stateless rules. If it is stateful, it
7120
- # contains stateful rules.
7996
+ # Indicates the type of the rule group. Valid values are:
7997
+ #
7998
+ # * `STATELESS` - Stateless rules, for use in a Classic Network Firewall
7999
+ # policy.
8000
+ #
8001
+ # * `STATEFUL` - Stateful rules, for use in a Classic Network Firewall
8002
+ # policy.
8003
+ #
8004
+ # * `FIREWALL` - Firewall engine rules, for use in a Next Generation
8005
+ # policy.
8006
+ #
8007
+ # * `IPS` - IPS engine rules, for use in a Next Generation policy.
7121
8008
  #
7122
8009
  # <note markdown="1"> This setting is required for requests that do not include the
7123
8010
  # `RuleGroupARN`.
@@ -7280,8 +8167,86 @@ module Aws::NetworkFirewall
7280
8167
  # rule_order: "DEFAULT_ACTION_ORDER", # accepts DEFAULT_ACTION_ORDER, STRICT_ORDER
7281
8168
  # },
7282
8169
  # },
8170
+ # firewall_rule_group: {
8171
+ # rules_source: { # required
8172
+ # rules_string: "RulesString",
8173
+ # firewall_rules: [
8174
+ # {
8175
+ # action: "ACCEPT", # required, accepts ACCEPT, DROP, REJECT, REJECT_DST, REJECT_BOTH
8176
+ # action_scope: "FLOW", # required, accepts FLOW, TX, HOOK, PACKET
8177
+ # hook: "TCP_ALL", # required, accepts TCP_ALL, TCP_FLOW_START, TCP_PRE_FLOW, TCP_PRE_STREAM, SCTP_ALL, SCTP_FLOW_START, SCTP_PRE_FLOW, SCTP_PRE_STREAM, IPV6_ALL, IPV6_FLOW_START, IPV6_PRE_FLOW, IPV6_PRE_STREAM, ICMPV6_ALL, ICMPV6_FLOW_START, ICMPV6_PRE_FLOW, ICMPV6_PRE_STREAM, UDP_ALL, UDP_FLOW_START, UDP_PRE_FLOW, UDP_PRE_STREAM, ICMP_ALL, ICMP_FLOW_START, ICMP_PRE_FLOW, ICMP_PRE_STREAM, ICMPV4_ALL, ICMPV4_FLOW_START, ICMPV4_PRE_FLOW, ICMPV4_PRE_STREAM, IP_ALL, IP_FLOW_START, IP_PRE_FLOW, IP_PRE_STREAM, IPV4_ALL, IPV4_FLOW_START, IPV4_PRE_FLOW, IPV4_PRE_STREAM, TLS_CLIENT_STARTED, TLS_CLIENT_HELLO, TLS_CLIENT_CERT, TLS_CLIENT_DATA, TLS_CLIENT_FINISHED, TLS_SERVER_STARTED, TLS_SERVER_HELLO, TLS_SERVER_CERT, TLS_SERVER_DATA, TLS_SERVER_FINISHED, HTTP1_REQUEST_STARTED, HTTP1_REQUEST_LINE, HTTP1_REQUEST_HEADERS, HTTP1_REQUEST_BODY, HTTP1_REQUEST_TRAILER, HTTP1_REQUEST_COMPLETE, HTTP1_RESPONSE_STARTED, HTTP1_RESPONSE_LINE, HTTP1_RESPONSE_HEADERS, HTTP1_RESPONSE_BODY, HTTP1_RESPONSE_TRAILER, HTTP1_RESPONSE_COMPLETE, HTTP2_STREAM_REQUEST_STARTED, HTTP2_STREAM_REQUEST_HEADERS, HTTP2_STREAM_REQUEST_DATA, HTTP2_STREAM_REQUEST_CLOSED, HTTP2_STREAM_REQUEST_COMPLETE, HTTP2_STREAM_RESPONSE_STARTED, HTTP2_STREAM_RESPONSE_HEADERS, HTTP2_STREAM_RESPONSE_DATA, HTTP2_STREAM_RESPONSE_CLOSED, HTTP2_STREAM_RESPONSE_COMPLETE, HTTP2_GLOBAL_REQUEST_STARTED, HTTP2_GLOBAL_REQUEST_COMPLETE, HTTP2_GLOBAL_RESPONSE_STARTED, HTTP2_GLOBAL_RESPONSE_COMPLETE, DOH2_STREAM_REQUEST_STARTED, DOH2_STREAM_REQUEST_HEADERS, DOH2_STREAM_REQUEST_DATA, DOH2_STREAM_REQUEST_CLOSED, DOH2_STREAM_REQUEST_COMPLETE, DOH2_STREAM_RESPONSE_STARTED, DOH2_STREAM_RESPONSE_HEADERS, DOH2_STREAM_RESPONSE_DATA, DOH2_STREAM_RESPONSE_CLOSED, DOH2_STREAM_RESPONSE_COMPLETE, DOH2_GLOBAL_REQUEST_STARTED, DOH2_GLOBAL_REQUEST_COMPLETE, DOH2_GLOBAL_RESPONSE_STARTED, DOH2_GLOBAL_RESPONSE_COMPLETE, DNS_REQUEST_STARTED, DNS_REQUEST_COMPLETE, DNS_RESPONSE_STARTED, DNS_RESPONSE_COMPLETE, SMTP_REQUEST_STARTED, SMTP_REQUEST_DATA, SMTP_REQUEST_COMPLETE, SMTP_RESPONSE_STARTED, SMTP_RESPONSE_DATA, SMTP_RESPONSE_COMPLETE, FTP_REQUEST_STARTED, FTP_REQUEST_COMPLETE, FTP_RESPONSE_STARTED, FTP_RESPONSE_COMPLETE, FTP_DATA_REQUEST_STARTED, FTP_DATA_REQUEST_COMPLETE, FTP_DATA_RESPONSE_STARTED, FTP_DATA_RESPONSE_COMPLETE, SMB_REQUEST_STARTED, SMB_REQUEST_COMPLETE, SMB_RESPONSE_STARTED, SMB_RESPONSE_COMPLETE, DCERPC_REQUEST_STARTED, DCERPC_REQUEST_COMPLETE, DCERPC_RESPONSE_STARTED, DCERPC_RESPONSE_COMPLETE, NFS_REQUEST_STARTED, NFS_REQUEST_COMPLETE, NFS_RESPONSE_STARTED, NFS_RESPONSE_COMPLETE, KRB5_REQUEST_STARTED, KRB5_REQUEST_COMPLETE, KRB5_RESPONSE_STARTED, KRB5_RESPONSE_COMPLETE, IKE_REQUEST_STARTED, IKE_REQUEST_COMPLETE, IKE_RESPONSE_STARTED, IKE_RESPONSE_COMPLETE, TFTP_REQUEST_STARTED, TFTP_REQUEST_COMPLETE, TFTP_RESPONSE_STARTED, TFTP_RESPONSE_COMPLETE, DHCP_REQUEST_STARTED, DHCP_REQUEST_COMPLETE, DHCP_RESPONSE_STARTED, DHCP_RESPONSE_COMPLETE, QUIC_REQUEST_STARTED, QUIC_REQUEST_COMPLETE, QUIC_RESPONSE_STARTED, QUIC_RESPONSE_COMPLETE, RDP_REQUEST_STARTED, RDP_REQUEST_COMPLETE, RDP_RESPONSE_STARTED, RDP_RESPONSE_COMPLETE, RFB_REQUEST_STARTED, RFB_REQUEST_COMPLETE, RFB_RESPONSE_STARTED, RFB_RESPONSE_COMPLETE, MQTT_REQUEST_STARTED, MQTT_REQUEST_COMPLETE, MQTT_RESPONSE_STARTED, MQTT_RESPONSE_COMPLETE, PGSQL_REQUEST_STARTED, PGSQL_REQUEST_COMPLETE, PGSQL_RESPONSE_STARTED, PGSQL_RESPONSE_COMPLETE, SNMP_REQUEST_STARTED, SNMP_REQUEST_COMPLETE, SNMP_RESPONSE_STARTED, SNMP_RESPONSE_COMPLETE, NTP_REQUEST_STARTED, NTP_REQUEST_COMPLETE, NTP_RESPONSE_STARTED, NTP_RESPONSE_COMPLETE, TELNET_REQUEST_STARTED, TELNET_REQUEST_COMPLETE, TELNET_RESPONSE_STARTED, TELNET_RESPONSE_COMPLETE, WEBSOCKET_REQUEST_STARTED, WEBSOCKET_REQUEST_COMPLETE, WEBSOCKET_RESPONSE_STARTED, WEBSOCKET_RESPONSE_COMPLETE, LDAP_REQUEST_STARTED, LDAP_REQUEST_COMPLETE, LDAP_RESPONSE_STARTED, LDAP_RESPONSE_COMPLETE, POP3_REQUEST_STARTED, POP3_REQUEST_COMPLETE, POP3_RESPONSE_STARTED, POP3_RESPONSE_COMPLETE, MDNS_REQUEST_STARTED, MDNS_REQUEST_COMPLETE, MDNS_RESPONSE_STARTED, MDNS_RESPONSE_COMPLETE, BITTORRENT_DHT_REQUEST_STARTED, BITTORRENT_DHT_REQUEST_COMPLETE, BITTORRENT_DHT_RESPONSE_STARTED, BITTORRENT_DHT_RESPONSE_COMPLETE, DNP3_REQUEST_STARTED, DNP3_REQUEST_COMPLETE, DNP3_RESPONSE_STARTED, DNP3_RESPONSE_COMPLETE, SSH_REQUEST_IN_PROGRESS, SSH_REQUEST_BANNER_WAIT_EOL, SSH_REQUEST_BANNER_DONE, SSH_REQUEST_FINISHED, SSH_RESPONSE_IN_PROGRESS, SSH_RESPONSE_BANNER_WAIT_EOL, SSH_RESPONSE_BANNER_DONE, SSH_RESPONSE_FINISHED
8178
+ # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP, HTTP2, QUIC, ICMPV4, ICMPV6, SCTP, IPV4, IPV6, DOH2, FTP_DATA, NFS, RDP, RFB, MQTT, PGSQL, SNMP, TELNET, WEBSOCKET, LDAP, POP3, MDNS, BITTORRENT_DHT, DNP3
8179
+ # source_i_ps: "Source",
8180
+ # dest_i_ps: "Destination",
8181
+ # source_ports: "Port",
8182
+ # dest_ports: "Port",
8183
+ # rule_options: [
8184
+ # {
8185
+ # keyword: "Keyword", # required
8186
+ # settings: ["Setting"],
8187
+ # },
8188
+ # ],
8189
+ # accept_prior_hooks: false,
8190
+ # alert_enabled: false,
8191
+ # bypass_ips_enabled: false,
8192
+ # rule_metadata: {
8193
+ # rule_enabled: false,
8194
+ # rule_description: "RuleDescriptionText",
8195
+ # },
8196
+ # },
8197
+ # ],
8198
+ # rules_source_list: {
8199
+ # targets: ["CollectionMember_String"], # required
8200
+ # target_types: ["TLS_SNI"], # required, accepts TLS_SNI, HTTP_HOST, AWS_ROUTE_53_RESOLVED_DOMAIN
8201
+ # generated_rules_type: "ALLOWLIST", # required, accepts ALLOWLIST, DENYLIST, REJECTLIST, ALERTLIST
8202
+ # },
8203
+ # },
8204
+ # rule_variables: {
8205
+ # ip_sets: {
8206
+ # "RuleVariableName" => {
8207
+ # definition: ["VariableDefinition"], # required
8208
+ # },
8209
+ # },
8210
+ # port_sets: {
8211
+ # "RuleVariableName" => {
8212
+ # definition: ["VariableDefinition"],
8213
+ # },
8214
+ # },
8215
+ # },
8216
+ # reference_sets: {
8217
+ # ip_set_references: {
8218
+ # "IPSetReferenceName" => {
8219
+ # reference_arn: "ResourceArn",
8220
+ # },
8221
+ # },
8222
+ # },
8223
+ # },
8224
+ # ips_rule_group: {
8225
+ # rules_source: { # required
8226
+ # rules_string: "RulesString",
8227
+ # },
8228
+ # rule_variables: {
8229
+ # ip_sets: {
8230
+ # "RuleVariableName" => {
8231
+ # definition: ["VariableDefinition"], # required
8232
+ # },
8233
+ # },
8234
+ # port_sets: {
8235
+ # "RuleVariableName" => {
8236
+ # definition: ["VariableDefinition"],
8237
+ # },
8238
+ # },
8239
+ # },
8240
+ # reference_sets: {
8241
+ # ip_set_references: {
8242
+ # "IPSetReferenceName" => {
8243
+ # reference_arn: "ResourceArn",
8244
+ # },
8245
+ # },
8246
+ # },
8247
+ # },
7283
8248
  # rules: "RulesString",
7284
- # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN
8249
+ # type: "STATELESS", # accepts STATELESS, STATEFUL, STATEFUL_DOMAIN, FIREWALL, IPS
7285
8250
  # description: "Description",
7286
8251
  # dry_run: false,
7287
8252
  # encryption_configuration: {
@@ -7305,7 +8270,7 @@ module Aws::NetworkFirewall
7305
8270
  # resp.rule_group_response.rule_group_name #=> String
7306
8271
  # resp.rule_group_response.rule_group_id #=> String
7307
8272
  # resp.rule_group_response.description #=> String
7308
- # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN"
8273
+ # resp.rule_group_response.type #=> String, one of "STATELESS", "STATEFUL", "STATEFUL_DOMAIN", "FIREWALL", "IPS"
7309
8274
  # resp.rule_group_response.capacity #=> Integer
7310
8275
  # resp.rule_group_response.rule_group_status #=> String, one of "ACTIVE", "DELETING", "ERROR", "UPDATING"
7311
8276
  # resp.rule_group_response.tags #=> Array
@@ -7582,7 +8547,7 @@ module Aws::NetworkFirewall
7582
8547
  tracer: tracer
7583
8548
  )
7584
8549
  context[:gem_name] = 'aws-sdk-networkfirewall'
7585
- context[:gem_version] = '1.106.0'
8550
+ context[:gem_version] = '1.108.0'
7586
8551
  Seahorse::Client::Request.new(handlers, context)
7587
8552
  end
7588
8553