@aws-sdk/client-network-firewall 3.750.0 → 3.752.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.
Files changed (42) hide show
  1. package/README.md +36 -1
  2. package/dist-cjs/index.js +213 -0
  3. package/dist-es/NetworkFirewall.js +8 -0
  4. package/dist-es/commands/GetAnalysisReportResultsCommand.js +22 -0
  5. package/dist-es/commands/ListAnalysisReportsCommand.js +22 -0
  6. package/dist-es/commands/StartAnalysisReportCommand.js +22 -0
  7. package/dist-es/commands/UpdateFirewallAnalysisSettingsCommand.js +22 -0
  8. package/dist-es/commands/index.js +4 -0
  9. package/dist-es/models/models_0.js +4 -0
  10. package/dist-es/pagination/GetAnalysisReportResultsPaginator.js +4 -0
  11. package/dist-es/pagination/ListAnalysisReportsPaginator.js +4 -0
  12. package/dist-es/pagination/index.js +2 -0
  13. package/dist-es/protocols/Aws_json1_0.js +127 -0
  14. package/dist-types/NetworkFirewall.d.ts +34 -1
  15. package/dist-types/NetworkFirewallClient.d.ts +10 -3
  16. package/dist-types/commands/CreateFirewallCommand.d.ts +9 -2
  17. package/dist-types/commands/DeleteFirewallCommand.d.ts +3 -0
  18. package/dist-types/commands/DescribeFirewallCommand.d.ts +3 -0
  19. package/dist-types/commands/GetAnalysisReportResultsCommand.d.ts +121 -0
  20. package/dist-types/commands/ListAnalysisReportsCommand.d.ts +108 -0
  21. package/dist-types/commands/StartAnalysisReportCommand.d.ts +100 -0
  22. package/dist-types/commands/UpdateFirewallAnalysisSettingsCommand.d.ts +107 -0
  23. package/dist-types/commands/index.d.ts +4 -0
  24. package/dist-types/index.d.ts +4 -1
  25. package/dist-types/models/models_0.d.ts +335 -6
  26. package/dist-types/pagination/GetAnalysisReportResultsPaginator.d.ts +7 -0
  27. package/dist-types/pagination/ListAnalysisReportsPaginator.d.ts +7 -0
  28. package/dist-types/pagination/index.d.ts +2 -0
  29. package/dist-types/protocols/Aws_json1_0.d.ts +36 -0
  30. package/dist-types/ts3.4/NetworkFirewall.d.ts +70 -0
  31. package/dist-types/ts3.4/NetworkFirewallClient.d.ts +24 -0
  32. package/dist-types/ts3.4/commands/GetAnalysisReportResultsCommand.d.ts +51 -0
  33. package/dist-types/ts3.4/commands/ListAnalysisReportsCommand.d.ts +51 -0
  34. package/dist-types/ts3.4/commands/StartAnalysisReportCommand.d.ts +51 -0
  35. package/dist-types/ts3.4/commands/UpdateFirewallAnalysisSettingsCommand.d.ts +51 -0
  36. package/dist-types/ts3.4/commands/index.d.ts +4 -0
  37. package/dist-types/ts3.4/models/models_0.d.ts +76 -2
  38. package/dist-types/ts3.4/pagination/GetAnalysisReportResultsPaginator.d.ts +11 -0
  39. package/dist-types/ts3.4/pagination/ListAnalysisReportsPaginator.d.ts +11 -0
  40. package/dist-types/ts3.4/pagination/index.d.ts +2 -0
  41. package/dist-types/ts3.4/protocols/Aws_json1_0.d.ts +48 -0
  42. package/package.json +1 -1
