001package com.box.sdkgen.client;
002
003import static com.box.sdkgen.internal.utils.UtilsManager.entryOf;
004import static com.box.sdkgen.internal.utils.UtilsManager.mapOf;
005
006import com.box.sdkgen.managers.ai.AiManager;
007import com.box.sdkgen.managers.aistudio.AiStudioManager;
008import com.box.sdkgen.managers.appitemassociations.AppItemAssociationsManager;
009import com.box.sdkgen.managers.archives.ArchivesManager;
010import com.box.sdkgen.managers.authorization.AuthorizationManager;
011import com.box.sdkgen.managers.automateworkflows.AutomateWorkflowsManager;
012import com.box.sdkgen.managers.avatars.AvatarsManager;
013import com.box.sdkgen.managers.chunkeduploads.ChunkedUploadsManager;
014import com.box.sdkgen.managers.classifications.ClassificationsManager;
015import com.box.sdkgen.managers.collaborationallowlistentries.CollaborationAllowlistEntriesManager;
016import com.box.sdkgen.managers.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargetsManager;
017import com.box.sdkgen.managers.collections.CollectionsManager;
018import com.box.sdkgen.managers.comments.CommentsManager;
019import com.box.sdkgen.managers.devicepinners.DevicePinnersManager;
020import com.box.sdkgen.managers.docgen.DocgenManager;
021import com.box.sdkgen.managers.docgentemplate.DocgenTemplateManager;
022import com.box.sdkgen.managers.downloads.DownloadsManager;
023import com.box.sdkgen.managers.emailaliases.EmailAliasesManager;
024import com.box.sdkgen.managers.enterpriseconfigurations.EnterpriseConfigurationsManager;
025import com.box.sdkgen.managers.events.EventsManager;
026import com.box.sdkgen.managers.externalusers.ExternalUsersManager;
027import com.box.sdkgen.managers.fileclassifications.FileClassificationsManager;
028import com.box.sdkgen.managers.filemetadata.FileMetadataManager;
029import com.box.sdkgen.managers.filerequests.FileRequestsManager;
030import com.box.sdkgen.managers.files.FilesManager;
031import com.box.sdkgen.managers.fileversionlegalholds.FileVersionLegalHoldsManager;
032import com.box.sdkgen.managers.fileversionretentions.FileVersionRetentionsManager;
033import com.box.sdkgen.managers.fileversions.FileVersionsManager;
034import com.box.sdkgen.managers.filewatermarks.FileWatermarksManager;
035import com.box.sdkgen.managers.folderclassifications.FolderClassificationsManager;
036import com.box.sdkgen.managers.folderlocks.FolderLocksManager;
037import com.box.sdkgen.managers.foldermetadata.FolderMetadataManager;
038import com.box.sdkgen.managers.folders.FoldersManager;
039import com.box.sdkgen.managers.folderwatermarks.FolderWatermarksManager;
040import com.box.sdkgen.managers.groups.GroupsManager;
041import com.box.sdkgen.managers.hubcollaborations.HubCollaborationsManager;
042import com.box.sdkgen.managers.hubdocument.HubDocumentManager;
043import com.box.sdkgen.managers.hubitems.HubItemsManager;
044import com.box.sdkgen.managers.hubs.HubsManager;
045import com.box.sdkgen.managers.integrationmappings.IntegrationMappingsManager;
046import com.box.sdkgen.managers.invites.InvitesManager;
047import com.box.sdkgen.managers.legalholdpolicies.LegalHoldPoliciesManager;
048import com.box.sdkgen.managers.legalholdpolicyassignments.LegalHoldPolicyAssignmentsManager;
049import com.box.sdkgen.managers.listcollaborations.ListCollaborationsManager;
050import com.box.sdkgen.managers.memberships.MembershipsManager;
051import com.box.sdkgen.managers.metadatacascadepolicies.MetadataCascadePoliciesManager;
052import com.box.sdkgen.managers.metadatataxonomies.MetadataTaxonomiesManager;
053import com.box.sdkgen.managers.metadatatemplates.MetadataTemplatesManager;
054import com.box.sdkgen.managers.recentitems.RecentItemsManager;
055import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager;
056import com.box.sdkgen.managers.retentionpolicyassignments.RetentionPolicyAssignmentsManager;
057import com.box.sdkgen.managers.search.SearchManager;
058import com.box.sdkgen.managers.sessiontermination.SessionTerminationManager;
059import com.box.sdkgen.managers.sharedlinksappitems.SharedLinksAppItemsManager;
060import com.box.sdkgen.managers.sharedlinksfiles.SharedLinksFilesManager;
061import com.box.sdkgen.managers.sharedlinksfolders.SharedLinksFoldersManager;
062import com.box.sdkgen.managers.sharedlinksweblinks.SharedLinksWebLinksManager;
063import com.box.sdkgen.managers.shieldinformationbarrierreports.ShieldInformationBarrierReportsManager;
064import com.box.sdkgen.managers.shieldinformationbarriers.ShieldInformationBarriersManager;
065import com.box.sdkgen.managers.shieldinformationbarriersegmentmembers.ShieldInformationBarrierSegmentMembersManager;
066import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.ShieldInformationBarrierSegmentRestrictionsManager;
067import com.box.sdkgen.managers.shieldinformationbarriersegments.ShieldInformationBarrierSegmentsManager;
068import com.box.sdkgen.managers.shieldlists.ShieldListsManager;
069import com.box.sdkgen.managers.signrequests.SignRequestsManager;
070import com.box.sdkgen.managers.signtemplates.SignTemplatesManager;
071import com.box.sdkgen.managers.skills.SkillsManager;
072import com.box.sdkgen.managers.storagepolicies.StoragePoliciesManager;
073import com.box.sdkgen.managers.storagepolicyassignments.StoragePolicyAssignmentsManager;
074import com.box.sdkgen.managers.taskassignments.TaskAssignmentsManager;
075import com.box.sdkgen.managers.tasks.TasksManager;
076import com.box.sdkgen.managers.termsofservices.TermsOfServicesManager;
077import com.box.sdkgen.managers.termsofserviceuserstatuses.TermsOfServiceUserStatusesManager;
078import com.box.sdkgen.managers.transfer.TransferManager;
079import com.box.sdkgen.managers.trashedfiles.TrashedFilesManager;
080import com.box.sdkgen.managers.trashedfolders.TrashedFoldersManager;
081import com.box.sdkgen.managers.trasheditems.TrashedItemsManager;
082import com.box.sdkgen.managers.trashedweblinks.TrashedWebLinksManager;
083import com.box.sdkgen.managers.uploads.UploadsManager;
084import com.box.sdkgen.managers.usercollaborations.UserCollaborationsManager;
085import com.box.sdkgen.managers.users.UsersManager;
086import com.box.sdkgen.managers.webhooks.WebhooksManager;
087import com.box.sdkgen.managers.weblinks.WebLinksManager;
088import com.box.sdkgen.managers.workflows.WorkflowsManager;
089import com.box.sdkgen.managers.zipdownloads.ZipDownloadsManager;
090import com.box.sdkgen.networking.auth.Authentication;
091import com.box.sdkgen.networking.baseurls.BaseUrls;
092import com.box.sdkgen.networking.fetchoptions.FetchOptions;
093import com.box.sdkgen.networking.fetchresponse.FetchResponse;
094import com.box.sdkgen.networking.interceptors.Interceptor;
095import com.box.sdkgen.networking.network.NetworkSession;
096import com.box.sdkgen.networking.proxyconfig.ProxyConfig;
097import com.box.sdkgen.networking.timeoutconfig.TimeoutConfig;
098import java.util.List;
099import java.util.Map;
100
101public class BoxClient {
102
103  public final Authentication auth;
104
105  public NetworkSession networkSession;
106
107  public final AuthorizationManager authorization;
108
109  public final FilesManager files;
110
111  public final TrashedFilesManager trashedFiles;
112
113  public final AppItemAssociationsManager appItemAssociations;
114
115  public final DownloadsManager downloads;
116
117  public final UploadsManager uploads;
118
119  public final ChunkedUploadsManager chunkedUploads;
120
121  public final ListCollaborationsManager listCollaborations;
122
123  public final CommentsManager comments;
124
125  public final TasksManager tasks;
126
127  public final FileVersionsManager fileVersions;
128
129  public final FileMetadataManager fileMetadata;
130
131  public final FileClassificationsManager fileClassifications;
132
133  public final SkillsManager skills;
134
135  public final FileWatermarksManager fileWatermarks;
136
137  public final FileRequestsManager fileRequests;
138
139  public final FoldersManager folders;
140
141  public final TrashedFoldersManager trashedFolders;
142
143  public final FolderMetadataManager folderMetadata;
144
145  public final FolderClassificationsManager folderClassifications;
146
147  public final TrashedItemsManager trashedItems;
148
149  public final FolderWatermarksManager folderWatermarks;
150
151  public final FolderLocksManager folderLocks;
152
153  public final MetadataTemplatesManager metadataTemplates;
154
155  public final ClassificationsManager classifications;
156
157  public final MetadataCascadePoliciesManager metadataCascadePolicies;
158
159  public final SearchManager search;
160
161  public final UserCollaborationsManager userCollaborations;
162
163  public final TaskAssignmentsManager taskAssignments;
164
165  public final SharedLinksFilesManager sharedLinksFiles;
166
167  public final SharedLinksFoldersManager sharedLinksFolders;
168
169  public final WebLinksManager webLinks;
170
171  public final TrashedWebLinksManager trashedWebLinks;
172
173  public final SharedLinksWebLinksManager sharedLinksWebLinks;
174
175  public final SharedLinksAppItemsManager sharedLinksAppItems;
176
177  public final UsersManager users;
178
179  public final SessionTerminationManager sessionTermination;
180
181  public final AvatarsManager avatars;
182
183  public final TransferManager transfer;
184
185  public final EmailAliasesManager emailAliases;
186
187  public final MembershipsManager memberships;
188
189  public final InvitesManager invites;
190
191  public final GroupsManager groups;
192
193  public final WebhooksManager webhooks;
194
195  public final EventsManager events;
196
197  public final CollectionsManager collections;
198
199  public final RecentItemsManager recentItems;
200
201  public final RetentionPoliciesManager retentionPolicies;
202
203  public final RetentionPolicyAssignmentsManager retentionPolicyAssignments;
204
205  public final LegalHoldPoliciesManager legalHoldPolicies;
206
207  public final LegalHoldPolicyAssignmentsManager legalHoldPolicyAssignments;
208
209  public final FileVersionRetentionsManager fileVersionRetentions;
210
211  public final FileVersionLegalHoldsManager fileVersionLegalHolds;
212
213  public final ShieldInformationBarriersManager shieldInformationBarriers;
214
215  public final ShieldInformationBarrierReportsManager shieldInformationBarrierReports;
216
217  public final ShieldInformationBarrierSegmentsManager shieldInformationBarrierSegments;
218
219  public final ShieldInformationBarrierSegmentMembersManager shieldInformationBarrierSegmentMembers;
220
221  public final ShieldInformationBarrierSegmentRestrictionsManager
222      shieldInformationBarrierSegmentRestrictions;
223
224  public final DevicePinnersManager devicePinners;
225
226  public final TermsOfServicesManager termsOfServices;
227
228  public final TermsOfServiceUserStatusesManager termsOfServiceUserStatuses;
229
230  public final CollaborationAllowlistEntriesManager collaborationAllowlistEntries;
231
232  public final CollaborationAllowlistExemptTargetsManager collaborationAllowlistExemptTargets;
233
234  public final StoragePoliciesManager storagePolicies;
235
236  public final StoragePolicyAssignmentsManager storagePolicyAssignments;
237
238  public final ZipDownloadsManager zipDownloads;
239
240  public final SignRequestsManager signRequests;
241
242  public final WorkflowsManager workflows;
243
244  public final SignTemplatesManager signTemplates;
245
246  public final IntegrationMappingsManager integrationMappings;
247
248  public final AiManager ai;
249
250  public final AiStudioManager aiStudio;
251
252  public final MetadataTaxonomiesManager metadataTaxonomies;
253
254  public final DocgenTemplateManager docgenTemplate;
255
256  public final DocgenManager docgen;
257
258  public final EnterpriseConfigurationsManager enterpriseConfigurations;
259
260  public final HubsManager hubs;
261
262  public final HubCollaborationsManager hubCollaborations;
263
264  public final HubItemsManager hubItems;
265
266  public final HubDocumentManager hubDocument;
267
268  public final ShieldListsManager shieldLists;
269
270  public final ArchivesManager archives;
271
272  public final ExternalUsersManager externalUsers;
273
274  public final AutomateWorkflowsManager automateWorkflows;
275
276  public BoxClient(Authentication auth) {
277    this.auth = auth;
278    this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build();
279    this.authorization =
280        new AuthorizationManager.Builder()
281            .auth(this.auth)
282            .networkSession(this.networkSession)
283            .build();
284    this.files =
285        new FilesManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
286    this.trashedFiles =
287        new TrashedFilesManager.Builder()
288            .auth(this.auth)
289            .networkSession(this.networkSession)
290            .build();
291    this.appItemAssociations =
292        new AppItemAssociationsManager.Builder()
293            .auth(this.auth)
294            .networkSession(this.networkSession)
295            .build();
296    this.downloads =
297        new DownloadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
298    this.uploads =
299        new UploadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
300    this.chunkedUploads =
301        new ChunkedUploadsManager.Builder()
302            .auth(this.auth)
303            .networkSession(this.networkSession)
304            .build();
305    this.listCollaborations =
306        new ListCollaborationsManager.Builder()
307            .auth(this.auth)
308            .networkSession(this.networkSession)
309            .build();
310    this.comments =
311        new CommentsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
312    this.tasks =
313        new TasksManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
314    this.fileVersions =
315        new FileVersionsManager.Builder()
316            .auth(this.auth)
317            .networkSession(this.networkSession)
318            .build();
319    this.fileMetadata =
320        new FileMetadataManager.Builder()
321            .auth(this.auth)
322            .networkSession(this.networkSession)
323            .build();
324    this.fileClassifications =
325        new FileClassificationsManager.Builder()
326            .auth(this.auth)
327            .networkSession(this.networkSession)
328            .build();
329    this.skills =
330        new SkillsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
331    this.fileWatermarks =
332        new FileWatermarksManager.Builder()
333            .auth(this.auth)
334            .networkSession(this.networkSession)
335            .build();
336    this.fileRequests =
337        new FileRequestsManager.Builder()
338            .auth(this.auth)
339            .networkSession(this.networkSession)
340            .build();
341    this.folders =
342        new FoldersManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
343    this.trashedFolders =
344        new TrashedFoldersManager.Builder()
345            .auth(this.auth)
346            .networkSession(this.networkSession)
347            .build();
348    this.folderMetadata =
349        new FolderMetadataManager.Builder()
350            .auth(this.auth)
351            .networkSession(this.networkSession)
352            .build();
353    this.folderClassifications =
354        new FolderClassificationsManager.Builder()
355            .auth(this.auth)
356            .networkSession(this.networkSession)
357            .build();
358    this.trashedItems =
359        new TrashedItemsManager.Builder()
360            .auth(this.auth)
361            .networkSession(this.networkSession)
362            .build();
363    this.folderWatermarks =
364        new FolderWatermarksManager.Builder()
365            .auth(this.auth)
366            .networkSession(this.networkSession)
367            .build();
368    this.folderLocks =
369        new FolderLocksManager.Builder()
370            .auth(this.auth)
371            .networkSession(this.networkSession)
372            .build();
373    this.metadataTemplates =
374        new MetadataTemplatesManager.Builder()
375            .auth(this.auth)
376            .networkSession(this.networkSession)
377            .build();
378    this.classifications =
379        new ClassificationsManager.Builder()
380            .auth(this.auth)
381            .networkSession(this.networkSession)
382            .build();
383    this.metadataCascadePolicies =
384        new MetadataCascadePoliciesManager.Builder()
385            .auth(this.auth)
386            .networkSession(this.networkSession)
387            .build();
388    this.search =
389        new SearchManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
390    this.userCollaborations =
391        new UserCollaborationsManager.Builder()
392            .auth(this.auth)
393            .networkSession(this.networkSession)
394            .build();
395    this.taskAssignments =
396        new TaskAssignmentsManager.Builder()
397            .auth(this.auth)
398            .networkSession(this.networkSession)
399            .build();
400    this.sharedLinksFiles =
401        new SharedLinksFilesManager.Builder()
402            .auth(this.auth)
403            .networkSession(this.networkSession)
404            .build();
405    this.sharedLinksFolders =
406        new SharedLinksFoldersManager.Builder()
407            .auth(this.auth)
408            .networkSession(this.networkSession)
409            .build();
410    this.webLinks =
411        new WebLinksManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
412    this.trashedWebLinks =
413        new TrashedWebLinksManager.Builder()
414            .auth(this.auth)
415            .networkSession(this.networkSession)
416            .build();
417    this.sharedLinksWebLinks =
418        new SharedLinksWebLinksManager.Builder()
419            .auth(this.auth)
420            .networkSession(this.networkSession)
421            .build();
422    this.sharedLinksAppItems =
423        new SharedLinksAppItemsManager.Builder()
424            .auth(this.auth)
425            .networkSession(this.networkSession)
426            .build();
427    this.users =
428        new UsersManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
429    this.sessionTermination =
430        new SessionTerminationManager.Builder()
431            .auth(this.auth)
432            .networkSession(this.networkSession)
433            .build();
434    this.avatars =
435        new AvatarsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
436    this.transfer =
437        new TransferManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
438    this.emailAliases =
439        new EmailAliasesManager.Builder()
440            .auth(this.auth)
441            .networkSession(this.networkSession)
442            .build();
443    this.memberships =
444        new MembershipsManager.Builder()
445            .auth(this.auth)
446            .networkSession(this.networkSession)
447            .build();
448    this.invites =
449        new InvitesManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
450    this.groups =
451        new GroupsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
452    this.webhooks =
453        new WebhooksManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
454    this.events =
455        new EventsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
456    this.collections =
457        new CollectionsManager.Builder()
458            .auth(this.auth)
459            .networkSession(this.networkSession)
460            .build();
461    this.recentItems =
462        new RecentItemsManager.Builder()
463            .auth(this.auth)
464            .networkSession(this.networkSession)
465            .build();
466    this.retentionPolicies =
467        new RetentionPoliciesManager.Builder()
468            .auth(this.auth)
469            .networkSession(this.networkSession)
470            .build();
471    this.retentionPolicyAssignments =
472        new RetentionPolicyAssignmentsManager.Builder()
473            .auth(this.auth)
474            .networkSession(this.networkSession)
475            .build();
476    this.legalHoldPolicies =
477        new LegalHoldPoliciesManager.Builder()
478            .auth(this.auth)
479            .networkSession(this.networkSession)
480            .build();
481    this.legalHoldPolicyAssignments =
482        new LegalHoldPolicyAssignmentsManager.Builder()
483            .auth(this.auth)
484            .networkSession(this.networkSession)
485            .build();
486    this.fileVersionRetentions =
487        new FileVersionRetentionsManager.Builder()
488            .auth(this.auth)
489            .networkSession(this.networkSession)
490            .build();
491    this.fileVersionLegalHolds =
492        new FileVersionLegalHoldsManager.Builder()
493            .auth(this.auth)
494            .networkSession(this.networkSession)
495            .build();
496    this.shieldInformationBarriers =
497        new ShieldInformationBarriersManager.Builder()
498            .auth(this.auth)
499            .networkSession(this.networkSession)
500            .build();
501    this.shieldInformationBarrierReports =
502        new ShieldInformationBarrierReportsManager.Builder()
503            .auth(this.auth)
504            .networkSession(this.networkSession)
505            .build();
506    this.shieldInformationBarrierSegments =
507        new ShieldInformationBarrierSegmentsManager.Builder()
508            .auth(this.auth)
509            .networkSession(this.networkSession)
510            .build();
511    this.shieldInformationBarrierSegmentMembers =
512        new ShieldInformationBarrierSegmentMembersManager.Builder()
513            .auth(this.auth)
514            .networkSession(this.networkSession)
515            .build();
516    this.shieldInformationBarrierSegmentRestrictions =
517        new ShieldInformationBarrierSegmentRestrictionsManager.Builder()
518            .auth(this.auth)
519            .networkSession(this.networkSession)
520            .build();
521    this.devicePinners =
522        new DevicePinnersManager.Builder()
523            .auth(this.auth)
524            .networkSession(this.networkSession)
525            .build();
526    this.termsOfServices =
527        new TermsOfServicesManager.Builder()
528            .auth(this.auth)
529            .networkSession(this.networkSession)
530            .build();
531    this.termsOfServiceUserStatuses =
532        new TermsOfServiceUserStatusesManager.Builder()
533            .auth(this.auth)
534            .networkSession(this.networkSession)
535            .build();
536    this.collaborationAllowlistEntries =
537        new CollaborationAllowlistEntriesManager.Builder()
538            .auth(this.auth)
539            .networkSession(this.networkSession)
540            .build();
541    this.collaborationAllowlistExemptTargets =
542        new CollaborationAllowlistExemptTargetsManager.Builder()
543            .auth(this.auth)
544            .networkSession(this.networkSession)
545            .build();
546    this.storagePolicies =
547        new StoragePoliciesManager.Builder()
548            .auth(this.auth)
549            .networkSession(this.networkSession)
550            .build();
551    this.storagePolicyAssignments =
552        new StoragePolicyAssignmentsManager.Builder()
553            .auth(this.auth)
554            .networkSession(this.networkSession)
555            .build();
556    this.zipDownloads =
557        new ZipDownloadsManager.Builder()
558            .auth(this.auth)
559            .networkSession(this.networkSession)
560            .build();
561    this.signRequests =
562        new SignRequestsManager.Builder()
563            .auth(this.auth)
564            .networkSession(this.networkSession)
565            .build();
566    this.workflows =
567        new WorkflowsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
568    this.signTemplates =
569        new SignTemplatesManager.Builder()
570            .auth(this.auth)
571            .networkSession(this.networkSession)
572            .build();
573    this.integrationMappings =
574        new IntegrationMappingsManager.Builder()
575            .auth(this.auth)
576            .networkSession(this.networkSession)
577            .build();
578    this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
579    this.aiStudio =
580        new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
581    this.metadataTaxonomies =
582        new MetadataTaxonomiesManager.Builder()
583            .auth(this.auth)
584            .networkSession(this.networkSession)
585            .build();
586    this.docgenTemplate =
587        new DocgenTemplateManager.Builder()
588            .auth(this.auth)
589            .networkSession(this.networkSession)
590            .build();
591    this.docgen =
592        new DocgenManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
593    this.enterpriseConfigurations =
594        new EnterpriseConfigurationsManager.Builder()
595            .auth(this.auth)
596            .networkSession(this.networkSession)
597            .build();
598    this.hubs =
599        new HubsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
600    this.hubCollaborations =
601        new HubCollaborationsManager.Builder()
602            .auth(this.auth)
603            .networkSession(this.networkSession)
604            .build();
605    this.hubItems =
606        new HubItemsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
607    this.hubDocument =
608        new HubDocumentManager.Builder()
609            .auth(this.auth)
610            .networkSession(this.networkSession)
611            .build();
612    this.shieldLists =
613        new ShieldListsManager.Builder()
614            .auth(this.auth)
615            .networkSession(this.networkSession)
616            .build();
617    this.archives =
618        new ArchivesManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
619    this.externalUsers =
620        new ExternalUsersManager.Builder()
621            .auth(this.auth)
622            .networkSession(this.networkSession)
623            .build();
624    this.automateWorkflows =
625        new AutomateWorkflowsManager.Builder()
626            .auth(this.auth)
627            .networkSession(this.networkSession)
628            .build();
629  }
630
631  protected BoxClient(Builder builder) {
632    this.auth = builder.auth;
633    this.networkSession = builder.networkSession;
634    this.authorization =
635        new AuthorizationManager.Builder()
636            .auth(this.auth)
637            .networkSession(this.networkSession)
638            .build();
639    this.files =
640        new FilesManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
641    this.trashedFiles =
642        new TrashedFilesManager.Builder()
643            .auth(this.auth)
644            .networkSession(this.networkSession)
645            .build();
646    this.appItemAssociations =
647        new AppItemAssociationsManager.Builder()
648            .auth(this.auth)
649            .networkSession(this.networkSession)
650            .build();
651    this.downloads =
652        new DownloadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
653    this.uploads =
654        new UploadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
655    this.chunkedUploads =
656        new ChunkedUploadsManager.Builder()
657            .auth(this.auth)
658            .networkSession(this.networkSession)
659            .build();
660    this.listCollaborations =
661        new ListCollaborationsManager.Builder()
662            .auth(this.auth)
663            .networkSession(this.networkSession)
664            .build();
665    this.comments =
666        new CommentsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
667    this.tasks =
668        new TasksManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
669    this.fileVersions =
670        new FileVersionsManager.Builder()
671            .auth(this.auth)
672            .networkSession(this.networkSession)
673            .build();
674    this.fileMetadata =
675        new FileMetadataManager.Builder()
676            .auth(this.auth)
677            .networkSession(this.networkSession)
678            .build();
679    this.fileClassifications =
680        new FileClassificationsManager.Builder()
681            .auth(this.auth)
682            .networkSession(this.networkSession)
683            .build();
684    this.skills =
685        new SkillsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
686    this.fileWatermarks =
687        new FileWatermarksManager.Builder()
688            .auth(this.auth)
689            .networkSession(this.networkSession)
690            .build();
691    this.fileRequests =
692        new FileRequestsManager.Builder()
693            .auth(this.auth)
694            .networkSession(this.networkSession)
695            .build();
696    this.folders =
697        new FoldersManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
698    this.trashedFolders =
699        new TrashedFoldersManager.Builder()
700            .auth(this.auth)
701            .networkSession(this.networkSession)
702            .build();
703    this.folderMetadata =
704        new FolderMetadataManager.Builder()
705            .auth(this.auth)
706            .networkSession(this.networkSession)
707            .build();
708    this.folderClassifications =
709        new FolderClassificationsManager.Builder()
710            .auth(this.auth)
711            .networkSession(this.networkSession)
712            .build();
713    this.trashedItems =
714        new TrashedItemsManager.Builder()
715            .auth(this.auth)
716            .networkSession(this.networkSession)
717            .build();
718    this.folderWatermarks =
719        new FolderWatermarksManager.Builder()
720            .auth(this.auth)
721            .networkSession(this.networkSession)
722            .build();
723    this.folderLocks =
724        new FolderLocksManager.Builder()
725            .auth(this.auth)
726            .networkSession(this.networkSession)
727            .build();
728    this.metadataTemplates =
729        new MetadataTemplatesManager.Builder()
730            .auth(this.auth)
731            .networkSession(this.networkSession)
732            .build();
733    this.classifications =
734        new ClassificationsManager.Builder()
735            .auth(this.auth)
736            .networkSession(this.networkSession)
737            .build();
738    this.metadataCascadePolicies =
739        new MetadataCascadePoliciesManager.Builder()
740            .auth(this.auth)
741            .networkSession(this.networkSession)
742            .build();
743    this.search =
744        new SearchManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
745    this.userCollaborations =
746        new UserCollaborationsManager.Builder()
747            .auth(this.auth)
748            .networkSession(this.networkSession)
749            .build();
750    this.taskAssignments =
751        new TaskAssignmentsManager.Builder()
752            .auth(this.auth)
753            .networkSession(this.networkSession)
754            .build();
755    this.sharedLinksFiles =
756        new SharedLinksFilesManager.Builder()
757            .auth(this.auth)
758            .networkSession(this.networkSession)
759            .build();
760    this.sharedLinksFolders =
761        new SharedLinksFoldersManager.Builder()
762            .auth(this.auth)
763            .networkSession(this.networkSession)
764            .build();
765    this.webLinks =
766        new WebLinksManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
767    this.trashedWebLinks =
768        new TrashedWebLinksManager.Builder()
769            .auth(this.auth)
770            .networkSession(this.networkSession)
771            .build();
772    this.sharedLinksWebLinks =
773        new SharedLinksWebLinksManager.Builder()
774            .auth(this.auth)
775            .networkSession(this.networkSession)
776            .build();
777    this.sharedLinksAppItems =
778        new SharedLinksAppItemsManager.Builder()
779            .auth(this.auth)
780            .networkSession(this.networkSession)
781            .build();
782    this.users =
783        new UsersManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
784    this.sessionTermination =
785        new SessionTerminationManager.Builder()
786            .auth(this.auth)
787            .networkSession(this.networkSession)
788            .build();
789    this.avatars =
790        new AvatarsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
791    this.transfer =
792        new TransferManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
793    this.emailAliases =
794        new EmailAliasesManager.Builder()
795            .auth(this.auth)
796            .networkSession(this.networkSession)
797            .build();
798    this.memberships =
799        new MembershipsManager.Builder()
800            .auth(this.auth)
801            .networkSession(this.networkSession)
802            .build();
803    this.invites =
804        new InvitesManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
805    this.groups =
806        new GroupsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
807    this.webhooks =
808        new WebhooksManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
809    this.events =
810        new EventsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
811    this.collections =
812        new CollectionsManager.Builder()
813            .auth(this.auth)
814            .networkSession(this.networkSession)
815            .build();
816    this.recentItems =
817        new RecentItemsManager.Builder()
818            .auth(this.auth)
819            .networkSession(this.networkSession)
820            .build();
821    this.retentionPolicies =
822        new RetentionPoliciesManager.Builder()
823            .auth(this.auth)
824            .networkSession(this.networkSession)
825            .build();
826    this.retentionPolicyAssignments =
827        new RetentionPolicyAssignmentsManager.Builder()
828            .auth(this.auth)
829            .networkSession(this.networkSession)
830            .build();
831    this.legalHoldPolicies =
832        new LegalHoldPoliciesManager.Builder()
833            .auth(this.auth)
834            .networkSession(this.networkSession)
835            .build();
836    this.legalHoldPolicyAssignments =
837        new LegalHoldPolicyAssignmentsManager.Builder()
838            .auth(this.auth)
839            .networkSession(this.networkSession)
840            .build();
841    this.fileVersionRetentions =
842        new FileVersionRetentionsManager.Builder()
843            .auth(this.auth)
844            .networkSession(this.networkSession)
845            .build();
846    this.fileVersionLegalHolds =
847        new FileVersionLegalHoldsManager.Builder()
848            .auth(this.auth)
849            .networkSession(this.networkSession)
850            .build();
851    this.shieldInformationBarriers =
852        new ShieldInformationBarriersManager.Builder()
853            .auth(this.auth)
854            .networkSession(this.networkSession)
855            .build();
856    this.shieldInformationBarrierReports =
857        new ShieldInformationBarrierReportsManager.Builder()
858            .auth(this.auth)
859            .networkSession(this.networkSession)
860            .build();
861    this.shieldInformationBarrierSegments =
862        new ShieldInformationBarrierSegmentsManager.Builder()
863            .auth(this.auth)
864            .networkSession(this.networkSession)
865            .build();
866    this.shieldInformationBarrierSegmentMembers =
867        new ShieldInformationBarrierSegmentMembersManager.Builder()
868            .auth(this.auth)
869            .networkSession(this.networkSession)
870            .build();
871    this.shieldInformationBarrierSegmentRestrictions =
872        new ShieldInformationBarrierSegmentRestrictionsManager.Builder()
873            .auth(this.auth)
874            .networkSession(this.networkSession)
875            .build();
876    this.devicePinners =
877        new DevicePinnersManager.Builder()
878            .auth(this.auth)
879            .networkSession(this.networkSession)
880            .build();
881    this.termsOfServices =
882        new TermsOfServicesManager.Builder()
883            .auth(this.auth)
884            .networkSession(this.networkSession)
885            .build();
886    this.termsOfServiceUserStatuses =
887        new TermsOfServiceUserStatusesManager.Builder()
888            .auth(this.auth)
889            .networkSession(this.networkSession)
890            .build();
891    this.collaborationAllowlistEntries =
892        new CollaborationAllowlistEntriesManager.Builder()
893            .auth(this.auth)
894            .networkSession(this.networkSession)
895            .build();
896    this.collaborationAllowlistExemptTargets =
897        new CollaborationAllowlistExemptTargetsManager.Builder()
898            .auth(this.auth)
899            .networkSession(this.networkSession)
900            .build();
901    this.storagePolicies =
902        new StoragePoliciesManager.Builder()
903            .auth(this.auth)
904            .networkSession(this.networkSession)
905            .build();
906    this.storagePolicyAssignments =
907        new StoragePolicyAssignmentsManager.Builder()
908            .auth(this.auth)
909            .networkSession(this.networkSession)
910            .build();
911    this.zipDownloads =
912        new ZipDownloadsManager.Builder()
913            .auth(this.auth)
914            .networkSession(this.networkSession)
915            .build();
916    this.signRequests =
917        new SignRequestsManager.Builder()
918            .auth(this.auth)
919            .networkSession(this.networkSession)
920            .build();
921    this.workflows =
922        new WorkflowsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
923    this.signTemplates =
924        new SignTemplatesManager.Builder()
925            .auth(this.auth)
926            .networkSession(this.networkSession)
927            .build();
928    this.integrationMappings =
929        new IntegrationMappingsManager.Builder()
930            .auth(this.auth)
931            .networkSession(this.networkSession)
932            .build();
933    this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
934    this.aiStudio =
935        new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
936    this.metadataTaxonomies =
937        new MetadataTaxonomiesManager.Builder()
938            .auth(this.auth)
939            .networkSession(this.networkSession)
940            .build();
941    this.docgenTemplate =
942        new DocgenTemplateManager.Builder()
943            .auth(this.auth)
944            .networkSession(this.networkSession)
945            .build();
946    this.docgen =
947        new DocgenManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
948    this.enterpriseConfigurations =
949        new EnterpriseConfigurationsManager.Builder()
950            .auth(this.auth)
951            .networkSession(this.networkSession)
952            .build();
953    this.hubs =
954        new HubsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
955    this.hubCollaborations =
956        new HubCollaborationsManager.Builder()
957            .auth(this.auth)
958            .networkSession(this.networkSession)
959            .build();
960    this.hubItems =
961        new HubItemsManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
962    this.hubDocument =
963        new HubDocumentManager.Builder()
964            .auth(this.auth)
965            .networkSession(this.networkSession)
966            .build();
967    this.shieldLists =
968        new ShieldListsManager.Builder()
969            .auth(this.auth)
970            .networkSession(this.networkSession)
971            .build();
972    this.archives =
973        new ArchivesManager.Builder().auth(this.auth).networkSession(this.networkSession).build();
974    this.externalUsers =
975        new ExternalUsersManager.Builder()
976            .auth(this.auth)
977            .networkSession(this.networkSession)
978            .build();
979    this.automateWorkflows =
980        new AutomateWorkflowsManager.Builder()
981            .auth(this.auth)
982            .networkSession(this.networkSession)
983            .build();
984  }
985
986  /**
987   * Make a custom http request using the client authentication and network session.
988   *
989   * @param fetchOptions Options to be passed to the fetch call
990   */
991  public FetchResponse makeRequest(FetchOptions fetchOptions) {
992    Authentication auth = (fetchOptions.getAuth() == null ? this.auth : fetchOptions.getAuth());
993    NetworkSession networkSession =
994        (fetchOptions.getNetworkSession() == null
995            ? this.networkSession
996            : fetchOptions.getNetworkSession());
997    FetchOptions enrichedFetchOptions =
998        new FetchOptions.Builder(fetchOptions.getUrl(), fetchOptions.getMethod())
999            .params(fetchOptions.getParams())
1000            .headers(fetchOptions.getHeaders())
1001            .data(fetchOptions.getData())
1002            .fileStream(fetchOptions.getFileStream())
1003            .multipartData(fetchOptions.getMultipartData())
1004            .contentType(fetchOptions.getContentType())
1005            .responseFormat(fetchOptions.getResponseFormat())
1006            .auth(auth)
1007            .networkSession(networkSession)
1008            .followRedirects(fetchOptions.getFollowRedirects())
1009            .build();
1010    return networkSession.getNetworkClient().fetch(enrichedFetchOptions);
1011  }
1012
1013  /**
1014   * Create a new client to impersonate user with the provided ID. All calls made with the new
1015   * client will be made in context of the impersonated user, leaving the original client
1016   * unmodified.
1017   *
1018   * @param userId ID of an user to impersonate
1019   */
1020  public BoxClient withAsUserHeader(String userId) {
1021    return new BoxClient.Builder(this.auth)
1022        .networkSession(
1023            this.networkSession.withAdditionalHeaders(mapOf(entryOf("As-User", userId))))
1024        .build();
1025  }
1026
1027  /**
1028   * Create a new client with suppressed notifications. Calls made with the new client will not
1029   * trigger email or webhook notifications
1030   */
1031  public BoxClient withSuppressedNotifications() {
1032    return new BoxClient.Builder(this.auth)
1033        .networkSession(
1034            this.networkSession.withAdditionalHeaders(mapOf(entryOf("Box-Notifications", "off"))))
1035        .build();
1036  }
1037
1038  /** Create a new client with a custom set of headers that will be included in every API call */
1039  public BoxClient withExtraHeaders() {
1040    return withExtraHeaders(mapOf());
1041  }
1042
1043  /**
1044   * Create a new client with a custom set of headers that will be included in every API call
1045   *
1046   * @param extraHeaders Custom set of headers that will be included in every API call
1047   */
1048  public BoxClient withExtraHeaders(Map<String, String> extraHeaders) {
1049    return new BoxClient.Builder(this.auth)
1050        .networkSession(this.networkSession.withAdditionalHeaders(extraHeaders))
1051        .build();
1052  }
1053
1054  /**
1055   * Create a new client with a custom set of base urls that will be used for every API call
1056   *
1057   * @param baseUrls Custom set of base urls that will be used for every API call
1058   */
1059  public BoxClient withCustomBaseUrls(BaseUrls baseUrls) {
1060    return new BoxClient.Builder(this.auth)
1061        .networkSession(this.networkSession.withCustomBaseUrls(baseUrls))
1062        .build();
1063  }
1064
1065  /**
1066   * Create a new client with a custom proxy that will be used for every API call
1067   *
1068   * @param config The config parameter
1069   */
1070  public BoxClient withProxy(ProxyConfig config) {
1071    return new BoxClient.Builder(this.auth)
1072        .networkSession(this.networkSession.withProxy(config))
1073        .build();
1074  }
1075
1076  /**
1077   * Create a new client with custom timeouts that will be used for every API call
1078   *
1079   * @param config Timeout configuration.
1080   */
1081  public BoxClient withTimeouts(TimeoutConfig config) {
1082    return new BoxClient.Builder(this.auth)
1083        .networkSession(this.networkSession.withTimeoutConfig(config))
1084        .build();
1085  }
1086
1087  /**
1088   * Create a new client with a custom set of interceptors that will be used for every API call
1089   *
1090   * @param interceptors Custom set of interceptors that will be used for every API call
1091   */
1092  public BoxClient withInterceptors(List<Interceptor> interceptors) {
1093    return new BoxClient.Builder(this.auth)
1094        .networkSession(this.networkSession.withInterceptors(interceptors))
1095        .build();
1096  }
1097
1098  public Authentication getAuth() {
1099    return auth;
1100  }
1101
1102  public NetworkSession getNetworkSession() {
1103    return networkSession;
1104  }
1105
1106  public AuthorizationManager getAuthorization() {
1107    return authorization;
1108  }
1109
1110  public FilesManager getFiles() {
1111    return files;
1112  }
1113
1114  public TrashedFilesManager getTrashedFiles() {
1115    return trashedFiles;
1116  }
1117
1118  public AppItemAssociationsManager getAppItemAssociations() {
1119    return appItemAssociations;
1120  }
1121
1122  public DownloadsManager getDownloads() {
1123    return downloads;
1124  }
1125
1126  public UploadsManager getUploads() {
1127    return uploads;
1128  }
1129
1130  public ChunkedUploadsManager getChunkedUploads() {
1131    return chunkedUploads;
1132  }
1133
1134  public ListCollaborationsManager getListCollaborations() {
1135    return listCollaborations;
1136  }
1137
1138  public CommentsManager getComments() {
1139    return comments;
1140  }
1141
1142  public TasksManager getTasks() {
1143    return tasks;
1144  }
1145
1146  public FileVersionsManager getFileVersions() {
1147    return fileVersions;
1148  }
1149
1150  public FileMetadataManager getFileMetadata() {
1151    return fileMetadata;
1152  }
1153
1154  public FileClassificationsManager getFileClassifications() {
1155    return fileClassifications;
1156  }
1157
1158  public SkillsManager getSkills() {
1159    return skills;
1160  }
1161
1162  public FileWatermarksManager getFileWatermarks() {
1163    return fileWatermarks;
1164  }
1165
1166  public FileRequestsManager getFileRequests() {
1167    return fileRequests;
1168  }
1169
1170  public FoldersManager getFolders() {
1171    return folders;
1172  }
1173
1174  public TrashedFoldersManager getTrashedFolders() {
1175    return trashedFolders;
1176  }
1177
1178  public FolderMetadataManager getFolderMetadata() {
1179    return folderMetadata;
1180  }
1181
1182  public FolderClassificationsManager getFolderClassifications() {
1183    return folderClassifications;
1184  }
1185
1186  public TrashedItemsManager getTrashedItems() {
1187    return trashedItems;
1188  }
1189
1190  public FolderWatermarksManager getFolderWatermarks() {
1191    return folderWatermarks;
1192  }
1193
1194  public FolderLocksManager getFolderLocks() {
1195    return folderLocks;
1196  }
1197
1198  public MetadataTemplatesManager getMetadataTemplates() {
1199    return metadataTemplates;
1200  }
1201
1202  public ClassificationsManager getClassifications() {
1203    return classifications;
1204  }
1205
1206  public MetadataCascadePoliciesManager getMetadataCascadePolicies() {
1207    return metadataCascadePolicies;
1208  }
1209
1210  public SearchManager getSearch() {
1211    return search;
1212  }
1213
1214  public UserCollaborationsManager getUserCollaborations() {
1215    return userCollaborations;
1216  }
1217
1218  public TaskAssignmentsManager getTaskAssignments() {
1219    return taskAssignments;
1220  }
1221
1222  public SharedLinksFilesManager getSharedLinksFiles() {
1223    return sharedLinksFiles;
1224  }
1225
1226  public SharedLinksFoldersManager getSharedLinksFolders() {
1227    return sharedLinksFolders;
1228  }
1229
1230  public WebLinksManager getWebLinks() {
1231    return webLinks;
1232  }
1233
1234  public TrashedWebLinksManager getTrashedWebLinks() {
1235    return trashedWebLinks;
1236  }
1237
1238  public SharedLinksWebLinksManager getSharedLinksWebLinks() {
1239    return sharedLinksWebLinks;
1240  }
1241
1242  public SharedLinksAppItemsManager getSharedLinksAppItems() {
1243    return sharedLinksAppItems;
1244  }
1245
1246  public UsersManager getUsers() {
1247    return users;
1248  }
1249
1250  public SessionTerminationManager getSessionTermination() {
1251    return sessionTermination;
1252  }
1253
1254  public AvatarsManager getAvatars() {
1255    return avatars;
1256  }
1257
1258  public TransferManager getTransfer() {
1259    return transfer;
1260  }
1261
1262  public EmailAliasesManager getEmailAliases() {
1263    return emailAliases;
1264  }
1265
1266  public MembershipsManager getMemberships() {
1267    return memberships;
1268  }
1269
1270  public InvitesManager getInvites() {
1271    return invites;
1272  }
1273
1274  public GroupsManager getGroups() {
1275    return groups;
1276  }
1277
1278  public WebhooksManager getWebhooks() {
1279    return webhooks;
1280  }
1281
1282  public EventsManager getEvents() {
1283    return events;
1284  }
1285
1286  public CollectionsManager getCollections() {
1287    return collections;
1288  }
1289
1290  public RecentItemsManager getRecentItems() {
1291    return recentItems;
1292  }
1293
1294  public RetentionPoliciesManager getRetentionPolicies() {
1295    return retentionPolicies;
1296  }
1297
1298  public RetentionPolicyAssignmentsManager getRetentionPolicyAssignments() {
1299    return retentionPolicyAssignments;
1300  }
1301
1302  public LegalHoldPoliciesManager getLegalHoldPolicies() {
1303    return legalHoldPolicies;
1304  }
1305
1306  public LegalHoldPolicyAssignmentsManager getLegalHoldPolicyAssignments() {
1307    return legalHoldPolicyAssignments;
1308  }
1309
1310  public FileVersionRetentionsManager getFileVersionRetentions() {
1311    return fileVersionRetentions;
1312  }
1313
1314  public FileVersionLegalHoldsManager getFileVersionLegalHolds() {
1315    return fileVersionLegalHolds;
1316  }
1317
1318  public ShieldInformationBarriersManager getShieldInformationBarriers() {
1319    return shieldInformationBarriers;
1320  }
1321
1322  public ShieldInformationBarrierReportsManager getShieldInformationBarrierReports() {
1323    return shieldInformationBarrierReports;
1324  }
1325
1326  public ShieldInformationBarrierSegmentsManager getShieldInformationBarrierSegments() {
1327    return shieldInformationBarrierSegments;
1328  }
1329
1330  public ShieldInformationBarrierSegmentMembersManager getShieldInformationBarrierSegmentMembers() {
1331    return shieldInformationBarrierSegmentMembers;
1332  }
1333
1334  public ShieldInformationBarrierSegmentRestrictionsManager
1335      getShieldInformationBarrierSegmentRestrictions() {
1336    return shieldInformationBarrierSegmentRestrictions;
1337  }
1338
1339  public DevicePinnersManager getDevicePinners() {
1340    return devicePinners;
1341  }
1342
1343  public TermsOfServicesManager getTermsOfServices() {
1344    return termsOfServices;
1345  }
1346
1347  public TermsOfServiceUserStatusesManager getTermsOfServiceUserStatuses() {
1348    return termsOfServiceUserStatuses;
1349  }
1350
1351  public CollaborationAllowlistEntriesManager getCollaborationAllowlistEntries() {
1352    return collaborationAllowlistEntries;
1353  }
1354
1355  public CollaborationAllowlistExemptTargetsManager getCollaborationAllowlistExemptTargets() {
1356    return collaborationAllowlistExemptTargets;
1357  }
1358
1359  public StoragePoliciesManager getStoragePolicies() {
1360    return storagePolicies;
1361  }
1362
1363  public StoragePolicyAssignmentsManager getStoragePolicyAssignments() {
1364    return storagePolicyAssignments;
1365  }
1366
1367  public ZipDownloadsManager getZipDownloads() {
1368    return zipDownloads;
1369  }
1370
1371  public SignRequestsManager getSignRequests() {
1372    return signRequests;
1373  }
1374
1375  public WorkflowsManager getWorkflows() {
1376    return workflows;
1377  }
1378
1379  public SignTemplatesManager getSignTemplates() {
1380    return signTemplates;
1381  }
1382
1383  public IntegrationMappingsManager getIntegrationMappings() {
1384    return integrationMappings;
1385  }
1386
1387  public AiManager getAi() {
1388    return ai;
1389  }
1390
1391  public AiStudioManager getAiStudio() {
1392    return aiStudio;
1393  }
1394
1395  public MetadataTaxonomiesManager getMetadataTaxonomies() {
1396    return metadataTaxonomies;
1397  }
1398
1399  public DocgenTemplateManager getDocgenTemplate() {
1400    return docgenTemplate;
1401  }
1402
1403  public DocgenManager getDocgen() {
1404    return docgen;
1405  }
1406
1407  public EnterpriseConfigurationsManager getEnterpriseConfigurations() {
1408    return enterpriseConfigurations;
1409  }
1410
1411  public HubsManager getHubs() {
1412    return hubs;
1413  }
1414
1415  public HubCollaborationsManager getHubCollaborations() {
1416    return hubCollaborations;
1417  }
1418
1419  public HubItemsManager getHubItems() {
1420    return hubItems;
1421  }
1422
1423  public HubDocumentManager getHubDocument() {
1424    return hubDocument;
1425  }
1426
1427  public ShieldListsManager getShieldLists() {
1428    return shieldLists;
1429  }
1430
1431  public ArchivesManager getArchives() {
1432    return archives;
1433  }
1434
1435  public ExternalUsersManager getExternalUsers() {
1436    return externalUsers;
1437  }
1438
1439  public AutomateWorkflowsManager getAutomateWorkflows() {
1440    return automateWorkflows;
1441  }
1442
1443  public static class Builder {
1444
1445    protected final Authentication auth;
1446
1447    protected NetworkSession networkSession;
1448
1449    public Builder(Authentication auth) {
1450      this.auth = auth;
1451    }
1452
1453    public Builder networkSession(NetworkSession networkSession) {
1454      this.networkSession = networkSession;
1455      return this;
1456    }
1457
1458    public BoxClient build() {
1459      if (this.networkSession == null) {
1460        this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build();
1461      }
1462      return new BoxClient(this);
1463    }
1464  }
1465}