001package com.box.sdkgen.schemas.v2025r0.docgentemplatev2025r0;
002
003import com.box.sdkgen.internal.Nullable;
004import com.box.sdkgen.schemas.v2025r0.docgentemplatebasev2025r0.DocGenTemplateBaseV2025R0;
005import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0;
006import com.fasterxml.jackson.annotation.JsonFilter;
007import com.fasterxml.jackson.annotation.JsonProperty;
008import java.util.Objects;
009
010/** A Box Doc Gen template object. */
011@JsonFilter("nullablePropertyFilter")
012public class DocGenTemplateV2025R0 extends DocGenTemplateBaseV2025R0 {
013
014  /** The name of the template. */
015  @JsonProperty("file_name")
016  @Nullable
017  protected String fileName;
018
019  public DocGenTemplateV2025R0() {
020    super();
021  }
022
023  protected DocGenTemplateV2025R0(Builder builder) {
024    super(builder);
025    this.fileName = builder.fileName;
026    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
027  }
028
029  public String getFileName() {
030    return fileName;
031  }
032
033  @Override
034  public boolean equals(Object o) {
035    if (this == o) {
036      return true;
037    }
038    if (o == null || getClass() != o.getClass()) {
039      return false;
040    }
041    DocGenTemplateV2025R0 casted = (DocGenTemplateV2025R0) o;
042    return Objects.equals(file, casted.file) && Objects.equals(fileName, casted.fileName);
043  }
044
045  @Override
046  public int hashCode() {
047    return Objects.hash(file, fileName);
048  }
049
050  @Override
051  public String toString() {
052    return "DocGenTemplateV2025R0{"
053        + "file='"
054        + file
055        + '\''
056        + ", "
057        + "fileName='"
058        + fileName
059        + '\''
060        + "}";
061  }
062
063  public static class Builder extends DocGenTemplateBaseV2025R0.Builder {
064
065    protected String fileName;
066
067    public Builder fileName(String fileName) {
068      this.fileName = fileName;
069      this.markNullableFieldAsSet("file_name");
070      return this;
071    }
072
073    @Override
074    public Builder file(FileReferenceV2025R0 file) {
075      this.file = file;
076      return this;
077    }
078
079    public DocGenTemplateV2025R0 build() {
080      return new DocGenTemplateV2025R0(this);
081    }
082  }
083}