aws-sdk-networkfirewall 1.62.0 → 1.63.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: d0de4dcb81a4b6f0718ad17384579d62ad6c5b2fc562fe40ee75106bee1f33c2
4
- data.tar.gz: f48328613490532504d50b60d4a5a399a4b97dc8e2ac25ad2c3e27bf1792cfd0
3
+ metadata.gz: ee88978d59808b9ccaaedda619e84f9cdf20389bd228e92453a252c1365a24aa
4
+ data.tar.gz: bbfa78e6674bdd9854845e3b2685a25959fe9ff526a43c9d511a3f7ffa0a1f5e
5
5
  SHA512:
6
- metadata.gz: 386e8f2a4a20cd7ee6a1ec1b34b91796c6c21f8d318d56e8dd9ac41f0746b4deb8d043332adb0efbcc0dd7b115b3b530fd24934adbfadf1f1b7470005d1db5a4
7
- data.tar.gz: 27912302ed96e8eb3b5fae3d1107fb703425fb60966ee36bb61dd09ab96a060ec32f5f9d3e92b379762fdb3e01c7a69997264b445ea08f9b50a90e590e730366
6
+ metadata.gz: 8e77160cee38d609160528d39917d98af9628a5d1e8581b48c421f79d50457b8773201d9b58f389ebc20cc8beaac85d4d6e95075c548e3f868a3116eb04dc769
7
+ data.tar.gz: e985de0d927b44b3b6668251607cdc72acfa99739d972968ee0bb3f4cbc172c2e2d3d190a2a5889a368316de9fa266b59d86f733e32bceb08a32aa0f47354c80
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.63.0 (2025-03-20)
5
+ ------------------
6
+
7
+ * Feature - You can now use flow operations to either flush or capture traffic monitored in your firewall's flow table.
8
+
4
9
  1.62.0 (2025-02-19)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.62.0
1
+ 1.63.0
@@ -1839,6 +1839,69 @@ module Aws::NetworkFirewall
1839
1839
  req.send_request(options)
1840
1840
  end
1841
1841
 
1842
+ # Returns key information about a specific flow operation.
1843
+ #
1844
+ # @option params [required, String] :firewall_arn
1845
+ # The Amazon Resource Name (ARN) of the firewall.
1846
+ #
1847
+ # @option params [String] :availability_zone
1848
+ # The ID of the Availability Zone where the firewall is located. For
1849
+ # example, `us-east-2a`.
1850
+ #
1851
+ # Defines the scope a flow operation. You can use up to 20 filters to
1852
+ # configure a single flow operation.
1853
+ #
1854
+ # @option params [required, String] :flow_operation_id
1855
+ # A unique identifier for the flow operation. This ID is returned in the
1856
+ # responses to start and list commands. You provide to describe
1857
+ # commands.
1858
+ #
1859
+ # @return [Types::DescribeFlowOperationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1860
+ #
1861
+ # * {Types::DescribeFlowOperationResponse#firewall_arn #firewall_arn} => String
1862
+ # * {Types::DescribeFlowOperationResponse#availability_zone #availability_zone} => String
1863
+ # * {Types::DescribeFlowOperationResponse#flow_operation_id #flow_operation_id} => String
1864
+ # * {Types::DescribeFlowOperationResponse#flow_operation_type #flow_operation_type} => String
1865
+ # * {Types::DescribeFlowOperationResponse#flow_operation_status #flow_operation_status} => String
1866
+ # * {Types::DescribeFlowOperationResponse#status_message #status_message} => String
1867
+ # * {Types::DescribeFlowOperationResponse#flow_request_timestamp #flow_request_timestamp} => Time
1868
+ # * {Types::DescribeFlowOperationResponse#flow_operation #flow_operation} => Types::FlowOperation
1869
+ #
1870
+ # @example Request syntax with placeholder values
1871
+ #
1872
+ # resp = client.describe_flow_operation({
1873
+ # firewall_arn: "ResourceArn", # required
1874
+ # availability_zone: "AvailabilityZone",
1875
+ # flow_operation_id: "FlowOperationId", # required
1876
+ # })
1877
+ #
1878
+ # @example Response structure
1879
+ #
1880
+ # resp.firewall_arn #=> String
1881
+ # resp.availability_zone #=> String
1882
+ # resp.flow_operation_id #=> String
1883
+ # resp.flow_operation_type #=> String, one of "FLOW_FLUSH", "FLOW_CAPTURE"
1884
+ # resp.flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
1885
+ # resp.status_message #=> String
1886
+ # resp.flow_request_timestamp #=> Time
1887
+ # resp.flow_operation.minimum_flow_age_in_seconds #=> Integer
1888
+ # resp.flow_operation.flow_filters #=> Array
1889
+ # resp.flow_operation.flow_filters[0].source_address.address_definition #=> String
1890
+ # resp.flow_operation.flow_filters[0].destination_address.address_definition #=> String
1891
+ # resp.flow_operation.flow_filters[0].source_port #=> String
1892
+ # resp.flow_operation.flow_filters[0].destination_port #=> String
1893
+ # resp.flow_operation.flow_filters[0].protocols #=> Array
1894
+ # resp.flow_operation.flow_filters[0].protocols[0] #=> String
1895
+ #
1896
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFlowOperation AWS API Documentation
1897
+ #
1898
+ # @overload describe_flow_operation(params = {})
1899
+ # @param [Hash] params ({})
1900
+ def describe_flow_operation(params = {}, options = {})
1901
+ req = build_request(:describe_flow_operation, params)
1902
+ req.send_request(options)
1903
+ end
1904
+
1842
1905
  # Returns the logging configuration for the specified firewall.
