1use std::sync::Arc;
2
3pub use covert_types::methods::system::{
4 CreateNamespaceParams, CreateNamespaceResponse, DeleteNamespaceResponse, ListNamespaceResponse,
5};
6
7use crate::base::BaseClient;
8
9pub struct Client {
10 client: Arc<BaseClient>,
11}
12
13impl Client {
14 pub(crate) fn new(client: Arc<BaseClient>) -> Self {
15 Self { client }
16 }
17
18 pub async fn create(
19 &self,
20 params: &CreateNamespaceParams,
21 ) -> Result<CreateNamespaceResponse, String> {
22 self.client.post("/sys/namespaces".into(), params).await
23 }
24
25 pub async fn delete(&self, name: &str) -> Result<DeleteNamespaceResponse, String> {
26 self.client.delete(format!("/sys/namespaces/{name}")).await
27 }
28
29 pub async fn list(&self) -> Result<ListNamespaceResponse, String> {
30 self.client.get("/sys/namespaces".into()).await
31 }
32}