aws-sdk-networkfirewall 1.68.0 → 1.70.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.
@@ -476,6 +476,135 @@ module Aws::NetworkFirewall
476
476
 
477
477
  # @!group API Operations
478
478
 
479
+ # Accepts a transit gateway attachment request for Network Firewall.
480
+ # When you accept the attachment request, Network Firewall creates the
481
+ # necessary routing components to enable traffic flow between the
482
+ # transit gateway and firewall endpoints.
483
+ #
484
+ # You must accept a transit gateway attachment to complete the creation
485
+ # of a transit gateway-attached firewall, unless auto-accept is enabled
486
+ # on the transit gateway. After acceptance, use DescribeFirewall to
487
+ # verify the firewall status.
488
+ #
489
+ # To reject an attachment instead of accepting it, use
490
+ # RejectNetworkFirewallTransitGatewayAttachment.
491
+ #
492
+ # <note markdown="1"> It can take several minutes for the attachment acceptance to complete
493
+ # and the firewall to become available.
494
+ #
495
+ # </note>
496
+ #
497
+ # @option params [required, String] :transit_gateway_attachment_id
498
+ # Required. The unique identifier of the transit gateway attachment to
499
+ # accept. This ID is returned in the response when creating a transit
500
+ # gateway-attached firewall.
501
+ #
502
+ # @return [Types::AcceptNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
503
+ #
504
+ # * {Types::AcceptNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
505
+ # * {Types::AcceptNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
506
+ #
507
+ # @example Request syntax with placeholder values
508
+ #
509
+ # resp = client.accept_network_firewall_transit_gateway_attachment({
510
+ # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
511
+ # })
512
+ #
513
+ # @example Response structure
514
+ #
515
+ # resp.transit_gateway_attachment_id #=> String
516
+ # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
517
+ #
518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AcceptNetworkFirewallTransitGatewayAttachment AWS API Documentation
519
+ #
520
+ # @overload accept_network_firewall_transit_gateway_attachment(params = {})
521
+ # @param [Hash] params ({})
522
+ def accept_network_firewall_transit_gateway_attachment(params = {}, options = {})
523
+ req = build_request(:accept_network_firewall_transit_gateway_attachment, params)
524
+ req.send_request(options)
525
+ end
526
+
527
+ # Associates the specified Availability Zones with a transit
528
+ # gateway-attached firewall. For each Availability Zone, Network
529
+ # Firewall creates a firewall endpoint to process traffic. You can
530
+ # specify one or more Availability Zones where you want to deploy the
531
+ # firewall.
532
+ #
533
+ # After adding Availability Zones, you must update your transit gateway
534
+ # route tables to direct traffic through the new firewall endpoints. Use
535
+ # DescribeFirewall to monitor the status of the new endpoints.
536
+ #
537
+ # @option params [String] :update_token
538
+ # An optional token that you can use for optimistic locking. Network
539
+ # Firewall returns a token to your requests that access the firewall.
540
+ # The token marks the state of the firewall resource at the time of the
541
+ # request.
542
+ #
543
+ # To make an unconditional change to the firewall, omit the token in
544
+ # your update request. Without the token, Network Firewall performs your
545
+ # updates regardless of whether the firewall has changed since you last
546
+ # retrieved it.
547
+ #
548
+ # To make a conditional change to the firewall, provide the token in
549
+ # your update request. Network Firewall uses the token to ensure that
550
+ # the firewall hasn't changed since you last retrieved it. If it has
551
+ # changed, the operation fails with an `InvalidTokenException`. If this
552
+ # happens, retrieve the firewall again to get a current copy of it with
553
+ # a new token. Reapply your changes as needed, then try the operation
554
+ # again using the new token.
555
+ #
556
+ # @option params [String] :firewall_arn
557
+ # The Amazon Resource Name (ARN) of the firewall.
558
+ #
559
+ # You must specify the ARN or the name, and you can specify both.
560
+ #
561
+ # @option params [String] :firewall_name
562
+ # The descriptive name of the firewall. You can't change the name of a
563
+ # firewall after you create it.
564
+ #
565
+ # You must specify the ARN or the name, and you can specify both.
566
+ #
567
+ # @option params [required, Array<Types::AvailabilityZoneMapping>] :availability_zone_mappings
568
+ # Required. The Availability Zones where you want to create firewall
569
+ # endpoints. You must specify at least one Availability Zone.
570
+ #
571
+ # @return [Types::AssociateAvailabilityZonesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
572
+ #
573
+ # * {Types::AssociateAvailabilityZonesResponse#firewall_arn #firewall_arn} => String
574
+ # * {Types::AssociateAvailabilityZonesResponse#firewall_name #firewall_name} => String
575
+ # * {Types::AssociateAvailabilityZonesResponse#availability_zone_mappings #availability_zone_mappings} => Array&lt;Types::AvailabilityZoneMapping&gt;
576
+ # * {Types::AssociateAvailabilityZonesResponse#update_token #update_token} => String
577
+ #
578
+ # @example Request syntax with placeholder values
579
+ #
580
+ # resp = client.associate_availability_zones({
581
+ # update_token: "UpdateToken",
582
+ # firewall_arn: "ResourceArn",
583
+ # firewall_name: "ResourceName",
584
+ # availability_zone_mappings: [ # required
585
+ # {
586
+ # availability_zone: "AvailabilityZoneMappingString", # required
587
+ # },
588
+ # ],
589
+ # })
590
+ #
591
+ # @example Response structure
592
+ #
593
+ # resp.firewall_arn #=> String
594
+ # resp.firewall_name #=> String
595
+ # resp.availability_zone_mappings #=> Array
596
+ # resp.availability_zone_mappings[0].availability_zone #=> String
597
+ # resp.update_token #=> String
598
+ #
599
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AssociateAvailabilityZones AWS API Documentation
600
+ #
601
+ # @overload associate_availability_zones(params = {})
602
+ # @param [Hash] params ({})
603
+ def associate_availability_zones(params = {}, options = {})
604
+ req = build_request(:associate_availability_zones, params)
605
+ req.send_request(options)
606
+ end
607
+
479
608
  # Associates a FirewallPolicy to a Firewall.
