redis_enterprise/
jsonschema.rs1use crate::client::RestClient;
9use crate::error::Result;
10use serde_json::Value;
11
12pub struct JsonSchemaHandler {
14 client: RestClient,
15}
16
17impl JsonSchemaHandler {
18 pub fn new(client: RestClient) -> Self {
19 JsonSchemaHandler { client }
20 }
21
22 pub async fn list(&self) -> Result<Vec<String>> {
24 self.client.get("/v1/jsonschema").await
25 }
26
27 pub async fn get(&self, schema_name: &str) -> Result<Value> {
29 self.client
30 .get(&format!("/v1/jsonschema/{}", schema_name))
31 .await
32 }
33
34 pub async fn database_schema(&self) -> Result<Value> {
36 self.client.get("/v1/jsonschema/bdb").await
37 }
38
39 pub async fn cluster_schema(&self) -> Result<Value> {
41 self.client.get("/v1/jsonschema/cluster").await
42 }
43
44 pub async fn node_schema(&self) -> Result<Value> {
46 self.client.get("/v1/jsonschema/node").await
47 }
48
49 pub async fn user_schema(&self) -> Result<Value> {
51 self.client.get("/v1/jsonschema/user").await
52 }
53
54 pub async fn crdb_schema(&self) -> Result<Value> {
56 self.client.get("/v1/jsonschema/crdb").await
57 }
58
59 pub async fn validate(&self, schema_name: &str, object: &Value) -> Result<Value> {
61 self.client
62 .post(&format!("/v1/jsonschema/{}/validate", schema_name), object)
63 .await
64 }
65}