001package com.box.sdkgen.managers.shieldinformationbarrierreports; 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.shieldinformationbarrierreference.ShieldInformationBarrierReference; 015import com.box.sdkgen.schemas.shieldinformationbarrierreport.ShieldInformationBarrierReport; 016import com.box.sdkgen.schemas.shieldinformationbarrierreports.ShieldInformationBarrierReports; 017import com.box.sdkgen.serialization.json.JsonManager; 018import java.util.Map; 019 020public class ShieldInformationBarrierReportsManager { 021 022 public Authentication auth; 023 024 public NetworkSession networkSession; 025 026 public ShieldInformationBarrierReportsManager() { 027 this.networkSession = new NetworkSession(); 028 } 029 030 protected ShieldInformationBarrierReportsManager(Builder builder) { 031 this.auth = builder.auth; 032 this.networkSession = builder.networkSession; 033 } 034 035 /** 036 * Lists shield information barrier reports. 037 * 038 * @param queryParams Query parameters of getShieldInformationBarrierReports method 039 */ 040 public ShieldInformationBarrierReports getShieldInformationBarrierReports( 041 GetShieldInformationBarrierReportsQueryParams queryParams) { 042 return getShieldInformationBarrierReports( 043 queryParams, new GetShieldInformationBarrierReportsHeaders()); 044 } 045 046 /** 047 * Lists shield information barrier reports. 048 * 049 * @param queryParams Query parameters of getShieldInformationBarrierReports method 050 * @param headers Headers of getShieldInformationBarrierReports method 051 */ 052 public ShieldInformationBarrierReports getShieldInformationBarrierReports( 053 GetShieldInformationBarrierReportsQueryParams queryParams, 054 GetShieldInformationBarrierReportsHeaders headers) { 055 Map<String, String> queryParamsMap = 056 prepareParams( 057 mapOf( 058 entryOf( 059 "shield_information_barrier_id", 060 convertToString(queryParams.getShieldInformationBarrierId())), 061 entryOf("marker", convertToString(queryParams.getMarker())), 062 entryOf("limit", convertToString(queryParams.getLimit())))); 063 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 064 FetchResponse response = 065 this.networkSession 066 .getNetworkClient() 067 .fetch( 068 new FetchOptions.Builder( 069 String.join( 070 "", 071 this.networkSession.getBaseUrls().getBaseUrl(), 072 "/2.0/shield_information_barrier_reports"), 073 "GET") 074 .params(queryParamsMap) 075 .headers(headersMap) 076 .responseFormat(ResponseFormat.JSON) 077 .auth(this.auth) 078 .networkSession(this.networkSession) 079 .build()); 080 return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReports.class); 081 } 082 083 /** 084 * Creates a shield information barrier report for a given barrier. 085 * 086 * @param requestBody Request body of createShieldInformationBarrierReport method 087 */ 088 public ShieldInformationBarrierReport createShieldInformationBarrierReport( 089 ShieldInformationBarrierReference requestBody) { 090 return createShieldInformationBarrierReport( 091 requestBody, new CreateShieldInformationBarrierReportHeaders()); 092 } 093 094 /** 095 * Creates a shield information barrier report for a given barrier. 096 * 097 * @param requestBody Request body of createShieldInformationBarrierReport method 098 * @param headers Headers of createShieldInformationBarrierReport method 099 */ 100 public ShieldInformationBarrierReport createShieldInformationBarrierReport( 101 ShieldInformationBarrierReference requestBody, 102 CreateShieldInformationBarrierReportHeaders headers) { 103 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 104 FetchResponse response = 105 this.networkSession 106 .getNetworkClient() 107 .fetch( 108 new FetchOptions.Builder( 109 String.join( 110 "", 111 this.networkSession.getBaseUrls().getBaseUrl(), 112 "/2.0/shield_information_barrier_reports"), 113 "POST") 114 .headers(headersMap) 115 .data(JsonManager.serialize(requestBody)) 116 .contentType("application/json") 117 .responseFormat(ResponseFormat.JSON) 118 .auth(this.auth) 119 .networkSession(this.networkSession) 120 .build()); 121 return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReport.class); 122 } 123 124 /** 125 * Retrieves a shield information barrier report by its ID. 126 * 127 * @param shieldInformationBarrierReportId The ID of the shield information barrier Report. 128 * Example: "3423" 129 */ 130 public ShieldInformationBarrierReport getShieldInformationBarrierReportById( 131 String shieldInformationBarrierReportId) { 132 return getShieldInformationBarrierReportById( 133 shieldInformationBarrierReportId, new GetShieldInformationBarrierReportByIdHeaders()); 134 } 135 136 /** 137 * Retrieves a shield information barrier report by its ID. 138 * 139 * @param shieldInformationBarrierReportId The ID of the shield information barrier Report. 140 * Example: "3423" 141 * @param headers Headers of getShieldInformationBarrierReportById method 142 */ 143 public ShieldInformationBarrierReport getShieldInformationBarrierReportById( 144 String shieldInformationBarrierReportId, 145 GetShieldInformationBarrierReportByIdHeaders headers) { 146 Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); 147 FetchResponse response = 148 this.networkSession 149 .getNetworkClient() 150 .fetch( 151 new FetchOptions.Builder( 152 String.join( 153 "", 154 this.networkSession.getBaseUrls().getBaseUrl(), 155 "/2.0/shield_information_barrier_reports/", 156 convertToString(shieldInformationBarrierReportId)), 157 "GET") 158 .headers(headersMap) 159 .responseFormat(ResponseFormat.JSON) 160 .auth(this.auth) 161 .networkSession(this.networkSession) 162 .build()); 163 return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReport.class); 164 } 165 166 public Authentication getAuth() { 167 return auth; 168 } 169 170 public NetworkSession getNetworkSession() { 171 return networkSession; 172 } 173 174 public static class Builder { 175 176 protected Authentication auth; 177 178 protected NetworkSession networkSession; 179 180 public Builder() {} 181 182 public Builder auth(Authentication auth) { 183 this.auth = auth; 184 return this; 185 } 186 187 public Builder networkSession(NetworkSession networkSession) { 188 this.networkSession = networkSession; 189 return this; 190 } 191 192 public ShieldInformationBarrierReportsManager build() { 193 if (this.networkSession == null) { 194 this.networkSession = new NetworkSession(); 195 } 196 return new ShieldInformationBarrierReportsManager(this); 197 } 198 } 199}