@aws-sdk/client-network-firewall 3.826.0 → 3.830.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 (49) hide show
  1. package/README.md +48 -0
  2. package/dist-cjs/index.js +295 -58
  3. package/dist-es/NetworkFirewall.js +12 -0
  4. package/dist-es/commands/AcceptNetworkFirewallTransitGatewayAttachmentCommand.js +22 -0
  5. package/dist-es/commands/AssociateAvailabilityZonesCommand.js +22 -0
  6. package/dist-es/commands/DeleteNetworkFirewallTransitGatewayAttachmentCommand.js +22 -0
  7. package/dist-es/commands/DisassociateAvailabilityZonesCommand.js +22 -0
  8. package/dist-es/commands/RejectNetworkFirewallTransitGatewayAttachmentCommand.js +22 -0
  9. package/dist-es/commands/UpdateAvailabilityZoneChangeProtectionCommand.js +22 -0
  10. package/dist-es/commands/index.js +6 -0
  11. package/dist-es/models/models_0.js +52 -39
  12. package/dist-es/protocols/Aws_json1_0.js +120 -6
  13. package/dist-types/NetworkFirewall.d.ts +42 -0
  14. package/dist-types/NetworkFirewallClient.d.ts +8 -2
  15. package/dist-types/commands/AcceptNetworkFirewallTransitGatewayAttachmentCommand.d.ts +104 -0
  16. package/dist-types/commands/AssociateAvailabilityZonesCommand.d.ts +124 -0
  17. package/dist-types/commands/CreateFirewallCommand.d.ts +20 -0
  18. package/dist-types/commands/CreateRuleGroupCommand.d.ts +1 -1
  19. package/dist-types/commands/DeleteFirewallCommand.d.ts +13 -0
  20. package/dist-types/commands/DeleteNetworkFirewallTransitGatewayAttachmentCommand.d.ts +103 -0
  21. package/dist-types/commands/DescribeFirewallCommand.d.ts +13 -0
  22. package/dist-types/commands/DescribeFirewallMetadataCommand.d.ts +1 -0
  23. package/dist-types/commands/DescribeRuleGroupCommand.d.ts +1 -1
  24. package/dist-types/commands/DisassociateAvailabilityZonesCommand.d.ts +123 -0
  25. package/dist-types/commands/ListFirewallsCommand.d.ts +1 -0
  26. package/dist-types/commands/RejectNetworkFirewallTransitGatewayAttachmentCommand.d.ts +104 -0
  27. package/dist-types/commands/UpdateAvailabilityZoneChangeProtectionCommand.d.ts +111 -0
  28. package/dist-types/commands/UpdateRuleGroupCommand.d.ts +1 -1
  29. package/dist-types/commands/index.d.ts +6 -0
  30. package/dist-types/endpoint/EndpointParameters.d.ts +7 -7
  31. package/dist-types/models/models_0.d.ts +651 -95
  32. package/dist-types/protocols/Aws_json1_0.d.ts +54 -0
  33. package/dist-types/runtimeConfig.browser.d.ts +2 -2
  34. package/dist-types/runtimeConfig.native.d.ts +2 -2
  35. package/dist-types/ts3.4/NetworkFirewall.d.ts +126 -0
  36. package/dist-types/ts3.4/NetworkFirewallClient.d.ts +36 -0
  37. package/dist-types/ts3.4/commands/AcceptNetworkFirewallTransitGatewayAttachmentCommand.d.ts +51 -0
  38. package/dist-types/ts3.4/commands/AssociateAvailabilityZonesCommand.d.ts +51 -0
  39. package/dist-types/ts3.4/commands/DeleteNetworkFirewallTransitGatewayAttachmentCommand.d.ts +51 -0
  40. package/dist-types/ts3.4/commands/DisassociateAvailabilityZonesCommand.d.ts +51 -0
  41. package/dist-types/ts3.4/commands/RejectNetworkFirewallTransitGatewayAttachmentCommand.d.ts +51 -0
  42. package/dist-types/ts3.4/commands/UpdateAvailabilityZoneChangeProtectionCommand.d.ts +51 -0
  43. package/dist-types/ts3.4/commands/index.d.ts +6 -0
  44. package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +7 -7
  45. package/dist-types/ts3.4/models/models_0.d.ts +137 -45
  46. package/dist-types/ts3.4/protocols/Aws_json1_0.d.ts +72 -0
  47. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +4 -2
  48. package/dist-types/ts3.4/runtimeConfig.native.d.ts +4 -2
  49. package/package.json +5 -5
@@ -1,5 +1,153 @@
1
1
  import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
2
2
  import { NetworkFirewallServiceException as __BaseException } from "./NetworkFirewallServiceException";
