001package com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.box.sdkgen.schemas.v2025r0.docgendocumentgenerationdatav2025r0.DocGenDocumentGenerationDataV2025R0;
006import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0;
007import com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0.FileVersionBaseV2025R0;
008import com.fasterxml.jackson.annotation.JsonFilter;
009import com.fasterxml.jackson.annotation.JsonProperty;
010import java.util.List;
011import java.util.Objects;
012
013/** The schema for creating a Box Doc Gen job batch request. */
014@JsonFilter("nullablePropertyFilter")
015public class DocGenBatchCreateRequestV2025R0 extends SerializableObject {
016
017  protected final FileReferenceV2025R0 file;
018
019  @JsonProperty("file_version")
020  protected FileVersionBaseV2025R0 fileVersion;
021
022  /**
023   * Source of input. The value has to be `api` for all the API-based document generation requests.
024   */
025  @JsonProperty("input_source")
026  protected final String inputSource;
027
028  @JsonProperty("destination_folder")
029  protected final DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder;
030
031  /** Type of the output file. */
032  @JsonProperty("output_type")
033  protected final String outputType;
034
035  @JsonProperty("document_generation_data")
036  protected final List<DocGenDocumentGenerationDataV2025R0> documentGenerationData;
037
038  public DocGenBatchCreateRequestV2025R0(
039      @JsonProperty("file") FileReferenceV2025R0 file,
040      @JsonProperty("input_source") String inputSource,
041      @JsonProperty("destination_folder")
042          DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder,
043      @JsonProperty("output_type") String outputType,
044      @JsonProperty("document_generation_data")
045          List<DocGenDocumentGenerationDataV2025R0> documentGenerationData) {
046    super();
047    this.file = file;
048    this.inputSource = inputSource;
049    this.destinationFolder = destinationFolder;
050    this.outputType = outputType;
051    this.documentGenerationData = documentGenerationData;
052  }
053
054  protected DocGenBatchCreateRequestV2025R0(Builder builder) {
055    super();
056    this.file = builder.file;
057    this.fileVersion = builder.fileVersion;
058    this.inputSource = builder.inputSource;
059    this.destinationFolder = builder.destinationFolder;
060    this.outputType = builder.outputType;
061    this.documentGenerationData = builder.documentGenerationData;
062    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
063  }
064
065  public FileReferenceV2025R0 getFile() {
066    return file;
067  }
068
069  public FileVersionBaseV2025R0 getFileVersion() {
070    return fileVersion;
071  }
072
073  public String getInputSource() {
074    return inputSource;
075  }
076
077  public DocGenBatchCreateRequestV2025R0DestinationFolderField getDestinationFolder() {
078    return destinationFolder;
079  }
080
081  public String getOutputType() {
082    return outputType;
083  }
084
085  public List<DocGenDocumentGenerationDataV2025R0> getDocumentGenerationData() {
086    return documentGenerationData;
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    DocGenBatchCreateRequestV2025R0 casted = (DocGenBatchCreateRequestV2025R0) o;
098    return Objects.equals(file, casted.file)
099        && Objects.equals(fileVersion, casted.fileVersion)
100        && Objects.equals(inputSource, casted.inputSource)
101        && Objects.equals(destinationFolder, casted.destinationFolder)
102        && Objects.equals(outputType, casted.outputType)
103        && Objects.equals(documentGenerationData, casted.documentGenerationData);
104  }
105
106  @Override
107  public int hashCode() {
108    return Objects.hash(
109        file, fileVersion, inputSource, destinationFolder, outputType, documentGenerationData);
110  }
111
112  @Override
113  public String toString() {
114    return "DocGenBatchCreateRequestV2025R0{"
115        + "file='"
116        + file
117        + '\''
118        + ", "
119        + "fileVersion='"
120        + fileVersion
121        + '\''
122        + ", "
123        + "inputSource='"
124        + inputSource
125        + '\''
126        + ", "
127        + "destinationFolder='"
128        + destinationFolder
129        + '\''
130        + ", "
131        + "outputType='"
132        + outputType
133        + '\''
134        + ", "
135        + "documentGenerationData='"
136        + documentGenerationData
137        + '\''
138        + "}";
139  }
140
141  public static class Builder extends NullableFieldTracker {
142
143    protected final FileReferenceV2025R0 file;
144
145    protected FileVersionBaseV2025R0 fileVersion;
146
147    protected final String inputSource;
148
149    protected final DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder;
150
151    protected final String outputType;
152
153    protected final List<DocGenDocumentGenerationDataV2025R0> documentGenerationData;
154
155    public Builder(
156        FileReferenceV2025R0 file,
157        String inputSource,
158        DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder,
159        String outputType,
160        List<DocGenDocumentGenerationDataV2025R0> documentGenerationData) {
161      super();
162      this.file = file;
163      this.inputSource = inputSource;
164      this.destinationFolder = destinationFolder;
165      this.outputType = outputType;
166      this.documentGenerationData = documentGenerationData;
167    }
168
169    public Builder fileVersion(FileVersionBaseV2025R0 fileVersion) {
170      this.fileVersion = fileVersion;
171      return this;
172    }
173
174    public DocGenBatchCreateRequestV2025R0 build() {
175      return new DocGenBatchCreateRequestV2025R0(this);
176    }
177  }
178}