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