3
+ /**
4
+ * @public
5
+ */
6
+ export interface AcceptNetworkFirewallTransitGatewayAttachmentRequest {
7
+ /**
8
+ * <p>Required. The unique identifier of the transit gateway attachment to accept. This ID is returned in the response when creating a transit gateway-attached firewall.</p>
9
+ * @public
10
+ */
11
+ TransitGatewayAttachmentId: string | undefined;
12
+ }
13
+ /**
14
+ * @public
15
+ * @enum
16
+ */
17
+ export declare const TransitGatewayAttachmentStatus: {
18
+ readonly CREATING: "CREATING";
19
+ readonly DELETED: "DELETED";
20
+ readonly DELETING: "DELETING";
21
+ readonly ERROR: "ERROR";
22
+ readonly FAILED: "FAILED";
23
+ readonly PENDING_ACCEPTANCE: "PENDING_ACCEPTANCE";
24
+ readonly READY: "READY";
25
+ readonly REJECTED: "REJECTED";
26
+ readonly REJECTING: "REJECTING";
27
+ };
28
+ /**
29
+ * @public
30
+ */
31
+ export type TransitGatewayAttachmentStatus = (typeof TransitGatewayAttachmentStatus)[keyof typeof TransitGatewayAttachmentStatus];
32
+ /**
33
+ * @public
34
+ */
35
+ export interface AcceptNetworkFirewallTransitGatewayAttachmentResponse {
36
+ /**
37
+ * <p>The unique identifier of the transit gateway attachment that was accepted.</p>
38
+ * @public
39
+ */
40
+ TransitGatewayAttachmentId: string | undefined;
41
+ /**
42
+ * <p>The current status of the transit gateway attachment. Valid values are:</p>
43
+ * <ul>
44
+ * <li>
45
+ * <p>
46
+ * <code>CREATING</code> - The attachment is being created</p>
47
+ * </li>
48
+ * <li>
49
+ * <p>
50
+ * <code>DELETING</code> - The attachment is being deleted</p>
51
+ * </li>
52
+ * <li>
53
+ * <p>
54
+ * <code>DELETED</code> - The attachment has been deleted</p>
55
+ * </li>
56
+ * <li>
57
+ * <p>
58
+ * <code>FAILED</code> - The attachment creation has failed and cannot be recovered</p>
59
+ * </li>
60
+ * <li>
61
+ * <p>
62
+ * <code>ERROR</code> - The attachment is in an error state that might be recoverable</p>
63
+ * </li>
64
+ * <li>
65
+ * <p>
66
+ * <code>READY</code> - The attachment is active and processing traffic</p>
67
+ * </li>
68
+ * <li>
69
+ * <p>
70
+ * <code>PENDING_ACCEPTANCE</code> - The attachment is waiting to be accepted</p>
71
+ * </li>
72
+ * <li>
73
+ * <p>
74
+ * <code>REJECTING</code> - The attachment is in the process of being rejected</p>
75
+ * </li>
76
+ * <li>
77
+ * <p>
78
+ * <code>REJECTED</code> - The attachment has been rejected</p>
79
+ * </li>
80
+ * </ul>
81
+ * @public
82
+ */
83
+ TransitGatewayAttachmentStatus: TransitGatewayAttachmentStatus | undefined;
84
+ }
85
+ /**
86
+ * <p>Your request is valid, but Network Firewall couldn't perform the operation because of a
87
+ * system problem. Retry your request. </p>
88
+ * @public
89
+ */
90
+ export declare class InternalServerError extends __BaseException {
91
+ readonly name: "InternalServerError";
92
+ readonly $fault: "server";
93
+ Message?: string | undefined;
94
+ /**
95
+ * @internal
96
+ */
97
+ constructor(opts: __ExceptionOptionType<InternalServerError, __BaseException>);
98
+ }
99
+ /**
100
+ * <p>The operation failed because of a problem with your request. Examples include: </p>
101
+ * <ul>
102
+ * <li>
103
+ * <p>You specified an unsupported parameter name or value.</p>
104
+ * </li>
105
+ * <li>
106
+ * <p>You tried to update a property with a value that isn't among the available
107
+ * types.</p>
108
+ * </li>
109
+ * <li>
110
+ * <p>Your request references an ARN that is malformed, or corresponds to a resource
111
+ * that isn't valid in the context of the request.</p>
112
+ * </li>
113
+ * </ul>
114
+ * @public
115
+ */
116
+ export declare class InvalidRequestException extends __BaseException {
117
+ readonly name: "InvalidRequestException";
118
+ readonly $fault: "client";
119
+ Message?: string | undefined;
120
+ /**
121
+ * @internal
122
+ */
123
+ constructor(opts: __ExceptionOptionType<InvalidRequestException, __BaseException>);
124
+ }
125
+ /**
126
+ * <p>Unable to locate a resource using the parameters that you provided.</p>
127
+ * @public
128
+ */
129
+ export declare class ResourceNotFoundException extends __BaseException {
130
+ readonly name: "ResourceNotFoundException";
131
+ readonly $fault: "client";
132
+ Message?: string | undefined;
133
+ /**
134
+ * @internal
135
+ */
136
+ constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
137
+ }
138
+ /**
139
+ * <p>Unable to process the request due to throttling limitations.</p>
140
+ * @public
141
+ */
142
+ export declare class ThrottlingException extends __BaseException {
143
+ readonly name: "ThrottlingException";
144
+ readonly $fault: "client";
145
+ Message?: string | undefined;
146
+ /**
147
+ * @internal
148
+ */
149
+ constructor(opts: __ExceptionOptionType<ThrottlingException, __BaseException>);
150
+ }
3
151
  /**
4
152
  * <p>The value to use in an Amazon CloudWatch custom metric dimension. This is used in the
5
153
  * <code>PublishMetrics</code>
@@ -47,8 +195,7 @@ export interface ActionDefinition {
47
195
  PublishMetricAction?: PublishMetricAction | undefined;
48
196
  }
49
197
  /**
50
- * <p>A single IP address specification. This is used in the <a>MatchAttributes</a>
51
- * source and destination specifications.</p>
198
+ * <p>A single IP address specification. This is used in the <a>MatchAttributes</a> source and destination specifications.</p>
52
199
  * @public
53
200
  */
