Skip to main content

box_open_sdk/models/schemas/
enterprise_configurations.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3use 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}