aws-sdk-networkfirewall 1.68.0 → 1.69.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3eee9d2a57dd5d6a8a284d34c076da48a7383b475ac45ddeaf7e6135a891570
4
- data.tar.gz: e31508218853da16869f7e09d999dc473d69660b2b049b2381dd3d58c700d5ba
3
+ metadata.gz: cad30eb0730be43dba55f8f37ee7f37fa6154e60acc8b8169a6abf148b9166f2
4
+ data.tar.gz: adeec5b752ae386788194748430a990bda96946b679ce8fdc85d430547d7946d
5
5
  SHA512:
6
- metadata.gz: 6e31b196d4f37c74ee591bb1cd61743f8afbba3377c84ba7ae6bb02d1f5cf33c9fa13bba434c7145f7902faccaf2d142513356d022afda58baeedd19c70c0603
7
- data.tar.gz: 4377e6ceff9970632bdd6734c25dd2d361bc69eb7776282073ceded64d95711a646c4a50de0bf7a52ae1b5fd852fb34919773d49cee2f23d5b312d594a05b02d
6
+ metadata.gz: 6af62b765cd8c67599e28c6ad31fc0094c86719a7b7c7b172f94eec21fc8a7448c35426174910fe03964c7b6b540994d397fa8f439b5795e4107684d2e0254c4
7
+ data.tar.gz: 8e076917fc63035dc0ad614b042dd0b07e68005170f1f22d8b578111517a51e16cef815b77044aea543108d413d766ffeaf2ee0ae2aac5b264775e1c7b9b5f30
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.69.0 (2025-06-16)
5
+ ------------------
6
+
7
+ * Feature - You can now create firewalls using a Transit Gateway instead of a VPC, resulting in a TGW attachment.
8
+
4
9
  1.68.0 (2025-06-04)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.68.0
1
+ 1.69.0
@@ -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
  #
@@ -1094,7 +1278,7 @@ module Aws::NetworkFirewall
1094
1278
  # {
1095
1279
  # action: "PASS", # required, accepts PASS, DROP, ALERT, REJECT
1096
1280
  # 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
1281
+ # 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
1282
  # source: "Source", # required
1099
1283
  # source_port: "Port", # required
1100
1284
  # direction: "FORWARD", # required, accepts FORWARD, ANY
@@ -1544,6 +1728,11 @@ module Aws::NetworkFirewall
1544
1728
  # resp.firewall.number_of_associations #=> Integer
1545
1729
  # resp.firewall.enabled_analysis_types #=> Array
1546
1730
  # resp.firewall.enabled_analysis_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST"
1731
+ # resp.firewall.transit_gateway_id #=> String
1732
+ # resp.firewall.transit_gateway_owner_account_id #=> String
1733
+ # resp.firewall.availability_zone_mappings #=> Array
1734
+ # resp.firewall.availability_zone_mappings[0].availability_zone #=> String
1735
+ # resp.firewall.availability_zone_change_protection #=> Boolean
1547
1736
  # resp.firewall_status.status #=> String, one of "PROVISIONING", "DELETING", "READY"
1548
1737
  # resp.firewall_status.configuration_sync_state_summary #=> String, one of "PENDING", "IN_SYNC", "CAPACITY_CONSTRAINED"
1549
1738
  # resp.firewall_status.sync_states #=> Hash
@@ -1558,6 +1747,9 @@ module Aws::NetworkFirewall
1558
1747
  # resp.firewall_status.capacity_usage_summary.cid_rs.utilized_cidr_count #=> Integer
1559
1748
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references #=> Hash
1560
1749
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references["IPSetArn"].resolved_cidr_count #=> Integer
1750
+ # resp.firewall_status.transit_gateway_attachment_sync_state.attachment_id #=> String
1751
+ # 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"
1752
+ # resp.firewall_status.transit_gateway_attachment_sync_state.status_message #=> String
1561
1753
  #
1562
1754
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewall AWS API Documentation
1563
1755
  #
@@ -1618,6 +1810,45 @@ module Aws::NetworkFirewall
1618
1810
  req.send_request(options)
1619
1811
  end
1620
1812
 