54
201
  export interface Address {
@@ -234,9 +381,21 @@ export interface AnalysisResult {
234
381
  AnalysisDetail?: string | undefined;
235
382
  }
236
383
  /**
384
+ * <p>Defines the mapping between an Availability Zone and a firewall endpoint for a transit gateway-attached firewall. Each mapping represents where the firewall can process traffic. You use these mappings when calling <a>CreateFirewall</a>, <a>AssociateAvailabilityZones</a>, and <a>DisassociateAvailabilityZones</a>.</p>
385
+ * <p>To retrieve the current Availability Zone mappings for a firewall, use <a>DescribeFirewall</a>.</p>
237
386
  * @public
238
387
  */
239
- export interface AssociateFirewallPolicyRequest {
388
+ export interface AvailabilityZoneMapping {
389
+ /**
390
+ * <p>The ID of the Availability Zone where the firewall endpoint is located. For example, <code>us-east-2a</code>. The Availability Zone must be in the same Region as the transit gateway.</p>
391
+ * @public
392
+ */
393
+ AvailabilityZone: string | undefined;
394
+ }
395
+ /**
396
+ * @public
397
+ */
398
+ export interface AssociateAvailabilityZonesRequest {
240
399
  /**
241
400
  * <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>
242
401
  * <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>
@@ -257,15 +416,15 @@ export interface AssociateFirewallPolicyRequest {
257
416
  */
258
417
  FirewallName?: string | undefined;
259
418
  /**
260
- * <p>The Amazon Resource Name (ARN) of the firewall policy.</p>
419
+ * <p>Required. The Availability Zones where you want to create firewall endpoints. You must specify at least one Availability Zone.</p>
261
420
  * @public
262
421
  */
263
- FirewallPolicyArn: string | undefined;
422
+ AvailabilityZoneMappings: AvailabilityZoneMapping[] | undefined;
264
423
  }
265
424
  /**
266
425
  * @public
267
426
  */
268
- export interface AssociateFirewallPolicyResponse {
427
+ export interface AssociateAvailabilityZonesResponse {
269
428
  /**
270
429
  * <p>The Amazon Resource Name (ARN) of the firewall.</p>
271
430
  * @public
@@ -277,10 +436,10 @@ export interface AssociateFirewallPolicyResponse {
277
436
  */
278
437
  FirewallName?: string | undefined;
279
438
  /**
280
- * <p>The Amazon Resource Name (ARN) of the firewall policy.</p>
439
+ * <p>The Availability Zones where Network Firewall created firewall endpoints. Each mapping specifies an Availability Zone where the firewall processes traffic.</p>
281
440
  * @public
282
441
  */
283
- FirewallPolicyArn?: string | undefined;
442
+ AvailabilityZoneMappings?: AvailabilityZoneMapping[] | undefined;
284
443
  /**
285
444
  * <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>
286
445
  * <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>
@@ -290,18 +449,18 @@ export interface AssociateFirewallPolicyResponse {
290
449
  UpdateToken?: string | undefined;
291
450
  }
292
451
  /**
293
- * <p>Your request is valid, but Network Firewall couldn't perform the operation because of a
294
- * system problem. Retry your request. </p>
452
+ * <p>Amazon Web Services doesn't currently have enough available capacity to fulfill your request. Try your
453
+ * request later. </p>
295
454
  * @public
296
455
  */
297
- export declare class InternalServerError extends __BaseException {
298
- readonly name: "InternalServerError";
456
+ export declare class InsufficientCapacityException extends __BaseException {
457
+ readonly name: "InsufficientCapacityException";
299
458
  readonly $fault: "server";
300
459
  Message?: string | undefined;
301
460
  /**
302
461
  * @internal
303
462
  */
304
- constructor(opts: __ExceptionOptionType<InternalServerError, __BaseException>);
463
+ constructor(opts: __ExceptionOptionType<InsufficientCapacityException, __BaseException>);
305
464
  }
306
465
  /**
307
466
  * <p>The operation failed because it's not valid. For example, you might have tried to delete
@@ -317,32 +476,6 @@ export declare class InvalidOperationException extends __BaseException {
317
476
  */
318
477
  constructor(opts: __ExceptionOptionType<InvalidOperationException, __BaseException>);
319
478
  }
320
- /**
321
- * <p>The operation failed because of a problem with your request. Examples include: </p>
322
- * <ul>
323
- * <li>
324
- * <p>You specified an unsupported parameter name or value.</p>
325
- * </li>
326
- * <li>
327
- * <p>You tried to update a property with a value that isn't among the available
328
- * types.</p>
329
- * </li>
330
- * <li>
331
- * <p>Your request references an ARN that is malformed, or corresponds to a resource
332
- * that isn't valid in the context of the request.</p>
333
- * </li>
334
- * </ul>
335
- * @public
336
- */
337
- export declare class InvalidRequestException extends __BaseException {
338
- readonly name: "InvalidRequestException";
339
- readonly $fault: "client";
340
- Message?: string | undefined;
341
- /**
342
- * @internal
343
- */
344
- constructor(opts: __ExceptionOptionType<InvalidRequestException, __BaseException>);
345
- }
346
479
  /**
347
480
  * <p>The token you provided is stale or isn't valid for the operation. </p>
348
481
  * @public
@@ -357,30 +490,60 @@ export declare class InvalidTokenException extends __BaseException {
357
490
  constructor(opts: __ExceptionOptionType<InvalidTokenException, __BaseException>);
358
491
  }
359
492
  /**
360
- * <p>Unable to locate a resource using the parameters that you provided.</p>
361
493
  * @public
362
494
  */
363
- export declare class ResourceNotFoundException extends __BaseException {
364
- readonly name: "ResourceNotFoundException";
365
- readonly $fault: "client";
366
- Message?: string | undefined;
495
+ export interface AssociateFirewallPolicyRequest {
367
496
  /**
368
- * @internal
497
+ * <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>
498
+ * <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>
499
+ * <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>
500
+ * @public
369
501
  */
370
- constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
502
+ UpdateToken?: string | undefined;
503
+ /**
504
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
505
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
506
+ * @public
507
+ */
508
+ FirewallArn?: string | undefined;
509
+ /**
510
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
511
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
512
+ * @public
513
+ */
514
+ FirewallName?: string | undefined;
515
+ /**
516
+ * <p>The Amazon Resource Name (ARN) of the firewall policy.</p>
517
+ * @public
518
+ */
519
+ FirewallPolicyArn: string | undefined;
371
520
  }
372
521
  /**
373
- * <p>Unable to process the request due to throttling limitations.</p>
374
522
  * @public
375
523
  */
376
- export declare class ThrottlingException extends __BaseException {
377
- readonly name: "ThrottlingException";
378
- readonly $fault: "client";
379
- Message?: string | undefined;
524
+ export interface AssociateFirewallPolicyResponse {
380
525
  /**
381
- * @internal
526
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
527
+ * @public
382
528
  */
383
- constructor(opts: __ExceptionOptionType<ThrottlingException, __BaseException>);
529
+ FirewallArn?: string | undefined;
530
+ /**
531
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
532
+ * @public
533
+ */
534
+ FirewallName?: string | undefined;
535
+ /**
536
+ * <p>The Amazon Resource Name (ARN) of the firewall policy.</p>
537
+ * @public
538
+ */
539
+ FirewallPolicyArn?: string | undefined;
540
+ /**
541
+ * <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>
542
+ * <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>
543
+ * <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>
544
+ * @public
545
+ */
546
+ UpdateToken?: string | undefined;
384
547
  }
385
548
  /**
386
549
  * @public
@@ -470,20 +633,6 @@ export interface AssociateSubnetsResponse {
470
633
  */
471
634
  UpdateToken?: string | undefined;
472
635
  }
473
- /**
474
- * <p>Amazon Web Services doesn't currently have enough available capacity to fulfill your request. Try your
475
- * request later. </p>
476
- * @public
477
- */
478
- export declare class InsufficientCapacityException extends __BaseException {
479
- readonly name: "InsufficientCapacityException";
480
- readonly $fault: "server";
481
- Message?: string | undefined;
482
- /**
483
- * @internal
484
- */
485
- constructor(opts: __ExceptionOptionType<InsufficientCapacityException, __BaseException>);
486
- }
487
636
  /**
488
637
  * @public
489
638
  * @enum
@@ -535,7 +684,9 @@ export interface Attachment {
535
684
  */
536
685
  Status?: AttachmentStatus | undefined;
537
686
  /**
538
- * <p>If Network Firewall fails to create or delete the firewall endpoint in the subnet, it populates this with the reason for the error or failure and how to resolve it. A <code>FAILED</code> status indicates a non-recoverable state, and a <code>ERROR</code> status indicates an issue that you can fix. Depending on the error, it can take as many as 15 minutes to populate this field. For more information about the causes for failiure or errors and solutions available for this field, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-troubleshooting-endpoint-failures.html">Troubleshooting firewall endpoint failures</a> in the <i>Network Firewall Developer Guide</i>.</p>
687
+ * <p>If Network Firewall fails to create or delete the firewall endpoint in the subnet, it populates this with the reason for the error or failure and how to resolve it.
688
+ * A <code>FAILED</code> status indicates a non-recoverable state, and a <code>ERROR</code> status indicates an issue that you can fix.
689
+ * Depending on the error, it can take as many as 15 minutes to populate this field. For more information about the causes for failiure or errors and solutions available for this field, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-troubleshooting-endpoint-failures.html">Troubleshooting firewall endpoint failures</a> in the <i>Network Firewall Developer Guide</i>.</p>
539
690
  * @public
540
691
  */
541
692
  StatusMessage?: string | undefined;
@@ -830,6 +981,28 @@ export interface CreateFirewallRequest {
830
981
  * @public
831
982
  */
832
983
  EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
984
+ /**
985
+ * <p>Required when creating a transit gateway-attached firewall. The unique identifier of the transit gateway to attach to this firewall. You can provide either a transit gateway from your account or one that has been shared with you through Resource Access Manager.</p>
986
+ * <important>
987
+ * <p>After creating the firewall, you cannot change the transit gateway association. To use a different transit gateway, you must create a new firewall.</p>
988
+ * </important>
989
+ * <p>For information about creating firewalls, see <a>CreateFirewall</a>. For specific guidance about transit gateway-attached firewalls, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/tgw-firewall-considerations.html">Considerations for transit gateway-attached firewalls</a> in the <i>Network Firewall Developer Guide</i>.</p>
990
+ * @public
991
+ */
992
+ TransitGatewayId?: string | undefined;
993
+ /**
994
+ * <p>Required. The Availability Zones where you want to create firewall endpoints for a transit gateway-attached firewall. You must specify at least one Availability Zone. Consider enabling the firewall in every Availability Zone where you have workloads to maintain Availability Zone independence.</p>
995
+ * <p>You can modify Availability Zones later using <a>AssociateAvailabilityZones</a> or <a>DisassociateAvailabilityZones</a>, but this may briefly disrupt traffic. The <code>AvailabilityZoneChangeProtection</code> setting controls whether you can make these modifications.</p>
996
+ * @public
997
+ */
998
+ AvailabilityZoneMappings?: AvailabilityZoneMapping[] | undefined;
999
+ /**
1000
+ * <p>Optional. A setting indicating whether the firewall is protected against changes to its Availability Zone configuration. When set to <code>TRUE</code>, you cannot add or remove Availability Zones without first disabling this protection using <a>UpdateAvailabilityZoneChangeProtection</a>.</p>
1001
+ * <p>Default value: <code>FALSE</code>
1002
+ * </p>
1003
+ * @public
1004
+ */
1005
+ AvailabilityZoneChangeProtection?: boolean | undefined;
833
1006
  }
834
1007
  /**
835
1008
  * <p>A firewall defines the behavior of a firewall, the main VPC where the firewall is used, the Availability Zones where the firewall can be used, and one subnet to use for a firewall endpoint within each of the Availability Zones. The Availability Zones are defined implicitly in the subnet specifications.</p>
@@ -921,6 +1094,26 @@ export interface Firewall {
921
1094
  * @public
922
1095
  */
923
1096
  EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
1097
+ /**
1098
+ * <p>The unique identifier of the transit gateway associated with this firewall. This field is only present for transit gateway-attached firewalls.</p>
1099
+ * @public
1100
+ */
1101
+ TransitGatewayId?: string | undefined;
1102
+ /**
1103
+ * <p>The Amazon Web Services account ID that owns the transit gateway. This may be different from the firewall owner's account ID when using a shared transit gateway.</p>
1104
+ * @public
1105
+ */
1106
+ TransitGatewayOwnerAccountId?: string | undefined;
1107
+ /**
1108
+ * <p>The Availability Zones where the firewall endpoints are created for a transit gateway-attached firewall. Each mapping specifies an Availability Zone where the firewall processes traffic.</p>
1109
+ * @public
1110
+ */
1111
+ AvailabilityZoneMappings?: AvailabilityZoneMapping[] | undefined;
1112
+ /**
1113
+ * <p>A setting indicating whether the firewall is protected against changes to its Availability Zone configuration. When set to <code>TRUE</code>, you must first disable this protection before adding or removing Availability Zones.</p>
1114
+ * @public
1115
+ */
1116
+ AvailabilityZoneChangeProtection?: boolean | undefined;
924
1117
  }
925
1118
  /**
926
1119
  * @public
@@ -1001,7 +1194,107 @@ export interface SyncState {
1001
1194
  * rules in the endpoint, so it can properly filter network traffic. </p>
1002
1195
  * @public
1003
1196
  */
1004
- Config?: Record<string, PerObjectStatus> | undefined;
1197
+ Config?: Record<string, PerObjectStatus> | undefined;
1198
+ }
1199
+ /**
1200
+ * <p>Contains information about the synchronization state of a transit gateway attachment, including its current status and any error messages. Network Firewall uses this to track the state of your transit gateway configuration changes.</p>
1201
+ * @public
1202
+ */
1203
+ export interface TransitGatewayAttachmentSyncState {
1204
+ /**
1205
+ * <p>The unique identifier of the transit gateway attachment.</p>
1206
+ * @public
1207
+ */
1208
+ AttachmentId?: string | undefined;
1209
+ /**
1210
+ * <p>The current status of the transit gateway attachment.</p>
1211
+ * <p>Valid values are:</p>
1212
+ * <ul>
1213
+ * <li>
1214
+ * <p>
1215
+ * <code>CREATING</code> - The attachment is being created</p>
1216
+ * </li>
1217
+ * <li>
1218
+ * <p>
1219
+ * <code>DELETING</code> - The attachment is being deleted</p>
1220
+ * </li>
1221
+ * <li>
1222
+ * <p>
1223
+ * <code>DELETED</code> - The attachment has been deleted</p>
1224
+ * </li>
1225
+ * <li>
1226
+ * <p>
1227
+ * <code>FAILED</code> - The attachment creation has failed and cannot be recovered</p>
1228
+ * </li>
1229
+ * <li>
1230
+ * <p>
1231
+ * <code>ERROR</code> - The attachment is in an error state that might be recoverable</p>
1232
+ * </li>
1233
+ * <li>
1234
+ * <p>
1235
+ * <code>READY</code> - The attachment is active and processing traffic</p>
1236
+ * </li>
1237
+ * <li>
1238
+ * <p>
1239
+ * <code>PENDING_ACCEPTANCE</code> - The attachment is waiting to be accepted</p>
1240
+ * </li>
1241
+ * <li>
1242
+ * <p>
1243
+ * <code>REJECTING</code> - The attachment is in the process of being rejected</p>
1244
+ * </li>
1245
+ * <li>
1246
+ * <p>
1247
+ * <code>REJECTED</code> - The attachment has been rejected</p>
1248
+ * </li>
1249
+ * </ul>
1250
+ * @public
1251
+ */
1252
+ TransitGatewayAttachmentStatus?: TransitGatewayAttachmentStatus | undefined;
1253
+ /**
1254
+ * <p>A message providing additional information about the current status, particularly useful when the transit gateway attachment is in a non-<code>READY</code> state.</p>
1255
+ * <p>Valid values are:</p>
1256
+ * <ul>
1257
+ * <li>
1258
+ * <p>
1259
+ * <code>CREATING</code> - The attachment is being created</p>
1260
+ * </li>
1261
+ * <li>
1262
+ * <p>
1263
+ * <code>DELETING</code> - The attachment is being deleted</p>
1264
+ * </li>
1265
+ * <li>
1266
+ * <p>
1267
+ * <code>DELETED</code> - The attachment has been deleted</p>
1268
+ * </li>
1269
+ * <li>
1270
+ * <p>
1271
+ * <code>FAILED</code> - The attachment creation has failed and cannot be recovered</p>
1272
+ * </li>
1273
+ * <li>
1274
+ * <p>
1275
+ * <code>ERROR</code> - The attachment is in an error state that might be recoverable</p>
1276
+ * </li>
1277
+ * <li>
1278
+ * <p>
1279
+ * <code>READY</code> - The attachment is active and processing traffic</p>
1280
+ * </li>
1281
+ * <li>
1282
+ * <p>
1283
+ * <code>PENDING_ACCEPTANCE</code> - The attachment is waiting to be accepted</p>
1284
+ * </li>
1285
+ * <li>
1286
+ * <p>
1287
+ * <code>REJECTING</code> - The attachment is in the process of being rejected</p>
1288
+ * </li>
1289
+ * <li>
1290
+ * <p>
1291
+ * <code>REJECTED</code> - The attachment has been rejected</p>
1292
+ * </li>
1293
+ * </ul>
1294
+ * <p>For information about troubleshooting endpoint failures, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-troubleshooting-endpoint-failures.html">Troubleshooting firewall endpoint failures</a> in the <i>Network Firewall Developer Guide</i>.</p>
1295
+ * @public
1296
+ */
1297
+ StatusMessage?: string | undefined;
1005
1298
  }
1006
1299
  /**
1007
1300
  * <p>Detailed information about the current status of a <a>Firewall</a>. You can retrieve this for a firewall by calling <a>DescribeFirewall</a> and providing the firewall name and ARN.</p>
@@ -1045,6 +1338,11 @@ export interface FirewallStatus {
1045
1338
  * @public
1046
1339
  */
1047
1340
  CapacityUsageSummary?: CapacityUsageSummary | undefined;
1341
+ /**
1342
+ * <p>The synchronization state of the transit gateway attachment. This indicates whether the firewall's transit gateway configuration is properly synchronized and operational. Use this to verify that your transit gateway configuration changes have been applied.</p>
1343
+ * @public
1344
+ */
1345
+ TransitGatewayAttachmentSyncState?: TransitGatewayAttachmentSyncState | undefined;
1048
1346
  }
1049
1347
  /**
1050
1348
  * @public
@@ -1148,9 +1446,15 @@ export type StreamExceptionPolicy = (typeof StreamExceptionPolicy)[keyof typeof
1148
1446
  */
1149
1447
  export interface StatefulEngineOptions {
1150
1448
  /**
1151
- * <p>Indicates how to manage the order of stateful rule evaluation for the policy. <code>STRICT_ORDER</code> is
1152
- * the default and recommended option. With <code>STRICT_ORDER</code>, provide your rules in the order that you want them to be evaluated. You can then choose one or more default actions for packets that don't match any rules. Choose <code>STRICT_ORDER</code> to have the stateful rules engine determine the evaluation order of your rules. The default action for this rule order is <code>PASS</code>, followed by <code>DROP</code>, <code>REJECT</code>, and <code>ALERT</code> actions. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them
1153
- * based on your settings. For more information, see
1449
+ * <p>Indicates how to manage the order of stateful rule evaluation for the policy. <code>STRICT_ORDER</code> is the
1450
+ * recommended option, but <code>DEFAULT_ACTION_ORDER</code> is the default option.
1451
+ * With <code>STRICT_ORDER</code>, provide your rules in the order that you want them to be evaluated.
1452
+ * You can then choose one or more default actions for packets that don't match any rules.
1453
+ * Choose <code>STRICT_ORDER</code> to have the stateful rules engine determine the evaluation order of your rules.
1454
+ * The default action for this rule order is
1455
+ * <code>PASS</code>, followed by <code>DROP</code>, <code>REJECT</code>, and <code>ALERT</code> actions.
1456
+ * Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on your settings.
1457
+ * For more information, see
1154
1458
  * <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html">Evaluation order for stateful rules</a> in the <i>Network Firewall Developer Guide</i>.
1155
1459
  * </p>
1156
1460
  * @public
@@ -1642,12 +1946,14 @@ export declare const StatefulRuleProtocol: {
1642
1946
  readonly DNS: "DNS";
1643
1947
  readonly FTP: "FTP";
1644
1948
  readonly HTTP: "HTTP";
1949
+ readonly HTTP2: "HTTP2";
1645
1950
  readonly ICMP: "ICMP";
1646
1951
  readonly IKEV2: "IKEV2";
1647
1952
  readonly IMAP: "IMAP";
1648
1953
  readonly KRB5: "KRB5";
1649
1954
  readonly MSN: "MSN";
1650
1955
  readonly NTP: "NTP";
1956
+ readonly QUIC: "QUIC";
1651
1957
  readonly SMB: "SMB";
1652
1958
  readonly SMTP: "SMTP";
1653
1959
  readonly SSH: "SSH";
@@ -2077,7 +2383,7 @@ export interface PortSet {
2077
2383
  }
2078
2384
  /**
2079
2385
  * <p>Settings that are available for use in the rules in the <a>RuleGroup</a>
2080
- * where this is defined. </p>
2386
+ * where this is defined. See <a>CreateRuleGroup</a> or <a>UpdateRuleGroup</a> for usage.</p>
2081
2387
  * @public
2082
2388
  */
2083
2389
  export interface RuleVariables {
@@ -2358,7 +2664,7 @@ export interface RuleGroupResponse {
2358
2664
  */
2359
2665
  SourceMetadata?: SourceMetadata | undefined;
2360
2666
  /**
2361
- * <p>The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's
2667
+ * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service SNS topic that's
2362
2668
  * used to record changes to the managed rule group. You can subscribe to the SNS topic to receive
2363
2669
  * notifications when the managed rule group is modified, such as for new versions and for version
2364
2670
  * expiration. For more information, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/welcome.html">Amazon Simple Notification Service Developer Guide.</a>.</p>
@@ -2469,7 +2775,7 @@ export interface ServerCertificateConfiguration {
2469
2775
  * <p>You can't use certificates issued by Private Certificate Authority.</p>
2470
2776
  * </li>
2471
2777
  * </ul>
2472
- * <p>For more information about configuring certificates for outbound inspection, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/tls-inspection-certificate-requirements.html">Using SSL/TLS certificates with certificates with TLS inspection configurations</a> in the <i>Network Firewall Developer Guide</i>. </p>
2778
+ * <p>For more information about configuring certificates for outbound inspection, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/tls-inspection-certificate-requirements.html">Using SSL/TLS certificates with TLS inspection configurations</a> in the <i>Network Firewall Developer Guide</i>. </p>
2473
2779
  * <p>For information about working with certificates in ACM, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing certificates</a> in the <i>Certificate Manager User Guide</i>.</p>
2474
2780
  * @public
2475
2781
  */
@@ -2820,6 +3126,70 @@ export interface DeleteFirewallPolicyResponse {
2820
3126
  */
2821
3127
  FirewallPolicyResponse: FirewallPolicyResponse | undefined;
2822
3128
  }
3129
+ /**
3130
+ * @public
3131
+ */
3132
+ export interface DeleteNetworkFirewallTransitGatewayAttachmentRequest {
3133
+ /**
3134
+ * <p>Required. The unique identifier of the transit gateway attachment to delete.</p>
3135
+ * @public
3136
+ */
3137
+ TransitGatewayAttachmentId: string | undefined;
3138
+ }
3139
+ /**
3140
+ * @public
3141
+ */
3142
+ export interface DeleteNetworkFirewallTransitGatewayAttachmentResponse {
3143
+ /**
3144
+ * <p>The ID of the transit gateway attachment that was deleted.</p>
3145
+ * @public
3146
+ */
3147
+ TransitGatewayAttachmentId: string | undefined;
3148
+ /**
3149
+ * <p>The current status of the transit gateway attachment deletion process.</p>
3150
+ * <p>Valid values are:</p>
3151
+ * <ul>
3152
+ * <li>
3153
+ * <p>
3154
+ * <code>CREATING</code> - The attachment is being created</p>
3155
+ * </li>
3156
+ * <li>
3157
+ * <p>
3158
+ * <code>DELETING</code> - The attachment is being deleted</p>
3159
+ * </li>
3160
+ * <li>
3161
+ * <p>
3162
+ * <code>DELETED</code> - The attachment has been deleted</p>
3163
+ * </li>
3164
+ * <li>
3165
+ * <p>
3166
+ * <code>FAILED</code> - The attachment creation has failed and cannot be recovered</p>
3167
+ * </li>
3168
+ * <li>
3169
+ * <p>
3170
+ * <code>ERROR</code> - The attachment is in an error state that might be recoverable</p>
3171
+ * </li>
3172
+ * <li>
3173
+ * <p>
3174
+ * <code>READY</code> - The attachment is active and processing traffic</p>
3175
+ * </li>
3176
+ * <li>
3177
+ * <p>
3178
+ * <code>PENDING_ACCEPTANCE</code> - The attachment is waiting to be accepted</p>
3179
+ * </li>
3180
+ * <li>
3181
+ * <p>
3182
+ * <code>REJECTING</code> - The attachment is in the process of being rejected</p>
3183
+ * </li>
3184
+ * <li>
3185
+ * <p>
3186
+ * <code>REJECTED</code> - The attachment has been rejected</p>
3187
+ * </li>
3188
+ * </ul>
3189
+ * @public
3190
+ */
3191
+ TransitGatewayAttachmentStatus: TransitGatewayAttachmentStatus | undefined;
3192
+ }
2823
3193
  /**
2824
3194
  * @public
2825
3195
  */
@@ -3022,6 +3392,11 @@ export interface DescribeFirewallMetadataResponse {
3022
3392
  * @public
3023
3393
  */
3024
3394
  SupportedAvailabilityZones?: Record<string, AvailabilityZoneMetadata> | undefined;
3395
+ /**
3396
+ * <p>The unique identifier of the transit gateway attachment associated with this firewall. This field is only present for transit gateway-attached firewalls.</p>
3397
+ * @public
3398
+ */
3399
+ TransitGatewayAttachmentId?: string | undefined;
3025
3400
  }
3026
3401
  /**
3027
3402
  * @public
@@ -3098,14 +3473,12 @@ export interface DescribeFlowOperationRequest {
3098
3473
  */
3099
3474
  export interface FlowFilter {
3100
3475
  /**
3101
- * <p>A single IP address specification. This is used in the <a>MatchAttributes</a>
3102
- * source and destination specifications.</p>
3476
+ * <p>A single IP address specification. This is used in the <a>MatchAttributes</a> source and destination specifications.</p>
3103
3477
  * @public
3104
3478
  */
3105
3479
  SourceAddress?: Address | undefined;
3106
3480
  /**
3107
- * <p>A single IP address specification. This is used in the <a>MatchAttributes</a>
3108
- * source and destination specifications.</p>
3481
+ * <p>A single IP address specification. This is used in the <a>MatchAttributes</a> source and destination specifications.</p>
3109
3482
  * @public
3110
3483
  */
3111
3484
  DestinationAddress?: Address | undefined;
@@ -3532,7 +3905,7 @@ export interface DescribeRuleGroupMetadataResponse {
3532
3905
  */
3533
3906
  StatefulRuleOptions?: StatefulRuleOptions | undefined;
3534
3907
  /**
3535
- * <p>The last time that the rule group was changed.</p>
3908
+ * <p>A timestamp indicating when the rule group was last modified.</p>
3536
3909
  * @public
3537
3910
  */
3538
3911
  LastModifiedTime?: Date | undefined;
@@ -3605,6 +3978,62 @@ export interface DescribeVpcEndpointAssociationResponse {
3605
3978
  */
3606
3979
  VpcEndpointAssociationStatus?: VpcEndpointAssociationStatus | undefined;
3607
3980
  }
3981
+ /**
3982
+ * @public
3983
+ */
3984
+ export interface DisassociateAvailabilityZonesRequest {
3985
+ /**
3986
+ * <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>
3987
+ * <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>
3988
+ * <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>
3989
+ * @public
3990
+ */
3991
+ UpdateToken?: string | undefined;
3992
+ /**
3993
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
3994
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
3995
+ * @public
3996
+ */
3997
+ FirewallArn?: string | undefined;
3998
+ /**
3999
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
4000
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
4001
+ * @public
4002
+ */
4003
+ FirewallName?: string | undefined;
4004
+ /**
4005
+ * <p>Required. The Availability Zones to remove from the firewall's configuration.</p>
4006
+ * @public
4007
+ */
4008
+ AvailabilityZoneMappings: AvailabilityZoneMapping[] | undefined;
4009
+ }
4010
+ /**
4011
+ * @public
4012
+ */
4013
+ export interface DisassociateAvailabilityZonesResponse {
4014
+ /**
4015
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
4016
+ * @public
4017
+ */
4018
+ FirewallArn?: string | undefined;
4019
+ /**
4020
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
4021
+ * @public
4022
+ */
4023
+ FirewallName?: string | undefined;
4024
+ /**
4025
+ * <p>The remaining Availability Zones where the firewall has endpoints after the disassociation.</p>
4026
+ * @public
4027
+ */
4028
+ AvailabilityZoneMappings?: AvailabilityZoneMapping[] | undefined;
4029
+ /**
4030
+ * <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>
4031
+ * <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>
4032
+ * <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>
4033
+ * @public
4034
+ */
4035
+ UpdateToken?: string | undefined;
4036
+ }
3608
4037
  /**
3609
4038
  * @public
3610
4039
  */
@@ -3678,6 +4107,11 @@ export interface FirewallMetadata {
3678
4107
  * @public
3679
4108
  */
3680
4109
  FirewallArn?: string | undefined;
4110
+ /**
4111
+ * <p>The unique identifier of the transit gateway attachment associated with this firewall. This field is only present for transit gateway-attached firewalls.</p>
4112
+ * @public
4113
+ */
4114
+ TransitGatewayAttachmentId?: string | undefined;
3681
4115
  }
3682
4116
  /**
3683
4117
  * <p>High-level information about a firewall policy, returned by operations like create and
@@ -3704,14 +4138,12 @@ export interface FirewallPolicyMetadata {
3704
4138
  */
3705
4139
  export interface Flow {
3706
4140
  /**
3707
- * <p>A single IP address specification. This is used in the <a>MatchAttributes</a>
3708
- * source and destination specifications.</p>
4141
+ * <p>A single IP address specification. This is used in the <a>MatchAttributes</a> source and destination specifications.</p>
3709
4142
  * @public
3710
4143
  */
3711
4144
  SourceAddress?: Address | undefined;
3712
4145
  /**
3713
- * <p>A single IP address specification. This is used in the <a>MatchAttributes</a>
3714
- * source and destination specifications.</p>
4146
+ * <p>A single IP address specification. This is used in the <a>MatchAttributes</a> source and destination specifications.</p>
3715
4147
  * @public
3716
4148
  */
3717
4149
  DestinationAddress?: Address | undefined;
@@ -4473,6 +4905,70 @@ export interface PutResourcePolicyRequest {
4473
4905
  */
4474
4906
  export interface PutResourcePolicyResponse {
4475
4907
  }
4908
+ /**
4909
+ * @public
4910
+ */
4911
+ export interface RejectNetworkFirewallTransitGatewayAttachmentRequest {
4912
+ /**
4913
+ * <p>Required. The unique identifier of the transit gateway attachment to reject. This ID is returned in the response when creating a transit gateway-attached firewall.</p>
4914
+ * @public
4915
+ */
4916
+ TransitGatewayAttachmentId: string | undefined;
4917
+ }
4918
+ /**
4919
+ * @public
4920
+ */
4921
+ export interface RejectNetworkFirewallTransitGatewayAttachmentResponse {
4922
+ /**
4923
+ * <p>The unique identifier of the transit gateway attachment that was rejected.</p>
4924
+ * @public
4925
+ */
4926
+ TransitGatewayAttachmentId: string | undefined;
4927
+ /**
4928
+ * <p>The current status of the transit gateway attachment. Valid values are:</p>
4929
+ * <ul>
4930
+ * <li>
4931
+ * <p>
4932
+ * <code>CREATING</code> - The attachment is being created</p>
4933
+ * </li>
4934
+ * <li>
4935
+ * <p>
4936
+ * <code>DELETING</code> - The attachment is being deleted</p>
4937
+ * </li>
4938
+ * <li>
4939
+ * <p>
4940
+ * <code>DELETED</code> - The attachment has been deleted</p>
4941
+ * </li>
4942
+ * <li>
4943
+ * <p>
4944
+ * <code>FAILED</code> - The attachment creation has failed and cannot be recovered</p>
4945
+ * </li>
4946
+ * <li>
4947
+ * <p>
4948
+ * <code>ERROR</code> - The attachment is in an error state that might be recoverable</p>
4949
+ * </li>
4950
+ * <li>
4951
+ * <p>
4952
+ * <code>READY</code> - The attachment is active and processing traffic</p>
4953
+ * </li>
4954
+ * <li>
4955
+ * <p>
4956
+ * <code>PENDING_ACCEPTANCE</code> - The attachment is waiting to be accepted</p>
4957
+ * </li>
4958
+ * <li>
4959
+ * <p>
4960
+ * <code>REJECTING</code> - The attachment is in the process of being rejected</p>
4961
+ * </li>
4962
+ * <li>
4963
+ * <p>
4964
+ * <code>REJECTED</code> - The attachment has been rejected</p>
4965
+ * </li>
4966
+ * </ul>
4967
+ * <p>For information about troubleshooting endpoint failures, see <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-troubleshooting-endpoint-failures.html">Troubleshooting firewall endpoint failures</a> in the <i>Network Firewall Developer Guide</i>.</p>
4968
+ * @public
4969
+ */
4970
+ TransitGatewayAttachmentStatus: TransitGatewayAttachmentStatus | undefined;
4971
+ }
4476
4972
  /**
4477
4973
  * @public
4478
4974
  */
@@ -4667,14 +5163,29 @@ export interface UntagResourceRequest {
4667
5163
  export interface UntagResourceResponse {
4668
5164
  }
4669
5165
  /**
5166
+ * <p>Unable to change the resource because your account doesn't own it. </p>
4670
5167
  * @public
4671
5168
  */
4672
- export interface UpdateFirewallAnalysisSettingsRequest {
5169
+ export declare class ResourceOwnerCheckException extends __BaseException {
5170
+ readonly name: "ResourceOwnerCheckException";
5171
+ readonly $fault: "client";
5172
+ Message?: string | undefined;
4673
5173
  /**
4674
- * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
5174
+ * @internal
5175
+ */
5176
+ constructor(opts: __ExceptionOptionType<ResourceOwnerCheckException, __BaseException>);
5177
+ }
5178
+ /**
5179
+ * @public
5180
+ */
5181
+ export interface UpdateAvailabilityZoneChangeProtectionRequest {
5182
+ /**
5183
+ * <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>
5184
+ * <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>
5185
+ * <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>
4675
5186
  * @public
4676
5187
  */
4677
- EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
5188
+ UpdateToken?: string | undefined;
4678
5189
  /**
4679
5190
  * <p>The Amazon Resource Name (ARN) of the firewall.</p>
4680
5191
  * <p>You must specify the ARN or the name, and you can specify both. </p>
@@ -4687,6 +5198,18 @@ export interface UpdateFirewallAnalysisSettingsRequest {
4687
5198
  * @public
4688
5199
  */
4689
5200
  FirewallName?: string | undefined;
5201
+ /**
5202
+ * <p>A setting indicating whether the firewall is protected against changes to the subnet associations.
5203
+ * Use this setting to protect against
5204
+ * accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.</p>
5205
+ * @public
5206
+ */
5207
+ AvailabilityZoneChangeProtection: boolean | undefined;
5208
+ }
5209
+ /**
5210
+ * @public
5211
+ */
5212
+ export interface UpdateAvailabilityZoneChangeProtectionResponse {
4690
5213
  /**
4691
5214
  * <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>
4692
5215
  * <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>
@@ -4694,11 +5217,28 @@ export interface UpdateFirewallAnalysisSettingsRequest {
4694
5217
  * @public
4695
5218
  */
4696
5219
  UpdateToken?: string | undefined;
5220
+ /**
5221
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
5222
+ * @public
5223
+ */
5224
+ FirewallArn?: string | undefined;
5225
+ /**
5226
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
5227
+ * @public
5228
+ */
5229
+ FirewallName?: string | undefined;
5230
+ /**
5231
+ * <p>A setting indicating whether the firewall is protected against changes to the subnet associations.
5232
+ * Use this setting to protect against
5233
+ * accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.</p>
5234
+ * @public
5235
+ */
5236
+ AvailabilityZoneChangeProtection?: boolean | undefined;
4697
5237
  }
4698
5238
  /**
4699
5239
  * @public
4700
5240
  */
4701
- export interface UpdateFirewallAnalysisSettingsResponse {
5241
+ export interface UpdateFirewallAnalysisSettingsRequest {
4702
5242
  /**
4703
5243
  * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
4704
5244
  * @public
@@ -4725,17 +5265,33 @@ export interface UpdateFirewallAnalysisSettingsResponse {
4725
5265
  UpdateToken?: string | undefined;
4726
5266
  }
4727
5267
  /**
4728
- * <p>Unable to change the resource because your account doesn't own it. </p>
4729
5268
  * @public
4730
5269
  */
4731
- export declare class ResourceOwnerCheckException extends __BaseException {
4732
- readonly name: "ResourceOwnerCheckException";
4733
- readonly $fault: "client";
4734
- Message?: string | undefined;
5270
+ export interface UpdateFirewallAnalysisSettingsResponse {
4735
5271
  /**
4736
- * @internal
5272
+ * <p>An optional setting indicating the specific traffic analysis types to enable on the firewall. </p>
5273
+ * @public
4737
5274
  */
4738
- constructor(opts: __ExceptionOptionType<ResourceOwnerCheckException, __BaseException>);
5275
+ EnabledAnalysisTypes?: EnabledAnalysisType[] | undefined;
5276
+ /**
5277
+ * <p>The Amazon Resource Name (ARN) of the firewall.</p>
5278
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
5279
+ * @public
5280
+ */
5281
+ FirewallArn?: string | undefined;
5282
+ /**
5283
+ * <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p>
5284
+ * <p>You must specify the ARN or the name, and you can specify both. </p>
5285
+ * @public
5286
+ */
5287
+ FirewallName?: string | undefined;
5288
+ /**
5289
+ * <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>
5290
+ * <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>
5291
+ * <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>
5292
+ * @public
5293
+ */
5294
+ UpdateToken?: string | undefined;
4739
5295
  }
4740
5296
  /**
4741
5297
  * @public