async_openai/admin/
project_data_retention.rs1use crate::{
2 config::Config,
3 error::OpenAIError,
4 types::admin::projects::{ProjectDataRetention, UpdateProjectDataRetentionBody},
5 Client, RequestOptions,
6};
7
8pub struct ProjectDataRetentions<'c, C: Config> {
9 client: &'c Client<C>,
10 pub(crate) request_options: RequestOptions,
11 pub project_id: String,
12}
13impl<'c, C: Config> ProjectDataRetentions<'c, C> {
14 pub fn new(client: &'c Client<C>, project_id: &str) -> Self {
15 Self {
16 client,
17 request_options: RequestOptions::new(),
18 project_id: project_id.into(),
19 }
20 }
21
22 #[crate::byot(R = serde::de::DeserializeOwned)]
24 pub async fn retrieve(&self) -> Result<ProjectDataRetention, OpenAIError> {
25 self.client
26 .get(
27 &format!(
28 "/organization/projects/{project_id}/data_retention",
29 project_id = self.project_id
30 ),
31 &self.request_options,
32 )
33 .await
34 }
35
36 #[crate::byot(T0 = serde::Serialize, R = serde::de::DeserializeOwned)]
38 pub async fn update(
39 &self,
40 request: UpdateProjectDataRetentionBody,
41 ) -> Result<ProjectDataRetention, OpenAIError> {
42 self.client
43 .post(
44 &format!(
45 "/organization/projects/{project_id}/data_retention",
46 project_id = self.project_id
47 ),
48 request,
49 &self.request_options,
50 )
51 .await
52 }
53}