aws_sdk_elasticbeanstalk/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#![allow(rustdoc::invalid_html_tags)]
18#![forbid(unsafe_code)]
19#![warn(missing_docs)]
20#![cfg_attr(docsrs, feature(doc_auto_cfg))]
21//! AWS Elastic Beanstalk makes it easy for you to create, deploy, and manage scalable, fault-tolerant applications running on the Amazon Web Services cloud.
22//!
23//! For more information about this product, go to the [AWS Elastic Beanstalk](http://aws.amazon.com/elasticbeanstalk/) details page. The location of the latest AWS Elastic Beanstalk WSDL is [https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl](https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl). To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that enable you to access the API, go to [Tools for Amazon Web Services](http://aws.amazon.com/tools/).
24//!
25//! __Endpoints__
26//!
27//! For a list of region-specific endpoints that AWS Elastic Beanstalk supports, go to [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region) in the _Amazon Web Services Glossary_.
28//!
29//! ## Getting Started
30//!
31//! > Examples are available for many services and operations, check out the
32//! > [examples folder in GitHub](https://github.com/awslabs/aws-sdk-rust/tree/main/examples).
33//!
34//! The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio)
35//! as a dependency within your Rust project to execute asynchronous code. To add `aws-sdk-elasticbeanstalk` to
36//! your project, add the following to your **Cargo.toml** file:
37//!
38//! ```toml
39//! [dependencies]
40//! aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
41//! aws-sdk-elasticbeanstalk = "1.73.0"
42//! tokio = { version = "1", features = ["full"] }
43//! ```
44//!
45//! Then in code, a client can be created with the following:
46//!
47//! ```rust,no_run
48//! use aws_sdk_elasticbeanstalk as elasticbeanstalk;
49//!
50//! #[::tokio::main]
51//! async fn main() -> Result<(), elasticbeanstalk::Error> {
52//! let config = aws_config::load_from_env().await;
53//! let client = aws_sdk_elasticbeanstalk::Client::new(&config);
54//!
55//! // ... make some calls with the client
56//!
57//! Ok(())
58//! }
59//! ```
60//!
61//! See the [client documentation](https://docs.rs/aws-sdk-elasticbeanstalk/latest/aws_sdk_elasticbeanstalk/client/struct.Client.html)
62//! for information on what calls can be made, and the inputs and outputs for each of those calls.
63//!
64//! ## Using the SDK
65//!
66//! Until the SDK is released, we will be adding information about using the SDK to the
67//! [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html). Feel free to suggest
68//! additional sections for the guide by opening an issue and describing what you are trying to do.
69//!
70//! ## Getting Help
71//!
72//! * [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
73//! * [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) - For bug reports & feature requests
74//! * [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
75//! * [Usage examples](https://github.com/awslabs/aws-sdk-rust/tree/main/examples)
76//!
77//!
78//! # Crate Organization
79//!
80//! The entry point for most customers will be [`Client`], which exposes one method for each API
81//! offered by AWS Elastic Beanstalk. The return value of each of these methods is a "fluent builder",
82//! where the different inputs for that API are added by builder-style function call chaining,
83//! followed by calling `send()` to get a [`Future`](std::future::Future) that will result in
84//! either a successful output or a [`SdkError`](crate::error::SdkError).
85//!
86//! Some of these API inputs may be structs or enums to provide more complex structured information.
87//! These structs and enums live in [`types`](crate::types). There are some simpler types for
88//! representing data such as date times or binary blobs that live in [`primitives`](crate::primitives).
89//!
90//! All types required to configure a client via the [`Config`](crate::Config) struct live
91//! in [`config`](crate::config).
92//!
93//! The [`operation`](crate::operation) module has a submodule for every API, and in each submodule
94//! is the input, output, and error type for that API, as well as builders to construct each of those.
95//!
96//! There is a top-level [`Error`](crate::Error) type that encompasses all the errors that the
97//! client can return. Any other error type can be converted to this `Error` type via the
98//! [`From`](std::convert::From) trait.
99//!
100//! The other modules within this crate are not required for normal usage.
101
102// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
103pub use error_meta::Error;
104
105#[doc(inline)]
106pub use config::Config;
107
108/// Client for calling AWS Elastic Beanstalk.
109/// ## Constructing a `Client`
110///
111/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
112/// crate should be used to automatically resolve this config using
113/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
114/// across multiple different AWS SDK clients. This config resolution process can be customized
115/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
116/// the [builder pattern] to customize the default config.
117///
118/// In the simplest case, creating a client looks as follows:
119/// ```rust,no_run
120/// # async fn wrapper() {
121/// let config = aws_config::load_from_env().await;
122/// let client = aws_sdk_elasticbeanstalk::Client::new(&config);
123/// # }
124/// ```
125///
126/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
127/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
128/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
129/// done as follows:
130///
131/// ```rust,no_run
132/// # async fn wrapper() {
133/// let sdk_config = ::aws_config::load_from_env().await;
134/// let config = aws_sdk_elasticbeanstalk::config::Builder::from(&sdk_config)
135/// # /*
136/// .some_service_specific_setting("value")
137/// # */
138/// .build();
139/// # }
140/// ```
141///
142/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
143///
144/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
145/// be done once at application start-up.
146///
147/// [`Config`]: crate::Config
148/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
149/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
150/// [`aws-config` docs]: https://docs.rs/aws-config/*
151/// [`aws-config`]: https://crates.io/crates/aws-config
152/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
153/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
154/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
155/// # Using the `Client`
156///
157/// A client has a function for every operation that can be performed by the service.
158/// For example, the [`AbortEnvironmentUpdate`](crate::operation::abort_environment_update) operation has
159/// a [`Client::abort_environment_update`], function which returns a builder for that operation.
160/// The fluent builder ultimately has a `send()` function that returns an async future that
161/// returns a result, as illustrated below:
162///
163/// ```rust,ignore
164/// let result = client.abort_environment_update()
165/// .environment_id("example")
166/// .send()
167/// .await;
168/// ```
169///
170/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
171/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
172/// information.
173/// # Waiters
174///
175/// This client provides `wait_until` methods behind the [`Waiters`](crate::client::Waiters) trait.
176/// To use them, simply import the trait, and then call one of the `wait_until` methods. This will
177/// return a waiter fluent builder that takes various parameters, which are documented on the builder
178/// type. Once parameters have been provided, the `wait` method can be called to initiate waiting.
179///
180/// For example, if there was a `wait_until_thing` method, it could look like:
181/// ```rust,ignore
182/// let result = client.wait_until_thing()
183/// .thing_id("someId")
184/// .wait(Duration::from_secs(120))
185/// .await;
186/// ```
187pub mod client;
188
189/// Configuration for AWS Elastic Beanstalk.
190pub mod config;
191
192/// Common errors and error handling utilities.
193pub mod error;
194
195mod error_meta;
196
197/// Information about this crate.
198pub mod meta;
199
200/// All operations that this crate can perform.
201pub mod operation;
202
203/// Primitives such as `Blob` or `DateTime` used by other types.
204pub mod primitives;
205
206/// Data structures used by operation inputs/outputs.
207pub mod types;
208
209mod auth_plugin;
210
211pub(crate) mod protocol_serde;
212
213mod sdk_feature_tracker;
214
215mod serialization_settings;
216
217mod endpoint_lib;
218
219mod lens;
220
221/// Supporting types for waiters.
222///
223/// Note: to use waiters, import the [`Waiters`](crate::client::Waiters) trait, which adds methods prefixed with `wait_until` to the client.
224pub mod waiters;
225
226mod rest_xml_wrapped_errors;
227
228mod serde_util;
229
230#[doc(inline)]
231pub use client::Client;