480
609
  #
481
610
  # A firewall policy defines how to monitor and manage your VPC network
@@ -711,6 +840,46 @@ module Aws::NetworkFirewall
711
840
  # An optional setting indicating the specific traffic analysis types to
712
841
  # enable on the firewall.
713
842
  #
843
+ # @option params [String] :transit_gateway_id
844
+ # Required when creating a transit gateway-attached firewall. The unique
845
+ # identifier of the transit gateway to attach to this firewall. You can
846
+ # provide either a transit gateway from your account or one that has
847
+ # been shared with you through Resource Access Manager.
848
+ #
849
+ # After creating the firewall, you cannot change the transit gateway
850
+ # association. To use a different transit gateway, you must create a new
851
+ # firewall.
852
+ #
853
+ # For information about creating firewalls, see CreateFirewall. For
854
+ # specific guidance about transit gateway-attached firewalls, see
855
+ # [Considerations for transit gateway-attached firewalls][1] in the
856
+ # *Network Firewall Developer Guide*.
857
+ #
858
+ #
859
+ #
860
+ # [1]: https://docs.aws.amazon.com/network-firewall/latest/developerguide/tgw-firewall-considerations.html
861
+ #
862
+ # @option params [Array<Types::AvailabilityZoneMapping>] :availability_zone_mappings
863
+ # Required. The Availability Zones where you want to create firewall
864
+ # endpoints for a transit gateway-attached firewall. You must specify at
865
+ # least one Availability Zone. Consider enabling the firewall in every
866
+ # Availability Zone where you have workloads to maintain Availability
867
+ # Zone independence.
868
+ #
869
+ # You can modify Availability Zones later using
870
+ # AssociateAvailabilityZones or DisassociateAvailabilityZones, but this
871
+ # may briefly disrupt traffic. The `AvailabilityZoneChangeProtection`
872
+ # setting controls whether you can make these modifications.
873
+ #
874
+ # @option params [Boolean] :availability_zone_change_protection
875
+ # Optional. A setting indicating whether the firewall is protected
876
+ # against changes to its Availability Zone configuration. When set to
877
+ # `TRUE`, you cannot add or remove Availability Zones without first
878
+ # disabling this protection using
879
+ # UpdateAvailabilityZoneChangeProtection.
880
+ #
881
+ # Default value: `FALSE`
882
+ #
714
883
  # @return [Types::CreateFirewallResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
715
884
  #
716
885
  # * {Types::CreateFirewallResponse#firewall #firewall} => Types::Firewall
@@ -743,6 +912,13 @@ module Aws::NetworkFirewall
743
912
  # type: "CUSTOMER_KMS", # required, accepts CUSTOMER_KMS, AWS_OWNED_KMS_KEY
744
913
  # },
745
914
  # enabled_analysis_types: ["TLS_SNI"], # accepts TLS_SNI, HTTP_HOST
915
+ # transit_gateway_id: "TransitGatewayId",
916
+ # availability_zone_mappings: [
917
+ # {
918
+ # availability_zone: "AvailabilityZoneMappingString", # required
919
+ # },
920
+ # ],
921
+ # availability_zone_change_protection: false,
746
922
  # })
747
923
  #
748
924
  # @example Response structure
@@ -767,6 +943,11 @@ module Aws::NetworkFirewall
767
943
  # resp.firewall.number_of_associations #=> Integer
768
944
  # resp.firewall.enabled_analysis_types #=> Array
769
945
  # resp.firewall.enabled_analysis_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST"
946
+ # resp.firewall.transit_gateway_id #=> String
947
+ # resp.firewall.transit_gateway_owner_account_id #=> String
948
+ # resp.firewall.availability_zone_mappings #=> Array
949
+ # resp.firewall.availability_zone_mappings[0].availability_zone #=> String
950
+ # resp.firewall.availability_zone_change_protection #=> Boolean
770
951
  # resp.firewall_status.status #=> String, one of "PROVISIONING", "DELETING", "READY"
771
952
  # resp.firewall_status.configuration_sync_state_summary #=> String, one of "PENDING", "IN_SYNC", "CAPACITY_CONSTRAINED"
772
953
  # resp.firewall_status.sync_states #=> Hash
@@ -781,6 +962,9 @@ module Aws::NetworkFirewall
781
962
  # resp.firewall_status.capacity_usage_summary.cid_rs.utilized_cidr_count #=> Integer
782
963
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references #=> Hash
783
964
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references["IPSetArn"].resolved_cidr_count #=> Integer
965
+ # resp.firewall_status.transit_gateway_attachment_sync_state.attachment_id #=> String
966
+ # resp.firewall_status.transit_gateway_attachment_sync_state.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
967
+ # resp.firewall_status.transit_gateway_attachment_sync_state.status_message #=> String
784
968
  #
