ossify/ops/bucket/redundancy_transition/
delete_bucket_data_redundancy_transition.rs1use std::future::Future;
6
7use http::Method;
8use serde::Serialize;
9
10use crate::body::NoneBody;
11use crate::error::Result;
12use crate::response::EmptyResponseProcessor;
13use crate::ser::OnlyKeyField;
14use crate::{Client, Ops, Prepared, Request};
15
16#[derive(Debug, Clone, Serialize)]
17pub struct DeleteBucketDataRedundancyTransitionParams {
18 #[serde(rename = "redundancyTransition")]
19 redundancy_transition: OnlyKeyField,
20 #[serde(rename = "x-oss-redundancy-transition-taskid")]
21 pub task_id: String,
22}
23
24impl DeleteBucketDataRedundancyTransitionParams {
25 pub fn new(task_id: impl Into<String>) -> Self {
26 Self {
27 redundancy_transition: OnlyKeyField,
28 task_id: task_id.into(),
29 }
30 }
31}
32
33pub struct DeleteBucketDataRedundancyTransition {
34 pub task_id: String,
35}
36
37impl Ops for DeleteBucketDataRedundancyTransition {
38 type Response = EmptyResponseProcessor;
39 type Body = NoneBody;
40 type Query = DeleteBucketDataRedundancyTransitionParams;
41
42 fn prepare(self) -> Result<Prepared<DeleteBucketDataRedundancyTransitionParams>> {
43 Ok(Prepared {
44 method: Method::DELETE,
45 query: Some(DeleteBucketDataRedundancyTransitionParams::new(self.task_id)),
46 ..Default::default()
47 })
48 }
49}
50
51pub trait DeleteBucketDataRedundancyTransitionOps {
52 fn delete_bucket_data_redundancy_transition(
57 &self,
58 task_id: impl Into<String>,
59 ) -> impl Future<Output = Result<()>>;
60}
61
62impl DeleteBucketDataRedundancyTransitionOps for Client {
63 async fn delete_bucket_data_redundancy_transition(&self, task_id: impl Into<String>) -> Result<()> {
64 self.request(DeleteBucketDataRedundancyTransition {
65 task_id: task_id.into(),
66 })
67 .await
68 }
69}
70
71#[cfg(test)]
72mod tests {
73 use super::*;
74
75 #[test]
76 fn params_serialize() {
77 let q = crate::ser::to_string(&DeleteBucketDataRedundancyTransitionParams::new("task-1")).unwrap();
78 assert_eq!(q, "redundancyTransition&x-oss-redundancy-transition-taskid=task-1");
79 }
80}