bitwarden_api_api/apis/
organization_connections_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 OrganizationConnectionsApi: Send + Sync {
29 async fn connections_enabled(&self) -> Result<bool, Error<ConnectionsEnabledError>>;
31
32 async fn create_connection<'a>(
34 &self,
35 organization_connection_request_model: Option<models::OrganizationConnectionRequestModel>,
36 ) -> Result<models::OrganizationConnectionResponseModel, Error<CreateConnectionError>>;
37
38 async fn delete_connection<'a>(
40 &self,
41 organization_connection_id: uuid::Uuid,
42 ) -> Result<(), Error<DeleteConnectionError>>;
43
44 async fn get_connection<'a>(
46 &self,
47 organization_id: uuid::Uuid,
48 r#type: models::OrganizationConnectionType,
49 ) -> Result<models::OrganizationConnectionResponseModel, Error<GetConnectionError>>;
50
51 async fn update_connection<'a>(
53 &self,
54 organization_connection_id: uuid::Uuid,
55 organization_connection_request_model: Option<models::OrganizationConnectionRequestModel>,
56 ) -> Result<models::OrganizationConnectionResponseModel, Error<UpdateConnectionError>>;
57}
58
59pub struct OrganizationConnectionsApiClient {
60 configuration: Arc<configuration::Configuration>,
61}
62
63impl OrganizationConnectionsApiClient {
64 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
65 Self { configuration }
66 }
67}
68
69#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
70#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
71impl OrganizationConnectionsApi for OrganizationConnectionsApiClient {
72 async fn connections_enabled(&self) -> Result<bool, Error<ConnectionsEnabledError>> {
73 let local_var_configuration = &self.configuration;
74
75 let local_var_client = &local_var_configuration.client;
76
77 let local_var_uri_str = format!(
78 "{}/organizations/connections/enabled",
79 local_var_configuration.base_path
80 );
81 let mut local_var_req_builder =
82 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
83
84 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
85
86 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
87 }
88
89 async fn create_connection<'a>(
90 &self,
91 organization_connection_request_model: Option<models::OrganizationConnectionRequestModel>,
92 ) -> Result<models::OrganizationConnectionResponseModel, Error<CreateConnectionError>> {
93 let local_var_configuration = &self.configuration;
94
95 let local_var_client = &local_var_configuration.client;
96
97 let local_var_uri_str = format!(
98 "{}/organizations/connections",
99 local_var_configuration.base_path
100 );
101 let mut local_var_req_builder =
102 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
103
104 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
105 local_var_req_builder = local_var_req_builder.json(&organization_connection_request_model);
106
107 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
108 }
109
110 async fn delete_connection<'a>(
111 &self,
112 organization_connection_id: uuid::Uuid,
113 ) -> Result<(), Error<DeleteConnectionError>> {
114 let local_var_configuration = &self.configuration;
115
116 let local_var_client = &local_var_configuration.client;
117
118 let local_var_uri_str = format!(
119 "{}/organizations/connections/{organizationConnectionId}",
120 local_var_configuration.base_path,
121 organizationConnectionId = organization_connection_id
122 );
123 let mut local_var_req_builder =
124 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
125
126 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
127
128 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
129 }
130
131 async fn get_connection<'a>(
132 &self,
133 organization_id: uuid::Uuid,
134 r#type: models::OrganizationConnectionType,
135 ) -> Result<models::OrganizationConnectionResponseModel, Error<GetConnectionError>> {
136 let local_var_configuration = &self.configuration;
137
138 let local_var_client = &local_var_configuration.client;
139
140 let local_var_uri_str = format!("{}/organizations/connections/{organizationId}/{type}", local_var_configuration.base_path, organizationId=organization_id, type=r#type.to_string());
141 let mut local_var_req_builder =
142 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
143
144 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
145
146 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
147 }
148
149 async fn update_connection<'a>(
150 &self,
151 organization_connection_id: uuid::Uuid,
152 organization_connection_request_model: Option<models::OrganizationConnectionRequestModel>,
153 ) -> Result<models::OrganizationConnectionResponseModel, Error<UpdateConnectionError>> {
154 let local_var_configuration = &self.configuration;
155
156 let local_var_client = &local_var_configuration.client;
157
158 let local_var_uri_str = format!(
159 "{}/organizations/connections/{organizationConnectionId}",
160 local_var_configuration.base_path,
161 organizationConnectionId = organization_connection_id
162 );
163 let mut local_var_req_builder =
164 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
165
166 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
167 local_var_req_builder = local_var_req_builder.json(&organization_connection_request_model);
168
169 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
170 }
171}
172
173#[derive(Debug, Clone, Serialize, Deserialize)]
175#[serde(untagged)]
176pub enum ConnectionsEnabledError {
177 UnknownValue(serde_json::Value),
178}
179#[derive(Debug, Clone, Serialize, Deserialize)]
181#[serde(untagged)]
182pub enum CreateConnectionError {
183 UnknownValue(serde_json::Value),
184}
185#[derive(Debug, Clone, Serialize, Deserialize)]
187#[serde(untagged)]
188pub enum DeleteConnectionError {
189 UnknownValue(serde_json::Value),
190}
191#[derive(Debug, Clone, Serialize, Deserialize)]
193#[serde(untagged)]
194pub enum GetConnectionError {
195 UnknownValue(serde_json::Value),
196}
197#[derive(Debug, Clone, Serialize, Deserialize)]
199#[serde(untagged)]
200pub enum UpdateConnectionError {
201 UnknownValue(serde_json::Value),
202}