#[non_exhaustive]
#[derive(::std::fmt::Debug)]
pub enum Error {
    AccessDeniedException(crate::types::error::AccessDeniedException),
    ConflictException(crate::types::error::ConflictException),
    InvalidArgsException(crate::types::error::InvalidArgsException),
    InvalidArnException(crate::types::error::InvalidArnException),
    InvalidDomainValidationOptionsException(crate::types::error::InvalidDomainValidationOptionsException),
    InvalidParameterException(crate::types::error::InvalidParameterException),
    InvalidStateException(crate::types::error::InvalidStateException),
    InvalidTagException(crate::types::error::InvalidTagException),
    LimitExceededException(crate::types::error::LimitExceededException),
    RequestInProgressException(crate::types::error::RequestInProgressException),
    ResourceInUseException(crate::types::error::ResourceInUseException),
    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
    TagPolicyException(crate::types::error::TagPolicyException),
    ThrottlingException(crate::types::error::ThrottlingException),
    TooManyTagsException(crate::types::error::TooManyTagsException),
    ValidationException(crate::types::error::ValidationException),
    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::AccessDeniedException(inner) => inner.fmt(f),
            Error::ConflictException(inner) => inner.fmt(f),
            Error::InvalidArgsException(inner) => inner.fmt(f),
            Error::InvalidArnException(inner) => inner.fmt(f),
            Error::InvalidDomainValidationOptionsException(inner) => inner.fmt(f),
            Error::InvalidParameterException(inner) => inner.fmt(f),
            Error::InvalidStateException(inner) => inner.fmt(f),
            Error::InvalidTagException(inner) => inner.fmt(f),
            Error::LimitExceededException(inner) => inner.fmt(f),
            Error::RequestInProgressException(inner) => inner.fmt(f),
            Error::ResourceInUseException(inner) => inner.fmt(f),
            Error::ResourceNotFoundException(inner) => inner.fmt(f),
            Error::TagPolicyException(inner) => inner.fmt(f),
            Error::ThrottlingException(inner) => inner.fmt(f),
            Error::TooManyTagsException(inner) => inner.fmt(f),
            Error::ValidationException(inner) => inner.fmt(f),
            Error::Unhandled(inner) => inner.fmt(f),
        }
    }
}
impl From<::aws_smithy_types::error::operation::BuildError> for Error {
    fn from(value: ::aws_smithy_types::error::operation::BuildError) -> Self {
        Error::Unhandled(::aws_smithy_types::error::Unhandled::builder().source(value).build())
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::add_tags_to_certificate::AddTagsToCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::add_tags_to_certificate::AddTagsToCertificateError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::add_tags_to_certificate::AddTagsToCertificateError> for Error {
    fn from(err: crate::operation::add_tags_to_certificate::AddTagsToCertificateError) -> Self {
        match err {
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::InvalidParameterException(inner) => {
                Error::InvalidParameterException(inner)
            }
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::InvalidTagException(inner) => Error::InvalidTagException(inner),
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::ResourceNotFoundException(inner) => {
                Error::ResourceNotFoundException(inner)
            }
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::TagPolicyException(inner) => Error::TagPolicyException(inner),
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::ThrottlingException(inner) => Error::ThrottlingException(inner),
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::TooManyTagsException(inner) => Error::TooManyTagsException(inner),
            crate::operation::add_tags_to_certificate::AddTagsToCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_certificate::DeleteCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_certificate::DeleteCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::delete_certificate::DeleteCertificateError> for Error {
    fn from(err: crate::operation::delete_certificate::DeleteCertificateError) -> Self {
        match err {
            crate::operation::delete_certificate::DeleteCertificateError::AccessDeniedException(inner) => Error::AccessDeniedException(inner),
            crate::operation::delete_certificate::DeleteCertificateError::ConflictException(inner) => Error::ConflictException(inner),
            crate::operation::delete_certificate::DeleteCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::delete_certificate::DeleteCertificateError::ResourceInUseException(inner) => Error::ResourceInUseException(inner),
            crate::operation::delete_certificate::DeleteCertificateError::ResourceNotFoundException(inner) => Error::ResourceNotFoundException(inner),
            crate::operation::delete_certificate::DeleteCertificateError::ThrottlingException(inner) => Error::ThrottlingException(inner),
            crate::operation::delete_certificate::DeleteCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_certificate::DescribeCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_certificate::DescribeCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::describe_certificate::DescribeCertificateError> for Error {
    fn from(err: crate::operation::describe_certificate::DescribeCertificateError) -> Self {
        match err {
            crate::operation::describe_certificate::DescribeCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::describe_certificate::DescribeCertificateError::ResourceNotFoundException(inner) => {
                Error::ResourceNotFoundException(inner)
            }
            crate::operation::describe_certificate::DescribeCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::export_certificate::ExportCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::export_certificate::ExportCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::export_certificate::ExportCertificateError> for Error {
    fn from(err: crate::operation::export_certificate::ExportCertificateError) -> Self {
        match err {
            crate::operation::export_certificate::ExportCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::export_certificate::ExportCertificateError::RequestInProgressException(inner) => {
                Error::RequestInProgressException(inner)
            }
            crate::operation::export_certificate::ExportCertificateError::ResourceNotFoundException(inner) => Error::ResourceNotFoundException(inner),
            crate::operation::export_certificate::ExportCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::get_account_configuration::GetAccountConfigurationError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::get_account_configuration::GetAccountConfigurationError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::get_account_configuration::GetAccountConfigurationError> for Error {
    fn from(err: crate::operation::get_account_configuration::GetAccountConfigurationError) -> Self {
        match err {
            crate::operation::get_account_configuration::GetAccountConfigurationError::AccessDeniedException(inner) => {
                Error::AccessDeniedException(inner)
            }
            crate::operation::get_account_configuration::GetAccountConfigurationError::ThrottlingException(inner) => {
                Error::ThrottlingException(inner)
            }
            crate::operation::get_account_configuration::GetAccountConfigurationError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::get_certificate::GetCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::get_certificate::GetCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::get_certificate::GetCertificateError> for Error {
    fn from(err: crate::operation::get_certificate::GetCertificateError) -> Self {
        match err {
            crate::operation::get_certificate::GetCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::get_certificate::GetCertificateError::RequestInProgressException(inner) => Error::RequestInProgressException(inner),
            crate::operation::get_certificate::GetCertificateError::ResourceNotFoundException(inner) => Error::ResourceNotFoundException(inner),
            crate::operation::get_certificate::GetCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::import_certificate::ImportCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::import_certificate::ImportCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::import_certificate::ImportCertificateError> for Error {
    fn from(err: crate::operation::import_certificate::ImportCertificateError) -> Self {
        match err {
            crate::operation::import_certificate::ImportCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::import_certificate::ImportCertificateError::InvalidParameterException(inner) => Error::InvalidParameterException(inner),
            crate::operation::import_certificate::ImportCertificateError::InvalidTagException(inner) => Error::InvalidTagException(inner),
            crate::operation::import_certificate::ImportCertificateError::LimitExceededException(inner) => Error::LimitExceededException(inner),
            crate::operation::import_certificate::ImportCertificateError::ResourceNotFoundException(inner) => Error::ResourceNotFoundException(inner),
            crate::operation::import_certificate::ImportCertificateError::TagPolicyException(inner) => Error::TagPolicyException(inner),
            crate::operation::import_certificate::ImportCertificateError::TooManyTagsException(inner) => Error::TooManyTagsException(inner),
            crate::operation::import_certificate::ImportCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::list_certificates::ListCertificatesError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::list_certificates::ListCertificatesError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::list_certificates::ListCertificatesError> for Error {
    fn from(err: crate::operation::list_certificates::ListCertificatesError) -> Self {
        match err {
            crate::operation::list_certificates::ListCertificatesError::InvalidArgsException(inner) => Error::InvalidArgsException(inner),
            crate::operation::list_certificates::ListCertificatesError::ValidationException(inner) => Error::ValidationException(inner),
            crate::operation::list_certificates::ListCertificatesError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::list_tags_for_certificate::ListTagsForCertificateError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::list_tags_for_certificate::ListTagsForCertificateError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::list_tags_for_certificate::ListTagsForCertificateError> for Error {
    fn from(err: crate::operation::list_tags_for_certificate::ListTagsForCertificateError) -> Self {
        match err {
            crate::operation::list_tags_for_certificate::ListTagsForCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::list_tags_for_certificate::ListTagsForCertificateError::ResourceNotFoundException(inner) => {
                Error::ResourceNotFoundException(inner)
            }
            crate::operation::list_tags_for_certificate::ListTagsForCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::put_account_configuration::PutAccountConfigurationError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::put_account_configuration::PutAccountConfigurationError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::put_account_configuration::PutAccountConfigurationError> for Error {
    fn from(err: crate::operation::put_account_configuration::PutAccountConfigurationError) -> Self {
        match err {
            crate::operation::put_account_configuration::PutAccountConfigurationError::AccessDeniedException(inner) => {
                Error::AccessDeniedException(inner)
            }
            crate::operation::put_account_configuration::PutAccountConfigurationError::ConflictException(inner) => Error::ConflictException(inner),
            crate::operation::put_account_configuration::PutAccountConfigurationError::ThrottlingException(inner) => {
                Error::ThrottlingException(inner)
            }
            crate::operation::put_account_configuration::PutAccountConfigurationError::ValidationException(inner) => {
                Error::ValidationException(inner)
            }
            crate::operation::put_account_configuration::PutAccountConfigurationError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::remove_tags_from_certificate::RemoveTagsFromCertificateError> for Error {
    fn from(err: crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError) -> Self {
        match err {
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::InvalidArnException(inner) => {
                Error::InvalidArnException(inner)
            }
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::InvalidParameterException(inner) => {
                Error::InvalidParameterException(inner)
            }
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::InvalidTagException(inner) => {
                Error::InvalidTagException(inner)
            }
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::ResourceNotFoundException(inner) => {
                Error::ResourceNotFoundException(inner)
            }
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::TagPolicyException(inner) => {
                Error::TagPolicyException(inner)
            }
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::ThrottlingException(inner) => {
                Error::ThrottlingException(inner)
            }
            crate::operation::remove_tags_from_certificate::RemoveTagsFromCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::renew_certificate::RenewCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::renew_certificate::RenewCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::renew_certificate::RenewCertificateError> for Error {
    fn from(err: crate::operation::renew_certificate::RenewCertificateError) -> Self {
        match err {
            crate::operation::renew_certificate::RenewCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::renew_certificate::RenewCertificateError::ResourceNotFoundException(inner) => Error::ResourceNotFoundException(inner),
            crate::operation::renew_certificate::RenewCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::request_certificate::RequestCertificateError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::request_certificate::RequestCertificateError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::request_certificate::RequestCertificateError> for Error {
    fn from(err: crate::operation::request_certificate::RequestCertificateError) -> Self {
        match err {
            crate::operation::request_certificate::RequestCertificateError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::request_certificate::RequestCertificateError::InvalidDomainValidationOptionsException(inner) => {
                Error::InvalidDomainValidationOptionsException(inner)
            }
            crate::operation::request_certificate::RequestCertificateError::InvalidParameterException(inner) => {
                Error::InvalidParameterException(inner)
            }
            crate::operation::request_certificate::RequestCertificateError::InvalidTagException(inner) => Error::InvalidTagException(inner),
            crate::operation::request_certificate::RequestCertificateError::LimitExceededException(inner) => Error::LimitExceededException(inner),
            crate::operation::request_certificate::RequestCertificateError::TagPolicyException(inner) => Error::TagPolicyException(inner),
            crate::operation::request_certificate::RequestCertificateError::TooManyTagsException(inner) => Error::TooManyTagsException(inner),
            crate::operation::request_certificate::RequestCertificateError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::resend_validation_email::ResendValidationEmailError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::resend_validation_email::ResendValidationEmailError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::resend_validation_email::ResendValidationEmailError> for Error {
    fn from(err: crate::operation::resend_validation_email::ResendValidationEmailError) -> Self {
        match err {
            crate::operation::resend_validation_email::ResendValidationEmailError::InvalidArnException(inner) => Error::InvalidArnException(inner),
            crate::operation::resend_validation_email::ResendValidationEmailError::InvalidDomainValidationOptionsException(inner) => {
                Error::InvalidDomainValidationOptionsException(inner)
            }
            crate::operation::resend_validation_email::ResendValidationEmailError::InvalidStateException(inner) => {
                Error::InvalidStateException(inner)
            }
            crate::operation::resend_validation_email::ResendValidationEmailError::ResourceNotFoundException(inner) => {
                Error::ResourceNotFoundException(inner)
            }
            crate::operation::resend_validation_email::ResendValidationEmailError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_certificate_options::UpdateCertificateOptionsError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_certificate_options::UpdateCertificateOptionsError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::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::update_certificate_options::UpdateCertificateOptionsError> for Error {
    fn from(err: crate::operation::update_certificate_options::UpdateCertificateOptionsError) -> Self {
        match err {
            crate::operation::update_certificate_options::UpdateCertificateOptionsError::InvalidArnException(inner) => {
                Error::InvalidArnException(inner)
            }
            crate::operation::update_certificate_options::UpdateCertificateOptionsError::InvalidStateException(inner) => {
                Error::InvalidStateException(inner)
            }
            crate::operation::update_certificate_options::UpdateCertificateOptionsError::LimitExceededException(inner) => {
                Error::LimitExceededException(inner)
            }
            crate::operation::update_certificate_options::UpdateCertificateOptionsError::ResourceNotFoundException(inner) => {
                Error::ResourceNotFoundException(inner)
            }
            crate::operation::update_certificate_options::UpdateCertificateOptionsError::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::AccessDeniedException(inner) => inner.source(),
            Error::ConflictException(inner) => inner.source(),
            Error::InvalidArgsException(inner) => inner.source(),
            Error::InvalidArnException(inner) => inner.source(),
            Error::InvalidDomainValidationOptionsException(inner) => inner.source(),
            Error::InvalidParameterException(inner) => inner.source(),
            Error::InvalidStateException(inner) => inner.source(),
            Error::InvalidTagException(inner) => inner.source(),
            Error::LimitExceededException(inner) => inner.source(),
            Error::RequestInProgressException(inner) => inner.source(),
            Error::ResourceInUseException(inner) => inner.source(),
            Error::ResourceNotFoundException(inner) => inner.source(),
            Error::TagPolicyException(inner) => inner.source(),
            Error::ThrottlingException(inner) => inner.source(),
            Error::TooManyTagsException(inner) => inner.source(),
            Error::ValidationException(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::AccessDeniedException(e) => e.request_id(),
            Self::ConflictException(e) => e.request_id(),
            Self::InvalidArgsException(e) => e.request_id(),
            Self::InvalidArnException(e) => e.request_id(),
            Self::InvalidDomainValidationOptionsException(e) => e.request_id(),
            Self::InvalidParameterException(e) => e.request_id(),
            Self::InvalidStateException(e) => e.request_id(),
            Self::InvalidTagException(e) => e.request_id(),
            Self::LimitExceededException(e) => e.request_id(),
            Self::RequestInProgressException(e) => e.request_id(),
            Self::ResourceInUseException(e) => e.request_id(),
            Self::ResourceNotFoundException(e) => e.request_id(),
            Self::TagPolicyException(e) => e.request_id(),
            Self::ThrottlingException(e) => e.request_id(),
            Self::TooManyTagsException(e) => e.request_id(),
            Self::ValidationException(e) => e.request_id(),
            Self::Unhandled(e) => e.request_id(),
        }
    }
}