1813
+ # Deletes a transit gateway attachment from a Network Firewall. Either
1814
+ # the firewall owner or the transit gateway owner can delete the
1815
+ # attachment.
1816
+ #
1817
+ # After you delete a transit gateway attachment, traffic will no longer
1818
+ # flow through the firewall endpoints.
1819
+ #
1820
+ # After you initiate the delete operation, use DescribeFirewall to
1821
+ # monitor the deletion status.
1822
+ #
1823
+ # @option params [required, String] :transit_gateway_attachment_id
1824
+ # Required. The unique identifier of the transit gateway attachment to
1825
+ # delete.
1826
+ #
1827
+ # @return [Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1828
+ #
1829
+ # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
1830
+ # * {Types::DeleteNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
1831
+ #
1832
+ # @example Request syntax with placeholder values
1833
+ #
1834
+ # resp = client.delete_network_firewall_transit_gateway_attachment({
1835
+ # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
1836
+ # })
1837
+ #
1838
+ # @example Response structure
1839
+ #
1840
+ # resp.transit_gateway_attachment_id #=> String
1841
+ # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
1842
+ #
1843
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteNetworkFirewallTransitGatewayAttachment AWS API Documentation
1844
+ #
1845
+ # @overload delete_network_firewall_transit_gateway_attachment(params = {})
1846
+ # @param [Hash] params ({})
1847
+ def delete_network_firewall_transit_gateway_attachment(params = {}, options = {})
1848
+ req = build_request(:delete_network_firewall_transit_gateway_attachment, params)
1849
+ req.send_request(options)
1850
+ end
1851
+
1621
1852
  # Deletes a resource policy that you created in a PutResourcePolicy
1622
1853
  # request.
1623
1854
  #
@@ -1871,6 +2102,11 @@ module Aws::NetworkFirewall
1871
2102
  # resp.firewall.number_of_associations #=> Integer
1872
2103
  # resp.firewall.enabled_analysis_types #=> Array
1873
2104
  # resp.firewall.enabled_analysis_types[0] #=> String, one of "TLS_SNI", "HTTP_HOST"
2105
+ # resp.firewall.transit_gateway_id #=> String
2106
+ # resp.firewall.transit_gateway_owner_account_id #=> String
2107
+ # resp.firewall.availability_zone_mappings #=> Array
2108
+ # resp.firewall.availability_zone_mappings[0].availability_zone #=> String
2109
+ # resp.firewall.availability_zone_change_protection #=> Boolean
1874
2110
  # resp.firewall_status.status #=> String, one of "PROVISIONING", "DELETING", "READY"
1875
2111
  # resp.firewall_status.configuration_sync_state_summary #=> String, one of "PENDING", "IN_SYNC", "CAPACITY_CONSTRAINED"
1876
2112
  # resp.firewall_status.sync_states #=> Hash
@@ -1885,6 +2121,9 @@ module Aws::NetworkFirewall
1885
2121
  # resp.firewall_status.capacity_usage_summary.cid_rs.utilized_cidr_count #=> Integer
1886
2122
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references #=> Hash
1887
2123
  # resp.firewall_status.capacity_usage_summary.cid_rs.ip_set_references["IPSetArn"].resolved_cidr_count #=> Integer
2124
+ # resp.firewall_status.transit_gateway_attachment_sync_state.attachment_id #=> String
2125
+ # 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"
2126
+ # resp.firewall_status.transit_gateway_attachment_sync_state.status_message #=> String
1888
2127
  #
1889
2128
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewall AWS API Documentation
1890
2129
  #
@@ -1908,6 +2147,7 @@ module Aws::NetworkFirewall
1908
2147
  # * {Types::DescribeFirewallMetadataResponse#description #description} => String
1909
2148
  # * {Types::DescribeFirewallMetadataResponse#status #status} => String
1910
2149
  # * {Types::DescribeFirewallMetadataResponse#supported_availability_zones #supported_availability_zones} => Hash&lt;String,Types::AvailabilityZoneMetadata&gt;
2150
+ # * {Types::DescribeFirewallMetadataResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
1911
2151
  #
1912
2152
  # @example Request syntax with placeholder values
1913
2153
  #
@@ -1923,6 +2163,7 @@ module Aws::NetworkFirewall
1923
2163
  # resp.status #=> String, one of "PROVISIONING", "DELETING", "READY"
1924
2164
  # resp.supported_availability_zones #=> Hash
1925
2165
  # resp.supported_availability_zones["AvailabilityZone"].ip_address_type #=> String, one of "DUALSTACK", "IPV4", "IPV6"
2166
+ # resp.transit_gateway_attachment_id #=> String
1926
2167
  #
1927
2168
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewallMetadata AWS API Documentation
1928
2169
  #
@@ -2223,7 +2464,7 @@ module Aws::NetworkFirewall
2223
2464
  # resp.rule_group.rules_source.rules_source_list.generated_rules_type #=> String, one of "ALLOWLIST", "DENYLIST"
