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