redis_enterprise/
bdb_groups.rs1use crate::client::RestClient;
9use crate::error::Result;
10use serde::{Deserialize, Serialize};
11use serde_json::Value;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct BdbGroup {
17 pub uid: u32,
19 pub name: String,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub memory_size: Option<u64>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub members: Option<Vec<String>>,
27 #[serde(flatten)]
28 pub extra: Value,
29}
30
31pub struct BdbGroupsHandler {
33 client: RestClient,
34}
35
36impl BdbGroupsHandler {
37 pub fn new(client: RestClient) -> Self {
38 BdbGroupsHandler { client }
39 }
40
41 pub async fn list(&self) -> Result<Vec<BdbGroup>> {
42 self.client.get("/v1/bdb_groups").await
43 }
44
45 pub async fn get(&self, uid: u32) -> Result<BdbGroup> {
46 self.client.get(&format!("/v1/bdb_groups/{}", uid)).await
47 }
48
49 pub async fn create(&self, body: CreateBdbGroupRequest) -> Result<BdbGroup> {
50 self.client.post("/v1/bdb_groups", &body).await
51 }
52
53 pub async fn update(&self, uid: u32, body: UpdateBdbGroupRequest) -> Result<BdbGroup> {
54 self.client
55 .put(&format!("/v1/bdb_groups/{}", uid), &body)
56 .await
57 }
58
59 pub async fn delete(&self, uid: u32) -> Result<()> {
60 self.client.delete(&format!("/v1/bdb_groups/{}", uid)).await
61 }
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
66pub struct CreateBdbGroupRequest {
67 pub name: String,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
72pub struct UpdateBdbGroupRequest {
73 #[serde(skip_serializing_if = "Option::is_none")]
74 pub name: Option<String>,
75}