2224
2465
  # resp.rule_group.rules_source.stateful_rules #=> Array
2225
2466
  # 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"
2467
+ # 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
2468
  # resp.rule_group.rules_source.stateful_rules[0].header.source #=> String
2228
2469
  # resp.rule_group.rules_source.stateful_rules[0].header.source_port #=> String
2229
2470
  # resp.rule_group.rules_source.stateful_rules[0].header.direction #=> String, one of "FORWARD", "ANY"
@@ -2480,6 +2721,91 @@ module Aws::NetworkFirewall
2480
2721
  req.send_request(options)
2481
2722
  end
2482
2723
 
2724
+ # Removes the specified Availability Zone associations from a transit
2725
+ # gateway-attached firewall. This removes the firewall endpoints from
2726
+ # these Availability Zones and stops traffic filtering in those zones.
2727
+ # Before removing an Availability Zone, ensure you've updated your
2728
+ # transit gateway route tables to redirect traffic appropriately.
2729
+ #
2730
+ # <note markdown="1"> If `AvailabilityZoneChangeProtection` is enabled, you must first
2731
+ # disable it using UpdateAvailabilityZoneChangeProtection.
2732
+ #
2733
+ # </note>
2734
+ #
2735
+ # To verify the status of your Availability Zone changes, use
2736
+ # DescribeFirewall.
2737
+ #
2738
+ # @option params [String] :update_token
2739
+ # An optional token that you can use for optimistic locking. Network
2740
+ # Firewall returns a token to your requests that access the firewall.
2741
+ # The token marks the state of the firewall resource at the time of the
2742
+ # request.
2743
+ #
2744
+ # To make an unconditional change to the firewall, omit the token in
2745
+ # your update request. Without the token, Network Firewall performs your
2746
+ # updates regardless of whether the firewall has changed since you last
2747
+ # retrieved it.
2748
+ #
2749
+ # To make a conditional change to the firewall, provide the token in
2750
+ # your update request. Network Firewall uses the token to ensure that
2751
+ # the firewall hasn't changed since you last retrieved it. If it has
2752
+ # changed, the operation fails with an `InvalidTokenException`. If this
2753
+ # happens, retrieve the firewall again to get a current copy of it with
2754
+ # a new token. Reapply your changes as needed, then try the operation
2755
+ # again using the new token.
2756
+ #
2757
+ # @option params [String] :firewall_arn
2758
+ # The Amazon Resource Name (ARN) of the firewall.
2759
+ #
2760
+ # You must specify the ARN or the name, and you can specify both.
2761
+ #
2762
+ # @option params [String] :firewall_name
2763
+ # The descriptive name of the firewall. You can't change the name of a
2764
+ # firewall after you create it.
2765
+ #
2766
+ # You must specify the ARN or the name, and you can specify both.
2767
+ #
2768
+ # @option params [required, Array<Types::AvailabilityZoneMapping>] :availability_zone_mappings
2769
+ # Required. The Availability Zones to remove from the firewall's
2770
+ # configuration.
2771
+ #
2772
+ # @return [Types::DisassociateAvailabilityZonesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2773
+ #
2774
+ # * {Types::DisassociateAvailabilityZonesResponse#firewall_arn #firewall_arn} => String
2775
+ # * {Types::DisassociateAvailabilityZonesResponse#firewall_name #firewall_name} => String
2776
+ # * {Types::DisassociateAvailabilityZonesResponse#availability_zone_mappings #availability_zone_mappings} => Array&lt;Types::AvailabilityZoneMapping&gt;
2777
+ # * {Types::DisassociateAvailabilityZonesResponse#update_token #update_token} => String
2778
+ #
2779
+ # @example Request syntax with placeholder values
2780
+ #
2781
+ # resp = client.disassociate_availability_zones({
2782
+ # update_token: "UpdateToken",
2783
+ # firewall_arn: "ResourceArn",
2784
+ # firewall_name: "ResourceName",
2785
+ # availability_zone_mappings: [ # required
2786
+ # {
2787
+ # availability_zone: "AvailabilityZoneMappingString", # required
2788
+ # },
2789
+ # ],
2790
+ # })
2791
+ #
2792
+ # @example Response structure
2793
+ #
2794
+ # resp.firewall_arn #=> String
2795
+ # resp.firewall_name #=> String
2796
+ # resp.availability_zone_mappings #=> Array
2797
+ # resp.availability_zone_mappings[0].availability_zone #=> String
2798
+ # resp.update_token #=> String
2799
+ #
2800
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DisassociateAvailabilityZones AWS API Documentation
2801
+ #
2802
+ # @overload disassociate_availability_zones(params = {})
2803
+ # @param [Hash] params ({})
2804
+ def disassociate_availability_zones(params = {}, options = {})
2805
+ req = build_request(:disassociate_availability_zones, params)
2806
+ req.send_request(options)
2807
+ end
2808
+
2483
2809
  # Removes the specified subnet associations from the firewall. This
