001package com.box.sdkgen.schemas.uploadurl;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009/** The details for the upload session for the file. */
010@JsonFilter("nullablePropertyFilter")
011public class UploadUrl extends SerializableObject {
012
013  /** A URL for an upload session that can be used to upload the file. */
014  @JsonProperty("upload_url")
015  protected String uploadUrl;
016
017  /** An optional access token to use to upload the file. */
018  @JsonProperty("upload_token")
019  protected String uploadToken;
020
021  public UploadUrl() {
022    super();
023  }
024
025  protected UploadUrl(Builder builder) {
026    super();
027    this.uploadUrl = builder.uploadUrl;
028    this.uploadToken = builder.uploadToken;
029    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
030  }
031
032  public String getUploadUrl() {
033    return uploadUrl;
034  }
035
036  public String getUploadToken() {
037    return uploadToken;
038  }
039
040  @Override
041  public boolean equals(Object o) {
042    if (this == o) {
043      return true;
044    }
045    if (o == null || getClass() != o.getClass()) {
046      return false;
047    }
048    UploadUrl casted = (UploadUrl) o;
049    return Objects.equals(uploadUrl, casted.uploadUrl)
050        && Objects.equals(uploadToken, casted.uploadToken);
051  }
052
053  @Override
054  public int hashCode() {
055    return Objects.hash(uploadUrl, uploadToken);
056  }
057
058  @Override
059  public String toString() {
060    return "UploadUrl{"
061        + "uploadUrl='"
062        + uploadUrl
063        + '\''
064        + ", "
065        + "uploadToken='"
066        + uploadToken
067        + '\''
068        + "}";
069  }
070
071  public static class Builder extends NullableFieldTracker {
072
073    protected String uploadUrl;
074
075    protected String uploadToken;
076
077    public Builder uploadUrl(String uploadUrl) {
078      this.uploadUrl = uploadUrl;
079      return this;
080    }
081
082    public Builder uploadToken(String uploadToken) {
083      this.uploadToken = uploadToken;
084      return this;
085    }
086
087    public UploadUrl build() {
088      return new UploadUrl(this);
089    }
090  }
091}