clerk_rs/apis/
instance_settings_api.rs

1/*
2 * Clerk Backend API
3 *
4 * The Clerk REST Backend API, meant to be accessed by backend servers. Please see https://clerk.com/docs for more information.
5 *
6 * The version of the OpenAPI document: v1
7 * Contact: support@clerk.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use reqwest;
12
13use super::Error;
14use crate::{apis::ResponseContent, clerk::Clerk};
15
16/// struct for typed errors of method [`update_instance`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum UpdateInstanceError {
20	Status422(crate::models::ClerkErrors),
21	UnknownValue(serde_json::Value),
22}
23
24/// struct for typed errors of method [`update_instance_organization_settings`]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum UpdateInstanceOrganizationSettingsError {
28	Status422(crate::models::ClerkErrors),
29	UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`update_instance_restrictions`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum UpdateInstanceRestrictionsError {
36	Status402(crate::models::ClerkErrors),
37	UnknownValue(serde_json::Value),
38}
39
40pub struct InstanceSettings;
41
42impl InstanceSettings {
43	/// Updates the settings of an instance
44	pub async fn update_instance(
45		clerk_client: &Clerk,
46		update_instance_request: Option<crate::models::UpdateInstanceRequest>,
47	) -> Result<(), Error<UpdateInstanceError>> {
48		let local_var_configuration = &clerk_client.config;
49
50		let local_var_client = &local_var_configuration.client;
51
52		let local_var_uri_str = format!("{}/instance", local_var_configuration.base_path);
53		let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
54
55		if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
56			local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
57		}
58
59		local_var_req_builder = local_var_req_builder.json(&update_instance_request);
60
61		let local_var_req = local_var_req_builder.build()?;
62		let local_var_resp = local_var_client.execute(local_var_req).await?;
63
64		let local_var_status = local_var_resp.status();
65		let local_var_content = local_var_resp.text().await?;
66
67		if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
68			Ok(())
69		} else {
70			let local_var_entity: Option<UpdateInstanceError> = serde_json::from_str(&local_var_content).ok();
71			let local_var_error = ResponseContent {
72				status: local_var_status,
73				content: local_var_content,
74				entity: local_var_entity,
75			};
76			Err(Error::ResponseError(local_var_error))
77		}
78	}
79
80	/// Updates the organization settings of the instance
81	pub async fn update_instance_organization_settings(
82		clerk_client: &Clerk,
83		update_instance_organization_settings_request: Option<crate::models::UpdateInstanceOrganizationSettingsRequest>,
84	) -> Result<crate::models::OrganizationSettings, Error<UpdateInstanceOrganizationSettingsError>> {
85		let local_var_configuration = &clerk_client.config;
86
87		let local_var_client = &local_var_configuration.client;
88
89		let local_var_uri_str = format!("{}/instance/organization_settings", local_var_configuration.base_path);
90		let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
91
92		if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
93			local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
94		}
95
96		local_var_req_builder = local_var_req_builder.json(&update_instance_organization_settings_request);
97
98		let local_var_req = local_var_req_builder.build()?;
99		let local_var_resp = local_var_client.execute(local_var_req).await?;
100
101		let local_var_status = local_var_resp.status();
102		let local_var_content = local_var_resp.text().await?;
103
104		if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
105			serde_json::from_str(&local_var_content).map_err(Error::from)
106		} else {
107			let local_var_entity: Option<UpdateInstanceOrganizationSettingsError> = serde_json::from_str(&local_var_content).ok();
108			let local_var_error = ResponseContent {
109				status: local_var_status,
110				content: local_var_content,
111				entity: local_var_entity,
112			};
113			Err(Error::ResponseError(local_var_error))
114		}
115	}
116
117	/// Updates the restriction settings of an instance
118	pub async fn update_instance_restrictions(
119		clerk_client: &Clerk,
120		update_instance_restrictions_request: Option<crate::models::UpdateInstanceRestrictionsRequest>,
121	) -> Result<crate::models::InstanceRestrictions, Error<UpdateInstanceRestrictionsError>> {
122		let local_var_configuration = &clerk_client.config;
123
124		let local_var_client = &local_var_configuration.client;
125
126		let local_var_uri_str = format!("{}/instance/restrictions", local_var_configuration.base_path);
127		let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
128
129		if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
130			local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
131		}
132
133		local_var_req_builder = local_var_req_builder.json(&update_instance_restrictions_request);
134
135		let local_var_req = local_var_req_builder.build()?;
136		let local_var_resp = local_var_client.execute(local_var_req).await?;
137
138		let local_var_status = local_var_resp.status();
139		let local_var_content = local_var_resp.text().await?;
140
141		if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
142			serde_json::from_str(&local_var_content).map_err(Error::from)
143		} else {
144			let local_var_entity: Option<UpdateInstanceRestrictionsError> = serde_json::from_str(&local_var_content).ok();
145			let local_var_error = ResponseContent {
146				status: local_var_status,
147				content: local_var_content,
148				entity: local_var_entity,
149			};
150			Err(Error::ResponseError(local_var_error))
151		}
152	}
153}