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 com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009@JsonFilter("nullablePropertyFilter")
010public class AiAgentInfoModelsField extends SerializableObject {
011
012  /** The name of the model used for the request. */
013  protected String name;
014
015  /** The provider that owns the model used for the request. */
016  protected String provider;
017
018  /** The supported purpose utilized by the model used for the request. */
019  @JsonProperty("supported_purpose")
020  protected String supportedPurpose;
021
022  public AiAgentInfoModelsField() {
023    super();
024  }
025
026  protected AiAgentInfoModelsField(Builder builder) {
027    super();
028    this.name = builder.name;
029    this.provider = builder.provider;
030    this.supportedPurpose = builder.supportedPurpose;
031    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
032  }
033
034  public String getName() {
035    return name;
036  }
037
038  public String getProvider() {
039    return provider;
040  }
041
042  public String getSupportedPurpose() {
043    return supportedPurpose;
044  }
045
046  @Override
047  public boolean equals(Object o) {
048    if (this == o) {
049      return true;
050    }
051    if (o == null || getClass() != o.getClass()) {
052      return false;
053    }
054    AiAgentInfoModelsField casted = (AiAgentInfoModelsField) o;
055    return Objects.equals(name, casted.name)
056        && Objects.equals(provider, casted.provider)
057        && Objects.equals(supportedPurpose, casted.supportedPurpose);
058  }
059
060  @Override
061  public int hashCode() {
062    return Objects.hash(name, provider, supportedPurpose);
063  }
064
065  @Override
066  public String toString() {
067    return "AiAgentInfoModelsField{"
068        + "name='"
069        + name
070        + '\''
071        + ", "
072        + "provider='"
073        + provider
074        + '\''
075        + ", "
076        + "supportedPurpose='"
077        + supportedPurpose
078        + '\''
079        + "}";
080  }
081
082  public static class Builder extends NullableFieldTracker {
083
084    protected String name;
085
086    protected String provider;
087
088    protected String supportedPurpose;
089
090    public Builder name(String name) {
091      this.name = name;
092      return this;
093    }
094
095    public Builder provider(String provider) {
096      this.provider = provider;
097      return this;
098    }
099
100    public Builder supportedPurpose(String supportedPurpose) {
101      this.supportedPurpose = supportedPurpose;
102      return this;
103    }
104
105    public AiAgentInfoModelsField build() {
106      return new AiAgentInfoModelsField(this);
107    }
108  }
109}