aws_sdk_partnercentralselling/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::deprecated_semver)]
16#![allow(rustdoc::bare_urls)]
17#![allow(rustdoc::redundant_explicit_links)]
18#![allow(rustdoc::invalid_html_tags)]
19#![forbid(unsafe_code)]
20#![warn(missing_docs)]
21#![cfg_attr(docsrs, feature(doc_cfg))]
22//! __AWS Partner Central API for Selling Reference Guide__
23//!
24//! This Amazon Web Services (AWS) Partner Central API reference is designed to help [AWS Partners](http://aws.amazon.com/partners/programs/) integrate Customer Relationship Management (CRM) systems with AWS Partner Central. Partners can automate interactions with AWS Partner Central, which helps to ensure effective engagements in joint business activities.
25//!
26//! The API provides standard AWS API functionality. Access it by either using API [Actions](https://docs.aws.amazon.com/partner-central/latest/selling-api/API_Operations.html) or by using an AWS SDK that's tailored to your programming language or platform. For more information, see [Getting Started with AWS](http://aws.amazon.com/getting-started) and [Tools to Build on AWS](http://aws.amazon.com/developer/tools/).
27//!
28//! __Features offered by AWS Partner Central API__
29//! 1. __Opportunity management:__ Manages coselling opportunities through API actions such as CreateOpportunity, UpdateOpportunity, ListOpportunities, GetOpportunity, and AssignOpportunity.
30//! 1. __AWS referral management:__ Manages referrals shared by AWS using actions such as ListEngagementInvitations, GetEngagementInvitation, StartEngagementByAcceptingInvitation, and RejectEngagementInvitation.
31//! 1. __Entity association:__ Associates related entities such as _AWS Products_, _Partner Solutions_, and _AWS Marketplace Private Offers_ with opportunities using the actions AssociateOpportunity, and DisassociateOpportunity.
32//! 1. __View AWS opportunity details:__ Retrieves real-time summaries of AWS opportunities using the GetAWSOpportunitySummary action.
33//! 1. __List solutions:__ Provides list APIs for listing partner offers using ListSolutions.
34//! 1. __Event subscription:__ Subscribe to real-time opportunity updates through AWS EventBridge by using actions such as _Opportunity Created_, _Opportunity Updated_, _Engagement Invitation Accepted_, _Engagement Invitation Rejected_, and _Engagement Invitation Created_.
35//!
36//! ## Getting Started
37//!
38//! > Examples are available for many services and operations, check out the
39//! > [usage examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1).
40//!
41//! The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio)
42//! as a dependency within your Rust project to execute asynchronous code. To add `aws-sdk-partnercentralselling` to
43//! your project, add the following to your **Cargo.toml** file:
44//!
45//! ```toml
46//! [dependencies]
47//! aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
48//! aws-sdk-partnercentralselling = "1.49.0"
49//! tokio = { version = "1", features = ["full"] }
50//! ```
51//!
52//! Then in code, a client can be created with the following:
53//!
54//! ```rust,no_run
55//! use aws_sdk_partnercentralselling as partnercentralselling;
56//!
57//! #[::tokio::main]
58//! async fn main() -> Result<(), partnercentralselling::Error> {
59//! let config = aws_config::load_from_env().await;
60//! let client = aws_sdk_partnercentralselling::Client::new(&config);
61//!
62//! // ... make some calls with the client
63//!
64//! Ok(())
65//! }
66//! ```
67//!
68//! See the [client documentation](https://docs.rs/aws-sdk-partnercentralselling/latest/aws_sdk_partnercentralselling/client/struct.Client.html)
69//! for information on what calls can be made, and the inputs and outputs for each of those calls.
70//!
71//! ## Using the SDK
72//!
73//! Until the SDK is released, we will be adding information about using the SDK to the
74//! [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html). Feel free to suggest
75//! additional sections for the guide by opening an issue and describing what you are trying to do.
76//!
77//! ## Getting Help
78//!
79//! * [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
80//! * [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) - For bug reports & feature requests
81//! * [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
82//! * [Usage examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1)
83//!
84//!
85//! # Crate Organization
86//!
87//! The entry point for most customers will be [`Client`], which exposes one method for each API
88//! offered by Partner Central Selling API. The return value of each of these methods is a "fluent builder",
89//! where the different inputs for that API are added by builder-style function call chaining,
90//! followed by calling `send()` to get a [`Future`](std::future::Future) that will result in
91//! either a successful output or a [`SdkError`](crate::error::SdkError).
92//!
93//! Some of these API inputs may be structs or enums to provide more complex structured information.
94//! These structs and enums live in [`types`](crate::types). There are some simpler types for
95//! representing data such as date times or binary blobs that live in [`primitives`](crate::primitives).
96//!
97//! All types required to configure a client via the [`Config`](crate::Config) struct live
98//! in [`config`](crate::config).
99//!
100//! The [`operation`](crate::operation) module has a submodule for every API, and in each submodule
101//! is the input, output, and error type for that API, as well as builders to construct each of those.
102//!
103//! There is a top-level [`Error`](crate::Error) type that encompasses all the errors that the
104//! client can return. Any other error type can be converted to this `Error` type via the
105//! [`From`](std::convert::From) trait.
106//!
107//! The other modules within this crate are not required for normal usage.
108
109// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
110pub use error_meta::Error;
111
112#[doc(inline)]
113pub use config::Config;
114
115/// Client for calling Partner Central Selling API.
116/// ## Constructing a `Client`
117///
118/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
119/// crate should be used to automatically resolve this config using
120/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
121/// across multiple different AWS SDK clients. This config resolution process can be customized
122/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
123/// the [builder pattern] to customize the default config.
124///
125/// In the simplest case, creating a client looks as follows:
126/// ```rust,no_run
127/// # async fn wrapper() {
128/// let config = aws_config::load_from_env().await;
129/// let client = aws_sdk_partnercentralselling::Client::new(&config);
130/// # }
131/// ```
132///
133/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
134/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
135/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
136/// done as follows:
137///
138/// ```rust,no_run
139/// # async fn wrapper() {
140/// let sdk_config = ::aws_config::load_from_env().await;
141/// let config = aws_sdk_partnercentralselling::config::Builder::from(&sdk_config)
142/// # /*
143/// .some_service_specific_setting("value")
144/// # */
145/// .build();
146/// # }
147/// ```
148///
149/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
150///
151/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
152/// be done once at application start-up.
153///
154/// [`Config`]: crate::Config
155/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
156/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
157/// [`aws-config` docs]: https://docs.rs/aws-config/*
158/// [`aws-config`]: https://crates.io/crates/aws-config
159/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
160/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
161/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
162/// # Using the `Client`
163///
164/// A client has a function for every operation that can be performed by the service.
165/// For example, the [`AcceptEngagementInvitation`](crate::operation::accept_engagement_invitation) operation has
166/// a [`Client::accept_engagement_invitation`], function which returns a builder for that operation.
167/// The fluent builder ultimately has a `send()` function that returns an async future that
168/// returns a result, as illustrated below:
169///
170/// ```rust,ignore
171/// let result = client.accept_engagement_invitation()
172/// .catalog("example")
173/// .send()
174/// .await;
175/// ```
176///
177/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
178/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
179/// information.
180pub mod client;
181
182/// Configuration for Partner Central Selling API.
183pub mod config;
184
185/// Common errors and error handling utilities.
186pub mod error;
187
188mod error_meta;
189
190/// Information about this crate.
191pub mod meta;
192
193/// All operations that this crate can perform.
194pub mod operation;
195
196/// Primitives such as `Blob` or `DateTime` used by other types.
197pub mod primitives;
198
199/// Data structures used by operation inputs/outputs.
200pub mod types;
201
202pub(crate) mod client_idempotency_token;
203
204mod idempotency_token;
205
206mod observability_feature;
207
208pub(crate) mod protocol_serde;
209
210mod sdk_feature_tracker;
211
212mod serialization_settings;
213
214mod endpoint_lib;
215
216mod lens;
217
218mod serde_util;
219
220mod json_errors;
221
222#[doc(inline)]
223pub use client::Client;