2484
2810
  # removes the firewall endpoints from the subnets and removes any
2485
2811
  # network filtering protections that the endpoints were providing.
@@ -2785,6 +3111,7 @@ module Aws::NetworkFirewall
2785
3111
  # resp.firewalls #=> Array
2786
3112
  # resp.firewalls[0].firewall_name #=> String
2787
3113
  # resp.firewalls[0].firewall_arn #=> String
3114
+ # resp.firewalls[0].transit_gateway_attachment_id #=> String
2788
3115
  #
2789
3116
  # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewalls AWS API Documentation
2790
3117
  #
@@ -3298,6 +3625,54 @@ module Aws::NetworkFirewall
3298
3625
  req.send_request(options)
3299
3626
  end
3300
3627
 
3628
+ # Rejects a transit gateway attachment request for Network Firewall.
3629
+ # When you reject the attachment request, Network Firewall cancels the
3630
+ # creation of routing components between the transit gateway and
3631
+ # firewall endpoints.
3632
+ #
3633
+ # Only the transit gateway owner can reject the attachment. After
3634
+ # rejection, no traffic will flow through the firewall endpoints for
3635
+ # this attachment.
3636
+ #
3637
+ # Use DescribeFirewall to monitor the rejection status. To accept the
3638
+ # attachment instead of rejecting it, use
3639
+ # AcceptNetworkFirewallTransitGatewayAttachment.
3640
+ #
3641
+ # <note markdown="1"> Once rejected, you cannot reverse this action. To establish
3642
+ # connectivity, you must create a new transit gateway-attached firewall.
3643
+ #
3644
+ # </note>
3645
+ #
3646
+ # @option params [required, String] :transit_gateway_attachment_id
3647
+ # Required. The unique identifier of the transit gateway attachment to
3648
+ # reject. This ID is returned in the response when creating a transit
3649
+ # gateway-attached firewall.
3650
+ #
3651
+ # @return [Types::RejectNetworkFirewallTransitGatewayAttachmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3652
+ #
3653
+ # * {Types::RejectNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_id #transit_gateway_attachment_id} => String
3654
+ # * {Types::RejectNetworkFirewallTransitGatewayAttachmentResponse#transit_gateway_attachment_status #transit_gateway_attachment_status} => String
3655
+ #
3656
+ # @example Request syntax with placeholder values
3657
+ #
3658
+ # resp = client.reject_network_firewall_transit_gateway_attachment({
3659
+ # transit_gateway_attachment_id: "TransitGatewayAttachmentId", # required
3660
+ # })
3661
+ #
3662
+ # @example Response structure
3663
+ #
3664
+ # resp.transit_gateway_attachment_id #=> String
3665
+ # resp.transit_gateway_attachment_status #=> String, one of "CREATING", "DELETING", "DELETED", "FAILED", "ERROR", "READY", "PENDING_ACCEPTANCE", "REJECTING", "REJECTED"
3666
+ #
3667
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/RejectNetworkFirewallTransitGatewayAttachment AWS API Documentation
3668
+ #
3669
+ # @overload reject_network_firewall_transit_gateway_attachment(params = {})
3670
+ # @param [Hash] params ({})
3671
+ def reject_network_firewall_transit_gateway_attachment(params = {}, options = {})
3672
+ req = build_request(:reject_network_firewall_transit_gateway_attachment, params)
3673
+ req.send_request(options)
3674
+ end
3675
+
3301
3676
  # Generates a traffic analysis report for the timeframe and traffic type
3302
3677
  # you specify.
3303
3678
  #
@@ -3588,6 +3963,85 @@ module Aws::NetworkFirewall
3588
3963
  req.send_request(options)
3589
3964
  end
3590
3965
 
