001package com.box.sdkgen.schemas.v2025r0.docgentagv2025r0;
002
003import com.box.sdkgen.internal.SerializableObject;
004import com.box.sdkgen.serialization.json.EnumWrapper;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
008import com.fasterxml.jackson.databind.annotation.JsonSerialize;
009import java.util.List;
010import java.util.Objects;
011
012/** A Box Doc Gen template tag object. */
013@JsonFilter("nullablePropertyFilter")
014public class DocGenTagV2025R0 extends SerializableObject {
015
016  /** The content of the tag. */
017  @JsonProperty("tag_content")
018  protected final String tagContent;
019
020  /** Type of the tag. */
021  @JsonDeserialize(
022      using = DocGenTagV2025R0TagTypeField.DocGenTagV2025R0TagTypeFieldDeserializer.class)
023  @JsonSerialize(using = DocGenTagV2025R0TagTypeField.DocGenTagV2025R0TagTypeFieldSerializer.class)
024  @JsonProperty("tag_type")
025  protected final EnumWrapper<DocGenTagV2025R0TagTypeField> tagType;
026
027  /** List of the paths. */
028  @JsonProperty("json_paths")
029  protected final List<String> jsonPaths;
030
031  public DocGenTagV2025R0(
032      String tagContent, DocGenTagV2025R0TagTypeField tagType, List<String> jsonPaths) {
033    super();
034    this.tagContent = tagContent;
035    this.tagType = new EnumWrapper<DocGenTagV2025R0TagTypeField>(tagType);
036    this.jsonPaths = jsonPaths;
037  }
038
039  public DocGenTagV2025R0(
040      @JsonProperty("tag_content") String tagContent,
041      @JsonProperty("tag_type") EnumWrapper<DocGenTagV2025R0TagTypeField> tagType,
042      @JsonProperty("json_paths") List<String> jsonPaths) {
043    super();
044    this.tagContent = tagContent;
045    this.tagType = tagType;
046    this.jsonPaths = jsonPaths;
047  }
048
049  public String getTagContent() {
050    return tagContent;
051  }
052
053  public EnumWrapper<DocGenTagV2025R0TagTypeField> getTagType() {
054    return tagType;
055  }
056
057  public List<String> getJsonPaths() {
058    return jsonPaths;
059  }
060
061  @Override
062  public boolean equals(Object o) {
063    if (this == o) {
064      return true;
065    }
066    if (o == null || getClass() != o.getClass()) {
067      return false;
068    }
069    DocGenTagV2025R0 casted = (DocGenTagV2025R0) o;
070    return Objects.equals(tagContent, casted.tagContent)
071        && Objects.equals(tagType, casted.tagType)
072        && Objects.equals(jsonPaths, casted.jsonPaths);
073  }
074
075  @Override
076  public int hashCode() {
077    return Objects.hash(tagContent, tagType, jsonPaths);
078  }
079
080  @Override
081  public String toString() {
082    return "DocGenTagV2025R0{"
083        + "tagContent='"
084        + tagContent
085        + '\''
086        + ", "
087        + "tagType='"
088        + tagType
089        + '\''
090        + ", "
091        + "jsonPaths='"
092        + jsonPaths
093        + '\''
094        + "}";
095  }
096}