ossify/ops/service/resource_pool/
delete_resource_pool_requester_qos_info.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 DeleteResourcePoolRequesterQoSInfoParams {
18 #[serde(rename = "requesterQosInfo")]
19 pub(crate) requester_qos_info: OnlyKeyField,
20 #[serde(rename = "resourcePool")]
21 pub resource_pool: String,
22 #[serde(rename = "qosRequester")]
23 pub qos_requester: String,
24}
25
26impl DeleteResourcePoolRequesterQoSInfoParams {
27 pub fn new(resource_pool: impl Into<String>, qos_requester: impl Into<String>) -> Self {
28 Self {
29 requester_qos_info: OnlyKeyField,
30 resource_pool: resource_pool.into(),
31 qos_requester: qos_requester.into(),
32 }
33 }
34}
35
36pub struct DeleteResourcePoolRequesterQoSInfo {
37 pub resource_pool: String,
38 pub qos_requester: String,
39}
40
41impl Ops for DeleteResourcePoolRequesterQoSInfo {
42 type Response = EmptyResponseProcessor;
43 type Body = NoneBody;
44 type Query = DeleteResourcePoolRequesterQoSInfoParams;
45
46 const USE_BUCKET: bool = false;
47
48 fn prepare(self) -> Result<Prepared<DeleteResourcePoolRequesterQoSInfoParams>> {
49 Ok(Prepared {
50 method: Method::DELETE,
51 query: Some(DeleteResourcePoolRequesterQoSInfoParams::new(
52 self.resource_pool,
53 self.qos_requester,
54 )),
55 ..Default::default()
56 })
57 }
58}
59
60pub trait DeleteResourcePoolRequesterQoSInfoOps {
61 fn delete_resource_pool_requester_qos_info(
65 &self,
66 resource_pool: impl Into<String>,
67 qos_requester: impl Into<String>,
68 ) -> impl Future<Output = Result<()>>;
69}
70
71impl DeleteResourcePoolRequesterQoSInfoOps for Client {
72 async fn delete_resource_pool_requester_qos_info(
73 &self,
74 resource_pool: impl Into<String>,
75 qos_requester: impl Into<String>,
76 ) -> Result<()> {
77 self.request(DeleteResourcePoolRequesterQoSInfo {
78 resource_pool: resource_pool.into(),
79 qos_requester: qos_requester.into(),
80 })
81 .await
82 }
83}
84
85#[cfg(test)]
86mod tests {
87 use super::*;
88
89 #[test]
90 fn params_serialize() {
91 let q = crate::ser::to_string(&DeleteResourcePoolRequesterQoSInfoParams::new("rp-for-ai", "300123"))
92 .unwrap();
93 assert_eq!(q, "qosRequester=300123&requesterQosInfo&resourcePool=rp-for-ai");
94 }
95
96 #[test]
97 fn prepare_method() {
98 let prepared = DeleteResourcePoolRequesterQoSInfo {
99 resource_pool: "rp-for-ai".into(),
100 qos_requester: "300123".into(),
101 }
102 .prepare()
103 .unwrap();
104 assert_eq!(prepared.method, Method::DELETE);
105 }
106}