785
969
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateFirewall AWS API Documentation
786
970
  #
@@ -870,6 +1054,7 @@ module Aws::NetworkFirewall
870
1054
  # override: {
871
1055
  # action: "DROP_TO_ALERT", # accepts DROP_TO_ALERT
872
1056
  # },
1057
+ # deep_threat_inspection: false,
873
1058
  # },
874
1059
  # ],
875
1060
  # stateful_default_actions: ["CollectionMember_String"],
@@ -1054,6 +1239,17 @@ module Aws::NetworkFirewall
1054
1239
  # the rule group for you. To run the stateless rule group analyzer
1055
1240
  # without creating the rule group, set `DryRun` to `TRUE`.
1056
1241
  #
1242
+ # @option params [Types::SummaryConfiguration] :summary_configuration
1243
+ # An object that contains a `RuleOptions` array of strings. You use
1244
+ # `RuleOptions` to determine which of the following RuleSummary values
1245
+ # are returned in response to `DescribeRuleGroupSummary`.
1246
+ #
1247
+ # * `Metadata` - returns
1248
+ #
1249
+ # * `Msg`
1250
+ #
1251
+ # * `SID`
1252
+ #
1057
1253
  # @return [Types::CreateRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1058
1254
  #
1059
1255
  # * {Types::CreateRuleGroupResponse#update_token #update_token} => String
@@ -1094,7 +1290,7 @@ module Aws::NetworkFirewall
1094
1290
  # {
1095
1291
  # action: "PASS", # required, accepts PASS, DROP, ALERT, REJECT
1096
1292
  # header: { # required
1097
- # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP
1293
+ # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP, HTTP2, QUIC
1098
1294
  # source: "Source", # required
1099
1295
  # source_port: "Port", # required
1100
1296
  # direction: "FORWARD", # required, accepts FORWARD, ANY
@@ -1189,6 +1385,9 @@ module Aws::NetworkFirewall
1189
1385
  # source_update_token: "UpdateToken",
1190
1386
  # },
1191
1387
  # analyze_rule_group: false,
1388
+ # summary_configuration: {
1389
+ # rule_options: ["SID"], # accepts SID, MSG, METADATA
1390
+ # },
1192
1391
  # })
1193
1392
  #
1194
1393
  # @example Response structure
@@ -1217,6 +1416,8 @@ module Aws::NetworkFirewall
1217
1416
  # resp.rule_group_response.analysis_results[0].identified_rule_ids[0] #=> String
1218
1417
  # resp.rule_group_response.analysis_results[0].identified_type #=> String, one of "STATELESS_RULE_FORWARDING_ASYMMETRICALLY", "STATELESS_RULE_CONTAINS_TCP_FLAGS"
1219
1418
  # resp.rule_group_response.analysis_results[0].analysis_detail #=> String
1419
+ # resp.rule_group_response.summary_configuration.rule_options #=> Array
1420
+ # resp.rule_group_response.summary_configuration.rule_options[0] #=> String, one of "SID", "MSG", "METADATA"
1220
1421
  #
1221
1422
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateRuleGroup AWS API Documentation
1222
1423
  #
@@ -1544,6 +1745,11 @@ module Aws::NetworkFirewall
1544
1745
  # resp.firewall.number_of_associations #=> Integer
1545
1746
  # resp.firewall.enabled_analysis_types #=> Array
1546
1747
  # resp.firewall.enabled_analysis_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST"
1748
+ # resp.firewall.transit_gateway_id #=> String
1749
+ # resp.firewall.transit_gateway_owner_account_id #=> String
1750
+ # resp.firewall.availability_zone_mappings #=> Array
1751
+ # resp.firewall.availability_zone_mappings[0].availability_zone #=> String
1752
+ # resp.firewall.availability_zone_change_protection #=> Boolean
1547
1753
  # resp.firewall_status.status #=> String, one of "PROVISIONING", "DELETING", "READY"
1548
1754
  # resp.firewall_status.configuration_sync_state_summary #=> String, one of "PENDING", "IN_SYNC", "CAPACITY_CONSTRAINED"
1549
1755
  # resp.firewall_status.sync_states #=> Hash
@@ -1558,6 +1764,9 @@ module Aws::NetworkFirewall
1558
1764
  # resp.firewall_status.capacity_usage_summary.cid_rs.utilized_cidr_count #=> Integer
1559
1765
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references #=> Hash
1560
1766
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references["IPSetArn"].resolved_cidr_count #=> Integer
1767
+ # resp.firewall_status.transit_gateway_attachment_sync_state.attachment_id #=> String
1768
+ # resp.firewall_status.transit_gateway_attachment_sync_state.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
1769
+ # resp.firewall_status.transit_gateway_attachment_sync_state.status_message #=> String
1561
1770
  #
1562
1771
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewall AWS API Documentation
1563
1772
  #
@@ -1618,6 +1827,45 @@ module Aws::NetworkFirewall
1618
1827
  req.send_request(options)
1619
1828
  end
1620
1829
 
