use crate::{
AwsHttpClient, Result,
ops::redshift::RedshiftOps,
types::redshift::{
DeleteClusterRequest, DeleteClusterResponse, DescribeClustersRequest,
DescribeClustersResponse, PauseClusterRequest, PauseClusterResponse, ResizeClusterRequest,
ResizeClusterResponse, ResumeClusterRequest, ResumeClusterResponse,
},
};
pub struct RedshiftClient<'a> {
ops: RedshiftOps<'a>,
}
impl<'a> RedshiftClient<'a> {
pub(crate) fn new(client: &'a AwsHttpClient) -> Self {
Self {
ops: RedshiftOps::new(client),
}
}
pub async fn describe_clusters(
&self,
body: &DescribeClustersRequest,
) -> Result<DescribeClustersResponse> {
self.ops.describe_clusters(body).await
}
pub async fn pause_cluster(&self, body: &PauseClusterRequest) -> Result<PauseClusterResponse> {
self.ops.pause_cluster(body).await
}
pub async fn resume_cluster(
&self,
body: &ResumeClusterRequest,
) -> Result<ResumeClusterResponse> {
self.ops.resume_cluster(body).await
}
pub async fn resize_cluster(
&self,
body: &ResizeClusterRequest,
) -> Result<ResizeClusterResponse> {
self.ops.resize_cluster(body).await
}
pub async fn delete_cluster(
&self,
body: &DeleteClusterRequest,
) -> Result<DeleteClusterResponse> {
self.ops.delete_cluster(body).await
}
}