1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct CollaborationPermissions {
9 #[serde(default, skip_serializing_if = "Option::is_none")]
10 pub is_co_owner_role_enabled: Option<bool>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub is_editor_role_enabled: Option<bool>,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub is_previewer_role_enabled: Option<bool>,
15 #[serde(default, skip_serializing_if = "Option::is_none")]
16 pub is_previewer_uploader_role_enabled: Option<bool>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub is_uploader_role_enabled: Option<bool>,
19 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub is_viewer_role_enabled: Option<bool>,
21 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub is_viewer_uploader_role_enabled: Option<bool>,
23}
24
25#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
26pub struct CustomSessionDurationGroupItem {
27 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub id: Option<String>,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub name: Option<String>,
31}
32
33#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
34pub struct EnterpriseConfiguration {
35 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub id: Option<String>,
37 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub r#type: Option<EnterpriseConfigurationType>,
39 #[serde(
40 default,
41 skip_serializing_if = "Option::is_none",
42 deserialize_with = "double_option"
43 )]
44 pub security: Option<Option<EnterpriseConfigurationSecurity>>,
45 #[serde(
46 default,
47 skip_serializing_if = "Option::is_none",
48 deserialize_with = "double_option"
49 )]
50 pub content_and_sharing: Option<Option<EnterpriseConfigurationContentAndSharing>>,
51 #[serde(
52 default,
53 skip_serializing_if = "Option::is_none",
54 deserialize_with = "double_option"
55 )]
56 pub user_settings: Option<Option<EnterpriseConfigurationUserSettings>>,
57 #[serde(
58 default,
59 skip_serializing_if = "Option::is_none",
60 deserialize_with = "double_option"
61 )]
62 pub shield: Option<Option<EnterpriseConfigurationShield>>,
63}
64
65#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
66pub struct EnterpriseConfigurationContentAndSharing {
67 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
70 pub sharing_item_type: Option<EnterpriseConfigurationItemString>,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub shared_link_company_definition: Option<EnterpriseConfigurationItemString>,
73 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub shared_link_access: Option<EnterpriseConfigurationItemString>,
75 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub shared_link_default_access: Option<EnterpriseConfigurationItemString>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub shared_link_default_permissions_selected:
79 Option<EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub is_open_custom_urls_disabled: Option<EnterpriseConfigurationItemBoolean>,
82 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub is_custom_domain_hidden_in_shared_link: Option<EnterpriseConfigurationItemBoolean>,
84 #[serde(default, skip_serializing_if = "Option::is_none")]
85 pub collaboration_permissions:
86 Option<EnterpriseConfigurationContentAndSharingCollaborationPermissions>,
87 #[serde(default, skip_serializing_if = "Option::is_none")]
88 pub default_collaboration_role: Option<EnterpriseConfigurationItemString>,
89 #[serde(default, skip_serializing_if = "Option::is_none")]
90 pub is_invite_privilege_restricted: Option<EnterpriseConfigurationItemBoolean>,
91 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub collaboration_restrictions:
93 Option<EnterpriseConfigurationContentAndSharingCollaborationRestrictions>,
94 #[serde(default, skip_serializing_if = "Option::is_none")]
95 pub is_collaborator_invite_links_disabled: Option<EnterpriseConfigurationItemBoolean>,
96 #[serde(default, skip_serializing_if = "Option::is_none")]
97 pub is_invite_group_collaborator_disabled: Option<EnterpriseConfigurationItemBoolean>,
98 #[serde(default, skip_serializing_if = "Option::is_none")]
99 pub is_ownership_transfer_restricted: Option<EnterpriseConfigurationItemBoolean>,
100 #[serde(default, skip_serializing_if = "Option::is_none")]
101 pub external_collaboration_status:
102 Option<EnterpriseConfigurationContentAndSharingExternalCollaborationStatus>,
103 #[serde(default, skip_serializing_if = "Option::is_none")]
104 pub external_collaboration_allowlist_users:
105 Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
106 #[serde(default, skip_serializing_if = "Option::is_none")]
107 pub is_watermarking_enterprise_feature_enabled: Option<EnterpriseConfigurationItemBoolean>,
108 #[serde(default, skip_serializing_if = "Option::is_none")]
109 pub is_root_content_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
110 #[serde(default, skip_serializing_if = "Option::is_none")]
111 pub is_tag_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
112 #[serde(default, skip_serializing_if = "Option::is_none")]
113 pub tag_creation_restriction: Option<EnterpriseConfigurationItemString>,
114 #[serde(default, skip_serializing_if = "Option::is_none")]
115 pub is_email_uploads_enabled: Option<EnterpriseConfigurationItemBoolean>,
116 #[serde(default, skip_serializing_if = "Option::is_none")]
117 pub is_custom_settings_enabled: Option<EnterpriseConfigurationItemBoolean>,
118 #[serde(default, skip_serializing_if = "Option::is_none")]
119 pub is_forms_login_required: Option<EnterpriseConfigurationItemBoolean>,
120 #[serde(default, skip_serializing_if = "Option::is_none")]
121 pub is_forms_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
122 #[serde(default, skip_serializing_if = "Option::is_none")]
123 pub is_cc_free_trial_active: Option<EnterpriseConfigurationItemBoolean>,
124 #[serde(default, skip_serializing_if = "Option::is_none")]
125 pub is_file_request_editors_allowed: Option<EnterpriseConfigurationItemBoolean>,
126 #[serde(default, skip_serializing_if = "Option::is_none")]
127 pub is_file_request_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
128 #[serde(default, skip_serializing_if = "Option::is_none")]
129 pub is_file_request_login_required: Option<EnterpriseConfigurationItemBoolean>,
130 #[serde(default, skip_serializing_if = "Option::is_none")]
131 pub is_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
132 #[serde(default, skip_serializing_if = "Option::is_none")]
133 pub shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
134 #[serde(default, skip_serializing_if = "Option::is_none")]
135 pub is_public_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
136 #[serde(default, skip_serializing_if = "Option::is_none")]
137 pub public_shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
138 #[serde(default, skip_serializing_if = "Option::is_none")]
139 pub shared_expiration_target: Option<EnterpriseConfigurationItemString>,
140 #[serde(default, skip_serializing_if = "Option::is_none")]
141 pub is_shared_links_expiration_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
142 #[serde(default, skip_serializing_if = "Option::is_none")]
143 pub shared_links_expiration_notification_days: Option<EnterpriseConfigurationItemInteger>,
144 #[serde(default, skip_serializing_if = "Option::is_none")]
145 pub is_shared_links_expiration_notification_prevented:
146 Option<EnterpriseConfigurationItemBoolean>,
147 #[serde(default, skip_serializing_if = "Option::is_none")]
148 pub is_auto_delete_enabled: Option<EnterpriseConfigurationItemBoolean>,
149 #[serde(default, skip_serializing_if = "Option::is_none")]
150 pub auto_delete_days: Option<EnterpriseConfigurationItemInteger>,
151 #[serde(default, skip_serializing_if = "Option::is_none")]
152 pub is_auto_delete_expiration_modification_prevented:
153 Option<EnterpriseConfigurationItemBoolean>,
154 #[serde(default, skip_serializing_if = "Option::is_none")]
155 pub auto_delete_target: Option<EnterpriseConfigurationItemString>,
156 #[serde(default, skip_serializing_if = "Option::is_none")]
157 pub is_collaboration_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
158 #[serde(default, skip_serializing_if = "Option::is_none")]
159 pub collaboration_expiration_days: Option<EnterpriseConfigurationItemInteger>,
160 #[serde(default, skip_serializing_if = "Option::is_none")]
161 pub is_collaboration_expiration_modification_prevented:
162 Option<EnterpriseConfigurationItemBoolean>,
163 #[serde(default, skip_serializing_if = "Option::is_none")]
164 pub is_collaboration_expiration_notification_enabled:
165 Option<EnterpriseConfigurationItemBoolean>,
166 #[serde(default, skip_serializing_if = "Option::is_none")]
167 pub collaboration_expiration_target: Option<EnterpriseConfigurationItemString>,
168 #[serde(default, skip_serializing_if = "Option::is_none")]
169 pub trash_auto_clear_time: Option<EnterpriseConfigurationItemInteger>,
170 #[serde(default, skip_serializing_if = "Option::is_none")]
171 pub permanent_deletion_access: Option<EnterpriseConfigurationItemString>,
172 #[serde(default, skip_serializing_if = "Option::is_none")]
173 pub permanent_deletion_allowlist_users:
174 Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
175}
176
177#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
178pub struct EnterpriseConfigurationItemBoolean {
179 #[serde(default, skip_serializing_if = "Option::is_none")]
180 pub is_used: Option<bool>,
181 #[serde(
182 default,
183 skip_serializing_if = "Option::is_none",
184 deserialize_with = "double_option"
185 )]
186 pub value: Option<Option<bool>>,
187}
188
189#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
190pub struct EnterpriseConfigurationItemInteger {
191 #[serde(default, skip_serializing_if = "Option::is_none")]
192 pub is_used: Option<bool>,
193 #[serde(
194 default,
195 skip_serializing_if = "Option::is_none",
196 deserialize_with = "double_option"
197 )]
198 pub value: Option<Option<i64>>,
199}
200
201#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
202pub struct EnterpriseConfigurationItemString {
203 #[serde(default, skip_serializing_if = "Option::is_none")]
204 pub is_used: Option<bool>,
205 #[serde(
206 default,
207 skip_serializing_if = "Option::is_none",
208 deserialize_with = "double_option"
209 )]
210 pub value: Option<Option<String>>,
211}
212
213#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
214pub struct EnterpriseConfigurationSecurity {
215 #[serde(default, skip_serializing_if = "Option::is_none")]
216 pub is_managed_user_signup_enabled: Option<EnterpriseConfigurationItemBoolean>,
217 #[serde(default, skip_serializing_if = "Option::is_none")]
218 pub is_managed_user_signup_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
219 #[serde(default, skip_serializing_if = "Option::is_none")]
220 pub is_managed_user_signup_corporate_email_enabled: Option<EnterpriseConfigurationItemBoolean>,
221 #[serde(default, skip_serializing_if = "Option::is_none")]
222 pub is_new_user_notification_daily_digest_enabled: Option<EnterpriseConfigurationItemBoolean>,
223 #[serde(default, skip_serializing_if = "Option::is_none")]
224 pub is_managed_user_email_change_disabled: Option<EnterpriseConfigurationItemBoolean>,
225 #[serde(default, skip_serializing_if = "Option::is_none")]
226 pub is_multi_factor_auth_required: Option<EnterpriseConfigurationItemBoolean>,
227 #[serde(default, skip_serializing_if = "Option::is_none")]
228 pub is_weak_password_prevention_enabled: Option<EnterpriseConfigurationItemBoolean>,
229 #[serde(default, skip_serializing_if = "Option::is_none")]
230 pub is_password_leak_detection_enabled: Option<EnterpriseConfigurationItemBoolean>,
231 #[serde(default, skip_serializing_if = "Option::is_none")]
232 pub last_password_reset_at: Option<EnterpriseConfigurationSecurityLastPasswordResetAt>,
233 #[serde(default, skip_serializing_if = "Option::is_none")]
234 pub is_password_request_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
235 #[serde(default, skip_serializing_if = "Option::is_none")]
236 pub is_password_change_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
237 #[serde(default, skip_serializing_if = "Option::is_none")]
238 pub is_strong_password_for_ext_collab_enabled: Option<EnterpriseConfigurationItemBoolean>,
239 #[serde(default, skip_serializing_if = "Option::is_none")]
240 pub is_managed_user_migration_disabled: Option<EnterpriseConfigurationItemBoolean>,
241 #[serde(default, skip_serializing_if = "Option::is_none")]
242 pub join_link: Option<EnterpriseConfigurationItemString>,
243 #[serde(default, skip_serializing_if = "Option::is_none")]
244 pub join_url: Option<EnterpriseConfigurationItemString>,
245 #[serde(default, skip_serializing_if = "Option::is_none")]
246 pub failed_login_attempts_to_trigger_admin_notification:
247 Option<EnterpriseConfigurationItemInteger>,
248 #[serde(default, skip_serializing_if = "Option::is_none")]
249 pub password_min_length: Option<EnterpriseConfigurationItemInteger>,
250 #[serde(default, skip_serializing_if = "Option::is_none")]
251 pub password_min_uppercase_characters: Option<EnterpriseConfigurationItemInteger>,
252 #[serde(default, skip_serializing_if = "Option::is_none")]
253 pub password_min_numeric_characters: Option<EnterpriseConfigurationItemInteger>,
254 #[serde(default, skip_serializing_if = "Option::is_none")]
255 pub password_min_special_characters: Option<EnterpriseConfigurationItemInteger>,
256 #[serde(default, skip_serializing_if = "Option::is_none")]
257 pub password_reset_frequency: Option<EnterpriseConfigurationItemString>,
258 #[serde(default, skip_serializing_if = "Option::is_none")]
259 pub previous_password_reuse_limit: Option<EnterpriseConfigurationItemString>,
260 #[serde(default, skip_serializing_if = "Option::is_none")]
261 pub session_duration: Option<EnterpriseConfigurationItemString>,
262 #[serde(default, skip_serializing_if = "Option::is_none")]
263 pub external_collab_multi_factor_auth_settings:
264 Option<EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings>,
265 #[serde(default, skip_serializing_if = "Option::is_none")]
266 pub keysafe: Option<EnterpriseConfigurationSecurityKeysafe>,
267 #[serde(default, skip_serializing_if = "Option::is_none")]
268 pub is_custom_session_duration_enabled: Option<EnterpriseConfigurationItemBoolean>,
269 #[serde(default, skip_serializing_if = "Option::is_none")]
270 pub custom_session_duration_value: Option<EnterpriseConfigurationItemString>,
271 #[serde(default, skip_serializing_if = "Option::is_none")]
272 pub custom_session_duration_groups:
273 Option<EnterpriseConfigurationSecurityCustomSessionDurationGroups>,
274 #[serde(default, skip_serializing_if = "Option::is_none")]
275 pub multi_factor_auth_type: Option<EnterpriseConfigurationItemString>,
276 #[serde(default, skip_serializing_if = "Option::is_none")]
277 pub enforced_mfa_frequency: Option<EnterpriseConfigurationSecurityEnforcedMfaFrequency>,
278}
279
280#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
281pub struct EnterpriseConfigurationShield {
282 #[serde(default, skip_serializing_if = "Option::is_none")]
283 pub shield_rules: Option<Vec<ShieldRuleItem>>,
284}
285
286#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
287pub struct EnterpriseConfigurationUserSettings {
288 #[serde(default, skip_serializing_if = "Option::is_none")]
289 pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
290 #[serde(default, skip_serializing_if = "Option::is_none")]
291 pub user_invites_expiration_time_frame: Option<EnterpriseConfigurationItemString>,
292 #[serde(default, skip_serializing_if = "Option::is_none")]
293 pub is_username_change_restricted: Option<EnterpriseConfigurationItemBoolean>,
294 #[serde(default, skip_serializing_if = "Option::is_none")]
295 pub is_box_sync_restricted_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
296 #[serde(default, skip_serializing_if = "Option::is_none")]
297 pub is_view_all_users_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
298 #[serde(default, skip_serializing_if = "Option::is_none")]
299 pub is_device_limit_exemption_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
300 #[serde(default, skip_serializing_if = "Option::is_none")]
301 pub is_external_collaboration_restricted_for_new_users:
302 Option<EnterpriseConfigurationItemBoolean>,
303 #[serde(default, skip_serializing_if = "Option::is_none")]
304 pub is_unlimited_storage_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
305 #[serde(default, skip_serializing_if = "Option::is_none")]
306 pub new_user_default_storage_limit: Option<EnterpriseConfigurationItemInteger>,
307 #[serde(default, skip_serializing_if = "Option::is_none")]
308 pub new_user_default_timezone: Option<EnterpriseConfigurationItemString>,
309 #[serde(default, skip_serializing_if = "Option::is_none")]
310 pub new_user_default_language: Option<EnterpriseConfigurationItemString>,
311 #[serde(default, skip_serializing_if = "Option::is_none")]
312 pub is_enterprise_sso_required: Option<EnterpriseConfigurationItemBoolean>,
313 #[serde(default, skip_serializing_if = "Option::is_none")]
314 pub is_enterprise_sso_in_testing: Option<EnterpriseConfigurationItemBoolean>,
315 #[serde(default, skip_serializing_if = "Option::is_none")]
316 pub is_sso_auto_add_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
317 #[serde(default, skip_serializing_if = "Option::is_none")]
318 pub is_sso_auto_add_user_to_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
319 #[serde(default, skip_serializing_if = "Option::is_none")]
320 pub is_sso_auto_remove_user_from_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
321 #[serde(default, skip_serializing_if = "Option::is_none")]
322 pub user_tracking_codes: Option<EnterpriseConfigurationUserSettingsUserTrackingCodes>,
323 #[serde(default, skip_serializing_if = "Option::is_none")]
324 pub number_of_user_tracking_codes_remaining: Option<EnterpriseConfigurationItemInteger>,
325 #[serde(default, skip_serializing_if = "Option::is_none")]
326 pub is_instant_login_restricted: Option<EnterpriseConfigurationItemBoolean>,
327}
328
329#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
330pub struct EnterpriseFeatureSetting {
331 #[serde(
332 default,
333 skip_serializing_if = "Option::is_none",
334 deserialize_with = "double_option"
335 )]
336 pub id: Option<Option<String>>,
337 #[serde(default, skip_serializing_if = "Option::is_none")]
338 pub feature: Option<EnterpriseFeatureSettingFeature>,
339 #[serde(
340 default,
341 skip_serializing_if = "Option::is_none",
342 deserialize_with = "double_option"
343 )]
344 pub state: Option<Option<String>>,
345 #[serde(
346 default,
347 skip_serializing_if = "Option::is_none",
348 deserialize_with = "double_option"
349 )]
350 pub can_configure: Option<Option<bool>>,
351 #[serde(
352 default,
353 skip_serializing_if = "Option::is_none",
354 deserialize_with = "double_option"
355 )]
356 pub is_configured: Option<Option<bool>>,
357 #[serde(
358 default,
359 skip_serializing_if = "Option::is_none",
360 deserialize_with = "double_option"
361 )]
362 pub allowlist: Option<Option<Vec<UserOrGroupReference>>>,
363 #[serde(
364 default,
365 skip_serializing_if = "Option::is_none",
366 deserialize_with = "double_option"
367 )]
368 pub denylist: Option<Option<Vec<UserOrGroupReference>>>,
369}
370
371#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
372pub struct EnterpriseFeatureSettingsItem {
373 #[serde(default, skip_serializing_if = "Option::is_none")]
374 pub is_used: Option<bool>,
375 #[serde(default, skip_serializing_if = "Option::is_none")]
376 pub value: Option<EnterpriseFeatureSetting>,
377}
378
379#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
380pub struct ExternalCollabSecuritySettings {
381 #[serde(default, skip_serializing_if = "Option::is_none")]
382 pub denylist_domains: Option<Vec<String>>,
383 #[serde(default, skip_serializing_if = "Option::is_none")]
384 pub denylist_emails: Option<Vec<String>>,
385 #[serde(default, skip_serializing_if = "Option::is_none")]
386 pub allowlist_domains: Option<Vec<String>>,
387 #[serde(default, skip_serializing_if = "Option::is_none")]
388 pub allowlist_emails: Option<Vec<String>>,
389 #[serde(
390 default,
391 skip_serializing_if = "Option::is_none",
392 deserialize_with = "double_option"
393 )]
394 pub state: Option<Option<String>>,
395 #[serde(
396 default,
397 skip_serializing_if = "Option::is_none",
398 deserialize_with = "double_option"
399 )]
400 pub scheduled_status: Option<Option<String>>,
401 #[serde(
402 default,
403 skip_serializing_if = "Option::is_none",
404 deserialize_with = "double_option"
405 )]
406 pub scheduled_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
407 #[serde(
408 default,
409 skip_serializing_if = "Option::is_none",
410 deserialize_with = "double_option"
411 )]
412 pub factor_type_settings: Option<Option<String>>,
413}
414
415#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
416pub struct KeysafeSettings {
417 #[serde(default, skip_serializing_if = "Option::is_none")]
418 pub keysafe_enabled: Option<bool>,
419 #[serde(
420 default,
421 skip_serializing_if = "Option::is_none",
422 deserialize_with = "double_option"
423 )]
424 pub cloud_provider: Option<Option<String>>,
425 #[serde(
426 default,
427 skip_serializing_if = "Option::is_none",
428 deserialize_with = "double_option"
429 )]
430 pub key_id: Option<Option<String>>,
431 #[serde(
432 default,
433 skip_serializing_if = "Option::is_none",
434 deserialize_with = "double_option"
435 )]
436 pub account_id: Option<Option<String>>,
437 #[serde(
438 default,
439 skip_serializing_if = "Option::is_none",
440 deserialize_with = "double_option"
441 )]
442 pub location_id: Option<Option<String>>,
443 #[serde(
444 default,
445 skip_serializing_if = "Option::is_none",
446 deserialize_with = "double_option"
447 )]
448 pub project_id: Option<Option<String>>,
449 #[serde(
450 default,
451 skip_serializing_if = "Option::is_none",
452 deserialize_with = "double_option"
453 )]
454 pub keyring_id: Option<Option<String>>,
455}
456
457#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
458pub struct ListUser {
459 #[serde(
460 default,
461 skip_serializing_if = "Option::is_none",
462 deserialize_with = "double_option"
463 )]
464 pub id: Option<Option<i64>>,
465 #[serde(
466 default,
467 skip_serializing_if = "Option::is_none",
468 deserialize_with = "double_option"
469 )]
470 pub name: Option<Option<String>>,
471 #[serde(
472 default,
473 skip_serializing_if = "Option::is_none",
474 deserialize_with = "double_option"
475 )]
476 pub email: Option<Option<String>>,
477}
478
479#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
480pub struct ShieldRuleItem {
481 #[serde(default, skip_serializing_if = "Option::is_none")]
482 pub id: Option<String>,
483 #[serde(default, skip_serializing_if = "Option::is_none")]
484 pub r#type: Option<ShieldRuleItemType>,
485 #[serde(default, skip_serializing_if = "Option::is_none")]
486 pub rule_category: Option<String>,
487 #[serde(default, skip_serializing_if = "Option::is_none")]
488 pub name: Option<String>,
489 #[serde(default, skip_serializing_if = "Option::is_none")]
490 pub description: Option<String>,
491 #[serde(default, skip_serializing_if = "Option::is_none")]
492 pub priority: Option<ShieldRuleItemPriority>,
493 #[serde(default, skip_serializing_if = "Option::is_none")]
494 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
495 #[serde(default, skip_serializing_if = "Option::is_none")]
496 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
497}
498
499#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
500pub struct UserOrGroupReference {
501 #[serde(default, skip_serializing_if = "Option::is_none")]
502 pub r#type: Option<UserOrGroupReferenceType>,
503 #[serde(default, skip_serializing_if = "Option::is_none")]
504 pub id: Option<String>,
505}
506
507#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
508pub struct UserTrackingCode {
509 #[serde(
510 default,
511 skip_serializing_if = "Option::is_none",
512 deserialize_with = "double_option"
513 )]
514 pub id: Option<Option<i64>>,
515 #[serde(
516 default,
517 skip_serializing_if = "Option::is_none",
518 deserialize_with = "double_option"
519 )]
520 pub name: Option<Option<String>>,
521}
522
523#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
524#[serde(transparent)]
525pub struct EnterpriseConfigurationType(pub String);
526
527impl EnterpriseConfigurationType {
528 pub const ENTERPRISE_CONFIGURATION: &'static str = "enterprise_configuration";
529}
530
531#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
532pub struct EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected {
533 #[serde(default, skip_serializing_if = "Option::is_none")]
534 pub is_used: Option<bool>,
535 #[serde(default, skip_serializing_if = "Option::is_none")]
536 pub value: Option<SharedLinkPermissions>,
537}
538
539#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
540pub struct EnterpriseConfigurationContentAndSharingCollaborationPermissions {
541 #[serde(default, skip_serializing_if = "Option::is_none")]
542 pub is_used: Option<bool>,
543 #[serde(default, skip_serializing_if = "Option::is_none")]
544 pub value: Option<CollaborationPermissions>,
545}
546
547#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
548pub struct EnterpriseConfigurationContentAndSharingCollaborationRestrictions {
549 #[serde(default, skip_serializing_if = "Option::is_none")]
550 pub is_used: Option<bool>,
551 #[serde(default, skip_serializing_if = "Option::is_none")]
552 pub value: Option<Vec<String>>,
553}
554
555#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
556pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationStatus {
557 #[serde(default, skip_serializing_if = "Option::is_none")]
558 pub is_used: Option<bool>,
559 #[serde(
560 default,
561 skip_serializing_if = "Option::is_none",
562 deserialize_with = "double_option"
563 )]
564 pub value: Option<Option<String>>,
565}
566
567#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
568pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers {
569 #[serde(default, skip_serializing_if = "Option::is_none")]
570 pub is_used: Option<bool>,
571 #[serde(default, skip_serializing_if = "Option::is_none")]
572 pub value: Option<Vec<ListUser>>,
573}
574
575#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
576pub struct EnterpriseConfigurationSecurityLastPasswordResetAt {
577 #[serde(default, skip_serializing_if = "Option::is_none")]
578 pub is_used: Option<bool>,
579 #[serde(
580 default,
581 skip_serializing_if = "Option::is_none",
582 deserialize_with = "double_option"
583 )]
584 pub value: Option<Option<chrono::DateTime<chrono::Utc>>>,
585}
586
587#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
588pub struct EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings {
589 #[serde(default, skip_serializing_if = "Option::is_none")]
590 pub is_used: Option<bool>,
591 #[serde(
592 default,
593 skip_serializing_if = "Option::is_none",
594 deserialize_with = "double_option"
595 )]
596 pub value: Option<Option<ExternalCollabSecuritySettings>>,
597}
598
599#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
600pub struct EnterpriseConfigurationSecurityKeysafe {
601 #[serde(default, skip_serializing_if = "Option::is_none")]
602 pub is_used: Option<bool>,
603 #[serde(
604 default,
605 skip_serializing_if = "Option::is_none",
606 deserialize_with = "double_option"
607 )]
608 pub value: Option<Option<KeysafeSettings>>,
609}
610
611#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
612pub struct EnterpriseConfigurationSecurityCustomSessionDurationGroups {
613 #[serde(default, skip_serializing_if = "Option::is_none")]
614 pub is_used: Option<bool>,
615 #[serde(default, skip_serializing_if = "Option::is_none")]
616 pub value: Option<Vec<CustomSessionDurationGroupItem>>,
617}
618
619#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
620pub struct EnforcedMfaFrequencyValue {
621 #[serde(
622 default,
623 skip_serializing_if = "Option::is_none",
624 deserialize_with = "double_option"
625 )]
626 pub days: Option<Option<i64>>,
627 #[serde(
628 default,
629 skip_serializing_if = "Option::is_none",
630 deserialize_with = "double_option"
631 )]
632 pub hours: Option<Option<i64>>,
633}
634
635#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
636pub struct EnterpriseConfigurationSecurityEnforcedMfaFrequency {
637 #[serde(default, skip_serializing_if = "Option::is_none")]
638 pub is_used: Option<bool>,
639 #[serde(default, skip_serializing_if = "Option::is_none")]
640 pub value: Option<EnforcedMfaFrequencyValue>,
641}
642
643#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
644pub struct EnterpriseConfigurationUserSettingsUserTrackingCodes {
645 #[serde(default, skip_serializing_if = "Option::is_none")]
646 pub is_used: Option<bool>,
647 #[serde(default, skip_serializing_if = "Option::is_none")]
648 pub value: Option<Vec<UserTrackingCode>>,
649}
650
651#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
652pub struct EnterpriseFeatureSettingFeature {
653 #[serde(
654 default,
655 skip_serializing_if = "Option::is_none",
656 deserialize_with = "double_option"
657 )]
658 pub id: Option<Option<String>>,
659}
660
661#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
662#[serde(transparent)]
663pub struct ShieldRuleItemType(pub String);
664
665impl ShieldRuleItemType {
666 pub const SHIELD_RULE: &'static str = "shield_rule";
667}
668
669#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
670#[serde(transparent)]
671pub struct ShieldRuleItemPriority(pub String);
672
673impl ShieldRuleItemPriority {
674 pub const INFORMATIONAL: &'static str = "informational";
675 pub const LOW: &'static str = "low";
676 pub const MEDIUM: &'static str = "medium";
677 pub const HIGH: &'static str = "high";
678 pub const CRITICAL: &'static str = "critical";
679}
680
681#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
682#[serde(transparent)]
683pub struct UserOrGroupReferenceType(pub String);
684
685impl UserOrGroupReferenceType {
686 pub const USER: &'static str = "user";
687 pub const GROUP: &'static str = "group";
688}