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