1830
+ # Deletes a transit gateway attachment from a Network Firewall. Either
1831
+ # the firewall owner or the transit gateway owner can delete the
1832
+ # attachment.
1833
+ #
1834
+ # After you delete a transit gateway attachment, raffic will no longer
1835
+ # flow through the firewall endpoints.
1836
+ #
1837
+ # After you initiate the delete operation, use DescribeFirewall to
1838
+ # monitor the deletion status.
1839
+ #
1840
+ # @option params [required, String] :transit_gateway_attachment_id
1841
+ # Required. The unique identifier of the transit gateway attachment to
1842
+ # delete.
1843
+ #
1844
+ # @return [Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1845
+ #
1846
+ # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
1847
+ # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
1848
+ #
1849
+ # @example Request syntax with placeholder values
1850
+ #
1851
+ # resp = client.delete_network_firewall_transit_gateway_attachment({
1852
+ # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
1853
+ # })
1854
+ #
1855
+ # @example Response structure
1856
+ #
1857
+ # resp.transit_gateway_attachment_id #=> String
1858
+ # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
1859
+ #
1860
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteNetworkFirewallTransitGatewayAttachment AWS API Documentation
1861
+ #
1862
+ # @overload delete_network_firewall_transit_gateway_attachment(params = {})
1863
+ # @param [Hash] params ({})
1864
+ def delete_network_firewall_transit_gateway_attachment(params = {}, options = {})
1865
+ req = build_request(:delete_network_firewall_transit_gateway_attachment, params)
1866
+ req.send_request(options)
1867
+ end
1868
+
1621
1869
  # Deletes a resource policy that you created in a PutResourcePolicy
1622
1870
  # request.
1623
1871
  #
@@ -1702,6 +1950,8 @@ module Aws::NetworkFirewall
1702
1950
  # resp.rule_group_response.analysis_results[0].identified_rule_ids[0] #=> String
1703
1951
  # resp.rule_group_response.analysis_results[0].identified_type #=> String, one of "STATELESS_RULE_FORWARDING_ASYMMETRICALLY", "STATELESS_RULE_CONTAINS_TCP_FLAGS"
1704
1952
  # resp.rule_group_response.analysis_results[0].analysis_detail #=> String
1953
+ # resp.rule_group_response.summary_configuration.rule_options #=> Array
1954
+ # resp.rule_group_response.summary_configuration.rule_options[0] #=> String, one of "SID", "MSG", "METADATA"
1705
1955
  #
1706
1956
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteRuleGroup AWS API Documentation
1707
1957
  #
@@ -1871,6 +2121,11 @@ module Aws::NetworkFirewall
1871
2121
  # resp.firewall.number_of_associations #=> Integer
1872
2122
  # resp.firewall.enabled_analysis_types #=> Array
1873
2123
  # resp.firewall.enabled_analysis_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST"
2124
+ # resp.firewall.transit_gateway_id #=> String
2125
+ # resp.firewall.transit_gateway_owner_account_id #=> String
2126
+ # resp.firewall.availability_zone_mappings #=> Array
2127
+ # resp.firewall.availability_zone_mappings[0].availability_zone #=> String
2128
+ # resp.firewall.availability_zone_change_protection #=> Boolean
1874
2129
  # resp.firewall_status.status #=> String, one of "PROVISIONING", "DELETING", "READY"
1875
2130
  # resp.firewall_status.configuration_sync_state_summary #=> String, one of "PENDING", "IN_SYNC", "CAPACITY_CONSTRAINED"
1876
2131
  # resp.firewall_status.sync_states #=> Hash
@@ -1885,6 +2140,9 @@ module Aws::NetworkFirewall
1885
2140
  # resp.firewall_status.capacity_usage_summary.cid_rs.utilized_cidr_count #=> Integer
1886
2141
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references #=> Hash
1887
2142
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references["IPSetArn"].resolved_cidr_count #=> Integer
2143
+ # resp.firewall_status.transit_gateway_attachment_sync_state.attachment_id #=> String
2144
+ # resp.firewall_status.transit_gateway_attachment_sync_state.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
2145
+ # resp.firewall_status.transit_gateway_attachment_sync_state.status_message #=> String
1888
2146
  #
1889
2147
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewall AWS API Documentation
1890
2148
  #
@@ -1908,6 +2166,7 @@ module Aws::NetworkFirewall
1908
2166
  # * {Types::DescribeFirewallMetadataResponse#description #description} => String
1909
2167
  # * {Types::DescribeFirewallMetadataResponse#status #status} => String
1910
2168
  # * {Types::DescribeFirewallMetadataResponse#supported_availability_zones #supported_availability_zones} => Hash&lt;String,Types::AvailabilityZoneMetadata&gt;
2169
+ # * {Types::DescribeFirewallMetadataResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
1911
2170
  #
1912
2171
  # @example Request syntax with placeholder values
1913
2172
  #
@@ -1923,6 +2182,7 @@ module Aws::NetworkFirewall
1923
2182
  # resp.status #=> String, one of "PROVISIONING", "DELETING", "READY"
1924
2183
  # resp.supported_availability_zones #=> Hash
1925
2184
  # resp.supported_availability_zones["AvailabilityZone"].ip_address_type #=> String, one of "DUALSTACK", "IPV4", "IPV6"
2185
+ # resp.transit_gateway_attachment_id #=> String
1926
2186
  #
1927
2187
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewallMetadata AWS API Documentation
1928
2188
  #
@@ -1991,6 +2251,7 @@ module Aws::NetworkFirewall
1991
2251
  # resp.firewall_policy.stateful_rule_group_references[0].resource_arn #=> String
1992
2252
  # resp.firewall_policy.stateful_rule_group_references[0].priority #=> Integer
1993
2253
  # resp.firewall_policy.stateful_rule_group_references[0].override.action #=> String, one of "DROP_TO_ALERT"
2254
+ # resp.firewall_policy.stateful_rule_group_references[0].deep_threat_inspection #=> Boolean
1994
2255
  # resp.firewall_policy.stateful_default_actions #=> Array
