001package com.box.sdkgen.managers.fileversionretentions; 002 003import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; 004import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; 005import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; 006import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; 007import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; 008 009import com.box.sdkgen.networking.auth.Authentication; 010import com.box.sdkgen.networking.fetchoptions.FetchOptions; 011import com.box.sdkgen.networking.fetchoptions.ResponseFormat; 012import com.box.sdkgen.networking.fetchresponse.FetchResponse; 013import com.box.sdkgen.networking.network.NetworkSession; 014import com.box.sdkgen.schemas.fileversionretention.FileVersionRetention; 015import com.box.sdkgen.schemas.fileversionretentions.FileVersionRetentions; 016import com.box.sdkgen.serialization.json.JsonManager; 017import java.util.Map; 018 019public class FileVersionRetentionsManager { 020 021 public Authentication auth; 022 023 public NetworkSession networkSession; 024 025 public FileVersionRetentionsManager() { 026 this.networkSession = new NetworkSession(); 027 } 028 029 protected FileVersionRetentionsManager(Builder builder) { 030 this.auth = builder.auth; 031 this.networkSession = builder.networkSession; 032 } 033 034 /** 035 * Retrieves all file version retentions for the given enterprise. 036 * 037 * <p>**Note**: File retention API is now **deprecated**. To get information about files and file 038 * versions under retention, see [files under 039 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) 040 * or [file versions under 041 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) 042 * endpoints. 043 */ 044 public FileVersionRetentions getFileVersionRetentions() { 045 return getFileVersionRetentions( 046 new GetFileVersionRetentionsQueryParams(), new GetFileVersionRetentionsHeaders()); 047 } 048 049 /** 050 * Retrieves all file version retentions for the given enterprise. 051 * 052 * <p>**Note**: File retention API is now **deprecated**. To get information about files and file 053 * versions under retention, see [files under 054 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) 055 * or [file versions under 056 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) 057 * endpoints. 058 * 059 * @param queryParams Query parameters of getFileVersionRetentions method 060 */ 061 public FileVersionRetentions getFileVersionRetentions( 062 GetFileVersionRetentionsQueryParams queryParams) { 063 return getFileVersionRetentions(queryParams, new GetFileVersionRetentionsHeaders()); 064 } 065 066 /** 067 * Retrieves all file version retentions for the given enterprise. 068 * 069 * <p>**Note**: File retention API is now **deprecated**. To get information about files and file 070 * versions under retention, see [files under 071 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) 072 * or [file versions under 073 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) 074 * endpoints. 075 * 076 * @param headers Headers of getFileVersionRetentions method 077 */ 078 public FileVersionRetentions getFileVersionRetentions(GetFileVersionRetentionsHeaders headers) { 079 return getFileVersionRetentions(new GetFileVersionRetentionsQueryParams(), headers); 080 } 081 082 /** 083 * Retrieves all file version retentions for the given enterprise. 084 * 085 * <p>**Note**: File retention API is now **deprecated**. To get information about files and file 086 * versions under retention, see [files under 087 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) 088 * or [file versions under 089 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) 090 * endpoints. 091 * 092 * @param queryParams Query parameters of getFileVersionRetentions method 093 * @param headers Headers of getFileVersionRetentions method 094 */ 095 public FileVersionRetentions getFileVersionRetentions( 096 GetFileVersionRetentionsQueryParams queryParams, GetFileVersionRetentionsHeaders headers) { 097 Map<String, String> queryParamsMap = 098 prepareParams( 099 mapOf( 100 entryOf("file_id", convertToString(queryParams.getFileId())), 101 entryOf("file_version_id", convertToString(queryParams.getFileVersionId())), 102 entryOf("policy_id", convertToString(queryParams.getPolicyId())), 103 entryOf("disposition_action", convertToString(queryParams.getDispositionAction())), 104 entryOf("disposition_before", convertToString(queryParams.getDispositionBefore())), 105 entryOf("disposition_after", convertToString(queryParams.getDispositionAfter())), 106 entryOf("limit", convertToString(queryParams.getLimit())), 107 entryOf("marker", convertToString(queryParams.getMarker())))); 108 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 109 FetchResponse response = 110 this.networkSession 111 .getNetworkClient() 112 .fetch( 113 new FetchOptions.Builder( 114 String.join( 115 "", 116 this.networkSession.getBaseUrls().getBaseUrl(), 117 "/2.0/file_version_retentions"), 118 "GET") 119 .params(queryParamsMap) 120 .headers(headersMap) 121 .responseFormat(ResponseFormat.JSON) 122 .auth(this.auth) 123 .networkSession(this.networkSession) 124 .build()); 125 return JsonManager.deserialize(response.getData(), FileVersionRetentions.class); 126 } 127 128 /** 129 * Returns information about a file version retention. 130 * 131 * <p>**Note**: File retention API is now **deprecated**. To get information about files and file 132 * versions under retention, see [files under 133 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) 134 * or [file versions under 135 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) 136 * endpoints. 137 * 138 * @param fileVersionRetentionId The ID of the file version retention. Example: "3424234" 139 */ 140 public FileVersionRetention getFileVersionRetentionById(String fileVersionRetentionId) { 141 return getFileVersionRetentionById( 142 fileVersionRetentionId, new GetFileVersionRetentionByIdHeaders()); 143 } 144 145 /** 146 * Returns information about a file version retention. 147 * 148 * <p>**Note**: File retention API is now **deprecated**. To get information about files and file 149 * versions under retention, see [files under 150 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) 151 * or [file versions under 152 * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) 153 * endpoints. 154 * 155 * @param fileVersionRetentionId The ID of the file version retention. Example: "3424234" 156 * @param headers Headers of getFileVersionRetentionById method 157 */ 158 public FileVersionRetention getFileVersionRetentionById( 159 String fileVersionRetentionId, GetFileVersionRetentionByIdHeaders headers) { 160 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 161 FetchResponse response = 162 this.networkSession 163 .getNetworkClient() 164 .fetch( 165 new FetchOptions.Builder( 166 String.join( 167 "", 168 this.networkSession.getBaseUrls().getBaseUrl(), 169 "/2.0/file_version_retentions/", 170 convertToString(fileVersionRetentionId)), 171 "GET") 172 .headers(headersMap) 173 .responseFormat(ResponseFormat.JSON) 174 .auth(this.auth) 175 .networkSession(this.networkSession) 176 .build()); 177 return JsonManager.deserialize(response.getData(), FileVersionRetention.class); 178 } 179 180 public Authentication getAuth() { 181 return auth; 182 } 183 184 public NetworkSession getNetworkSession() { 185 return networkSession; 186 } 187 188 public static class Builder { 189 190 protected Authentication auth; 191 192 protected NetworkSession networkSession; 193 194 public Builder() {} 195 196 public Builder auth(Authentication auth) { 197 this.auth = auth; 198 return this; 199 } 200 201 public Builder networkSession(NetworkSession networkSession) { 202 this.networkSession = networkSession; 203 return this; 204 } 205 206 public FileVersionRetentionsManager build() { 207 if (this.networkSession == null) { 208 this.networkSession = new NetworkSession(); 209 } 210 return new FileVersionRetentionsManager(this); 211 } 212 } 213}