#![allow(deprecated)]
use serde_json::{Value, json};
use super::VtaClient;
use crate::error::VtaError;
use crate::trust_tasks;
const VAULT_TT_TIMEOUT: u64 = 30;
impl VtaClient {
pub async fn vault_list(&self, filters: Value) -> Result<Value, VtaError> {
self.dispatch_trust_task(trust_tasks::TASK_VAULT_LIST_0_1, filters, VAULT_TT_TIMEOUT)
.await
}
pub async fn vault_get(&self, id: &str) -> Result<Value, VtaError> {
self.dispatch_trust_task(
trust_tasks::TASK_VAULT_GET_0_1,
json!({ "id": id }),
VAULT_TT_TIMEOUT,
)
.await
}
pub async fn vault_upsert(
&self,
mut payload: Value,
sealed_secret: Option<Value>,
) -> Result<Value, VtaError> {
if let Some(env) = sealed_secret
&& let Some(obj) = payload.as_object_mut()
{
obj.insert("sealedSecret".to_string(), env);
}
self.dispatch_trust_task(
trust_tasks::TASK_VAULT_UPSERT_0_1,
payload,
VAULT_TT_TIMEOUT,
)
.await
}
pub async fn vault_delete(
&self,
id: &str,
expected_version: Option<u32>,
) -> Result<Value, VtaError> {
let mut payload = json!({ "id": id });
if let Some(v) = expected_version {
payload["expectedVersion"] = json!(v);
}
self.dispatch_trust_task(
trust_tasks::TASK_VAULT_DELETE_0_1,
payload,
VAULT_TT_TIMEOUT,
)
.await
}
pub async fn vault_release(&self, payload: Value) -> Result<Value, VtaError> {
self.dispatch_trust_task(
trust_tasks::TASK_VAULT_RELEASE_0_1,
payload,
VAULT_TT_TIMEOUT,
)
.await
}
pub async fn vault_proxy_login(&self, payload: Value) -> Result<Value, VtaError> {
self.dispatch_trust_task(
trust_tasks::TASK_VAULT_PROXY_LOGIN_0_1,
payload,
VAULT_TT_TIMEOUT,
)
.await
}
pub async fn vault_sign_trust_task(&self, payload: Value) -> Result<Value, VtaError> {
self.dispatch_trust_task(
trust_tasks::TASK_VAULT_SIGN_TRUST_TASK_0_1,
payload,
VAULT_TT_TIMEOUT,
)
.await
}
}