1995
2256
  # resp.firewall_policy.stateful_default_actions[0] #=> String
1996
2257
  # resp.firewall_policy.stateful_engine_options.rule_order #=> String, one of "DEFAULT_ACTION_ORDER", "STRICT_ORDER"
@@ -2223,7 +2484,7 @@ module Aws::NetworkFirewall
2223
2484
  # resp.rule_group.rules_source.rules_source_list.generated_rules_type #=> String, one of "ALLOWLIST", "DENYLIST"
2224
2485
  # resp.rule_group.rules_source.stateful_rules #=> Array
2225
2486
  # resp.rule_group.rules_source.stateful_rules[0].action #=> String, one of "PASS", "DROP", "ALERT", "REJECT"
2226
- # resp.rule_group.rules_source.stateful_rules[0].header.protocol #=> String, one of "IP", "TCP", "UDP", "ICMP", "HTTP", "FTP", "TLS", "SMB", "DNS", "DCERPC", "SSH", "SMTP", "IMAP", "MSN", "KRB5", "IKEV2", "TFTP", "NTP", "DHCP"
2487
+ # resp.rule_group.rules_source.stateful_rules[0].header.protocol #=> String, one of "IP", "TCP", "UDP", "ICMP", "HTTP", "FTP", "TLS", "SMB", "DNS", "DCERPC", "SSH", "SMTP", "IMAP", "MSN", "KRB5", "IKEV2", "TFTP", "NTP", "DHCP", "HTTP2", "QUIC"
2227
2488
  # resp.rule_group.rules_source.stateful_rules[0].header.source #=> String
2228
2489
  # resp.rule_group.rules_source.stateful_rules[0].header.source_port #=> String
2229
2490
  # resp.rule_group.rules_source.stateful_rules[0].header.direction #=> String, one of "FORWARD", "ANY"
@@ -2282,6 +2543,8 @@ module Aws::NetworkFirewall
2282
2543
  # resp.rule_group_response.analysis_results[0].identified_rule_ids[0] #=> String
2283
2544
  # resp.rule_group_response.analysis_results[0].identified_type #=> String, one of "STATELESS_RULE_FORWARDING_ASYMMETRICALLY", "STATELESS_RULE_CONTAINS_TCP_FLAGS"
2284
2545
  # resp.rule_group_response.analysis_results[0].analysis_detail #=> String
2546
+ # resp.rule_group_response.summary_configuration.rule_options #=> Array
2547
+ # resp.rule_group_response.summary_configuration.rule_options[0] #=> String, one of "SID", "MSG", "METADATA"
2285
2548
  #
2286
2549
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeRuleGroup AWS API Documentation
2287
2550
  #
@@ -2356,6 +2619,69 @@ module Aws::NetworkFirewall
2356
2619
  req.send_request(options)
2357
2620
  end
2358
2621
 
2622
+ # Returns detailed information for a stateful rule group.
2623
+ #
2624
+ # For active threat defense Amazon Web Services managed rule groups,
2625
+ # this operation provides insight into the protections enabled by the
2626
+ # rule group, based on Suricata rule metadata fields. Summaries are
2627
+ # available for rule groups you manage and for active threat defense
2628
+ # Amazon Web Services managed rule groups.
2629
+ #
2630
+ # To modify how threat information appears in summaries, use the
2631
+ # `SummaryConfiguration` parameter in UpdateRuleGroup.
2632
+ #
2633
+ # @option params [String] :rule_group_name
2634
+ # The descriptive name of the rule group. You can't change the name of
2635
+ # a rule group after you create it.
2636
+ #
2637
+ # You must specify the ARN or the name, and you can specify both.
2638
+ #
2639
+ # @option params [String] :rule_group_arn
2640
+ # Required. The Amazon Resource Name (ARN) of the rule group.
2641
+ #
2642
+ # You must specify the ARN or the name, and you can specify both.
2643
+ #
2644
+ # @option params [String] :type
2645
+ # The type of rule group you want a summary for. This is a required
2646
+ # field.
2647
+ #
2648
+ # Valid value: `STATEFUL`
2649
+ #
2650
+ # Note that `STATELESS` exists but is not currently supported. If you
2651
+ # provide `STATELESS`, an exception is returned.
2652
+ #
2653
+ # @return [Types::DescribeRuleGroupSummaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2654
+ #
2655
+ # * {Types::DescribeRuleGroupSummaryResponse#rule_group_name #rule_group_name} => String
2656
+ # * {Types::DescribeRuleGroupSummaryResponse#description #description} => String
2657
+ # * {Types::DescribeRuleGroupSummaryResponse#summary #summary} => Types::Summary
2658
+ #
2659
+ # @example Request syntax with placeholder values
2660
+ #
2661
+ # resp = client.describe_rule_group_summary({
2662
+ # rule_group_name: "ResourceName",
2663
+ # rule_group_arn: "ResourceArn",
2664
+ # type: "STATELESS", # accepts STATELESS, STATEFUL
2665
+ # })
2666
+ #
2667
+ # @example Response structure
2668
+ #
2669
+ # resp.rule_group_name #=> String
2670
+ # resp.description #=> String
2671
+ # resp.summary.rule_summaries #=> Array
2672
+ # resp.summary.rule_summaries[0].sid #=> String
2673
+ # resp.summary.rule_summaries[0].msg #=> String
2674
+ # resp.summary.rule_summaries[0].metadata #=> String
2675
+ #
2676
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeRuleGroupSummary AWS API Documentation
2677
+ #
2678
+ # @overload describe_rule_group_summary(params = {})
2679
+ # @param [Hash] params ({})
2680
+ def describe_rule_group_summary(params = {}, options = {})
2681
+ req = build_request(:describe_rule_group_summary, params)
2682
+ req.send_request(options)
2683
+ end
2684
+
2359
2685
  # Returns the data objects for the specified TLS inspection
