pub mod error;
pub mod models;
use crate::{
client::{Client, Traced},
error::SdkError,
};
use models::*;
use reqwest::Method;
#[derive(Clone)]
pub struct SecretsClient {
client: Client,
}
impl SecretsClient {
pub fn new(client: Client) -> Self {
Self { client }
}
pub async fn upsert(
&self,
request: UpsertSecretRequest,
) -> Result<Traced<UpsertSecretResponse>, SdkError> {
let uri_str = format!(
"/platform/v1/organizations/{}/projects/{}/secrets",
request.organization_id, request.project_id
);
let req = self
.client
.build_post_json_request(Method::PUT, &uri_str, &request.secrets)?;
self.client.execute_json(req).await
}
pub async fn list(
&self,
request: &models::ListSecretsRequest,
) -> Result<Traced<SecretsList>, SdkError> {
let uri_str = format!(
"/platform/v1/organizations/{}/projects/{}/secrets",
request.organization_id, request.project_id
);
let mut req_builder = self.client.request(Method::GET, &uri_str);
if let Some(param_value) = &request.next {
req_builder = req_builder.query(&[("next", param_value)]);
}
if let Some(param_value) = &request.prev {
req_builder = req_builder.query(&[("prev", param_value)]);
}
if let Some(param_value) = request.page_size {
req_builder = req_builder.query(&[("pageSize", param_value)]);
}
let req = req_builder.build()?;
self.client.execute_json(req).await
}
pub async fn get(
&self,
request: &models::GetSecretRequest,
) -> Result<Traced<Secret>, SdkError> {
let uri_str = format!(
"/platform/v1/organizations/{}/projects/{}/secrets/{}",
request.organization_id, request.project_id, request.secret_id
);
let req = self.client.request(Method::GET, &uri_str).build()?;
self.client.execute_json(req).await
}
pub async fn delete(
&self,
request: &models::DeleteSecretRequest,
) -> Result<Traced<()>, SdkError> {
let uri_str = format!(
"/platform/v1/organizations/{}/projects/{}/secrets/{}",
request.organization_id, request.project_id, request.secret_id
);
let req = self
.client
.request(reqwest::Method::DELETE, &uri_str)
.build()?;
Ok(self.client.execute_traced(req).await?.map(|_| ()))
}
}