1use aws_credential_types::provider::error::CredentialsError;
2use aws_sigv4::http_request::SigningError;
3use aws_sigv4::sign::v4a::signing_params::BuildError;
4use hyper::header::ToStrError;
5use hyper::http;
6use thiserror::Error;
7
8#[derive(Error, Debug)]
9pub enum Error {
10 #[error("failed to provide credentials")]
11 ProvideCredentialsError(#[source] CredentialsError),
12
13 #[error("failed to build signing parameters")]
14 BuildParamsError(#[source] BuildError),
15
16 #[error("failed to sign request")]
17 SignRequestError(#[source] SigningError),
18
19 #[error("failed to convert http header value to string")]
20 ConvertHeaderValueError(#[source] ToStrError),
21
22 #[error("failed to build http request")]
23 BuildRequestError(#[source] http::Error),
24
25 #[error("failed to send http request")]
26 SendRequestError(#[source] hyper_util::client::legacy::Error),
27
28 #[error("failed to read http response")]
29 ReadResponseError(#[source] hyper::Error),
30
31 #[error(transparent)]
32 Other(#[from] anyhow::Error),
33}