#[non_exhaustive]
#[derive(::std::fmt::Debug)]
pub enum Error {
    ClusterAlreadyExistsFault(crate::types::error::ClusterAlreadyExistsFault),
    ClusterNotFoundFault(crate::types::error::ClusterNotFoundFault),
    ClusterQuotaForCustomerExceededFault(crate::types::error::ClusterQuotaForCustomerExceededFault),
    InsufficientClusterCapacityFault(crate::types::error::InsufficientClusterCapacityFault),
    InvalidArnFault(crate::types::error::InvalidArnFault),
    InvalidClusterStateFault(crate::types::error::InvalidClusterStateFault),
    InvalidParameterCombinationException(crate::types::error::InvalidParameterCombinationException),
    InvalidParameterGroupStateFault(crate::types::error::InvalidParameterGroupStateFault),
    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
    InvalidSubnet(crate::types::error::InvalidSubnet),
    InvalidVpcNetworkStateFault(crate::types::error::InvalidVpcNetworkStateFault),
    NodeNotFoundFault(crate::types::error::NodeNotFoundFault),
    NodeQuotaForClusterExceededFault(crate::types::error::NodeQuotaForClusterExceededFault),
    NodeQuotaForCustomerExceededFault(crate::types::error::NodeQuotaForCustomerExceededFault),
    ParameterGroupAlreadyExistsFault(crate::types::error::ParameterGroupAlreadyExistsFault),
    ParameterGroupNotFoundFault(crate::types::error::ParameterGroupNotFoundFault),
    ParameterGroupQuotaExceededFault(crate::types::error::ParameterGroupQuotaExceededFault),
    ServiceLinkedRoleNotFoundFault(crate::types::error::ServiceLinkedRoleNotFoundFault),
    ServiceQuotaExceededException(crate::types::error::ServiceQuotaExceededException),
    SubnetGroupAlreadyExistsFault(crate::types::error::SubnetGroupAlreadyExistsFault),
    SubnetGroupInUseFault(crate::types::error::SubnetGroupInUseFault),
    SubnetGroupNotFoundFault(crate::types::error::SubnetGroupNotFoundFault),
    SubnetGroupQuotaExceededFault(crate::types::error::SubnetGroupQuotaExceededFault),
    SubnetInUse(crate::types::error::SubnetInUse),
    SubnetQuotaExceededFault(crate::types::error::SubnetQuotaExceededFault),
    TagNotFoundFault(crate::types::error::TagNotFoundFault),
    TagQuotaPerResourceExceeded(crate::types::error::TagQuotaPerResourceExceeded),
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
    variable wildcard pattern and check `.code()`:
     \
       `err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
     \
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-Error) for what information is available for the error.")]
    Unhandled(crate::error::sealed_unhandled::Unhandled),
}
impl ::std::fmt::Display for Error {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Error::ClusterAlreadyExistsFault(inner) => inner.fmt(f),
            Error::ClusterNotFoundFault(inner) => inner.fmt(f),
            Error::ClusterQuotaForCustomerExceededFault(inner) => inner.fmt(f),
            Error::InsufficientClusterCapacityFault(inner) => inner.fmt(f),
            Error::InvalidArnFault(inner) => inner.fmt(f),
            Error::InvalidClusterStateFault(inner) => inner.fmt(f),
            Error::InvalidParameterCombinationException(inner) => inner.fmt(f),
            Error::InvalidParameterGroupStateFault(inner) => inner.fmt(f),
            Error::InvalidParameterValueException(inner) => inner.fmt(f),
            Error::InvalidSubnet(inner) => inner.fmt(f),
            Error::InvalidVpcNetworkStateFault(inner) => inner.fmt(f),
            Error::NodeNotFoundFault(inner) => inner.fmt(f),
            Error::NodeQuotaForClusterExceededFault(inner) => inner.fmt(f),
            Error::NodeQuotaForCustomerExceededFault(inner) => inner.fmt(f),
            Error::ParameterGroupAlreadyExistsFault(inner) => inner.fmt(f),
            Error::ParameterGroupNotFoundFault(inner) => inner.fmt(f),
            Error::ParameterGroupQuotaExceededFault(inner) => inner.fmt(f),
            Error::ServiceLinkedRoleNotFoundFault(inner) => inner.fmt(f),
            Error::ServiceQuotaExceededException(inner) => inner.fmt(f),
            Error::SubnetGroupAlreadyExistsFault(inner) => inner.fmt(f),
            Error::SubnetGroupInUseFault(inner) => inner.fmt(f),
            Error::SubnetGroupNotFoundFault(inner) => inner.fmt(f),
            Error::SubnetGroupQuotaExceededFault(inner) => inner.fmt(f),
            Error::SubnetInUse(inner) => inner.fmt(f),
            Error::SubnetQuotaExceededFault(inner) => inner.fmt(f),
            Error::TagNotFoundFault(inner) => inner.fmt(f),
            Error::TagQuotaPerResourceExceeded(inner) => inner.fmt(f),
            Error::Unhandled(_) => {
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
                    write!(f, "unhandled error ({code})")
                } else {
                    f.write_str("unhandled error")
                }
            }
        }
    }
}
impl From<::aws_smithy_types::error::operation::BuildError> for Error {
    fn from(value: ::aws_smithy_types::error::operation::BuildError) -> Self {
        Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
            source: value.into(),
            meta: ::std::default::Default::default(),
        })
    }
}
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for Error {
    fn meta(&self) -> &::aws_smithy_types::error::metadata::ErrorMetadata {
        match self {
            Self::ClusterAlreadyExistsFault(inner) => inner.meta(),
            Self::ClusterNotFoundFault(inner) => inner.meta(),
            Self::ClusterQuotaForCustomerExceededFault(inner) => inner.meta(),
            Self::InsufficientClusterCapacityFault(inner) => inner.meta(),
            Self::InvalidArnFault(inner) => inner.meta(),
            Self::InvalidClusterStateFault(inner) => inner.meta(),
            Self::InvalidParameterCombinationException(inner) => inner.meta(),
            Self::InvalidParameterGroupStateFault(inner) => inner.meta(),
            Self::InvalidParameterValueException(inner) => inner.meta(),
            Self::InvalidSubnet(inner) => inner.meta(),
            Self::InvalidVpcNetworkStateFault(inner) => inner.meta(),
            Self::NodeNotFoundFault(inner) => inner.meta(),
            Self::NodeQuotaForClusterExceededFault(inner) => inner.meta(),
            Self::NodeQuotaForCustomerExceededFault(inner) => inner.meta(),
            Self::ParameterGroupAlreadyExistsFault(inner) => inner.meta(),
            Self::ParameterGroupNotFoundFault(inner) => inner.meta(),
            Self::ParameterGroupQuotaExceededFault(inner) => inner.meta(),
            Self::ServiceLinkedRoleNotFoundFault(inner) => inner.meta(),
            Self::ServiceQuotaExceededException(inner) => inner.meta(),
            Self::SubnetGroupAlreadyExistsFault(inner) => inner.meta(),
            Self::SubnetGroupInUseFault(inner) => inner.meta(),
            Self::SubnetGroupNotFoundFault(inner) => inner.meta(),
            Self::SubnetGroupQuotaExceededFault(inner) => inner.meta(),
            Self::SubnetInUse(inner) => inner.meta(),
            Self::SubnetQuotaExceededFault(inner) => inner.meta(),
            Self::TagNotFoundFault(inner) => inner.meta(),
            Self::TagQuotaPerResourceExceeded(inner) => inner.meta(),
            Self::Unhandled(inner) => &inner.meta,
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::create_cluster::CreateClusterError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::create_cluster::CreateClusterError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::create_cluster::CreateClusterError> for Error {
    fn from(err: crate::operation::create_cluster::CreateClusterError) -> Self {
        match err {
            crate::operation::create_cluster::CreateClusterError::ClusterAlreadyExistsFault(inner) => Error::ClusterAlreadyExistsFault(inner),
            crate::operation::create_cluster::CreateClusterError::ClusterQuotaForCustomerExceededFault(inner) => {
                Error::ClusterQuotaForCustomerExceededFault(inner)
            }
            crate::operation::create_cluster::CreateClusterError::InsufficientClusterCapacityFault(inner) => {
                Error::InsufficientClusterCapacityFault(inner)
            }
            crate::operation::create_cluster::CreateClusterError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::create_cluster::CreateClusterError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::create_cluster::CreateClusterError::InvalidParameterGroupStateFault(inner) => {
                Error::InvalidParameterGroupStateFault(inner)
            }
            crate::operation::create_cluster::CreateClusterError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::create_cluster::CreateClusterError::InvalidVpcNetworkStateFault(inner) => Error::InvalidVpcNetworkStateFault(inner),
            crate::operation::create_cluster::CreateClusterError::NodeQuotaForClusterExceededFault(inner) => {
                Error::NodeQuotaForClusterExceededFault(inner)
            }
            crate::operation::create_cluster::CreateClusterError::NodeQuotaForCustomerExceededFault(inner) => {
                Error::NodeQuotaForCustomerExceededFault(inner)
            }
            crate::operation::create_cluster::CreateClusterError::ParameterGroupNotFoundFault(inner) => Error::ParameterGroupNotFoundFault(inner),
            crate::operation::create_cluster::CreateClusterError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::create_cluster::CreateClusterError::ServiceQuotaExceededException(inner) => Error::ServiceQuotaExceededException(inner),
            crate::operation::create_cluster::CreateClusterError::SubnetGroupNotFoundFault(inner) => Error::SubnetGroupNotFoundFault(inner),
            crate::operation::create_cluster::CreateClusterError::TagQuotaPerResourceExceeded(inner) => Error::TagQuotaPerResourceExceeded(inner),
            crate::operation::create_cluster::CreateClusterError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::create_parameter_group::CreateParameterGroupError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::create_parameter_group::CreateParameterGroupError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::create_parameter_group::CreateParameterGroupError> for Error {
    fn from(err: crate::operation::create_parameter_group::CreateParameterGroupError) -> Self {
        match err {
            crate::operation::create_parameter_group::CreateParameterGroupError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::create_parameter_group::CreateParameterGroupError::InvalidParameterGroupStateFault(inner) => {
                Error::InvalidParameterGroupStateFault(inner)
            }
            crate::operation::create_parameter_group::CreateParameterGroupError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::create_parameter_group::CreateParameterGroupError::ParameterGroupAlreadyExistsFault(inner) => {
                Error::ParameterGroupAlreadyExistsFault(inner)
            }
            crate::operation::create_parameter_group::CreateParameterGroupError::ParameterGroupQuotaExceededFault(inner) => {
                Error::ParameterGroupQuotaExceededFault(inner)
            }
            crate::operation::create_parameter_group::CreateParameterGroupError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::create_parameter_group::CreateParameterGroupError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::create_subnet_group::CreateSubnetGroupError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::create_subnet_group::CreateSubnetGroupError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::create_subnet_group::CreateSubnetGroupError> for Error {
    fn from(err: crate::operation::create_subnet_group::CreateSubnetGroupError) -> Self {
        match err {
            crate::operation::create_subnet_group::CreateSubnetGroupError::InvalidSubnet(inner) => Error::InvalidSubnet(inner),
            crate::operation::create_subnet_group::CreateSubnetGroupError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::create_subnet_group::CreateSubnetGroupError::SubnetGroupAlreadyExistsFault(inner) => {
                Error::SubnetGroupAlreadyExistsFault(inner)
            }
            crate::operation::create_subnet_group::CreateSubnetGroupError::SubnetGroupQuotaExceededFault(inner) => {
                Error::SubnetGroupQuotaExceededFault(inner)
            }
            crate::operation::create_subnet_group::CreateSubnetGroupError::SubnetQuotaExceededFault(inner) => Error::SubnetQuotaExceededFault(inner),
            crate::operation::create_subnet_group::CreateSubnetGroupError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::decrease_replication_factor::DecreaseReplicationFactorError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::decrease_replication_factor::DecreaseReplicationFactorError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::decrease_replication_factor::DecreaseReplicationFactorError> for Error {
    fn from(err: crate::operation::decrease_replication_factor::DecreaseReplicationFactorError) -> Self {
        match err {
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::ClusterNotFoundFault(inner) => {
                Error::ClusterNotFoundFault(inner)
            }
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::InvalidClusterStateFault(inner) => {
                Error::InvalidClusterStateFault(inner)
            }
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::NodeNotFoundFault(inner) => {
                Error::NodeNotFoundFault(inner)
            }
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::decrease_replication_factor::DecreaseReplicationFactorError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_cluster::DeleteClusterError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_cluster::DeleteClusterError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::delete_cluster::DeleteClusterError> for Error {
    fn from(err: crate::operation::delete_cluster::DeleteClusterError) -> Self {
        match err {
            crate::operation::delete_cluster::DeleteClusterError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::delete_cluster::DeleteClusterError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::delete_cluster::DeleteClusterError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::delete_cluster::DeleteClusterError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::delete_cluster::DeleteClusterError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::delete_cluster::DeleteClusterError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_parameter_group::DeleteParameterGroupError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_parameter_group::DeleteParameterGroupError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::delete_parameter_group::DeleteParameterGroupError> for Error {
    fn from(err: crate::operation::delete_parameter_group::DeleteParameterGroupError) -> Self {
        match err {
            crate::operation::delete_parameter_group::DeleteParameterGroupError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::delete_parameter_group::DeleteParameterGroupError::InvalidParameterGroupStateFault(inner) => {
                Error::InvalidParameterGroupStateFault(inner)
            }
            crate::operation::delete_parameter_group::DeleteParameterGroupError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::delete_parameter_group::DeleteParameterGroupError::ParameterGroupNotFoundFault(inner) => {
                Error::ParameterGroupNotFoundFault(inner)
            }
            crate::operation::delete_parameter_group::DeleteParameterGroupError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::delete_parameter_group::DeleteParameterGroupError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_subnet_group::DeleteSubnetGroupError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_subnet_group::DeleteSubnetGroupError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::delete_subnet_group::DeleteSubnetGroupError> for Error {
    fn from(err: crate::operation::delete_subnet_group::DeleteSubnetGroupError) -> Self {
        match err {
            crate::operation::delete_subnet_group::DeleteSubnetGroupError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::delete_subnet_group::DeleteSubnetGroupError::SubnetGroupInUseFault(inner) => Error::SubnetGroupInUseFault(inner),
            crate::operation::delete_subnet_group::DeleteSubnetGroupError::SubnetGroupNotFoundFault(inner) => Error::SubnetGroupNotFoundFault(inner),
            crate::operation::delete_subnet_group::DeleteSubnetGroupError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_clusters::DescribeClustersError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_clusters::DescribeClustersError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::describe_clusters::DescribeClustersError> for Error {
    fn from(err: crate::operation::describe_clusters::DescribeClustersError) -> Self {
        match err {
            crate::operation::describe_clusters::DescribeClustersError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::describe_clusters::DescribeClustersError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::describe_clusters::DescribeClustersError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::describe_clusters::DescribeClustersError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::describe_clusters::DescribeClustersError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_default_parameters::DescribeDefaultParametersError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_default_parameters::DescribeDefaultParametersError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::describe_default_parameters::DescribeDefaultParametersError> for Error {
    fn from(err: crate::operation::describe_default_parameters::DescribeDefaultParametersError) -> Self {
        match err {
            crate::operation::describe_default_parameters::DescribeDefaultParametersError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::describe_default_parameters::DescribeDefaultParametersError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::describe_default_parameters::DescribeDefaultParametersError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::describe_default_parameters::DescribeDefaultParametersError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_events::DescribeEventsError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_events::DescribeEventsError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::describe_events::DescribeEventsError> for Error {
    fn from(err: crate::operation::describe_events::DescribeEventsError) -> Self {
        match err {
            crate::operation::describe_events::DescribeEventsError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::describe_events::DescribeEventsError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::describe_events::DescribeEventsError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::describe_events::DescribeEventsError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_parameter_groups::DescribeParameterGroupsError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_parameter_groups::DescribeParameterGroupsError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::describe_parameter_groups::DescribeParameterGroupsError> for Error {
    fn from(err: crate::operation::describe_parameter_groups::DescribeParameterGroupsError) -> Self {
        match err {
            crate::operation::describe_parameter_groups::DescribeParameterGroupsError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::describe_parameter_groups::DescribeParameterGroupsError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::describe_parameter_groups::DescribeParameterGroupsError::ParameterGroupNotFoundFault(inner) => {
                Error::ParameterGroupNotFoundFault(inner)
            }
            crate::operation::describe_parameter_groups::DescribeParameterGroupsError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::describe_parameter_groups::DescribeParameterGroupsError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_parameters::DescribeParametersError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_parameters::DescribeParametersError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::describe_parameters::DescribeParametersError> for Error {
    fn from(err: crate::operation::describe_parameters::DescribeParametersError) -> Self {
        match err {
            crate::operation::describe_parameters::DescribeParametersError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::describe_parameters::DescribeParametersError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::describe_parameters::DescribeParametersError::ParameterGroupNotFoundFault(inner) => {
                Error::ParameterGroupNotFoundFault(inner)
            }
            crate::operation::describe_parameters::DescribeParametersError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::describe_parameters::DescribeParametersError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_subnet_groups::DescribeSubnetGroupsError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::describe_subnet_groups::DescribeSubnetGroupsError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::describe_subnet_groups::DescribeSubnetGroupsError> for Error {
    fn from(err: crate::operation::describe_subnet_groups::DescribeSubnetGroupsError) -> Self {
        match err {
            crate::operation::describe_subnet_groups::DescribeSubnetGroupsError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::describe_subnet_groups::DescribeSubnetGroupsError::SubnetGroupNotFoundFault(inner) => {
                Error::SubnetGroupNotFoundFault(inner)
            }
            crate::operation::describe_subnet_groups::DescribeSubnetGroupsError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::increase_replication_factor::IncreaseReplicationFactorError, R>>
    for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(
        err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::increase_replication_factor::IncreaseReplicationFactorError, R>,
    ) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::increase_replication_factor::IncreaseReplicationFactorError> for Error {
    fn from(err: crate::operation::increase_replication_factor::IncreaseReplicationFactorError) -> Self {
        match err {
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::ClusterNotFoundFault(inner) => {
                Error::ClusterNotFoundFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::InsufficientClusterCapacityFault(inner) => {
                Error::InsufficientClusterCapacityFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::InvalidClusterStateFault(inner) => {
                Error::InvalidClusterStateFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::InvalidVpcNetworkStateFault(inner) => {
                Error::InvalidVpcNetworkStateFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::NodeQuotaForClusterExceededFault(inner) => {
                Error::NodeQuotaForClusterExceededFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::NodeQuotaForCustomerExceededFault(inner) => {
                Error::NodeQuotaForCustomerExceededFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::increase_replication_factor::IncreaseReplicationFactorError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::list_tags::ListTagsError, 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::ListTagsError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::list_tags::ListTagsError> for Error {
    fn from(err: crate::operation::list_tags::ListTagsError) -> Self {
        match err {
            crate::operation::list_tags::ListTagsError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::list_tags::ListTagsError::InvalidArnFault(inner) => Error::InvalidArnFault(inner),
            crate::operation::list_tags::ListTagsError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::list_tags::ListTagsError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::list_tags::ListTagsError::InvalidParameterValueException(inner) => Error::InvalidParameterValueException(inner),
            crate::operation::list_tags::ListTagsError::ServiceLinkedRoleNotFoundFault(inner) => Error::ServiceLinkedRoleNotFoundFault(inner),
            crate::operation::list_tags::ListTagsError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::reboot_node::RebootNodeError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::reboot_node::RebootNodeError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::reboot_node::RebootNodeError> for Error {
    fn from(err: crate::operation::reboot_node::RebootNodeError) -> Self {
        match err {
            crate::operation::reboot_node::RebootNodeError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::reboot_node::RebootNodeError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::reboot_node::RebootNodeError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::reboot_node::RebootNodeError::InvalidParameterValueException(inner) => Error::InvalidParameterValueException(inner),
            crate::operation::reboot_node::RebootNodeError::NodeNotFoundFault(inner) => Error::NodeNotFoundFault(inner),
            crate::operation::reboot_node::RebootNodeError::ServiceLinkedRoleNotFoundFault(inner) => Error::ServiceLinkedRoleNotFoundFault(inner),
            crate::operation::reboot_node::RebootNodeError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::tag_resource::TagResourceError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::tag_resource::TagResourceError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::tag_resource::TagResourceError> for Error {
    fn from(err: crate::operation::tag_resource::TagResourceError) -> Self {
        match err {
            crate::operation::tag_resource::TagResourceError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::tag_resource::TagResourceError::InvalidArnFault(inner) => Error::InvalidArnFault(inner),
            crate::operation::tag_resource::TagResourceError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::tag_resource::TagResourceError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::tag_resource::TagResourceError::InvalidParameterValueException(inner) => Error::InvalidParameterValueException(inner),
            crate::operation::tag_resource::TagResourceError::ServiceLinkedRoleNotFoundFault(inner) => Error::ServiceLinkedRoleNotFoundFault(inner),
            crate::operation::tag_resource::TagResourceError::TagQuotaPerResourceExceeded(inner) => Error::TagQuotaPerResourceExceeded(inner),
            crate::operation::tag_resource::TagResourceError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::untag_resource::UntagResourceError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::untag_resource::UntagResourceError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::untag_resource::UntagResourceError> for Error {
    fn from(err: crate::operation::untag_resource::UntagResourceError) -> Self {
        match err {
            crate::operation::untag_resource::UntagResourceError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::untag_resource::UntagResourceError::InvalidArnFault(inner) => Error::InvalidArnFault(inner),
            crate::operation::untag_resource::UntagResourceError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::untag_resource::UntagResourceError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::untag_resource::UntagResourceError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::untag_resource::UntagResourceError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::untag_resource::UntagResourceError::TagNotFoundFault(inner) => Error::TagNotFoundFault(inner),
            crate::operation::untag_resource::UntagResourceError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_cluster::UpdateClusterError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_cluster::UpdateClusterError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::update_cluster::UpdateClusterError> for Error {
    fn from(err: crate::operation::update_cluster::UpdateClusterError) -> Self {
        match err {
            crate::operation::update_cluster::UpdateClusterError::ClusterNotFoundFault(inner) => Error::ClusterNotFoundFault(inner),
            crate::operation::update_cluster::UpdateClusterError::InvalidClusterStateFault(inner) => Error::InvalidClusterStateFault(inner),
            crate::operation::update_cluster::UpdateClusterError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::update_cluster::UpdateClusterError::InvalidParameterGroupStateFault(inner) => {
                Error::InvalidParameterGroupStateFault(inner)
            }
            crate::operation::update_cluster::UpdateClusterError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::update_cluster::UpdateClusterError::ParameterGroupNotFoundFault(inner) => Error::ParameterGroupNotFoundFault(inner),
            crate::operation::update_cluster::UpdateClusterError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::update_cluster::UpdateClusterError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_parameter_group::UpdateParameterGroupError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_parameter_group::UpdateParameterGroupError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::update_parameter_group::UpdateParameterGroupError> for Error {
    fn from(err: crate::operation::update_parameter_group::UpdateParameterGroupError) -> Self {
        match err {
            crate::operation::update_parameter_group::UpdateParameterGroupError::InvalidParameterCombinationException(inner) => {
                Error::InvalidParameterCombinationException(inner)
            }
            crate::operation::update_parameter_group::UpdateParameterGroupError::InvalidParameterGroupStateFault(inner) => {
                Error::InvalidParameterGroupStateFault(inner)
            }
            crate::operation::update_parameter_group::UpdateParameterGroupError::InvalidParameterValueException(inner) => {
                Error::InvalidParameterValueException(inner)
            }
            crate::operation::update_parameter_group::UpdateParameterGroupError::ParameterGroupNotFoundFault(inner) => {
                Error::ParameterGroupNotFoundFault(inner)
            }
            crate::operation::update_parameter_group::UpdateParameterGroupError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::update_parameter_group::UpdateParameterGroupError::Unhandled(inner) => Error::Unhandled(inner),
        }
    }
}
impl<R> From<::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_subnet_group::UpdateSubnetGroupError, R>> for Error
where
    R: Send + Sync + std::fmt::Debug + 'static,
{
    fn from(err: ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::update_subnet_group::UpdateSubnetGroupError, R>) -> Self {
        match err {
            ::aws_smithy_runtime_api::client::result::SdkError::ServiceError(context) => Self::from(context.into_err()),
            _ => Error::Unhandled(crate::error::sealed_unhandled::Unhandled {
                meta: ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(&err).clone(),
                source: err.into(),
            }),
        }
    }
}
impl From<crate::operation::update_subnet_group::UpdateSubnetGroupError> for Error {
    fn from(err: crate::operation::update_subnet_group::UpdateSubnetGroupError) -> Self {
        match err {
            crate::operation::update_subnet_group::UpdateSubnetGroupError::InvalidSubnet(inner) => Error::InvalidSubnet(inner),
            crate::operation::update_subnet_group::UpdateSubnetGroupError::ServiceLinkedRoleNotFoundFault(inner) => {
                Error::ServiceLinkedRoleNotFoundFault(inner)
            }
            crate::operation::update_subnet_group::UpdateSubnetGroupError::SubnetGroupNotFoundFault(inner) => Error::SubnetGroupNotFoundFault(inner),
            crate::operation::update_subnet_group::UpdateSubnetGroupError::SubnetInUse(inner) => Error::SubnetInUse(inner),
            crate::operation::update_subnet_group::UpdateSubnetGroupError::SubnetQuotaExceededFault(inner) => Error::SubnetQuotaExceededFault(inner),
            crate::operation::update_subnet_group::UpdateSubnetGroupError::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::ClusterAlreadyExistsFault(inner) => inner.source(),
            Error::ClusterNotFoundFault(inner) => inner.source(),
            Error::ClusterQuotaForCustomerExceededFault(inner) => inner.source(),
            Error::InsufficientClusterCapacityFault(inner) => inner.source(),
            Error::InvalidArnFault(inner) => inner.source(),
            Error::InvalidClusterStateFault(inner) => inner.source(),
            Error::InvalidParameterCombinationException(inner) => inner.source(),
            Error::InvalidParameterGroupStateFault(inner) => inner.source(),
            Error::InvalidParameterValueException(inner) => inner.source(),
            Error::InvalidSubnet(inner) => inner.source(),
            Error::InvalidVpcNetworkStateFault(inner) => inner.source(),
            Error::NodeNotFoundFault(inner) => inner.source(),
            Error::NodeQuotaForClusterExceededFault(inner) => inner.source(),
            Error::NodeQuotaForCustomerExceededFault(inner) => inner.source(),
            Error::ParameterGroupAlreadyExistsFault(inner) => inner.source(),
            Error::ParameterGroupNotFoundFault(inner) => inner.source(),
            Error::ParameterGroupQuotaExceededFault(inner) => inner.source(),
            Error::ServiceLinkedRoleNotFoundFault(inner) => inner.source(),
            Error::ServiceQuotaExceededException(inner) => inner.source(),
            Error::SubnetGroupAlreadyExistsFault(inner) => inner.source(),
            Error::SubnetGroupInUseFault(inner) => inner.source(),
            Error::SubnetGroupNotFoundFault(inner) => inner.source(),
            Error::SubnetGroupQuotaExceededFault(inner) => inner.source(),
            Error::SubnetInUse(inner) => inner.source(),
            Error::SubnetQuotaExceededFault(inner) => inner.source(),
            Error::TagNotFoundFault(inner) => inner.source(),
            Error::TagQuotaPerResourceExceeded(inner) => inner.source(),
            Error::Unhandled(inner) => ::std::option::Option::Some(&*inner.source),
        }
    }
}
impl ::aws_types::request_id::RequestId for Error {
    fn request_id(&self) -> Option<&str> {
        match self {
            Self::ClusterAlreadyExistsFault(e) => e.request_id(),
            Self::ClusterNotFoundFault(e) => e.request_id(),
            Self::ClusterQuotaForCustomerExceededFault(e) => e.request_id(),
            Self::InsufficientClusterCapacityFault(e) => e.request_id(),
            Self::InvalidArnFault(e) => e.request_id(),
            Self::InvalidClusterStateFault(e) => e.request_id(),
            Self::InvalidParameterCombinationException(e) => e.request_id(),
            Self::InvalidParameterGroupStateFault(e) => e.request_id(),
            Self::InvalidParameterValueException(e) => e.request_id(),
            Self::InvalidSubnet(e) => e.request_id(),
            Self::InvalidVpcNetworkStateFault(e) => e.request_id(),
            Self::NodeNotFoundFault(e) => e.request_id(),
            Self::NodeQuotaForClusterExceededFault(e) => e.request_id(),
            Self::NodeQuotaForCustomerExceededFault(e) => e.request_id(),
            Self::ParameterGroupAlreadyExistsFault(e) => e.request_id(),
            Self::ParameterGroupNotFoundFault(e) => e.request_id(),
            Self::ParameterGroupQuotaExceededFault(e) => e.request_id(),
            Self::ServiceLinkedRoleNotFoundFault(e) => e.request_id(),
            Self::ServiceQuotaExceededException(e) => e.request_id(),
            Self::SubnetGroupAlreadyExistsFault(e) => e.request_id(),
            Self::SubnetGroupInUseFault(e) => e.request_id(),
            Self::SubnetGroupNotFoundFault(e) => e.request_id(),
            Self::SubnetGroupQuotaExceededFault(e) => e.request_id(),
            Self::SubnetInUse(e) => e.request_id(),
            Self::SubnetQuotaExceededFault(e) => e.request_id(),
            Self::TagNotFoundFault(e) => e.request_id(),
            Self::TagQuotaPerResourceExceeded(e) => e.request_id(),
            Self::Unhandled(e) => e.meta.request_id(),
        }
    }
}