3966
+ # Modifies the `AvailabilityZoneChangeProtection` setting for a transit
3967
+ # gateway-attached firewall. When enabled, this setting prevents
3968
+ # accidental changes to the firewall's Availability Zone configuration.
3969
+ # This helps protect against disrupting traffic flow in production
3970
+ # environments.
3971
+ #
3972
+ # When enabled, you must disable this protection before using
3973
+ # AssociateAvailabilityZones or DisassociateAvailabilityZones to modify
3974
+ # the firewall's Availability Zone configuration.
3975
+ #
3976
+ # @option params [String] :update_token
3977
+ # An optional token that you can use for optimistic locking. Network
3978
+ # Firewall returns a token to your requests that access the firewall.
3979
+ # The token marks the state of the firewall resource at the time of the
3980
+ # request.
3981
+ #
3982
+ # To make an unconditional change to the firewall, omit the token in
3983
+ # your update request. Without the token, Network Firewall performs your
3984
+ # updates regardless of whether the firewall has changed since you last
3985
+ # retrieved it.
3986
+ #
3987
+ # To make a conditional change to the firewall, provide the token in
3988
+ # your update request. Network Firewall uses the token to ensure that
3989
+ # the firewall hasn't changed since you last retrieved it. If it has
3990
+ # changed, the operation fails with an `InvalidTokenException`. If this
3991
+ # happens, retrieve the firewall again to get a current copy of it with
3992
+ # a new token. Reapply your changes as needed, then try the operation
3993
+ # again using the new token.
3994
+ #
3995
+ # @option params [String] :firewall_arn
3996
+ # The Amazon Resource Name (ARN) of the firewall.
3997
+ #
3998
+ # You must specify the ARN or the name, and you can specify both.
3999
+ #
4000
+ # @option params [String] :firewall_name
4001
+ # The descriptive name of the firewall. You can't change the name of a
4002
+ # firewall after you create it.
4003
+ #
4004
+ # You must specify the ARN or the name, and you can specify both.
4005
+ #
4006
+ # @option params [required, Boolean] :availability_zone_change_protection
4007
+ # A setting indicating whether the firewall is protected against changes
4008
+ # to the subnet associations. Use this setting to protect against
4009
+ # accidentally modifying the subnet associations for a firewall that is
4010
+ # in use. When you create a firewall, the operation initializes this
4011
+ # setting to `TRUE`.
4012
+ #
4013
+ # @return [Types::UpdateAvailabilityZoneChangeProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4014
+ #
4015
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#update_token #update_token} => String
4016
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#firewall_arn #firewall_arn} => String
4017
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#firewall_name #firewall_name} => String
4018
+ # * {Types::UpdateAvailabilityZoneChangeProtectionResponse#availability_zone_change_protection #availability_zone_change_protection} => Boolean
4019
+ #
4020
+ # @example Request syntax with placeholder values
4021
+ #
4022
+ # resp = client.update_availability_zone_change_protection({
4023
+ # update_token: "UpdateToken",
4024
+ # firewall_arn: "ResourceArn",
4025
+ # firewall_name: "ResourceName",
4026
+ # availability_zone_change_protection: false, # required
4027
+ # })
4028
+ #
4029
+ # @example Response structure
4030
+ #
4031
+ # resp.update_token #=> String
4032
+ # resp.firewall_arn #=> String
4033
+ # resp.firewall_name #=> String
4034
+ # resp.availability_zone_change_protection #=> Boolean
4035
+ #
4036
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateAvailabilityZoneChangeProtection AWS API Documentation
4037
+ #
4038
+ # @overload update_availability_zone_change_protection(params = {})
4039
+ # @param [Hash] params ({})
4040
+ def update_availability_zone_change_protection(params = {}, options = {})
4041
+ req = build_request(:update_availability_zone_change_protection, params)
4042
+ req.send_request(options)
4043
+ end
4044
+
3591
4045
  # Enables specific types of firewall analysis on a specific firewall you
3592
4046
  # define.
3593
4047
  #
@@ -4345,7 +4799,7 @@ module Aws::NetworkFirewall
4345
4799
  # {
4346
4800
  # action: "PASS", # required, accepts PASS, DROP, ALERT, REJECT
4347
4801
  # 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
4802
+ # 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
4803
  # source: "Source", # required
4350
4804
  # source_port: "Port", # required
4351
4805
  # direction: "FORWARD", # required, accepts FORWARD, ANY
@@ -4717,7 +5171,7 @@ module Aws::NetworkFirewall
4717
5171
  tracer: tracer
4718
5172
  )
4719
5173
  context[:gem_name] = 'aws-sdk-networkfirewall'
4720
- context[:gem_version] = '1.68.0'
5174
+ context[:gem_version] = '1.69.0'
4721
5175
  Seahorse::Client::Request.new(handlers, context)
4722
5176
  end
4723
5177