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