/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. *--------------------------------------------------------------------------------------------*/ package com.github.copilot.sdk.json; import java.util.Collections; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * Request for user input from the agent. *

* This is sent when the agent uses the ask_user tool to request input from the * user. * * @since 1.0.6 */ @JsonIgnoreProperties(ignoreUnknown = true) public class UserInputRequest { @JsonProperty("question") private String question; @JsonProperty("choices") private List choices; @JsonProperty("allowFreeform") private Boolean allowFreeform; /** * Gets the question to ask the user. * * @return the question text */ public String getQuestion() { return question; } /** * Sets the question to ask the user. * * @param question * the question text * @return this instance for method chaining */ public UserInputRequest setQuestion(String question) { this.question = question; return this; } /** * Gets the optional choices for multiple choice questions. * * @return the list of choices, or {@code null} for freeform input */ public List getChoices() { return choices == null ? null : Collections.unmodifiableList(choices); } /** * Sets the choices for multiple choice questions. * * @param choices * the list of choices * @return this instance for method chaining */ public UserInputRequest setChoices(List choices) { this.choices = choices; return this; } /** * Returns whether freeform text input is allowed. * * @return {@code true} if freeform input is allowed, {@code null} if not * specified */ public Boolean getAllowFreeform() { return allowFreeform; } /** * Sets whether freeform text input is allowed. * * @param allowFreeform * {@code true} to allow freeform input * @return this instance for method chaining */ public UserInputRequest setAllowFreeform(Boolean allowFreeform) { this.allowFreeform = allowFreeform; return this; } }