1843
1906
  #
1844
1907
  # @option params [String] :firewall_arn
@@ -2502,6 +2565,170 @@ module Aws::NetworkFirewall
2502
2565
  req.send_request(options)
2503
2566
  end
2504
2567
 
2568
+ # Returns the results of a specific flow operation.
2569
+ #
2570
+ # Flow operations let you manage the flows tracked in the flow table,
2571
+ # also known as the firewall table.
2572
+ #
2573
+ # A flow is network traffic that is monitored by a firewall, either by
2574
+ # stateful or stateless rules. For traffic to be considered part of a
2575
+ # flow, it must share Destination, DestinationPort, Direction, Protocol,
2576
+ # Source, and SourcePort.
2577
+ #
2578
+ # @option params [required, String] :firewall_arn
2579
+ # The Amazon Resource Name (ARN) of the firewall.
2580
+ #
2581
+ # @option params [required, String] :flow_operation_id
2582
+ # A unique identifier for the flow operation. This ID is returned in the
2583
+ # responses to start and list commands. You provide to describe
2584
+ # commands.
2585
+ #
2586
+ # @option params [String] :next_token
2587
+ # When you request a list of objects with a `MaxResults` setting, if the
2588
+ # number of objects that are still available for retrieval exceeds the
2589
+ # maximum you requested, Network Firewall returns a `NextToken` value in
2590
+ # the response. To retrieve the next batch of objects, use the token
2591
+ # returned from the prior request in your next request.
2592
+ #
2593
+ # @option params [Integer] :max_results
2594
+ # The maximum number of objects that you want Network Firewall to return
2595
+ # for this request. If more objects are available, in the response,
2596
+ # Network Firewall provides a `NextToken` value that you can use in a
2597
+ # subsequent call to get the next batch of objects.
2598
+ #
2599
+ # @option params [String] :availability_zone
2600
+ # The ID of the Availability Zone where the firewall is located. For
2601
+ # example, `us-east-2a`.
2602
+ #
2603
+ # Defines the scope a flow operation. You can use up to 20 filters to
2604
+ # configure a single flow operation.
2605
+ #
2606
+ # @return [Types::ListFlowOperationResultsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2607
+ #
2608
+ # * {Types::ListFlowOperationResultsResponse#firewall_arn #firewall_arn} => String
2609
+ # * {Types::ListFlowOperationResultsResponse#availability_zone #availability_zone} => String
2610
+ # * {Types::ListFlowOperationResultsResponse#flow_operation_id #flow_operation_id} => String
2611
+ # * {Types::ListFlowOperationResultsResponse#flow_operation_status #flow_operation_status} => String
2612
+ # * {Types::ListFlowOperationResultsResponse#status_message #status_message} => String
2613
+ # * {Types::ListFlowOperationResultsResponse#flow_request_timestamp #flow_request_timestamp} => Time
2614
+ # * {Types::ListFlowOperationResultsResponse#flows #flows} => Array<Types::Flow>
2615
+ # * {Types::ListFlowOperationResultsResponse#next_token #next_token} => String
2616
+ #
2617
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2618
+ #
2619
+ # @example Request syntax with placeholder values
2620
+ #
2621
+ # resp = client.list_flow_operation_results({
2622
+ # firewall_arn: "ResourceArn", # required
2623
+ # flow_operation_id: "FlowOperationId", # required
2624
+ # next_token: "PaginationToken",
2625
+ # max_results: 1,
2626
+ # availability_zone: "AvailabilityZone",
2627
+ # })
2628
+ #
2629
+ # @example Response structure
2630
+ #
2631
+ # resp.firewall_arn #=> String
2632
+ # resp.availability_zone #=> String
2633
+ # resp.flow_operation_id #=> String
2634
+ # resp.flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
2635
+ # resp.status_message #=> String
2636
+ # resp.flow_request_timestamp #=> Time
2637
+ # resp.flows #=> Array
2638
+ # resp.flows[0].source_address.address_definition #=> String
2639
+ # resp.flows[0].destination_address.address_definition #=> String
2640
+ # resp.flows[0].source_port #=> String
2641
+ # resp.flows[0].destination_port #=> String
2642
+ # resp.flows[0].protocol #=> String
2643
+ # resp.flows[0].age #=> Integer
2644
+ # resp.flows[0].packet_count #=> Integer
2645
+ # resp.flows[0].byte_count #=> Integer
2646
+ # resp.next_token #=> String
2647
+ #
2648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFlowOperationResults AWS API Documentation
2649
+ #
2650
+ # @overload list_flow_operation_results(params = {})
2651
+ # @param [Hash] params ({})
2652
+ def list_flow_operation_results(params = {}, options = {})
2653
+ req = build_request(:list_flow_operation_results, params)
2654
+ req.send_request(options)
2655
+ end
2656
+
2657
+ # Returns a list of all flow operations ran in a specific firewall. You
2658
+ # can optionally narrow the request scope by specifying the operation
2659
+ # type or Availability Zone associated with a firewall's flow
2660
+ # operations.
2661
+ #
2662
+ # Flow operations let you manage the flows tracked in the flow table,
2663
+ # also known as the firewall table.
2664
+ #
2665
+ # A flow is network traffic that is monitored by a firewall, either by
2666
+ # stateful or stateless rules. For traffic to be considered part of a
2667
+ # flow, it must share Destination, DestinationPort, Direction, Protocol,
2668
+ # Source, and SourcePort.
2669
+ #
2670
+ # @option params [required, String] :firewall_arn
2671
+ # The Amazon Resource Name (ARN) of the firewall.
2672
+ #
2673
+ # @option params [String] :availability_zone
2674
+ # The ID of the Availability Zone where the firewall is located. For
2675
+ # example, `us-east-2a`.
2676
+ #
2677
+ # Defines the scope a flow operation. You can use up to 20 filters to
2678
+ # configure a single flow operation.
2679
+ #
2680
+ # @option params [String] :flow_operation_type
2681
+ # An optional string that defines whether any or all operation types are
2682
+ # returned.
2683
+ #
2684
+ # @option params [String] :next_token
2685
+ # When you request a list of objects with a `MaxResults` setting, if the
2686
+ # number of objects that are still available for retrieval exceeds the
2687
+ # maximum you requested, Network Firewall returns a `NextToken` value in
2688
+ # the response. To retrieve the next batch of objects, use the token
2689
+ # returned from the prior request in your next request.
2690
+ #
2691
+ # @option params [Integer] :max_results
2692
+ # The maximum number of objects that you want Network Firewall to return
2693
+ # for this request. If more objects are available, in the response,
2694
+ # Network Firewall provides a `NextToken` value that you can use in a
2695
+ # subsequent call to get the next batch of objects.
2696
+ #
2697
+ # @return [Types::ListFlowOperationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2698
+ #
2699
+ # * {Types::ListFlowOperationsResponse#flow_operations #flow_operations} => Array<Types::FlowOperationMetadata>
2700
+ # * {Types::ListFlowOperationsResponse#next_token #next_token} => String
2701
+ #
2702
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2703
+ #
2704
+ # @example Request syntax with placeholder values
2705
+ #
2706
+ # resp = client.list_flow_operations({
2707
+ # firewall_arn: "ResourceArn", # required
2708
+ # availability_zone: "AvailabilityZone",
2709
+ # flow_operation_type: "FLOW_FLUSH", # accepts FLOW_FLUSH, FLOW_CAPTURE
2710
+ # next_token: "PaginationToken",
2711
+ # max_results: 1,
2712
+ # })
2713
+ #
2714
+ # @example Response structure
2715
+ #
2716
+ # resp.flow_operations #=> Array
2717
+ # resp.flow_operations[0].flow_operation_id #=> String
2718
+ # resp.flow_operations[0].flow_operation_type #=> String, one of "FLOW_FLUSH", "FLOW_CAPTURE"
2719
+ # resp.flow_operations[0].flow_request_timestamp #=> Time
2720
+ # resp.flow_operations[0].flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
2721
+ # resp.next_token #=> String
2722
+ #
2723
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFlowOperations AWS API Documentation
2724
+ #
2725
+ # @overload list_flow_operations(params = {})
2726
+ # @param [Hash] params ({})
2727
+ def list_flow_operations(params = {}, options = {})
2728
+ req = build_request(:list_flow_operations, params)
2729
+ req.send_request(options)
2730
+ end
2731
+
2505
2732
  # Retrieves the metadata for the rule groups that you have defined.
