use anyhow::Result;
use tracing::info;
use s3util_rs::config::ClientConfig;
use s3util_rs::config::args::put_bucket_versioning::PutBucketVersioningArgs;
use s3util_rs::storage::s3::api;
pub async fn run_put_bucket_versioning(
args: PutBucketVersioningArgs,
client_config: ClientConfig,
) -> Result<()> {
args.validate_state_flag();
let bucket = args
.bucket_name()
.map_err(|e| anyhow::anyhow!("{}", e.trim_end()))?;
let status = args.versioning_status();
let client = client_config.create_client().await;
api::put_bucket_versioning(&client, &bucket, status.clone()).await?;
info!(bucket = %bucket, status = %status.as_str(), "Bucket versioning set.");
Ok(())
}