#[non_exhaustive]
#[derive(std::fmt::Debug)]
pub enum Error {
InternalDependencyException(crate::types::error::InternalDependencyException),
InternalFailure(crate::types::error::InternalFailure),
ModelError(crate::types::error::ModelError),
ModelNotReadyException(crate::types::error::ModelNotReadyException),
ServiceUnavailable(crate::types::error::ServiceUnavailable),
ValidationError(crate::types::error::ValidationError),
Unhandled(aws_smithy_types::error::Unhandled),
}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Error::InternalDependencyException(inner) => inner.fmt(f),
Error::InternalFailure(inner) => inner.fmt(f),
Error::ModelError(inner) => inner.fmt(f),
Error::ModelNotReadyException(inner) => inner.fmt(f),
Error::ServiceUnavailable(inner) => inner.fmt(f),
Error::ValidationError(inner) => inner.fmt(f),
Error::Unhandled(inner) => inner.fmt(f),
}
}
}
impl<R>
From<
aws_smithy_http::result::SdkError<
crate::operation::invoke_endpoint::InvokeEndpointError,
R,
>,
> for Error
where
R: Send + Sync + std::fmt::Debug + 'static,
{
fn from(
err: aws_smithy_http::result::SdkError<
crate::operation::invoke_endpoint::InvokeEndpointError,
R,
>,
) -> Self {
match err {
aws_smithy_http::result::SdkError::ServiceError(context) => {
Self::from(context.into_err())
}
_ => Error::Unhandled(
aws_smithy_types::error::Unhandled::builder()
.meta(
aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
)
.source(err)
.build(),
),
}
}
}
impl From<crate::operation::invoke_endpoint::InvokeEndpointError> for Error {
fn from(err: crate::operation::invoke_endpoint::InvokeEndpointError) -> Self {
match err {
crate::operation::invoke_endpoint::InvokeEndpointError::InternalDependencyException(
inner,
) => Error::InternalDependencyException(inner),
crate::operation::invoke_endpoint::InvokeEndpointError::InternalFailure(inner) => {
Error::InternalFailure(inner)
}
crate::operation::invoke_endpoint::InvokeEndpointError::ModelError(inner) => {
Error::ModelError(inner)
}
crate::operation::invoke_endpoint::InvokeEndpointError::ModelNotReadyException(
inner,
) => Error::ModelNotReadyException(inner),
crate::operation::invoke_endpoint::InvokeEndpointError::ServiceUnavailable(inner) => {
Error::ServiceUnavailable(inner)
}
crate::operation::invoke_endpoint::InvokeEndpointError::ValidationError(inner) => {
Error::ValidationError(inner)
}
crate::operation::invoke_endpoint::InvokeEndpointError::Unhandled(inner) => {
Error::Unhandled(inner)
}
}
}
}
impl<R>
From<
aws_smithy_http::result::SdkError<
crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError,
R,
>,
> for Error
where
R: Send + Sync + std::fmt::Debug + 'static,
{
fn from(
err: aws_smithy_http::result::SdkError<
crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError,
R,
>,
) -> Self {
match err {
aws_smithy_http::result::SdkError::ServiceError(context) => {
Self::from(context.into_err())
}
_ => Error::Unhandled(
aws_smithy_types::error::Unhandled::builder()
.meta(
aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
)
.source(err)
.build(),
),
}
}
}
impl From<crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError> for Error {
fn from(err: crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError) -> Self {
match err {
crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError::InternalFailure(inner) => Error::InternalFailure(inner),
crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError::ServiceUnavailable(inner) => Error::ServiceUnavailable(inner),
crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError::ValidationError(inner) => Error::ValidationError(inner),
crate::operation::invoke_endpoint_async::InvokeEndpointAsyncError::Unhandled(inner) => Error::Unhandled(inner),
}
}
}
impl std::error::Error for Error {
fn source(&self) -> std::option::Option<&(dyn std::error::Error + 'static)> {
match self {
Error::InternalDependencyException(inner) => inner.source(),
Error::InternalFailure(inner) => inner.source(),
Error::ModelError(inner) => inner.source(),
Error::ModelNotReadyException(inner) => inner.source(),
Error::ServiceUnavailable(inner) => inner.source(),
Error::ValidationError(inner) => inner.source(),
Error::Unhandled(inner) => inner.source(),
}
}
}
impl aws_http::request_id::RequestId for Error {
fn request_id(&self) -> Option<&str> {
match self {
Self::InternalDependencyException(e) => e.request_id(),
Self::InternalFailure(e) => e.request_id(),
Self::ModelError(e) => e.request_id(),
Self::ModelNotReadyException(e) => e.request_id(),
Self::ServiceUnavailable(e) => e.request_id(),
Self::ValidationError(e) => e.request_id(),
Self::Unhandled(e) => e.request_id(),
}
}
}