ossify/ops/bucket/policy/
delete_bucket_policy.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, Default, Serialize)]
17pub struct DeleteBucketPolicyParams {
18 policy: OnlyKeyField,
19}
20
21pub struct DeleteBucketPolicy;
22
23impl Ops for DeleteBucketPolicy {
24 type Response = EmptyResponseProcessor;
25 type Body = NoneBody;
26 type Query = DeleteBucketPolicyParams;
27
28 fn prepare(self) -> Result<Prepared<DeleteBucketPolicyParams>> {
29 Ok(Prepared {
30 method: Method::DELETE,
31 query: Some(DeleteBucketPolicyParams::default()),
32 ..Default::default()
33 })
34 }
35}
36
37pub trait DeleteBucketPolicyOps {
38 fn delete_bucket_policy(&self) -> impl Future<Output = Result<()>>;
42}
43
44impl DeleteBucketPolicyOps for Client {
45 async fn delete_bucket_policy(&self) -> Result<()> {
46 self.request(DeleteBucketPolicy).await
47 }
48}
49
50#[cfg(test)]
51mod tests {
52 use super::*;
53
54 #[test]
55 fn params_serialize() {
56 assert_eq!(crate::ser::to_string(&DeleteBucketPolicyParams::default()).unwrap(), "policy");
57 }
58
59 #[test]
60 fn prepared_uses_delete() {
61 let prepared = DeleteBucketPolicy.prepare().unwrap();
62 assert_eq!(prepared.method, Method::DELETE);
63 }
64}