2506
2733
  # Depending on your setting for max results and the number of rule
2507
2734
  # groups, a single call might not return the full list.
@@ -2793,6 +3020,161 @@ module Aws::NetworkFirewall
2793
3020
  req.send_request(options)
2794
3021
  end
2795
3022
 
3023
+ # Begins capturing the flows in a firewall, according to the filters you
3024
+ # define. Captures are similar, but not identical to snapshots. Capture
3025
+ # operations provide visibility into flows that are not closed and are
3026
+ # tracked by a firewall's flow table. Unlike snapshots, captures are a
3027
+ # time-boxed view.
3028
+ #
3029
+ # A flow is network traffic that is monitored by a firewall, either by
3030
+ # stateful or stateless rules. For traffic to be considered part of a
3031
+ # flow, it must share Destination, DestinationPort, Direction, Protocol,
3032
+ # Source, and SourcePort.
3033
+ #
3034
+ # <note markdown="1"> To avoid encountering operation limits, you should avoid starting
3035
+ # captures with broad filters, like wide IP ranges. Instead, we
3036
+ # recommend you define more specific criteria with `FlowFilters`, like
3037
+ # narrow IP ranges, ports, or protocols.
3038
+ #
3039
+ # </note>
3040
+ #
3041
+ # @option params [required, String] :firewall_arn
3042
+ # The Amazon Resource Name (ARN) of the firewall.
3043
+ #
3044
+ # @option params [String] :availability_zone
3045
+ # The ID of the Availability Zone where the firewall is located. For
3046
+ # example, `us-east-2a`.
3047
+ #
3048
+ # Defines the scope a flow operation. You can use up to 20 filters to
3049
+ # configure a single flow operation.
3050
+ #
3051
+ # @option params [Integer] :minimum_flow_age_in_seconds
3052
+ # The reqested `FlowOperation` ignores flows with an age (in seconds)
3053
+ # lower than `MinimumFlowAgeInSeconds`. You provide this for start
3054
+ # commands.
3055
+ #
3056
+ # <note markdown="1"> We recommend setting this value to at least 1 minute (60 seconds) to
3057
+ # reduce chance of capturing flows that are not yet established.
3058
+ #
3059
+ # </note>
3060
+ #
3061
+ # @option params [required, Array<Types::FlowFilter>] :flow_filters
3062
+ # Defines the scope a flow operation. You can use up to 20 filters to
3063
+ # configure a single flow operation.
3064
+ #
3065
+ # @return [Types::StartFlowCaptureResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3066
+ #
3067
+ # * {Types::StartFlowCaptureResponse#firewall_arn #firewall_arn} => String
3068
+ # * {Types::StartFlowCaptureResponse#flow_operation_id #flow_operation_id} => String
3069
+ # * {Types::StartFlowCaptureResponse#flow_operation_status #flow_operation_status} => String
3070
+ #
3071
+ # @example Request syntax with placeholder values
3072
+ #
3073
+ # resp = client.start_flow_capture({
3074
+ # firewall_arn: "ResourceArn", # required
3075
+ # availability_zone: "AvailabilityZone",
3076
+ # minimum_flow_age_in_seconds: 1,
3077
+ # flow_filters: [ # required
3078
+ # {
3079
+ # source_address: {
3080
+ # address_definition: "AddressDefinition", # required
3081
+ # },
3082
+ # destination_address: {
3083
+ # address_definition: "AddressDefinition", # required
3084
+ # },
3085
+ # source_port: "Port",
3086
+ # destination_port: "Port",
3087
+ # protocols: ["ProtocolString"],
3088
+ # },
3089
+ # ],
3090
+ # })
3091
+ #
3092
+ # @example Response structure
3093
+ #
3094
+ # resp.firewall_arn #=> String
3095
+ # resp.flow_operation_id #=> String
3096
+ # resp.flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
3097
+ #
3098
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/StartFlowCapture AWS API Documentation
3099
+ #
3100
+ # @overload start_flow_capture(params = {})
3101
+ # @param [Hash] params ({})
3102
+ def start_flow_capture(params = {}, options = {})
3103
+ req = build_request(:start_flow_capture, params)
3104
+ req.send_request(options)
3105
+ end
3106
+
3107
+ # Begins the flushing of traffic from the firewall, according to the
3108
+ # filters you define. When the operation starts, impacted flows are
3109
+ # temporarily marked as timed out before the Suricata engine prunes, or
3110
+ # flushes, the flows from the firewall table.
3111
+ #
3112
+ # While the flush completes, impacted flows are processed as midstream
3113
+ # traffic. This may result in a temporary increase in midstream traffic
3114
+ # metrics. We recommend that you double check your stream exception
3115
+ # policy before you perform a flush operation.
3116
+ #
3117
+ # @option params [required, String] :firewall_arn
3118
+ # The Amazon Resource Name (ARN) of the firewall.
3119
+ #
3120
+ # @option params [String] :availability_zone
3121
+ # The ID of the Availability Zone where the firewall is located. For
3122
+ # example, `us-east-2a`.
3123
+ #
3124
+ # Defines the scope a flow operation. You can use up to 20 filters to
3125
+ # configure a single flow operation.
3126
+ #
3127
+ # @option params [Integer] :minimum_flow_age_in_seconds
3128
+ # The reqested `FlowOperation` ignores flows with an age (in seconds)
3129
+ # lower than `MinimumFlowAgeInSeconds`. You provide this for start
3130
+ # commands.
3131
+ #
3132
+ # @option params [required, Array<Types::FlowFilter>] :flow_filters
3133
+ # Defines the scope a flow operation. You can use up to 20 filters to
3134
+ # configure a single flow operation.
3135
+ #
3136
+ # @return [Types::StartFlowFlushResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3137
+ #
3138
+ # * {Types::StartFlowFlushResponse#firewall_arn #firewall_arn} => String
3139
+ # * {Types::StartFlowFlushResponse#flow_operation_id #flow_operation_id} => String
3140
+ # * {Types::StartFlowFlushResponse#flow_operation_status #flow_operation_status} => String
3141
+ #
3142
+ # @example Request syntax with placeholder values
3143
+ #
3144
+ # resp = client.start_flow_flush({
3145
+ # firewall_arn: "ResourceArn", # required
3146
+ # availability_zone: "AvailabilityZone",
3147
+ # minimum_flow_age_in_seconds: 1,
3148
+ # flow_filters: [ # required
3149
+ # {
3150
+ # source_address: {
3151
+ # address_definition: "AddressDefinition", # required
3152
+ # },
3153
+ # destination_address: {
3154
+ # address_definition: "AddressDefinition", # required
3155
+ # },
3156
+ # source_port: "Port",
3157
+ # destination_port: "Port",
3158
+ # protocols: ["ProtocolString"],
3159
+ # },
3160
+ # ],
3161
+ # })
3162
+ #
3163
+ # @example Response structure
3164
+ #
3165
+ # resp.firewall_arn #=> String
3166
+ # resp.flow_operation_id #=> String
3167
+ # resp.flow_operation_status #=> String, one of "COMPLETED", "IN_PROGRESS", "FAILED", "COMPLETED_WITH_ERRORS"
3168
+ #
3169
+ # @see http://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/StartFlowFlush AWS API Documentation
3170
+ #
3171
+ # @overload start_flow_flush(params = {})
3172
+ # @param [Hash] params ({})
3173
+ def start_flow_flush(params = {}, options = {})
3174
+ req = build_request(:start_flow_flush, params)
3175
+ req.send_request(options)
3176
+ end
3177
+
2796
3178
  # Adds the specified tags to the specified resource. Tags are key:value
2797
3179
  # pairs that you can use to categorize and manage your resources, for
2798
3180
  # purposes like billing. For example, you might set the tag key to
@@ -3978,7 +4360,7 @@ module Aws::NetworkFirewall
3978
4360
  tracer: tracer
3979
4361
  )
3980
4362
  context[:gem_name] = 'aws-sdk-networkfirewall'
3981
- context[:gem_version] = '1.62.0'
4363
+ context[:gem_version] = '1.63.0'
3982
4364
  Seahorse::Client::Request.new(handlers, context)
3983
4365
  end
3984
4366