1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#![allow(clippy::module_inception)]
#![allow(clippy::upper_case_acronyms)]
#![allow(clippy::large_enum_variant)]
#![allow(clippy::wrong_self_convention)]
#![allow(clippy::should_implement_trait)]
#![allow(clippy::blacklisted_name)]
#![allow(clippy::vec_init_then_push)]
#![allow(rustdoc::bare_urls)]
#![warn(missing_docs)]
//! <p>This is the API Reference for AWS Network Firewall. This guide is for developers who need
//! detailed information about the Network Firewall API actions, data types, and errors. </p>
//! <ul>
//! <li>
//! <p>The REST API requires you to handle connection details, such as calculating
//! signatures, handling request retries, and error handling. For general information
//! about using the AWS REST APIs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-apis.html">AWS APIs</a>. </p>
//! <p>To access Network Firewall using the REST API endpoint:
//! <code>https://network-firewall.<region>.amazonaws.com </code>
//! </p>
//! </li>
//! <li>
//! <p>Alternatively, you can use one of the AWS SDKs to access an API that's tailored to
//! the programming language or platform that you're using. For more information, see
//! <a href="http://aws.amazon.com/tools/#SDKs">AWS SDKs</a>.</p>
//! </li>
//! <li>
//! <p>For descriptions of Network Firewall features, including and step-by-step
//! instructions on how to use them through the Network Firewall console, see the <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/">Network Firewall Developer
//! Guide</a>.</p>
//! </li>
//! </ul>
//! <p>Network Firewall is a stateful, managed, network firewall and intrusion detection and
//! prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the
//! perimeter of your VPC. This includes filtering traffic going to and coming from an internet
//! gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible
//! with Suricata, a free, open source intrusion detection system (IDS) engine.
//! AWS Network Firewall supports Suricata version 5.0.2. For information about Suricata,
//! see the <a href="https://suricata-ids.org/">Suricata website</a>.</p>
//! <p>You can use Network Firewall to monitor and protect your VPC traffic in a number of ways.
//! The following are just a few examples: </p>
//! <ul>
//! <li>
//! <p>Allow domains or IP addresses for known AWS service endpoints, such as Amazon S3, and
//! block all other forms of traffic.</p>
//! </li>
//! <li>
//! <p>Use custom lists of known bad domains to limit the types of domain names that your
//! applications can access.</p>
//! </li>
//! <li>
//! <p>Perform deep packet inspection on traffic entering or leaving your VPC.</p>
//! </li>
//! <li>
//! <p>Use stateful protocol detection to filter protocols like HTTPS, regardless of the
//! port used.</p>
//! </li>
//! </ul>
//! <p>To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in
//! Network Firewall. For information about using Amazon VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon VPC User Guide</a>.</p>
//! <p>To start using Network Firewall, do the following: </p>
//! <ol>
//! <li>
//! <p>(Optional) If you don't already have a VPC that you want to protect, create it in
//! Amazon VPC. </p>
//! </li>
//! <li>
//! <p>In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a
//! subnet for the sole use of Network Firewall. </p>
//! </li>
//! <li>
//! <p>In Network Firewall, create stateless and stateful rule groups,
//! to define the components of the network traffic filtering behavior that you want your firewall to have. </p>
//! </li>
//! <li>
//! <p>In Network Firewall, create a firewall policy that uses your rule groups and
//! specifies additional default traffic filtering behavior. </p>
//! </li>
//! <li>
//! <p>In Network Firewall, create a firewall and specify your new firewall policy and
//! VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you
//! specify, with the behavior that's defined in the firewall policy.</p>
//! </li>
//! <li>
//! <p>In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall
//! endpoints.</p>
//! </li>
//! </ol>
//!
//! # Crate Organization
//!
//! The entry point for most customers will be [`Client`]. [`Client`] exposes one method for each API offered
//! by the service.
//!
//! Some APIs require complex or nested arguments. These exist in [`model`].
//!
//! Lastly, errors that can be returned by the service are contained within [`error`]. [`Error`] defines a meta
//! error encompassing all possible errors that can be returned by the service.
//!
//! The other modules within this crate are not required for normal usage.

// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use error_meta::Error;

pub use config::Config;

mod aws_endpoint;
/// Client and fluent builders for calling the service.
pub mod client;
/// Configuration for the service.
pub mod config;
/// Errors that can occur when calling the service.
pub mod error;
mod error_meta;
/// Input structures for operations.
pub mod input;
mod json_deser;
mod json_errors;
mod json_ser;
/// Generated accessors for nested fields
mod lens;
pub mod middleware;
/// Data structures used by operation inputs/outputs.
pub mod model;
mod no_credentials;
/// All operations that this crate can perform.
pub mod operation;
mod operation_deser;
mod operation_ser;
/// Output structures for operations.
pub mod output;
/// Paginators for the service
pub mod paginator;
/// Crate version number.
pub static PKG_VERSION: &str = env!("CARGO_PKG_VERSION");
pub use aws_smithy_http::byte_stream::ByteStream;
pub use aws_smithy_http::result::SdkError;
pub use aws_smithy_types::Blob;
pub use aws_smithy_types::DateTime;
static API_METADATA: aws_http::user_agent::ApiMetadata =
    aws_http::user_agent::ApiMetadata::new("networkfirewall", PKG_VERSION);
pub use aws_smithy_http::endpoint::Endpoint;
pub use aws_smithy_types::retry::RetryConfig;
pub use aws_types::app_name::AppName;
pub use aws_types::region::Region;
pub use aws_types::Credentials;
pub use client::Client;