001package com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0.FolderReferenceV2026R0;
006import com.box.sdkgen.serialization.json.EnumWrapper;
007import com.fasterxml.jackson.annotation.JsonFilter;
008import com.fasterxml.jackson.annotation.JsonProperty;
009import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
010import com.fasterxml.jackson.databind.annotation.JsonSerialize;
011import java.util.Objects;
012
013/** Request body for converting source content into a Box Note file. */
014@JsonFilter("nullablePropertyFilter")
015public class NotesConvertRequestBodyV2026R0 extends SerializableObject {
016
017  /** The content to convert to a note. See the `content_format` field for supported formats. */
018  protected final String content;
019
020  /** Format of the content to convert. */
021  @JsonDeserialize(
022      using =
023          NotesConvertRequestBodyV2026R0ContentFormatField
024              .NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer.class)
025  @JsonSerialize(
026      using =
027          NotesConvertRequestBodyV2026R0ContentFormatField
028              .NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer.class)
029  @JsonProperty("content_format")
030  protected EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField> contentFormat;
031
032  protected final FolderReferenceV2026R0 parent;
033
034  /** The name for the created note. The `.boxnote` extension is appended automatically. */
035  protected final String name;
036
037  public NotesConvertRequestBodyV2026R0(
038      @JsonProperty("content") String content,
039      @JsonProperty("parent") FolderReferenceV2026R0 parent,
040      @JsonProperty("name") String name) {
041    super();
042    this.content = content;
043    this.parent = parent;
044    this.name = name;
045    this.contentFormat =
046        new EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField>(
047            NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN);
048  }
049
050  protected NotesConvertRequestBodyV2026R0(Builder builder) {
051    super();
052    this.content = builder.content;
053    this.contentFormat = builder.contentFormat;
054    this.parent = builder.parent;
055    this.name = builder.name;
056    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
057  }
058
059  public String getContent() {
060    return content;
061  }
062
063  public EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField> getContentFormat() {
064    return contentFormat;
065  }
066
067  public FolderReferenceV2026R0 getParent() {
068    return parent;
069  }
070
071  public String getName() {
072    return name;
073  }
074
075  @Override
076  public boolean equals(Object o) {
077    if (this == o) {
078      return true;
079    }
080    if (o == null || getClass() != o.getClass()) {
081      return false;
082    }
083    NotesConvertRequestBodyV2026R0 casted = (NotesConvertRequestBodyV2026R0) o;
084    return Objects.equals(content, casted.content)
085        && Objects.equals(contentFormat, casted.contentFormat)
086        && Objects.equals(parent, casted.parent)
087        && Objects.equals(name, casted.name);
088  }
089
090  @Override
091  public int hashCode() {
092    return Objects.hash(content, contentFormat, parent, name);
093  }
094
095  @Override
096  public String toString() {
097    return "NotesConvertRequestBodyV2026R0{"
098        + "content='"
099        + content
100        + '\''
101        + ", "
102        + "contentFormat='"
103        + contentFormat
104        + '\''
105        + ", "
106        + "parent='"
107        + parent
108        + '\''
109        + ", "
110        + "name='"
111        + name
112        + '\''
113        + "}";
114  }
115
116  public static class Builder extends NullableFieldTracker {
117
118    protected final String content;
119
120    protected EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField> contentFormat;
121
122    protected final FolderReferenceV2026R0 parent;
123
124    protected final String name;
125
126    public Builder(String content, FolderReferenceV2026R0 parent, String name) {
127      super();
128      this.content = content;
129      this.parent = parent;
130      this.name = name;
131    }
132
133    public Builder contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField contentFormat) {
134      this.contentFormat =
135          new EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField>(contentFormat);
136      return this;
137    }
138
139    public Builder contentFormat(
140        EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField> contentFormat) {
141      this.contentFormat = contentFormat;
142      return this;
143    }
144
145    public NotesConvertRequestBodyV2026R0 build() {
146      if (this.contentFormat == null) {
147        this.contentFormat =
148            new EnumWrapper<NotesConvertRequestBodyV2026R0ContentFormatField>(
149                NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN);
150      }
151      return new NotesConvertRequestBodyV2026R0(this);
152    }
153  }
154}