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}