001package com.box.sdkgen.schemas.aiagentlongtexttooltextgen;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import java.util.Objects;
007
008@JsonFilter("nullablePropertyFilter")
009public class AiAgentLongTextToolTextGenEmbeddingsField extends SerializableObject {
010
011  /** The model used for the AI agent for calculating embeddings. */
012  protected String model;
013
014  protected AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy;
015
016  public AiAgentLongTextToolTextGenEmbeddingsField() {
017    super();
018  }
019
020  protected AiAgentLongTextToolTextGenEmbeddingsField(Builder builder) {
021    super();
022    this.model = builder.model;
023    this.strategy = builder.strategy;
024    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
025  }
026
027  public String getModel() {
028    return model;
029  }
030
031  public AiAgentLongTextToolTextGenEmbeddingsStrategyField getStrategy() {
032    return strategy;
033  }
034
035  @Override
036  public boolean equals(Object o) {
037    if (this == o) {
038      return true;
039    }
040    if (o == null || getClass() != o.getClass()) {
041      return false;
042    }
043    AiAgentLongTextToolTextGenEmbeddingsField casted =
044        (AiAgentLongTextToolTextGenEmbeddingsField) o;
045    return Objects.equals(model, casted.model) && Objects.equals(strategy, casted.strategy);
046  }
047
048  @Override
049  public int hashCode() {
050    return Objects.hash(model, strategy);
051  }
052
053  @Override
054  public String toString() {
055    return "AiAgentLongTextToolTextGenEmbeddingsField{"
056        + "model='"
057        + model
058        + '\''
059        + ", "
060        + "strategy='"
061        + strategy
062        + '\''
063        + "}";
064  }
065
066  public static class Builder extends NullableFieldTracker {
067
068    protected String model;
069
070    protected AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy;
071
072    public Builder model(String model) {
073      this.model = model;
074      return this;
075    }
076
077    public Builder strategy(AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy) {
078      this.strategy = strategy;
079      return this;
080    }
081
082    public AiAgentLongTextToolTextGenEmbeddingsField build() {
083      return new AiAgentLongTextToolTextGenEmbeddingsField(this);
084    }
085  }
086}