001package com.box.sdkgen.schemas.aistudioagentaskresponse; 002 003import com.box.sdkgen.internal.Nullable; 004import com.box.sdkgen.internal.NullableFieldTracker; 005import com.box.sdkgen.internal.SerializableObject; 006import com.box.sdkgen.schemas.aistudioagentbasictexttoolresponse.AiStudioAgentBasicTextToolResponse; 007import com.box.sdkgen.schemas.aistudioagentlongtexttoolresponse.AiStudioAgentLongTextToolResponse; 008import com.box.sdkgen.schemas.aistudioagentspreadsheettoolresponse.AiStudioAgentSpreadsheetToolResponse; 009import com.box.sdkgen.serialization.json.EnumWrapper; 010import com.fasterxml.jackson.annotation.JsonFilter; 011import com.fasterxml.jackson.annotation.JsonProperty; 012import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 013import com.fasterxml.jackson.databind.annotation.JsonSerialize; 014import java.util.List; 015import java.util.Objects; 016 017/** The AI agent to be used to ask questions. */ 018@JsonFilter("nullablePropertyFilter") 019public class AiStudioAgentAskResponse extends SerializableObject { 020 021 /** The type of AI agent used to ask questions. */ 022 @JsonDeserialize( 023 using = AiStudioAgentAskResponseTypeField.AiStudioAgentAskResponseTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = AiStudioAgentAskResponseTypeField.AiStudioAgentAskResponseTypeFieldSerializer.class) 026 protected EnumWrapper<AiStudioAgentAskResponseTypeField> type; 027 028 /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ 029 @JsonProperty("access_state") 030 protected final String accessState; 031 032 /** The description of the AI agent. */ 033 protected final String description; 034 035 /** Custom instructions for the AI agent. */ 036 @JsonProperty("custom_instructions") 037 @Nullable 038 protected String customInstructions; 039 040 /** 041 * Suggested questions for the AI agent. If null, suggested question will be generated. If empty, 042 * no suggested questions will be displayed. 043 */ 044 @JsonProperty("suggested_questions") 045 protected List<String> suggestedQuestions; 046 047 @JsonProperty("long_text") 048 protected AiStudioAgentLongTextToolResponse longText; 049 050 @JsonProperty("basic_text") 051 protected AiStudioAgentBasicTextToolResponse basicText; 052 053 @JsonProperty("basic_image") 054 protected AiStudioAgentBasicTextToolResponse basicImage; 055 056 protected AiStudioAgentSpreadsheetToolResponse spreadsheet; 057 058 @JsonProperty("long_text_multi") 059 protected AiStudioAgentLongTextToolResponse longTextMulti; 060 061 @JsonProperty("basic_text_multi") 062 protected AiStudioAgentBasicTextToolResponse basicTextMulti; 063 064 @JsonProperty("basic_image_multi") 065 protected AiStudioAgentBasicTextToolResponse basicImageMulti; 066 067 public AiStudioAgentAskResponse( 068 @JsonProperty("access_state") String accessState, 069 @JsonProperty("description") String description) { 070 super(); 071 this.accessState = accessState; 072 this.description = description; 073 this.type = 074 new EnumWrapper<AiStudioAgentAskResponseTypeField>( 075 AiStudioAgentAskResponseTypeField.AI_AGENT_ASK); 076 } 077 078 protected AiStudioAgentAskResponse(Builder builder) { 079 super(); 080 this.type = builder.type; 081 this.accessState = builder.accessState; 082 this.description = builder.description; 083 this.customInstructions = builder.customInstructions; 084 this.suggestedQuestions = builder.suggestedQuestions; 085 this.longText = builder.longText; 086 this.basicText = builder.basicText; 087 this.basicImage = builder.basicImage; 088 this.spreadsheet = builder.spreadsheet; 089 this.longTextMulti = builder.longTextMulti; 090 this.basicTextMulti = builder.basicTextMulti; 091 this.basicImageMulti = builder.basicImageMulti; 092 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 093 } 094 095 public EnumWrapper<AiStudioAgentAskResponseTypeField> getType() { 096 return type; 097 } 098 099 public String getAccessState() { 100 return accessState; 101 } 102 103 public String getDescription() { 104 return description; 105 } 106 107 public String getCustomInstructions() { 108 return customInstructions; 109 } 110 111 public List<String> getSuggestedQuestions() { 112 return suggestedQuestions; 113 } 114 115 public AiStudioAgentLongTextToolResponse getLongText() { 116 return longText; 117 } 118 119 public AiStudioAgentBasicTextToolResponse getBasicText() { 120 return basicText; 121 } 122 123 public AiStudioAgentBasicTextToolResponse getBasicImage() { 124 return basicImage; 125 } 126 127 public AiStudioAgentSpreadsheetToolResponse getSpreadsheet() { 128 return spreadsheet; 129 } 130 131 public AiStudioAgentLongTextToolResponse getLongTextMulti() { 132 return longTextMulti; 133 } 134 135 public AiStudioAgentBasicTextToolResponse getBasicTextMulti() { 136 return basicTextMulti; 137 } 138 139 public AiStudioAgentBasicTextToolResponse getBasicImageMulti() { 140 return basicImageMulti; 141 } 142 143 @Override 144 public boolean equals(Object o) { 145 if (this == o) { 146 return true; 147 } 148 if (o == null || getClass() != o.getClass()) { 149 return false; 150 } 151 AiStudioAgentAskResponse casted = (AiStudioAgentAskResponse) o; 152 return Objects.equals(type, casted.type) 153 && Objects.equals(accessState, casted.accessState) 154 && Objects.equals(description, casted.description) 155 && Objects.equals(customInstructions, casted.customInstructions) 156 && Objects.equals(suggestedQuestions, casted.suggestedQuestions) 157 && Objects.equals(longText, casted.longText) 158 && Objects.equals(basicText, casted.basicText) 159 && Objects.equals(basicImage, casted.basicImage) 160 && Objects.equals(spreadsheet, casted.spreadsheet) 161 && Objects.equals(longTextMulti, casted.longTextMulti) 162 && Objects.equals(basicTextMulti, casted.basicTextMulti) 163 && Objects.equals(basicImageMulti, casted.basicImageMulti); 164 } 165 166 @Override 167 public int hashCode() { 168 return Objects.hash( 169 type, 170 accessState, 171 description, 172 customInstructions, 173 suggestedQuestions, 174 longText, 175 basicText, 176 basicImage, 177 spreadsheet, 178 longTextMulti, 179 basicTextMulti, 180 basicImageMulti); 181 } 182 183 @Override 184 public String toString() { 185 return "AiStudioAgentAskResponse{" 186 + "type='" 187 + type 188 + '\'' 189 + ", " 190 + "accessState='" 191 + accessState 192 + '\'' 193 + ", " 194 + "description='" 195 + description 196 + '\'' 197 + ", " 198 + "customInstructions='" 199 + customInstructions 200 + '\'' 201 + ", " 202 + "suggestedQuestions='" 203 + suggestedQuestions 204 + '\'' 205 + ", " 206 + "longText='" 207 + longText 208 + '\'' 209 + ", " 210 + "basicText='" 211 + basicText 212 + '\'' 213 + ", " 214 + "basicImage='" 215 + basicImage 216 + '\'' 217 + ", " 218 + "spreadsheet='" 219 + spreadsheet 220 + '\'' 221 + ", " 222 + "longTextMulti='" 223 + longTextMulti 224 + '\'' 225 + ", " 226 + "basicTextMulti='" 227 + basicTextMulti 228 + '\'' 229 + ", " 230 + "basicImageMulti='" 231 + basicImageMulti 232 + '\'' 233 + "}"; 234 } 235 236 public static class Builder extends NullableFieldTracker { 237 238 protected EnumWrapper<AiStudioAgentAskResponseTypeField> type; 239 240 protected final String accessState; 241 242 protected final String description; 243 244 protected String customInstructions; 245 246 protected List<String> suggestedQuestions; 247 248 protected AiStudioAgentLongTextToolResponse longText; 249 250 protected AiStudioAgentBasicTextToolResponse basicText; 251 252 protected AiStudioAgentBasicTextToolResponse basicImage; 253 254 protected AiStudioAgentSpreadsheetToolResponse spreadsheet; 255 256 protected AiStudioAgentLongTextToolResponse longTextMulti; 257 258 protected AiStudioAgentBasicTextToolResponse basicTextMulti; 259 260 protected AiStudioAgentBasicTextToolResponse basicImageMulti; 261 262 public Builder(String accessState, String description) { 263 super(); 264 this.accessState = accessState; 265 this.description = description; 266 } 267 268 public Builder type(AiStudioAgentAskResponseTypeField type) { 269 this.type = new EnumWrapper<AiStudioAgentAskResponseTypeField>(type); 270 return this; 271 } 272 273 public Builder type(EnumWrapper<AiStudioAgentAskResponseTypeField> type) { 274 this.type = type; 275 return this; 276 } 277 278 public Builder customInstructions(String customInstructions) { 279 this.customInstructions = customInstructions; 280 this.markNullableFieldAsSet("custom_instructions"); 281 return this; 282 } 283 284 public Builder suggestedQuestions(List<String> suggestedQuestions) { 285 this.suggestedQuestions = suggestedQuestions; 286 return this; 287 } 288 289 public Builder longText(AiStudioAgentLongTextToolResponse longText) { 290 this.longText = longText; 291 return this; 292 } 293 294 public Builder basicText(AiStudioAgentBasicTextToolResponse basicText) { 295 this.basicText = basicText; 296 return this; 297 } 298 299 public Builder basicImage(AiStudioAgentBasicTextToolResponse basicImage) { 300 this.basicImage = basicImage; 301 return this; 302 } 303 304 public Builder spreadsheet(AiStudioAgentSpreadsheetToolResponse spreadsheet) { 305 this.spreadsheet = spreadsheet; 306 return this; 307 } 308 309 public Builder longTextMulti(AiStudioAgentLongTextToolResponse longTextMulti) { 310 this.longTextMulti = longTextMulti; 311 return this; 312 } 313 314 public Builder basicTextMulti(AiStudioAgentBasicTextToolResponse basicTextMulti) { 315 this.basicTextMulti = basicTextMulti; 316 return this; 317 } 318 319 public Builder basicImageMulti(AiStudioAgentBasicTextToolResponse basicImageMulti) { 320 this.basicImageMulti = basicImageMulti; 321 return this; 322 } 323 324 public AiStudioAgentAskResponse build() { 325 if (this.type == null) { 326 this.type = 327 new EnumWrapper<AiStudioAgentAskResponseTypeField>( 328 AiStudioAgentAskResponseTypeField.AI_AGENT_ASK); 329 } 330 return new AiStudioAgentAskResponse(this); 331 } 332 } 333}