001package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationusersettingsv2025r0;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitembooleanv2025r0.EnterpriseConfigurationItemBooleanV2025R0;
006import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemintegerv2025r0.EnterpriseConfigurationItemIntegerV2025R0;
007import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemstringv2025r0.EnterpriseConfigurationItemStringV2025R0;
008import com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingsitemv2025r0.EnterpriseFeatureSettingsItemV2025R0;
009import com.fasterxml.jackson.annotation.JsonFilter;
010import com.fasterxml.jackson.annotation.JsonProperty;
011import java.util.List;
012import java.util.Objects;
013
014/** The enterprise configuration for the user settings category. */
015@JsonFilter("nullablePropertyFilter")
016public class EnterpriseConfigurationUserSettingsV2025R0 extends SerializableObject {
017
018  @JsonProperty("enterprise_feature_settings")
019  protected List<EnterpriseFeatureSettingsItemV2025R0> enterpriseFeatureSettings;
020
021  @JsonProperty("user_invites_expiration_time_frame")
022  protected EnterpriseConfigurationItemStringV2025R0 userInvitesExpirationTimeFrame;
023
024  @JsonProperty("is_username_change_restricted")
025  protected EnterpriseConfigurationItemBooleanV2025R0 isUsernameChangeRestricted;
026
027  @JsonProperty("is_box_sync_restricted_for_new_users")
028  protected EnterpriseConfigurationItemBooleanV2025R0 isBoxSyncRestrictedForNewUsers;
029
030  @JsonProperty("is_view_all_users_enabled_for_new_users")
031  protected EnterpriseConfigurationItemBooleanV2025R0 isViewAllUsersEnabledForNewUsers;
032
033  @JsonProperty("is_device_limit_exemption_enabled_for_new_users")
034  protected EnterpriseConfigurationItemBooleanV2025R0 isDeviceLimitExemptionEnabledForNewUsers;
035
036  @JsonProperty("is_external_collaboration_restricted_for_new_users")
037  protected EnterpriseConfigurationItemBooleanV2025R0 isExternalCollaborationRestrictedForNewUsers;
038
039  @JsonProperty("is_unlimited_storage_enabled_for_new_users")
040  protected EnterpriseConfigurationItemBooleanV2025R0 isUnlimitedStorageEnabledForNewUsers;
041
042  @JsonProperty("new_user_default_storage_limit")
043  protected EnterpriseConfigurationItemIntegerV2025R0 newUserDefaultStorageLimit;
044
045  @JsonProperty("new_user_default_timezone")
046  protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultTimezone;
047
048  @JsonProperty("new_user_default_language")
049  protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultLanguage;
050
051  @JsonProperty("is_enterprise_sso_required")
052  protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoRequired;
053
054  @JsonProperty("is_enterprise_sso_in_testing")
055  protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoInTesting;
056
057  @JsonProperty("is_sso_auto_add_groups_enabled")
058  protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddGroupsEnabled;
059
060  @JsonProperty("is_sso_auto_add_user_to_groups_enabled")
061  protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddUserToGroupsEnabled;
062
063  @JsonProperty("is_sso_auto_remove_user_from_groups_enabled")
064  protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoRemoveUserFromGroupsEnabled;
065
066  @JsonProperty("user_tracking_codes")
067  protected EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField userTrackingCodes;
068
069  @JsonProperty("number_of_user_tracking_codes_remaining")
070  protected EnterpriseConfigurationItemIntegerV2025R0 numberOfUserTrackingCodesRemaining;
071
072  @JsonProperty("is_instant_login_restricted")
073  protected EnterpriseConfigurationItemBooleanV2025R0 isInstantLoginRestricted;
074
075  public EnterpriseConfigurationUserSettingsV2025R0() {
076    super();
077  }
078
079  protected EnterpriseConfigurationUserSettingsV2025R0(Builder builder) {
080    super();
081    this.enterpriseFeatureSettings = builder.enterpriseFeatureSettings;
082    this.userInvitesExpirationTimeFrame = builder.userInvitesExpirationTimeFrame;
083    this.isUsernameChangeRestricted = builder.isUsernameChangeRestricted;
084    this.isBoxSyncRestrictedForNewUsers = builder.isBoxSyncRestrictedForNewUsers;
085    this.isViewAllUsersEnabledForNewUsers = builder.isViewAllUsersEnabledForNewUsers;
086    this.isDeviceLimitExemptionEnabledForNewUsers =
087        builder.isDeviceLimitExemptionEnabledForNewUsers;
088    this.isExternalCollaborationRestrictedForNewUsers =
089        builder.isExternalCollaborationRestrictedForNewUsers;
090    this.isUnlimitedStorageEnabledForNewUsers = builder.isUnlimitedStorageEnabledForNewUsers;
091    this.newUserDefaultStorageLimit = builder.newUserDefaultStorageLimit;
092    this.newUserDefaultTimezone = builder.newUserDefaultTimezone;
093    this.newUserDefaultLanguage = builder.newUserDefaultLanguage;
094    this.isEnterpriseSsoRequired = builder.isEnterpriseSsoRequired;
095    this.isEnterpriseSsoInTesting = builder.isEnterpriseSsoInTesting;
096    this.isSsoAutoAddGroupsEnabled = builder.isSsoAutoAddGroupsEnabled;
097    this.isSsoAutoAddUserToGroupsEnabled = builder.isSsoAutoAddUserToGroupsEnabled;
098    this.isSsoAutoRemoveUserFromGroupsEnabled = builder.isSsoAutoRemoveUserFromGroupsEnabled;
099    this.userTrackingCodes = builder.userTrackingCodes;
100    this.numberOfUserTrackingCodesRemaining = builder.numberOfUserTrackingCodesRemaining;
101    this.isInstantLoginRestricted = builder.isInstantLoginRestricted;
102    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
103  }
104
105  public List<EnterpriseFeatureSettingsItemV2025R0> getEnterpriseFeatureSettings() {
106    return enterpriseFeatureSettings;
107  }
108
109  public EnterpriseConfigurationItemStringV2025R0 getUserInvitesExpirationTimeFrame() {
110    return userInvitesExpirationTimeFrame;
111  }
112
113  public EnterpriseConfigurationItemBooleanV2025R0 getIsUsernameChangeRestricted() {
114    return isUsernameChangeRestricted;
115  }
116
117  public EnterpriseConfigurationItemBooleanV2025R0 getIsBoxSyncRestrictedForNewUsers() {
118    return isBoxSyncRestrictedForNewUsers;
119  }
120
121  public EnterpriseConfigurationItemBooleanV2025R0 getIsViewAllUsersEnabledForNewUsers() {
122    return isViewAllUsersEnabledForNewUsers;
123  }
124
125  public EnterpriseConfigurationItemBooleanV2025R0 getIsDeviceLimitExemptionEnabledForNewUsers() {
126    return isDeviceLimitExemptionEnabledForNewUsers;
127  }
128
129  public EnterpriseConfigurationItemBooleanV2025R0
130      getIsExternalCollaborationRestrictedForNewUsers() {
131    return isExternalCollaborationRestrictedForNewUsers;
132  }
133
134  public EnterpriseConfigurationItemBooleanV2025R0 getIsUnlimitedStorageEnabledForNewUsers() {
135    return isUnlimitedStorageEnabledForNewUsers;
136  }
137
138  public EnterpriseConfigurationItemIntegerV2025R0 getNewUserDefaultStorageLimit() {
139    return newUserDefaultStorageLimit;
140  }
141
142  public EnterpriseConfigurationItemStringV2025R0 getNewUserDefaultTimezone() {
143    return newUserDefaultTimezone;
144  }
145
146  public EnterpriseConfigurationItemStringV2025R0 getNewUserDefaultLanguage() {
147    return newUserDefaultLanguage;
148  }
149
150  public EnterpriseConfigurationItemBooleanV2025R0 getIsEnterpriseSsoRequired() {
151    return isEnterpriseSsoRequired;
152  }
153
154  public EnterpriseConfigurationItemBooleanV2025R0 getIsEnterpriseSsoInTesting() {
155    return isEnterpriseSsoInTesting;
156  }
157
158  public EnterpriseConfigurationItemBooleanV2025R0 getIsSsoAutoAddGroupsEnabled() {
159    return isSsoAutoAddGroupsEnabled;
160  }
161
162  public EnterpriseConfigurationItemBooleanV2025R0 getIsSsoAutoAddUserToGroupsEnabled() {
163    return isSsoAutoAddUserToGroupsEnabled;
164  }
165
166  public EnterpriseConfigurationItemBooleanV2025R0 getIsSsoAutoRemoveUserFromGroupsEnabled() {
167    return isSsoAutoRemoveUserFromGroupsEnabled;
168  }
169
170  public EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField getUserTrackingCodes() {
171    return userTrackingCodes;
172  }
173
174  public EnterpriseConfigurationItemIntegerV2025R0 getNumberOfUserTrackingCodesRemaining() {
175    return numberOfUserTrackingCodesRemaining;
176  }
177
178  public EnterpriseConfigurationItemBooleanV2025R0 getIsInstantLoginRestricted() {
179    return isInstantLoginRestricted;
180  }
181
182  @Override
183  public boolean equals(Object o) {
184    if (this == o) {
185      return true;
186    }
187    if (o == null || getClass() != o.getClass()) {
188      return false;
189    }
190    EnterpriseConfigurationUserSettingsV2025R0 casted =
191        (EnterpriseConfigurationUserSettingsV2025R0) o;
192    return Objects.equals(enterpriseFeatureSettings, casted.enterpriseFeatureSettings)
193        && Objects.equals(userInvitesExpirationTimeFrame, casted.userInvitesExpirationTimeFrame)
194        && Objects.equals(isUsernameChangeRestricted, casted.isUsernameChangeRestricted)
195        && Objects.equals(isBoxSyncRestrictedForNewUsers, casted.isBoxSyncRestrictedForNewUsers)
196        && Objects.equals(isViewAllUsersEnabledForNewUsers, casted.isViewAllUsersEnabledForNewUsers)
197        && Objects.equals(
198            isDeviceLimitExemptionEnabledForNewUsers,
199            casted.isDeviceLimitExemptionEnabledForNewUsers)
200        && Objects.equals(
201            isExternalCollaborationRestrictedForNewUsers,
202            casted.isExternalCollaborationRestrictedForNewUsers)
203        && Objects.equals(
204            isUnlimitedStorageEnabledForNewUsers, casted.isUnlimitedStorageEnabledForNewUsers)
205        && Objects.equals(newUserDefaultStorageLimit, casted.newUserDefaultStorageLimit)
206        && Objects.equals(newUserDefaultTimezone, casted.newUserDefaultTimezone)
207        && Objects.equals(newUserDefaultLanguage, casted.newUserDefaultLanguage)
208        && Objects.equals(isEnterpriseSsoRequired, casted.isEnterpriseSsoRequired)
209        && Objects.equals(isEnterpriseSsoInTesting, casted.isEnterpriseSsoInTesting)
210        && Objects.equals(isSsoAutoAddGroupsEnabled, casted.isSsoAutoAddGroupsEnabled)
211        && Objects.equals(isSsoAutoAddUserToGroupsEnabled, casted.isSsoAutoAddUserToGroupsEnabled)
212        && Objects.equals(
213            isSsoAutoRemoveUserFromGroupsEnabled, casted.isSsoAutoRemoveUserFromGroupsEnabled)
214        && Objects.equals(userTrackingCodes, casted.userTrackingCodes)
215        && Objects.equals(
216            numberOfUserTrackingCodesRemaining, casted.numberOfUserTrackingCodesRemaining)
217        && Objects.equals(isInstantLoginRestricted, casted.isInstantLoginRestricted);
218  }
219
220  @Override
221  public int hashCode() {
222    return Objects.hash(
223        enterpriseFeatureSettings,
224        userInvitesExpirationTimeFrame,
225        isUsernameChangeRestricted,
226        isBoxSyncRestrictedForNewUsers,
227        isViewAllUsersEnabledForNewUsers,
228        isDeviceLimitExemptionEnabledForNewUsers,
229        isExternalCollaborationRestrictedForNewUsers,
230        isUnlimitedStorageEnabledForNewUsers,
231        newUserDefaultStorageLimit,
232        newUserDefaultTimezone,
233        newUserDefaultLanguage,
234        isEnterpriseSsoRequired,
235        isEnterpriseSsoInTesting,
236        isSsoAutoAddGroupsEnabled,
237        isSsoAutoAddUserToGroupsEnabled,
238        isSsoAutoRemoveUserFromGroupsEnabled,
239        userTrackingCodes,
240        numberOfUserTrackingCodesRemaining,
241        isInstantLoginRestricted);
242  }
243
244  @Override
245  public String toString() {
246    return "EnterpriseConfigurationUserSettingsV2025R0{"
247        + "enterpriseFeatureSettings='"
248        + enterpriseFeatureSettings
249        + '\''
250        + ", "
251        + "userInvitesExpirationTimeFrame='"
252        + userInvitesExpirationTimeFrame
253        + '\''
254        + ", "
255        + "isUsernameChangeRestricted='"
256        + isUsernameChangeRestricted
257        + '\''
258        + ", "
259        + "isBoxSyncRestrictedForNewUsers='"
260        + isBoxSyncRestrictedForNewUsers
261        + '\''
262        + ", "
263        + "isViewAllUsersEnabledForNewUsers='"
264        + isViewAllUsersEnabledForNewUsers
265        + '\''
266        + ", "
267        + "isDeviceLimitExemptionEnabledForNewUsers='"
268        + isDeviceLimitExemptionEnabledForNewUsers
269        + '\''
270        + ", "
271        + "isExternalCollaborationRestrictedForNewUsers='"
272        + isExternalCollaborationRestrictedForNewUsers
273        + '\''
274        + ", "
275        + "isUnlimitedStorageEnabledForNewUsers='"
276        + isUnlimitedStorageEnabledForNewUsers
277        + '\''
278        + ", "
279        + "newUserDefaultStorageLimit='"
280        + newUserDefaultStorageLimit
281        + '\''
282        + ", "
283        + "newUserDefaultTimezone='"
284        + newUserDefaultTimezone
285        + '\''
286        + ", "
287        + "newUserDefaultLanguage='"
288        + newUserDefaultLanguage
289        + '\''
290        + ", "
291        + "isEnterpriseSsoRequired='"
292        + isEnterpriseSsoRequired
293        + '\''
294        + ", "
295        + "isEnterpriseSsoInTesting='"
296        + isEnterpriseSsoInTesting
297        + '\''
298        + ", "
299        + "isSsoAutoAddGroupsEnabled='"
300        + isSsoAutoAddGroupsEnabled
301        + '\''
302        + ", "
303        + "isSsoAutoAddUserToGroupsEnabled='"
304        + isSsoAutoAddUserToGroupsEnabled
305        + '\''
306        + ", "
307        + "isSsoAutoRemoveUserFromGroupsEnabled='"
308        + isSsoAutoRemoveUserFromGroupsEnabled
309        + '\''
310        + ", "
311        + "userTrackingCodes='"
312        + userTrackingCodes
313        + '\''
314        + ", "
315        + "numberOfUserTrackingCodesRemaining='"
316        + numberOfUserTrackingCodesRemaining
317        + '\''
318        + ", "
319        + "isInstantLoginRestricted='"
320        + isInstantLoginRestricted
321        + '\''
322        + "}";
323  }
324
325  public static class Builder extends NullableFieldTracker {
326
327    protected List<EnterpriseFeatureSettingsItemV2025R0> enterpriseFeatureSettings;
328
329    protected EnterpriseConfigurationItemStringV2025R0 userInvitesExpirationTimeFrame;
330
331    protected EnterpriseConfigurationItemBooleanV2025R0 isUsernameChangeRestricted;
332
333    protected EnterpriseConfigurationItemBooleanV2025R0 isBoxSyncRestrictedForNewUsers;
334
335    protected EnterpriseConfigurationItemBooleanV2025R0 isViewAllUsersEnabledForNewUsers;
336
337    protected EnterpriseConfigurationItemBooleanV2025R0 isDeviceLimitExemptionEnabledForNewUsers;
338
339    protected EnterpriseConfigurationItemBooleanV2025R0
340        isExternalCollaborationRestrictedForNewUsers;
341
342    protected EnterpriseConfigurationItemBooleanV2025R0 isUnlimitedStorageEnabledForNewUsers;
343
344    protected EnterpriseConfigurationItemIntegerV2025R0 newUserDefaultStorageLimit;
345
346    protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultTimezone;
347
348    protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultLanguage;
349
350    protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoRequired;
351
352    protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoInTesting;
353
354    protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddGroupsEnabled;
355
356    protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddUserToGroupsEnabled;
357
358    protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoRemoveUserFromGroupsEnabled;
359
360    protected EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField userTrackingCodes;
361
362    protected EnterpriseConfigurationItemIntegerV2025R0 numberOfUserTrackingCodesRemaining;
363
364    protected EnterpriseConfigurationItemBooleanV2025R0 isInstantLoginRestricted;
365
366    public Builder enterpriseFeatureSettings(
367        List<EnterpriseFeatureSettingsItemV2025R0> enterpriseFeatureSettings) {
368      this.enterpriseFeatureSettings = enterpriseFeatureSettings;
369      return this;
370    }
371
372    public Builder userInvitesExpirationTimeFrame(
373        EnterpriseConfigurationItemStringV2025R0 userInvitesExpirationTimeFrame) {
374      this.userInvitesExpirationTimeFrame = userInvitesExpirationTimeFrame;
375      return this;
376    }
377
378    public Builder isUsernameChangeRestricted(
379        EnterpriseConfigurationItemBooleanV2025R0 isUsernameChangeRestricted) {
380      this.isUsernameChangeRestricted = isUsernameChangeRestricted;
381      return this;
382    }
383
384    public Builder isBoxSyncRestrictedForNewUsers(
385        EnterpriseConfigurationItemBooleanV2025R0 isBoxSyncRestrictedForNewUsers) {
386      this.isBoxSyncRestrictedForNewUsers = isBoxSyncRestrictedForNewUsers;
387      return this;
388    }
389
390    public Builder isViewAllUsersEnabledForNewUsers(
391        EnterpriseConfigurationItemBooleanV2025R0 isViewAllUsersEnabledForNewUsers) {
392      this.isViewAllUsersEnabledForNewUsers = isViewAllUsersEnabledForNewUsers;
393      return this;
394    }
395
396    public Builder isDeviceLimitExemptionEnabledForNewUsers(
397        EnterpriseConfigurationItemBooleanV2025R0 isDeviceLimitExemptionEnabledForNewUsers) {
398      this.isDeviceLimitExemptionEnabledForNewUsers = isDeviceLimitExemptionEnabledForNewUsers;
399      return this;
400    }
401
402    public Builder isExternalCollaborationRestrictedForNewUsers(
403        EnterpriseConfigurationItemBooleanV2025R0 isExternalCollaborationRestrictedForNewUsers) {
404      this.isExternalCollaborationRestrictedForNewUsers =
405          isExternalCollaborationRestrictedForNewUsers;
406      return this;
407    }
408
409    public Builder isUnlimitedStorageEnabledForNewUsers(
410        EnterpriseConfigurationItemBooleanV2025R0 isUnlimitedStorageEnabledForNewUsers) {
411      this.isUnlimitedStorageEnabledForNewUsers = isUnlimitedStorageEnabledForNewUsers;
412      return this;
413    }
414
415    public Builder newUserDefaultStorageLimit(
416        EnterpriseConfigurationItemIntegerV2025R0 newUserDefaultStorageLimit) {
417      this.newUserDefaultStorageLimit = newUserDefaultStorageLimit;
418      return this;
419    }
420
421    public Builder newUserDefaultTimezone(
422        EnterpriseConfigurationItemStringV2025R0 newUserDefaultTimezone) {
423      this.newUserDefaultTimezone = newUserDefaultTimezone;
424      return this;
425    }
426
427    public Builder newUserDefaultLanguage(
428        EnterpriseConfigurationItemStringV2025R0 newUserDefaultLanguage) {
429      this.newUserDefaultLanguage = newUserDefaultLanguage;
430      return this;
431    }
432
433    public Builder isEnterpriseSsoRequired(
434        EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoRequired) {
435      this.isEnterpriseSsoRequired = isEnterpriseSsoRequired;
436      return this;
437    }
438
439    public Builder isEnterpriseSsoInTesting(
440        EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoInTesting) {
441      this.isEnterpriseSsoInTesting = isEnterpriseSsoInTesting;
442      return this;
443    }
444
445    public Builder isSsoAutoAddGroupsEnabled(
446        EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddGroupsEnabled) {
447      this.isSsoAutoAddGroupsEnabled = isSsoAutoAddGroupsEnabled;
448      return this;
449    }
450
451    public Builder isSsoAutoAddUserToGroupsEnabled(
452        EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddUserToGroupsEnabled) {
453      this.isSsoAutoAddUserToGroupsEnabled = isSsoAutoAddUserToGroupsEnabled;
454      return this;
455    }
456
457    public Builder isSsoAutoRemoveUserFromGroupsEnabled(
458        EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoRemoveUserFromGroupsEnabled) {
459      this.isSsoAutoRemoveUserFromGroupsEnabled = isSsoAutoRemoveUserFromGroupsEnabled;
460      return this;
461    }
462
463    public Builder userTrackingCodes(
464        EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField userTrackingCodes) {
465      this.userTrackingCodes = userTrackingCodes;
466      return this;
467    }
468
469    public Builder numberOfUserTrackingCodesRemaining(
470        EnterpriseConfigurationItemIntegerV2025R0 numberOfUserTrackingCodesRemaining) {
471      this.numberOfUserTrackingCodesRemaining = numberOfUserTrackingCodesRemaining;
472      return this;
473    }
474
475    public Builder isInstantLoginRestricted(
476        EnterpriseConfigurationItemBooleanV2025R0 isInstantLoginRestricted) {
477      this.isInstantLoginRestricted = isInstantLoginRestricted;
478      return this;
479    }
480
481    public EnterpriseConfigurationUserSettingsV2025R0 build() {
482      return new EnterpriseConfigurationUserSettingsV2025R0(this);
483    }
484  }
485}