/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. *--------------------------------------------------------------------------------------------*/ package com.github.copilot.sdk.json; import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; /** * JSON Schema describing the form fields to present for an elicitation dialog. * * @since 1.0.0 */ @JsonInclude(JsonInclude.Include.NON_NULL) public class ElicitationSchema { @JsonProperty("type") private String type = "object"; @JsonProperty("properties") private Map properties; @JsonProperty("required") private List required; /** * Gets the schema type indicator (always {@code "object"}). * * @return the type */ public String getType() { return type; } /** * Sets the schema type indicator. * * @param type * the type (typically {@code "object"}) * @return this instance for method chaining */ public ElicitationSchema setType(String type) { this.type = type; return this; } /** * Gets the form field definitions, keyed by field name. * * @return the properties map */ public Map getProperties() { return properties; } /** * Sets the form field definitions, keyed by field name. * * @param properties * the properties map * @return this instance for method chaining */ public ElicitationSchema setProperties(Map properties) { this.properties = properties; return this; } /** * Gets the list of required field names. * * @return the required field names, or {@code null} */ public List getRequired() { return required; } /** * Sets the list of required field names. * * @param required * the required field names * @return this instance for method chaining */ public ElicitationSchema setRequired(List required) { this.required = required; return this; } }