001package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers;
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.shieldinformationbarriersegmentmember.ShieldInformationBarrierSegmentMember;
015import com.box.sdkgen.schemas.shieldinformationbarriersegmentmembers.ShieldInformationBarrierSegmentMembers;
016import com.box.sdkgen.serialization.json.JsonManager;
017import java.util.Map;
018
019public class ShieldInformationBarrierSegmentMembersManager {
020
021  public Authentication auth;
022
023  public NetworkSession networkSession;
024
025  public ShieldInformationBarrierSegmentMembersManager() {
026    this.networkSession = new NetworkSession();
027  }
028
029  protected ShieldInformationBarrierSegmentMembersManager(Builder builder) {
030    this.auth = builder.auth;
031    this.networkSession = builder.networkSession;
032  }
033
034  /**
035   * Retrieves a shield information barrier segment member by its ID.
036   *
037   * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment
038   *     Member. Example: "7815"
039   */
040  public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentMemberById(
041      String shieldInformationBarrierSegmentMemberId) {
042    return getShieldInformationBarrierSegmentMemberById(
043        shieldInformationBarrierSegmentMemberId,
044        new GetShieldInformationBarrierSegmentMemberByIdHeaders());
045  }
046
047  /**
048   * Retrieves a shield information barrier segment member by its ID.
049   *
050   * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment
051   *     Member. Example: "7815"
052   * @param headers Headers of getShieldInformationBarrierSegmentMemberById method
053   */
054  public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentMemberById(
055      String shieldInformationBarrierSegmentMemberId,
056      GetShieldInformationBarrierSegmentMemberByIdHeaders headers) {
057    Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders()));
058    FetchResponse response =
059        this.networkSession
060            .getNetworkClient()
061            .fetch(
062                new FetchOptions.Builder(
063                        String.join(
064                            "",
065                            this.networkSession.getBaseUrls().getBaseUrl(),
066                            "/2.0/shield_information_barrier_segment_members/",
067                            convertToString(shieldInformationBarrierSegmentMemberId)),
068                        "GET")
069                    .headers(headersMap)
070                    .responseFormat(ResponseFormat.JSON)
071                    .auth(this.auth)
072                    .networkSession(this.networkSession)
073                    .build());
074    return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegmentMember.class);
075  }
076
077  /**
078   * Deletes a shield information barrier segment member based on provided ID.
079   *
080   * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment
081   *     Member. Example: "7815"
082   */
083  public void deleteShieldInformationBarrierSegmentMemberById(
084      String shieldInformationBarrierSegmentMemberId) {
085    deleteShieldInformationBarrierSegmentMemberById(
086        shieldInformationBarrierSegmentMemberId,
087        new DeleteShieldInformationBarrierSegmentMemberByIdHeaders());
088  }
089
090  /**
091   * Deletes a shield information barrier segment member based on provided ID.
092   *
093   * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment
094   *     Member. Example: "7815"
095   * @param headers Headers of deleteShieldInformationBarrierSegmentMemberById method
096   */
097  public void deleteShieldInformationBarrierSegmentMemberById(
098      String shieldInformationBarrierSegmentMemberId,
099      DeleteShieldInformationBarrierSegmentMemberByIdHeaders headers) {
100    Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders()));
101    FetchResponse response =
102        this.networkSession
103            .getNetworkClient()
104            .fetch(
105                new FetchOptions.Builder(
106                        String.join(
107                            "",
108                            this.networkSession.getBaseUrls().getBaseUrl(),
109                            "/2.0/shield_information_barrier_segment_members/",
110                            convertToString(shieldInformationBarrierSegmentMemberId)),
111                        "DELETE")
112                    .headers(headersMap)
113                    .responseFormat(ResponseFormat.NO_CONTENT)
114                    .auth(this.auth)
115                    .networkSession(this.networkSession)
116                    .build());
117  }
118
119  /**
120   * Lists shield information barrier segment members based on provided segment IDs.
121   *
122   * @param queryParams Query parameters of getShieldInformationBarrierSegmentMembers method
123   */
124  public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegmentMembers(
125      GetShieldInformationBarrierSegmentMembersQueryParams queryParams) {
126    return getShieldInformationBarrierSegmentMembers(
127        queryParams, new GetShieldInformationBarrierSegmentMembersHeaders());
128  }
129
130  /**
131   * Lists shield information barrier segment members based on provided segment IDs.
132   *
133   * @param queryParams Query parameters of getShieldInformationBarrierSegmentMembers method
134   * @param headers Headers of getShieldInformationBarrierSegmentMembers method
135   */
136  public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegmentMembers(
137      GetShieldInformationBarrierSegmentMembersQueryParams queryParams,
138      GetShieldInformationBarrierSegmentMembersHeaders headers) {
139    Map<String, String> queryParamsMap =
140        prepareParams(
141            mapOf(
142                entryOf(
143                    "shield_information_barrier_segment_id",
144                    convertToString(queryParams.getShieldInformationBarrierSegmentId())),
145                entryOf("marker", convertToString(queryParams.getMarker())),
146                entryOf("limit", convertToString(queryParams.getLimit()))));
147    Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders()));
148    FetchResponse response =
149        this.networkSession
150            .getNetworkClient()
151            .fetch(
152                new FetchOptions.Builder(
153                        String.join(
154                            "",
155                            this.networkSession.getBaseUrls().getBaseUrl(),
156                            "/2.0/shield_information_barrier_segment_members"),
157                        "GET")
158                    .params(queryParamsMap)
159                    .headers(headersMap)
160                    .responseFormat(ResponseFormat.JSON)
161                    .auth(this.auth)
162                    .networkSession(this.networkSession)
163                    .build());
164    return JsonManager.deserialize(
165        response.getData(), ShieldInformationBarrierSegmentMembers.class);
166  }
167
168  /**
169   * Creates a new shield information barrier segment member.
170   *
171   * @param requestBody Request body of createShieldInformationBarrierSegmentMember method
172   */
173  public ShieldInformationBarrierSegmentMember createShieldInformationBarrierSegmentMember(
174      CreateShieldInformationBarrierSegmentMemberRequestBody requestBody) {
175    return createShieldInformationBarrierSegmentMember(
176        requestBody, new CreateShieldInformationBarrierSegmentMemberHeaders());
177  }
178
179  /**
180   * Creates a new shield information barrier segment member.
181   *
182   * @param requestBody Request body of createShieldInformationBarrierSegmentMember method
183   * @param headers Headers of createShieldInformationBarrierSegmentMember method
184   */
185  public ShieldInformationBarrierSegmentMember createShieldInformationBarrierSegmentMember(
186      CreateShieldInformationBarrierSegmentMemberRequestBody requestBody,
187      CreateShieldInformationBarrierSegmentMemberHeaders headers) {
188    Map<String, String> headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders()));
189    FetchResponse response =
190        this.networkSession
191            .getNetworkClient()
192            .fetch(
193                new FetchOptions.Builder(
194                        String.join(
195                            "",
196                            this.networkSession.getBaseUrls().getBaseUrl(),
197                            "/2.0/shield_information_barrier_segment_members"),
198                        "POST")
199                    .headers(headersMap)
200                    .data(JsonManager.serialize(requestBody))
201                    .contentType("application/json")
202                    .responseFormat(ResponseFormat.JSON)
203                    .auth(this.auth)
204                    .networkSession(this.networkSession)
205                    .build());
206    return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegmentMember.class);
207  }
208
209  public Authentication getAuth() {
210    return auth;
211  }
212
213  public NetworkSession getNetworkSession() {
214    return networkSession;
215  }
216
217  public static class Builder {
218
219    protected Authentication auth;
220
221    protected NetworkSession networkSession;
222
223    public Builder() {}
224
225    public Builder auth(Authentication auth) {
226      this.auth = auth;
227      return this;
228    }
229
230    public Builder networkSession(NetworkSession networkSession) {
231      this.networkSession = networkSession;
232      return this;
233    }
234
235    public ShieldInformationBarrierSegmentMembersManager build() {
236      if (this.networkSession == null) {
237        this.networkSession = new NetworkSession();
238      }
239      return new ShieldInformationBarrierSegmentMembersManager(this);
240    }
241  }
242}