001package com.box.sdkgen.schemas.aistudioagentspreadsheettoolresponse;
002
003import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams;
004import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws;
005import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle;
006import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm;
007import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi;
008import com.box.sdkgen.schemas.aistudioagentspreadsheettool.AiStudioAgentSpreadsheetTool;
009import com.fasterxml.jackson.annotation.JsonFilter;
010import java.util.List;
011import java.util.Objects;
012
013/** The AI agent tool used to handle spreadsheets and tabular data. */
014@JsonFilter("nullablePropertyFilter")
015public class AiStudioAgentSpreadsheetToolResponse extends AiStudioAgentSpreadsheetTool {
016
017  /** Warnings concerning tool. */
018  protected List<String> warnings;
019
020  public AiStudioAgentSpreadsheetToolResponse() {
021    super();
022  }
023
024  protected AiStudioAgentSpreadsheetToolResponse(Builder builder) {
025    super(builder);
026    this.warnings = builder.warnings;
027    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
028  }
029
030  public List<String> getWarnings() {
031    return warnings;
032  }
033
034  @Override
035  public boolean equals(Object o) {
036    if (this == o) {
037      return true;
038    }
039    if (o == null || getClass() != o.getClass()) {
040      return false;
041    }
042    AiStudioAgentSpreadsheetToolResponse casted = (AiStudioAgentSpreadsheetToolResponse) o;
043    return Objects.equals(model, casted.model)
044        && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion)
045        && Objects.equals(llmEndpointParams, casted.llmEndpointParams)
046        && Objects.equals(warnings, casted.warnings);
047  }
048
049  @Override
050  public int hashCode() {
051    return Objects.hash(model, numTokensForCompletion, llmEndpointParams, warnings);
052  }
053
054  @Override
055  public String toString() {
056    return "AiStudioAgentSpreadsheetToolResponse{"
057        + "model='"
058        + model
059        + '\''
060        + ", "
061        + "numTokensForCompletion='"
062        + numTokensForCompletion
063        + '\''
064        + ", "
065        + "llmEndpointParams='"
066        + llmEndpointParams
067        + '\''
068        + ", "
069        + "warnings='"
070        + warnings
071        + '\''
072        + "}";
073  }
074
075  public static class Builder extends AiStudioAgentSpreadsheetTool.Builder {
076
077    protected List<String> warnings;
078
079    public Builder warnings(List<String> warnings) {
080      this.warnings = warnings;
081      return this;
082    }
083
084    @Override
085    public Builder model(String model) {
086      this.model = model;
087      return this;
088    }
089
090    @Override
091    public Builder numTokensForCompletion(Long numTokensForCompletion) {
092      this.numTokensForCompletion = numTokensForCompletion;
093      return this;
094    }
095
096    @Override
097    public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) {
098      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
099      return this;
100    }
101
102    @Override
103    public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) {
104      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
105      return this;
106    }
107
108    @Override
109    public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) {
110      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
111      return this;
112    }
113
114    @Override
115    public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) {
116      this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams);
117      return this;
118    }
119
120    @Override
121    public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) {
122      this.llmEndpointParams = llmEndpointParams;
123      return this;
124    }
125
126    public AiStudioAgentSpreadsheetToolResponse build() {
127      return new AiStudioAgentSpreadsheetToolResponse(this);
128    }
129  }
130}