001package com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0;
002
003import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0;
004import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0;
005import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0TypeField;
006import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0;
007import com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0.FileVersionBaseV2025R0;
008import com.box.sdkgen.serialization.json.EnumWrapper;
009import com.fasterxml.jackson.annotation.JsonFilter;
010import com.fasterxml.jackson.annotation.JsonProperty;
011import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
012import com.fasterxml.jackson.databind.annotation.JsonSerialize;
013import java.util.Objects;
014
015/** A standard representation of a Box Doc Gen job. */
016@JsonFilter("nullablePropertyFilter")
017public class DocGenJobV2025R0 extends DocGenJobBaseV2025R0 {
018
019  protected final DocGenBatchBaseV2025R0 batch;
020
021  @JsonProperty("template_file")
022  protected final FileReferenceV2025R0 templateFile;
023
024  @JsonProperty("template_file_version")
025  protected final FileVersionBaseV2025R0 templateFileVersion;
026
027  @JsonProperty("output_file")
028  protected FileReferenceV2025R0 outputFile;
029
030  @JsonProperty("output_file_version")
031  protected FileVersionBaseV2025R0 outputFileVersion;
032
033  /** Status of the job. */
034  @JsonDeserialize(
035      using = DocGenJobV2025R0StatusField.DocGenJobV2025R0StatusFieldDeserializer.class)
036  @JsonSerialize(using = DocGenJobV2025R0StatusField.DocGenJobV2025R0StatusFieldSerializer.class)
037  protected final EnumWrapper<DocGenJobV2025R0StatusField> status;
038
039  /** Type of the generated file. */
040  @JsonProperty("output_type")
041  protected final String outputType;
042
043  public DocGenJobV2025R0(
044      String id,
045      DocGenBatchBaseV2025R0 batch,
046      FileReferenceV2025R0 templateFile,
047      FileVersionBaseV2025R0 templateFileVersion,
048      DocGenJobV2025R0StatusField status,
049      String outputType) {
050    super(id);
051    this.batch = batch;
052    this.templateFile = templateFile;
053    this.templateFileVersion = templateFileVersion;
054    this.status = new EnumWrapper<DocGenJobV2025R0StatusField>(status);
055    this.outputType = outputType;
056  }
057
058  public DocGenJobV2025R0(
059      @JsonProperty("id") String id,
060      @JsonProperty("batch") DocGenBatchBaseV2025R0 batch,
061      @JsonProperty("template_file") FileReferenceV2025R0 templateFile,
062      @JsonProperty("template_file_version") FileVersionBaseV2025R0 templateFileVersion,
063      @JsonProperty("status") EnumWrapper<DocGenJobV2025R0StatusField> status,
064      @JsonProperty("output_type") String outputType) {
065    super(id);
066    this.batch = batch;
067    this.templateFile = templateFile;
068    this.templateFileVersion = templateFileVersion;
069    this.status = status;
070    this.outputType = outputType;
071  }
072
073  protected DocGenJobV2025R0(Builder builder) {
074    super(builder);
075    this.batch = builder.batch;
076    this.templateFile = builder.templateFile;
077    this.templateFileVersion = builder.templateFileVersion;
078    this.outputFile = builder.outputFile;
079    this.outputFileVersion = builder.outputFileVersion;
080    this.status = builder.status;
081    this.outputType = builder.outputType;
082    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
083  }
084
085  public DocGenBatchBaseV2025R0 getBatch() {
086    return batch;
087  }
088
089  public FileReferenceV2025R0 getTemplateFile() {
090    return templateFile;
091  }
092
093  public FileVersionBaseV2025R0 getTemplateFileVersion() {
094    return templateFileVersion;
095  }
096
097  public FileReferenceV2025R0 getOutputFile() {
098    return outputFile;
099  }
100
101  public FileVersionBaseV2025R0 getOutputFileVersion() {
102    return outputFileVersion;
103  }
104
105  public EnumWrapper<DocGenJobV2025R0StatusField> getStatus() {
106    return status;
107  }
108
109  public String getOutputType() {
110    return outputType;
111  }
112
113  @Override
114  public boolean equals(Object o) {
115    if (this == o) {
116      return true;
117    }
118    if (o == null || getClass() != o.getClass()) {
119      return false;
120    }
121    DocGenJobV2025R0 casted = (DocGenJobV2025R0) o;
122    return Objects.equals(id, casted.id)
123        && Objects.equals(type, casted.type)
124        && Objects.equals(batch, casted.batch)
125        && Objects.equals(templateFile, casted.templateFile)
126        && Objects.equals(templateFileVersion, casted.templateFileVersion)
127        && Objects.equals(outputFile, casted.outputFile)
128        && Objects.equals(outputFileVersion, casted.outputFileVersion)
129        && Objects.equals(status, casted.status)
130        && Objects.equals(outputType, casted.outputType);
131  }
132
133  @Override
134  public int hashCode() {
135    return Objects.hash(
136        id,
137        type,
138        batch,
139        templateFile,
140        templateFileVersion,
141        outputFile,
142        outputFileVersion,
143        status,
144        outputType);
145  }
146
147  @Override
148  public String toString() {
149    return "DocGenJobV2025R0{"
150        + "id='"
151        + id
152        + '\''
153        + ", "
154        + "type='"
155        + type
156        + '\''
157        + ", "
158        + "batch='"
159        + batch
160        + '\''
161        + ", "
162        + "templateFile='"
163        + templateFile
164        + '\''
165        + ", "
166        + "templateFileVersion='"
167        + templateFileVersion
168        + '\''
169        + ", "
170        + "outputFile='"
171        + outputFile
172        + '\''
173        + ", "
174        + "outputFileVersion='"
175        + outputFileVersion
176        + '\''
177        + ", "
178        + "status='"
179        + status
180        + '\''
181        + ", "
182        + "outputType='"
183        + outputType
184        + '\''
185        + "}";
186  }
187
188  public static class Builder extends DocGenJobBaseV2025R0.Builder {
189
190    protected final DocGenBatchBaseV2025R0 batch;
191
192    protected final FileReferenceV2025R0 templateFile;
193
194    protected final FileVersionBaseV2025R0 templateFileVersion;
195
196    protected FileReferenceV2025R0 outputFile;
197
198    protected FileVersionBaseV2025R0 outputFileVersion;
199
200    protected final EnumWrapper<DocGenJobV2025R0StatusField> status;
201
202    protected final String outputType;
203
204    public Builder(
205        String id,
206        DocGenBatchBaseV2025R0 batch,
207        FileReferenceV2025R0 templateFile,
208        FileVersionBaseV2025R0 templateFileVersion,
209        DocGenJobV2025R0StatusField status,
210        String outputType) {
211      super(id);
212      this.batch = batch;
213      this.templateFile = templateFile;
214      this.templateFileVersion = templateFileVersion;
215      this.status = new EnumWrapper<DocGenJobV2025R0StatusField>(status);
216      this.outputType = outputType;
217    }
218
219    public Builder(
220        String id,
221        DocGenBatchBaseV2025R0 batch,
222        FileReferenceV2025R0 templateFile,
223        FileVersionBaseV2025R0 templateFileVersion,
224        EnumWrapper<DocGenJobV2025R0StatusField> status,
225        String outputType) {
226      super(id);
227      this.batch = batch;
228      this.templateFile = templateFile;
229      this.templateFileVersion = templateFileVersion;
230      this.status = status;
231      this.outputType = outputType;
232    }
233
234    public Builder outputFile(FileReferenceV2025R0 outputFile) {
235      this.outputFile = outputFile;
236      return this;
237    }
238
239    public Builder outputFileVersion(FileVersionBaseV2025R0 outputFileVersion) {
240      this.outputFileVersion = outputFileVersion;
241      return this;
242    }
243
244    @Override
245    public Builder type(DocGenJobBaseV2025R0TypeField type) {
246      this.type = new EnumWrapper<DocGenJobBaseV2025R0TypeField>(type);
247      return this;
248    }
249
250    @Override
251    public Builder type(EnumWrapper<DocGenJobBaseV2025R0TypeField> type) {
252      this.type = type;
253      return this;
254    }
255
256    public DocGenJobV2025R0 build() {
257      if (this.type == null) {
258        this.type =
259            new EnumWrapper<DocGenJobBaseV2025R0TypeField>(
260                DocGenJobBaseV2025R0TypeField.DOCGEN_JOB);
261      }
262      return new DocGenJobV2025R0(this);
263    }
264  }
265}