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