@@ -0,0 +1,100 @@
1
+ import { Command as $Command } from "@smithy/smithy-client";
2
+ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
3
+ import { StartAnalysisReportRequest, StartAnalysisReportResponse } from "../models/models_0";
4
+ import { NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkFirewallClient";
5
+ /**
6
+ * @public
7
+ */
8
+ export type { __MetadataBearer };
9
+ export { $Command };
10
+ /**
11
+ * @public
12
+ *
13
+ * The input for {@link StartAnalysisReportCommand}.
14
+ */
15
+ export interface StartAnalysisReportCommandInput extends StartAnalysisReportRequest {
16
+ }
17
+ /**
18
+ * @public
19
+ *
20
+ * The output of {@link StartAnalysisReportCommand}.
21
+ */
22
+ export interface StartAnalysisReportCommandOutput extends StartAnalysisReportResponse, __MetadataBearer {
23
+ }
24
+ declare const StartAnalysisReportCommand_base: {
25
+ new (input: StartAnalysisReportCommandInput): import("@smithy/smithy-client").CommandImpl<StartAnalysisReportCommandInput, StartAnalysisReportCommandOutput, NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
26
+ new (__0_0: StartAnalysisReportCommandInput): import("@smithy/smithy-client").CommandImpl<StartAnalysisReportCommandInput, StartAnalysisReportCommandOutput, NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
27
+ getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
28
+ };
29
+ /**
30
+ * <p>Generates a traffic analysis report for the timeframe and traffic type you specify.</p>
31
+ * <p>For information on the contents of a traffic analysis report, see <a>AnalysisReport</a>.</p>
32
+ * @example
33
+ * Use a bare-bones client and the command you need to make an API call.
34
+ * ```javascript
35
+ * import { NetworkFirewallClient, StartAnalysisReportCommand } from "@aws-sdk/client-network-firewall"; // ES Modules import
36
+ * // const { NetworkFirewallClient, StartAnalysisReportCommand } = require("@aws-sdk/client-network-firewall"); // CommonJS import
37
+ * const client = new NetworkFirewallClient(config);
38
+ * const input = { // StartAnalysisReportRequest
39
+ * FirewallName: "STRING_VALUE",
40
+ * FirewallArn: "STRING_VALUE",
41
+ * AnalysisType: "TLS_SNI" || "HTTP_HOST", // required
42
+ * };
43
+ * const command = new StartAnalysisReportCommand(input);
44
+ * const response = await client.send(command);
45
+ * // { // StartAnalysisReportResponse
46
+ * // AnalysisReportId: "STRING_VALUE", // required
47
+ * // };
48
+ *
49
+ * ```
50
+ *
51
+ * @param StartAnalysisReportCommandInput - {@link StartAnalysisReportCommandInput}
52
+ * @returns {@link StartAnalysisReportCommandOutput}
53
+ * @see {@link StartAnalysisReportCommandInput} for command's `input` shape.
54
+ * @see {@link StartAnalysisReportCommandOutput} for command's `response` shape.
55
+ * @see {@link NetworkFirewallClientResolvedConfig | config} for NetworkFirewallClient's `config` shape.
56
+ *
57
+ * @throws {@link InternalServerError} (server fault)
58
+ * <p>Your request is valid, but Network Firewall couldn't perform the operation because of a
59
+ * system problem. Retry your request. </p>
60
+ *
61
+ * @throws {@link InvalidRequestException} (client fault)
62
+ * <p>The operation failed because of a problem with your request. Examples include: </p>
63
+ * <ul>
64
+ * <li>
65
+ * <p>You specified an unsupported parameter name or value.</p>
66
+ * </li>
67
+ * <li>
68
+ * <p>You tried to update a property with a value that isn't among the available
69
+ * types.</p>
70
+ * </li>
71
+ * <li>
72
+ * <p>Your request references an ARN that is malformed, or corresponds to a resource
73
+ * that isn't valid in the context of the request.</p>
74
+ * </li>
75
+ * </ul>
76
+ *
77
+ * @throws {@link ResourceNotFoundException} (client fault)
78
+ * <p>Unable to locate a resource using the parameters that you provided.</p>
79
+ *
80
+ * @throws {@link ThrottlingException} (client fault)
81
+ * <p>Unable to process the request due to throttling limitations.</p>
82
+ *
83
+ * @throws {@link NetworkFirewallServiceException}
84
+ * <p>Base exception class for all service exceptions from NetworkFirewall service.</p>
85
+ *
86
+ * @public
87
+ */
88
+ export declare class StartAnalysisReportCommand extends StartAnalysisReportCommand_base {
89
+ /** @internal type navigation helper, not in runtime. */
90
+ protected static __types: {
91
+ api: {
92
+ input: StartAnalysisReportRequest;
93
+ output: StartAnalysisReportResponse;
94
+ };
95
+ sdk: {
96
+ input: StartAnalysisReportCommandInput;
97
+ output: StartAnalysisReportCommandOutput;
98
+ };
99
+ };
100
+ }
@@ -0,0 +1,107 @@
1
+ import { Command as $Command } from "@smithy/smithy-client";
2
+ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
3
+ import { UpdateFirewallAnalysisSettingsRequest, UpdateFirewallAnalysisSettingsResponse } from "../models/models_0";
4
+ import { NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkFirewallClient";
5
+ /**
6
+ * @public
7
+ */
8
+ export type { __MetadataBearer };
9
+ export { $Command };
10
+ /**
11
+ * @public
12
+ *
13
+ * The input for {@link UpdateFirewallAnalysisSettingsCommand}.
14
+ */
15
+ export interface UpdateFirewallAnalysisSettingsCommandInput extends UpdateFirewallAnalysisSettingsRequest {
16
+ }
17
+ /**
18
+ * @public
19
+ *
20
+ * The output of {@link UpdateFirewallAnalysisSettingsCommand}.
21
+ */
22
+ export interface UpdateFirewallAnalysisSettingsCommandOutput extends UpdateFirewallAnalysisSettingsResponse, __MetadataBearer {
23
+ }
24
+ declare const UpdateFirewallAnalysisSettingsCommand_base: {
25
+ new (input: UpdateFirewallAnalysisSettingsCommandInput): import("@smithy/smithy-client").CommandImpl<UpdateFirewallAnalysisSettingsCommandInput, UpdateFirewallAnalysisSettingsCommandOutput, NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
26
+ new (...[input]: [] | [UpdateFirewallAnalysisSettingsCommandInput]): import("@smithy/smithy-client").CommandImpl<UpdateFirewallAnalysisSettingsCommandInput, UpdateFirewallAnalysisSettingsCommandOutput, NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
27
+ getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
28
+ };
29
+ /**
30
+ * <p>Enables specific types of firewall analysis on a specific firewall you define.</p>
31
+ * @example
32
+ * Use a bare-bones client and the command you need to make an API call.
33
+ * ```javascript
34
+ * import { NetworkFirewallClient, UpdateFirewallAnalysisSettingsCommand } from "@aws-sdk/client-network-firewall"; // ES Modules import
35
+ * // const { NetworkFirewallClient, UpdateFirewallAnalysisSettingsCommand } = require("@aws-sdk/client-network-firewall"); // CommonJS import
36
+ * const client = new NetworkFirewallClient(config);
37
+ * const input = { // UpdateFirewallAnalysisSettingsRequest
38
+ * EnabledAnalysisTypes: [ // EnabledAnalysisTypes
39
+ * "TLS_SNI" || "HTTP_HOST",
40
+ * ],
41
+ * FirewallArn: "STRING_VALUE",
42
+ * FirewallName: "STRING_VALUE",
43
+ * UpdateToken: "STRING_VALUE",
44
+ * };
45
+ * const command = new UpdateFirewallAnalysisSettingsCommand(input);
46
+ * const response = await client.send(command);
47
+ * // { // UpdateFirewallAnalysisSettingsResponse
48
+ * // EnabledAnalysisTypes: [ // EnabledAnalysisTypes
49
+ * // "TLS_SNI" || "HTTP_HOST",
50
+ * // ],
51
+ * // FirewallArn: "STRING_VALUE",
52
+ * // FirewallName: "STRING_VALUE",
53
+ * // UpdateToken: "STRING_VALUE",
54
+ * // };
55
+ *
56
+ * ```
57
+ *
58
+ * @param UpdateFirewallAnalysisSettingsCommandInput - {@link UpdateFirewallAnalysisSettingsCommandInput}
59
+ * @returns {@link UpdateFirewallAnalysisSettingsCommandOutput}
60
+ * @see {@link UpdateFirewallAnalysisSettingsCommandInput} for command's `input` shape.
61
+ * @see {@link UpdateFirewallAnalysisSettingsCommandOutput} for command's `response` shape.
62
+ * @see {@link NetworkFirewallClientResolvedConfig | config} for NetworkFirewallClient's `config` shape.
63
+ *
64
+ * @throws {@link InternalServerError} (server fault)
65
+ * <p>Your request is valid, but Network Firewall couldn't perform the operation because of a
66
+ * system problem. Retry your request. </p>
67
+ *
68
+ * @throws {@link InvalidRequestException} (client fault)
69
+ * <p>The operation failed because of a problem with your request. Examples include: </p>
70
+ * <ul>
71
+ * <li>
72
+ * <p>You specified an unsupported parameter name or value.</p>
73
+ * </li>
74
+ * <li>
75
+ * <p>You tried to update a property with a value that isn't among the available
76
+ * types.</p>
77
+ * </li>
78
+ * <li>
79
+ * <p>Your request references an ARN that is malformed, or corresponds to a resource
80
+ * that isn't valid in the context of the request.</p>
81
+ * </li>
82
+ * </ul>
83
+ *
84
+ * @throws {@link ResourceNotFoundException} (client fault)
85
+ * <p>Unable to locate a resource using the parameters that you provided.</p>
86
+ *
87
+ * @throws {@link ThrottlingException} (client fault)
88
+ * <p>Unable to process the request due to throttling limitations.</p>
89
+ *
90
+ * @throws {@link NetworkFirewallServiceException}
91
+ * <p>Base exception class for all service exceptions from NetworkFirewall service.</p>
92
+ *
93
+ * @public
94
+ */
95
+ export declare class UpdateFirewallAnalysisSettingsCommand extends UpdateFirewallAnalysisSettingsCommand_base {
96
+ /** @internal type navigation helper, not in runtime. */
97
+ protected static __types: {
98
+ api: {
99
+ input: UpdateFirewallAnalysisSettingsRequest;
100
+ output: UpdateFirewallAnalysisSettingsResponse;
101
+ };
102
+ sdk: {
103
+ input: UpdateFirewallAnalysisSettingsCommandInput;
104
+ output: UpdateFirewallAnalysisSettingsCommandOutput;
105
+ };
106
+ };
107
+ }
@@ -17,14 +17,18 @@ export * from "./DescribeRuleGroupCommand";
17
17
  export * from "./DescribeRuleGroupMetadataCommand";
18
18
  export * from "./DescribeTLSInspectionConfigurationCommand";
19
19
  export * from "./DisassociateSubnetsCommand";
20
+ export * from "./GetAnalysisReportResultsCommand";
21
+ export * from "./ListAnalysisReportsCommand";
20
22
  export * from "./ListFirewallPoliciesCommand";
21
23
  export * from "./ListFirewallsCommand";
22
24
  export * from "./ListRuleGroupsCommand";
23
25
  export * from "./ListTLSInspectionConfigurationsCommand";
24
26
  export * from "./ListTagsForResourceCommand";
25
27
  export * from "./PutResourcePolicyCommand";
28
+ export * from "./StartAnalysisReportCommand";
26
29
  export * from "./TagResourceCommand";
27
30
  export * from "./UntagResourceCommand";
31
+ export * from "./UpdateFirewallAnalysisSettingsCommand";
28
32
  export * from "./UpdateFirewallDeleteProtectionCommand";
29
33
  export * from "./UpdateFirewallDescriptionCommand";
30
34
  export * from "./UpdateFirewallEncryptionConfigurationCommand";
@@ -25,7 +25,10 @@
25
25
  * prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the
26
26
  * perimeter of your VPC. This includes filtering traffic going to and coming from an internet
27
27
  * gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible
28
- * with Suricata, a free, open source network analysis and threat detection engine. </p>
28
+ * with Suricata, a free, open source network analysis and threat detection engine.
29
+ * Network Firewall supports Suricata version 7.0.3. For information about Suricata,
30
+ * see the <a href="https://suricata.io/">Suricata website</a> and the
31
+ * <a href="https://suricata.readthedocs.io/en/suricata-7.0.3/">Suricata User Guide</a>. </p>
29
32
  * <p>You can use Network Firewall to monitor and protect your VPC traffic in a number of ways.
30
33
  * The following are just a few examples: </p>
31
34
  * <ul>
@@ -75,6 +75,106 @@ export interface Address {
75
75
  */
76
76
  AddressDefinition: string | undefined;
77
77
  }
78
+ /**
79
+ * @public
80
+ * @enum
81
+ */
82
+ export declare const EnabledAnalysisType: {
83
+ readonly HTTP_HOST: "HTTP_HOST";
84
+ readonly TLS_SNI: "TLS_SNI";
85
+ };
86
+ /**
87
+ * @public
88
+ */
89
+ export type EnabledAnalysisType = (typeof EnabledAnalysisType)[keyof typeof EnabledAnalysisType];
90
+ /**
91
+ * <p>A report that captures key activity from the last 30 days of network traffic monitored by your firewall.</p>
92
+ * <p>You can generate up to one report per traffic type, per 30 day period. For example, when you successfully create an HTTP traffic report,
93
+ * you cannot create another HTTP traffic report until 30 days pass. Alternatively, if you generate a report that combines metrics on both HTTP
94
+ * and HTTPS traffic, you cannot create another report for either traffic type until 30 days pass.</p>
95
+ * @public
96
+ */
97
+ export interface AnalysisReport {
98
+ /**
99
+ * <p>The unique ID of the query that ran when you requested an analysis report. </p>
100
+ * @public
101
+ */
102
+ AnalysisReportId?: string | undefined;
103
+ /**
104
+ * <p>The type of traffic that will be used to generate a report. </p>
105
+ * @public
106
+ */
107
+ AnalysisType?: EnabledAnalysisType | undefined;
108
+ /**
109
+ * <p>The date and time the analysis report was ran. </p>
110
+ * @public
111
+ */
112
+ ReportTime?: Date | undefined;
113
+ /**
114
+ * <p>The status of the analysis report you specify. Statuses include <code>RUNNING</code>, <code>COMPLETED</code>, or <code>FAILED</code>.</p>
115
+ * @public
116
+ */
117
+ Status?: string | undefined;
118
+ }
119
+ /**
120
+ * <p>Attempts made to a access domain.</p>
121
+ * @public
122
+ */
123
+ export interface Hits {
124
+ /**
125
+ * <p>The number of attempts made to access a domain.</p>
126
+ * @public
127
+ */
128
+ Count?: number | undefined;
129
+ }
130
+ /**
131
+ * <p>A unique source IP address that connected to a domain.</p>
132
+ * @public
133
+ */
134
+ export interface UniqueSources {
135
+ /**
136
+ * <p>The number of unique source IP addresses that connected to a domain.</p>
137
+ * @public
138
+ */
139
+ Count?: number | undefined;
140
+ }
141
+ /**
142
+ * <p>The results of a <code>COMPLETED</code> analysis report generated with <a>StartAnalysisReport</a>.</p>
143
+ * <p>For an example of traffic analysis report results, see the response syntax of <a>GetAnalysisReportResults</a>.</p>
144
+ * @public
145
+ */
146
+ export interface AnalysisTypeReportResult {
147
+ /**
148
+ * <p>The type of traffic captured by the analysis report.</p>
149
+ * @public
150
+ */
151
+ Protocol?: string | undefined;
152
+ /**
153
+ * <p>The date and time any domain was first accessed (within the last 30 day period).</p>
154
+ * @public
155
+ */
156
+ FirstAccessed?: Date | undefined;
157
+ /**
158
+ * <p>The date and time any domain was last accessed (within the last 30 day period).</p>
159
+ * @public
160
+ */
161
+ LastAccessed?: Date | undefined;
162
+ /**
163
+ * <p>The most frequently accessed domains.</p>
164
+ * @public
165
+ */
166
+ Domain?: string | undefined;
167
+ /**
168
+ * <p>The number of attempts made to access a observed domain.</p>
169
+ * @public
170
+ */
171
+ Hits?: Hits | undefined;
172
+ /**
173
+ * <p>The number of unique source IP addresses that connected to a domain.</p>
174
+ * @public
175
+ */
176
+ UniqueSources?: UniqueSources | undefined;
177
+ }
78
178
  /**
79
179
  * @public
80
180
  * @enum
@@ -89,6 +189,7 @@ export declare const IdentifiedType: {
89
189
  export type IdentifiedType = (typeof IdentifiedType)[keyof typeof IdentifiedType];
90
190
  /**
91
191
  * <p>The analysis result for Network Firewall's stateless rule group analyzer. Every time you call <a>CreateRuleGroup</a>, <a>UpdateRuleGroup</a>, or <a>DescribeRuleGroup</a> on a stateless rule group, Network Firewall analyzes the stateless rule groups in your account and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in a list of analysis results.</p>
192
+ * <p>The <code>AnalysisResult</code> data type is not related to traffic analysis reports you generate using <a>StartAnalysisReport</a>. For information on traffic analysis report results, see <a>AnalysisTypeReportResult</a>.</p>
92
193
  * @public
93
194
  */
94
195
  export interface AnalysisResult {
@@ -643,14 +744,14 @@ export interface CreateFirewallRequest {
643
744
  * <p>You can't change this setting after you create the firewall. </p>
644
745
  * @public
645
746
  */
646
- VpcId: string | undefined;
747
+ VpcId?: string | undefined;
647
748
  /**
648
749
  * <p>The public subnets to use for your Network Firewall firewalls. Each subnet must belong to a
649
750
  * different Availability Zone in the VPC. Network Firewall creates a firewall endpoint in each
650
751
  * subnet. </p>
651
752
  * @public
652
753
  */
653
- SubnetMappings: SubnetMapping[] | undefined;
754
+ SubnetMappings?: SubnetMapping[] | undefined;
654
755
  /**
655
756
  * <p>A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates
656
757
  * that the firewall is protected against deletion. Use this setting to protect against
@@ -687,6 +788,11 @@ export interface CreateFirewallRequest {
687
788
  * @public
688
789
  */
689
790
  EncryptionConfiguration?: EncryptionConfiguration | undefined;
791
+ /**
792
+ * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
793
+ * @public
794
+ */
795
+ EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
690
796
  }
691
797
  /**
692
798
  * <p>The firewall defines the configuration settings for an Network Firewall firewall. These settings include the firewall policy, the subnets in your VPC to use for the firewall endpoints, and any tags that are attached to the firewall Amazon Web Services resource. </p>
@@ -766,6 +872,11 @@ export interface Firewall {
766
872
  * @public
767
873
  */
768
874
  EncryptionConfiguration?: EncryptionConfiguration | undefined;
875
+ /**
876
+ * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
877
+ * @public
878
+ */
879
+ EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
769
880
  }
770
881
  /**
771
882
  * @public
@@ -1596,12 +1707,12 @@ export interface Header {
1596
1707
  */
1597
1708
  export interface RuleOption {
1598
1709
  /**
1599
- * <p>The keyword for the Suricata compatible rule option. You must include a <code>sid</code> (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see <a href="https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html#rule-options">Rule options</a> in the Suricata documentation.</p>
1710
+ * <p>The keyword for the Suricata compatible rule option. You must include a <code>sid</code> (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see <a href="https://suricata.readthedocs.io/en/suricata-7.0.3/rules/intro.html#rule-options">Rule options</a> in the Suricata documentation.</p>
1600
1711
  * @public
1601
1712
  */
1602
1713
  Keyword: string | undefined;
1603
1714
  /**
1604
- * <p>The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the <code>Keyword</code>. For more information about the settings for specific options, see <a href="https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html#rule-options">Rule options</a>.</p>
1715
+ * <p>The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the <code>Keyword</code>. For more information about the settings for specific options, see <a href="https://suricata.readthedocs.io/en/suricata-7.0.3/rules/intro.html#rule-options">Rule options</a>.</p>
1605
1716
  * @public
1606
1717
  */
1607
1718
  Settings?: string[] | undefined;
@@ -1610,7 +1721,7 @@ export interface RuleOption {
1610
1721
  * <p>A single Suricata rules specification, for use in a stateful rule group.
1611
1722
  * Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options.
1612
1723
  * For information about the Suricata <code>Rules</code> format, see
1613
- * <a href="https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html">Rules Format</a>. </p>
1724
+ * <a href="https://suricata.readthedocs.io/en/suricata-7.0.3/rules/intro.html">Rules Format</a>. </p>
1614
1725
  * @public
1615
1726
  */
1616
1727
  export interface StatefulRule {
@@ -1899,7 +2010,7 @@ export interface RulesSource {
1899
2010
  * <p>An array of individual stateful rules inspection criteria to be used together in a stateful rule group.
1900
2011
  * Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options.
1901
2012
  * For information about the Suricata <code>Rules</code> format, see
1902
- * <a href="https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html">Rules Format</a>. </p>
2013
+ * <a href="https://suricata.readthedocs.io/en/suricata-7.0.3/rules/intro.html">Rules Format</a>. </p>
1903
2014
  * @public
1904
2015
  */
1905
2016
  StatefulRules?: StatefulRule[] | undefined;
@@ -3120,6 +3231,134 @@ export interface FirewallPolicyMetadata {
3120
3231
  */
3121
3232
  Arn?: string | undefined;
3122
3233
  }
3234
+ /**
3235
+ * @public
3236
+ */
3237
+ export interface GetAnalysisReportResultsRequest {
3238
+ /**
3239
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
3240
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3241
+ * @public
3242
+ */
3243
+ FirewallName?: string | undefined;
3244
+ /**
3245
+ * <p>The unique ID of the query that ran when you requested an analysis report. </p>
3246
+ * @public
3247
+ */
3248
+ AnalysisReportId: string | undefined;
3249
+ /**
3250
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
3251
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3252
+ * @public
3253
+ */
3254
+ FirewallArn?: string | undefined;
3255
+ /**
3256
+ * <p>When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available
3257
+ * for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code>
3258
+ * value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.</p>
3259
+ * @public
3260
+ */
3261
+ NextToken?: string | undefined;
3262
+ /**
3263
+ * <p>The maximum number of objects that you want Network Firewall to return for this request. If more
3264
+ * objects are available, in the response, Network Firewall provides a
3265
+ * <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.</p>
3266
+ * @public
3267
+ */
3268
+ MaxResults?: number | undefined;
3269
+ }
3270
+ /**
3271
+ * @public
3272
+ */
3273
+ export interface GetAnalysisReportResultsResponse {
3274
+ /**
3275
+ * <p>The status of the analysis report you specify. Statuses include <code>RUNNING</code>, <code>COMPLETED</code>, or <code>FAILED</code>.</p>
3276
+ * @public
3277
+ */
3278
+ Status?: string | undefined;
3279
+ /**
3280
+ * <p> The date and time within the last 30 days from which to start retrieving analysis data,
3281
+ * in UTC format (for example, <code>YYYY-MM-DDTHH:MM:SSZ</code>. </p>
3282
+ * @public
3283
+ */
3284
+ StartTime?: Date | undefined;
3285
+ /**
3286
+ * <p>The date and time, up to the current date, from which to stop retrieving analysis data,
3287
+ * in UTC format (for example, <code>YYYY-MM-DDTHH:MM:SSZ</code>). </p>
3288
+ * @public
3289
+ */
3290
+ EndTime?: Date | undefined;
3291
+ /**
3292
+ * <p>The date and time the analysis report was ran. </p>
3293
+ * @public
3294
+ */
3295
+ ReportTime?: Date | undefined;
3296
+ /**
3297
+ * <p>The type of traffic that will be used to generate a report. </p>
3298
+ * @public
3299
+ */
3300
+ AnalysisType?: EnabledAnalysisType | undefined;
3301
+ /**
3302
+ * <p>When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available
3303
+ * for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code>
3304
+ * value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.</p>
3305
+ * @public
3306
+ */
3307
+ NextToken?: string | undefined;
3308
+ /**
3309
+ * <p>Retrieves the results of a traffic analysis report.</p>
3310
+ * @public
3311
+ */
3312
+ AnalysisReportResults?: AnalysisTypeReportResult[] | undefined;
3313
+ }
3314
+ /**
3315
+ * @public
3316
+ */
3317
+ export interface ListAnalysisReportsRequest {
3318
+ /**
3319
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
3320
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3321
+ * @public
3322
+ */
3323
+ FirewallName?: string | undefined;
3324
+ /**
3325
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
3326
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3327
+ * @public
3328
+ */
3329
+ FirewallArn?: string | undefined;
3330
+ /**
3331
+ * <p>When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available
3332
+ * for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code>
3333
+ * value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.</p>
3334
+ * @public
3335
+ */
3336
+ NextToken?: string | undefined;
3337
+ /**
3338
+ * <p>The maximum number of objects that you want Network Firewall to return for this request. If more
3339
+ * objects are available, in the response, Network Firewall provides a
3340
+ * <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.</p>
3341
+ * @public
3342
+ */
3343
+ MaxResults?: number | undefined;
3344
+ }
3345
+ /**
3346
+ * @public
3347
+ */
3348
+ export interface ListAnalysisReportsResponse {
3349
+ /**
3350
+ * <p>The <code>id</code> and <code>ReportTime</code> associated with a requested analysis report. Does not provide the status of the analysis report. </p>
3351
+ * @public
3352
+ */
3353
+ AnalysisReports?: AnalysisReport[] | undefined;
3354
+ /**
3355
+ * <p>When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available
3356
+ * for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code>
3357
+ * value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.</p>
3358
+ * @public
3359
+ */
3360
+ NextToken?: string | undefined;
3361
+ }
3123
3362
  /**
3124
3363
  * @public
3125
3364
  */
@@ -3446,6 +3685,38 @@ export interface PutResourcePolicyRequest {
3446
3685
  */
3447
3686
  export interface PutResourcePolicyResponse {
3448
3687
  }
3688
+ /**
3689
+ * @public
3690
+ */
3691
+ export interface StartAnalysisReportRequest {
3692
+ /**
3693
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
3694
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3695
+ * @public
3696
+ */
3697
+ FirewallName?: string | undefined;
3698
+ /**
3699
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
3700
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3701
+ * @public
3702
+ */
3703
+ FirewallArn?: string | undefined;
3704
+ /**
3705
+ * <p>The type of traffic that will be used to generate a report. </p>
3706
+ * @public
3707
+ */
3708
+ AnalysisType: EnabledAnalysisType | undefined;
3709
+ }
3710
+ /**
3711
+ * @public
3712
+ */
3713
+ export interface StartAnalysisReportResponse {
3714
+ /**
3715
+ * <p>The unique ID of the query that ran when you requested an analysis report. </p>
3716
+ * @public
3717
+ */
3718
+ AnalysisReportId: string | undefined;
3719
+ }
3449
3720
  /**
3450
3721
  * @public
3451
3722
  */
@@ -3486,6 +3757,64 @@ export interface UntagResourceRequest {
3486
3757
  */
3487
3758
  export interface UntagResourceResponse {
3488
3759
  }
3760
+ /**
3761
+ * @public
3762
+ */
3763
+ export interface UpdateFirewallAnalysisSettingsRequest {
3764
+ /**
3765
+ * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
3766
+ * @public
3767
+ */
3768
+ EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
3769
+ /**
3770
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
3771
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3772
+ * @public
3773
+ */
3774
+ FirewallArn?: string | undefined;
3775
+ /**
3776
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
3777
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3778
+ * @public
3779
+ */
3780
+ FirewallName?: string | undefined;
3781
+ /**
3782
+ * <p>An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request. </p>
3783
+ * <p>To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it.</p>
3784
+ * <p>To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. </p>
3785
+ * @public
3786
+ */
3787
+ UpdateToken?: string | undefined;
3788
+ }
3789
+ /**
3790
+ * @public
3791
+ */
3792
+ export interface UpdateFirewallAnalysisSettingsResponse {
3793
+ /**
3794
+ * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
3795
+ * @public
3796
+ */
3797
+ EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
3798
+ /**
3799
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
3800
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3801
+ * @public
3802
+ */
3803
+ FirewallArn?: string | undefined;
3804
+ /**
3805
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
3806
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3807
+ * @public
3808
+ */
3809
+ FirewallName?: string | undefined;
3810
+ /**
3811
+ * <p>An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request. </p>
3812
+ * <p>To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it.</p>
3813
+ * <p>To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. </p>
3814
+ * @public
3815
+ */
3816
+ UpdateToken?: string | undefined;
3817
+ }
3489
3818
  /**
3490
3819
  * <p>Unable to change the resource because your account doesn't own it. </p>
3491
3820
  * @public