async_openai/
project_certificates.rs1use serde::Serialize;
2
3use crate::{
4 config::Config,
5 error::OpenAIError,
6 types::admin::certificates::{ListCertificatesResponse, ToggleCertificatesRequest},
7 Client,
8};
9
10pub struct ProjectCertificates<'c, C: Config> {
12 client: &'c Client<C>,
13 pub project_id: String,
14}
15
16impl<'c, C: Config> ProjectCertificates<'c, C> {
17 pub fn new(client: &'c Client<C>, project_id: &str) -> Self {
18 Self {
19 client,
20 project_id: project_id.into(),
21 }
22 }
23
24 pub async fn list<Q>(&self, query: &Q) -> Result<ListCertificatesResponse, OpenAIError>
26 where
27 Q: Serialize + ?Sized,
28 {
29 self.client
30 .get_with_query(
31 format!("/organization/projects/{}/certificates", self.project_id).as_str(),
32 query,
33 )
34 .await
35 }
36
37 pub async fn activate(
40 &self,
41 request: ToggleCertificatesRequest,
42 ) -> Result<ListCertificatesResponse, OpenAIError> {
43 self.client
44 .post(
45 format!(
46 "/organization/projects/{}/certificates/activate",
47 self.project_id
48 )
49 .as_str(),
50 request,
51 )
52 .await
53 }
54
55 pub async fn deactivate(
58 &self,
59 request: ToggleCertificatesRequest,
60 ) -> Result<ListCertificatesResponse, OpenAIError> {
61 self.client
62 .post(
63 format!(
64 "/organization/projects/{}/certificates/deactivate",
65 self.project_id
66 )
67 .as_str(),
68 request,
69 )
70 .await
71 }
72}