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