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