uptrakit_openapi_client/
settings.rs1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::server_cert::RenewServerCertResponse;
4use crate::types_impl::settings::{
5 RegistrationSettingsResponse, UpdateRegistrationSettingsRequest,
6};
7use crate::types_impl::settings_agent_certs::{
8 AgentCertificateSettingsResponse, UpdateAgentCertificateSettingsRequest,
9};
10use crate::types_impl::settings_auth::{
11 AuthenticationSettingsResponse, UpdateAuthenticationSettingsRequest,
12};
13use crate::types_impl::settings_ca::RotateCaResponse;
14use crate::types_impl::settings_combined::{
15 CombinedSettingsResponse, GlobalSettingsCombinedResponse,
16};
17use crate::types_impl::settings_network::{NetworkSettingsResponse, UpdateNetworkSettingsRequest};
18use crate::types_impl::settings_reset::{ResetDataRequest, ResetDataResponse};
19
20impl UptrakitClient {
21 pub async fn get_global_combined_settings(&self) -> Result<GlobalSettingsCombinedResponse> {
23 self.get(crate::paths::global_settings::COMBINED).await
24 }
25
26 pub async fn get_combined_settings(&self) -> Result<CombinedSettingsResponse> {
28 self.get(crate::paths::settings::COMBINED).await
29 }
30
31 pub async fn get_registration_settings(&self) -> Result<RegistrationSettingsResponse> {
33 self.get(crate::paths::settings::REGISTRATION).await
34 }
35
36 pub async fn update_registration_settings(
38 &self,
39 req: &UpdateRegistrationSettingsRequest,
40 ) -> Result<RegistrationSettingsResponse> {
41 self.put_json(crate::paths::settings::REGISTRATION, req)
42 .await
43 }
44
45 pub async fn get_authentication_settings(&self) -> Result<AuthenticationSettingsResponse> {
47 self.get(crate::paths::settings::AUTHENTICATION).await
48 }
49
50 pub async fn update_authentication_settings(
52 &self,
53 req: &UpdateAuthenticationSettingsRequest,
54 ) -> Result<AuthenticationSettingsResponse> {
55 self.put_json(crate::paths::settings::AUTHENTICATION, req)
56 .await
57 }
58
59 pub async fn get_agent_certificate_settings(&self) -> Result<AgentCertificateSettingsResponse> {
61 self.get(crate::paths::settings::AGENT_CERTIFICATES).await
62 }
63
64 pub async fn update_agent_certificate_settings(
66 &self,
67 req: &UpdateAgentCertificateSettingsRequest,
68 ) -> Result<AgentCertificateSettingsResponse> {
69 self.put_json(crate::paths::settings::AGENT_CERTIFICATES, req)
70 .await
71 }
72
73 pub async fn get_network_settings(&self) -> Result<NetworkSettingsResponse> {
75 self.get(crate::paths::settings::NETWORK).await
76 }
77
78 pub async fn update_network_settings(
80 &self,
81 req: &UpdateNetworkSettingsRequest,
82 ) -> Result<NetworkSettingsResponse> {
83 self.put_json(crate::paths::settings::NETWORK, req).await
84 }
85
86 pub async fn rotate_ca(&self) -> Result<RotateCaResponse> {
88 self.post_empty(crate::paths::settings::ROTATE_CA).await
89 }
90
91 pub async fn renew_server_certificate(&self) -> Result<RenewServerCertResponse> {
93 self.post_empty(crate::paths::settings::RENEW_SERVER_CERT)
94 .await
95 }
96
97 pub async fn reset_data(&self, req: &ResetDataRequest) -> Result<ResetDataResponse> {
99 self.post_json(crate::paths::settings::RESET_DATA, req)
100 .await
101 }
102}
103
104#[cfg(test)]
105mod tests {
106 use crate::types_impl::SecretString;
107 use crate::types_impl::registration::RegistrationMode;
108 use crate::types_impl::settings::UpdateRegistrationSettingsRequest;
109 use crate::types_impl::settings_agent_certs::UpdateAgentCertificateSettingsRequest;
110 use crate::types_impl::settings_auth::UpdateAuthenticationSettingsRequest;
111 use crate::types_impl::settings_network::UpdateNetworkSettingsRequest;
112
113 #[test]
114 fn update_registration_settings_serialization() {
115 let req = UpdateRegistrationSettingsRequest {
116 mode: RegistrationMode::Invite,
117 token: Some(SecretString::new("my-invite-token")),
118 require_token_for_oidc: Some(true),
119 };
120 let json = serde_json::to_value(&req).expect("serialize");
121 assert_eq!(json["mode"], "invite");
122 assert_eq!(json["token"], "my-invite-token");
123 assert_eq!(json["require_token_for_oidc"], true);
124 }
125
126 #[test]
127 fn update_authentication_settings_serialization() {
128 let req = UpdateAuthenticationSettingsRequest {
129 password_auth_enabled: Some(false),
130 };
131 let json = serde_json::to_value(&req).expect("serialize");
132 assert_eq!(json["password_auth_enabled"], false);
133 }
134
135 #[test]
136 fn update_agent_certificate_settings_serialization() {
137 let req = UpdateAgentCertificateSettingsRequest {
138 lifetime_hours: Some(8_760),
139 renewal_window_hours: Some(72),
140 };
141 let json = serde_json::to_value(&req).expect("serialize");
142 assert_eq!(json["lifetime_hours"], 8_760);
143 assert_eq!(json["renewal_window_hours"], 72);
144 }
145
146 #[test]
147 fn update_network_settings_serialization() {
148 let req = UpdateNetworkSettingsRequest {
149 trusted_proxies: Some(vec!["10.0.0.0/8".to_string()]),
150 real_ip_header: Some("X-Real-IP".to_string()),
151 sans: None,
152 https_addr: None,
153 forwarded_client_cert_info_header: None,
154 forwarded_client_cert_pem_header: None,
155 pki_addr: None,
156 regenerate_cert: None,
157 };
158 let json = serde_json::to_value(&req).expect("serialize");
159 assert_eq!(json["trusted_proxies"][0], "10.0.0.0/8");
160 assert_eq!(json["real_ip_header"], "X-Real-IP");
161 }
162}