001package com.box.sdkgen.managers.retentionpolicyassignments; 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.filesunderretention.FilesUnderRetention; 015import com.box.sdkgen.schemas.retentionpolicyassignment.RetentionPolicyAssignment; 016import com.box.sdkgen.schemas.retentionpolicyassignments.RetentionPolicyAssignments; 017import com.box.sdkgen.serialization.json.JsonManager; 018import java.util.Map; 019 020public class RetentionPolicyAssignmentsManager { 021 022 public Authentication auth; 023 024 public NetworkSession networkSession; 025 026 public RetentionPolicyAssignmentsManager() { 027 this.networkSession = new NetworkSession(); 028 } 029 030 protected RetentionPolicyAssignmentsManager(Builder builder) { 031 this.auth = builder.auth; 032 this.networkSession = builder.networkSession; 033 } 034 035 /** 036 * Returns a list of all retention policy assignments associated with a specified retention 037 * policy. 038 * 039 * @param retentionPolicyId The ID of the retention policy. Example: "982312" 040 */ 041 public RetentionPolicyAssignments getRetentionPolicyAssignments(String retentionPolicyId) { 042 return getRetentionPolicyAssignments( 043 retentionPolicyId, 044 new GetRetentionPolicyAssignmentsQueryParams(), 045 new GetRetentionPolicyAssignmentsHeaders()); 046 } 047 048 /** 049 * Returns a list of all retention policy assignments associated with a specified retention 050 * policy. 051 * 052 * @param retentionPolicyId The ID of the retention policy. Example: "982312" 053 * @param queryParams Query parameters of getRetentionPolicyAssignments method 054 */ 055 public RetentionPolicyAssignments getRetentionPolicyAssignments( 056 String retentionPolicyId, GetRetentionPolicyAssignmentsQueryParams queryParams) { 057 return getRetentionPolicyAssignments( 058 retentionPolicyId, queryParams, new GetRetentionPolicyAssignmentsHeaders()); 059 } 060 061 /** 062 * Returns a list of all retention policy assignments associated with a specified retention 063 * policy. 064 * 065 * @param retentionPolicyId The ID of the retention policy. Example: "982312" 066 * @param headers Headers of getRetentionPolicyAssignments method 067 */ 068 public RetentionPolicyAssignments getRetentionPolicyAssignments( 069 String retentionPolicyId, GetRetentionPolicyAssignmentsHeaders headers) { 070 return getRetentionPolicyAssignments( 071 retentionPolicyId, new GetRetentionPolicyAssignmentsQueryParams(), headers); 072 } 073 074 /** 075 * Returns a list of all retention policy assignments associated with a specified retention 076 * policy. 077 * 078 * @param retentionPolicyId The ID of the retention policy. Example: "982312" 079 * @param queryParams Query parameters of getRetentionPolicyAssignments method 080 * @param headers Headers of getRetentionPolicyAssignments method 081 */ 082 public RetentionPolicyAssignments getRetentionPolicyAssignments( 083 String retentionPolicyId, 084 GetRetentionPolicyAssignmentsQueryParams queryParams, 085 GetRetentionPolicyAssignmentsHeaders headers) { 086 Map<String, String> queryParamsMap = 087 prepareParams( 088 mapOf( 089 entryOf("type", convertToString(queryParams.getType())), 090 entryOf("fields", convertToString(queryParams.getFields())), 091 entryOf("marker", convertToString(queryParams.getMarker())), 092 entryOf("limit", convertToString(queryParams.getLimit())))); 093 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 094 FetchResponse response = 095 this.networkSession 096 .getNetworkClient() 097 .fetch( 098 new FetchOptions.Builder( 099 String.join( 100 "", 101 this.networkSession.getBaseUrls().getBaseUrl(), 102 "/2.0/retention_policies/", 103 convertToString(retentionPolicyId), 104 "/assignments"), 105 "GET") 106 .params(queryParamsMap) 107 .headers(headersMap) 108 .responseFormat(ResponseFormat.JSON) 109 .auth(this.auth) 110 .networkSession(this.networkSession) 111 .build()); 112 return JsonManager.deserialize(response.getData(), RetentionPolicyAssignments.class); 113 } 114 115 /** 116 * Assigns a retention policy to an item. 117 * 118 * @param requestBody Request body of createRetentionPolicyAssignment method 119 */ 120 public RetentionPolicyAssignment createRetentionPolicyAssignment( 121 CreateRetentionPolicyAssignmentRequestBody requestBody) { 122 return createRetentionPolicyAssignment( 123 requestBody, new CreateRetentionPolicyAssignmentHeaders()); 124 } 125 126 /** 127 * Assigns a retention policy to an item. 128 * 129 * @param requestBody Request body of createRetentionPolicyAssignment method 130 * @param headers Headers of createRetentionPolicyAssignment method 131 */ 132 public RetentionPolicyAssignment createRetentionPolicyAssignment( 133 CreateRetentionPolicyAssignmentRequestBody requestBody, 134 CreateRetentionPolicyAssignmentHeaders headers) { 135 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 136 FetchResponse response = 137 this.networkSession 138 .getNetworkClient() 139 .fetch( 140 new FetchOptions.Builder( 141 String.join( 142 "", 143 this.networkSession.getBaseUrls().getBaseUrl(), 144 "/2.0/retention_policy_assignments"), 145 "POST") 146 .headers(headersMap) 147 .data(JsonManager.serialize(requestBody)) 148 .contentType("application/json") 149 .responseFormat(ResponseFormat.JSON) 150 .auth(this.auth) 151 .networkSession(this.networkSession) 152 .build()); 153 return JsonManager.deserialize(response.getData(), RetentionPolicyAssignment.class); 154 } 155 156 /** 157 * Retrieves a retention policy assignment. 158 * 159 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 160 * "1233123" 161 */ 162 public RetentionPolicyAssignment getRetentionPolicyAssignmentById( 163 String retentionPolicyAssignmentId) { 164 return getRetentionPolicyAssignmentById( 165 retentionPolicyAssignmentId, 166 new GetRetentionPolicyAssignmentByIdQueryParams(), 167 new GetRetentionPolicyAssignmentByIdHeaders()); 168 } 169 170 /** 171 * Retrieves a retention policy assignment. 172 * 173 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 174 * "1233123" 175 * @param queryParams Query parameters of getRetentionPolicyAssignmentById method 176 */ 177 public RetentionPolicyAssignment getRetentionPolicyAssignmentById( 178 String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdQueryParams queryParams) { 179 return getRetentionPolicyAssignmentById( 180 retentionPolicyAssignmentId, queryParams, new GetRetentionPolicyAssignmentByIdHeaders()); 181 } 182 183 /** 184 * Retrieves a retention policy assignment. 185 * 186 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 187 * "1233123" 188 * @param headers Headers of getRetentionPolicyAssignmentById method 189 */ 190 public RetentionPolicyAssignment getRetentionPolicyAssignmentById( 191 String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdHeaders headers) { 192 return getRetentionPolicyAssignmentById( 193 retentionPolicyAssignmentId, new GetRetentionPolicyAssignmentByIdQueryParams(), headers); 194 } 195 196 /** 197 * Retrieves a retention policy assignment. 198 * 199 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 200 * "1233123" 201 * @param queryParams Query parameters of getRetentionPolicyAssignmentById method 202 * @param headers Headers of getRetentionPolicyAssignmentById method 203 */ 204 public RetentionPolicyAssignment getRetentionPolicyAssignmentById( 205 String retentionPolicyAssignmentId, 206 GetRetentionPolicyAssignmentByIdQueryParams queryParams, 207 GetRetentionPolicyAssignmentByIdHeaders headers) { 208 Map<String, String> queryParamsMap = 209 prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); 210 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 211 FetchResponse response = 212 this.networkSession 213 .getNetworkClient() 214 .fetch( 215 new FetchOptions.Builder( 216 String.join( 217 "", 218 this.networkSession.getBaseUrls().getBaseUrl(), 219 "/2.0/retention_policy_assignments/", 220 convertToString(retentionPolicyAssignmentId)), 221 "GET") 222 .params(queryParamsMap) 223 .headers(headersMap) 224 .responseFormat(ResponseFormat.JSON) 225 .auth(this.auth) 226 .networkSession(this.networkSession) 227 .build()); 228 return JsonManager.deserialize(response.getData(), RetentionPolicyAssignment.class); 229 } 230 231 /** 232 * Removes a retention policy assignment applied to content. 233 * 234 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 235 * "1233123" 236 */ 237 public void deleteRetentionPolicyAssignmentById(String retentionPolicyAssignmentId) { 238 deleteRetentionPolicyAssignmentById( 239 retentionPolicyAssignmentId, new DeleteRetentionPolicyAssignmentByIdHeaders()); 240 } 241 242 /** 243 * Removes a retention policy assignment applied to content. 244 * 245 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 246 * "1233123" 247 * @param headers Headers of deleteRetentionPolicyAssignmentById method 248 */ 249 public void deleteRetentionPolicyAssignmentById( 250 String retentionPolicyAssignmentId, DeleteRetentionPolicyAssignmentByIdHeaders headers) { 251 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 252 FetchResponse response = 253 this.networkSession 254 .getNetworkClient() 255 .fetch( 256 new FetchOptions.Builder( 257 String.join( 258 "", 259 this.networkSession.getBaseUrls().getBaseUrl(), 260 "/2.0/retention_policy_assignments/", 261 convertToString(retentionPolicyAssignmentId)), 262 "DELETE") 263 .headers(headersMap) 264 .responseFormat(ResponseFormat.NO_CONTENT) 265 .auth(this.auth) 266 .networkSession(this.networkSession) 267 .build()); 268 } 269 270 /** 271 * Returns a list of files under retention for a retention policy assignment. 272 * 273 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 274 * "1233123" 275 */ 276 public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( 277 String retentionPolicyAssignmentId) { 278 return getFilesUnderRetentionPolicyAssignment( 279 retentionPolicyAssignmentId, 280 new GetFilesUnderRetentionPolicyAssignmentQueryParams(), 281 new GetFilesUnderRetentionPolicyAssignmentHeaders()); 282 } 283 284 /** 285 * Returns a list of files under retention for a retention policy assignment. 286 * 287 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 288 * "1233123" 289 * @param queryParams Query parameters of getFilesUnderRetentionPolicyAssignment method 290 */ 291 public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( 292 String retentionPolicyAssignmentId, 293 GetFilesUnderRetentionPolicyAssignmentQueryParams queryParams) { 294 return getFilesUnderRetentionPolicyAssignment( 295 retentionPolicyAssignmentId, 296 queryParams, 297 new GetFilesUnderRetentionPolicyAssignmentHeaders()); 298 } 299 300 /** 301 * Returns a list of files under retention for a retention policy assignment. 302 * 303 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 304 * "1233123" 305 * @param headers Headers of getFilesUnderRetentionPolicyAssignment method 306 */ 307 public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( 308 String retentionPolicyAssignmentId, GetFilesUnderRetentionPolicyAssignmentHeaders headers) { 309 return getFilesUnderRetentionPolicyAssignment( 310 retentionPolicyAssignmentId, 311 new GetFilesUnderRetentionPolicyAssignmentQueryParams(), 312 headers); 313 } 314 315 /** 316 * Returns a list of files under retention for a retention policy assignment. 317 * 318 * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: 319 * "1233123" 320 * @param queryParams Query parameters of getFilesUnderRetentionPolicyAssignment method 321 * @param headers Headers of getFilesUnderRetentionPolicyAssignment method 322 */ 323 public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( 324 String retentionPolicyAssignmentId, 325 GetFilesUnderRetentionPolicyAssignmentQueryParams queryParams, 326 GetFilesUnderRetentionPolicyAssignmentHeaders headers) { 327 Map<String, String> queryParamsMap = 328 prepareParams( 329 mapOf( 330 entryOf("marker", convertToString(queryParams.getMarker())), 331 entryOf("limit", convertToString(queryParams.getLimit())))); 332 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 333 FetchResponse response = 334 this.networkSession 335 .getNetworkClient() 336 .fetch( 337 new FetchOptions.Builder( 338 String.join( 339 "", 340 this.networkSession.getBaseUrls().getBaseUrl(), 341 "/2.0/retention_policy_assignments/", 342 convertToString(retentionPolicyAssignmentId), 343 "/files_under_retention"), 344 "GET") 345 .params(queryParamsMap) 346 .headers(headersMap) 347 .responseFormat(ResponseFormat.JSON) 348 .auth(this.auth) 349 .networkSession(this.networkSession) 350 .build()); 351 return JsonManager.deserialize(response.getData(), FilesUnderRetention.class); 352 } 353 354 public Authentication getAuth() { 355 return auth; 356 } 357 358 public NetworkSession getNetworkSession() { 359 return networkSession; 360 } 361 362 public static class Builder { 363 364 protected Authentication auth; 365 366 protected NetworkSession networkSession; 367 368 public Builder() {} 369 370 public Builder auth(Authentication auth) { 371 this.auth = auth; 372 return this; 373 } 374 375 public Builder networkSession(NetworkSession networkSession) { 376 this.networkSession = networkSession; 377 return this; 378 } 379 380 public RetentionPolicyAssignmentsManager build() { 381 if (this.networkSession == null) { 382 this.networkSession = new NetworkSession(); 383 } 384 return new RetentionPolicyAssignmentsManager(this); 385 } 386 } 387}