2360
2686
  # configuration.
2361
2687
  #
@@ -2480,6 +2806,91 @@ module Aws::NetworkFirewall
2480
2806
  req.send_request(options)
2481
2807
  end
2482
2808
 
2809
+ # Removes the specified Availability Zone associations from a transit
2810
+ # gateway-attached firewall. This removes the firewall endpoints from
2811
+ # these Availability Zones and stops traffic filtering in those zones.
2812
+ # Before removing an Availability Zone, ensure you've updated your
2813
+ # transit gateway route tables to redirect traffic appropriately.
2814
+ #
2815
+ # <note markdown="1"> If `AvailabilityZoneChangeProtection` is enabled, you must first
2816
+ # disable it using UpdateAvailabilityZoneChangeProtection.
2817
+ #
2818
+ # </note>
2819
+ #
2820
+ # To verify the status of your Availability Zone changes, use
2821
+ # DescribeFirewall.
2822
+ #
2823
+ # @option params [String] :update_token
2824
+ # An optional token that you can use for optimistic locking. Network
2825
+ # Firewall returns a token to your requests that access the firewall.
2826
+ # The token marks the state of the firewall resource at the time of the
2827
+ # request.
2828
+ #
2829
+ # To make an unconditional change to the firewall, omit the token in
2830
+ # your update request. Without the token, Network Firewall performs your
2831
+ # updates regardless of whether the firewall has changed since you last
2832
+ # retrieved it.
2833
+ #
2834
+ # To make a conditional change to the firewall, provide the token in
2835
+ # your update request. Network Firewall uses the token to ensure that
2836
+ # the firewall hasn't changed since you last retrieved it. If it has
2837
+ # changed, the operation fails with an `InvalidTokenException`. If this
2838
+ # happens, retrieve the firewall again to get a current copy of it with
2839
+ # a new token. Reapply your changes as needed, then try the operation
2840
+ # again using the new token.
2841
+ #
2842
+ # @option params [String] :firewall_arn
2843
+ # The Amazon Resource Name (ARN) of the firewall.
2844
+ #
2845
+ # You must specify the ARN or the name, and you can specify both.
2846
+ #
2847
+ # @option params [String] :firewall_name
2848
+ # The descriptive name of the firewall. You can't change the name of a
2849
+ # firewall after you create it.
2850
+ #
2851
+ # You must specify the ARN or the name, and you can specify both.
2852
+ #
2853
+ # @option params [required, Array<Types::AvailabilityZoneMapping>] :availability_zone_mappings
2854
+ # Required. The Availability Zones to remove from the firewall's
2855
+ # configuration.
2856
+ #
2857
+ # @return [Types::DisassociateAvailabilityZonesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2858
+ #
2859
+ # * {Types::DisassociateAvailabilityZonesResponse#firewall_arn #firewall_arn} => String
2860
+ # * {Types::DisassociateAvailabilityZonesResponse#firewall_name #firewall_name} => String
2861
+ # * {Types::DisassociateAvailabilityZonesResponse#availability_zone_mappings #availability_zone_mappings} => Array&lt;Types::AvailabilityZoneMapping&gt;
2862
+ # * {Types::DisassociateAvailabilityZonesResponse#update_token #update_token} => String
2863
+ #
2864
+ # @example Request syntax with placeholder values
2865
+ #
2866
+ # resp = client.disassociate_availability_zones({
2867
+ # update_token: "UpdateToken",
2868
+ # firewall_arn: "ResourceArn",
2869
+ # firewall_name: "ResourceName",
2870
+ # availability_zone_mappings: [ # required
2871
+ # {
2872
+ # availability_zone: "AvailabilityZoneMappingString", # required
2873
+ # },
2874
+ # ],
2875
+ # })
2876
+ #
2877
+ # @example Response structure
2878
+ #
2879
+ # resp.firewall_arn #=> String
2880
+ # resp.firewall_name #=> String
2881
+ # resp.availability_zone_mappings #=> Array
2882
+ # resp.availability_zone_mappings[0].availability_zone #=> String
2883
+ # resp.update_token #=> String
2884
+ #
2885
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DisassociateAvailabilityZones AWS API Documentation
2886
+ #
2887
+ # @overload disassociate_availability_zones(params = {})
2888
+ # @param [Hash] params ({})
2889
+ def disassociate_availability_zones(params = {}, options = {})
2890
+ req = build_request(:disassociate_availability_zones, params)
2891
+ req.send_request(options)
2892
+ end
2893
+
2483
2894
  # Removes the specified subnet associations from the firewall. This
2484
2895
  # removes the firewall endpoints from the subnets and removes any
2485
2896
  # network filtering protections that the endpoints were providing.
@@ -2785,6 +3196,7 @@ module Aws::NetworkFirewall
2785
3196
  # resp.firewalls #=> Array
2786
3197
  # resp.firewalls[0].firewall_name #=> String
2787
3198
  # resp.firewalls[0].firewall_arn #=> String
3199
+ # resp.firewalls[0].transit_gateway_attachment_id #=> String
2788
3200
  #
