aws_sdk_sso/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 IAM Identity Center (successor to AWS Single Sign-On) Portal is a web service that makes it easy for you to assign user access to IAM Identity Center resources such as the AWS access portal. Users can get AWS account applications and roles assigned to them and get federated into the application.
22//!
23//! This reference guide describes the IAM Identity Center Portal operations that you can call programatically and includes detailed information on data types and errors.
24//!
25//! ## Getting Started
26//!
27//! > Examples are available for many services and operations, check out the
28//! > [examples folder in GitHub](https://github.com/awslabs/aws-sdk-rust/tree/main/examples).
29//!
30//! The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio)
31//! as a dependency within your Rust project to execute asynchronous code. To add `aws-sdk-sso` to
32//! your project, add the following to your **Cargo.toml** file:
33//!
34//! ```toml
35//! [dependencies]
36//! aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
37//! aws-sdk-sso = "0.0.0-local"
38//! tokio = { version = "1", features = ["full"] }
39//! ```
40//!
41//! Then in code, a client can be created with the following:
42//!
43//! ```rust,ignore
44//! use aws_sdk_sso as sso;
45//!
46//! #[::tokio::main]
47//! async fn main() -> Result<(), sso::Error> {
48//! let config = aws_config::load_from_env().await;
49//! let client = aws_sdk_sso::Client::new(&config);
50//!
51//! // ... make some calls with the client
52//!
53//! Ok(())
54//! }
55//! ```
56//!
57//! See the [client documentation](https://docs.rs/aws-sdk-sso/latest/aws_sdk_sso/client/struct.Client.html)
58//! for information on what calls can be made, and the inputs and outputs for each of those calls.
59//!
60//! ## Using the SDK
61//!
62//! Until the SDK is released, we will be adding information about using the SDK to the
63//! [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html). Feel free to suggest
64//! additional sections for the guide by opening an issue and describing what you are trying to do.
65//!
66//! ## Getting Help
67//!
68//! * [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
69//! * [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) - For bug reports & feature requests
70//! * [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
71//! * [Usage examples](https://github.com/awslabs/aws-sdk-rust/tree/main/examples)
72//!
73//!
74//! # Crate Organization
75//!
76//! The entry point for most customers will be [`Client`], which exposes one method for each API
77//! offered by AWS Single Sign-On. The return value of each of these methods is a "fluent builder",
78//! where the different inputs for that API are added by builder-style function call chaining,
79//! followed by calling `send()` to get a [`Future`](std::future::Future) that will result in
80//! either a successful output or a [`SdkError`](crate::error::SdkError).
81//!
82//! Some of these API inputs may be structs or enums to provide more complex structured information.
83//! These structs and enums live in [`types`](crate::types). There are some simpler types for
84//! representing data such as date times or binary blobs that live in [`primitives`](crate::primitives).
85//!
86//! All types required to configure a client via the [`Config`](crate::Config) struct live
87//! in [`config`](crate::config).
88//!
89//! The [`operation`](crate::operation) module has a submodule for every API, and in each submodule
90//! is the input, output, and error type for that API, as well as builders to construct each of those.
91//!
92//! There is a top-level [`Error`](crate::Error) type that encompasses all the errors that the
93//! client can return. Any other error type can be converted to this `Error` type via the
94//! [`From`](std::convert::From) trait.
95//!
96//! The other modules within this crate are not required for normal usage.
97
98// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
99pub use error_meta::Error;
100
101#[doc(inline)]
102pub use config::Config;
103
104/// Client for calling AWS Single Sign-On.
105/// # Using the `Client`
106///
107/// A client has a function for every operation that can be performed by the service.
108/// For example, the [`GetRoleCredentials`](crate::operation::get_role_credentials) operation has
109/// a [`Client::get_role_credentials`], function which returns a builder for that operation.
110/// The fluent builder ultimately has a `send()` function that returns an async future that
111/// returns a result, as illustrated below:
112///
113/// ```rust,ignore
114/// let result = client.get_role_credentials()
115/// .role_name("example")
116/// .send()
117/// .await;
118/// ```
119///
120/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
121/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
122/// information.
123pub mod client;
124
125/// Configuration for AWS Single Sign-On.
126pub mod config;
127
128/// Common errors and error handling utilities.
129pub mod error;
130
131mod error_meta;
132
133/// Information about this crate.
134pub mod meta;
135
136/// All operations that this crate can perform.
137pub mod operation;
138
139/// Primitives such as `Blob` or `DateTime` used by other types.
140pub mod primitives;
141
142/// Data structures used by operation inputs/outputs.
143pub mod types;
144
145mod auth_plugin;
146
147pub(crate) mod protocol_serde;
148
149mod sdk_feature_tracker;
150
151mod serialization_settings;
152
153mod endpoint_lib;
154
155mod lens;
156
157mod json_errors;
158
159#[doc(inline)]
160pub use client::Client;