aws_sdk_mwaa/lib.rs
1#![allow(deprecated)]
2#![allow(unknown_lints)]
3#![allow(clippy::module_inception)]
4#![allow(clippy::upper_case_acronyms)]
5#![allow(clippy::large_enum_variant)]
6#![allow(clippy::wrong_self_convention)]
7#![allow(clippy::should_implement_trait)]
8#![allow(clippy::disallowed_names)]
9#![allow(clippy::vec_init_then_push)]
10#![allow(clippy::type_complexity)]
11#![allow(clippy::needless_return)]
12#![allow(clippy::derive_partial_eq_without_eq)]
13#![allow(clippy::result_large_err)]
14#![allow(clippy::unnecessary_map_on_constructor)]
15#![allow(rustdoc::bare_urls)]
16#![allow(rustdoc::redundant_explicit_links)]
17#![forbid(unsafe_code)]
18#![warn(missing_docs)]
19#![cfg_attr(docsrs, feature(doc_auto_cfg))]
20//! This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation. For more information, see [What is Amazon MWAA?](https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html).
21//!
22//! __Endpoints__
23//! - api.airflow.{region}.amazonaws.com - This endpoint is used for environment management.
24//! - [CreateEnvironment](https://docs.aws.amazon.com/mwaa/latest/API/API_CreateEnvironment.html)
25//! - [DeleteEnvironment](https://docs.aws.amazon.com/mwaa/latest/API/API_DeleteEnvironment.html)
26//! - [GetEnvironment](https://docs.aws.amazon.com/mwaa/latest/API/API_GetEnvironment.html)
27//! - [ListEnvironments](https://docs.aws.amazon.com/mwaa/latest/API/API_ListEnvironments.html)
28//! - [ListTagsForResource](https://docs.aws.amazon.com/mwaa/latest/API/API_ListTagsForResource.html)
29//! - [TagResource](https://docs.aws.amazon.com/mwaa/latest/API/API_TagResource.html)
30//! - [UntagResource](https://docs.aws.amazon.com/mwaa/latest/API/API_UntagResource.html)
31//! - [UpdateEnvironment](https://docs.aws.amazon.com/mwaa/latest/API/API_UpdateEnvironment.html)
32//!
33//! - env.airflow.{region}.amazonaws.com - This endpoint is used to operate the Airflow environment.
34//! - [CreateCliToken](https://docs.aws.amazon.com/mwaa/latest/API/API_CreateCliToken.html )
35//! - [CreateWebLoginToken](https://docs.aws.amazon.com/mwaa/latest/API/API_CreateWebLoginToken.html)
36//! - [InvokeRestApi](https://docs.aws.amazon.com/mwaa/latest/API/API_InvokeRestApi.html)
37//!
38//! __Regions__
39//!
40//! For a list of supported regions, see [Amazon MWAA endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/mwaa.html) in the _Amazon Web Services General Reference_.
41//!
42//! ## Getting Started
43//!
44//! > Examples are available for many services and operations, check out the
45//! > [examples folder in GitHub](https://github.com/awslabs/aws-sdk-rust/tree/main/examples).
46//!
47//! The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio)
48//! as a dependency within your Rust project to execute asynchronous code. To add `aws-sdk-mwaa` to
49//! your project, add the following to your **Cargo.toml** file:
50//!
51//! ```toml
52//! [dependencies]
53//! aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
54//! aws-sdk-mwaa = "1.70.0"
55//! tokio = { version = "1", features = ["full"] }
56//! ```
57//!
58//! Then in code, a client can be created with the following:
59//!
60//! ```rust,no_run
61//! use aws_sdk_mwaa as mwaa;
62//!
63//! #[::tokio::main]
64//! async fn main() -> Result<(), mwaa::Error> {
65//! let config = aws_config::load_from_env().await;
66//! let client = aws_sdk_mwaa::Client::new(&config);
67//!
68//! // ... make some calls with the client
69//!
70//! Ok(())
71//! }
72//! ```
73//!
74//! See the [client documentation](https://docs.rs/aws-sdk-mwaa/latest/aws_sdk_mwaa/client/struct.Client.html)
75//! for information on what calls can be made, and the inputs and outputs for each of those calls.
76//!
77//! ## Using the SDK
78//!
79//! Until the SDK is released, we will be adding information about using the SDK to the
80//! [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html). Feel free to suggest
81//! additional sections for the guide by opening an issue and describing what you are trying to do.
82//!
83//! ## Getting Help
84//!
85//! * [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
86//! * [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) - For bug reports & feature requests
87//! * [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
88//! * [Usage examples](https://github.com/awslabs/aws-sdk-rust/tree/main/examples)
89//!
90//!
91//! # Crate Organization
92//!
93//! The entry point for most customers will be [`Client`], which exposes one method for each API
94//! offered by AmazonMWAA. The return value of each of these methods is a "fluent builder",
95//! where the different inputs for that API are added by builder-style function call chaining,
96//! followed by calling `send()` to get a [`Future`](std::future::Future) that will result in
97//! either a successful output or a [`SdkError`](crate::error::SdkError).
98//!
99//! Some of these API inputs may be structs or enums to provide more complex structured information.
100//! These structs and enums live in [`types`](crate::types). There are some simpler types for
101//! representing data such as date times or binary blobs that live in [`primitives`](crate::primitives).
102//!
103//! All types required to configure a client via the [`Config`](crate::Config) struct live
104//! in [`config`](crate::config).
105//!
106//! The [`operation`](crate::operation) module has a submodule for every API, and in each submodule
107//! is the input, output, and error type for that API, as well as builders to construct each of those.
108//!
109//! There is a top-level [`Error`](crate::Error) type that encompasses all the errors that the
110//! client can return. Any other error type can be converted to this `Error` type via the
111//! [`From`](std::convert::From) trait.
112//!
113//! The other modules within this crate are not required for normal usage.
114
115// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
116pub use error_meta::Error;
117
118#[doc(inline)]
119pub use config::Config;
120
121/// Client for calling AmazonMWAA.
122/// ## Constructing a `Client`
123///
124/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
125/// crate should be used to automatically resolve this config using
126/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
127/// across multiple different AWS SDK clients. This config resolution process can be customized
128/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
129/// the [builder pattern] to customize the default config.
130///
131/// In the simplest case, creating a client looks as follows:
132/// ```rust,no_run
133/// # async fn wrapper() {
134/// let config = aws_config::load_from_env().await;
135/// let client = aws_sdk_mwaa::Client::new(&config);
136/// # }
137/// ```
138///
139/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
140/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
141/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
142/// done as follows:
143///
144/// ```rust,no_run
145/// # async fn wrapper() {
146/// let sdk_config = ::aws_config::load_from_env().await;
147/// let config = aws_sdk_mwaa::config::Builder::from(&sdk_config)
148/// # /*
149/// .some_service_specific_setting("value")
150/// # */
151/// .build();
152/// # }
153/// ```
154///
155/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
156///
157/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
158/// be done once at application start-up.
159///
160/// [`Config`]: crate::Config
161/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
162/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
163/// [`aws-config` docs]: https://docs.rs/aws-config/*
164/// [`aws-config`]: https://crates.io/crates/aws-config
165/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
166/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
167/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
168/// # Using the `Client`
169///
170/// A client has a function for every operation that can be performed by the service.
171/// For example, the [`CreateCliToken`](crate::operation::create_cli_token) operation has
172/// a [`Client::create_cli_token`], function which returns a builder for that operation.
173/// The fluent builder ultimately has a `send()` function that returns an async future that
174/// returns a result, as illustrated below:
175///
176/// ```rust,ignore
177/// let result = client.create_cli_token()
178/// .name("example")
179/// .send()
180/// .await;
181/// ```
182///
183/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
184/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
185/// information.
186pub mod client;
187
188/// Configuration for AmazonMWAA.
189pub mod config;
190
191/// Common errors and error handling utilities.
192pub mod error;
193
194mod error_meta;
195
196/// Information about this crate.
197pub mod meta;
198
199/// All operations that this crate can perform.
200pub mod operation;
201
202/// Primitives such as `Blob` or `DateTime` used by other types.
203pub mod primitives;
204
205/// Data structures used by operation inputs/outputs.
206pub mod types;
207
208mod auth_plugin;
209
210pub(crate) mod protocol_serde;
211
212mod sdk_feature_tracker;
213
214mod serialization_settings;
215
216mod endpoint_lib;
217
218mod lens;
219
220mod serde_util;
221
222mod json_errors;
223
224#[doc(inline)]
225pub use client::Client;