1use 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 OrganizationIntegrationConfigurationApi: Send + Sync {
29 async fn create<'a>(
31 &self,
32 organization_id: uuid::Uuid,
33 integration_id: uuid::Uuid,
34 organization_integration_configuration_request_model: Option<
35 models::OrganizationIntegrationConfigurationRequestModel,
36 >,
37 ) -> Result<models::OrganizationIntegrationConfigurationResponseModel, Error<CreateError>>;
38
39 async fn delete<'a>(
42 &self,
43 organization_id: uuid::Uuid,
44 integration_id: uuid::Uuid,
45 configuration_id: uuid::Uuid,
46 ) -> Result<(), Error<DeleteError>>;
47
48 async fn get<'a>(
50 &self,
51 organization_id: uuid::Uuid,
52 integration_id: uuid::Uuid,
53 ) -> Result<Vec<models::OrganizationIntegrationConfigurationResponseModel>, Error<GetError>>;
54
55 async fn update<'a>(
58 &self,
59 organization_id: uuid::Uuid,
60 integration_id: uuid::Uuid,
61 configuration_id: uuid::Uuid,
62 organization_integration_configuration_request_model: Option<
63 models::OrganizationIntegrationConfigurationRequestModel,
64 >,
65 ) -> Result<models::OrganizationIntegrationConfigurationResponseModel, Error<UpdateError>>;
66}
67
68pub struct OrganizationIntegrationConfigurationApiClient {
69 configuration: Arc<configuration::Configuration>,
70}
71
72impl OrganizationIntegrationConfigurationApiClient {
73 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
74 Self { configuration }
75 }
76}
77
78#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
79#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
80impl OrganizationIntegrationConfigurationApi for OrganizationIntegrationConfigurationApiClient {
81 async fn create<'a>(
82 &self,
83 organization_id: uuid::Uuid,
84 integration_id: uuid::Uuid,
85 organization_integration_configuration_request_model: Option<
86 models::OrganizationIntegrationConfigurationRequestModel,
87 >,
88 ) -> Result<models::OrganizationIntegrationConfigurationResponseModel, Error<CreateError>> {
89 let local_var_configuration = &self.configuration;
90
91 let local_var_client = &local_var_configuration.client;
92
93 let local_var_uri_str = format!(
94 "{}/organizations/{organizationId}/integrations/{integrationId}/configurations",
95 local_var_configuration.base_path,
96 organizationId = organization_id,
97 integrationId = integration_id
98 );
99 let mut local_var_req_builder =
100 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
101
102 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
103 local_var_req_builder =
104 local_var_req_builder.json(&organization_integration_configuration_request_model);
105
106 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
107 }
108
109 async fn delete<'a>(
110 &self,
111 organization_id: uuid::Uuid,
112 integration_id: uuid::Uuid,
113 configuration_id: uuid::Uuid,
114 ) -> Result<(), Error<DeleteError>> {
115 let local_var_configuration = &self.configuration;
116
117 let local_var_client = &local_var_configuration.client;
118
119 let local_var_uri_str = format!(
120 "{}/organizations/{organizationId}/integrations/{integrationId}/configurations/{configurationId}",
121 local_var_configuration.base_path,
122 organizationId = organization_id,
123 integrationId = integration_id,
124 configurationId = configuration_id
125 );
126 let mut local_var_req_builder =
127 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
128
129 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
130
131 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
132 }
133
134 async fn get<'a>(
135 &self,
136 organization_id: uuid::Uuid,
137 integration_id: uuid::Uuid,
138 ) -> Result<Vec<models::OrganizationIntegrationConfigurationResponseModel>, Error<GetError>>
139 {
140 let local_var_configuration = &self.configuration;
141
142 let local_var_client = &local_var_configuration.client;
143
144 let local_var_uri_str = format!(
145 "{}/organizations/{organizationId}/integrations/{integrationId}/configurations",
146 local_var_configuration.base_path,
147 organizationId = organization_id,
148 integrationId = integration_id
149 );
150 let mut local_var_req_builder =
151 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
152
153 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
154
155 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
156 }
157
158 async fn update<'a>(
159 &self,
160 organization_id: uuid::Uuid,
161 integration_id: uuid::Uuid,
162 configuration_id: uuid::Uuid,
163 organization_integration_configuration_request_model: Option<
164 models::OrganizationIntegrationConfigurationRequestModel,
165 >,
166 ) -> Result<models::OrganizationIntegrationConfigurationResponseModel, Error<UpdateError>> {
167 let local_var_configuration = &self.configuration;
168
169 let local_var_client = &local_var_configuration.client;
170
171 let local_var_uri_str = format!(
172 "{}/organizations/{organizationId}/integrations/{integrationId}/configurations/{configurationId}",
173 local_var_configuration.base_path,
174 organizationId = organization_id,
175 integrationId = integration_id,
176 configurationId = configuration_id
177 );
178 let mut local_var_req_builder =
179 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
180
181 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
182 local_var_req_builder =
183 local_var_req_builder.json(&organization_integration_configuration_request_model);
184
185 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
186 }
187}
188
189#[derive(Debug, Clone, Serialize, Deserialize)]
191#[serde(untagged)]
192pub enum CreateError {
193 UnknownValue(serde_json::Value),
194}
195#[derive(Debug, Clone, Serialize, Deserialize)]
197#[serde(untagged)]
198pub enum DeleteError {
199 UnknownValue(serde_json::Value),
200}
201#[derive(Debug, Clone, Serialize, Deserialize)]
203#[serde(untagged)]
204pub enum GetError {
205 UnknownValue(serde_json::Value),
206}
207#[derive(Debug, Clone, Serialize, Deserialize)]
209#[serde(untagged)]
210pub enum UpdateError {
211 UnknownValue(serde_json::Value),
212}