bitwarden_api_api/apis/
organization_integration_api.rs1use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21 apis::{AuthRequired, ContentType, ResponseContent},
22 models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait OrganizationIntegrationApi: Send + Sync {
29 async fn create<'a>(
31 &self,
32 organization_id: uuid::Uuid,
33 organization_integration_request_model: Option<models::OrganizationIntegrationRequestModel>,
34 ) -> Result<models::OrganizationIntegrationResponseModel, Error<CreateError>>;
35
36 async fn delete<'a>(
38 &self,
39 organization_id: uuid::Uuid,
40 integration_id: uuid::Uuid,
41 ) -> Result<(), Error<DeleteError>>;
42
43 async fn get<'a>(
45 &self,
46 organization_id: uuid::Uuid,
47 ) -> Result<Vec<models::OrganizationIntegrationResponseModel>, Error<GetError>>;
48
49 async fn update<'a>(
51 &self,
52 organization_id: uuid::Uuid,
53 integration_id: uuid::Uuid,
54 organization_integration_request_model: Option<models::OrganizationIntegrationRequestModel>,
55 ) -> Result<models::OrganizationIntegrationResponseModel, Error<UpdateError>>;
56}
57
58pub struct OrganizationIntegrationApiClient {
59 configuration: Arc<configuration::Configuration>,
60}
61
62impl OrganizationIntegrationApiClient {
63 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
64 Self { configuration }
65 }
66}
67
68#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
69#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
70impl OrganizationIntegrationApi for OrganizationIntegrationApiClient {
71 async fn create<'a>(
72 &self,
73 organization_id: uuid::Uuid,
74 organization_integration_request_model: Option<models::OrganizationIntegrationRequestModel>,
75 ) -> Result<models::OrganizationIntegrationResponseModel, Error<CreateError>> {
76 let local_var_configuration = &self.configuration;
77
78 let local_var_client = &local_var_configuration.client;
79
80 let local_var_uri_str = format!(
81 "{}/organizations/{organizationId}/integrations",
82 local_var_configuration.base_path,
83 organizationId = organization_id
84 );
85 let mut local_var_req_builder =
86 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
87
88 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
89 local_var_req_builder = local_var_req_builder.json(&organization_integration_request_model);
90
91 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
92 }
93
94 async fn delete<'a>(
95 &self,
96 organization_id: uuid::Uuid,
97 integration_id: uuid::Uuid,
98 ) -> Result<(), Error<DeleteError>> {
99 let local_var_configuration = &self.configuration;
100
101 let local_var_client = &local_var_configuration.client;
102
103 let local_var_uri_str = format!(
104 "{}/organizations/{organizationId}/integrations/{integrationId}",
105 local_var_configuration.base_path,
106 organizationId = organization_id,
107 integrationId = integration_id
108 );
109 let mut local_var_req_builder =
110 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
111
112 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
113
114 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
115 }
116
117 async fn get<'a>(
118 &self,
119 organization_id: uuid::Uuid,
120 ) -> Result<Vec<models::OrganizationIntegrationResponseModel>, Error<GetError>> {
121 let local_var_configuration = &self.configuration;
122
123 let local_var_client = &local_var_configuration.client;
124
125 let local_var_uri_str = format!(
126 "{}/organizations/{organizationId}/integrations",
127 local_var_configuration.base_path,
128 organizationId = organization_id
129 );
130 let mut local_var_req_builder =
131 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
132
133 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
134
135 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
136 }
137
138 async fn update<'a>(
139 &self,
140 organization_id: uuid::Uuid,
141 integration_id: uuid::Uuid,
142 organization_integration_request_model: Option<models::OrganizationIntegrationRequestModel>,
143 ) -> Result<models::OrganizationIntegrationResponseModel, Error<UpdateError>> {
144 let local_var_configuration = &self.configuration;
145
146 let local_var_client = &local_var_configuration.client;
147
148 let local_var_uri_str = format!(
149 "{}/organizations/{organizationId}/integrations/{integrationId}",
150 local_var_configuration.base_path,
151 organizationId = organization_id,
152 integrationId = integration_id
153 );
154 let mut local_var_req_builder =
155 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
156
157 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
158 local_var_req_builder = local_var_req_builder.json(&organization_integration_request_model);
159
160 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
161 }
162}
163
164#[derive(Debug, Clone, Serialize, Deserialize)]
166#[serde(untagged)]
167pub enum CreateError {
168 UnknownValue(serde_json::Value),
169}
170#[derive(Debug, Clone, Serialize, Deserialize)]
172#[serde(untagged)]
173pub enum DeleteError {
174 UnknownValue(serde_json::Value),
175}
176#[derive(Debug, Clone, Serialize, Deserialize)]
178#[serde(untagged)]
179pub enum GetError {
180 UnknownValue(serde_json::Value),
181}
182#[derive(Debug, Clone, Serialize, Deserialize)]
184#[serde(untagged)]
185pub enum UpdateError {
186 UnknownValue(serde_json::Value),
187}