2789
3201
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewalls AWS API Documentation
2790
3202
  #
@@ -3025,7 +3437,7 @@ module Aws::NetworkFirewall
3025
3437
  # next_token: "PaginationToken",
3026
3438
  # max_results: 1,
3027
3439
  # scope: "MANAGED", # accepts MANAGED, ACCOUNT
3028
- # managed_type: "AWS_MANAGED_THREAT_SIGNATURES", # accepts AWS_MANAGED_THREAT_SIGNATURES, AWS_MANAGED_DOMAIN_LISTS
3440
+ # managed_type: "AWS_MANAGED_THREAT_SIGNATURES", # accepts AWS_MANAGED_THREAT_SIGNATURES, AWS_MANAGED_DOMAIN_LISTS, ACTIVE_THREAT_DEFENSE
3029
3441
  # type: "STATELESS", # accepts STATELESS, STATEFUL
3030
3442
  # })
3031
3443
  #
@@ -3298,6 +3710,53 @@ module Aws::NetworkFirewall
3298
3710
  req.send_request(options)
3299
3711
  end
3300
3712
 
3713
+ # Rejects a transit gateway attachment request for Network Firewall.
3714
+ # When you reject the attachment request, Network Firewall cancels the
3715
+ # creation of routing components between the transit gateway and
3716
+ # firewall endpoints.
3717
+ #
3718
+ # Only the firewall owner can reject the attachment. After rejection, no
3719
+ # traffic will flow through the firewall endpoints for this attachment.
3720
+ #
3721
+ # Use DescribeFirewall to monitor the rejection status. To accept the
3722
+ # attachment instead of rejecting it, use
3723
+ # AcceptNetworkFirewallTransitGatewayAttachment.
3724
+ #
3725
+ # <note markdown="1"> Once rejected, you cannot reverse this action. To establish
3726
+ # connectivity, you must create a new transit gateway-attached firewall.
3727
+ #
3728
+ # </note>
3729
+ #
3730
+ # @option params [required, String] :transit_gateway_attachment_id
3731
+ # Required. The unique identifier of the transit gateway attachment to
3732
+ # reject. This ID is returned in the response when creating a transit
3733
+ # gateway-attached firewall.
3734
+ #
3735
+ # @return [Types::RejectNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3736
+ #
3737
+ # * {Types::RejectNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
3738
+ # * {Types::RejectNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
3739
+ #
3740
+ # @example Request syntax with placeholder values
3741
+ #
3742
+ # resp = client.reject_network_firewall_transit_gateway_attachment({
3743
+ # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
3744
+ # })
3745
+ #
3746
+ # @example Response structure
3747
+ #
3748
+ # resp.transit_gateway_attachment_id #=> String
3749
+ # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
3750
+ #
3751
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/RejectNetworkFirewallTransitGatewayAttachment AWS API Documentation
3752
+ #
3753
+ # @overload reject_network_firewall_transit_gateway_attachment(params = {})
3754
+ # @param [Hash] params ({})
3755
+ def reject_network_firewall_transit_gateway_attachment(params = {}, options = {})
3756
+ req = build_request(:reject_network_firewall_transit_gateway_attachment, params)
3757
+ req.send_request(options)
3758
+ end
3759
+
3301
3760
  # Generates a traffic analysis report for the timeframe and traffic type
3302
3761
  # you specify.
3303
3762
  #
@@ -3588,6 +4047,85 @@ module Aws::NetworkFirewall
3588
4047
  req.send_request(options)
3589
4048
  end
3590
4049
 
4050
+ # Modifies the `AvailabilityZoneChangeProtection` setting for a transit
4051
+ # gateway-attached firewall. When enabled, this setting prevents
4052
+ # accidental changes to the firewall's Availability Zone configuration.
4053
+ # This helps protect against disrupting traffic flow in production
4054
+ # environments.
4055
+ #
4056
+ # When enabled, you must disable this protection before using
4057
+ # AssociateAvailabilityZones or DisassociateAvailabilityZones to modify
4058
+ # the firewall's Availability Zone configuration.
4059
+ #
4060
+ # @option params [String] :update_token
4061
+ # An optional token that you can use for optimistic locking. Network
4062
+ # Firewall returns a token to your requests that access the firewall.
4063
+ # The token marks the state of the firewall resource at the time of the
4064
+ # request.
4065
+ #
4066
+ # To make an unconditional change to the firewall, omit the token in
4067
+ # your update request. Without the token, Network Firewall performs your
4068
+ # updates regardless of whether the firewall has changed since you last
4069
+ # retrieved it.
4070
+ #
4071
+ # To make a conditional change to the firewall, provide the token in
4072
+ # your update request. Network Firewall uses the token to ensure that
4073
+ # the firewall hasn't changed since you last retrieved it. If it has
4074
+ # changed, the operation fails with an `InvalidTokenException`. If this
4075
+ # happens, retrieve the firewall again to get a current copy of it with
4076
+ # a new token. Reapply your changes as needed, then try the operation
4077
+ # again using the new token.
4078
+ #
4079
+ # @option params [String] :firewall_arn
4080
+ # The Amazon Resource Name (ARN) of the firewall.
4081
+ #
4082
+ # You must specify the ARN or the name, and you can specify both.
4083
+ #
4084
+ # @option params [String] :firewall_name
4085
+ # The descriptive name of the firewall. You can't change the name of a
4086
+ # firewall after you create it.
4087
+ #
4088
+ # You must specify the ARN or the name, and you can specify both.
4089
+ #
4090
+ # @option params [required, Boolean] :availability_zone_change_protection
4091
+ # A setting indicating whether the firewall is protected against changes
4092
+ # to the subnet associations. Use this setting to protect against
4093
+ # accidentally modifying the subnet associations for a firewall that is
4094
+ # in use. When you create a firewall, the operation initializes this
4095
+ # setting to `TRUE`.
4096
+ #
4097
+ # @return [Types::UpdateAvailabilityZoneChangeProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4098
+ #
4099
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#update_token #update_token} => String
4100
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#firewall_arn #firewall_arn} => String
4101
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#firewall_name #firewall_name} => String
4102
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#availability_zone_change_protection #availability_zone_change_protection} => Boolean
4103
+ #
4104
+ # @example Request syntax with placeholder values
4105
+ #
4106
+ # resp = client.update_availability_zone_change_protection({
4107
+ # update_token: "UpdateToken",
4108
+ # firewall_arn: "ResourceArn",
4109
+ # firewall_name: "ResourceName",
4110
+ # availability_zone_change_protection: false, # required
4111
+ # })
4112
+ #
4113
+ # @example Response structure
4114
+ #
4115
+ # resp.update_token #=> String
4116
+ # resp.firewall_arn #=> String
4117
+ # resp.firewall_name #=> String
4118
+ # resp.availability_zone_change_protection #=> Boolean
4119
+ #
4120
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateAvailabilityZoneChangeProtection AWS API Documentation
4121
+ #
4122
+ # @overload update_availability_zone_change_protection(params = {})
4123
+ # @param [Hash] params ({})
4124
+ def update_availability_zone_change_protection(params = {}, options = {})
4125
+ req = build_request(:update_availability_zone_change_protection, params)
4126
+ req.send_request(options)
4127
+ end
4128
+
3591
4129
  # Enables specific types of firewall analysis on a specific firewall you
