aws_sdk_appflow/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(clippy::useless_conversion)]
16#![allow(clippy::deprecated_semver)]
17#![allow(rustdoc::bare_urls)]
18#![allow(rustdoc::redundant_explicit_links)]
19#![allow(rustdoc::broken_intra_doc_links)]
20#![allow(rustdoc::invalid_html_tags)]
21#![forbid(unsafe_code)]
22#![warn(missing_docs)]
23#![cfg_attr(docsrs, feature(doc_cfg))]
24//! Welcome to the Amazon AppFlow API reference. This guide is for developers who need detailed information about the Amazon AppFlow API operations, data types, and errors.
25//!
26//! Amazon AppFlow is a fully managed integration service that enables you to securely transfer data between software as a service (SaaS) applications like Salesforce, Marketo, Slack, and ServiceNow, and Amazon Web Services like Amazon S3 and Amazon Redshift.
27//!
28//! Use the following links to get started on the Amazon AppFlow API:
29//! - [Actions](https://docs.aws.amazon.com/appflow/1.0/APIReference/API_Operations.html): An alphabetical list of all Amazon AppFlow API operations.
30//! - [Data types](https://docs.aws.amazon.com/appflow/1.0/APIReference/API_Types.html): An alphabetical list of all Amazon AppFlow data types.
31//! - [Common parameters](https://docs.aws.amazon.com/appflow/1.0/APIReference/CommonParameters.html): Parameters that all Query operations can use.
32//! - [Common errors](https://docs.aws.amazon.com/appflow/1.0/APIReference/CommonErrors.html): Client and server errors that all operations can return.
33//!
34//! If you're new to Amazon AppFlow, we recommend that you review the [Amazon AppFlow User Guide](https://docs.aws.amazon.com/appflow/latest/userguide/what-is-appflow.html).
35//!
36//! Amazon AppFlow API users can use vendor-specific mechanisms for OAuth, and include applicable OAuth attributes (such as auth-code and redirecturi) with the connector-specific ConnectorProfileProperties when creating a new connector profile using Amazon AppFlow API operations. For example, Salesforce users can refer to the [_Authorize Apps with OAuth_](https://help.salesforce.com/articleView?id=remoteaccess_authenticate.htm) documentation.
37//!
38//! ## Getting Started
39//!
40//! > Examples are available for many services and operations, check out the
41//! > [usage examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1).
42//!
43//! The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio)
44//! as a dependency within your Rust project to execute asynchronous code. To add `aws-sdk-appflow` to
45//! your project, add the following to your **Cargo.toml** file:
46//!
47//! ```toml
48//! [dependencies]
49//! aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
50//! aws-sdk-appflow = "1.95.0"
51//! tokio = { version = "1", features = ["full"] }
52//! ```
53//!
54//! Then in code, a client can be created with the following:
55//!
56//! ```rust,no_run
57//! use aws_sdk_appflow as appflow;
58//!
59//! #[::tokio::main]
60//! async fn main() -> Result<(), appflow::Error> {
61//! let config = aws_config::load_from_env().await;
62//! let client = aws_sdk_appflow::Client::new(&config);
63//!
64//! // ... make some calls with the client
65//!
66//! Ok(())
67//! }
68//! ```
69//!
70//! See the [client documentation](https://docs.rs/aws-sdk-appflow/latest/aws_sdk_appflow/client/struct.Client.html)
71//! for information on what calls can be made, and the inputs and outputs for each of those calls.
72//!
73//! ## Using the SDK
74//!
75//! Until the SDK is released, we will be adding information about using the SDK to the
76//! [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html). Feel free to suggest
77//! additional sections for the guide by opening an issue and describing what you are trying to do.
78//!
79//! ## Getting Help
80//!
81//! * [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
82//! * [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) - For bug reports & feature requests
83//! * [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
84//! * [Usage examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1)
85//!
86//!
87//! # Crate Organization
88//!
89//! The entry point for most customers will be [`Client`], which exposes one method for each API
90//! offered by Amazon Appflow. The return value of each of these methods is a "fluent builder",
91//! where the different inputs for that API are added by builder-style function call chaining,
92//! followed by calling `send()` to get a [`Future`](std::future::Future) that will result in
93//! either a successful output or a [`SdkError`](crate::error::SdkError).
94//!
95//! Some of these API inputs may be structs or enums to provide more complex structured information.
96//! These structs and enums live in [`types`](crate::types). There are some simpler types for
97//! representing data such as date times or binary blobs that live in [`primitives`](crate::primitives).
98//!
99//! All types required to configure a client via the [`Config`](crate::Config) struct live
100//! in [`config`](crate::config).
101//!
102//! The [`operation`](crate::operation) module has a submodule for every API, and in each submodule
103//! is the input, output, and error type for that API, as well as builders to construct each of those.
104//!
105//! There is a top-level [`Error`](crate::Error) type that encompasses all the errors that the
106//! client can return. Any other error type can be converted to this `Error` type via the
107//! [`From`](std::convert::From) trait.
108//!
109//! The other modules within this crate are not required for normal usage.
110
111// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
112pub use error_meta::Error;
113
114#[doc(inline)]
115pub use config::Config;
116
117/// Client for calling Amazon Appflow.
118/// ## Constructing a `Client`
119///
120/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
121/// crate should be used to automatically resolve this config using
122/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
123/// across multiple different AWS SDK clients. This config resolution process can be customized
124/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
125/// the [builder pattern] to customize the default config.
126///
127/// In the simplest case, creating a client looks as follows:
128/// ```rust,no_run
129/// # async fn wrapper() {
130/// let config = aws_config::load_from_env().await;
131/// let client = aws_sdk_appflow::Client::new(&config);
132/// # }
133/// ```
134///
135/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
136/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
137/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
138/// done as follows:
139///
140/// ```rust,no_run
141/// # async fn wrapper() {
142/// let sdk_config = ::aws_config::load_from_env().await;
143/// let config = aws_sdk_appflow::config::Builder::from(&sdk_config)
144/// # /*
145/// .some_service_specific_setting("value")
146/// # */
147/// .build();
148/// # }
149/// ```
150///
151/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
152///
153/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
154/// be done once at application start-up.
155///
156/// [`Config`]: crate::Config
157/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
158/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
159/// [`aws-config` docs]: https://docs.rs/aws-config/*
160/// [`aws-config`]: https://crates.io/crates/aws-config
161/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
162/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
163/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
164/// # Using the `Client`
165///
166/// A client has a function for every operation that can be performed by the service.
167/// For example, the [`CancelFlowExecutions`](crate::operation::cancel_flow_executions) operation has
168/// a [`Client::cancel_flow_executions`], function which returns a builder for that operation.
169/// The fluent builder ultimately has a `send()` function that returns an async future that
170/// returns a result, as illustrated below:
171///
172/// ```rust,ignore
173/// let result = client.cancel_flow_executions()
174/// .flow_name("example")
175/// .send()
176/// .await;
177/// ```
178///
179/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
180/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
181/// information.
182pub mod client;
183
184/// Configuration for Amazon Appflow.
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
204pub(crate) mod client_idempotency_token;
205
206mod idempotency_token;
207
208mod observability_feature;
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;