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