3592
4130
  # define.
3593
4131
  #
@@ -3977,6 +4515,7 @@ module Aws::NetworkFirewall
3977
4515
  # override: {
3978
4516
  # action: "DROP_TO_ALERT", # accepts DROP_TO_ALERT
3979
4517
  # },
4518
+ # deep_threat_inspection: false,
3980
4519
  # },
3981
4520
  # ],
3982
4521
  # stateful_default_actions: ["CollectionMember_String"],
@@ -4303,6 +4842,11 @@ module Aws::NetworkFirewall
4303
4842
  # the rule group for you. To run the stateless rule group analyzer
4304
4843
  # without updating the rule group, set `DryRun` to `TRUE`.
4305
4844
  #
4845
+ # @option params [Types::SummaryConfiguration] :summary_configuration
4846
+ # Updates the selected summary configuration for a rule group.
4847
+ #
4848
+ # Changes affect subsequent responses from DescribeRuleGroupSummary.
4849
+ #
4306
4850
  # @return [Types::UpdateRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4307
4851
  #
4308
4852
  # * {Types::UpdateRuleGroupResponse#update_token #update_token} => String
@@ -4345,7 +4889,7 @@ module Aws::NetworkFirewall
4345
4889
  # {
4346
4890
  # action: "PASS", # required, accepts PASS, DROP, ALERT, REJECT
4347
4891
  # header: { # required
4348
- # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP
4892
+ # protocol: "IP", # required, accepts IP, TCP, UDP, ICMP, HTTP, FTP, TLS, SMB, DNS, DCERPC, SSH, SMTP, IMAP, MSN, KRB5, IKEV2, TFTP, NTP, DHCP, HTTP2, QUIC
4349
4893
  # source: "Source", # required
4350
4894
  # source_port: "Port", # required
4351
4895
  # direction: "FORWARD", # required, accepts FORWARD, ANY
@@ -4433,6 +4977,9 @@ module Aws::NetworkFirewall
4433
4977
  # source_update_token: "UpdateToken",
4434
4978
  # },
4435
4979
  # analyze_rule_group: false,
4980
+ # summary_configuration: {
4981
+ # rule_options: ["SID"], # accepts SID, MSG, METADATA
4982
+ # },
4436
4983
  # })
4437
4984
  #
4438
4985
  # @example Response structure
@@ -4461,6 +5008,8 @@ module Aws::NetworkFirewall
4461
5008
  # resp.rule_group_response.analysis_results[0].identified_rule_ids[0] #=> String
4462
5009
  # resp.rule_group_response.analysis_results[0].identified_type #=> String, one of "STATELESS_RULE_FORWARDING_ASYMMETRICALLY", "STATELESS_RULE_CONTAINS_TCP_FLAGS"
4463
5010
  # resp.rule_group_response.analysis_results[0].analysis_detail #=> String
5011
+ # resp.rule_group_response.summary_configuration.rule_options #=> Array
5012
+ # resp.rule_group_response.summary_configuration.rule_options[0] #=> String, one of "SID", "MSG", "METADATA"
4464
5013
  #
4465
5014
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateRuleGroup AWS API Documentation
4466
5015
  #
@@ -4717,7 +5266,7 @@ module Aws::NetworkFirewall
4717
5266
  tracer: tracer
4718
5267
  )
4719
5268
  context[:gem_name] = 'aws-sdk-networkfirewall'
4720
- context[:gem_version] = '1.68.0'
5269
+ context[:gem_version] = '1.70.0'
4721
5270
  Seahorse::Client::Request.new(handlers, context)
4722
5271
  end
4723
5272